pax_global_header 0000666 0000000 0000000 00000000064 12412174425 0014514 g ustar 00root root 0000000 0000000 52 comment=cd55d560c798082e44a8968b4e9f922b80a4a22c
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/ 0000775 0000000 0000000 00000000000 12412174425 0022157 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/.gitignore 0000664 0000000 0000000 00000000062 12412174425 0024145 0 ustar 00root root 0000000 0000000 /fmc-delay/fmc-delay-1ns-8cha
*.ram
*.bit
*~
*.*~
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/.gitmodules 0000664 0000000 0000000 00000001277 12412174425 0024343 0 ustar 00root root 0000000 0000000 [submodule "debugger_sw/wrpc-sw"]
path = debugger_sw/wrpc-sw
url = git://ohwr.org/hdl-core-lib/wr-cores/wrpc-sw.git
[submodule "debugger_sw/fmc-delay/fine-delay-sw"]
path = debugger_sw/fmc-delay/fine-delay-sw
url = git://ohwr.org/fmc-projects/fmc-delay-1ns-8cha/fine-delay-sw.git
[submodule "debugger_sw/remote_tools/caloe"]
path = debugger_sw/remote_tools/caloe
url = https://github.com/klyone/caloe.git
[submodule "debugger_gw/fmc-delay/fmc-delay-1ns-8cha"]
path = debugger_gw/fmc-delay/fmc-delay-1ns-8cha
url = git://ohwr.org/fmc-projects/fmc-delay-1ns-8cha.git
[submodule "debugger_gw/etherbone-core"]
path = debugger_gw/etherbone-core
url = git://ohwr.org/hdl-core-lib/etherbone-core.git
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/COPYING 0000664 0000000 0000000 00000104513 12412174425 0023216 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Copyright (C)
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/README 0000664 0000000 0000000 00000000000 12412174425 0023025 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/ 0000775 0000000 0000000 00000000000 12412174425 0024440 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/Makefile 0000664 0000000 0000000 00000000614 12412174425 0026101 0 ustar 00root root 0000000 0000000 ETHERBONE_DIR = ./etherbone-core
FMC_DEL_DIR = ./fmc-delay
all: git_submodules
$(MAKE) -C $(FMC_DEL_DIR) -f Makefile
git_submodules:
@test -d $(ETHERBONE_DIR)/api || echo "Checking out submodules"
test -d $(ETHERBONE_DIR)/api || git submodule update --init
clean:
rm -f *.ram
$(MAKE) -C $(FMC_DEL_DIR)/spec -f Makefile $@
mrproper:
$(MAKE) -C $(FMC_DEL_DIR)/spec -f Makefile $@
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/Manifest.py 0000664 0000000 0000000 00000000100 12412174425 0026547 0 ustar 00root root 0000000 0000000 files = ["wb_debugger.vhd", "debugger_pkg.vhd", "dbg_code.ram"]
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/debugger_pkg.vhd 0000664 0000000 0000000 00000016714 12412174425 0027601 0 ustar 00root root 0000000 0000000 -------------------------------------------------------------------------------
-- Title : Wishbone Debugger package
-- Project : FMC DEL 1ns 4cha-stand-alone application (fmc-delay-1ns-4cha-sa)
-------------------------------------------------------------------------------
-- File : debugger_pkg.vhd
-- Author : Jose Jimenez
-- Company : University of Granada
-- Created : 2014-06-08
-- Last update: 2014-07-31
-- Platform : FPGA-generic
-- Standard : VHDL'93
-------------------------------------------------------------------------------
-- Description: Wihsbone master with slave configuration interface for gateware
-- debuggin porpuses. Also provides a framework for stand alone
-- operation.
-------------------------------------------------------------------------------
-- Revisions :
-- Date Version Author Description
-- 2014-06-08 1.0 jjimenez Created
-------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
----use work.gn4124_core_pkg.all;
--use work.gencores_pkg.all;
--use work.wrcore_pkg.all;
----use work.wr_fabric_pkg.all;
--use work.wishbone_pkg.all;
----use work.fine_delay_pkg.all;
----use work.etherbone_pkg.all;
----use work.wr_xilinx_pkg.all;
--use work.genram_pkg.all;
--use work.wb_irq_pkg.all;
----use work.gencores_pkg.all;
use work.wishbone_pkg.all;
--use work.genram_pkg.all;
--use work.wb_irq_pkg.all;
--use work.debugger_pkg.all;
--
--use work.synthesis_descriptor.all;
package debugger_pkg is
------------------------------------------------------------------------------
-- Constants
-------------------------------------------------------------------------------
constant c_dbg_uart_sdb : t_sdb_device := (
abi_class => x"0000", -- undocumented device
abi_ver_major => x"01",
abi_ver_minor => x"01",
wbd_endian => c_sdb_endian_big,
wbd_width => x"7", -- 8/16/32-bit port granularity
sdb_component => (
addr_first => x"0000000000000000",
addr_last => x"00000000000000ff",
product => (
vendor_id => x"000000000000CE42", -- CERN
device_id => x"0deafbee", -- she didn't listen & cames & goes
version => x"00000001",
date => x"20120305",
name => "WB-UART-Debugger ")));
constant c_dbg_irq_ctrl_sdb : t_sdb_device := (
abi_class => x"0000", -- undocumented device
abi_ver_major => x"01",
abi_ver_minor => x"01",
wbd_endian => c_sdb_endian_big,
wbd_width => x"7", -- 8/16/32-bit port granularity
sdb_component => (
addr_first => x"0000000000000000",
addr_last => x"00000000000000ff",
product => (
vendor_id => x"0000000000000651", -- GSI
device_id => x"e1fb1ade", -- balanced, perfect grip, absolute control
version => x"00000001",
date => x"20120308",
name => "IRQ_CTRL-Debugger ")));
constant c_xwb_dbg_tics_sdb : t_sdb_device := (
abi_class => x"0000", -- undocumented device
abi_ver_major => x"01",
abi_ver_minor => x"00",
wbd_endian => c_sdb_endian_big,
wbd_width => x"7", -- 8/16/32-bit port granularity
sdb_component => (
addr_first => x"0000000000000000",
addr_last => x"0000000000000000",
product => (
vendor_id => x"000000000000CE42", -- GSIx
device_id => x"fade1eaf", -- Time is always ticking!
version => x"00000001",
date => x"20111004",
name => "WB-Tics-Debugger ")));
constant c_dbg_irq_timer_sdb : t_sdb_device := (
abi_class => x"0000", -- undocumented device
abi_ver_major => x"01",
abi_ver_minor => x"01",
wbd_endian => c_sdb_endian_big,
wbd_width => x"7", -- 8/16/32-bit port granularity
sdb_component => (
addr_first => x"0000000000000000",
addr_last => x"00000000000000ff",
product => (
vendor_id => x"0000000000000651", -- GSI
device_id => x"deadface", -- eventully "the dead line" is going to arrive
version => x"00000001",
date => x"20120308",
name => "IRQ_TIMER-Debugger ")));
constant c_xwb_dbg_slave_sdb : t_sdb_device := (
abi_class => x"0000", -- undocumented device
abi_ver_major => x"01",
abi_ver_minor => x"00",
wbd_endian => c_sdb_endian_big,
wbd_width => x"7", -- 8/16/32-bit port granularity
sdb_component => (
addr_first => x"0000000000000000",
addr_last => x"000000000003ffff",
product => (
vendor_id => x"a1eBEEFc0ffeeBED", -- Jose Jimenez Motel. Open 24/7. Next exit.
device_id => x"c0a110de", -- obvious (sadly)
version => x"00000001",
date => x"20140704",
name => "Debugger-Slave ")));
------------------------------------------------------------------------------
-- Functions
-------------------------------------------------------------------------------
function f_xwb_dbg_dpram(g_size : natural) return t_sdb_device
is
variable result : t_sdb_device;
begin
result.abi_class := x"0001"; -- RAM device
result.abi_ver_major := x"01";
result.abi_ver_minor := x"00";
result.wbd_width := x"7"; -- 32/16/8-bit supported
result.wbd_endian := c_sdb_endian_big;
result.sdb_component.addr_first := (others => '0');
result.sdb_component.addr_last := std_logic_vector(to_unsigned(g_size*4-1, 64));
result.sdb_component.product.vendor_id := x"000000000000CE42"; -- CERN
result.sdb_component.product.device_id := x"deafbeef"; -- she didn't listen & is as essential as protein
result.sdb_component.product.version := x"00000001";
result.sdb_component.product.date := x"20120305";
result.sdb_component.product.name := "BlockRAM-Debugger ";
return result;
end f_xwb_dbg_dpram;
------------------------------------------------------------------------------
-- Components declaration
-------------------------------------------------------------------------------
component wb_debugger is
generic (
g_dbg_dpram_size : integer := 40960/4;
g_dbg_init_file : string;
g_reset_vector : t_wishbone_address := x"00000000";
g_msi_queues : natural := 1;
g_profile : string := "medium_icache_debug";
g_internal_time_ref : boolean := true;
g_timers : integer := 1;
g_slave_interface_mode : t_wishbone_interface_mode := PIPELINED;
g_slave_granularity : t_wishbone_address_granularity := BYTE
);
port (
clk_sys : in std_logic;
reset_n : in std_logic;
master_i : in t_wishbone_master_in;
master_o : out t_wishbone_master_out;
slave_i : in t_wishbone_slave_in;
slave_o : out t_wishbone_slave_out;
wrpc_uart_rxd_i : inout std_logic;
wrpc_uart_txd_o : inout std_logic;
uart_rxd_i : in std_logic;
uart_txd_o : out std_logic;
dbg_indicator : out std_logic;
dbg_control_select : in std_logic
);
end component;
end debugger_pkg;
package body debugger_pkg is
-- Notihg to include right now!!!
end debugger_pkg;
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/etherbone-core/ 0000775 0000000 0000000 00000000000 12412174425 0027341 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/ 0000775 0000000 0000000 00000000000 12412174425 0026301 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/.gitignore 0000664 0000000 0000000 00000000113 12412174425 0030264 0 ustar 00root root 0000000 0000000 *.*\#
\#*
.\#*
*.*~
modelsim.ini
*.wlf
*.vstf
work
*.bak
spec/*
transcript
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/Makefile 0000664 0000000 0000000 00000001334 12412174425 0027742 0 ustar 00root root 0000000 0000000 MAKE_DIR = ./spec
FMC_DEL_DIR = ./fmc-delay-1ns-8cha
GRAL_CORES_DIR = $(FMC_DEL_DIR)/hdl/ip_cores/general-cores
WR_CORES_DIR = $(FMC_DEL_DIR)/hdl/ip_cores/wr-cores
GN_4124_DIR = $(FMC_DEL_DIR)/hdl/ip_cores/gn4124-core
all: git_submodules build_syn_makefile
$(MAKE) -C $(MAKE_DIR) -f Makefile
git_submodules:
@cd $(FMC_DEL_DIR); \
@test -d $(GRAL_CORES_DIR)/syn || git submodule update --init ; \
@test -d $(WR_CORES_DIR)/syn || git submodule update --init ; \
@test -d $(GN_4124_DIR)/syn || git submodule update --init
build_syn_makefile:
@cd $(MAKE_DIR); \
hdlmake --make-ise --ise-proj
clean:
$(MAKE) -C $(FMC_DEL_DIR)/spec -f Makefile $@
mrproper:
$(MAKE) -C $(FMC_DEL_DIR)/spec -f Makefile $@
fmc-delay-1ns-8cha/ 0000775 0000000 0000000 00000000000 12412174425 0031403 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/spec/ 0000775 0000000 0000000 00000000000 12412174425 0027233 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/spec/Makefile 0000664 0000000 0000000 00000002567 12412174425 0030705 0 ustar 00root root 0000000 0000000 ########################################
# This file was generated by hdlmake #
# http://ohwr.org/projects/hdl-make/ #
########################################
PROJECT := spec_fine_delay.xise
ISE_CRAP := *.b spec_top_std_summary.html *.tcl spec_top_std.bld spec_top_std.cmd_log *.drc spec_top_std.lso *.ncd spec_top_std.ngc spec_top_std.ngd spec_top_std.ngr spec_top_std.pad spec_top_std.par spec_top_std.pcf spec_top_std.prj spec_top_std.ptwx spec_top_std.stx spec_top_std.syr spec_top_std.twr spec_top_std.twx spec_top_std.gise spec_top_std.unroutes spec_top_std.ut spec_top_std.xpi spec_top_std.xst spec_top_std_bitgen.xwbt spec_top_std_envsettings.html spec_top_std_guide.ncd spec_top_std_map.map spec_top_std_map.mrp spec_top_std_map.ncd spec_top_std_map.ngm spec_top_std_map.xrpt spec_top_std_ngdbuild.xrpt spec_top_std_pad.csv spec_top_std_pad.txt spec_top_std_par.xrpt spec_top_std_summary.xml spec_top_std_usage.xml spec_top_std_xst.xrpt usage_statistics_webtalk.html webtalk.log webtalk_pn.xml run.tcl
#target for performing local synthesis
local:
echo "project open $(PROJECT)" > run.tcl
echo "process run {Generate Programming File} -force rerun_all" >> run.tcl
xtclsh run.tcl
#target for cleaing all intermediate stuff
clean:
rm -f $(ISE_CRAP)
rm -rf xst xlnx_auto_*_xdb iseconfig _xmsgs _ngo
#target for cleaning final files
mrproper:
rm -f *.bit *.bin *.mcs
Manifest.py 0000664 0000000 0000000 00000000521 12412174425 0031272 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/spec target = "xilinx"
action = "synthesis"
fetchto = "../fmc-delay-1ns-8cha/hdl/ip_cores"
syn_device = "xc6slx45t"
syn_grade = "-3"
syn_package = "fgg484"
syn_top = "spec_top_std"
syn_project = "spec_fine_delay.xise"
modules = { "local" : ["../top", "../fmc-delay-1ns-8cha/hdl/platform", "../../etherbone-core"] }
files = "wrc-ethb.ram"
spec_fine_delay.xise 0000664 0000000 0000000 00000275523 12412174425 0033175 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/spec
wrc-ethb.ram 0000664 0000000 0000000 00001362650 12412174425 0031405 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/spec write 0 98000000
write 1 D0000000
write 2 D0200000
write 3 78010000
write 4 38210000
write 5 D0E10000
write 6 F800003A
write 7 34000000
write 8 00000000
write 9 00000000
write a 00000000
write b 00000000
write c 00000000
write d 00000000
write e 00000000
write f 00000000
write 10 00000000
write 11 00000000
write 12 00000000
write 13 00000000
write 14 00000000
write 15 00000000
write 16 00000000
write 17 00000000
write 18 00000000
write 19 00000000
write 1a 00000000
write 1b 00000000
write 1c 00000000
write 1d 00000000
write 1e 00000000
write 1f 00000000
write 20 00000000
write 21 00000000
write 22 00000000
write 23 00000000
write 24 00000000
write 25 00000000
write 26 00000000
write 27 00000000
write 28 00000000
write 29 00000000
write 2a 00000000
write 2b 00000000
write 2c 00000000
write 2d 00000000
write 2e 00000000
write 2f 00000000
write 30 5B9D0000
write 31 F8000020
write 32 34010002
write 33 F8003B0A
write 34 E0000030
write 35 34000000
write 36 34000000
write 37 34000000
write 38 00000000
write 39 00000000
write 3a 00000000
write 3b 00000000
write 3c 00000000
write 3d 00000000
write 3e 00000000
write 3f 00000000
write 40 98000000
write 41 781C0001
write 42 3B9C5FFC
write 43 781A0001
write 44 3B5AB0B0
write 45 78010001
write 46 38213158
write 47 34020000
write 48 78030001
write 49 386351E4
write 4a C8611800
write 4b F8003FBB
write 4c 34010000
write 4d 34020000
write 4e 34030000
write 4f F800004D
write 50 E0000000
write 51 379CFFC4
write 52 5B810004
write 53 5B820008
write 54 5B83000C
write 55 5B840010
write 56 5B850014
write 57 5B860018
write 58 5B87001C
write 59 5B880020
write 5a 5B890024
write 5b 5B8A0028
write 5c 5B9E0034
write 5d 5B9F0038
write 5e 2B81003C
write 5f 5B810030
write 60 BB800800
write 61 3421003C
write 62 5B81002C
write 63 C3A00000
write 64 2B810004
write 65 2B820008
write 66 2B83000C
write 67 2B840010
write 68 2B850014
write 69 2B860018
write 6a 2B87001C
write 6b 2B880020
write 6c 2B890024
write 6d 2B8A0028
write 6e 2B9D0030
write 6f 2B9E0034
write 70 2B9F0038
write 71 2B9C002C
write 72 34000000
write 73 C3C00000
write 74 90001000
write 75 3401FFFE
write 76 A0410800
write 77 D0010000
write 78 90201000
write 79 3401FFFE
write 7a A0410800
write 7b D0210000
write 7c C3A00000
write 7d 90001000
write 7e 3401FFFE
write 7f A0410800
write 80 D0010000
write 81 90201000
write 82 38420001
write 83 D0220000
write 84 38210001
write 85 D0010000
write 86 C3A00000
write 87 379CFFE0
write 88 5B9D0004
write 89 5B83000C
write 8a 78030001
write 8b 5B820008
write 8c 5B840010
write 8d 5B850014
write 8e 5B860018
write 8f 5B87001C
write 90 5B880020
write 91 38633158
write 92 28630000
write 93 5C600006
write 94 20210020
write 95 44230004
write 96 B8400800
write 97 3782000C
write 98 F800276E
write 99 2B9D0004
write 9a 379C0020
write 9b C3A00000
write 9c 379CFFB4
write 9d 5B8B0044
write 9e 5B8C0040
write 9f 5B8D003C
write a0 5B8E0038
write a1 5B8F0034
write a2 5B900030
write a3 5B91002C
write a4 5B920028
write a5 5B930024
write a6 5B940020
write a7 5B95001C
write a8 5B960018
write a9 5B970014
write aa 5B980010
write ab 5B99000C
write ac 5B9B0008
write ad 5B9D0004
write ae 78030001
write af 38632338
write b0 78010001
write b1 28620000
write b2 38213158
write b3 58200000
write b4 78010001
write b5 38215800
write b6 58220000
write b7 F8002F41
write b8 F8003685
write b9 F800367B
write ba 78010001
write bb 3821052C
write bc F800276C
write bd 34010001
write be F8002E50
write bf F8003462
write c0 78010001
write c1 38215130
write c2 58200000
write c3 F8003388
write c4 34010000
write c5 F8002B75
write c6 34020050
write c7 34010000
write c8 F800310A
write c9 34010008
write ca 33810048
write cb 34010030
write cc 3381004A
write cd 37820048
write ce 34010000
write cf 33800049
write d0 F800331B
write d1 3402FFFF
write d2 5C220010
write d3 78010001
write d4 38210548
write d5 F8002753
write d6 34010011
write d7 33810048
write d8 34010022
write d9 33810049
write da 34010033
write db 3381004A
write dc 34010044
write dd 3381004B
write de 34010055
write df 3381004C
write e0 34010066
write e1 3381004D
write e2 43830048
write e3 43840049
write e4 4385004A
write e5 4386004B
write e6 4387004C
write e7 4388004D
write e8 78020001
write e9 3842056C
write ea 34010000
write eb FBFFFF9C
write ec 37810048
write ed F800285C
write ee 34020001
write ef 34010001
write f0 F8002878
write f1 F8002BE8
write f2 F8002D67
write f3 F8000464
write f4 78020001
write f5 384228A0
write f6 34010002
write f7 780B0001
write f8 F800301B
write f9 396B0594
write fa B9600800
write fb F800258A
write fc B9600800
write fd F8002496
write fe F8002271
write ff F8001C7D
write 100 34010003
write 101 F80004AA
write 102 F8000467
write 103 F8001D5C
write 104 78010001
write 105 38212338
write 106 28390000
write 107 78100001
write 108 78150001
write 109 780C0001
write 10a 78140001
write 10b 78120001
write 10c 780D0001
write 10d 780B0001
write 10e 780E0001
write 10f 78110001
write 110 3A1028A4
write 111 341B0004
write 112 3AB505A8
write 113 398C51C8
write 114 340F0002
write 115 3A94059C
write 116 34130001
write 117 34180003
write 118 3A52308C
write 119 39AD3158
write 11a 3417001B
write 11b 396B288C
write 11c 39CE5800
write 11d 3A3105B4
write 11e 34010000
write 11f F800287B
write 120 2A040000
write 121 7C230000
write 122 B820B000
write 123 64810000
write 124 A0610800
write 125 44200008
write 126 34010000
write 127 BA801000
write 128 FBFFFF5F
write 129 29810000
write 12a 34030001
write 12b 582F0004
write 12c E000000D
write 12d 66C20000
write 12e 7C840000
write 12f A0441000
write 130 FC621800
write 131 CB631800
write 132 44410007
write 133 34010000
write 134 BAA01000
write 135 FBFFFF52
write 136 29810000
write 137 34030002
write 138 582F0008
write 139 5A160000
write 13a 446F0009
write 13b 44780004
write 13c 5C73000F
write 13d 5A530000
write 13e E000000D
write 13f F80023CB
write 140 F8002569
write 141 F8002472
write 142 E0000009
write 143 F8000422
write 144 5C380007
write 145 34010002
write 146 34020000
write 147 34030001
write 148 F8003AD4
write 149 34010000
write 14a F8002DB8
write 14b 29A10000
write 14c 5C330003
write 14d F8000069
write 14e E0000004
write 14f 5C2F000A
write 150 34010000
write 151 F800020D
write 152 F8003611
write 153 44370003
write 154 29610000
write 155 5C200005
write 156 F8001C26
write 157 59A00000
write 158 E0000002
write 159 F8001C2D
write 15a F80004D6
write 15b F8003C94
write 15c E0000005
write 15d BA200800
write 15e F80026CA
write 15f 340103E8
write 160 F8002DC5
write 161 29C10000
write 162 5C39FFFB
write 163 E3FFFFBB
write 164 379CFFF4
write 165 5B9D0004
write 166 5B810008
write 167 5B82000C
write 168 B8401800
write 169 4820000C
write 16a 5C200005
write 16b 78020001
write 16c 3842233C
write 16d 28410000
write 16e 54610007
write 16f 78010001
write 170 78020001
write 171 384205C8
write 172 38213168
write 173 F80026A7
write 174 E000000D
write 175 78030001
write 176 38632340
write 177 28620000
write 178 37810008
write 179 F8001B42
write 17a 2B83000C
write 17b B8202000
write 17c 78020001
write 17d 78010001
write 17e 38213168
write 17f 384205CC
write 180 F800269A
write 181 78010001
write 182 38213168
write 183 2B9D0004
write 184 379C000C
write 185 C3A00000
write 186 379CFFF8
write 187 5B8B0008
write 188 5B9D0004
write 189 78010001
write 18a 382128A8
write 18b 780B0001
write 18c 28210000
write 18d 396B2ED4
write 18e E0000004
write 18f 28230000
write 190 44430004
write 191 356B000C
write 192 29620000
write 193 5C40FFFC
write 194 78020001
write 195 34010004
write 196 384205D4
write 197 F8002164
write 198 29630004
write 199 78020001
write 19a 34010007
write 19b 384205E4
write 19c F800215F
write 19d 78010001
write 19e 382133D0
write 19f 28210000
write 1a0 44200007
write 1a1 78010001
write 1a2 382128A8
write 1a3 28210000
write 1a4 28220000
write 1a5 34010009
write 1a6 44410007
write 1a7 78020001
write 1a8 34010001
write 1a9 384205E8
write 1aa F8002151
write 1ab 34010000
write 1ac E0000006
write 1ad 78020001
write 1ae 34010004
write 1af 38420600
write 1b0 F800214B
write 1b1 34010001
write 1b2 2B9D0004
write 1b3 2B8B0008
write 1b4 379C0008
write 1b5 C3A00000
write 1b6 379CFF84
write 1b7 5B8B0010
write 1b8 5B8C000C
write 1b9 5B8D0008
write 1ba 5B9D0004
write 1bb 780B0001
write 1bc 396B3164
write 1bd 29610000
write 1be 5C200003
write 1bf F8002D61
write 1c0 59610000
write 1c1 F8002D5F
write 1c2 78020001
write 1c3 780B0001
write 1c4 3842288C
write 1c5 396B3164
write 1c6 28420000
write 1c7 29630000
write 1c8 B4431000
write 1c9 C8220800
write 1ca 4801018E
write 1cb F8002D55
write 1cc 59610000
write 1cd F8002174
write 1ce 78040001
write 1cf 34010001
write 1d0 34020001
write 1d1 34030004
write 1d2 3884061C
write 1d3 F8002147
write 1d4 78040001
write 1d5 3884063C
write 1d6 34030087
write 1d7 34010002
write 1d8 34020001
write 1d9 F8002141
write 1da 37810068
write 1db 37820074
write 1dc F8002CF6
write 1dd 78020001
write 1de 34010004
write 1df 38420648
write 1e0 F800211B
write 1e1 2B82006C
write 1e2 2B810068
write 1e3 F800208D
write 1e4 78020001
write 1e5 B8201800
write 1e6 384205E4
write 1e7 34010007
write 1e8 F8002113
write 1e9 34020000
write 1ea 37810014
write 1eb F8000229
write 1ec 78040001
write 1ed 34010004
write 1ee 34020001
write 1ef 34030004
write 1f0 38840668
write 1f1 F8002129
write 1f2 78040001
write 1f3 78050001
write 1f4 34010006
write 1f5 34020001
write 1f6 34030007
write 1f7 38840678
write 1f8 38A50594
write 1f9 F8002121
write 1fa 2B81002C
write 1fb 44200005
write 1fc 78020001
write 1fd 34010002
write 1fe 38420680
write 1ff E0000004
write 200 78020001
write 201 34010001
write 202 3842068C
write 203 F80020F8
write 204 2B81002C
write 205 44200150
write 206 3781007C
write 207 37820078
write 208 F8002C4A
write 209 2B830078
write 20a 2B84007C
write 20b 78020001
write 20c 34010087
write 20d 38420698
write 20e 780B0001
write 20f F80020EC
write 210 396B28A8
write 211 29610000
write 212 28210448
write 213 28210010
write 214 282C0008
write 215 5D800037
write 216 78020001
write 217 34010001
write 218 384206B4
write 219 F80020E2
write 21a FBFFFF6C
write 21b 442C013D
write 21c 78020001
write 21d 34010087
write 21e 384206BC
write 21f F80020DC
write 220 29610000
write 221 2821001C
write 222 28240010
write 223 28830004
write 224 4460000B
write 225 78020001
write 226 384206DC
write 227 28840008
write 228 4C030003
write 229 34010007
write 22a E0000003
write 22b 34010007
write 22c C8042000
write 22d F80020CE
write 22e E000012A
write 22f 28830008
write 230 780C0001
write 231 398C06E8
write 232 B9801000
write 233 34010007
write 234 F80020C7
write 235 78020001
write 236 34010087
write 237 384206F0
write 238 F80020C3
write 239 29610000
write 23a B9801000
write 23b 2821001C
write 23c 28230010
write 23d 34010007
write 23e 2863001C
write 23f F80020BC
write 240 78020001
write 241 34010087
write 242 38420710
write 243 F80020B8
write 244 29610000
write 245 B9801000
write 246 2821001C
write 247 28230004
write 248 34010007
write 249 28630028
write 24a F80020B1
write 24b E000010D
write 24c 78010001
write 24d 38213204
write 24e 28210000
write 24f 34020001
write 250 4841000E
write 251 34020002
write 252 4C410004
write 253 34020003
write 254 5C22000A
write 255 E0000005
write 256 78020001
write 257 34010007
write 258 38420730
write 259 E0000008
write 25a 78020001
write 25b 34010007
write 25c 3842073C
write 25d E0000004
write 25e 78020001
write 25f 34010001
write 260 38420748
write 261 F800209A
write 262 2B810040
write 263 44200005
write 264 78020001
write 265 34010002
write 266 38420758
write 267 E0000004
write 268 78020001
write 269 34010001
write 26a 38420764
write 26b F8002090
write 26c 2B810034
write 26d 44200007
write 26e 2B810030
write 26f 44200005
write 270 78020001
write 271 34010002
write 272 38420770
write 273 E0000004
write 274 78020001
write 275 34010001
write 276 38420780
write 277 F8002084
write 278 78020001
write 279 34010007
write 27a 38420790
write 27b F8002080
write 27c 37810070
write 27d F8002487
write 27e 78010001
write 27f 3821308C
write 280 28210000
write 281 44200006
write 282 78020001
write 283 34010001
write 284 38420798
write 285 F8002076
write 286 E0000009
write 287 43830070
write 288 43840071
write 289 43850072
write 28a 43860073
write 28b 78020001
write 28c 34010002
write 28d 384207A8
write 28e F800206D
write 28f FBFFFEF7
write 290 442000C8
write 291 78020001
write 292 34010087
write 293 384207B4
write 294 F8002067
write 295 78020001
write 296 78030001
write 297 34010007
write 298 38421648
write 299 386333D4
write 29a F8002061
write 29b 78020001
write 29c 34010087
write 29d 384207D0
write 29e F800205D
write 29f 78010001
write 2a0 382133D0
write 2a1 28210044
write 2a2 44200005
write 2a3 78020001
write 2a4 34010002
write 2a5 384207EC
write 2a6 E0000004
write 2a7 78020001
write 2a8 34010001
write 2a9 384207F0
write 2aa F8002051
write 2ab 78020001
write 2ac 34010087
write 2ad 384207F8
write 2ae F800204D
write 2af 78020001
write 2b0 78030001
write 2b1 386333F4
write 2b2 34010007
write 2b3 38421648
write 2b4 F8002047
write 2b5 78020001
write 2b6 34010087
write 2b7 38420814
write 2b8 F8002043
write 2b9 34010000
write 2ba F8003BC6
write 2bb B8205800
write 2bc 20210001
write 2bd 44200005
write 2be 78020001
write 2bf 34010002
write 2c0 38420830
write 2c1 F800203A
write 2c2 216B0002
write 2c3 45600005
write 2c4 78020001
write 2c5 34010002
write 2c6 38420838
write 2c7 F8002034
write 2c8 78010001
write 2c9 38210858
write 2ca F800255E
write 2cb 78020001
write 2cc 34010004
write 2cd 38420844
write 2ce F800202D
write 2cf 78020001
write 2d0 34010087
write 2d1 3842085C
write 2d2 780B0001
write 2d3 396B33D0
write 2d4 F8002027
write 2d5 2962004C
write 2d6 29610048
write 2d7 780D0001
write 2d8 39AD0878
write 2d9 FBFFFE8B
write 2da B8201800
write 2db B9A01000
write 2dc 34010007
write 2dd F800201E
write 2de 78020001
write 2df 34010087
write 2e0 38420880
write 2e1 F800201A
write 2e2 29620054
write 2e3 29610050
write 2e4 780C0001
write 2e5 398C08B8
write 2e6 FBFFFE7E
write 2e7 B8201800
write 2e8 B9A01000
write 2e9 34010007
write 2ea F8002011
write 2eb 78020001
write 2ec 34010087
write 2ed 3842089C
write 2ee F800200D
write 2ef 2963005C
write 2f0 29640064
write 2f1 B9801000
write 2f2 34010007
write 2f3 F8002008
write 2f4 78020001
write 2f5 34010087
write 2f6 384208D0
write 2f7 F8002004
write 2f8 29640074
write 2f9 2963006C
write 2fa B9801000
write 2fb 34010007
write 2fc F8001FFF
write 2fd 78020001
write 2fe 34010087
write 2ff 384208EC
write 300 F8001FFB
write 301 29630084
write 302 780C0001
write 303 398C0908
write 304 34010007
write 305 B9801000
write 306 F8001FF5
write 307 78020001
write 308 34010087
write 309 38420910
write 30a F8001FF1
write 30b 2961004C
write 30c 2962005C
write 30d 29640048
write 30e 29630058
write 30f C8221000
write 310 F4410800
write 311 C8831800
write 312 C8611800
write 313 29610064
write 314 29640060
write 315 C8410800
write 316 F4221000
write 317 C8641800
write 318 C8621000
write 319 2963006C
write 31a 29640068
write 31b C8231800
write 31c F4610800
write 31d C8441000
write 31e C8410800
write 31f 29620074
write 320 29640070
write 321 C8621000
write 322 F4431800
write 323 C8240800
write 324 C8230800
write 325 FBFFFE3F
write 326 B8201800
write 327 B9A01000
write 328 34010007
write 329 F8001FD2
write 32a 78020001
write 32b 34010087
write 32c 3842092C
write 32d F8001FCE
write 32e 2963008C
write 32f 34010007
write 330 B9801000
write 331 F8001FCA
write 332 78020001
write 333 34010087
write 334 38420948
write 335 F8001FC6
write 336 29630094
write 337 34010007
write 338 B9801000
write 339 F8001FC2
write 33a 78020001
write 33b 34010087
write 33c 38420964
write 33d F8001FBE
write 33e 2963009C
write 33f 34010007
write 340 B9801000
write 341 F8001FBA
write 342 78020001
write 343 34010087
write 344 38420980
write 345 F8001FB6
write 346 78030001
write 347 3863315C
write 348 28630000
write 349 34010007
write 34a B9801000
write 34b F8001FB0
write 34c 78020001
write 34d 34010087
write 34e 3842099C
write 34f F8001FAC
write 350 296300A4
write 351 78020001
write 352 34010007
write 353 384209B8
write 354 F8001FA7
write 355 78010001
write 356 382109C0
write 357 F80024D1
write 358 2B9D0004
write 359 2B8B0010
write 35a 2B8C000C
write 35b 2B8D0008
write 35c 379C007C
write 35d C3A00000
write 35e 379CFF88
write 35f 5B8B0010
write 360 5B8C000C
write 361 5B8D0008
write 362 5B9D0004
write 363 780B0001
write 364 396B3160
write 365 202C00FF
write 366 29610000
write 367 5C200003
write 368 F8002BB8
write 369 59610000
write 36a 5D80000B
write 36b F8002BB5
write 36c 78030001
write 36d 78020001
write 36e 3863288C
write 36f 38423160
write 370 28630000
write 371 28420000
write 372 B4621000
write 373 C8220800
write 374 49810099
write 375 F8002BAB
write 376 78020001
write 377 38423160
write 378 58410000
write 379 37810068
write 37a 37820070
write 37b F8002B57
write 37c 34020000
write 37d 37810014
write 37e F8000096
write 37f 37810078
write 380 37820074
write 381 F8002AD1
write 382 2B840078
write 383 2B830074
write 384 2B82002C
write 385 78010001
write 386 382109C4
write 387 F80024A1
write 388 2B820040
write 389 78010001
write 38a 382109D8
write 38b 7C420000
write 38c 780B0001
write 38d 396B33D0
write 38e F800249A
write 38f 29620000
write 390 78010001
write 391 382109E4
write 392 7C420000
write 393 F8002495
write 394 78010001
write 395 78020001
write 396 384233D4
write 397 382109EC
write 398 F8002490
write 399 34010000
write 39a F8003AE6
write 39b B8201000
write 39c 78010001
write 39d 382109F8
write 39e F800248A
write 39f 2B830070
write 3a0 2B82006C
write 3a1 78010001
write 3a2 38210A00
write 3a3 F8002485
write 3a4 2962004C
write 3a5 29610048
write 3a6 FBFFFDBE
write 3a7 B8201000
write 3a8 78010001
write 3a9 38210A10
write 3aa F800247E
write 3ab 29620054
write 3ac 29610050
write 3ad FBFFFDB7
write 3ae B8201000
write 3af 78010001
write 3b0 38210A18
write 3b1 F8002477
write 3b2 2962005C
write 3b3 29630064
write 3b4 78010001
write 3b5 38210A20
write 3b6 F8002472
write 3b7 29630074
write 3b8 2962006C
write 3b9 78010001
write 3ba 38210A34
write 3bb F800246D
write 3bc 29620084
write 3bd 78010001
write 3be 38210A48
write 3bf F8002469
write 3c0 2961004C
write 3c1 2962005C
write 3c2 29640048
write 3c3 29630058
write 3c4 C8221000
write 3c5 F4410800
write 3c6 C8831800
write 3c7 C8611800
write 3c8 29610064
write 3c9 29640060
write 3ca C8410800
write 3cb F4221000
write 3cc C8641800
write 3cd C8621000
write 3ce 2963006C
write 3cf 29640068
write 3d0 C8231800
write 3d1 F4610800
write 3d2 C8441000
write 3d3 C8410800
write 3d4 29620074
write 3d5 29640070
write 3d6 C8621000
write 3d7 F4431800
write 3d8 C8240800
write 3d9 C8230800
write 3da FBFFFD8A
write 3db B8201000
write 3dc 78010001
write 3dd 38210A54
write 3de F800244A
write 3df 2962008C
write 3e0 78010001
write 3e1 38210A60
write 3e2 F8002446
write 3e3 29620094
write 3e4 78010001
write 3e5 38210A68
write 3e6 F8002442
write 3e7 3401FFFF
write 3e8 F8003AA3
write 3e9 B8206800
write 3ea 34010000
write 3eb F8003AA0
write 3ec B8206000
write 3ed 34010001
write 3ee F8003A9D
write 3ef 78050001
write 3f0 B8202000
write 3f1 B8A00800
write 3f2 B9801800
write 3f3 B9A01000
write 3f4 38210A74
write 3f5 F8002433
write 3f6 296200A4
write 3f7 78010001
write 3f8 38210A88
write 3f9 780B0001
write 3fa F800242E
write 3fb 396B5130
write 3fc 34020002
write 3fd B9600800
write 3fe F8003229
write 3ff B8206000
write 400 34020001
write 401 B9600800
write 402 F8003225
write 403 2183FFFF
write 404 08632710
write 405 78010001
write 406 15820010
write 407 14630010
write 408 38210A94
write 409 F800241F
write 40a 78010001
write 40b 38210858
write 40c F800241C
write 40d 34010000
write 40e 2B9D0004
write 40f 2B8B0010
write 410 2B8C000C
write 411 2B8D0008
write 412 379C0078
write 413 C3A00000
write 414 379CFFF0
write 415 5B8B000C
write 416 5B8C0008
write 417 5B9D0004
write 418 340C0001
write 419 582C0000
write 41a B8205800
write 41b F800014A
write 41c 34020003
write 41d 5C220004
write 41e 34010002
write 41f 59610004
write 420 E0000002
write 421 596C0004
write 422 3562000C
write 423 35610008
write 424 F800259E
write 425 34010000
write 426 37820010
write 427 34030000
write 428 F800392F
write 429 44200006
write 42a 2B810010
write 42b 59610010
write 42c 34010001
write 42d 59610014
write 42e E0000003
write 42f 59600010
write 430 59600014
write 431 34010000
write 432 F8002568
write 433 59610018
write 434 34010001
write 435 5961001C
write 436 59610020
write 437 34010000
write 438 F80038BA
write 439 5961002C
write 43a 34020000
write 43b 35630034
write 43c 59600030
write 43d 34010000
write 43e F80038ED
write 43f 34011F40
write 440 59610038
write 441 78010001
write 442 382128A0
write 443 28210000
write 444 5961003C
write 445 59610040
write 446 35610044
write 447 F80024E9
write 448 78010001
write 449 38212894
write 44a 28210000
write 44b 5960004C
write 44c 59610050
write 44d 34010000
write 44e 2B9D0004
write 44f 2B8B000C
write 450 2B8C0008
write 451 379C0010
write 452 C3A00000
write 453 379CFFBC
write 454 5B8B0014
write 455 5B8C0010
write 456 5B8D000C
write 457 5B8E0008
write 458 5B9D0004
write 459 5B830030
write 45a 78030001
write 45b 38633180
write 45c 5B82002C
write 45d 5B840034
write 45e 5B850038
write 45f 5B86003C
write 460 5B870040
write 461 5B880044
write 462 286D0000
write 463 B8205800
write 464 B8407000
write 465 34030000
write 466 44200002
write 467 28230018
write 468 B86D1800
write 469 0063001C
write 46a 4460001B
write 46b 780C0001
write 46c 398C3180
write 46d 39A10001
write 46e 59810000
write 46f 29610024
write 470 37820018
write 471 28230000
write 472 B9600800
write 473 D8600000
write 474 78030001
write 475 38632344
write 476 28620000
write 477 2B81001C
write 478 598D0000
write 479 296B04D8
write 47a F8003A60
write 47b 780C0001
write 47c 2B830018
write 47d 398C0AA4
write 47e B8202000
write 47f B9601000
write 480 B9800800
write 481 F80023A7
write 482 B9C00800
write 483 37820030
write 484 F8002382
write 485 2B9D0004
write 486 2B8B0014
write 487 2B8C0010
write 488 2B8D000C
write 489 2B8E0008
write 48a 379C0044
write 48b C3A00000
write 48c 379CFFFC
write 48d 5B9D0004
write 48e B8403000
write 48f 5C600005
write 490 78020001
write 491 38420AC0
write 492 B8C01800
write 493 E0000008
write 494 34020001
write 495 28250008
write 496 5C620007
write 497 78020001
write 498 38420ADC
write 499 B8C01800
write 49a B8A02000
write 49b FBFFFFB8
write 49c E0000006
write 49d 28240004
write 49e 78020001
write 49f 38420AF4
write 4a0 B8C01800
write 4a1 FBFFFFB2
write 4a2 2B9D0004
write 4a3 379C0004
write 4a4 C3A00000
write 4a5 379CFFE8
write 4a6 5B8B0018
write 4a7 5B8C0014
write 4a8 5B8D0010
write 4a9 5B8E000C
write 4aa 5B9D0008
write 4ab B8205800
write 4ac B8407000
write 4ad B8606800
write 4ae 4460001A
write 4af 40480000
write 4b0 78020001
write 4b1 38422FCC
write 4b2 2108000F
write 4b3 3D030002
write 4b4 28260264
write 4b5 B4431000
write 4b6 28420000
write 4b7 28270268
write 4b8 78040001
write 4b9 5B820004
write 4ba 34030001
write 4bb 34020005
write 4bc 38840B14
write 4bd B9A02800
write 4be F8000048
write 4bf 34010021
write 4c0 4C2D0006
write 4c1 B9600800
write 4c2 B9C01000
write 4c3 B9A01800
write 4c4 F800123F
write 4c5 44200003
write 4c6 340D0000
write 4c7 340E0000
write 4c8 780C0001
write 4c9 29610000
write 4ca 398C2ED4
write 4cb E000002D
write 4cc 44410003
write 4cd 358C000C
write 4ce E000002A
write 4cf 59610004
write 4d0 2961000C
write 4d1 59600008
write 4d2 44200006
write 4d3 29820004
write 4d4 B9600800
write 4d5 34030000
write 4d6 B9A02000
write 4d7 FBFFFFB5
write 4d8 29840008
write 4d9 B9A01800
write 4da B9600800
write 4db B9C01000
write 4dc D8800000
write 4dd B8201800
write 4de 44200006
write 4df 296204D8
write 4e0 29840004
write 4e1 78010001
write 4e2 38210B40
write 4e3 F8002345
write 4e4 29610004
write 4e5 29630000
write 4e6 29820004
write 4e7 4461000A
write 4e8 59610000
write 4e9 34010001
write 4ea 5961000C
write 4eb 34030002
write 4ec B9600800
write 4ed 34040000
write 4ee FBFFFF9E
write 4ef 34010000
write 4f0 E000000F
write 4f1 B9600800
write 4f2 5960000C
write 4f3 34030001
write 4f4 34040000
write 4f5 FBFFFF97
write 4f6 29610008
write 4f7 E0000008
write 4f8 29820000
write 4f9 5C40FFD3
write 4fa 296204D8
write 4fb 78010001
write 4fc 38210B5C
write 4fd F800232B
write 4fe 34012710
write 4ff 2B9D0008
write 500 2B8B0018
write 501 2B8C0014
write 502 2B8D0010
write 503 2B8E000C
write 504 379C0018
write 505 C3A00000
write 506 379CFFE0
write 507 5B8B000C
write 508 5B8C0008
write 509 5B9D0004
write 50a 5B850014
write 50b 5B840010
write 50c 78050001
write 50d 5B860018
write 50e 5B87001C
write 50f 5B880020
write 510 B8604800
write 511 B8806000
write 512 38A50B80
write 513 34030000
write 514 44200003
write 515 282504D8
write 516 28230018
write 517 78060001
write 518 38C63180
write 519 28C10000
write 51a B8610800
write 51b 3C430002
write 51c 80230800
write 51d 2021000F
write 51e 55210015
write 51f 78010001
write 520 3821240C
write 521 B4231800
write 522 78060001
write 523 28630000
write 524 780B0001
write 525 396B3184
write 526 B8C01000
write 527 38420B88
write 528 B9202000
write 529 B9600800
write 52a F80022F0
write 52b B9600800
write 52c F8003225
write 52d B9600800
write 52e B9801000
write 52f 37830014
write 530 F8002307
write 531 B9600800
write 532 F800321F
write 533 2B9D0004
write 534 2B8B000C
write 535 2B8C0008
write 536 379C0020
write 537 C3A00000
write 538 379CFFF8
write 539 5B8B0008
write 53a 5B9D0004
write 53b 3402001C
write 53c B8201800
write 53d 340B0000
write 53e 34050003
write 53f E0000008
write 540 3424FFD0
write 541 208600FF
write 542 54C5000A
write 543 BC822000
write 544 34630001
write 545 B9645800
write 546 3442FFFC
write 547 40610000
write 548 68460003
write 549 7C240000
write 54a A0C42000
write 54b 5C80FFF5
write 54c 44200006
write 54d 78010001
write 54e 78020001
write 54f 38210B94
write 550 384223FC
write 551 F80022D7
write 552 B9600800
write 553 2B9D0004
write 554 2B8B0008
write 555 379C0008
write 556 C3A00000
write 557 379CFFFC
write 558 5B9D0004
write 559 F8002A9F
write 55a F80031DA
write 55b F80031E2
write 55c 78010001
write 55d 78020001
write 55e 38420C34
write 55f 38210C04
write 560 F80022C8
write 561 34010000
write 562 2B9D0004
write 563 379C0004
write 564 C3A00000
write 565 78010001
write 566 38213204
write 567 28210000
write 568 C3A00000
write 569 379CFFF8
write 56a 5B8B0008
write 56b 5B9D0004
write 56c 78010001
write 56d 38212DB8
write 56e 780B0001
write 56f F80016F2
write 570 396B28AC
write 571 34030000
write 572 B9600800
write 573 34020000
write 574 FBFFFF31
write 575 78020001
write 576 38422DEC
write 577 58410000
write 578 F80029A8
write 579 78020001
write 57a 38423210
write 57b 58410000
write 57c 29610448
write 57d 28210010
write 57e 58200068
write 57f F8000874
write 580 78010001
write 581 3821320C
write 582 34020001
write 583 58220000
write 584 34010000
write 585 2B9D0004
write 586 2B8B0008
write 587 379C0008
write 588 C3A00000
write 589 379CFFF4
write 58a 5B8B000C
write 58b 5B8C0008
write 58c 5B9D0004
write 58d 780B0001
write 58e 396B28AC
write 58f 29610448
write 590 34020000
write 591 282C0010
write 592 29810000
write 593 28230034
write 594 B9600800
write 595 D8600000
write 596 78010001
write 597 34020000
write 598 340301B8
write 599 59800040
write 59a 31800035
write 59b 38212B3C
write 59c F8003A6A
write 59d 78010001
write 59e 3821320C
write 59f 58200000
write 5a0 0D60028C
write 5a1 F8000852
write 5a2 78010001
write 5a3 38212DB8
write 5a4 F800170A
write 5a5 34010000
write 5a6 2B9D0004
write 5a7 2B8B000C
write 5a8 2B8C0008
write 5a9 379C000C
write 5aa C3A00000
write 5ab 379CFFEC
write 5ac 5B8B0014
write 5ad 5B8C0010
write 5ae 5B8D000C
write 5af 5B8E0008
write 5b0 5B9D0004
write 5b1 780B0001
write 5b2 396B28AC
write 5b3 B8206000
write 5b4 29610448
write 5b5 282D0010
write 5b6 78010001
write 5b7 38213204
write 5b8 58200000
write 5b9 FBFFFFD0
write 5ba 34010002
write 5bb 45810018
write 5bc 34020003
write 5bd 4582002A
write 5be 34010001
write 5bf 5D810039
write 5c0 31AC0004
write 5c1 296204D4
write 5c2 78030001
write 5c3 38632348
write 5c4 78011000
write 5c5 B8410800
write 5c6 28620000
write 5c7 34030001
write 5c8 A0220800
write 5c9 596104D4
write 5ca 78010001
write 5cb 3821302C
write 5cc 34020006
write 5cd 30220000
write 5ce 34010001
write 5cf 34020000
write 5d0 F800364C
write 5d1 380BEA60
write 5d2 E0000027
write 5d3 34010001
write 5d4 31A10004
write 5d5 296204D4
write 5d6 78030001
write 5d7 38632348
write 5d8 78011000
write 5d9 B8410800
write 5da 28620000
write 5db 34030001
write 5dc A0220800
write 5dd 596104D4
write 5de 78010001
write 5df 3821302C
write 5e0 3402FFBB
write 5e1 30220000
write 5e2 34010002
write 5e3 34020000
write 5e4 F8003638
write 5e5 340B0FA0
write 5e6 E0000013
write 5e7 78030001
write 5e8 31A10004
write 5e9 3863234C
write 5ea 296204D4
write 5eb 28610000
write 5ec 34030001
write 5ed A0410800
write 5ee 78022000
write 5ef B8220800
write 5f0 596104D4
write 5f1 78010001
write 5f2 3821302C
write 5f3 3402FFFF
write 5f4 30220000
write 5f5 34010003
write 5f6 34020000
write 5f7 F8003625
write 5f8 340B0000
write 5f9 F8002927
write 5fa 78020001
write 5fb B8207000
write 5fc B8400800
write 5fd 38210C50
write 5fe F800222A
write 5ff 29A20000
write 600 780D0001
write 601 39AD0C6C
write 602 28430034
write 603 78020001
write 604 B8400800
write 605 382128AC
write 606 34020000
write 607 D8600000
write 608 E000000D
write 609 340103E8
write 60a F800291B
write 60b F8002915
write 60c C82E1000
write 60d 51620006
write 60e 78010001
write 60f 38210C5C
write 610 F8002218
write 611 340BFF8C
write 612 E0000008
write 613 B9A00800
write 614 F8002214
write 615 34010000
write 616 F80036DC
write 617 5C200002
write 618 5D61FFF1
write 619 340B0000
write 61a 78010001
write 61b 38210858
write 61c F800220C
write 61d 7D620000
write 61e 65810001
write 61f A0410800
write 620 44200005
write 621 78010001
write 622 3821302C
write 623 34020034
write 624 30220000
write 625 78010001
write 626 38213204
write 627 582C0000
write 628 B9600800
write 629 2B9D0004
write 62a 2B8B0014
write 62b 2B8C0010
write 62c 2B8D000C
write 62d 2B8E0008
write 62e 379C0014
write 62f C3A00000
write 630 379CFFF0
write 631 5B8B0010
write 632 5B8C000C
write 633 5B8D0008
write 634 5B9D0004
write 635 34010000
write 636 F8002364
write 637 78020001
write 638 38423208
write 639 B8205800
write 63a 28410000
write 63b 442B0018
write 63c 78010001
write 63d 3821320C
write 63e 28210000
write 63f 584B0000
write 640 65620000
write 641 7C210000
write 642 A0410800
write 643 44200005
write 644 FBFFFF45
write 645 78010001
write 646 38210C70
write 647 F80021E1
write 648 78010001
write 649 3821320C
write 64a 28210000
write 64b 7D6B0000
write 64c 64210000
write 64d A1615800
write 64e 45600005
write 64f 78010001
write 650 38210C88
write 651 F80021D7
write 652 FBFFFF17
write 653 78010001
write 654 3821320C
write 655 28210000
write 656 4420001B
write 657 780B0001
write 658 396B28AC
write 659 29610020
write 65a 296201BC
write 65b 78040001
write 65c 28250008
write 65d 340300C4
write 65e B9600800
write 65f 38842B10
write 660 D8A00000
write 661 780C0001
write 662 B8201800
write 663 398C2DEC
write 664 5C200009
write 665 780D0001
write 666 F80028BA
write 667 39AD3210
write 668 29A20000
write 669 C8220800
write 66a 29820000
write 66b 54410006
write 66c E000000C
write 66d 296201C4
write 66e B9600800
write 66f FBFFFE36
write 670 59810000
write 671 34010000
write 672 2B9D0004
write 673 2B8B0010
write 674 2B8C000C
write 675 2B8D0008
write 676 379C0010
write 677 C3A00000
write 678 F80028A8
write 679 59A10000
write 67a 34020000
write 67b B9600800
write 67c 34030000
write 67d E3FFFFF2
write 67e 379CFFF8
write 67f 5B8B0008
write 680 5B9D0004
write 681 B8405800
write 682 F800289E
write 683 B42B0800
write 684 5C200002
write 685 34010001
write 686 2B9D0004
write 687 2B8B0008
write 688 379C0008
write 689 C3A00000
write 68a 379CFFF8
write 68b 5B8B0008
write 68c 5B9D0004
write 68d 78040001
write 68e B8405800
write 68f 78050001
write 690 34020006
write 691 34030001
write 692 38840CA0
write 693 38A5242C
write 694 B9603000
write 695 FBFFFE71
write 696 45600005
write 697 1562001F
write 698 34010002
write 699 B9601800
write 69a F80027D0
write 69b 34010000
write 69c 2B9D0004
write 69d 2B8B0008
write 69e 379C0008
write 69f C3A00000
write 6a0 379CFFF4
write 6a1 5B8B000C
write 6a2 5B8C0008
write 6a3 5B9D0004
write 6a4 B8206000
write 6a5 B8405800
write 6a6 B8603000
write 6a7 44600008
write 6a8 78040001
write 6a9 78050001
write 6aa 34020006
write 6ab 34030001
write 6ac 38840CAC
write 6ad 38A52444
write 6ae FBFFFE58
write 6af B9800800
write 6b0 B9601000
write 6b1 FBFFFFD9
write 6b2 2B9D0004
write 6b3 2B8B000C
write 6b4 2B8C0008
write 6b5 379C000C
write 6b6 C3A00000
write 6b7 379CFFF0
write 6b8 5B8B0010
write 6b9 5B8C000C
write 6ba 5B8D0008
write 6bb 5B9D0004
write 6bc B8206800
write 6bd 44400012
write 6be 284B0000
write 6bf 284C0004
write 6c0 34040003
write 6c1 1561001F
write 6c2 B9601000
write 6c3 B9801800
write 6c4 F80027E7
write 6c5 78040001
write 6c6 78050001
write 6c7 B9A00800
write 6c8 34020006
write 6c9 34030001
write 6ca 38840CD8
write 6cb 38A52458
write 6cc B9603000
write 6cd B9803800
write 6ce FBFFFE38
write 6cf 34010000
write 6d0 2B9D0004
write 6d1 2B8B0010
write 6d2 2B8C000C
write 6d3 2B8D0008
write 6d4 379C0010
write 6d5 C3A00000
write 6d6 379CFFE8
write 6d7 5B8B000C
write 6d8 5B8C0008
write 6d9 5B9D0004
write 6da B8405800
write 6db B8206000
write 6dc 37820018
write 6dd 37810010
write 6de F80027F4
write 6df 78020001
write 6e0 38423180
write 6e1 2B860014
write 6e2 2B870018
write 6e3 28410000
write 6e4 59660000
write 6e5 59670004
write 6e6 20210001
write 6e7 5C200009
write 6e8 78040001
write 6e9 78050001
write 6ea B9800800
write 6eb 34020006
write 6ec 34030002
write 6ed 38840CD8
write 6ee 38A52468
write 6ef FBFFFE17
write 6f0 34010000
write 6f1 2B9D0004
write 6f2 2B8B000C
write 6f3 2B8C0008
write 6f4 379C0018
write 6f5 C3A00000
write 6f6 379CFF9C
write 6f7 5B8B0018
write 6f8 5B8C0014
write 6f9 5B8D0010
write 6fa 5B8E000C
write 6fb 5B8F0008
write 6fc 5B9D0004
write 6fd 78050001
write 6fe 282F01E0
write 6ff B8407000
write 700 B8206800
write 701 B8A01000
write 702 340188F7
write 703 B8606000
write 704 0F810042
write 705 384223F4
write 706 34030006
write 707 37810030
write 708 B8805800
write 709 F800387F
write 70a B9802000
write 70b B9E00800
write 70c 3782001C
write 70d B9C01800
write 70e 37850048
write 70f F8001DCB
write 710 B8206000
write 711 45600011
write 712 2B810064
write 713 2B87004C
write 714 2B880050
write 715 78040001
write 716 78050001
write 717 5961000C
write 718 59670000
write 719 59680004
write 71a 59600008
write 71b B9A00800
write 71c 34020005
write 71d 34030002
write 71e 38840CE8
write 71f 38A52478
write 720 B9803000
write 721 FBFFFDE5
write 722 B9800800
write 723 2B9D0004
write 724 2B8B0018
write 725 2B8C0014
write 726 2B8D0010
write 727 2B8E000C
write 728 2B8F0008
write 729 379C0064
write 72a C3A00000
write 72b 379CFFAC
write 72c 5B8B0008
write 72d 5B9D0004
write 72e 282101E0
write 72f B8602800
write 730 B8403000
write 731 B8805800
write 732 3782000C
write 733 B8A02000
write 734 B8C01800
write 735 37850038
write 736 F8001D14
write 737 4560000B
write 738 2B82003C
write 739 59620000
write 73a 2B820040
write 73b 59620004
write 73c 2B820044
write 73d 59620008
write 73e 2B820054
write 73f 5962000C
write 740 2B820050
write 741 59620010
write 742 2B9D0004
write 743 2B8B0008
write 744 379C0054
write 745 C3A00000
write 746 379CFFFC
write 747 5B9D0004
write 748 282101E0
write 749 F8001CAE
write 74a 34010000
write 74b 2B9D0004
write 74c 379C0004
write 74d C3A00000
write 74e 379CFFBC
write 74f 5B8B0010
write 750 5B8C000C
write 751 5B8D0008
write 752 5B9D0004
write 753 B8205800
write 754 282101E0
write 755 44200002
write 756 F8001CA1
write 757 B9600800
write 758 F8000C96
write 759 34010001
write 75a 5B810024
write 75b 78020001
write 75c 340188F7
write 75d 0F81003A
write 75e 384223F4
write 75f 34030006
write 760 37810028
write 761 F8003827
write 762 34010001
write 763 34020000
write 764 37830014
write 765 F8001C57
write 766 B8206000
write 767 4420000E
write 768 378D0040
write 769 B9A01000
write 76a F8001C43
write 76b B9A01000
write 76c 34030006
write 76d 356101E8
write 76e F800381A
write 76f 356101D0
write 770 596C01E0
write 771 B9A01000
write 772 34030006
write 773 F8003815
write 774 596C01C8
write 775 34010000
write 776 2B9D0004
write 777 2B8B0010
write 778 2B8C000C
write 779 2B8D0008
write 77a 379C0044
write 77b C3A00000
write 77c 379CFFFC
write 77d 5B9D0004
write 77e 34030001
write 77f 34010003
write 780 34020000
write 781 F800349B
write 782 34010000
write 783 34020001
write 784 F800363D
write 785 34010000
write 786 2B9D0004
write 787 379C0004
write 788 C3A00000
write 789 379CFFF4
write 78a 5B8B000C
write 78b 5B8C0008
write 78c 5B9D0004
write 78d 34010000
write 78e B8406000
write 78f F8003563
write 790 45800005
write 791 642C0000
write 792 C80C6000
write 793 398C0001
write 794 E000000F
write 795 780B0001
write 796 396B32E4
write 797 5C2C0004
write 798 59600000
write 799 340CFFFF
write 79a E0000009
write 79b 29610000
write 79c 340C0001
write 79d 5C200006
write 79e 78020001
write 79f 34010003
write 7a0 384228A0
write 7a1 F8002972
write 7a2 596C0000
write 7a3 B9800800
write 7a4 2B9D0004
write 7a5 2B8B000C
write 7a6 2B8C0008
write 7a7 379C000C
write 7a8 C3A00000
write 7a9 34010000
write 7aa C3A00000
write 7ab 379CFFFC
write 7ac 5B9D0004
write 7ad 34010000
write 7ae 34020001
write 7af F8003612
write 7b0 34010000
write 7b1 2B9D0004
write 7b2 379C0004
write 7b3 C3A00000
write 7b4 379CFFFC
write 7b5 5B9D0004
write 7b6 28210448
write 7b7 28210010
write 7b8 2823000C
write 7b9 44430004
write 7ba 5822000C
write 7bb B8400800
write 7bc F8002746
write 7bd 34010000
write 7be 2B9D0004
write 7bf 379C0004
write 7c0 C3A00000
write 7c1 379CFFFC
write 7c2 5B9D0004
write 7c3 F8002738
write 7c4 34020001
write 7c5 5C200003
write 7c6 F80035EB
write 7c7 7C220000
write 7c8 B8400800
write 7c9 2B9D0004
write 7ca 379C0004
write 7cb C3A00000
write 7cc 379CFFF8
write 7cd 5B8B0008
write 7ce 5B9D0004
write 7cf B8202800
write 7d0 B8220800
write 7d1 B8402000
write 7d2 B8605800
write 7d3 44200005
write 7d4 34010001
write 7d5 B8A01000
write 7d6 B8801800
write 7d7 F8002693
write 7d8 45600005
write 7d9 1562001F
write 7da 34010002
write 7db B9601800
write 7dc F800268E
write 7dd 34010000
write 7de 2B9D0004
write 7df 2B8B0008
write 7e0 379C0008
write 7e1 C3A00000
write 7e2 379CFFFC
write 7e3 5B9D0004
write 7e4 B8201000
write 7e5 3401FFFF
write 7e6 F800351D
write 7e7 34010000
write 7e8 2B9D0004
write 7e9 379C0004
write 7ea C3A00000
write 7eb 379CFF98
write 7ec 5B8B0014
write 7ed 5B8C0010
write 7ee 5B8D000C
write 7ef 5B8E0008
write 7f0 5B9D0004
write 7f1 B8406000
write 7f2 282204D8
write 7f3 37810018
write 7f4 B8605800
write 7f5 B8807000
write 7f6 B8A06800
write 7f7 FBFFFC1D
write 7f8 2B820018
write 7f9 34010000
write 7fa 44400014
write 7fb 45C00003
write 7fc 2B810068
write 7fd 59C10000
write 7fe 45A00003
write 7ff 2B810050
write 800 59A10000
write 801 2B820034
write 802 3401FFFD
write 803 4440000B
write 804 45800003
write 805 2B810020
write 806 59810000
write 807 2B820038
write 808 3401FFFD
write 809 44400005
write 80a 34010000
write 80b 45600003
write 80c 2B820024
write 80d 59620000
write 80e 2B9D0004
write 80f 2B8B0014
write 810 2B8C0010
write 811 2B8D000C
write 812 2B8E0008
write 813 379C0068
write 814 C3A00000
write 815 34010000
write 816 C3A00000
write 817 34010000
write 818 C3A00000
write 819 379CFFEC
write 81a 5B8B000C
write 81b 5B8C0008
write 81c 5B9D0004
write 81d 34040000
write 81e B8406000
write 81f B8605800
write 820 37820010
write 821 37830014
write 822 34050000
write 823 5B800014
write 824 5B800010
write 825 FBFFFFC6
write 826 34010001
write 827 5D810003
write 828 2B810010
write 829 E0000002
write 82a 2B810014
write 82b 59610000
write 82c 34010001
write 82d 2B9D0004
write 82e 2B8B000C
write 82f 2B8C0008
write 830 379C0014
write 831 C3A00000
write 832 379CFFFC
write 833 5B9D0004
write 834 F80021A7
write 835 34010000
write 836 2B9D0004
write 837 379C0004
write 838 C3A00000
write 839 379CFFFC
write 83a 5B9D0004
write 83b F80021AB
write 83c 34010000
write 83d 2B9D0004
write 83e 379C0004
write 83f C3A00000
write 840 379CFFFC
write 841 5B9D0004
write 842 28220448
write 843 3403012C
write 844 28420010
write 845 58430028
write 846 40440004
write 847 34030003
write 848 3043002C
write 849 34030BB8
write 84a 58430030
write 84b 34030001
write 84c 58400008
write 84d 30400035
write 84e 58400040
write 84f 58430014
write 850 20840003
write 851 28420000
write 852 5C830004
write 853 28430034
write 854 34020001
write 855 E0000003
write 856 28430034
write 857 34020000
write 858 D8600000
write 859 34010000
write 85a 2B9D0004
write 85b 379C0004
write 85c C3A00000
write 85d 28220024
write 85e 44400008
write 85f 78050001
write 860 34030000
write 861 38A532E8
write 862 34040001
write 863 34060002
write 864 34080003
write 865 E000001F
write 866 28220000
write 867 78010001
write 868 382132E8
write 869 58410014
write 86a E000001C
write 86b 28270000
write 86c 0862050C
write 86d B4E21000
write 86e 28470508
write 86f 58450014
write 870 5CE40010
write 871 28470504
write 872 44E40004
write 873 28420448
write 874 5CE60009
write 875 E0000005
write 876 28420448
write 877 28420010
write 878 30440004
write 879 E000000A
write 87a 28420010
write 87b 30460004
write 87c E0000007
write 87d 28420010
write 87e 30480004
write 87f E0000004
write 880 28420448
write 881 28420010
write 882 30400004
write 883 34630001
write 884 28220024
write 885 4843FFE6
write 886 34010000
write 887 C3A00000
write 888 28210448
write 889 3402006C
write 88a 28210010
write 88b 30200005
write 88c 30220010
write 88d 34010000
write 88e C3A00000
write 88f 28630024
write 890 28220448
write 891 20640003
write 892 28420010
write 893 7C850000
write 894 58450038
write 895 20650008
write 896 20630004
write 897 7CA50000
write 898 7C630000
write 899 30440035
write 89a 58450040
write 89b 58430044
write 89c 2822001C
write 89d 28210448
write 89e 28420010
write 89f 2C210008
write 8a0 0C41002C
write 8a1 C3A00000
write 8a2 379CFFF8
write 8a3 5B8B0008
write 8a4 5B9D0004
write 8a5 28230448
write 8a6 B8205800
write 8a7 28620010
write 8a8 28440064
write 8a9 34020000
write 8aa 4480000F
write 8ab 34020001
write 8ac 58220004
write 8ad 4064000C
write 8ae 1062000B
write 8af 28250024
write 8b0 BC821000
write 8b1 28A30018
write 8b2 084203E8
write 8b3 D8600000
write 8b4 59610454
write 8b5 29610448
write 8b6 34020001
write 8b7 28210010
write 8b8 58200064
write 8b9 B8400800
write 8ba 2B9D0004
write 8bb 2B8B0008
write 8bc 379C0008
write 8bd C3A00000
write 8be 28220448
write 8bf 28420010
write 8c0 40430004
write 8c1 20630002
write 8c2 4460000A
write 8c3 40430035
write 8c4 20630001
write 8c5 44600007
write 8c6 28430008
write 8c7 44600003
write 8c8 28420040
write 8c9 5C400003
write 8ca 34020064
write 8cb 58220004
write 8cc C3A00000
write 8cd 379CFFFC
write 8ce 5B9D0004
write 8cf 28240448
write 8d0 28840010
write 8d1 28860008
write 8d2 34040000
write 8d3 44C00005
write 8d4 58400008
write 8d5 34230214
write 8d6 F800057A
write 8d7 34040001
write 8d8 B8800800
write 8d9 2B9D0004
write 8da 379C0004
write 8db C3A00000
write 8dc 379CFFDC
write 8dd 5B8B0010
write 8de 5B8C000C
write 8df 5B8D0008
write 8e0 5B9D0004
write 8e1 B8205800
write 8e2 2821001C
write 8e3 29620498
write 8e4 2963049C
write 8e5 282D0010
write 8e6 29610448
write 8e7 282C0010
write 8e8 37810014
write 8e9 F800105F
write 8ea 29810008
write 8eb 5C200019
write 8ec 29620220
write 8ed 44410003
write 8ee 29610234
write 8ef 5C200008
write 8f0 78040001
write 8f1 B9600800
write 8f2 34020004
write 8f3 34030001
write 8f4 38840DEC
write 8f5 FBFFFC11
write 8f6 E0000013
write 8f7 B9600800
write 8f8 F800114E
write 8f9 29A20004
write 8fa 29810000
write 8fb 44400005
write 8fc 28230034
write 8fd 34020000
write 8fe B9600800
write 8ff E0000004
write 900 28230034
write 901 34020001
write 902 B9600800
write 903 D8600000
write 904 29620498
write 905 B9600800
write 906 F8000564
write 907 B9600800
write 908 F800058C
write 909 34010000
write 90a 2B9D0004
write 90b 2B8B0010
write 90c 2B8C000C
write 90d 2B8D0008
write 90e 379C0024
write 90f C3A00000
write 910 379CFFFC
write 911 5B9D0004
write 912 F80004E8
write 913 34010000
write 914 2B9D0004
write 915 379C0004
write 916 C3A00000
write 917 379CFFE0
write 918 5B8B0008
write 919 5B9D0004
write 91a 34030001
write 91b B8205800
write 91c 44830004
write 91d 3403000C
write 91e 5C830036
write 91f E0000025
write 920 3562048C
write 921 342104B0
write 922 F8000E55
write 923 2962026C
write 924 596004C0
write 925 3781001C
write 926 4802000C
write 927 1443001F
write 928 00440010
write 929 3C630010
write 92a 3C420010
write 92b B8641800
write 92c 5B820020
write 92d 340203E8
write 92e 5B83001C
write 92f F800138C
write 930 2B810020
write 931 E000000D
write 932 C8021000
write 933 1443001F
write 934 00440010
write 935 3C630010
write 936 3C420010
write 937 B8641800
write 938 5B820020
write 939 340203E8
write 93a 5B83001C
write 93b F8001380
write 93c 2B810020
write 93d C8010800
write 93e 596104BC
write 93f 35620264
write 940 B9600800
write 941 F8000FC5
write 942 34040100
write 943 E0000011
write 944 28230448
write 945 28640010
write 946 3783000C
write 947 3484003C
write 948 F8000408
write 949 29610448
write 94a 34021000
write 94b 34040100
write 94c 28210010
write 94d 2C23003C
write 94e 5C620006
write 94f 40210004
write 950 20210001
write 951 44200003
write 952 34010066
write 953 59610004
write 954 B8800800
write 955 2B9D0004
write 956 2B8B0008
write 957 379C0020
write 958 C3A00000
write 959 379CFFFC
write 95a 5B9D0004
write 95b 2C230002
write 95c 34040040
write 95d 4C830002
write 95e F800035C
write 95f 2B9D0004
write 960 379C0004
write 961 C3A00000
write 962 379CFFFC
write 963 5B9D0004
write 964 28220448
write 965 28420010
write 966 40430004
write 967 34020040
write 968 44600005
write 969 34040002
write 96a 44640003
write 96b F800030E
write 96c 3402004E
write 96d B8400800
write 96e 2B9D0004
write 96f 379C0004
write 970 C3A00000
write 971 379CFFDC
write 972 5B8B0014
write 973 5B8C0010
write 974 5B8D000C
write 975 5B8E0008
write 976 5B9D0004
write 977 B8406800
write 978 2822000C
write 979 B8205800
write 97a B8607000
write 97b 340C0000
write 97c 4440001C
write 97d 28220448
write 97e 34030064
write 97f 28420010
write 980 30430010
write 981 28220448
write 982 34030002
write 983 28420010
write 984 30430005
write 985 28220024
write 986 28440018
write 987 340203E8
write 988 D8800000
write 989 59610460
write 98a 29610448
write 98b 29620024
write 98c 4025000C
write 98d 1021000B
write 98e 28440018
write 98f BCA12800
write 990 B9600800
write 991 08A203E8
write 992 D8800000
write 993 59610454
write 994 34021000
write 995 B9600800
write 996 F800042A
write 997 B8206000
write 998 29610460
write 999 44200009
write 99a 29610024
write 99b 34020000
write 99c 28240018
write 99d B9600800
write 99e D8800000
write 99f 29620460
write 9a0 C8220800
write 9a1 4C200029
write 9a2 45C00012
write 9a3 4162048D
write 9a4 3401000C
write 9a5 5C41000F
write 9a6 29610448
write 9a7 B9A01000
write 9a8 37830018
write 9a9 28240010
write 9aa B9600800
write 9ab 3484003C
write 9ac F80003A4
write 9ad 29610448
write 9ae 28210010
write 9af 2C22003C
write 9b0 34011001
write 9b1 5C410003
write 9b2 34010065
write 9b3 59610004
write 9b4 5D800004
write 9b5 B9600800
write 9b6 F8000A51
write 9b7 E0000003
write 9b8 34010002
write 9b9 59610004
write 9ba 29620004
write 9bb 29610000
write 9bc 44410002
write 9bd 59600454
write 9be 29610448
write 9bf 28210010
write 9c0 28210028
write 9c1 59610008
write 9c2 B9800800
write 9c3 2B9D0004
write 9c4 2B8B0014
write 9c5 2B8C0010
write 9c6 2B8D000C
write 9c7 2B8E0008
write 9c8 379C0024
write 9c9 C3A00000
write 9ca B9600800
write 9cb 34020005
write 9cc F8001252
write 9cd 34010004
write 9ce 59610004
write 9cf 29610448
write 9d0 59600460
write 9d1 3402006C
write 9d2 28210010
write 9d3 30200005
write 9d4 29610448
write 9d5 28210010
write 9d6 30220010
write 9d7 E3FFFFDD
write 9d8 379CFFDC
write 9d9 5B8B0014
write 9da 5B8C0010
write 9db 5B8D000C
write 9dc 5B8E0008
write 9dd 5B9D0004
write 9de B8406800
write 9df 2822000C
write 9e0 B8205800
write 9e1 B8607000
write 9e2 340C0000
write 9e3 44400012
write 9e4 28220448
write 9e5 34030066
write 9e6 28420010
write 9e7 30430010
write 9e8 28220448
write 9e9 34030001
write 9ea 28420010
write 9eb 30430005
write 9ec 34021001
write 9ed F80003D3
write 9ee B8206000
write 9ef 29610024
write 9f0 34022710
write 9f1 28240018
write 9f2 B9600800
write 9f3 D8800000
write 9f4 59610460
write 9f5 29610460
write 9f6 44200009
write 9f7 29610024
write 9f8 34020000
write 9f9 28240018
write 9fa B9600800
write 9fb D8800000
write 9fc 29620460
write 9fd C8220800
write 9fe 4C200022
write 9ff 45C00012
write a00 4162048D
write a01 3401000C
write a02 5C41000F
write a03 29610448
write a04 B9A01000
write a05 37830018
write a06 28240010
write a07 B9600800
write a08 3484003C
write a09 F8000347
write a0a 29610448
write a0b 28210010
write a0c 2C22003C
write a0d 34011002
write a0e 5C410003
write a0f 34010068
write a10 59610004
write a11 45800003
write a12 34010002
write a13 59610004
write a14 29610448
write a15 28210010
write a16 28210028
write a17 59610008
write a18 B9800800
write a19 2B9D0004
write a1a 2B8B0014
write a1b 2B8C0010
write a1c 2B8D000C
write a1d 2B8E0008
write a1e 379C0024
write a1f C3A00000
write a20 B9600800
write a21 34020005
write a22 F80011FC
write a23 34010006
write a24 59610004
write a25 29610448
write a26 59600460
write a27 3402006C
write a28 28210010
write a29 30220010
write a2a E3FFFFE7
write a2b 379CFFF4
write a2c 5B8B000C
write a2d 5B8C0008
write a2e 5B9D0004
write a2f 28220448
write a30 B8205800
write a31 284C0010
write a32 2822000C
write a33 4440000C
write a34 34020065
write a35 31820010
write a36 29820000
write a37 28420000
write a38 D8400000
write a39 29610024
write a3a 34022710
write a3b 28230018
write a3c B9600800
write a3d D8600000
write a3e 59610460
write a3f 29610460
write a40 44200009
write a41 29610024
write a42 34020000
write a43 28230018
write a44 B9600800
write a45 D8600000
write a46 29620460
write a47 C8220800
write a48 4C200016
write a49 29810000
write a4a 34020000
write a4b 28230004
write a4c B9600800
write a4d D8600000
write a4e 34020001
write a4f 5C220007
write a50 34010067
write a51 59610004
write a52 29810000
write a53 28220008
write a54 B9600800
write a55 D8400000
write a56 29810028
write a57 59610008
write a58 34010000
write a59 2B9D0004
write a5a 2B8B000C
write a5b 2B8C0008
write a5c 379C000C
write a5d C3A00000
write a5e B9600800
write a5f 34020005
write a60 F80011BE
write a61 34010002
write a62 59610004
write a63 59600460
write a64 3401006C
write a65 31810010
write a66 31800005
write a67 E3FFFFEF
write a68 379CFFDC
write a69 5B8B0014
write a6a 5B8C0010
write a6b 5B8D000C
write a6c 5B8E0008
write a6d 5B9D0004
write a6e B8406800
write a6f 2822000C
write a70 B8205800
write a71 B8607000
write a72 340C0000
write a73 44400010
write a74 28220448
write a75 34030067
write a76 28420010
write a77 30430010
write a78 28220448
write a79 28230024
write a7a 28420010
write a7b 28640018
write a7c 28420028
write a7d D8800000
write a7e 59610460
write a7f 34021002
write a80 B9600800
write a81 F800033F
write a82 B8206000
write a83 29610460
write a84 44200009
write a85 29610024
write a86 34020000
write a87 28240018
write a88 B9600800
write a89 D8800000
write a8a 29620460
write a8b C8220800
write a8c 4C200022
write a8d 45C00012
write a8e 4162048D
write a8f 3401000C
write a90 5C41000F
write a91 29610448
write a92 B9A01000
write a93 37830018
write a94 28240010
write a95 B9600800
write a96 3484003C
write a97 F80002B9
write a98 29610448
write a99 28210010
write a9a 2C22003C
write a9b 34011003
write a9c 5C410003
write a9d 3401006A
write a9e 59610004
write a9f 45800003
write aa0 34010002
write aa1 59610004
write aa2 29610448
write aa3 28210010
write aa4 28210028
write aa5 59610008
write aa6 B9800800
write aa7 2B9D0004
write aa8 2B8B0014
write aa9 2B8C0010
write aaa 2B8D000C
write aab 2B8E0008
write aac 379C0024
write aad C3A00000
write aae B9600800
write aaf 34020005
write ab0 F800116E
write ab1 34010004
write ab2 59610004
write ab3 29610448
write ab4 59600460
write ab5 3402006C
write ab6 28210010
write ab7 30200005
write ab8 29610448
write ab9 28210010
write aba 30220010
write abb E3FFFFE4
write abc 379CFFEC
write abd 5B8B0010
write abe 5B8C000C
write abf 5B8D0008
write ac0 5B9D0004
write ac1 28220448
write ac2 B8206000
write ac3 340D0000
write ac4 284B0010
write ac5 2822000C
write ac6 44400010
write ac7 34020068
write ac8 31620010
write ac9 34021003
write aca F80002F6
write acb B8206800
write acc 29810024
write acd 29620030
write ace 28230018
write acf B9800800
write ad0 D8600000
write ad1 59810460
write ad2 29610014
write ad3 44200003
write ad4 34010070
write ad5 31610010
write ad6 29810460
write ad7 44200009
write ad8 29810024
write ad9 34020000
write ada 28230018
write adb B9800800
write adc D8600000
write add 29820460
write ade C8220800
write adf 4C200094
write ae0 41620010
write ae1 3401000E
write ae2 3442FF98
write ae3 204200FF
write ae4 54410086
write ae5 78010001
write ae6 3C420002
write ae7 38212488
write ae8 B4220800
write ae9 28210000
write aea C0200000
write aeb 34010006
write aec E0000002
write aed 34010004
write aee 59810004
write aef 3401006C
write af0 31610010
write af1 E0000079
write af2 29610000
write af3 34020000
write af4 34030000
write af5 2825002C
write af6 34040000
write af7 B9800800
write af8 D8A00000
write af9 5C200071
write afa 3401006F
write afb 31610010
write afc 29610000
write afd 34020001
write afe 28230024
write aff B9800800
write b00 D8600000
write b01 5C200069
write b02 34010070
write b03 31610010
write b04 29610000
write b05 34020001
write b06 37830014
write b07 28240028
write b08 B9800800
write b09 D8800000
write b0a 34020001
write b0b 5C22005F
write b0c 2B810014
write b0d 78040001
write b0e 34020002
write b0f 00250010
write b10 3C210010
write b11 5965001C
write b12 59610018
write b13 34030001
write b14 B9800800
write b15 38840E14
write b16 FBFFF9F0
write b17 29650018
write b18 78040001
write b19 B9800800
write b1a 34020002
write b1b 34030001
write b1c 38840E38
write b1d FBFFF9E9
write b1e 34010071
write b1f 31610010
write b20 29610000
write b21 34020001
write b22 28230020
write b23 B9800800
write b24 D8600000
write b25 5C200045
write b26 34010072
write b27 31610010
write b28 29610000
write b29 28220030
write b2a B9800800
write b2b D8400000
write b2c 5C20003E
write b2d 34010073
write b2e 31610010
write b2f 29610000
write b30 34020002
write b31 28230024
write b32 B9800800
write b33 D8600000
write b34 5C200036
write b35 34010074
write b36 31610010
write b37 29610000
write b38 34020002
write b39 37830014
write b3a 28240028
write b3b B9800800
write b3c D8800000
write b3d 34020001
write b3e 5C22002C
write b3f 2B850014
write b40 78040001
write b41 B9800800
write b42 34020002
write b43 34030001
write b44 38840E5C
write b45 FBFFF9C1
write b46 2B810014
write b47 78040001
write b48 34020002
write b49 00250010
write b4a 3C210010
write b4b 59650024
write b4c 59610020
write b4d 34030001
write b4e B9800800
write b4f 38840E74
write b50 FBFFF9B6
write b51 29650020
write b52 78040001
write b53 B9800800
write b54 34020002
write b55 34030001
write b56 38840E98
write b57 FBFFF9AF
write b58 34010075
write b59 31610010
write b5a 29610000
write b5b 34020002
write b5c 28230020
write b5d B9800800
write b5e D8600000
write b5f 5C20000B
write b60 34010076
write b61 31610010
write b62 B9800800
write b63 34021004
write b64 F800025C
write b65 B8206800
write b66 34010069
write b67 59810004
write b68 34010001
write b69 59610014
write b6a 29610028
write b6b 59810008
write b6c B9A00800
write b6d 2B9D0004
write b6e 2B8B0010
write b6f 2B8C000C
write b70 2B8D0008
write b71 379C0014
write b72 C3A00000
write b73 B9800800
write b74 34020005
write b75 F80010A9
write b76 59800460
write b77 41620005
write b78 34010001
write b79 5C41FF74
write b7a E3FFFF71
write b7b 379CFFE0
write b7c 5B8B0010
write b7d 5B8C000C
write b7e 5B8D0008
write b7f 5B9D0004
write b80 B8406000
write b81 2822000C
write b82 B8205800
write b83 B8606800
write b84 4440000C
write b85 28220448
write b86 34030069
write b87 28420010
write b88 30430010
write b89 28220448
write b8a 28230024
write b8b 28420010
write b8c 28640018
write b8d 28420028
write b8e D8800000
write b8f 59610460
write b90 29610460
write b91 44200009
write b92 29610024
write b93 34020000
write b94 28240018
write b95 B9600800
write b96 D8800000
write b97 29620460
write b98 C8220800
write b99 4C200030
write b9a 5DA00009
write b9b E0000023
write b9c 34020006
write b9d E0000002
write b9e 34020004
write b9f 59620004
write ba0 3402006C
write ba1 30220010
write ba2 E000001C
write ba3 4162048D
write ba4 3401000C
write ba5 5C410019
write ba6 29610448
write ba7 B9801000
write ba8 37830014
write ba9 28240010
write baa B9600800
write bab 3484003C
write bac F80001A4
write bad 29610448
write bae 34031003
write baf 28210010
write bb0 2C22003C
write bb1 5C430006
write bb2 40220005
write bb3 34010001
write bb4 5C41000A
write bb5 3401006A
write bb6 E0000007
write bb7 34031005
write bb8 5C430006
write bb9 40220005
write bba 34010002
write bbb 5C410003
write bbc 3401006B
write bbd 59610004
write bbe 29610448
write bbf 28210010
write bc0 28210028
write bc1 59610008
write bc2 34010000
write bc3 2B9D0004
write bc4 2B8B0010
write bc5 2B8C000C
write bc6 2B8D0008
write bc7 379C0020
write bc8 C3A00000
write bc9 B9600800
write bca 34020005
write bcb F8001053
write bcc 29610448
write bcd 59600460
write bce 34020001
write bcf 28210010
write bd0 40230005
write bd1 5C62FFCD
write bd2 E3FFFFCA
write bd3 379CFFD8
write bd4 5B8B0018
write bd5 5B8C0014
write bd6 5B8D0010
write bd7 5B8E000C
write bd8 5B8F0008
write bd9 5B9D0004
write bda B8406800
write bdb 28220448
write bdc B8205800
write bdd B8607000
write bde 284C0010
write bdf 2822000C
write be0 44400015
write be1 3402006A
write be2 31820010
write be3 2D820048
write be4 44400011
write be5 29820000
write be6 34030000
write be7 34040000
write be8 2845002C
write be9 34020000
write bea D8A00000
write beb 2981004C
write bec 296F0024
write bed 340203E8
write bee F8003339
write bef 29E50018
write bf0 B8202000
write bf1 B8801000
write bf2 B9600800
write bf3 D8A00000
write bf4 59610460
write bf5 2D810048
write bf6 44200013
write bf7 29610460
write bf8 44200011
write bf9 29610024
write bfa 34020000
write bfb 28240018
write bfc B9600800
write bfd D8800000
write bfe 29620460
write bff C8220800
write c00 4C20002D
write c01 E0000008
write c02 34010006
write c03 E0000002
write c04 34010004
write c05 59610004
write c06 3401006C
write c07 31810010
write c08 E000001A
write c09 45C00019
write c0a 4162048D
write c0b 3401000C
write c0c 5C410016
write c0d B9600800
write c0e B9A01000
write c0f 3783001C
write c10 3584003C
write c11 F800013F
write c12 2D82003C
write c13 34011004
write c14 5C41000E
write c15 2D810048
write c16 44200005
write c17 29810000
write c18 28220030
write c19 B9600800
write c1a D8400000
write c1b 41820005
write c1c 34010001
write c1d 5C410003
write c1e 3401006B
write c1f E0000002
write c20 34010068
write c21 59610004
write c22 29810028
write c23 59610008
write c24 34010000
write c25 2B9D0004
write c26 2B8B0018
write c27 2B8C0014
write c28 2B8D0010
write c29 2B8E000C
write c2a 2B8F0008
write c2b 379C0028
write c2c C3A00000
write c2d B9600800
write c2e 34020005
write c2f F8000FEF
write c30 59600460
write c31 41820005
write c32 34010001
write c33 5C41FFD1
write c34 E3FFFFCE
write c35 379CFFF0
write c36 5B8B0010
write c37 5B8C000C
write c38 5B8D0008
write c39 5B9D0004
write c3a 28220448
write c3b B8206000
write c3c 284B0010
write c3d 2822000C
write c3e 44400013
write c3f 29620000
write c40 340D0001
write c41 596D0008
write c42 2842000C
write c43 D8400000
write c44 41610005
write c45 34020000
write c46 5C2D0005
write c47 34021005
write c48 B9800800
write c49 F8000177
write c4a B8201000
write c4b 34010001
write c4c 59610040
write c4d 3401006B
write c4e 31610010
write c4f 3401FFFF
write c50 5C40000B
write c51 41620005
write c52 3401006C
write c53 31610010
write c54 34010002
write c55 5C410003
write c56 34010009
write c57 E0000002
write c58 34010006
write c59 59810004
write c5a 34010000
write c5b 2B9D0004
write c5c 2B8B0010
write c5d 2B8C000C
write c5e 2B8D0008
write c5f 379C0010
write c60 C3A00000
write c61 00430018
write c62 30220003
write c63 30230000
write c64 00430010
write c65 30230001
write c66 00430008
write c67 30230002
write c68 C3A00000
write c69 40220000
write c6a 40230003
write c6b 3C420018
write c6c B8621000
write c6d 40230001
write c6e 40210002
write c6f 3C630010
write c70 3C210008
write c71 B8431000
write c72 B8410800
write c73 C3A00000
write c74 40220000
write c75 40210001
write c76 3C420008
write c77 B8410800
write c78 C3A00000
write c79 379CFFF0
write c7a 5B8B0010
write c7b 5B8C000C
write c7c 5B8D0008
write c7d 5B9D0004
write c7e 2823001C
write c7f 28220448
write c80 B8206000
write c81 2863000C
write c82 28420010
write c83 282B01C0
write c84 4064000E
write c85 340300BA
write c86 48830016
write c87 28420000
write c88 28430004
write c89 34020001
write c8a D8600000
write c8b EC016800
write c8c 2981001C
write c8d C80D6800
write c8e 21AD002E
write c8f 2821000C
write c90 35AD0006
write c91 4021000E
write c92 45A1000A
write c93 78010001
write c94 B9A01000
write c95 38210EBC
write c96 F8001B92
write c97 2981001C
write c98 21AD00FF
write c99 2821000C
write c9a 302D000E
write c9b 316D0030
write c9c 3401004E
write c9d 0D610002
write c9e 34010003
write c9f 0D610040
write ca0 3401000A
write ca1 0D610042
write ca2 34010800
write ca3 0D610044
write ca4 340130DE
write ca5 0D610046
write ca6 3401AD01
write ca7 0D610048
write ca8 34012000
write ca9 0D61004A
write caa 29810448
write cab 28220010
write cac 28430014
write cad 40410004
write cae 44600002
write caf 38210004
write cb0 28420008
write cb1 44400002
write cb2 38210008
write cb3 0D61004C
write cb4 2B9D0004
write cb5 2B8B0010
write cb6 2B8C000C
write cb7 2B8D0008
write cb8 379C0010
write cb9 C3A00000
write cba 379CFFF4
write cbb 5B8B000C
write cbc 5B8C0008
write cbd 5B9D0004
write cbe B8205800
write cbf 34210040
write cc0 B8406000
write cc1 FBFFFFB3
write cc2 2D650044
write cc3 2D640046
write cc4 78070001
write cc5 3CA50008
write cc6 00860008
write cc7 38E72350
write cc8 B8A62800
write cc9 28E60000
write cca 64210003
write ccb 2D630048
write ccc E4A62800
write ccd 2D62004A
write cce A0250800
write ccf 44200010
write cd0 3C840008
write cd1 00610008
write cd2 2084FFFF
write cd3 B8812000
write cd4 206300FF
write cd5 3801DEAD
write cd6 E4812000
write cd7 64630001
write cd8 A0831800
write cd9 44600006
write cda 34012000
write cdb 5C410004
write cdc 3561004C
write cdd FBFFFF97
write cde 59810024
write cdf 2B9D0004
write ce0 2B8B000C
write ce1 2B8C0008
write ce2 379C000C
write ce3 C3A00000
write ce4 379CFFF0
write ce5 5B8B0010
write ce6 5B8C000C
write ce7 5B8D0008
write ce8 5B9D0004
write ce9 B8206000
write cea 28210448
write ceb 204DFFFF
write cec 28210010
write ced 40250005
write cee 44A00003
write cef 34012000
write cf0 5DA1000A
write cf1 78040001
write cf2 B9800800
write cf3 34020005
write cf4 34030001
write cf5 38840ED4
write cf6 B9A03000
write cf7 FBFFF80F
write cf8 34010000
write cf9 E0000051
write cfa 298B01C0
write cfb 34030008
write cfc 41610000
write cfd 202100F0
write cfe 3821000C
write cff 31610000
write d00 34010005
write d01 31610020
write d02 2982001C
write d03 35610022
write d04 28420014
write d05 F8003283
write d06 2981001C
write d07 28210014
write d08 2C210008
write d09 0D6D0036
write d0a 00220008
write d0b 3161002B
write d0c 34010003
write d0d 0D61002C
write d0e 34010800
write d0f 0D610030
write d10 340130DE
write d11 0D610032
write d12 3401AD01
write d13 0D610034
write d14 3162002A
write d15 34011003
write d16 45A10005
write d17 34011004
write d18 34020008
write d19 5DA1002D
write d1a E0000017
write d1b 29810448
write d1c 35620038
write d1d 28210010
write d1e 28230014
write d1f 44600005
write d20 40210034
write d21 31610038
write d22 30400001
write d23 E0000007
write d24 40210034
write d25 3C210008
write d26 38210001
write d27 00230008
write d28 31630038
write d29 30410001
write d2a 29810448
write d2b 28220010
write d2c 3561003A
write d2d 28420030
write d2e FBFFFF33
write d2f 34020014
write d30 E0000016
write d31 29810448
write d32 28220010
write d33 35610038
write d34 2842001C
write d35 FBFFFF2C
write d36 29810448
write d37 28220010
write d38 3561003C
write d39 28420018
write d3a FBFFFF27
write d3b 29810448
write d3c 28220010
write d3d 35610040
write d3e 28420024
write d3f FBFFFF22
write d40 29810448
write d41 28220010
write d42 35610044
write d43 28420020
write d44 FBFFFF1D
write d45 34020018
write d46 34410030
write d47 31600002
write d48 31610003
write d49 0D62002E
write d4a 2B9D0004
write d4b 2B8B0010
write d4c 2B8C000C
write d4d 2B8D0008
write d4e 379C0010
write d4f C3A00000
write d50 379CFFEC
write d51 5B8B0014
write d52 5B8C0010
write d53 5B8D000C
write d54 5B8E0008
write d55 5B9D0004
write d56 B8405800
write d57 B8607000
write d58 34420022
write d59 B8206000
write d5a B8600800
write d5b 34030008
write d5c B8806800
write d5d F800322B
write d5e 3561002A
write d5f FBFFFF15
write d60 0DC10008
write d61 3561002C
write d62 FBFFFF12
write d63 B8202800
write d64 34040003
write d65 2D630030
write d66 2D620032
write d67 2D610034
write d68 44A40007
write d69 78040001
write d6a B9800800
write d6b 34020005
write d6c 34030001
write d6d 38840F08
write d6e E0000022
write d6f 3C650008
write d70 78040001
write d71 00430008
write d72 38842350
write d73 B8A32800
write d74 28830000
write d75 44A30007
write d76 78040001
write d77 B9800800
write d78 34020005
write d79 34030001
write d7a 38840F58
write d7b E0000015
write d7c 3C450008
write d7d 00230008
write d7e 20A5FFFF
write d7f B8A32800
write d80 3802DEAD
write d81 44A20007
write d82 78040001
write d83 B9800800
write d84 34020005
write d85 34030001
write d86 38840F90
write d87 E0000009
write d88 202500FF
write d89 34010001
write d8a 44A10008
write d8b 78040001
write d8c B9800800
write d8d 34020005
write d8e 34030001
write d8f 38840FD4
write d90 FBFFF776
write d91 E0000028
write d92 2D610036
write d93 45A00002
write d94 0DA10000
write d95 34021003
write d96 44220004
write d97 34021004
write d98 5C220021
write d99 E0000012
write d9a 29810448
write d9b 356E0038
write d9c 282D0010
write d9d B9C00800
write d9e FBFFFED6
write d9f 202100FF
write da0 0DA10048
write da1 B9C00800
write da2 FBFFFED2
write da3 00210008
write da4 31A10050
write da5 3561003A
write da6 FBFFFEC3
write da7 29820448
write da8 28420010
write da9 5841004C
write daa E000000F
write dab 29810448
write dac 282C0010
write dad 35610038
write dae FBFFFEBB
write daf 59810058
write db0 3561003C
write db1 FBFFFEB8
write db2 59810054
write db3 35610040
write db4 FBFFFEB5
write db5 59810060
write db6 35610044
write db7 FBFFFEB2
write db8 5981005C
write db9 2B9D0004
write dba 2B8B0014
write dbb 2B8C0010
write dbc 2B8D000C
write dbd 2B8E0008
write dbe 379C0014
write dbf C3A00000
write dc0 379CFFF4
write dc1 5B8B000C
write dc2 5B8C0008
write dc3 5B9D0004
write dc4 2042FFFF
write dc5 B8205800
write dc6 FBFFFF1E
write dc7 B8206000
write dc8 29610020
write dc9 296301FC
write dca 296201B8
write dcb 2827000C
write dcc B5831800
write dcd B9600800
write dce 35640278
write dcf 34050000
write dd0 34060000
write dd1 D8E00000
write dd2 78080001
write dd3 39082FCC
write dd4 4C2C000B
write dd5 29050030
write dd6 78040001
write dd7 B9600800
write dd8 34020005
write dd9 34030001
write dda 38841018
write ddb 3406000C
write ddc FBFFF72A
write ddd 3401FFFF
write dde E000000C
write ddf 29660278
write de0 2967027C
write de1 29080030
write de2 78040001
write de3 B9600800
write de4 34020005
write de5 34030001
write de6 38841038
write de7 B9802800
write de8 FBFFF71E
write de9 34010000
write dea 2B9D0004
write deb 2B8B000C
write dec 2B8C0008
write ded 379C000C
write dee C3A00000
write def 78020001
write df0 38422FC8
write df1 58410000
write df2 C3A00000
write df3 78010001
write df4 382133D0
write df5 58200000
write df6 78010001
write df7 382133C8
write df8 58200000
write df9 C3A00000
write dfa 379CFFF0
write dfb 5B8B0010
write dfc 5B8C000C
write dfd 5B8D0008
write dfe 5B9D0004
write dff 28220448
write e00 282B0014
write e01 34030000
write e02 284D0010
write e03 356400D0
write e04 356500D4
write e05 29A20000
write e06 B8206000
write e07 2846001C
write e08 34020000
write e09 D8C00000
write e0a 3402FFFF
write e0b 5C20003E
write e0c 29A10000
write e0d 34020000
write e0e 28230034
write e0f B9800800
write e10 D8600000
write e11 34010002
write e12 59610010
write e13 29810448
write e14 59600064
write e15 596000D8
write e16 28210010
write e17 28240058
write e18 2C220054
write e19 28230060
write e1a 3C840010
write e1b 2C250018
write e1c B8822000
write e1d 2C22005C
write e1e 3C630010
write e1f 28260024
write e20 B8621800
write e21 2822001C
write e22 3CC60010
write e23 59630058
write e24 3C420010
write e25 59640054
write e26 B8451000
write e27 2C250020
write e28 5962005C
write e29 B8C50800
write e2a 59610060
write e2b 780B0001
write e2c 396B33D0
write e2d 1485001F
write e2e 5964005C
write e2f 59630064
write e30 1464001F
write e31 5962006C
write e32 1443001F
write e33 1422001F
write e34 59610074
write e35 59620070
write e36 78010001
write e37 78020001
write e38 3842105C
write e39 59650058
write e3a 59640060
write e3b 59630068
write e3c 382133D4
write e3d F800322B
write e3e 78010001
write e3f 34020001
write e40 382133C8
write e41 58220000
write e42 78010001
write e43 38213478
write e44 59620000
write e45 596000A0
write e46 596000A4
write e47 58200000
write e48 34020000
write e49 B8400800
write e4a 2B9D0004
write e4b 2B8B0010
write e4c 2B8C000C
write e4d 2B8D0008
write e4e 379C0010
write e4f C3A00000
write e50 28460000
write e51 28450004
write e52 28440008
write e53 28210014
write e54 28420010
write e55 58260078
write e56 58220088
write e57 34020001
write e58 5825007C
write e59 58240080
write e5a 58220084
write e5b 28670000
write e5c 28660004
write e5d 28650008
write e5e 2864000C
write e5f 28630010
write e60 5827008C
write e61 58260090
write e62 58250094
write e63 58240098
write e64 5823009C
write e65 78010001
write e66 38213478
write e67 58220000
write e68 34010000
write e69 C3A00000
write e6a 379CFFF8
write e6b 5B8B0008
write e6c 5B9D0004
write e6d 28250230
write e6e 28240234
write e6f 28230238
write e70 282B0014
write e71 28270228
write e72 2826022C
write e73 596500A8
write e74 596400AC
write e75 2825023C
write e76 28240240
write e77 596300B0
write e78 28230244
write e79 2821024C
write e7a 596700A0
write e7b 596400B8
write e7c 596100C4
write e7d 34010001
write e7e 596100C0
write e7f 1441001F
write e80 596300BC
write e81 596600A4
write e82 596500B4
write e83 34030000
write e84 340403E8
write e85 F800302E
write e86 1423001F
write e87 2063FFFF
write e88 B4621000
write e89 F4621800
write e8a 00420010
write e8b B4610800
write e8c 3C210010
write e8d B8221000
write e8e 34010000
write e8f 596200BC
write e90 2B9D0004
write e91 2B8B0008
write e92 379C0008
write e93 C3A00000
write e94 379CFFB4
write e95 5B8B0044
write e96 5B8C0040
write e97 5B8D003C
write e98 5B8E0038
write e99 5B8F0034
write e9a 5B900030
write e9b 5B91002C
write e9c 5B920028
write e9d 5B930024
write e9e 5B940020
write e9f 5B95001C
write ea0 5B960018
write ea1 5B970014
write ea2 5B980010
write ea3 5B99000C
write ea4 5B9B0008
write ea5 5B9D0004
write ea6 28220448
write ea7 78040001
write ea8 38843478
write ea9 284E0010
write eaa 28820000
write eab B8206800
write eac 282B0014
write ead 44400250
write eae 29630084
write eaf 44600007
write eb0 29620098
write eb1 44400005
write eb2 296200AC
write eb3 44400003
write eb4 296200C0
write eb5 5C400011
write eb6 78010001
write eb7 38213480
write eb8 28220000
write eb9 34420001
write eba 58220000
write ebb 34010005
write ebc 4C220241
write ebd 29640098
write ebe 296500AC
write ebf 296600C0
write ec0 78010001
write ec1 78020001
write ec2 384224DC
write ec3 3821106C
write ec4 F8001964
write ec5 E0000238
write ec6 78020001
write ec7 38423480
write ec8 58400000
write ec9 78020001
write eca 384233D0
write ecb 284500A4
write ecc 284600A0
write ecd 58800000
write ece 34A30001
write ecf F4A32800
write ed0 584300A4
write ed1 B4A62800
write ed2 584500A0
write ed3 78020001
write ed4 38423180
write ed5 2C420000
write ed6 2042000F
write ed7 44400034
write ed8 29660078
write ed9 2967007C
write eda 29680080
write edb 780C0001
write edc 398C109C
write edd 78050001
write ede 34020004
write edf 34030002
write ee0 B9802000
write ee1 38A510AC
write ee2 FBFFF624
write ee3 2966008C
write ee4 29670090
write ee5 29680094
write ee6 78050001
write ee7 B9A00800
write ee8 34020004
write ee9 34030002
write eea B9802000
write eeb 38A510B8
write eec FBFFF61A
write eed 296600A0
write eee 296700A4
write eef 296800A8
write ef0 78050001
write ef1 B9A00800
write ef2 34020004
write ef3 34030002
write ef4 B9802000
write ef5 38A510C4
write ef6 FBFFF610
write ef7 296600B4
write ef8 296700B8
write ef9 296800BC
write efa 78050001
write efb B9A00800
write efc 34020004
write efd 34030002
write efe B9802000
write eff 38A510D0
write f00 FBFFF606
write f01 2966002C
write f02 29670030
write f03 29680034
write f04 78050001
write f05 B9A00800
write f06 34020004
write f07 34030002
write f08 B9802000
write f09 38A510DC
write f0a FBFFF5FC
write f0b 297B0078
write f0c 2977007C
write f0d 29780080
write f0e 296100B4
write f0f 296400BC
write f10 296500B8
write f11 C83B0800
write f12 C8982000
write f13 C8B72800
write f14 E0000002
write f15 348403E8
write f16 B8A01800
write f17 34A5FFFF
write f18 4804FFFD
write f19 78050001
write f1a 38A52340
write f1b 28A20000
write f1c E0000002
write f1d B4621800
write f1e B8203800
write f1f 3421FFFF
write f20 4803FFFD
write f21 2979008C
write f22 29760090
write f23 29720094
write f24 296500A0
write f25 296100A8
write f26 296600A4
write f27 C8B92800
write f28 C8320800
write f29 C8D63000
write f2a E0000002
write f2b 342103E8
write f2c B8C01000
write f2d 34C6FFFF
write f2e 4801FFFD
write f2f 78060001
write f30 38C62340
write f31 28C80000
write f32 E0000002
write f33 B4481000
write f34 B8A03000
write f35 34A5FFFF
write f36 4802FFFD
write f37 C8810800
write f38 C8E63800
write f39 C8622000
write f3a E0000002
write f3b 342103E8
write f3c B8806000
write f3d 3484FFFF
write f3e 4801FFFD
write f3f 78020001
write f40 38422340
write f41 B8E01800
write f42 28440000
write f43 E0000002
write f44 B5846000
write f45 B8601000
write f46 3463FFFF
write f47 480CFFFD
write f48 29730054
write f49 2971005C
write f4a 29630058
write f4b 296F0060
write f4c B6718800
write f4d B6238800
write f4e B62F8800
write f4f 1623001F
write f50 1434001F
write f51 C8318800
write f52 78050001
write f53 38A52354
write f54 59610034
write f55 F6210800
write f56 28A40000
write f57 CA83A000
write f58 CA81A000
write f59 1441001F
write f5a 596C0030
write f5b 340300E8
write f5c 5962002C
write f5d F8002F56
write f5e B6228000
write f5f F6308800
write f60 B6810800
write f61 B6218800
write f62 1581001F
write f63 B9801000
write f64 34030000
write f65 340403E8
write f66 F8002F4D
write f67 15F5001F
write f68 1663001F
write f69 B5F32000
write f6a B6A3A800
write f6b 78030001
write f6c 3863347C
write f6d 28630000
write f6e B6021000
write f6f F5E47800
write f70 1465001F
write f71 F6028000
write f72 B4831800
write f73 F4832000
write f74 B6210800
write f75 B5F5A800
write f76 B6010800
write f77 B6A5A800
write f78 B495A800
write f79 004C0001
write f7a 3C24001F
write f7b 14250001
write f7c B88C6000
write f7d B46C6000
write f7e 296400D0
write f7f F46C1800
write f80 B6A5A800
write f81 B475A800
write f82 1483001F
write f83 CB129000
write f84 F8002F2F
write f85 14340008
write f86 1421001F
write f87 B594A000
write f88 F5946000
write f89 B6A10800
write f8a B581A800
write f8b CAF61000
write f8c CB790800
write f8d E0000002
write f8e 365203E8
write f8f B8406000
write f90 3442FFFF
write f91 4812FFFD
write f92 78060001
write f93 38C62340
write f94 28C20000
write f95 E0000002
write f96 B5826000
write f97 B8208800
write f98 3421FFFF
write f99 480CFFFD
write f9a 378F0048
write f9b 340203E8
write f9c B9E00800
write f9d 5B950048
write f9e 5B94004C
write f9f F8000D1C
write fa0 78030001
write fa1 38632340
write fa2 28620000
write fa3 B8208000
write fa4 B9E00800
write fa5 F8000D16
write fa6 2B82004C
write fa7 B6509000
write fa8 B42C0800
write fa9 B6221000
write faa 340303E7
write fab E0000002
write fac 3652FC18
write fad B8208800
write fae BA409800
write faf 34210001
write fb0 4A43FFFC
write fb1 78040001
write fb2 78050001
write fb3 3884233C
write fb4 38A52358
write fb5 B8400800
write fb6 28830000
write fb7 28A20000
write fb8 E0000002
write fb9 B6228800
write fba B8207800
write fbb BA206000
write fbc 34210001
write fbd 4A23FFFC
write fbe 296100D4
write fbf 340203E8
write fc0 B9E0C000
write fc1 342103E7
write fc2 F8002F18
write fc3 B8208000
write fc4 4C110008
write fc5 BA200800
write fc6 BA001000
write fc7 F8002F40
write fc8 4420000A
write fc9 083303E8
write fca CA216000
write fcb B6729800
write fcc 4D800006
write fcd 78060001
write fce 38C62340
write fcf 28C10000
write fd0 35EFFFFF
write fd1 B5816000
write fd2 3401FFFF
write fd3 5DE10007
write fd4 4C0C0006
write fd5 78020001
write fd6 38422358
write fd7 28410000
write fd8 340F0000
write fd9 B5816000
write fda 4D800007
write fdb C8100800
write fdc 482C0005
write fdd 5DE00004
write fde B5906000
write fdf 0A10FC18
write fe0 B6709800
write fe1 2962002C
write fe2 78050001
write fe3 38A52354
write fe4 28A40000
write fe5 1441001F
write fe6 340300E8
write fe7 F8002ECC
write fe8 B8408000
write fe9 29620030
write fea B820B800
write feb 34030000
write fec 1441001F
write fed 340403E8
write fee F8002EC5
write fef 29760034
write ff0 B6021800
write ff1 F6038000
write ff2 16C4001F
write ff3 B6E10800
write ff4 B476B000
write ff5 78060001
write ff6 38C62354
write ff7 B6010800
write ff8 F4761800
write ff9 B4240800
write ffa 78100001
write ffb 28C40000
write ffc 3A1033D0
write ffd B461B800
write ffe 1701001F
write fff 5A170048
write 1000 5A16004C
write 1001 BB001000
write 1002 340300E8
write 1003 F8002EB0
write 1004 B820C800
write 1005 1621001F
write 1006 B840C000
write 1007 34030000
write 1008 340403E8
write 1009 BA201000
write 100a F8002EA9
write 100b B7021800
write 100c F703C000
write 100d 1642001F
write 100e B7210800
write 100f B4729000
write 1010 B7010800
write 1011 F4721800
write 1012 B4220800
write 1013 B4611800
write 1014 3E810001
write 1015 3EA20001
write 1016 F6812800
write 1017 C8010800
write 1018 7C240000
write 1019 B4A22800
write 101a B4361000
write 101b F4220800
write 101c CAE4B800
write 101d CAE5B800
write 101e 5A030088
write 101f B4372000
write 1020 2963005C
write 1021 29610058
write 1022 29650060
write 1023 5A020084
write 1024 B4611800
write 1025 29610054
write 1026 1466001F
write 1027 5A040080
write 1028 B4A10800
write 1029 1425001F
write 102a C8610800
write 102b F4231800
write 102c C8C52800
write 102d B4221000
write 102e C8A31800
write 102f F4220800
write 1030 B4642000
write 1031 B4240800
write 1032 5A010078
write 1033 78010001
write 1034 38212FC8
write 1035 28210000
write 1036 5A02007C
write 1037 5A12008C
write 1038 5A010044
write 1039 29A10024
write 103a 5A150050
write 103b 5A140054
write 103c 28230018
write 103d 34020000
write 103e 59750068
write 103f 5974006C
write 1040 B9A00800
write 1041 D8600000
write 1042 B8208000
write 1043 29C10000
write 1044 34020000
write 1045 28230004
write 1046 B9A00800
write 1047 D8600000
write 1048 34020001
write 1049 4422000C
write 104a 78040001
write 104b B9A00800
write 104c 34020004
write 104d 34030001
write 104e 388410E8
write 104f FBFFF4B7
write 1050 29C10000
write 1051 34020000
write 1052 28230034
write 1053 B9A00800
write 1054 D8600000
write 1055 78040001
write 1056 78050001
write 1057 B9A00800
write 1058 34020004
write 1059 34030001
write 105a 3884110C
write 105b 38A533D4
write 105c FBFFF4AA
write 105d 29620010
write 105e 34010005
write 105f 3442FFFF
write 1060 5441009D
write 1061 78010001
write 1062 3C420002
write 1063 382124C4
write 1064 B4220800
write 1065 28210000
write 1066 C0200000
write 1067 29C10000
write 1068 28210010
write 1069 D8200000
write 106a 5C200003
write 106b 29610014
write 106c E000001F
write 106d 78040001
write 106e B9A00800
write 106f 34020004
write 1070 34030001
write 1071 38841120
write 1072 FBFFF494
write 1073 E000008A
write 1074 29C10000
write 1075 34020000
write 1076 28230034
write 1077 B9A00800
write 1078 D8600000
write 1079 34010001
write 107a 45E00011
write 107b 78010001
write 107c 78020001
write 107d 3842112C
write 107e 382133D4
write 107f F8002FE9
write 1080 29C10000
write 1081 B9E01000
write 1082 34030000
write 1083 28240014
write 1084 15E1001F
write 1085 D8800000
write 1086 29C10000
write 1087 28220018
write 1088 34010000
write 1089 D8400000
write 108a E0000010
write 108b 59610010
write 108c E0000071
write 108d 78010001
write 108e 78020001
write 108f 382133D4
write 1090 38421138
write 1091 F8002FD7
write 1092 34010003
write 1093 4580FFF8
write 1094 29C10000
write 1095 34020000
write 1096 B9801800
write 1097 28240014
write 1098 34010000
write 1099 D8800000
write 109a 34010001
write 109b E000005D
write 109c 78010001
write 109d 78020001
write 109e 38421144
write 109f 382133D4
write 10a0 F8002FC8
write 10a1 29C20000
write 10a2 098C03E8
write 10a3 28420018
write 10a4 B5930800
write 10a5 59610064
write 10a6 D8400000
write 10a7 34010006
write 10a8 59610014
write 10a9 34010005
write 10aa 59610010
write 10ab 29610068
write 10ac 596000C8
write 10ad 597000CC
write 10ae 59610070
write 10af 2961006C
write 10b0 59610074
write 10b1 E000004C
write 10b2 5DE00002
write 10b3 458F0003
write 10b4 34010002
write 10b5 E0000011
write 10b6 1661001F
write 10b7 98339800
write 10b8 CA611000
write 10b9 F4539800
write 10ba C8010800
write 10bb C8330800
write 10bc 482C000C
write 10bd 5C2C0003
write 10be 3401003B
write 10bf 54410009
write 10c0 29C10000
write 10c1 34020001
write 10c2 28230034
write 10c3 B9A00800
write 10c4 D8600000
write 10c5 34010004
write 10c6 59610010
write 10c7 E0000004
write 10c8 296100D8
write 10c9 34210001
write 10ca 596100D8
write 10cb 296200D8
write 10cc 34010009
write 10cd 4C220030
write 10ce 34010002
write 10cf E3FFFFBC
write 10d0 78010001
write 10d1 78020001
write 10d2 38421150
write 10d3 382133D4
write 10d4 F8002F94
write 10d5 29640064
write 10d6 78020001
write 10d7 384233D0
write 10d8 1481001F
write 10d9 58440094
write 10da 58410090
write 10db 2963006C
write 10dc 29610074
write 10dd 29680068
write 10de 29660070
write 10df C8612800
write 10e0 F4A33800
write 10e1 C9063000
write 10e2 C8C73000
write 10e3 58460098
write 10e4 5845009C
write 10e5 5DE00002
write 10e6 458F0003
write 10e7 34020002
write 10e8 59620010
write 10e9 78020001
write 10ea 38422FC8
write 10eb 28420000
write 10ec 44400011
write 10ed 29C20000
write 10ee B4831800
write 10ef C8610800
write 10f0 28420018
write 10f1 59610064
write 10f2 D8400000
write 10f3 29610068
write 10f4 59610070
write 10f5 2961006C
write 10f6 59610074
write 10f7 34010004
write 10f8 59610014
write 10f9 34010005
write 10fa 59610010
write 10fb 596000C8
write 10fc 597000CC
write 10fd 34010000
write 10fe 2B9D0004
write 10ff 2B8B0044
write 1100 2B8C0040
write 1101 2B8D003C
write 1102 2B8E0038
write 1103 2B8F0034
write 1104 2B900030
write 1105 2B91002C
write 1106 2B920028
write 1107 2B930024
write 1108 2B940020
write 1109 2B95001C
write 110a 2B960018
write 110b 2B970014
write 110c 2B980010
write 110d 2B99000C
write 110e 2B9B0008
write 110f 379C004C
write 1110 C3A00000
write 1111 379CFFE8
write 1112 5B8B0018
write 1113 5B8C0014
write 1114 5B8D0010
write 1115 5B8E000C
write 1116 5B8F0008
write 1117 5B9D0004
write 1118 B8407800
write 1119 2822001C
write 111a B8205800
write 111b B8607000
write 111c 284D0008
write 111d 28220020
write 111e 282C0448
write 111f 28440000
write 1120 D8800000
write 1121 48010056
write 1122 2961001C
write 1123 34030008
write 1124 2824000C
write 1125 416101D0
write 1126 30810004
write 1127 416101D1
write 1128 30810005
write 1129 416101D2
write 112a 30810006
write 112b 3401FFFF
write 112c 30810007
write 112d 3401FFFE
write 112e 30810008
write 112f 416101D3
write 1130 30810009
write 1131 416101D4
write 1132 3081000A
write 1133 416101D5
write 1134 3081000B
write 1135 2961001C
write 1136 2824000C
write 1137 B9800800
write 1138 34820004
write 1139 F8002E4F
write 113a 34010001
write 113b 3180000A
write 113c 0D810008
write 113d 41A10040
write 113e 3181000B
write 113f 34010006
write 1140 3181000C
write 1141 41A10041
write 1142 3181000D
write 1143 34010002
write 1144 3181000E
write 1145 78010001
write 1146 38212F94
write 1147 28240000
write 1148 4480000F
write 1149 B9600800
write 114a B9E01000
write 114b B9C01800
write 114c D8800000
write 114d 4420000A
write 114e 78040001
write 114f 78050001
write 1150 B9600800
write 1151 34020002
write 1152 34030001
write 1153 38841178
write 1154 38A524EC
write 1155 FBFFF3B1
write 1156 E0000021
write 1157 2961001C
write 1158 78040001
write 1159 34020003
write 115a 2825000C
write 115b 34030001
write 115c B9600800
write 115d 40A5000E
write 115e 38841194
write 115f FBFFF3A7
write 1160 2961001C
write 1161 78040001
write 1162 34020003
write 1163 2825000C
write 1164 34030001
write 1165 388411A8
write 1166 40A5000F
write 1167 B9600800
write 1168 FBFFF39E
write 1169 B9600800
write 116a F800040D
write 116b 296201C0
write 116c B9600800
write 116d F80005E8
write 116e 296204D4
write 116f 78011000
write 1170 A0410800
write 1171 5C200003
write 1172 34010004
write 1173 E0000002
write 1174 34010006
write 1175 59610004
write 1176 E0000003
write 1177 340103E8
write 1178 59610008
write 1179 34010000
write 117a 2B9D0004
write 117b 2B8B0018
write 117c 2B8C0014
write 117d 2B8D0010
write 117e 2B8E000C
write 117f 2B8F0008
write 1180 379C0018
write 1181 C3A00000
write 1182 379CFFF4
write 1183 5B8B000C
write 1184 5B8C0008
write 1185 5B9D0004
write 1186 2822000C
write 1187 B8205800
write 1188 44400006
write 1189 28220024
write 118a 28430018
write 118b 34020FA0
write 118c D8600000
write 118d 5961045C
write 118e 2961045C
write 118f 44200009
write 1190 29610024
write 1191 34020000
write 1192 28230018
write 1193 B9600800
write 1194 D8600000
write 1195 2962045C
write 1196 C8220800
write 1197 4C200014
write 1198 296C045C
write 1199 34010000
write 119a 4580000A
write 119b 29610024
write 119c 34020000
write 119d 28230018
write 119e B9600800
write 119f D8600000
write 11a0 C9810800
write 11a1 A4201000
write 11a2 1442001F
write 11a3 A0220800
write 11a4 59610008
write 11a5 34010000
write 11a6 2B9D0004
write 11a7 2B8B000C
write 11a8 2B8C0008
write 11a9 379C000C
write 11aa C3A00000
write 11ab B9600800
write 11ac 34020004
write 11ad F8000A71
write 11ae 34010001
write 11af 59610004
write 11b0 E3FFFFF5
write 11b1 340203E8
write 11b2 58220008
write 11b3 34010000
write 11b4 C3A00000
write 11b5 379CFFF0
write 11b6 5B8B0010
write 11b7 5B8C000C
write 11b8 5B8D0008
write 11b9 5B9D0004
write 11ba 78040001
write 11bb 38842F94
write 11bc 2884000C
write 11bd B8205800
write 11be B8406800
write 11bf B8606000
write 11c0 44800003
write 11c1 D8800000
write 11c2 5C20001F
write 11c3 2961000C
write 11c4 4420000B
write 11c5 29610448
write 11c6 29630024
write 11c7 4022000C
write 11c8 1021000B
write 11c9 28630018
write 11ca BC411000
write 11cb B9600800
write 11cc 084203E8
write 11cd D8600000
write 11ce 59610454
write 11cf 4580000F
write 11d0 4161048D
write 11d1 44200008
write 11d2 3402000B
write 11d3 5C22000B
write 11d4 B9600800
write 11d5 B9A01000
write 11d6 B9801800
write 11d7 F8000307
write 11d8 E0000005
write 11d9 B9600800
write 11da B9A01000
write 11db B9801800
write 11dc F800031D
write 11dd 5C200004
write 11de B9600800
write 11df F8000228
write 11e0 44200003
write 11e1 34010002
write 11e2 59610004
write 11e3 29620004
write 11e4 29610000
write 11e5 44410002
write 11e6 59600454
write 11e7 296C0454
write 11e8 34010000
write 11e9 4580000A
write 11ea 29610024
write 11eb 34020000
write 11ec 28230018
write 11ed B9600800
write 11ee D8600000
write 11ef C9810800
write 11f0 A4201000
write 11f1 1442001F
write 11f2 A0220800
write 11f3 59610008
write 11f4 34010000
write 11f5 2B9D0004
write 11f6 2B8B0010
write 11f7 2B8C000C
write 11f8 2B8D0008
write 11f9 379C0010
write 11fa C3A00000
write 11fb 379CFFEC
write 11fc 5B8B0014
write 11fd 5B8C0010
write 11fe 5B8D000C
write 11ff 5B8E0008
write 1200 5B9D0004
write 1201 344B0112
write 1202 3D6B0002
write 1203 B8407000
write 1204 B42B5800
write 1205 29620004
write 1206 B8206000
write 1207 340D0000
write 1208 44400008
write 1209 28220024
write 120a 28430018
write 120b 34020000
write 120c D8600000
write 120d 29620004
write 120e C8220800
write 120f 4C200009
write 1210 B9A00800
write 1211 2B9D0004
write 1212 2B8B0014
write 1213 2B8C0010
write 1214 2B8D000C
write 1215 2B8E0008
write 1216 379C0014
write 1217 C3A00000
write 1218 B9800800
write 1219 B9C01000
write 121a F8000A04
write 121b 340D0001
write 121c 59600004
write 121d E3FFFFF3
write 121e 379CFFEC
write 121f 5B8B0014
write 1220 5B8C0010
write 1221 5B8D000C
write 1222 5B8E0008
write 1223 5B9D0004
write 1224 B8407000
write 1225 2822000C
write 1226 B8205800
write 1227 B8606800
write 1228 340C0000
write 1229 4440000E
write 122a 28230448
write 122b 34020001
write 122c 1063000D
write 122d F8000A00
write 122e 29630448
write 122f B9600800
write 1230 34020003
write 1231 1063000B
write 1232 F80009FB
write 1233 B9600800
write 1234 F8000674
write 1235 B8206000
write 1236 48010055
write 1237 B9600800
write 1238 34020001
write 1239 FBFFFFC2
write 123a 44200015
write 123b B9600800
write 123c F800067A
write 123d 4801004E
write 123e 2961001C
write 123f 356C0278
write 1240 B9801000
write 1241 28230008
write 1242 B9800800
write 1243 34630018
write 1244 F800074F
write 1245 B9801000
write 1246 B9600800
write 1247 F800068C
write 1248 B8206000
write 1249 5C200042
write 124a 29630448
write 124b B9600800
write 124c 34020001
write 124d 1063000D
write 124e F80009DF
write 124f B9600800
write 1250 34020003
write 1251 FBFFFFAA
write 1252 4420000A
write 1253 B9600800
write 1254 F8000654
write 1255 48010036
write 1256 29630448
write 1257 B9600800
write 1258 34020003
write 1259 1063000B
write 125a 340C0000
write 125b F80009D2
write 125c 45A00023
write 125d 78010001
write 125e 38212F94
write 125f 28250010
write 1260 4164048D
write 1261 44A00007
write 1262 B9600800
write 1263 B9C01000
write 1264 B9A01800
write 1265 D8A00000
write 1266 B8202000
write 1267 48010024
write 1268 34010001
write 1269 44810010
write 126a 3401000B
write 126b 44810003
write 126c 5C800013
write 126d E0000006
write 126e B9600800
write 126f B9C01000
write 1270 B9A01800
write 1271 F800026D
write 1272 E0000005
write 1273 B9600800
write 1274 B9C01000
write 1275 B9A01800
write 1276 F8000283
write 1277 B8206000
write 1278 E0000007
write 1279 3562048C
write 127a 356104B0
write 127b F80004FC
write 127c B9600800
write 127d 35620264
write 127e F8000688
write 127f 5D80000C
write 1280 2961001C
write 1281 2821000C
write 1282 4022000E
write 1283 340100FF
write 1284 44410005
write 1285 296204D4
write 1286 78012000
write 1287 A0410800
write 1288 44200005
write 1289 34010004
write 128a E0000002
write 128b 34010002
write 128c 59610004
write 128d 296D0458
write 128e 340C0000
write 128f 45A0000A
write 1290 29610024
write 1291 34020000
write 1292 28230018
write 1293 B9600800
write 1294 D8600000
write 1295 C9A16000
write 1296 A5800800
write 1297 1421001F
write 1298 A1816000
write 1299 296D0450
write 129a 34010000
write 129b 45A0000A
write 129c 29610024
write 129d 34020000
write 129e 28230018
write 129f B9600800
write 12a0 D8600000
write 12a1 C9A10800
write 12a2 A4201000
write 12a3 1442001F
write 12a4 A0220800
write 12a5 4D810002
write 12a6 B9800800
write 12a7 59610008
write 12a8 34010000
write 12a9 2B9D0004
write 12aa 2B8B0014
write 12ab 2B8C0010
write 12ac 2B8D000C
write 12ad 2B8E0008
write 12ae 379C0014
write 12af C3A00000
write 12b0 379CFFF8
write 12b1 5B8B0008
write 12b2 5B9D0004
write 12b3 B8205800
write 12b4 4460000D
write 12b5 4024048D
write 12b6 44800007
write 12b7 34050008
write 12b8 44850007
write 12b9 3405000B
write 12ba 5C850007
write 12bb F8000185
write 12bc E0000004
write 12bd F800019E
write 12be E0000002
write 12bf F80001D9
write 12c0 5C200004
write 12c1 B9600800
write 12c2 F8000145
write 12c3 44200003
write 12c4 34010002
write 12c5 59610004
write 12c6 340103E8
write 12c7 59610008
write 12c8 34010000
write 12c9 2B9D0004
write 12ca 2B8B0008
write 12cb 379C0008
write 12cc C3A00000
write 12cd 379CFFD4
write 12ce 5B8B0014
write 12cf 5B8C0010
write 12d0 5B8D000C
write 12d1 5B8E0008
write 12d2 5B9D0004
write 12d3 B8407000
write 12d4 2822000C
write 12d5 B8205800
write 12d6 B8606800
write 12d7 44400021
write 12d8 F8000718
write 12d9 78010001
write 12da 38212F94
write 12db 28240014
write 12dc 44800007
write 12dd B9600800
write 12de B9C01000
write 12df B9A01800
write 12e0 D8800000
write 12e1 B8206000
write 12e2 5C200061
write 12e3 78030001
write 12e4 3863235C
write 12e5 296204D4
write 12e6 28610000
write 12e7 29630024
write 12e8 A0410800
write 12e9 596104D4
write 12ea 29610448
write 12eb 28630018
write 12ec 4022000C
write 12ed 1021000B
write 12ee BC411000
write 12ef B9600800
write 12f0 084203E8
write 12f1 D8600000
write 12f2 29630448
write 12f3 59610454
write 12f4 34020000
write 12f5 1063000A
write 12f6 B9600800
write 12f7 F8000936
write 12f8 45A00048
write 12f9 4161048D
write 12fa 34020008
write 12fb 44220012
write 12fc 54220003
write 12fd 5C200043
write 12fe E000000A
write 12ff 34020009
write 1300 44220014
write 1301 3402000B
write 1302 5C22003E
write 1303 B9600800
write 1304 B9C01000
write 1305 B9A01800
write 1306 F800013A
write 1307 E000000A
write 1308 B9600800
write 1309 B9C01000
write 130a B9A01800
write 130b F8000150
write 130c E0000005
write 130d B9600800
write 130e B9C01000
write 130f B9A01800
write 1310 F8000188
write 1311 B8206000
write 1312 5C200031
write 1313 E000002D
write 1314 34010035
write 1315 340C0001
write 1316 4C2D002D
write 1317 378C0018
write 1318 B9C00800
write 1319 B9801000
write 131a F8000577
write 131b 29610448
write 131c 37820024
write 131d 34030008
write 131e F8002C49
write 131f 5C20001B
write 1320 2D620472
write 1321 2D6104AA
write 1322 5C410018
write 1323 29610448
write 1324 2C220008
write 1325 2F81002C
write 1326 5C410014
write 1327 296104D4
write 1328 4C200012
write 1329 B9801000
write 132a 3561023C
write 132b F8000655
write 132c 78010001
write 132d 38212F94
write 132e 28220018
write 132f 44400006
write 1330 B9600800
write 1331 D8400000
write 1332 B8206000
write 1333 5C200010
write 1334 E0000003
write 1335 B9600800
write 1336 F8000710
write 1337 416104AD
write 1338 3161046E
write 1339 E0000007
write 133a 78040001
write 133b B9600800
write 133c 34020005
write 133d 34030002
write 133e 388411C0
write 133f FBFFF1C7
write 1340 B9600800
write 1341 F80000C6
write 1342 B8206000
write 1343 2961044C
write 1344 44200009
write 1345 29610024
write 1346 34020000
write 1347 28230018
write 1348 B9600800
write 1349 D8600000
write 134a 2962044C
write 134b C8220800
write 134c 4C20002F
write 134d 45800004
write 134e 34010002
write 134f 59610004
write 1350 E0000023
write 1351 29620004
write 1352 29610000
write 1353 44410005
write 1354 59600454
write 1355 5960044C
write 1356 B9600800
write 1357 F8000699
write 1358 296D0454
write 1359 340C0000
write 135a 45A0000A
write 135b 29610024
write 135c 34020000
write 135d 28230018
write 135e B9600800
write 135f D8600000
write 1360 C9A16000
write 1361 A5800800
write 1362 1421001F
write 1363 A1816000
write 1364 296D044C
write 1365 B9800800
write 1366 45A0000A
write 1367 29610024
write 1368 34020000
write 1369 28230018
write 136a B9600800
write 136b D8600000
write 136c C9A10800
write 136d A4201000
write 136e 1442001F
write 136f A0220800
write 1370 4D810002
write 1371 B9800800
write 1372 59610008
write 1373 34010000
write 1374 2B9D0004
write 1375 2B8B0014
write 1376 2B8C0010
write 1377 2B8D000C
write 1378 2B8E0008
write 1379 379C002C
write 137a C3A00000
write 137b B9600800
write 137c 34020000
write 137d F80008A1
write 137e B9600800
write 137f 5960044C
write 1380 F8000569
write 1381 29630280
write 1382 29620284
write 1383 29650278
write 1384 2964027C
write 1385 B8206000
write 1386 29610288
write 1387 59630230
write 1388 29630448
write 1389 59620234
write 138a 59610238
write 138b 59650228
write 138c 5964022C
write 138d 1063000A
write 138e B9600800
write 138f 34020000
write 1390 F800089D
write 1391 2962001C
write 1392 35610228
write 1393 28430008
write 1394 B8201000
write 1395 34630018
write 1396 F80005FD
write 1397 E3FFFFB6
write 1398 379CFFF8
write 1399 5B8B0008
write 139a 5B9D0004
write 139b 28220448
write 139c 28240024
write 139d B8205800
write 139e 4043000C
write 139f 1042000B
write 13a0 BC621000
write 13a1 28830018
write 13a2 084203E8
write 13a3 D8600000
write 13a4 59610454
write 13a5 2B9D0004
write 13a6 2B8B0008
write 13a7 379C0008
write 13a8 C3A00000
write 13a9 379CFFE4
write 13aa 5B8B001C
write 13ab 5B8C0018
write 13ac 5B8D0014
write 13ad 5B8E0010
write 13ae 5B8F000C
write 13af 5B900008
write 13b0 5B9D0004
write 13b1 340C0000
write 13b2 B8205800
write 13b3 B8407000
write 13b4 342F048C
write 13b5 343004A0
write 13b6 E0000012
write 13b7 098D0058
write 13b8 BA000800
write 13b9 3403000A
write 13ba 35A20290
write 13bb B5621000
write 13bc F8002BAB
write 13bd 5C20000A
write 13be B56D0800
write 13bf B9E01000
write 13c0 342102C4
write 13c1 F80003B6
write 13c2 B56D5800
write 13c3 B9C00800
write 13c4 3562029C
write 13c5 F800042C
write 13c6 E000001F
write 13c7 358C0001
write 13c8 2D63028C
write 13c9 486CFFEE
write 13ca 34010004
write 13cb 54610003
write 13cc 34630001
write 13cd 0D63028C
write 13ce 2D6D028C
write 13cf 3403000A
write 13d0 356204A0
write 13d1 35ADFFFF
write 13d2 09AC0058
write 13d3 35810290
write 13d4 B5610800
write 13d5 F8002BB3
write 13d6 B56C0800
write 13d7 B9E01000
write 13d8 342102C4
write 13d9 F800039E
write 13da B56C1000
write 13db B9C00800
write 13dc 3442029C
write 13dd F8000414
write 13de 78040001
write 13df B9600800
write 13e0 34020003
write 13e1 34030001
write 13e2 388411F0
write 13e3 B9A02800
write 13e4 FBFFF122
write 13e5 2B9D0004
write 13e6 2B8B001C
write 13e7 2B8C0018
write 13e8 2B8D0014
write 13e9 2B8E0010
write 13ea 2B8F000C
write 13eb 2B900008
write 13ec 379C001C
write 13ed C3A00000
write 13ee 282201FC
write 13ef 34240028
write 13f0 34030000
write 13f1 B4822000
write 13f2 20850003
write 13f3 44A00003
write 13f4 34030004
write 13f5 C8651800
write 13f6 342500F0
write 13f7 B4832000
write 13f8 B4A22800
write 13f9 582401C0
write 13fa 20A60003
write 13fb 34030000
write 13fc 44C00003
write 13fd 34030004
write 13fe C8661800
write 13ff B4A31800
write 1400 C8021000
write 1401 B4822000
write 1402 B4621000
write 1403 582301C4
write 1404 582401B8
write 1405 582201BC
write 1406 C3A00000
write 1407 379CFFF4
write 1408 5B8B000C
write 1409 5B8C0008
write 140a 5B9D0004
write 140b 78020001
write 140c 38422F94
write 140d 28420020
write 140e B8205800
write 140f 44400006
write 1410 D8400000
write 1411 B8206000
write 1412 34010001
write 1413 4581001B
write 1414 480C001B
write 1415 29610454
write 1416 340C0000
write 1417 44200018
write 1418 29610024
write 1419 34020000
write 141a 28230018
write 141b B9600800
write 141c D8600000
write 141d 29620454
write 141e C8220800
write 141f 4C200016
write 1420 E000000F
write 1421 296204D4
write 1422 78012000
write 1423 A0410800
write 1424 5C200006
write 1425 B9600800
write 1426 F8000151
write 1427 34010006
write 1428 59610004
write 1429 E0000006
write 142a 34010004
write 142b 59610004
write 142c B9600800
write 142d FBFFFF6B
write 142e 340C0000
write 142f B9800800
write 1430 2B9D0004
write 1431 2B8B000C
write 1432 2B8C0008
write 1433 379C000C
write 1434 C3A00000
write 1435 B9600800
write 1436 34020002
write 1437 F80007E7
write 1438 2961001C
write 1439 59600454
write 143a 0D60028C
write 143b 2821000C
write 143c 4022000E
write 143d 340100FF
write 143e 5C41FFE3
write 143f E3FFFFEB
write 1440 379CFFF4
write 1441 5B8B000C
write 1442 5B8C0008
write 1443 5B9D0004
write 1444 3404003F
write 1445 B8205800
write 1446 340CFFFF
write 1447 4C83000E
write 1448 FBFFFF61
write 1449 B9600800
write 144a FBFFFF4E
write 144b B9600800
write 144c F8000185
write 144d 59610004
write 144e 78010001
write 144f 38212F94
write 1450 28220024
write 1451 340C0000
write 1452 44400003
write 1453 B9600800
write 1454 D8400000
write 1455 B9800800
write 1456 2B9D0004
write 1457 2B8B000C
write 1458 2B8C0008
write 1459 379C000C
write 145a C3A00000
write 145b 379CFFE0
write 145c 5B8B0014
write 145d 5B8C0010
write 145e 5B8D000C
write 145f 5B8E0008
write 1460 5B9D0004
write 1461 B8205800
write 1462 3401002B
write 1463 B8407000
write 1464 340CFFFF
write 1465 4C23002B
write 1466 296104D4
write 1467 340C0000
write 1468 4C200028
write 1469 2963026C
write 146a 29620270
write 146b 29610274
write 146c 29650264
write 146d 29640268
write 146e 5963021C
write 146f 59620220
write 1470 2963049C
write 1471 29620498
write 1472 59610224
write 1473 59650214
write 1474 35610250
write 1475 59640218
write 1476 F80004D2
write 1477 41610493
write 1478 20210002
write 1479 44200008
write 147a 296204D4
write 147b 78014000
write 147c B8410800
write 147d 596104D4
write 147e 2D6104AA
write 147f 0D61046C
write 1480 E0000010
write 1481 378D0018
write 1482 B9C00800
write 1483 B9A01000
write 1484 F800031D
write 1485 78030001
write 1486 3863235C
write 1487 296204D4
write 1488 28610000
write 1489 A0410800
write 148a 596104D4
write 148b B9A01000
write 148c 35610200
write 148d F80004F3
write 148e B9600800
write 148f F8000597
write 1490 B9800800
write 1491 2B9D0004
write 1492 2B8B0014
write 1493 2B8C0010
write 1494 2B8D000C
write 1495 2B8E0008
write 1496 379C0020
write 1497 C3A00000
write 1498 379CFFE4
write 1499 5B8B0010
write 149a 5B8C000C
write 149b 5B8D0008
write 149c 5B9D0004
write 149d B8205800
write 149e B8400800
write 149f 3402002B
write 14a0 3404FFFF
write 14a1 4C430036
write 14a2 296204D4
write 14a3 78038000
write 14a4 A0431800
write 14a5 5C600004
write 14a6 78010001
write 14a7 38211210
write 14a8 E0000006
write 14a9 78034000
write 14aa A0431000
write 14ab 5C400007
write 14ac 78010001
write 14ad 3821124C
write 14ae 78020001
write 14af 384224FC
write 14b0 F8001378
write 14b1 E0000025
write 14b2 2D64046C
write 14b3 2D6304AA
write 14b4 44830007
write 14b5 78010001
write 14b6 78020001
write 14b7 384224FC
write 14b8 38211284
write 14b9 F800136F
write 14ba E000001C
write 14bb 378D0014
write 14bc B9A01000
write 14bd F8000375
write 14be 78030001
write 14bf 3863235C
write 14c0 296204D4
write 14c1 28610000
write 14c2 356C0200
write 14c3 A0410800
write 14c4 596104D4
write 14c5 B9A01000
write 14c6 B9800800
write 14c7 F80004B9
write 14c8 78030001
write 14c9 38632F94
write 14ca 28640028
write 14cb 44800009
write 14cc B9600800
write 14cd B9801000
write 14ce 35630250
write 14cf D8800000
write 14d0 B8202000
write 14d1 34010001
write 14d2 44810004
write 14d3 48040004
write 14d4 B9600800
write 14d5 F8000551
write 14d6 34040000
write 14d7 B8800800
write 14d8 2B9D0004
write 14d9 2B8B0010
write 14da 2B8C000C
write 14db 2B8D0008
write 14dc 379C001C
write 14dd C3A00000
write 14de 379CFFF4
write 14df 5B8B000C
write 14e0 5B8C0008
write 14e1 5B9D0004
write 14e2 B8406000
write 14e3 3402003F
write 14e4 B8205800
write 14e5 3404FFFF
write 14e6 4C43000D
write 14e7 78040001
write 14e8 388412C4
write 14e9 34030002
write 14ea 34020003
write 14eb FBFFF01B
write 14ec B9600800
write 14ed B9801000
write 14ee FBFFFEBB
write 14ef B9600800
write 14f0 F80000E1
write 14f1 59610004
write 14f2 34040000
write 14f3 B8800800
write 14f4 2B9D0004
write 14f5 2B8B000C
write 14f6 2B8C0008
write 14f7 379C000C
write 14f8 C3A00000
write 14f9 34010000
write 14fa C3A00000
write 14fb 379CFFFC
write 14fc 5B9D0004
write 14fd 34030008
write 14fe F8002A69
write 14ff 2B9D0004
write 1500 379C0004
write 1501 C3A00000
write 1502 379CFFE0
write 1503 5B8B0020
write 1504 5B8C001C
write 1505 5B8D0018
write 1506 5B8E0014
write 1507 5B8F0010
write 1508 5B90000C
write 1509 5B910008
write 150a 5B9D0004
write 150b 780E0001
write 150c 39CE251C
write 150d 78040001
write 150e B8406800
write 150f B8606000
write 1510 34020003
write 1511 34030002
write 1512 38841648
write 1513 B9C02800
write 1514 B8207800
write 1515 35B10021
write 1516 FBFFEFF0
write 1517 35900021
write 1518 BA200800
write 1519 BA001000
write 151a FBFFFFE1
write 151b 5C200033
write 151c 2D81002A
write 151d 2DAB002A
write 151e C9615800
write 151f 35620001
write 1520 34010002
write 1521 54410043
write 1522 29E2001C
write 1523 34030001
write 1524 35A10048
write 1525 28420014
write 1526 5D63000B
write 1527 FBFFFFD4
write 1528 5C20003C
write 1529 78040001
write 152a B9E00800
write 152b 34020003
write 152c 34030001
write 152d 388412F4
write 152e B9C02800
write 152f 3406008F
write 1530 E000000E
write 1531 3403FFFF
write 1532 358C0048
write 1533 5D63000E
write 1534 B9800800
write 1535 FBFFFFC6
write 1536 5C20002E
write 1537 78040001
write 1538 B9E00800
write 1539 34020003
write 153a 34030001
write 153b 388412F4
write 153c B9C02800
write 153d 34060098
write 153e FBFFEFC8
write 153f 340B0000
write 1540 E0000024
write 1541 B9801000
write 1542 FBFFFFB9
write 1543 B8205800
write 1544 5C200020
write 1545 78040001
write 1546 B9E00800
write 1547 34020003
write 1548 34030001
write 1549 38841304
write 154a B9C02800
write 154b 340600A0
write 154c FBFFEFBA
write 154d E0000017
write 154e 41AB001A
write 154f 4181001A
write 1550 5D61000E
write 1551 41AB001C
write 1552 4181001C
write 1553 5D61000B
write 1554 41AB001D
write 1555 4181001D
write 1556 5D610008
write 1557 2DA2001E
write 1558 2D81001E
write 1559 340B0000
write 155a 5C41000A
write 155b 41AB0020
write 155c 41810020
write 155d 45610003
write 155e C9615800
write 155f E0000005
write 1560 BA200800
write 1561 BA001000
write 1562 FBFFFF99
write 1563 B8205800
write 1564 B9600800
write 1565 2B9D0004
write 1566 2B8B0020
write 1567 2B8C001C
write 1568 2B8D0018
write 1569 2B8E0014
write 156a 2B8F0010
write 156b 2B90000C
write 156c 2B910008
write 156d 379C0020
write 156e C3A00000
write 156f 379CFFFC
write 1570 5B9D0004
write 1571 34020000
write 1572 34030014
write 1573 F8002A93
write 1574 2B9D0004
write 1575 379C0004
write 1576 C3A00000
write 1577 379CFFF0
write 1578 5B8B0010
write 1579 5B8C000C
write 157a 5B8D0008
write 157b 5B9D0004
write 157c B8206800
write 157d 2821001C
write 157e 282C0014
write 157f 282B000C
write 1580 28210010
write 1581 0C200000
write 1582 34210004
write 1583 FBFFFFEC
write 1584 29A1001C
write 1585 28210010
write 1586 34210018
write 1587 FBFFFFE8
write 1588 B9800800
write 1589 34020000
write 158a 34030020
write 158b F8002A7B
write 158c 29610004
write 158d 3402FFA0
write 158e 59810000
write 158f 29610008
write 1590 59810004
write 1591 29610004
write 1592 59810010
write 1593 29610008
write 1594 59810014
write 1595 2D61000E
write 1596 0D810018
write 1597 2D610010
write 1598 0D81001A
write 1599 41610012
write 159a 3181001C
write 159b 41610013
write 159c 3181001D
write 159d 29A1001C
write 159e 28210018
write 159f 3022001C
write 15a0 2B9D0004
write 15a1 2B8B0010
write 15a2 2B8C000C
write 15a3 2B8D0008
write 15a4 379C0010
write 15a5 C3A00000
write 15a6 379CFFF0
write 15a7 5B8B0010
write 15a8 5B8C000C
write 15a9 5B8D0008
write 15aa 5B9D0004
write 15ab 340D0000
write 15ac B8205800
write 15ad 340C0001
write 15ae E0000015
write 15af 29620000
write 15b0 0981050C
write 15b1 B4410800
write 15b2 2C23028C
write 15b3 4460000F
write 15b4 09A4050C
write 15b5 1C23028E
write 15b6 B4442000
write 15b7 1C82028E
write 15b8 08630058
write 15b9 08420058
write 15ba 34630290
write 15bb B4231800
write 15bc 34420290
write 15bd B4821000
write 15be FBFFFF44
write 15bf 48010002
write 15c0 E0000002
write 15c1 B9806800
write 15c2 358C0001
write 15c3 2961000C
write 15c4 2C21000C
write 15c5 482CFFEA
write 15c6 2961001C
write 15c7 442D0004
write 15c8 34010001
write 15c9 596D001C
write 15ca 59610020
write 15cb 2B9D0004
write 15cc 2B8B0010
write 15cd 2B8C000C
write 15ce 2B8D0008
write 15cf 379C0010
write 15d0 C3A00000
write 15d1 379CFF90
write 15d2 5B8B0014
write 15d3 5B8C0010
write 15d4 5B8D000C
write 15d5 5B8E0008
write 15d6 5B9D0004
write 15d7 2C22028C
write 15d8 B8205800
write 15d9 340D0000
write 15da 340C0001
write 15db 5C400014
write 15dc 28230000
write 15dd B8406800
write 15de 34020006
write 15df 5C620010
write 15e0 FBFFFF97
write 15e1 29610000
write 15e2 E00000E8
write 15e3 09820058
write 15e4 09A30058
write 15e5 B9600800
write 15e6 34420290
write 15e7 34630290
write 15e8 B5621000
write 15e9 B5631800
write 15ea FBFFFF18
write 15eb 48010002
write 15ec E0000002
write 15ed B9806800
write 15ee 358C0001
write 15ef 2D66028C
write 15f0 48CCFFF3
write 15f1 78040001
write 15f2 B9600800
write 15f3 34020003
write 15f4 34030001
write 15f5 38841314
write 15f6 B9A02800
write 15f7 FBFFEF0F
write 15f8 1D61028E
write 15f9 442D0004
write 15fa 2961001C
write 15fb 0D6D028E
write 15fc FBFFFFAA
write 15fd 296104D4
write 15fe 78021000
write 15ff A0221000
write 1600 5C400057
write 1601 78032000
write 1602 A0230800
write 1603 5C220060
write 1604 2D62028C
write 1605 5C410004
write 1606 29620000
write 1607 34010004
write 1608 444100C2
write 1609 2961001C
write 160a 09AC0058
write 160b 2821000C
write 160c 40250008
write 160d 40240009
write 160e 4023000A
write 160f 4022000B
write 1610 40290004
write 1611 40280005
write 1612 40270006
write 1613 40260007
write 1614 33850041
write 1615 33840042
write 1616 33830043
write 1617 3389003D
write 1618 3388003E
write 1619 3387003F
write 161a 33860040
write 161b 33820044
write 161c 2C22000E
write 161d 35830290
write 161e B5631800
write 161f 0F820038
write 1620 2C220010
write 1621 0F82003A
write 1622 40220012
write 1623 33820036
write 1624 40220013
write 1625 0F800046
write 1626 3382003C
write 1627 28220004
write 1628 5B820064
write 1629 28210008
write 162a 3782001C
write 162b 5B810068
write 162c B9600800
write 162d FBFFFED5
write 162e 2962001C
write 162f 78050001
write 1630 38A5252C
write 1631 2843000C
write 1632 1064000E
write 1633 48040004
write 1634 48010023
write 1635 5C20001A
write 1636 E0000007
write 1637 48010020
write 1638 44200005
write 1639 2C63000C
write 163a 34010001
write 163b 5C61000A
write 163c E0000027
write 163d 78040001
write 163e B9600800
write 163f 34020003
write 1640 34030001
write 1641 38841334
write 1642 FBFFEEC4
write 1643 34010002
write 1644 E0000086
write 1645 296304DC
write 1646 2841001C
write 1647 4461001C
write 1648 B56C1000
write 1649 3781003D
write 164a 344202B1
write 164b 5B850018
write 164c FBFFFEAF
write 164d 2B850018
write 164e 5C200009
write 164f 78040001
write 1650 B9600800
write 1651 34020003
write 1652 34030001
write 1653 38841340
write 1654 FBFFEEB2
write 1655 34010007
write 1656 E0000074
write 1657 B9600800
write 1658 FBFFFF1F
write 1659 78040001
write 165a 78050001
write 165b B9600800
write 165c 34020003
write 165d 34030001
write 165e 38841350
write 165f 38A5252C
write 1660 FBFFEEA6
write 1661 34010006
write 1662 E0000068
write 1663 09A30058
write 1664 2962001C
write 1665 B5631800
write 1666 2C6402BA
write 1667 284C0018
write 1668 28410014
write 1669 28420010
write 166a 34840001
write 166b 0C440000
write 166c 346202D0
write 166d 28450008
write 166e 2844000C
write 166f 58250000
write 1670 58240004
write 1671 2C420010
write 1672 0C220008
write 1673 346202A8
write 1674 404E0009
write 1675 4045000F
write 1676 40440010
write 1677 404A000A
write 1678 4049000B
write 1679 4048000C
write 167a 4047000D
write 167b 4046000E
write 167c 302E0010
write 167d 30250016
write 167e 302A0011
write 167f 30290012
write 1680 30280013
write 1681 30270014
write 1682 30260015
write 1683 30240017
write 1684 28440004
write 1685 346E02A0
write 1686 58240018
write 1687 41C4000A
write 1688 3024001C
write 1689 40420008
write 168a 3022001D
write 168b 406102BC
write 168c 3181001C
write 168d 1DC50008
write 168e 1D810000
write 168f 4425000E
write 1690 78040001
write 1691 B9600800
write 1692 34020003
write 1693 34030001
write 1694 3884135C
write 1695 FBFFEE71
write 1696 2DC10008
write 1697 34020000
write 1698 0D810000
write 1699 29610024
write 169a 28230004
write 169b B9600800
write 169c D8600000
write 169d 09AD0058
write 169e B56D0800
write 169f 342102C1
write 16a0 4022000B
write 16a1 20420004
write 16a2 7C420000
write 16a3 59820004
write 16a4 4022000B
write 16a5 20420002
write 16a6 7C420000
write 16a7 59820008
write 16a8 4022000B
write 16a9 20420001
write 16aa 5982000C
write 16ab 4022000B
write 16ac 20420010
write 16ad 7C420000
write 16ae 59820010
write 16af 4022000B
write 16b0 20420020
write 16b1 7C420000
write 16b2 59820014
write 16b3 4021000B
write 16b4 20210008
write 16b5 7C210000
write 16b6 59810018
write 16b7 78010001
write 16b8 38212F94
write 16b9 2824001C
write 16ba 44800007
write 16bb B56D1000
write 16bc B8406800
write 16bd B9600800
write 16be 344202C4
write 16bf 35A3029C
write 16c0 D8800000
write 16c1 78040001
write 16c2 78050001
write 16c3 B9600800
write 16c4 34020003
write 16c5 34030001
write 16c6 38841370
write 16c7 38A5252C
write 16c8 FBFFEE3E
write 16c9 34010009
write 16ca 2B9D0004
write 16cb 2B8B0014
write 16cc 2B8C0010
write 16cd 2B8D000C
write 16ce 2B8E0008
write 16cf 379C0070
write 16d0 C3A00000
write 16d1 379CFFF0
write 16d2 5B8B0010
write 16d3 5B8C000C
write 16d4 5B8D0008
write 16d5 5B9D0004
write 16d6 B8406000
write 16d7 28220020
write 16d8 B8606800
write 16d9 282301FC
write 16da 2847000C
write 16db 282201B8
write 16dc B8802800
write 16dd B5831800
write 16de 34240278
write 16df 34060000
write 16e0 B8205800
write 16e1 D8E00000
write 16e2 78040001
write 16e3 38842FCC
write 16e4 3DA20002
write 16e5 4C2C000C
write 16e6 B4822800
write 16e7 28A50000
write 16e8 78040001
write 16e9 B9600800
write 16ea 34020005
write 16eb 34030001
write 16ec 38841018
write 16ed B9A03000
write 16ee FBFFEE18
write 16ef 3401FFFF
write 16f0 E000000D
write 16f1 B4824000
write 16f2 29660278
write 16f3 2967027C
write 16f4 29080000
write 16f5 78040001
write 16f6 B9600800
write 16f7 34020005
write 16f8 34030001
write 16f9 38841038
write 16fa B9802800
write 16fb FBFFEE0B
write 16fc 34010000
write 16fd 2B9D0004
write 16fe 2B8B0010
write 16ff 2B8C000C
write 1700 2B8D0008
write 1701 379C0010
write 1702 C3A00000
write 1703 379CFFF0
write 1704 5B8B0010
write 1705 5B8C000C
write 1706 5B8D0008
write 1707 5B9D0004
write 1708 B8205800
write 1709 40410000
write 170a B8406000
write 170b 34030002
write 170c 00210004
write 170d 356D04A0
write 170e 3161048C
write 170f 40410000
write 1710 2021000F
write 1711 3161048D
write 1712 40410001
write 1713 2021000F
write 1714 3161048E
write 1715 2C410002
write 1716 0D610490
write 1717 40410004
write 1718 34420006
write 1719 31610492
write 171a 35610493
write 171b F800286D
write 171c 35820008
write 171d 34030004
write 171e 3561049C
write 171f F8002869
write 1720 3582000C
write 1721 34030004
write 1722 35610498
write 1723 F8002865
write 1724 35820014
write 1725 34030008
write 1726 B9A00800
write 1727 F8002861
write 1728 2D81001C
write 1729 29620448
write 172a 34030008
write 172b 0D6104A8
write 172c 2D81001E
write 172d 0D6104AA
write 172e 41810020
write 172f 316104AC
write 1730 41810021
write 1731 316104AD
write 1732 B9A00800
write 1733 F8002834
write 1734 3403FFFF
write 1735 44200019
write 1736 2961001C
write 1737 28210014
write 1738 2C220008
write 1739 4440000A
write 173a B9A01000
write 173b 34030008
write 173c F800282B
write 173d 5C20000A
write 173e 2961001C
write 173f 28210014
write 1740 2C220008
write 1741 2D6104A8
write 1742 5C410005
write 1743 296204D4
write 1744 78018000
write 1745 B8410800
write 1746 E0000006
write 1747 78030001
write 1748 38632360
write 1749 296204D4
write 174a 28610000
write 174b A0410800
write 174c 596104D4
write 174d 34030000
write 174e B8600800
write 174f 2B9D0004
write 1750 2B8B0010
write 1751 2B8C000C
write 1752 2B8D0008
write 1753 379C0010
write 1754 C3A00000
write 1755 379CFFF4
write 1756 5B8B000C
write 1757 5B8C0008
write 1758 5B9D0004
write 1759 30400000
write 175a B8206000
write 175b 28210448
write 175c B8405800
write 175d 34030008
write 175e 4021000E
write 175f 30410001
write 1760 2981001C
write 1761 2821000C
write 1762 40210014
write 1763 30410004
write 1764 34010002
write 1765 30410006
write 1766 34410008
write 1767 34020000
write 1768 F800289E
write 1769 29820448
write 176a 35610014
write 176b 34030008
write 176c F800281C
write 176d 29810448
write 176e 2C210008
write 176f 0D61001C
write 1770 3401007F
write 1771 31610021
write 1772 2B9D0004
write 1773 2B8B000C
write 1774 2B8C0008
write 1775 379C000C
write 1776 C3A00000
write 1777 379CFFFC
write 1778 5B9D0004
write 1779 34030024
write 177a F800280E
write 177b 2B9D0004
write 177c 379C0004
write 177d C3A00000
write 177e 379CFFF4
write 177f 5B8B000C
write 1780 5B8C0008
write 1781 5B9D0004
write 1782 282B01C0
write 1783 B8406000
write 1784 34030008
write 1785 41620000
write 1786 204200F0
write 1787 31620000
write 1788 3402002C
write 1789 0D620002
write 178a 2C220470
write 178b 34420001
write 178c 2042FFFF
write 178d 0C220470
write 178e 31600020
write 178f 28210448
write 1790 0D62001E
write 1791 34020000
write 1792 4021000D
write 1793 31610021
write 1794 35610008
write 1795 F8002871
write 1796 2D810004
write 1797 0D610022
write 1798 29810000
write 1799 59610024
write 179a 29810008
write 179b 59610028
write 179c 2B9D0004
write 179d 2B8B000C
write 179e 2B8C0008
write 179f 379C000C
write 17a0 C3A00000
write 17a1 2C230022
write 17a2 0C430004
write 17a3 28230024
write 17a4 58430000
write 17a5 28210028
write 17a6 58410008
write 17a7 C3A00000
write 17a8 379CFFF4
write 17a9 5B8B000C
write 17aa 5B8C0008
write 17ab 5B9D0004
write 17ac 282B01C0
write 17ad B8206000
write 17ae 34020000
write 17af 41610000
write 17b0 3403000A
write 17b1 202100F0
write 17b2 3821000B
write 17b3 31610000
write 17b4 34010040
write 17b5 0D610002
write 17b6 2D810486
write 17b7 34210001
write 17b8 2021FFFF
write 17b9 0D810486
write 17ba 0D61001E
write 17bb 34010005
write 17bc 31610020
write 17bd 29810448
write 17be 4021000B
write 17bf 31610021
write 17c0 35610022
write 17c1 F8002845
write 17c2 2981001C
write 17c3 34030008
write 17c4 28220018
write 17c5 28210014
write 17c6 2C420000
write 17c7 0D62002C
write 17c8 4021001C
write 17c9 3161002F
write 17ca 2981001C
write 17cb 2821000C
write 17cc 4021000E
write 17cd 31610030
write 17ce 2981001C
write 17cf 2821000C
write 17d0 4021000F
write 17d1 31610031
write 17d2 2981001C
write 17d3 2822000C
write 17d4 28210014
write 17d5 2C420010
write 17d6 0D620032
write 17d7 4021001D
write 17d8 31610034
write 17d9 2981001C
write 17da 28220014
write 17db 35610035
write 17dc 34420010
write 17dd F80027AB
write 17de 2981001C
write 17df 28220010
write 17e0 28210018
write 17e1 2C420000
write 17e2 0D62003D
write 17e3 4021001C
write 17e4 3161003F
write 17e5 78010001
write 17e6 38212F94
write 17e7 2822002C
write 17e8 34010040
write 17e9 44400003
write 17ea B9800800
write 17eb D8400000
write 17ec 2B9D0004
write 17ed 2B8B000C
write 17ee 2B8C0008
write 17ef 379C000C
write 17f0 C3A00000
write 17f1 379CFFF4
write 17f2 5B8B000C
write 17f3 5B8C0008
write 17f4 5B9D0004
write 17f5 B8205800
write 17f6 2C210022
write 17f7 B8406000
write 17f8 34030008
write 17f9 0C410004
write 17fa 29610024
write 17fb 58410000
write 17fc 29610028
write 17fd 58410008
write 17fe 2D61002C
write 17ff 0C41000C
write 1800 4161002F
write 1801 3041000E
write 1802 41610030
write 1803 30410010
write 1804 41610031
write 1805 30410011
write 1806 2D610032
write 1807 0C410012
write 1808 41610034
write 1809 30410014
write 180a 34410015
write 180b 35620035
write 180c F800277C
write 180d 2D61003D
write 180e 0D81001E
write 180f 4161003F
write 1810 31810020
write 1811 78010001
write 1812 38212F94
write 1813 28230030
write 1814 44600004
write 1815 B9600800
write 1816 B9801000
write 1817 D8600000
write 1818 2B9D0004
write 1819 2B8B000C
write 181a 2B8C0008
write 181b 379C000C
write 181c C3A00000
write 181d 282301C0
write 181e 40640000
write 181f 208400F0
write 1820 38840008
write 1821 30640000
write 1822 3404002C
write 1823 0C640002
write 1824 2C240470
write 1825 0C64001E
write 1826 34040002
write 1827 30640020
write 1828 28210448
write 1829 4021000D
write 182a 30610021
write 182b 2C410004
write 182c 0C610022
write 182d 28410000
write 182e 58610024
write 182f 28410008
write 1830 58610028
write 1831 C3A00000
write 1832 2C230022
write 1833 0C430004
write 1834 28230024
write 1835 58430000
write 1836 28210028
write 1837 58410008
write 1838 C3A00000
write 1839 379CFFF4
write 183a 5B8B000C
write 183b 5B8C0008
write 183c 5B9D0004
write 183d 282B01C0
write 183e B8406000
write 183f 34030008
write 1840 41620000
write 1841 204200F0
write 1842 38420001
write 1843 31620000
write 1844 3402002C
write 1845 0D620002
write 1846 2C220472
write 1847 34420001
write 1848 2042FFFF
write 1849 0C220472
write 184a 34010001
write 184b 31610020
write 184c 3401007F
write 184d 0D62001E
write 184e 31610021
write 184f 34020000
write 1850 35610008
write 1851 F80027B5
write 1852 2D810004
write 1853 0D610022
write 1854 29810000
write 1855 59610024
write 1856 29810008
write 1857 59610028
write 1858 2B9D0004
write 1859 2B8B000C
write 185a 2B8C0008
write 185b 379C000C
write 185c C3A00000
write 185d 379CFFEC
write 185e 5B8B0014
write 185f 5B8C0010
write 1860 5B8D000C
write 1861 5B8E0008
write 1862 5B9D0004
write 1863 282B01C0
write 1864 B8207000
write 1865 B8406000
write 1866 41610000
write 1867 B8606800
write 1868 34030008
write 1869 202100F0
write 186a 38210009
write 186b 31610000
write 186c 34010036
write 186d 0D610002
write 186e 40410006
write 186f 34020000
write 1870 31610004
write 1871 35610008
write 1872 F8002794
write 1873 29810010
write 1874 35820014
write 1875 34030008
write 1876 59610008
write 1877 2981000C
write 1878 5961000C
write 1879 2D81001E
write 187a 0D61001E
write 187b 34010003
write 187c 31610020
write 187d 29C10448
write 187e 4021000A
write 187f 31610021
write 1880 2DA10004
write 1881 0D610022
write 1882 29A10000
write 1883 59610024
write 1884 29A10008
write 1885 59610028
write 1886 3561002C
write 1887 F8002701
write 1888 2D81001C
write 1889 0D610034
write 188a 2B9D0004
write 188b 2B8B0014
write 188c 2B8C0010
write 188d 2B8D000C
write 188e 2B8E0008
write 188f 379C0014
write 1890 C3A00000
write 1891 379CFFF4
write 1892 5B8B000C
write 1893 5B8C0008
write 1894 5B9D0004
write 1895 B8205800
write 1896 2C210022
write 1897 B8406000
write 1898 34030008
write 1899 0C410004
write 189a 29610024
write 189b 58410000
write 189c 29610028
write 189d 58410008
write 189e 3441000C
write 189f 3562002C
write 18a0 F80026E8
write 18a1 2D610034
write 18a2 0D810014
write 18a3 2B9D0004
write 18a4 2B8B000C
write 18a5 2B8C0008
write 18a6 379C000C
write 18a7 C3A00000
write 18a8 379CFFF8
write 18a9 5B8B0008
write 18aa 5B9D0004
write 18ab B8205800
write 18ac FBFFFEFC
write 18ad B8201000
write 18ae 3403000B
write 18af B9600800
write 18b0 34040000
write 18b1 FBFFFE20
write 18b2 2B9D0004
write 18b3 2B8B0008
write 18b4 379C0008
write 18b5 C3A00000
write 18b6 379CFFD0
write 18b7 5B8B0010
write 18b8 5B8C000C
write 18b9 5B8D0008
write 18ba 5B9D0004
write 18bb 28220024
write 18bc 378D0014
write 18bd B8205800
write 18be 28430000
write 18bf B9A01000
write 18c0 378C0028
write 18c1 D8600000
write 18c2 B9801000
write 18c3 B9A00800
write 18c4 F80000AA
write 18c5 B9600800
write 18c6 B9801000
write 18c7 FBFFFEB7
write 18c8 B9600800
write 18c9 3402002C
write 18ca 34030000
write 18cb 34040001
write 18cc FBFFFE05
write 18cd 2B9D0004
write 18ce 2B8B0010
write 18cf 2B8C000C
write 18d0 2B8D0008
write 18d1 379C0030
write 18d2 C3A00000
write 18d3 379CFFE8
write 18d4 5B8B000C
write 18d5 5B8C0008
write 18d6 5B9D0004
write 18d7 378C0010
write 18d8 B8205800
write 18d9 B8400800
write 18da B9801000
write 18db F8000093
write 18dc B9600800
write 18dd B9801000
write 18de FBFFFF3F
write 18df B9600800
write 18e0 3402002C
write 18e1 34030008
write 18e2 34040000
write 18e3 FBFFFDEE
write 18e4 2B9D0004
write 18e5 2B8B000C
write 18e6 2B8C0008
write 18e7 379C0018
write 18e8 C3A00000
write 18e9 379CFFD0
write 18ea 5B8B0010
write 18eb 5B8C000C
write 18ec 5B8D0008
write 18ed 5B9D0004
write 18ee 28220024
write 18ef 378D0014
write 18f0 B8205800
write 18f1 28430000
write 18f2 B9A01000
write 18f3 378C0028
write 18f4 D8600000
write 18f5 B9801000
write 18f6 B9A00800
write 18f7 F8000077
write 18f8 B9600800
write 18f9 B9801000
write 18fa FBFFFF3F
write 18fb B9600800
write 18fc 3402002C
write 18fd 34030001
write 18fe 34040001
write 18ff FBFFFDD2
write 1900 2B9D0004
write 1901 2B8B0010
write 1902 2B8C000C
write 1903 2B8D0008
write 1904 379C0030
write 1905 C3A00000
write 1906 379CFFE8
write 1907 5B8B000C
write 1908 5B8C0008
write 1909 5B9D0004
write 190a 378C0010
write 190b B8205800
write 190c B8400800
write 190d B9801000
write 190e F8000060
write 190f B9600800
write 1910 356204B0
write 1911 B9801800
write 1912 FBFFFF4B
write 1913 B9600800
write 1914 34020036
write 1915 34030009
write 1916 34040000
write 1917 FBFFFDBA
write 1918 2B9D0004
write 1919 2B8B000C
write 191a 2B8C0008
write 191b 379C0018
write 191c C3A00000
write 191d 379CFFF0
write 191e 5B8B0010
write 191f 5B8C000C
write 1920 5B8D0008
write 1921 5B9D0004
write 1922 78030001
write 1923 282D0004
write 1924 38632340
write 1925 28620000
write 1926 B8205800
write 1927 B9A00800
write 1928 F80025B2
write 1929 78030001
write 192a 296C0000
write 192b 38632340
write 192c 28620000
write 192d B42C6000
write 192e 596C0000
write 192f B9A00800
write 1930 F80025D7
write 1931 59610004
write 1932 4C0C0007
write 1933 4C20000F
write 1934 358CFFFF
write 1935 78030001
write 1936 596C0000
write 1937 38632340
write 1938 E0000007
write 1939 45800009
write 193a 4C010008
write 193b 358C0001
write 193c 78030001
write 193d 596C0000
write 193e 38632358
write 193f 28620000
write 1940 B4220800
write 1941 59610004
write 1942 2B9D0004
write 1943 2B8B0010
write 1944 2B8C000C
write 1945 2B8D0008
write 1946 379C0010
write 1947 C3A00000
write 1948 379CFFE8
write 1949 5B8B0008
write 194a 5B9D0004
write 194b 5B82000C
write 194c 5B830010
write 194d 5B830014
write 194e 5B820018
write 194f B8205800
write 1950 4C600006
write 1951 78010001
write 1952 78020001
write 1953 382113F0
write 1954 38422540
write 1955 F8000ED3
write 1956 2B810018
write 1957 38028000
write 1958 2B830014
write 1959 B4221000
write 195a F4220800
write 195b 00420010
write 195c B4230800
write 195d 3C230010
write 195e 14210010
write 195f B8431000
write 1960 78030001
write 1961 38632340
write 1962 5B820018
write 1963 28620000
write 1964 5B810014
write 1965 37810014
write 1966 F8000355
write 1967 59610004
write 1968 2B810018
write 1969 59610000
write 196a 2B9D0004
write 196b 2B8B0008
write 196c 379C0018
write 196d C3A00000
write 196e 379CFFFC
write 196f 5B9D0004
write 1970 28230000
write 1971 48030003
write 1972 28210004
write 1973 4C200006
write 1974 78010001
write 1975 3821141C
write 1976 F8000EB2
write 1977 3401FFFF
write 1978 E0000005
write 1979 58410008
write 197a 58430000
write 197b 0C400004
write 197c 34010000
write 197d 2B9D0004
write 197e 379C0004
write 197f C3A00000
write 1980 379CFFFC
write 1981 5B9D0004
write 1982 78050001
write 1983 38A52364
write 1984 28430000
write 1985 28A40000
write 1986 54640006
write 1987 28420008
write 1988 58230000
write 1989 58220004
write 198a 34010000
write 198b E0000005
write 198c 78010001
write 198d 38211458
write 198e F8000E9A
write 198f 3401FFFF
write 1990 2B9D0004
write 1991 379C0004
write 1992 C3A00000
write 1993 379CFFFC
write 1994 5B9D0004
write 1995 28660000
write 1996 28450000
write 1997 28630004
write 1998 28420004
write 1999 B4C52800
write 199a 58250000
write 199b B4621000
write 199c 58220004
write 199d FBFFFF80
write 199e 2B9D0004
write 199f 379C0004
write 19a0 C3A00000
write 19a1 379CFFFC
write 19a2 5B9D0004
write 19a3 28460000
write 19a4 28650000
write 19a5 C8C52800
write 19a6 58250000
write 19a7 28450004
write 19a8 28620004
write 19a9 C8A21000
write 19aa 58220004
write 19ab FBFFFF72
write 19ac 2B9D0004
write 19ad 379C0004
write 19ae C3A00000
write 19af 379CFFFC
write 19b0 5B9D0004
write 19b1 78040001
write 19b2 38842368
write 19b3 28230000
write 19b4 28820000
write 19b5 A0621000
write 19b6 4C400005
write 19b7 3442FFFF
write 19b8 3404FFFE
write 19b9 B8441000
write 19ba 34420001
write 19bb 78050001
write 19bc 38A52340
write 19bd 28A40000
write 19be 88441000
write 19bf 28240004
write 19c0 B4441000
write 19c1 0064001F
write 19c2 B4831800
write 19c3 14630001
write 19c4 58230000
write 19c5 0043001F
write 19c6 B4621000
write 19c7 14420001
write 19c8 58220004
write 19c9 FBFFFF54
write 19ca 2B9D0004
write 19cb 379C0004
write 19cc C3A00000
write 19cd 379CFFF8
write 19ce 5B8B0008
write 19cf 5B9D0004
write 19d0 28250000
write 19d1 78030001
write 19d2 B8201000
write 19d3 386314A8
write 19d4 4805000A
write 19d5 78030001
write 19d6 3863097C
write 19d7 5CA00007
write 19d8 28210004
write 19d9 78030001
write 19da 386314A8
write 19db 48A10003
write 19dc 78030001
write 19dd 3863097C
write 19de 28410004
write 19df 14A4001F
write 19e0 780B0001
write 19e1 1426001F
write 19e2 98853800
write 19e3 396B3484
write 19e4 98C12800
write 19e5 78020001
write 19e6 B9600800
write 19e7 384214AC
write 19e8 C8E42000
write 19e9 C8A62800
write 19ea F8000E30
write 19eb B9600800
write 19ec 2B9D0004
write 19ed 2B8B0008
write 19ee 379C0008
write 19ef C3A00000
write 19f0 379CFFF8
write 19f1 5B8B0008
write 19f2 5B9D0004
write 19f3 2822001C
write 19f4 28240024
write 19f5 B8205800
write 19f6 28430004
write 19f7 58600034
write 19f8 58600040
write 19f9 28430014
write 19fa 0C20028C
write 19fb 0C600008
write 19fc 28830014
write 19fd 44600010
write 19fe D8600000
write 19ff 3402FFFF
write 1a00 5C220008
write 1a01 78040001
write 1a02 B9600800
write 1a03 34020004
write 1a04 34030001
write 1a05 388414B8
write 1a06 FBFFEB00
write 1a07 34010000
write 1a08 2962001C
write 1a09 C8010800
write 1a0a 28420004
write 1a0b 58410028
write 1a0c E000000D
write 1a0d 28420008
write 1a0e 28450038
write 1a0f 78028000
write 1a10 A0A21000
write 1a11 5C430005
write 1a12 28840008
write 1a13 34020000
write 1a14 34030000
write 1a15 D8800000
write 1a16 2961001C
write 1a17 28210004
write 1a18 58200028
write 1a19 2961001C
write 1a1a 78040001
write 1a1b 34020004
write 1a1c 28250004
write 1a1d 34030001
write 1a1e B9600800
write 1a1f 28A50028
write 1a20 388414D4
write 1a21 FBFFEAE5
write 1a22 2B9D0004
write 1a23 2B8B0008
write 1a24 379C0008
write 1a25 C3A00000
write 1a26 379CFFF0
write 1a27 5B8B0010
write 1a28 5B8C000C
write 1a29 5B8D0008
write 1a2a 5B9D0004
write 1a2b B8205800
write 1a2c 2821001C
write 1a2d 35620214
write 1a2e 35630200
write 1a2f 282D0004
write 1a30 356C0250
write 1a31 B9A00800
write 1a32 FBFFFF6F
write 1a33 B9A01000
write 1a34 B9801800
write 1a35 B9A00800
write 1a36 FBFFFF6B
write 1a37 B9800800
write 1a38 FBFFFF95
write 1a39 78040001
write 1a3a B8202800
write 1a3b 34020004
write 1a3c B9600800
write 1a3d 34030003
write 1a3e 388414F0
write 1a3f FBFFEAC7
write 1a40 2B9D0004
write 1a41 2B8B0010
write 1a42 2B8C000C
write 1a43 2B8D0008
write 1a44 379C0010
write 1a45 C3A00000
write 1a46 379CFFC4
write 1a47 5B8B0028
write 1a48 5B8C0024
write 1a49 5B8D0020
write 1a4a 5B8E001C
write 1a4b 5B8F0018
write 1a4c 5B900014
write 1a4d 5B910010
write 1a4e 5B92000C
write 1a4f 5B930008
write 1a50 5B9D0004
write 1a51 B8205800
write 1a52 2821001C
write 1a53 3570023C
write 1a54 35710228
write 1a55 282C0004
write 1a56 282D0010
write 1a57 BA001000
write 1a58 358E0014
write 1a59 B9C00800
write 1a5a BA201800
write 1a5b FBFFFF46
write 1a5c 35720250
write 1a5d B9C01000
write 1a5e BA401800
write 1a5f B9C00800
write 1a60 FBFFFF41
write 1a61 BA400800
write 1a62 FBFFFF6B
write 1a63 78040001
write 1a64 B8202800
write 1a65 34020004
write 1a66 34030003
write 1a67 38841508
write 1a68 B9600800
write 1a69 FBFFEA9D
write 1a6a 35610200
write 1a6b FBFFFF62
write 1a6c 78040001
write 1a6d B8202800
write 1a6e 34020004
write 1a6f 34030002
write 1a70 38841520
write 1a71 B9600800
write 1a72 FBFFEA94
write 1a73 35610214
write 1a74 FBFFFF59
write 1a75 78040001
write 1a76 B8202800
write 1a77 34020004
write 1a78 34030002
write 1a79 38841528
write 1a7a B9600800
write 1a7b FBFFEA8B
write 1a7c BA200800
write 1a7d FBFFFF50
write 1a7e 78040001
write 1a7f B8202800
write 1a80 34020004
write 1a81 34030002
write 1a82 38841530
write 1a83 B9600800
write 1a84 FBFFEA82
write 1a85 BA000800
write 1a86 FBFFFF47
write 1a87 78040001
write 1a88 B8202800
write 1a89 34020004
write 1a8a 34030002
write 1a8b 38841538
write 1a8c B9600800
write 1a8d FBFFEA79
write 1a8e B9800800
write 1a8f FBFFFF3E
write 1a90 78040001
write 1a91 B8202800
write 1a92 34020004
write 1a93 34030001
write 1a94 38841540
write 1a95 B9600800
write 1a96 FBFFEA70
write 1a97 B9C00800
write 1a98 FBFFFF35
write 1a99 78040001
write 1a9a B8202800
write 1a9b 38841558
write 1a9c B9600800
write 1a9d 34020004
write 1a9e 34030001
write 1a9f FBFFEA67
write 1aa0 2961001C
write 1aa1 35AF0018
write 1aa2 28220004
write 1aa3 B9E00800
write 1aa4 34430014
write 1aa5 FBFFFEEE
write 1aa6 B9E00800
write 1aa7 FBFFFF08
write 1aa8 B9E00800
write 1aa9 FBFFFF24
write 1aaa 78040001
write 1aab B8202800
write 1aac 34020004
write 1aad B9600800
write 1aae 34030001
write 1aaf 38841570
write 1ab0 FBFFEA56
write 1ab1 2961001C
write 1ab2 28220010
write 1ab3 28260004
write 1ab4 28420018
write 1ab5 5C40015D
write 1ab6 28210008
write 1ab7 28270030
write 1ab8 44E20157
write 1ab9 28C20000
write 1aba 5C400003
write 1abb 28C30014
write 1abc 44620007
write 1abd 78040001
write 1abe B9600800
write 1abf 34020004
write 1ac0 34030001
write 1ac1 38841584
write 1ac2 E0000064
write 1ac3 28C50004
write 1ac4 48A70003
write 1ac5 28C20018
write 1ac6 4CE20149
write 1ac7 28C60018
write 1ac8 78040001
write 1ac9 B9600800
write 1aca 34020004
write 1acb 34030001
write 1acc 388415B0
write 1acd FBFFEA39
write 1ace E0000144
write 1acf 29A2001C
write 1ad0 59820030
write 1ad1 1C22003E
write 1ad2 29810030
write 1ad3 3444FFFF
write 1ad4 1423001F
write 1ad5 98612800
write 1ad6 C8A32800
write 1ad7 3403001F
write 1ad8 C8621800
write 1ad9 94A33800
write 1ada 34820001
write 1adb 34630001
write 1adc 3484FFFF
write 1add 5CE0FFFC
write 1ade 34030001
write 1adf BC621000
write 1ae0 4C460002
write 1ae1 59820034
write 1ae2 29830034
write 1ae3 4C620003
write 1ae4 34630001
write 1ae5 59830034
write 1ae6 29A2001C
write 1ae7 4C400002
write 1ae8 59A1001C
write 1ae9 29A2001C
write 1aea 4C400002
write 1aeb 59A0001C
write 1aec 29A5001C
write 1aed 08210003
write 1aee 4C25000D
write 1aef 78040001
write 1af0 B9600800
write 1af1 34020004
write 1af2 34030001
write 1af3 388415F4
write 1af4 FBFFEA12
write 1af5 29810030
write 1af6 29820034
write 1af7 3C210001
write 1af8 34420001
write 1af9 B4410800
write 1afa 59A1001C
write 1afb 298E0034
write 1afc 29820030
write 1afd 35B00004
write 1afe 35C1FFFF
write 1aff 88220800
write 1b00 29A2001C
write 1b01 B4220800
write 1b02 B9C01000
write 1b03 F80023D7
write 1b04 59810030
write 1b05 78040001
write 1b06 B8203000
write 1b07 3884160C
write 1b08 B9C02800
write 1b09 59A1001C
write 1b0a 34020004
write 1b0b B9600800
write 1b0c 34030001
write 1b0d FBFFE9F9
write 1b0e B9801000
write 1b0f B9E01800
write 1b10 BA000800
write 1b11 FBFFFE90
write 1b12 BA000800
write 1b13 FBFFFEBA
write 1b14 78040001
write 1b15 B8202800
write 1b16 34030002
write 1b17 B9600800
write 1b18 34020004
write 1b19 38841630
write 1b1a FBFFE9EC
write 1b1b 2963001C
write 1b1c 28610008
write 1b1d 2825002C
write 1b1e 44A00012
write 1b1f 29A20004
write 1b20 44400008
write 1b21 78040001
write 1b22 B9600800
write 1b23 34020004
write 1b24 34030001
write 1b25 3884164C
write 1b26 FBFFE9E0
write 1b27 E00000EB
write 1b28 29A20008
write 1b29 4CA20007
write 1b2a 78040001
write 1b2b B9600800
write 1b2c 34020004
write 1b2d 34030001
write 1b2e 3884167C
write 1b2f E00000DE
write 1b30 29A20004
write 1b31 44400033
write 1b32 28220038
write 1b33 78018000
write 1b34 A0410800
write 1b35 5C2000DD
write 1b36 78044000
write 1b37 A0441000
write 1b38 5C410019
write 1b39 29620248
write 1b3a 2961024C
write 1b3b 28630010
write 1b3c 2966023C
write 1b3d 29650240
write 1b3e 29640244
write 1b3f 378C002C
write 1b40 5B820038
write 1b41 5B81003C
write 1b42 B9801000
write 1b43 B9800800
write 1b44 34630018
write 1b45 5B86002C
write 1b46 5B850030
write 1b47 5B840034
write 1b48 FBFFFE4B
write 1b49 29610024
write 1b4a B9801000
write 1b4b 28230004
write 1b4c B9600800
write 1b4d D8600000
write 1b4e B9600800
write 1b4f FBFFFEA1
write 1b50 E00000C2
write 1b51 29A20008
write 1b52 78030001
write 1b53 3863236C
write 1b54 28610000
write 1b55 EC021000
write 1b56 78040001
write 1b57 C8021000
write 1b58 38842370
write 1b59 A0411000
write 1b5a 28810000
write 1b5b B4411000
write 1b5c 29610024
write 1b5d C8021000
write 1b5e 28230010
write 1b5f 5C600002
write 1b60 2823000C
write 1b61 B9600800
write 1b62 D8600000
write 1b63 E00000AF
write 1b64 29870040
write 1b65 48E20007
write 1b66 29A20008
write 1b67 1444001F
write 1b68 5982003C
write 1b69 98821000
write 1b6a C8442000
write 1b6b 59840038
write 1b6c 2982003C
write 1b6d 1C21003E
write 1b6e 1444001F
write 1b6f 3425FFFF
write 1b70 98823000
write 1b71 C8C43000
write 1b72 3404001F
write 1b73 C8812000
write 1b74 94C44000
write 1b75 34A10001
write 1b76 34840001
write 1b77 34A5FFFF
write 1b78 5D00FFFC
write 1b79 34040001
write 1b7a BC810800
write 1b7b 4C270002
write 1b7c 59810040
write 1b7d 29840040
write 1b7e 4C810003
write 1b7f 34840001
write 1b80 59840040
write 1b81 28610004
write 1b82 28210028
write 1b83 48010002
write 1b84 E0000002
write 1b85 C8010800
write 1b86 78040001
write 1b87 38842374
write 1b88 28830000
write 1b89 29A50008
write 1b8a E8230800
write 1b8b 44200009
write 1b8c 34010001
write 1b8d 59810040
write 1b8e 14A1001F
write 1b8f 5985003C
write 1b90 98252800
write 1b91 C8A10800
write 1b92 59810038
write 1b93 E000001B
write 1b94 29810038
write 1b95 29860040
write 1b96 C8A22800
write 1b97 88C13000
write 1b98 14A1001F
write 1b99 98251800
write 1b9a C8610800
write 1b9b 4CC10013
write 1b9c 4C050003
write 1b9d B4461000
write 1b9e E0000002
write 1b9f C8461000
write 1ba0 78040001
write 1ba1 59A20008
write 1ba2 B9600800
write 1ba3 34020004
write 1ba4 34030001
write 1ba5 388416B8
write 1ba6 FBFFE960
write 1ba7 29A50008
write 1ba8 78040001
write 1ba9 B9600800
write 1baa 34020004
write 1bab 34030001
write 1bac 388416D0
write 1bad FBFFE959
write 1bae 29910040
write 1baf 2981003C
write 1bb0 29B30008
write 1bb1 3632FFFF
write 1bb2 8A410800
write 1bb3 BA201000
write 1bb4 B4330800
write 1bb5 F8002325
write 1bb6 B8207000
write 1bb7 5981003C
write 1bb8 1421001F
write 1bb9 982E1000
write 1bba C8410800
write 1bbb 29820038
write 1bbc 8A429000
write 1bbd BA201000
write 1bbe B4320800
write 1bbf F800231B
write 1bc0 34260001
write 1bc1 89D30800
write 1bc2 59860038
write 1bc3 4C200003
write 1bc4 34010001
write 1bc5 59810040
write 1bc6 29850040
write 1bc7 78040001
write 1bc8 59AE0008
write 1bc9 34030001
write 1bca B9C03800
write 1bcb B9600800
write 1bcc 34020004
write 1bcd 388416E0
write 1bce FBFFE938
write 1bcf 2961001C
write 1bd0 29AE0008
write 1bd1 282D0008
write 1bd2 282C0004
write 1bd3 B9C00800
write 1bd4 1DA2003C
write 1bd5 F8002305
write 1bd6 29820028
write 1bd7 78030001
write 1bd8 38632370
write 1bd9 B4221000
write 1bda 28610000
write 1bdb 59820028
write 1bdc 4C220002
write 1bdd E0000005
write 1bde 78040001
write 1bdf 38842378
write 1be0 28810000
write 1be1 4C410002
write 1be2 59810028
write 1be3 29910028
write 1be4 29AC0038
write 1be5 78018000
write 1be6 1DA2003A
write 1be7 A1816000
write 1be8 5D80000B
write 1be9 B9C00800
write 1bea F80022F0
write 1beb 29640024
write 1bec B4311000
write 1bed C8021000
write 1bee 28830010
write 1bef 5C6C0002
write 1bf0 2883000C
write 1bf1 B9600800
write 1bf2 D8600000
write 1bf3 B9E00800
write 1bf4 FBFFFDD9
write 1bf5 78040001
write 1bf6 B8202800
write 1bf7 34020004
write 1bf8 34030002
write 1bf9 38841708
write 1bfa B9600800
write 1bfb FBFFE90B
write 1bfc BA000800
write 1bfd FBFFFDD0
write 1bfe 78040001
write 1bff B8202800
write 1c00 34020004
write 1c01 B9600800
write 1c02 34030002
write 1c03 38841724
write 1c04 FBFFE902
write 1c05 2961001C
write 1c06 78040001
write 1c07 34020004
write 1c08 28250004
write 1c09 34030002
write 1c0a B9600800
write 1c0b 28A50028
write 1c0c 38841740
write 1c0d FBFFE8F9
write 1c0e E0000004
write 1c0f 29860034
write 1c10 4C06FEBF
write 1c11 E3FFFEC0
write 1c12 2B9D0004
write 1c13 2B8B0028
write 1c14 2B8C0024
write 1c15 2B8D0020
write 1c16 2B8E001C
write 1c17 2B8F0018
write 1c18 2B900014
write 1c19 2B910010
write 1c1a 2B92000C
write 1c1b 2B930008
write 1c1c 379C003C
write 1c1d C3A00000
write 1c1e 379CFFFC
write 1c1f 5B9D0004
write 1c20 78030001
write 1c21 3C420002
write 1c22 3863300C
write 1c23 B4622800
write 1c24 28A50000
write 1c25 78040001
write 1c26 34020006
write 1c27 34030001
write 1c28 38841758
write 1c29 FBFFE8DD
write 1c2a 2B9D0004
write 1c2b 379C0004
write 1c2c C3A00000
write 1c2d 379CFFF0
write 1c2e 5B8B0010
write 1c2f 5B8C000C
write 1c30 5B8D0008
write 1c31 5B9D0004
write 1c32 B8205800
write 1c33 78010001
write 1c34 3821349C
write 1c35 B8406800
write 1c36 28220000
write 1c37 5C400005
write 1c38 2962001C
write 1c39 2844000C
write 1c3a 28820008
write 1c3b 58220000
write 1c3c 78040001
write 1c3d 78010001
write 1c3e 3884349C
write 1c3f 3821237C
write 1c40 28260000
write 1c41 28850000
write 1c42 340C0190
write 1c43 BD836000
write 1c44 88A62800
write 1c45 B9801000
write 1c46 34A53039
write 1c47 00A10010
write 1c48 88A62800
write 1c49 202107FF
write 1c4a 34A53039
write 1c4b 58850000
write 1c4c 00A50010
write 1c4d 3C24000A
write 1c4e 20A103FF
write 1c4f B8240800
write 1c50 F80022E7
write 1c51 3D820001
write 1c52 B4221000
write 1c53 29610024
write 1c54 28230018
write 1c55 B9600800
write 1c56 D8600000
write 1c57 35A20112
write 1c58 3C420002
write 1c59 B5625800
write 1c5a 59610004
write 1c5b 2B9D0004
write 1c5c 2B8B0010
write 1c5d 2B8C000C
write 1c5e 2B8D0008
write 1c5f 379C0010
write 1c60 C3A00000
write 1c61 379CFFF0
write 1c62 5B8B0010
write 1c63 5B8C000C
write 1c64 5B8D0008
write 1c65 5B9D0004
write 1c66 282B000C
write 1c67 B8206000
write 1c68 34010001
write 1c69 59610000
write 1c6a 29810024
write 1c6b 48200002
write 1c6c 34010001
write 1c6d 0D61000C
write 1c6e 29810008
write 1c6f 5C200004
write 1c70 78010001
write 1c71 3821302C
write 1c72 59810008
write 1c73 298D0008
write 1c74 3561000E
write 1c75 34030004
write 1c76 B9A01000
write 1c77 F8002311
write 1c78 2D62000C
write 1c79 34010001
write 1c7a 5C410005
write 1c7b 29810000
write 1c7c 282104D4
write 1c7d 0021001D
write 1c7e 20210001
write 1c7f 59610018
write 1c80 41A10042
write 1c81 2D67000C
write 1c82 78062000
write 1c83 31610012
write 1c84 41A10043
write 1c85 34050001
write 1c86 3404FFFF
write 1c87 31610013
write 1c88 41A10044
write 1c89 31610014
write 1c8a 34010000
write 1c8b E000000D
write 1c8c 0822050C
write 1c8d 29880000
write 1c8e B5021000
write 1c8f 44600005
write 1c90 284304D4
write 1c91 A0661800
write 1c92 5C600002
write 1c93 59600018
write 1c94 584104DC
write 1c95 58450000
write 1c96 0C44028E
write 1c97 34210001
write 1c98 29630018
write 1c99 48E1FFF3
write 1c9a 44600006
write 1c9b 78010001
write 1c9c 382117E8
write 1c9d F8000B8B
write 1c9e 3401FFFF
write 1c9f 3161000E
write 1ca0 78010001
write 1ca1 38212F94
write 1ca2 28230004
write 1ca3 34010000
write 1ca4 44600004
write 1ca5 B9800800
write 1ca6 B9A01000
write 1ca7 D8600000
write 1ca8 2B9D0004
write 1ca9 2B8B0010
write 1caa 2B8C000C
write 1cab 2B8D0008
write 1cac 379C0010
write 1cad C3A00000
write 1cae 379CFFFC
write 1caf 5B9D0004
write 1cb0 78020001
write 1cb1 38422F94
write 1cb2 28430008
write 1cb3 34020000
write 1cb4 44600003
write 1cb5 D8600000
write 1cb6 B8201000
write 1cb7 B8400800
write 1cb8 2B9D0004
write 1cb9 379C0004
write 1cba C3A00000
write 1cbb 379CFFE8
write 1cbc 5B8B0018
write 1cbd 5B8C0014
write 1cbe 5B8D0010
write 1cbf 5B8E000C
write 1cc0 5B8F0008
write 1cc1 5B9D0004
write 1cc2 282D0000
write 1cc3 B8207800
write 1cc4 282E0004
write 1cc5 B8406000
write 1cc6 340B0000
write 1cc7 34010000
write 1cc8 34040000
write 1cc9 544D0006
write 1cca B9A00800
write 1ccb F800225C
write 1ccc 882C1000
write 1ccd B9602000
write 1cce C9A26800
write 1ccf 34030000
write 1cd0 34020001
write 1cd1 E000000B
write 1cd2 3D850001
write 1cd3 3D6B0001
write 1cd4 F5856000
write 1cd5 3C630001
write 1cd6 B58B5800
write 1cd7 B8A06000
write 1cd8 3C450001
write 1cd9 F4451000
write 1cda B4431800
write 1cdb B8A01000
write 1cdc 34060001
write 1cdd 49AB0004
write 1cde 5DAB0002
write 1cdf 55CC0002
write 1ce0 34060000
write 1ce1 1565001F
write 1ce2 C8AC3800
write 1ce3 F4E53800
write 1ce4 C8AB2800
write 1ce5 C8A72800
write 1ce6 00A5001F
write 1ce7 A0A63000
write 1ce8 5CC0FFEA
write 1ce9 496D000D
write 1cea 5D6D0002
write 1ceb 558E000B
write 1cec C9CC2800
write 1ced F4AE7000
write 1cee C9AB6800
write 1cef C9AE6800
write 1cf0 B8A07000
write 1cf1 B4822800
write 1cf2 F4852000
write 1cf3 B4230800
write 1cf4 B4810800
write 1cf5 B8A02000
write 1cf6 3C65001F
write 1cf7 00420001
write 1cf8 14630001
write 1cf9 B8A21000
write 1cfa B8622800
write 1cfb 44A00006
write 1cfc 3D65001F
write 1cfd 018C0001
write 1cfe 156B0001
write 1cff B8AC6000
write 1d00 E3FFFFE9
write 1d01 59E10000
write 1d02 B9C00800
write 1d03 59E40004
write 1d04 2B9D0004
write 1d05 2B8B0018
write 1d06 2B8C0014
write 1d07 2B8D0010
write 1d08 2B8E000C
write 1d09 2B8F0008
write 1d0a 379C0018
write 1d0b C3A00000
write 1d0c 379CFFFC
write 1d0d 5B9D0004
write 1d0e B8201000
write 1d0f 78010001
write 1d10 3821180C
write 1d11 F8000B17
write 1d12 2B9D0004
write 1d13 379C0004
write 1d14 C3A00000
write 1d15 379CFFCC
write 1d16 5B8B0010
write 1d17 5B8C000C
write 1d18 5B8D0008
write 1d19 5B9D0004
write 1d1a 378B0014
write 1d1b 34020000
write 1d1c 34030024
write 1d1d B9600800
write 1d1e F80022E8
write 1d1f 78030001
write 1d20 B9600800
write 1d21 34040000
write 1d22 34020000
write 1d23 386334A0
write 1d24 34080020
write 1d25 34070008
write 1d26 E0000004
write 1d27 34840001
write 1d28 34210004
write 1d29 44870017
write 1d2a B4432800
write 1d2b E0000004
write 1d2c 30A00000
write 1d2d 34420001
write 1d2e 34A50001
write 1d2f 40A60000
write 1d30 44C8FFFC
write 1d31 44C0000D
write 1d32 B4432800
write 1d33 58250000
write 1d34 E0000002
write 1d35 34420001
write 1d36 B4432800
write 1d37 40A50000
write 1d38 7CA90000
write 1d39 7CA60020
write 1d3a A1263000
write 1d3b 5CC0FFFA
write 1d3c 5CA6FFEB
write 1d3d E0000003
write 1d3e 340C0000
write 1d3f 448C0021
write 1d40 2B810014
write 1d41 340C0000
write 1d42 40220000
write 1d43 34010023
write 1d44 4441001C
write 1d45 780B0001
write 1d46 780C0001
write 1d47 396B30B4
write 1d48 398C3154
write 1d49 E0000011
write 1d4a 29610000
write 1d4b F80022FC
write 1d4c B8206800
write 1d4d 5C20000C
write 1d4e 29620004
write 1d4f 37810018
write 1d50 D8400000
write 1d51 B8206000
write 1d52 4C2D000E
write 1d53 29620000
write 1d54 78010001
write 1d55 B9801800
write 1d56 38211814
write 1d57 F8000AD1
write 1d58 E0000008
write 1d59 356B0008
write 1d5a 2B820014
write 1d5b 558BFFEF
write 1d5c 78010001
write 1d5d 3821182C
write 1d5e F8000ACA
write 1d5f 340CFFEA
write 1d60 B9800800
write 1d61 2B9D0004
write 1d62 2B8B0010
write 1d63 2B8C000C
write 1d64 2B8D0008
write 1d65 379C0034
write 1d66 C3A00000
write 1d67 379CFFF8
write 1d68 5B8B0008
write 1d69 5B9D0004
write 1d6a 780B0001
write 1d6b 396B34F4
write 1d6c 29650000
write 1d6d 78020001
write 1d6e 34240001
write 1d6f B8201800
write 1d70 384234A0
write 1d71 B4220800
write 1d72 C8A31800
write 1d73 B4821000
write 1d74 F800224D
write 1d75 29610000
write 1d76 3421FFFF
write 1d77 59610000
write 1d78 2B9D0004
write 1d79 2B8B0008
write 1d7a 379C0008
write 1d7b C3A00000
write 1d7c 78010001
write 1d7d 382134FC
write 1d7e 58200000
write 1d7f 78010001
write 1d80 382134F4
write 1d81 58200000
write 1d82 78010001
write 1d83 382134F8
write 1d84 58200000
write 1d85 C3A00000
write 1d86 379CFFF4
write 1d87 5B8B000C
write 1d88 5B8C0008
write 1d89 5B9D0004
write 1d8a 780B0001
write 1d8b 396B34F8
write 1d8c 29610000
write 1d8d 340C0001
write 1d8e 442C000F
write 1d8f 34020002
write 1d90 44220099
write 1d91 5C2000A1
write 1d92 78010001
write 1d93 38211848
write 1d94 F8000A94
write 1d95 78010001
write 1d96 382134FC
write 1d97 58200000
write 1d98 78010001
write 1d99 382134F4
write 1d9a 58200000
write 1d9b 596C0000
write 1d9c E0000096
write 1d9d F80019C6
write 1d9e 48010094
write 1d9f 3402001B
write 1da0 44220008
write 1da1 78020001
write 1da2 38423500
write 1da3 28430000
write 1da4 6424005B
write 1da5 00650010
write 1da6 A0A42000
write 1da7 44800006
write 1da8 78010001
write 1da9 38213500
write 1daa 78020001
write 1dab 58220000
write 1dac E0000003
write 1dad B8230800
write 1dae 58410000
write 1daf 78010001
write 1db0 38213500
write 1db1 282B0000
write 1db2 216100FF
write 1db3 4420007F
write 1db4 3401007E
write 1db5 4561002E
write 1db6 49610006
write 1db7 34010009
write 1db8 4561006D
write 1db9 3401000D
write 1dba 5D610042
write 1dbb E0000020
write 1dbc 78020001
write 1dbd 38422380
write 1dbe 28410000
write 1dbf 45610010
write 1dc0 78020001
write 1dc1 38422384
write 1dc2 28410000
write 1dc3 45610004
write 1dc4 3401007F
write 1dc5 5D610037
write 1dc6 E0000027
write 1dc7 78010001
write 1dc8 382134FC
write 1dc9 28220000
write 1dca 4C02005B
write 1dcb 3442FFFF
write 1dcc 58220000
write 1dcd 34010044
write 1dce E000000B
write 1dcf 78010001
write 1dd0 78020001
write 1dd1 382134FC
write 1dd2 384234F4
write 1dd3 28230000
write 1dd4 28420000
write 1dd5 4C620050
write 1dd6 34630001
write 1dd7 58230000
write 1dd8 34010043
write 1dd9 FBFFFF33
write 1dda E000004B
write 1ddb 78010001
write 1ddc 38210858
write 1ddd F8000A4B
write 1dde 78010001
write 1ddf 382134F8
write 1de0 34020002
write 1de1 58220000
write 1de2 E0000043
write 1de3 78010001
write 1de4 78020001
write 1de5 382134FC
write 1de6 384234F4
write 1de7 28210000
write 1de8 28420000
write 1de9 4422003C
write 1dea FBFFFF7D
write 1deb 34010050
write 1dec E3FFFFED
write 1ded 780B0001
write 1dee 396B34FC
write 1def 29610000
write 1df0 4C010035
write 1df1 34010044
write 1df2 FBFFFF1A
write 1df3 34010050
write 1df4 FBFFFF18
write 1df5 29610000
write 1df6 3421FFFF
write 1df7 FBFFFF70
write 1df8 29610000
write 1df9 3421FFFF
write 1dfa 59610000
write 1dfb E000002A
write 1dfc 78010001
write 1dfd A1610800
write 1dfe 5C200027
write 1dff 78010001
write 1e00 382134F4
write 1e01 28240000
write 1e02 3401004F
write 1e03 48810022
write 1e04 78010001
write 1e05 382134FC
write 1e06 28230000
write 1e07 44640008
write 1e08 78020001
write 1e09 34610001
write 1e0a 384234A0
write 1e0b B4220800
write 1e0c B4621000
write 1e0d C8831800
write 1e0e F80021B3
write 1e0f 78010001
write 1e10 382134FC
write 1e11 28230000
write 1e12 78020001
write 1e13 384234A0
write 1e14 B4431000
write 1e15 304B0000
write 1e16 34620001
write 1e17 58220000
write 1e18 78010001
write 1e19 382134F4
write 1e1a 28220000
write 1e1b 34420001
write 1e1c 58220000
write 1e1d 34010040
write 1e1e FBFFFEEE
write 1e1f 78020001
write 1e20 38423500
write 1e21 28420000
write 1e22 78010001
write 1e23 38211850
write 1e24 F8000A04
write 1e25 78010001
write 1e26 38213500
write 1e27 58200000
write 1e28 E000000A
write 1e29 78020001
write 1e2a 384234F4
write 1e2b 28420000
write 1e2c 78010001
write 1e2d 382134A0
write 1e2e B4220800
write 1e2f 30200000
write 1e30 FBFFFEE5
write 1e31 59600000
write 1e32 2B9D0004
write 1e33 2B8B000C
write 1e34 2B8C0008
write 1e35 379C000C
write 1e36 C3A00000
write 1e37 34030000
write 1e38 34070009
write 1e39 34050005
write 1e3a E0000014
write 1e3b 3486FFD0
write 1e3c 20C800FF
write 1e3d 55070004
write 1e3e 3C630004
write 1e3f B4C31800
write 1e40 E000000D
write 1e41 3486FFBF
write 1e42 20C600FF
write 1e43 54C50004
write 1e44 3C630004
write 1e45 3484FFC9
write 1e46 E0000006
write 1e47 3486FF9F
write 1e48 20C600FF
write 1e49 54C50007
write 1e4a 3C630004
write 1e4b 3484FFA9
write 1e4c B4831800
write 1e4d 34210001
write 1e4e 40240000
write 1e4f 5C80FFEC
write 1e50 58430000
write 1e51 C3A00000
write 1e52 34030000
write 1e53 34050009
write 1e54 E0000007
write 1e55 3484FFD0
write 1e56 208600FF
write 1e57 54C50006
write 1e58 0863000A
write 1e59 34210001
write 1e5a B4831800
write 1e5b 40240000
write 1e5c 5C80FFF9
write 1e5d 58430000
write 1e5e C3A00000
write 1e5f 379CFFEC
write 1e60 5B8B0014
write 1e61 5B8C0010
write 1e62 5B8D000C
write 1e63 5B8E0008
write 1e64 5B9D0004
write 1e65 78010001
write 1e66 38214E44
write 1e67 40210000
write 1e68 340BFFFF
write 1e69 4420001E
write 1e6a 780B0001
write 1e6b 780E0001
write 1e6c 780D0001
write 1e6d 340C0000
write 1e6e 396B34A0
write 1e6f 39CE34F4
write 1e70 39AD186C
write 1e71 34010000
write 1e72 34020050
write 1e73 B9601800
write 1e74 34040050
write 1e75 B9802800
write 1e76 F800151F
write 1e77 59C10000
write 1e78 48200007
write 1e79 340B0000
write 1e7a 5D80000D
write 1e7b 78010001
write 1e7c 38211854
write 1e7d F80009AB
write 1e7e E0000009
write 1e7f B5610800
write 1e80 3020FFFF
write 1e81 B9601000
write 1e82 B9A00800
write 1e83 F80009A5
write 1e84 FBFFFE91
write 1e85 340C0001
write 1e86 E3FFFFEB
write 1e87 B9600800
write 1e88 2B9D0004
write 1e89 2B8B0014
write 1e8a 2B8C0010
write 1e8b 2B8D000C
write 1e8c 2B8E0008
write 1e8d 379C0014
write 1e8e C3A00000
write 1e8f 379CFFF8
write 1e90 5B8B0008
write 1e91 5B9D0004
write 1e92 78010001
write 1e93 382151C8
write 1e94 28210000
write 1e95 78030001
write 1e96 38632884
write 1e97 28620000
write 1e98 282B000C
write 1e99 78030001
write 1e9a 78010001
write 1e9b 386305C4
write 1e9c 3821187C
write 1e9d F800098B
write 1e9e 78030001
write 1e9f 38632888
write 1ea0 28620000
write 1ea1 78010001
write 1ea2 382105E4
write 1ea3 F8000985
write 1ea4 216B000F
write 1ea5 356B0001
write 1ea6 78010001
write 1ea7 34020058
write 1ea8 3D6B0004
write 1ea9 38211894
write 1eaa 34030800
write 1eab F800097D
write 1eac 3561FFB0
write 1ead 3402000F
write 1eae 50410006
write 1eaf 78010001
write 1eb0 382118BC
write 1eb1 B9601000
write 1eb2 35630010
write 1eb3 F8000975
write 1eb4 34010000
write 1eb5 2B9D0004
write 1eb6 2B8B0008
write 1eb7 379C0008
write 1eb8 C3A00000
write 1eb9 379CFFE8
write 1eba 5B8B0010
write 1ebb 5B8C000C
write 1ebc 5B8D0008
write 1ebd 5B9D0004
write 1ebe B8205800
write 1ebf 28210000
write 1ec0 78020001
write 1ec1 384218EC
write 1ec2 F8002185
write 1ec3 5C200011
write 1ec4 2963000C
write 1ec5 3402FFEA
write 1ec6 4461007E
write 1ec7 29610004
write 1ec8 F8000481
write 1ec9 B8206800
write 1eca 29610008
write 1ecb F800047E
write 1ecc B8206000
write 1ecd 2961000C
write 1ece F800047B
write 1ecf B8201800
write 1ed0 B9801000
write 1ed1 B9A00800
write 1ed2 F8001D4A
write 1ed3 E0000070
write 1ed4 29610000
write 1ed5 78020001
write 1ed6 384218F4
write 1ed7 F8002170
write 1ed8 B8201800
write 1ed9 5C200007
write 1eda 29610004
write 1edb 3402FFEA
write 1edc 44230068
write 1edd F800046C
write 1ede F8001E14
write 1edf E0000060
write 1ee0 29610000
write 1ee1 78020001
write 1ee2 384218F8
write 1ee3 F8002164
write 1ee4 5C200003
write 1ee5 F8001EA7
write 1ee6 E000005D
write 1ee7 29610000
write 1ee8 78020001
write 1ee9 38421900
write 1eea F800215D
write 1eeb 5C20000D
write 1eec 29630008
write 1eed 3402FFEA
write 1eee 44610056
write 1eef 29610004
write 1ef0 F8000459
write 1ef1 B8206000
write 1ef2 29610008
write 1ef3 F8000456
write 1ef4 B8201000
write 1ef5 B9800800
write 1ef6 F8001E0D
write 1ef7 E000004C
write 1ef8 29610000
write 1ef9 78020001
write 1efa 38421904
write 1efb F800214C
write 1efc B8201800
write 1efd 5C20000E
write 1efe 29610004
write 1eff 3402FFEA
write 1f00 44230044
write 1f01 F8000448
write 1f02 37820018
write 1f03 37830014
write 1f04 F8001E27
write 1f05 2B820018
write 1f06 2B830014
write 1f07 78010001
write 1f08 38211908
write 1f09 F800091F
write 1f0a E0000039
write 1f0b 29610000
write 1f0c 78020001
write 1f0d 38421910
write 1f0e F8002139
write 1f0f B8201800
write 1f10 5C200007
write 1f11 29610004
write 1f12 3402FFEA
write 1f13 44230031
write 1f14 F8000435
write 1f15 F8001DB9
write 1f16 E000002D
write 1f17 29610000
write 1f18 78020001
write 1f19 38421918
write 1f1a F800212D
write 1f1b B8201800
write 1f1c 5C200007
write 1f1d 29610004
write 1f1e 3402FFEA
write 1f1f 44230025
write 1f20 F8000429
write 1f21 F8001DC4
write 1f22 E0000021
write 1f23 29610000
write 1f24 78020001
write 1f25 38421920
write 1f26 F8002121
write 1f27 5C20000D
write 1f28 29630008
write 1f29 3402FFEA
write 1f2a 4461001A
write 1f2b 29610004
write 1f2c F800041D
write 1f2d B8206000
write 1f2e 29610008
write 1f2f F800041A
write 1f30 B8201000
write 1f31 B9800800
write 1f32 F8001F68
write 1f33 E0000010
write 1f34 29610000
write 1f35 78020001
write 1f36 38421928
write 1f37 F8002110
write 1f38 B8201800
write 1f39 3402FFEA
write 1f3a 5C20000A
write 1f3b 29610004
write 1f3c 44230008
write 1f3d F800040C
write 1f3e F8001F4D
write 1f3f B8201000
write 1f40 78010001
write 1f41 38211FF8
write 1f42 F80008E6
write 1f43 34020000
write 1f44 B8400800
write 1f45 2B9D0004
write 1f46 2B8B0010
write 1f47 2B8C000C
write 1f48 2B8D0008
write 1f49 379C0018
write 1f4a C3A00000
write 1f4b 379CFFB4
write 1f4c 5B8B002C
write 1f4d 5B8C0028
write 1f4e 5B8D0024
write 1f4f 5B8E0020
write 1f50 5B8F001C
write 1f51 5B900018
write 1f52 5B910014
write 1f53 5B920010
write 1f54 5B93000C
write 1f55 5B940008
write 1f56 5B9D0004
write 1f57 B8205800
write 1f58 28210000
write 1f59 44200015
write 1f5a 78020001
write 1f5b 38421934
write 1f5c F80020EB
write 1f5d B8206000
write 1f5e 5C200010
write 1f5f F8000FCF
write 1f60 5C2C0005
write 1f61 78010001
write 1f62 3821193C
write 1f63 F80008C5
write 1f64 E0000004
write 1f65 78010001
write 1f66 38213078
write 1f67 F8000FCE
write 1f68 78020001
write 1f69 38423078
write 1f6a 78010001
write 1f6b 30400010
write 1f6c 38211648
write 1f6d E000004E
write 1f6e 29610000
write 1f6f 78020001
write 1f70 38421948
write 1f71 F80020D6
write 1f72 5C200008
write 1f73 34020050
write 1f74 F800127C
write 1f75 3402FFFF
write 1f76 5C2200A9
write 1f77 78010001
write 1f78 38211950
write 1f79 E00000A5
write 1f7a 29610010
write 1f7b 44200042
write 1f7c 29610000
write 1f7d 78020001
write 1f7e 38421964
write 1f7f F80020C8
write 1f80 5C20003D
write 1f81 29610004
write 1f82 356C0004
write 1f83 F8002109
write 1f84 34020010
write 1f85 54220005
write 1f86 29610004
write 1f87 F8002105
write 1f88 3C220018
write 1f89 14420018
write 1f8a 34030000
write 1f8b 37840030
write 1f8c E0000007
write 1f8d 29810000
write 1f8e B4832800
write 1f8f B4230800
write 1f90 40210000
write 1f91 34630001
write 1f92 30A10000
write 1f93 B0600800
write 1f94 4841FFF9
write 1f95 B4811000
write 1f96 34030020
write 1f97 3404000F
write 1f98 E0000005
write 1f99 34210001
write 1f9a 30430000
write 1f9b B0200800
write 1f9c 34420001
write 1f9d 4C81FFFC
write 1f9e 29610008
write 1f9f F80003AA
write 1fa0 5B810044
write 1fa1 2961000C
write 1fa2 F80003A7
write 1fa3 5B810048
write 1fa4 29610010
write 1fa5 F80003A4
write 1fa6 5B810040
write 1fa7 34020050
write 1fa8 34010000
write 1fa9 37830030
write 1faa 34040001
write 1fab 34050000
write 1fac F8001255
write 1fad 3C220018
write 1fae 3401FFFE
write 1faf 14420018
write 1fb0 5C410004
write 1fb1 78010001
write 1fb2 38211968
write 1fb3 E000006B
write 1fb4 3401FFFF
write 1fb5 5C410004
write 1fb6 78010001
write 1fb7 38211978
write 1fb8 E0000066
write 1fb9 78010001
write 1fba 38211984
write 1fbb F800086D
write 1fbc E0000063
write 1fbd 29610000
write 1fbe 44200035
write 1fbf 78020001
write 1fc0 38421994
write 1fc1 F8002086
write 1fc2 5C200031
write 1fc3 78100001
write 1fc4 780F0001
write 1fc5 780E0001
write 1fc6 340C0000
write 1fc7 340B0000
write 1fc8 34120001
write 1fc9 37910030
write 1fca 3414FFFF
write 1fcb 3A1019D0
write 1fcc 37930040
write 1fcd 39EF1850
write 1fce 39CE19D8
write 1fcf 34010000
write 1fd0 34020050
write 1fd1 BA201800
write 1fd2 34040000
write 1fd3 B9802800
write 1fd4 F800122D
write 1fd5 5D60000B
write 1fd6 B0200800
write 1fd7 5C2B0004
write 1fd8 78010001
write 1fd9 3821199C
write 1fda E0000044
write 1fdb 5C340004
write 1fdc 78010001
write 1fdd 382119B4
write 1fde E0000040
write 1fdf B8209000
write 1fe0 358C0001
write 1fe1 BA000800
write 1fe2 B9801000
write 1fe3 F8000845
write 1fe4 BA206800
write 1fe5 41A20000
write 1fe6 B9E00800
write 1fe7 35AD0001
write 1fe8 F8000840
write 1fe9 5DB3FFFC
write 1fea 2B820044
write 1feb 2B830048
write 1fec 2B840040
write 1fed 356B0001
write 1fee B9C00800
write 1fef B1605800
write 1ff0 F8000838
write 1ff1 4A4BFFDE
write 1ff2 E000002D
write 1ff3 29610000
write 1ff4 4420002B
write 1ff5 78020001
write 1ff6 384219F8
write 1ff7 F8002050
write 1ff8 5C200027
write 1ff9 78020001
write 1ffa 38423078
write 1ffb 40430000
write 1ffc 5C610004
write 1ffd 78010001
write 1ffe 38211A00
write 1fff E000001F
write 2000 378B0030
write 2001 34030010
write 2002 B9600800
write 2003 F8002105
write 2004 34010000
write 2005 34020050
write 2006 B9601800
write 2007 F8001262
write 2008 4C010014
write 2009 2B820044
write 200a 2B830048
write 200b 2B840040
write 200c 78010001
write 200d 38211A18
write 200e F800081A
write 200f 2B820044
write 2010 78010001
write 2011 38212898
write 2012 58220000
write 2013 2B820048
write 2014 78010001
write 2015 3821289C
write 2016 58220000
write 2017 2B820040
write 2018 78010001
write 2019 38212894
write 201a 58220000
write 201b E0000004
write 201c 78010001
write 201d 38211A40
write 201e F800080A
write 201f 34010000
write 2020 2B9D0004
write 2021 2B8B002C
write 2022 2B8C0028
write 2023 2B8D0024
write 2024 2B8E0020
write 2025 2B8F001C
write 2026 2B900018
write 2027 2B910014
write 2028 2B920010
write 2029 2B93000C
write 202a 2B940008
write 202b 379C004C
write 202c C3A00000
write 202d 379CFFFC
write 202e 5B9D0004
write 202f 28210000
write 2030 78020001
write 2031 38421A5C
write 2032 F8002015
write 2033 5C200007
write 2034 F8000984
write 2035 B8201000
write 2036 78010001
write 2037 38211A60
write 2038 F80007F0
write 2039 E0000005
write 203a 78010001
write 203b 38213158
write 203c 34020002
write 203d 58220000
write 203e 34010000
write 203f 2B9D0004
write 2040 379C0004
write 2041 C3A00000
write 2042 379CFFF8
write 2043 5B8B0008
write 2044 5B9D0004
write 2045 B8205800
write 2046 28210000
write 2047 78020001
write 2048 38421910
write 2049 F8001FFE
write 204a 5C200003
write 204b FBFFE51E
write 204c E0000008
write 204d 29610000
write 204e 78020001
write 204f 38421918
write 2050 F8001FF7
write 2051 3402FFEA
write 2052 5C200003
write 2053 FBFFE536
write 2054 B8201000
write 2055 B8400800
write 2056 2B9D0004
write 2057 2B8B0008
write 2058 379C0008
write 2059 C3A00000
write 205a 379CFFF8
write 205b 5B8B0008
write 205c 5B9D0004
write 205d B8205800
write 205e 28210000
write 205f 78020001
write 2060 38421A6C
write 2061 F8001FE6
write 2062 34020001
write 2063 44200018
write 2064 29610000
write 2065 78020001
write 2066 38422330
write 2067 F8001FE0
write 2068 34020002
write 2069 44200012
write 206a 29610000
write 206b 78020001
write 206c 38420D48
write 206d F8001FDA
write 206e 34020003
write 206f 4420000C
write 2070 FBFFE4F5
write 2071 3C210002
write 2072 78020001
write 2073 38422558
write 2074 B4411000
write 2075 28420000
write 2076 78010001
write 2077 38211648
write 2078 F80007B0
write 2079 34010000
write 207a E0000003
write 207b B8400800
write 207c FBFFE52F
write 207d 2B9D0004
write 207e 2B8B0008
write 207f 379C0008
write 2080 C3A00000
write 2081 379CFFF0
write 2082 5B8B000C
write 2083 5B8C0008
write 2084 5B9D0004
write 2085 B8205800
write 2086 28210000
write 2087 4420000B
write 2088 78020001
write 2089 38421A8C
write 208a F8001FBD
write 208b B8206000
write 208c 5C200006
write 208d 37810010
write 208e F8001059
write 208f 340BFFFF
write 2090 49810024
write 2091 E000001D
write 2092 29610000
write 2093 340B0000
write 2094 5C200020
write 2095 34020050
write 2096 37830010
write 2097 34040000
write 2098 F8001214
write 2099 4D61000A
write 209a 2B820010
write 209b 78010001
write 209c 38211A94
write 209d F800078B
write 209e 2B820010
write 209f 78010001
write 20a0 382128A0
write 20a1 58220000
write 20a2 E0000012
write 20a3 78010001
write 20a4 38211ABC
write 20a5 F8000783
write 20a6 37810010
write 20a7 F8001040
write 20a8 340BFFFF
write 20a9 4801000B
write 20aa 2B820010
write 20ab 78010001
write 20ac 382128A0
write 20ad 58220000
write 20ae 34010000
write 20af 34020050
write 20b0 37830010
write 20b1 34040001
write 20b2 F80011FA
write 20b3 B8205800
write 20b4 B9600800
write 20b5 2B9D0004
write 20b6 2B8B000C
write 20b7 2B8C0008
write 20b8 379C0010
write 20b9 C3A00000
write 20ba 379CFFE8
write 20bb 5B8B000C
write 20bc 5B8C0008
write 20bd 5B9D0004
write 20be B8205800
write 20bf 37820018
write 20c0 37810010
write 20c1 F8000E11
write 20c2 29610008
write 20c3 44200014
write 20c4 29610000
write 20c5 78020001
write 20c6 38421AF0
write 20c7 F8001F80
write 20c8 5C20000F
write 20c9 FBFFE49C
write 20ca 34030003
write 20cb 3402FFF0
write 20cc 4423003F
write 20cd 29610004
write 20ce F800027B
write 20cf B8206000
write 20d0 29610008
write 20d1 F8000278
write 20d2 B8201800
write 20d3 B9801000
write 20d4 1581001F
write 20d5 34040003
write 20d6 E0000020
write 20d7 29610000
write 20d8 4420000F
write 20d9 78020001
write 20da 38421AF4
write 20db F8001F6C
write 20dc 5C20000B
write 20dd FBFFE488
write 20de 34020003
write 20df 44220023
write 20e0 29610004
write 20e1 F8000268
write 20e2 B8201000
write 20e3 34030000
write 20e4 1421001F
write 20e5 34040001
write 20e6 E0000010
write 20e7 29610000
write 20e8 44200010
write 20e9 78020001
write 20ea 38421AFC
write 20eb F8001F5C
write 20ec 5C20000C
write 20ed FBFFE478
write 20ee 34020003
write 20ef 44220013
write 20f0 29610004
write 20f1 F8000258
write 20f2 B8201800
write 20f3 34020000
write 20f4 34010000
write 20f5 34040002
write 20f6 F8000DB5
write 20f7 E0000013
write 20f8 29610000
write 20f9 44200009
write 20fa 78020001
write 20fb 38421B04
write 20fc F8001F4B
write 20fd 5C200005
write 20fe 78010001
write 20ff 38211908
write 2100 2B820014
write 2101 E0000007
write 2102 2B820014
write 2103 2B810010
write 2104 F800016C
write 2105 B8201000
write 2106 78010001
write 2107 38211B08
write 2108 2B830018
write 2109 F800071F
write 210a 34020000
write 210b B8400800
write 210c 2B9D0004
write 210d 2B8B000C
write 210e 2B8C0008
write 210f 379C0018
write 2110 C3A00000
write 2111 78010001
write 2112 38213158
write 2113 34020001
write 2114 58220000
write 2115 34010000
write 2116 C3A00000
write 2117 379CFFFC
write 2118 5B9D0004
write 2119 F8000ED1
write 211a 34010000
write 211b 2B9D0004
write 211c 379C0004
write 211d C3A00000
write 211e 379CFFEC
write 211f 5B8B0010
write 2120 5B8C000C
write 2121 5B8D0008
write 2122 5B9D0004
write 2123 340B0000
write 2124 B8406800
write 2125 340C0006
write 2126 37820014
write 2127 FBFFFD10
write 2128 2B830014
write 2129 B5AB1000
write 212a 356B0001
write 212b 30430000
write 212c 40220000
write 212d 6442003A
write 212e B4220800
write 212f 5D6CFFF7
write 2130 2B9D0004
write 2131 2B8B0010
write 2132 2B8C000C
write 2133 2B8D0008
write 2134 379C0014
write 2135 C3A00000
write 2136 379CFFF0
write 2137 5B8B0008
write 2138 5B9D0004
write 2139 B8205800
write 213a 28210000
write 213b 44200005
write 213c 78020001
write 213d 38421B30
write 213e F8001F09
write 213f 5C200004
write 2140 3781000C
write 2141 F80007EF
write 2142 E000002B
write 2143 29610000
write 2144 78020001
write 2145 38421B34
write 2146 F8001F01
write 2147 5C200008
write 2148 378B000C
write 2149 B9600800
write 214a F80007E6
write 214b B9601000
write 214c 34010000
write 214d F800129E
write 214e E000001F
write 214f 29610000
write 2150 78020001
write 2151 38421AF0
write 2152 F8001EF5
write 2153 5C20000B
write 2154 29630004
write 2155 44610009
write 2156 378B000C
write 2157 B8600800
write 2158 B9601000
write 2159 FBFFFFC5
write 215a B9600800
write 215b F80007C1
write 215c F8000922
write 215d E0000010
write 215e 29610000
write 215f 78020001
write 2160 38421B3C
write 2161 F8001EE6
write 2162 B8201800
write 2163 3402FFEA
write 2164 5C200013
write 2165 29610004
write 2166 44230011
write 2167 378B000C
write 2168 B9601000
write 2169 FBFFFFB5
write 216a 34010000
write 216b B9601000
write 216c F8001276
write 216d 4382000C
write 216e 4383000D
write 216f 4384000E
write 2170 4385000F
write 2171 43860010
write 2172 43870011
write 2173 78010001
write 2174 38211B44
write 2175 F80006B3
write 2176 34020000
write 2177 B8400800
write 2178 2B9D0004
write 2179 2B8B0008
write 217a 379C0010
write 217b C3A00000
write 217c 379CFFF4
write 217d 5B8B000C
write 217e 5B8C0008
write 217f 5B9D0004
write 2180 34020050
write 2181 B8205800
write 2182 34010000
write 2183 F8000ACB
write 2184 5C200006
write 2185 78010001
write 2186 38211B74
write 2187 F80006A1
write 2188 340BFFFF
write 2189 E0000034
write 218a 29610000
write 218b 4420000D
write 218c 78020001
write 218d 38421948
write 218e F8001EB9
write 218f 5C200009
write 2190 34020050
write 2191 F800114A
write 2192 340B0000
write 2193 4C2B002A
write 2194 78010001
write 2195 38211B88
write 2196 F8000692
write 2197 E0000026
write 2198 29610004
write 2199 44200013
write 219a 29610000
write 219b 78020001
write 219c 38421964
write 219d F8001EAA
write 219e B8206000
write 219f 5C20000D
write 21a0 34020050
write 21a1 B9601800
write 21a2 F800114A
write 21a3 4C2C0004
write 21a4 78010001
write 21a5 38211BA8
write 21a6 E0000003
write 21a7 78010001
write 21a8 38211BC4
write 21a9 F800067F
write 21aa 340B0000
write 21ab E0000012
write 21ac 29610000
write 21ad 44200008
write 21ae 78020001
write 21af 38421994
write 21b0 F8001E97
write 21b1 5C200004
write 21b2 34020050
write 21b3 F80011A7
write 21b4 E3FFFFF6
write 21b5 29610000
write 21b6 340B0000
write 21b7 44200006
write 21b8 78020001
write 21b9 38421BCC
write 21ba F8001E8D
write 21bb 5C200002
write 21bc FBFFFCA3
write 21bd B9600800
write 21be 2B9D0004
write 21bf 2B8B000C
write 21c0 2B8C0008
write 21c1 379C000C
write 21c2 C3A00000
write 21c3 379CFFF8
write 21c4 5B8B0008
write 21c5 5B9D0004
write 21c6 B8205800
write 21c7 28210000
write 21c8 4420000C
write 21c9 78020001
write 21ca 38421BDC
write 21cb F8001E7C
write 21cc 5C200008
write 21cd 34010001
write 21ce FBFFEC21
write 21cf 78010001
write 21d0 38212890
write 21d1 34020001
write 21d2 58220000
write 21d3 E000000B
write 21d4 29610000
write 21d5 44200009
write 21d6 78020001
write 21d7 38421BE4
write 21d8 F8001E6F
write 21d9 5C200005
write 21da FBFFEC15
write 21db 78010001
write 21dc 38212890
write 21dd 58200000
write 21de 78010001
write 21df 38212890
write 21e0 28210000
write 21e1 78020001
write 21e2 38421BD8
write 21e3 44200003
write 21e4 78020001
write 21e5 38421BD4
write 21e6 78010001
write 21e7 38211BEC
write 21e8 F8000640
write 21e9 34010000
write 21ea 2B9D0004
write 21eb 2B8B0008
write 21ec 379C0008
write 21ed C3A00000
write 21ee 379CFFF0
write 21ef 5B8B0010
write 21f0 5B8C000C
write 21f1 5B8D0008
write 21f2 5B9D0004
write 21f3 78010001
write 21f4 38211C08
write 21f5 780B0001
write 21f6 780D0001
write 21f7 780C0001
write 21f8 F8000630
write 21f9 396B30B4
write 21fa 39AD3154
write 21fb 398C1C20
write 21fc E0000005
write 21fd 29620000
write 21fe B9800800
write 21ff 356B0008
write 2200 F8000628
write 2201 55ABFFFC
write 2202 34010000
write 2203 2B9D0004
write 2204 2B8B0010
write 2205 2B8C000C
write 2206 2B8D0008
write 2207 379C0010
write 2208 C3A00000
write 2209 379CFFF8
write 220a 5B9D0004
write 220b B8201000
write 220c 28210000
write 220d 4420000D
write 220e 28420004
write 220f 5C40000B
write 2210 37820008
write 2211 FBFFFC41
write 2212 2B820008
write 2213 78010001
write 2214 3821288C
write 2215 084203E8
write 2216 58220000
write 2217 78010001
write 2218 38210858
write 2219 E0000003
write 221a 78010001
write 221b 38211C30
write 221c F800060C
write 221d 34010000
write 221e 2B9D0004
write 221f 379C0008
write 2220 C3A00000
write 2221 379CFFE8
write 2222 5B8B0010
write 2223 5B8C000C
write 2224 5B9B0008
write 2225 5B9D0004
write 2226 B820D800
write 2227 28210000
write 2228 44200005
write 2229 78020001
write 222a 38421B30
write 222b F8001E1C
write 222c 5C200004
write 222d 37810018
write 222e F80004D6
write 222f E0000018
write 2230 2B610000
write 2231 78020001
write 2232 38421AF0
write 2233 F8001E14
write 2234 B8201800
write 2235 3402FFEA
write 2236 5C200021
write 2237 2B610004
write 2238 4423001F
write 2239 379B0018
write 223a 378C001C
write 223b 378B0014
write 223c B9601000
write 223d FBFFFC15
write 223e 2B820014
write 223f 33620000
write 2240 40220000
write 2241 377B0001
write 2242 6442002E
write 2243 B4220800
write 2244 5F6CFFF8
write 2245 37810018
write 2246 F80004C7
write 2247 78010001
write 2248 3821308C
write 2249 28210000
write 224a 44200005
write 224b 78010001
write 224c 38211C54
write 224d F80005DB
write 224e E0000008
write 224f 43820018
write 2250 43830019
write 2251 4384001A
write 2252 4385001B
write 2253 78010001
write 2254 38211C70
write 2255 F80005D3
write 2256 34020000
write 2257 B8400800
write 2258 2B9D0004
write 2259 2B8B0010
write 225a 2B8C000C
write 225b 2B9B0008
write 225c 379C0018
write 225d C3A00000
write 225e 379CFFFC
write 225f 5B9D0004
write 2260 28210000
write 2261 44200005
write 2262 FBFFE2D6
write 2263 78020001
write 2264 38423180
write 2265 58410000
write 2266 78020001
write 2267 38423180
write 2268 28420000
write 2269 78010001
write 226a 38211C90
write 226b F80005BD
write 226c 34010000
write 226d 2B9D0004
write 226e 379C0004
write 226f C3A00000
write 2270 379CFFD8
write 2271 5B8B0028
write 2272 5B8C0024
write 2273 5B8D0020
write 2274 5B8E001C
write 2275 5B8F0018
write 2276 5B900014
write 2277 5B910010
write 2278 5B92000C
write 2279 5B9D0008
write 227a 78030001
write 227b 38632388
write 227c B8406000
write 227d B8400800
write 227e 28620000
write 227f F8001CB8
write 2280 78030001
write 2281 38632388
write 2282 28620000
write 2283 B8205800
write 2284 B9800800
write 2285 F8001CA2
write 2286 B8206000
write 2287 3402003C
write 2288 B9600800
write 2289 F8001CAE
write 228a 34020E10
write 228b B8208800
write 228c B9600800
write 228d F8001CAA
write 228e 3402003C
write 228f F8001C98
write 2290 34020E10
write 2291 B8207800
write 2292 B9600800
write 2293 F8001C94
write 2294 B8208000
write 2295 34020007
write 2296 35810004
write 2297 F8001CA0
write 2298 B8209000
write 2299 340B07B2
write 229a E000000F
write 229b 3402016D
write 229c 5DA0000B
write 229d 34020064
write 229e B9600800
write 229f F8001C68
write 22a0 3402016E
write 22a1 5C2D0006
write 22a2 34020190
write 22a3 B9600800
write 22a4 F8001C63
write 22a5 64220000
write 22a6 3442016D
write 22a7 C9826000
write 22a8 356B0001
write 22a9 216D0003
write 22aa 3402016D
write 22ab 5DA0000B
write 22ac 34020064
write 22ad B9600800
write 22ae F8001C59
write 22af 3402016E
write 22b0 5C2D0006
write 22b1 34020190
write 22b2 B9600800
write 22b3 F8001C54
write 22b4 64220000
write 22b5 3442016D
write 22b6 5182FFE5
write 22b7 34020064
write 22b8 B9600800
write 22b9 F8001C4E
write 22ba 34020190
write 22bb B8207000
write 22bc B9600800
write 22bd F8001C4A
write 22be 78030001
write 22bf 34020000
write 22c0 64250000
write 22c1 38632568
write 22c2 E000000D
write 22c3 34040000
write 22c4 5DA00004
write 22c5 34040001
write 22c6 5DCD0002
write 22c7 B8A02000
write 22c8 0884000C
write 22c9 B4822000
write 22ca 3C840002
write 22cb 34420001
write 22cc B4642000
write 22cd 28810000
write 22ce C9816000
write 22cf 34040000
write 22d0 5DA00004
write 22d1 34040001
write 22d2 5DCD0002
write 22d3 B8A02000
write 22d4 0884000C
write 22d5 B4822000
write 22d6 3C840002
write 22d7 B4642000
write 22d8 28810000
write 22d9 5181FFEA
write 22da 3E450002
write 22db 78030001
write 22dc 386325C8
write 22dd B4652800
write 22de 3C420002
write 22df 78030001
write 22e0 386325E4
write 22e1 B4622000
write 22e2 28840000
write 22e3 28A30000
write 22e4 780D0001
write 22e5 39AD3504
write 22e6 78020001
write 22e7 B9A00800
write 22e8 38421CB0
write 22e9 35850001
write 22ea B9603000
write 22eb BA003800
write 22ec B9E04000
write 22ed 5B910004
write 22ee F800052C
write 22ef B9A00800
write 22f0 2B9D0008
write 22f1 2B8B0028
write 22f2 2B8C0024
write 22f3 2B8D0020
write 22f4 2B8E001C
write 22f5 2B8F0018
write 22f6 2B900014
write 22f7 2B910010
write 22f8 2B92000C
write 22f9 379C0028
write 22fa C3A00000
write 22fb 379CFFDC
write 22fc 5B8B0008
write 22fd 5B9D0004
write 22fe 5B840014
write 22ff 20240080
write 2300 64840000
write 2301 5B830010
write 2302 78030001
write 2303 B8204800
write 2304 B8600800
write 2305 34030002
write 2306 5B82000C
write 2307 B8405800
write 2308 38211CD0
write 2309 C8641000
write 230a 2123007F
write 230b 5B850018
write 230c 5B86001C
write 230d 5B870020
write 230e 5B880024
write 230f F8000519
write 2310 37820010
write 2311 B9600800
write 2312 F80004F4
write 2313 78010001
write 2314 38211CDC
write 2315 F8000513
write 2316 2B9D0004
write 2317 2B8B0008
write 2318 379C0024
write 2319 C3A00000
write 231a 379CFFE0
write 231b 5B8B000C
write 231c 5B8C0008
write 231d 5B9D0004
write 231e B8404800
write 231f 78020001
write 2320 B8205000
write 2321 B8400800
write 2322 B8605800
write 2323 B9401000
write 2324 B9201800
write 2325 38211CE0
write 2326 B8806000
write 2327 5B840010
write 2328 5B850014
write 2329 5B860018
write 232a 5B87001C
write 232b 5B880020
write 232c F80004FC
write 232d 21620080
write 232e 78030001
write 232f 64420000
write 2330 B8600800
write 2331 34030002
write 2332 C8621000
write 2333 38211CD0
write 2334 2163007F
write 2335 F80004F3
write 2336 37820014
write 2337 B9800800
write 2338 F80004CE
write 2339 78010001
write 233a 38211CDC
write 233b F80004ED
write 233c 2B9D0004
write 233d 2B8B000C
write 233e 2B8C0008
write 233f 379C0020
write 2340 C3A00000
write 2341 379CFFFC
write 2342 5B9D0004
write 2343 78010001
write 2344 38211CEC
write 2345 F80004E3
write 2346 2B9D0004
write 2347 379C0004
write 2348 C3A00000
write 2349 40240000
write 234a 3402002D
write 234b 34030001
write 234c 5C820003
write 234d 34210001
write 234e 3403FFFF
write 234f 34020000
write 2350 34050009
write 2351 E0000004
write 2352 0842000A
write 2353 34210001
write 2354 B4821000
write 2355 40240000
write 2356 3484FFD0
write 2357 208600FF
write 2358 50A6FFFA
write 2359 88430800
write 235a C3A00000
write 235b 379CFFF4
write 235c 5B8B000C
write 235d 5B8C0008
write 235e 5B9D0004
write 235f B8206000
write 2360 F8000BC0
write 2361 342B0001
write 2362 F8000BBE
write 2363 5C2BFFFF
write 2364 B9800800
write 2365 E0000002
write 2366 3421FFFF
write 2367 4820FFFF
write 2368 F8000BB8
write 2369 C82B0800
write 236a 2B9D0004
write 236b 2B8B000C
write 236c 2B8C0008
write 236d 379C000C
write 236e C3A00000
write 236f 379CFFF0
write 2370 5B8B0010
write 2371 5B8C000C
write 2372 5B8D0008
write 2373 5B9D0004
write 2374 340B0400
write 2375 340C0400
write 2376 E0000003
write 2377 B58B6000
write 2378 3D6B0001
write 2379 B9800800
write 237a FBFFFFE1
write 237b 4420FFFC
write 237c 158C0001
write 237d 156B0002
write 237e E0000009
write 237f B56C6800
write 2380 B9A00800
write 2381 FBFFFFDA
write 2382 5C200002
write 2383 B9A06000
write 2384 0161001F
write 2385 B42B5800
write 2386 156B0001
write 2387 5D60FFF8
write 2388 78010001
write 2389 38213544
write 238a 582C0000
write 238b 78010001
write 238c B9801000
write 238d 38211D44
write 238e F800049A
write 238f 2B9D0004
write 2390 2B8B0010
write 2391 2B8C000C
write 2392 2B8D0008
write 2393 379C0010
write 2394 C3A00000
write 2395 379CFFFC
write 2396 5B9D0004
write 2397 78020001
write 2398 38423544
write 2399 28430000
write 239a 34042710
write 239b 0865000A
write 239c E0000004
write 239d 3442FFFF
write 239e 4840FFFF
write 239f 3421D8F0
write 23a0 50810003
write 23a1 B8A01000
write 23a2 E3FFFFFC
write 23a3 88230800
write 23a4 340203E8
write 23a5 F8001B82
write 23a6 E0000002
write 23a7 3421FFFF
write 23a8 4820FFFF
write 23a9 34010000
write 23aa 2B9D0004
write 23ab 379C0004
write 23ac C3A00000
write 23ad 379CFFFC
write 23ae 5B9D0004
write 23af B8400800
write 23b0 F8000580
write 23b1 34010000
write 23b2 2B9D0004
write 23b3 379C0004
write 23b4 C3A00000
write 23b5 78020001
write 23b6 38423548
write 23b7 58410038
write 23b8 58410280
write 23b9 584104C8
write 23ba 58410710
write 23bb C3A00000
write 23bc 379CFF94
write 23bd 5B8B0018
write 23be 5B8C0014
write 23bf 5B8D0010
write 23c0 5B8E000C
write 23c1 5B8F0008
write 23c2 5B9D0004
write 23c3 78040001
write 23c4 B8206800
write 23c5 B8607800
write 23c6 38843548
write 23c7 340C0000
write 23c8 34010004
write 23c9 28820000
write 23ca 5C400005
write 23cb 34010001
write 23cc 340B0000
write 23cd 5DA10021
write 23ce E0000006
write 23cf 358C0001
write 23d0 34840248
write 23d1 5D81FFF8
write 23d2 340B0000
write 23d3 E000001B
write 23d4 3781001C
write 23d5 B9E01000
write 23d6 FBFFE03E
write 23d7 48010017
write 23d8 098E0248
write 23d9 780C0001
write 23da 398C3548
write 23db B5CC5800
write 23dc B9E01000
write 23dd 3403002C
write 23de 35610004
write 23df F8001BA9
write 23e0 35C10030
write 23e1 B42C0800
write 23e2 F800054E
write 23e3 2B810058
write 23e4 35620240
write 23e5 0C400002
write 23e6 59610038
write 23e7 2B81002C
write 23e8 0D600240
write 23e9 0C400006
write 23ea 5961003C
write 23eb 34010200
write 23ec 0C410004
write 23ed 596D0000
write 23ee B9600800
write 23ef 2B9D0004
write 23f0 2B8B0018
write 23f1 2B8C0014
write 23f2 2B8D0010
write 23f3 2B8E000C
write 23f4 2B8F0008
write 23f5 379C006C
write 23f6 C3A00000
write 23f7 44200002
write 23f8 58200000
write 23f9 34010000
write 23fa C3A00000
write 23fb 379CFFE8
write 23fc 5B8B0018
write 23fd 5B8C0014
write 23fe 5B8D0010
write 23ff 5B8E000C
write 2400 5B8F0008
write 2401 5B9D0004
write 2402 B8205800
write 2403 59620010
write 2404 B8407000
write 2405 B8807800
write 2406 B8A06000
write 2407 282D0008
write 2408 44600005
write 2409 B8A00800
write 240a 3402FC18
write 240b F8001ACF
write 240c B42D6800
write 240d C9CF2000
write 240e B8801800
write 240f 4C800002
write 2410 B48C1800
write 2411 0181001F
write 2412 B42C0800
write 2413 14210001
write 2414 B4242000
write 2415 4C800002
write 2416 B48C2000
write 2417 49840002
write 2418 C88C2000
write 2419 09820003
write 241a 1445001F
write 241b 00A5001E
write 241c B4A21000
write 241d 14420002
write 241e 48620006
write 241f 1582001F
write 2420 0042001E
write 2421 B44C1000
write 2422 14420002
write 2423 4C62000D
write 2424 B4812000
write 2425 596D0008
write 2426 5964000C
write 2427 4984000A
write 2428 C88C2000
write 2429 5964000C
write 242a B9800800
write 242b 340203E8
write 242c F8001AAE
write 242d B5A10800
write 242e 59610008
write 242f E0000002
write 2430 5963000C
write 2431 78030001
write 2432 3863233C
write 2433 29610008
write 2434 28620000
write 2435 4C41000D
write 2436 78030001
write 2437 38632358
write 2438 28620000
write 2439 29630000
write 243a B4220800
write 243b 29620004
write 243c 59610008
write 243d 34410001
write 243e F4411000
write 243f 59610004
write 2440 B4431000
write 2441 59620000
write 2442 2B9D0004
write 2443 2B8B0018
write 2444 2B8C0014
write 2445 2B8D0010
write 2446 2B8E000C
write 2447 2B8F0008
write 2448 379C0018
write 2449 C3A00000
write 244a 379CFFBC
write 244b 5B8B001C
write 244c 5B8C0018
write 244d 5B8D0014
write 244e 5B8E0010
write 244f 5B8F000C
write 2450 5B900008
write 2451 5B9D0004
write 2452 B8407800
write 2453 2C220246
write 2454 B8205800
write 2455 B8806800
write 2456 B8A06000
write 2457 34010000
write 2458 44400079
write 2459 2D610242
write 245a 3442FFFF
write 245b 0D620246
write 245c B5612000
write 245d 40840040
write 245e 34210001
write 245f 2021FFFF
write 2460 33840046
write 2461 0D610242
write 2462 34040200
write 2463 2D620244
write 2464 5C240002
write 2465 0D600242
write 2466 2D610242
write 2467 B5612000
write 2468 40840040
write 2469 34210001
write 246a 2021FFFF
write 246b 33840047
write 246c 0D610242
write 246d 34040200
write 246e 5C240002
write 246f 0D600242
write 2470 34420002
write 2471 2042FFFF
write 2472 0D620244
write 2473 37870046
write 2474 37850038
write 2475 34060200
write 2476 E000000B
write 2477 2D610242
write 2478 B5612000
write 2479 40840040
write 247a 34210001
write 247b 2021FFFF
write 247c 30A40000
write 247d 0D610242
write 247e 34A50001
write 247f 5C260002
write 2480 0D600242
write 2481 5CA7FFF6
write 2482 3442000E
write 2483 2042FFFF
write 2484 0D620244
write 2485 37870038
write 2486 37850020
write 2487 34060200
write 2488 E000000B
write 2489 2D610242
write 248a B5612000
write 248b 40840040
write 248c 34210001
write 248d 2021FFFF
write 248e 30A40000
write 248f 0D610242
write 2490 34A50001
write 2491 5C260002
write 2492 0D600242
write 2493 5CA7FFF6
write 2494 34420018
write 2495 2F8E0046
write 2496 2042FFFF
write 2497 0D620244
write 2498 B9A00800
write 2499 51CD0002
write 249a B9C00800
write 249b B4613000
write 249c 34050200
write 249d E000000C
write 249e 2D640242
write 249f B5642000
write 24a0 40840040
write 24a1 30640000
write 24a2 2D640242
write 24a3 34630001
write 24a4 34840001
write 24a5 2084FFFF
write 24a6 0D640242
write 24a7 5C850002
write 24a8 0D600242
write 24a9 5C66FFF5
write 24aa B4410800
write 24ab 0D610244
write 24ac 2F810044
write 24ad 3782003E
write 24ae 34030006
write 24af 0DE10026
write 24b0 35E10014
write 24b1 F8001AD7
write 24b2 35E1001A
write 24b3 37820038
write 24b4 34030006
write 24b5 F8001AD3
write 24b6 45800017
write 24b7 2B900030
write 24b8 2B8F0024
write 24b9 35820010
write 24ba 34030000
write 24bb 59900014
write 24bc 598F0018
write 24bd 34010000
write 24be F8001899
write 24bf 2B810028
write 24c0 29820010
write 24c1 29640038
write 24c2 59810000
write 24c3 2B81002C
write 24c4 59900008
write 24c5 5980000C
write 24c6 59810004
write 24c7 43810020
write 24c8 B9E01800
write 24c9 34051F40
write 24ca 5981001C
write 24cb B9800800
write 24cc FBFFFF2F
write 24cd 35CEFFF2
write 24ce B9A00800
write 24cf 51CD0002
write 24d0 B9C00800
write 24d1 2B9D0004
write 24d2 2B8B001C
write 24d3 2B8C0018
write 24d4 2B8D0014
write 24d5 2B8E0010
write 24d6 2B8F000C
write 24d7 2B900008
write 24d8 379C0044
write 24d9 C3A00000
write 24da 379CFFBC
write 24db 5B8B001C
write 24dc 5B8C0018
write 24dd 5B8D0014
write 24de 5B8E0010
write 24df 5B8F000C
write 24e0 5B900008
write 24e1 5B9D0004
write 24e2 378D0038
write 24e3 B8208000
write 24e4 B8406000
write 24e5 B8607800
write 24e6 34420014
write 24e7 34030006
write 24e8 B9A00800
write 24e9 B8807000
write 24ea B8A05800
write 24eb F8001A9D
write 24ec 36020030
write 24ed 34030006
write 24ee 3781003E
write 24ef F8001A99
write 24f0 2D810026
write 24f1 B9E01000
write 24f2 35C3000E
write 24f3 0F810044
write 24f4 37840020
write 24f5 B9A00800
write 24f6 F80008B5
write 24f7 4560000A
write 24f8 2B820028
write 24f9 5960000C
write 24fa 59620000
write 24fb 2B82002C
write 24fc 59620004
write 24fd 2B820030
write 24fe 59620008
write 24ff 43820020
write 2500 5962001C
write 2501 2B9D0004
write 2502 2B8B001C
write 2503 2B8C0018
write 2504 2B8D0014
write 2505 2B8E0010
write 2506 2B8F000C
write 2507 2B900008
write 2508 379C0044
write 2509 C3A00000
write 250a 379CFFC4
write 250b 5B8B0020
write 250c 5B8C001C
write 250d 5B8D0018
write 250e 5B8E0014
write 250f 5B8F0010
write 2510 5B90000C
write 2511 5B9B0008
write 2512 5B9D0004
write 2513 780B0001
write 2514 396B4048
write 2515 78020001
write 2516 B9600800
write 2517 38423E68
write 2518 340301E0
write 2519 37840024
write 251a F80007E5
write 251b B8207000
write 251c 4C01006D
write 251d 780C0001
write 251e 398C3548
write 251f 340D0000
write 2520 B9808000
write 2521 B9607800
write 2522 341B0004
write 2523 09A20248
write 2524 29810000
write 2525 B4505800
write 2526 44200009
write 2527 B9E00800
write 2528 35620018
write 2529 34030006
write 252a F8001A3D
write 252b 5C200004
write 252c 2DE2000C
write 252d 2D81002A
write 252e 44410005
write 252f 35AD0001
write 2530 358C0248
write 2531 5DBBFFF2
write 2532 E0000057
write 2533 2D630244
write 2534 35C10028
write 2535 48230054
write 2536 2D620240
write 2537 21C1FFFF
write 2538 00250008
write 2539 B5622000
write 253a 34420001
write 253b 0F81003E
write 253c 2042FFFF
write 253d 30850040
write 253e 0D620240
write 253f 34040200
write 2540 5C440002
write 2541 0D600240
write 2542 2D620240
write 2543 4385003F
write 2544 B5622000
write 2545 34420001
write 2546 2042FFFF
write 2547 30850040
write 2548 0D620240
write 2549 34040200
write 254a 5C440002
write 254b 0D600240
write 254c 3463FFFE
write 254d 78020001
write 254e 2063FFFF
write 254f 38424048
write 2550 0D630244
write 2551 3446000E
write 2552 34050200
write 2553 E000000B
write 2554 2D640240
write 2555 40480000
write 2556 34420001
write 2557 B5643800
write 2558 34840001
write 2559 2084FFFF
write 255a 30E80040
write 255b 0D640240
write 255c 5C850002
write 255d 0D600240
write 255e 5C46FFF6
write 255f 3463FFF2
write 2560 2063FFFF
write 2561 0D630244
write 2562 379B003C
write 2563 37820024
write 2564 34050200
write 2565 E000000B
write 2566 2D640240
write 2567 40470000
write 2568 34420001
write 2569 B5643000
write 256a 34840001
write 256b 2084FFFF
write 256c 30C70040
write 256d 0D640240
write 256e 5C850002
write 256f 0D600240
write 2570 5C5BFFF6
write 2571 3463FFE8
write 2572 78020001
write 2573 2063FFFF
write 2574 38423E68
write 2575 0D630244
write 2576 B4223000
write 2577 34050200
write 2578 E000000B
write 2579 2D640240
write 257a 40480000
write 257b 34420001
write 257c B5643800
write 257d 34840001
write 257e 2084FFFF
write 257f 30E80040
write 2580 0D640240
write 2581 5C850002
write 2582 0D600240
write 2583 5C46FFF6
write 2584 C8610800
write 2585 0D610244
write 2586 2D610246
write 2587 34210001
write 2588 0D610246
write 2589 2B9D0004
write 258a 2B8B0020
write 258b 2B8C001C
write 258c 2B8D0018
write 258d 2B8E0014
write 258e 2B8F0010
write 258f 2B90000C
write 2590 2B9B0008
write 2591 379C003C
write 2592 C3A00000
write 2593 379CFFC8
write 2594 5B8B000C
write 2595 5B8C0008
write 2596 5B9D0004
write 2597 378B0010
write 2598 B8206000
write 2599 3403002C
write 259a B9600800
write 259b 34020000
write 259c F8001A6A
write 259d B9801000
write 259e B9600800
write 259f F8001AC9
write 25a0 37810024
write 25a1 340200FF
write 25a2 34030006
write 25a3 F8001A63
write 25a4 34010806
write 25a5 0F810036
write 25a6 34020000
write 25a7 34010001
write 25a8 B9601800
write 25a9 5B810020
write 25aa FBFFFE12
write 25ab 78020001
write 25ac 38424058
write 25ad 58410000
write 25ae 2B9D0004
write 25af 2B8B000C
write 25b0 2B8C0008
write 25b1 379C0038
write 25b2 C3A00000
write 25b3 379CFF1C
write 25b4 5B8B0028
write 25b5 5B8C0024
write 25b6 5B8D0020
write 25b7 5B8E001C
write 25b8 5B8F0018
write 25b9 5B900014
write 25ba 5B910010
write 25bb 5B92000C
write 25bc 5B930008
write 25bd 5B9D0004
write 25be 78010001
write 25bf 3821308C
write 25c0 282C0000
write 25c1 5D800047
write 25c2 780B0001
write 25c3 396B4058
write 25c4 29610000
write 25c5 378E00AC
write 25c6 378D002C
write 25c7 B9C01000
write 25c8 B9A01800
write 25c9 34040080
write 25ca 34050000
write 25cb FBFFFE7F
write 25cc 4D81003C
write 25cd 3402001B
write 25ce 4C41003A
write 25cf 378C00E0
write 25d0 B9800800
write 25d1 F8000133
write 25d2 43810032
write 25d3 5C200035
write 25d4 43930033
write 25d5 34010001
write 25d6 5E610032
write 25d7 378F0044
write 25d8 B9E00800
write 25d9 B9801000
write 25da 34030004
write 25db F800198C
write 25dc 5C20002C
write 25dd 379000D8
write 25de 37920034
write 25df BA401000
write 25e0 34030006
write 25e1 BA000800
write 25e2 F80019A6
write 25e3 3791003A
write 25e4 BA201000
write 25e5 34030004
write 25e6 378100E4
write 25e7 F80019A1
write 25e8 34010008
write 25e9 3381002E
write 25ea 34010006
write 25eb 33810030
write 25ec 34010004
write 25ed 33810031
write 25ee 34010002
write 25ef 33810033
write 25f0 BA400800
write 25f1 3380002C
write 25f2 3393002D
write 25f3 3380002F
write 25f4 33800032
write 25f5 F800033B
write 25f6 B9801000
write 25f7 34030004
write 25f8 BA200800
write 25f9 F800198F
write 25fa BA001000
write 25fb 34030006
write 25fc 3781003E
write 25fd F800198B
write 25fe 378200E4
write 25ff 34030004
write 2600 B9E00800
write 2601 F8001987
write 2602 29610000
write 2603 B9C01000
write 2604 B9A01800
write 2605 3404001C
write 2606 34050000
write 2607 FBFFFED3
write 2608 2B9D0004
write 2609 2B8B0028
write 260a 2B8C0024
write 260b 2B8D0020
write 260c 2B8E001C
write 260d 2B8F0018
write 260e 2B900014
write 260f 2B910010
write 2610 2B92000C
write 2611 2B930008
write 2612 379C00E4
write 2613 C3A00000
write 2614 379CFFE0
write 2615 5B8B0018
write 2616 5B8C0014
write 2617 5B8D0010
write 2618 5B8E000C
write 2619 5B8F0008
write 261a 5B9D0004
write 261b 378D001C
write 261c B8205800
write 261d B9A00800
write 261e F80000E6
write 261f 41620000
write 2620 34010045
write 2621 340C0000
write 2622 5C41004A
write 2623 356E0010
write 2624 B9A01000
write 2625 B9C00800
write 2626 34030004
write 2627 F8001940
write 2628 B8201000
write 2629 5C200043
write 262a 41640009
write 262b 34030001
write 262c 416D0002
write 262d 41610003
write 262e B8406000
write 262f 5C83003D
write 2630 41630014
write 2631 34020008
write 2632 5C62003A
write 2633 3DAD0008
write 2634 B9A16800
write 2635 35ADFFE8
write 2636 34010040
write 2637 4C2D0002
write 2638 340D0040
write 2639 356F000C
write 263a B9E01000
write 263b 34030004
write 263c 37810020
write 263d F800194B
write 263e 35AC0018
write 263f 34010045
write 2640 31610000
write 2641 15810008
write 2642 3782001C
write 2643 31610002
write 2644 3401003F
write 2645 31610008
write 2646 34010001
write 2647 31610009
write 2648 34030004
write 2649 31600001
write 264a 316C0003
write 264b 31600004
write 264c 31600005
write 264d 31600006
write 264e 31600007
write 264f 3160000A
write 2650 3160000B
write 2651 B9E00800
write 2652 F8001936
write 2653 34030004
write 2654 37820020
write 2655 B9C00800
write 2656 F8001932
write 2657 35AD0005
write 2658 01A1001F
write 2659 31600014
write 265a B42D6800
write 265b 15A20001
write 265c 31600015
write 265d 31600016
write 265e 31600017
write 265f 35610014
write 2660 F8000015
write 2661 2021FFFF
write 2662 00220008
write 2663 31610017
write 2664 31620016
write 2665 B9600800
write 2666 3402000A
write 2667 F800000E
write 2668 2021FFFF
write 2669 00220008
write 266a 3161000B
write 266b 3162000A
write 266c B9800800
write 266d 2B9D0004
write 266e 2B8B0018
write 266f 2B8C0014
write 2670 2B8D0010
write 2671 2B8E000C
write 2672 2B8F0008
write 2673 379C0020
write 2674 C3A00000
write 2675 34030000
write 2676 34040000
write 2677 E0000005
write 2678 2C250000
write 2679 34840001
write 267a 34210002
write 267b B4651800
write 267c 4844FFFC
write 267d 00610010
write 267e 2063FFFF
write 267f B4611800
write 2680 00610010
write 2681 B4231800
write 2682 A4600800
write 2683 2021FFFF
write 2684 C3A00000
write 2685 379CFFC4
write 2686 5B8B0010
write 2687 5B8C000C
write 2688 5B8D0008
write 2689 5B9D0004
write 268a 78030001
write 268b 378B0014
write 268c 340C0001
write 268d 3863308C
write 268e B8206800
write 268f 586C0000
write 2690 B9600800
write 2691 3403002C
write 2692 34020000
write 2693 F8001973
write 2694 B9A01000
write 2695 B9600800
write 2696 F80019D2
write 2697 37810028
write 2698 F8000298
write 2699 34010800
write 269a 0F81003A
write 269b 34020000
write 269c B9601800
write 269d 34010001
write 269e 5B8C0024
write 269f FBFFFD1D
write 26a0 78020001
write 26a1 38424068
write 26a2 58410000
write 26a3 2B9D0004
write 26a4 2B8B0010
write 26a5 2B8C000C
write 26a6 2B8D0008
write 26a7 379C003C
write 26a8 C3A00000
write 26a9 379CFE34
write 26aa 5B8B0010
write 26ab 5B8C000C
write 26ac 5B8D0008
write 26ad 5B9D0004
write 26ae 78020001
write 26af 38424068
write 26b0 28410000
write 26b1 378C0014
write 26b2 378201A4
write 26b3 B9801800
write 26b4 34040190
write 26b5 34050000
write 26b6 FBFFFD94
write 26b7 B8205800
write 26b8 4C010019
write 26b9 78020001
write 26ba 3842308C
write 26bb 28410000
write 26bc 44200004
write 26bd B9800800
write 26be B9601000
write 26bf F8000110
write 26c0 78010001
write 26c1 3821308C
write 26c2 282D0000
write 26c3 5DA0000E
write 26c4 378C0014
write 26c5 B9800800
write 26c6 B9601000
write 26c7 FBFFFF4D
write 26c8 B8202000
write 26c9 4DA10008
write 26ca 78020001
write 26cb 38424068
write 26cc 28410000
write 26cd B9801800
write 26ce 378201A4
write 26cf 34050000
write 26d0 FBFFFE0A
write 26d1 78010001
write 26d2 3821308C
write 26d3 28210000
write 26d4 4420001C
write 26d5 78010001
write 26d6 38214064
write 26d7 28210000
write 26d8 5C200018
write 26d9 78010001
write 26da 38214060
write 26db 28220000
write 26dc 378B0014
write 26dd 34420001
write 26de 58220000
write 26df B9600800
write 26e0 F8000059
write 26e1 B8206000
write 26e2 340200FF
write 26e3 34030006
write 26e4 378101B8
write 26e5 F8001921
write 26e6 78020001
write 26e7 34010800
write 26e8 38424068
write 26e9 0F8101CA
write 26ea 28410000
write 26eb B9601800
write 26ec 378201A4
write 26ed B9802000
write 26ee 34050000
write 26ef FBFFFDEB
write 26f0 78010001
write 26f1 3821308C
write 26f2 28210000
write 26f3 4420000B
write 26f4 78010001
write 26f5 38214064
write 26f6 28220000
write 26f7 78040001
write 26f8 3884238C
write 26f9 28830000
write 26fa 34420001
write 26fb 58220000
write 26fc 5C430002
write 26fd 58200000
write 26fe 2B9D0004
write 26ff 2B8B0010
write 2700 2B8C000C
write 2701 2B8D0008
write 2702 379C01CC
write 2703 C3A00000
write 2704 379CFFFC
write 2705 5B9D0004
write 2706 78020001
write 2707 3842405C
write 2708 34030004
write 2709 F800187F
write 270a 2B9D0004
write 270b 379C0004
write 270c C3A00000
write 270d 379CFFF4
write 270e 5B8B000C
write 270f 5B8C0008
write 2710 5B9D0004
write 2711 78030001
write 2712 780B0001
write 2713 396B405C
write 2714 386351D4
write 2715 B8201000
write 2716 286C0000
write 2717 B9600800
write 2718 34030004
write 2719 F800186F
write 271a 41620000
write 271b 41610001
write 271c 358C0018
write 271d 3C420018
write 271e 3C210010
write 271f B8410800
write 2720 41620003
write 2721 B8220800
write 2722 41620002
write 2723 3C420008
write 2724 B8220800
write 2725 E0000002
write 2726 59810000
write 2727 29820000
write 2728 5C41FFFE
write 2729 64220000
write 272a 78010001
write 272b 3821308C
write 272c 58220000
write 272d 5C400007
write 272e 78010001
write 272f 38214060
write 2730 58200000
write 2731 78010001
write 2732 38214064
write 2733 58200000
write 2734 2B9D0004
write 2735 2B8B000C
write 2736 2B8C0008
write 2737 379C000C
write 2738 C3A00000
write 2739 379CFFE8
write 273a 5B8B0018
write 273b 5B8C0014
write 273c 5B8D0010
write 273d 5B8E000C
write 273e 5B8F0008
write 273f 5B9D0004
write 2740 340C0001
write 2741 B8205800
write 2742 302C001C
write 2743 302C001D
write 2744 34010006
write 2745 3161001E
write 2746 3160001F
write 2747 35610020
write 2748 B8406800
write 2749 F80001E7
write 274a 41620024
write 274b 41610020
write 274c 34030002
write 274d 356E0008
write 274e 98410800
write 274f 31610020
write 2750 41620025
write 2751 41610021
write 2752 316D0025
write 2753 356F0010
write 2754 98410800
write 2755 41620022
write 2756 31610021
write 2757 15A10008
write 2758 98221000
write 2759 31620022
write 275a 41620023
write 275b 31610024
write 275c 35610026
write 275d 984D1000
write 275e 31620023
write 275f 34020000
write 2760 F80018A6
write 2761 34020000
write 2762 34030004
write 2763 35610028
write 2764 F80018A2
write 2765 34020000
write 2766 34030004
write 2767 3561002C
write 2768 F800189E
write 2769 34020000
write 276a 34030004
write 276b 35610030
write 276c F800189A
write 276d 34020000
write 276e 34030004
write 276f 35610034
write 2770 F8001896
write 2771 356D0038
write 2772 34020000
write 2773 34030010
write 2774 B9A00800
write 2775 F8001891
write 2776 B9A00800
write 2777 F80001B9
write 2778 34020000
write 2779 34030040
write 277a 35610048
write 277b F800188B
write 277c 34020000
write 277d 34030080
write 277e 35610088
write 277f F8001887
write 2780 34020000
write 2781 34030040
write 2782 35610108
write 2783 F8001883
write 2784 34020000
write 2785 34030004
write 2786 B9C00800
write 2787 F800187F
write 2788 356D000C
write 2789 340200FF
write 278a 34030004
write 278b B9A00800
write 278c F800187A
write 278d 34010011
write 278e 31610011
write 278f 34010044
write 2790 34020034
write 2791 31610015
write 2792 34010043
write 2793 31620013
write 2794 31610017
write 2795 31620019
write 2796 31600010
write 2797 340200A0
write 2798 316C0012
write 2799 31600014
write 279a 31600016
write 279b 316C0018
write 279c 3160001A
write 279d 3160001B
write 279e B9C00800
write 279f FBFFFED6
write 27a0 2022FFFF
write 27a1 5C400002
write 27a2 3802FFFF
write 27a3 00410008
write 27a4 3162001B
write 27a5 3161001A
write 27a6 34010045
write 27a7 31610000
write 27a8 34010001
write 27a9 31610002
write 27aa 34010048
write 27ab 31610003
write 27ac 3401003F
write 27ad 31610008
write 27ae 34010011
write 27af 31610009
write 27b0 31600001
write 27b1 31600004
write 27b2 31600005
write 27b3 31600006
write 27b4 31600007
write 27b5 3160000A
write 27b6 3160000B
write 27b7 B9A00800
write 27b8 34020000
write 27b9 34030004
write 27ba F800184C
write 27bb 34030004
write 27bc B9E00800
write 27bd 340200FF
write 27be F8001848
write 27bf B9600800
write 27c0 3402000A
write 27c1 FBFFFEB4
write 27c2 2021FFFF
write 27c3 00220008
write 27c4 3161000B
write 27c5 34010148
write 27c6 3162000A
write 27c7 2B9D0004
write 27c8 2B8B0018
write 27c9 2B8C0014
write 27ca 2B8D0010
write 27cb 2B8E000C
write 27cc 2B8F0008
write 27cd 379C0018
write 27ce C3A00000
write 27cf 379CFFE0
write 27d0 5B8B0014
write 27d1 5B8C0010
write 27d2 5B8D000C
write 27d3 5B8E0008
write 27d4 5B9D0004
write 27d5 378D0018
write 27d6 B8205800
write 27d7 B9A00800
write 27d8 B8407000
write 27d9 F8000157
write 27da 34010148
write 27db 340C0000
write 27dc 5DC10022
write 27dd 41620000
write 27de 34010045
write 27df 5C41001F
write 27e0 41620009
write 27e1 34010011
write 27e2 5C41001C
write 27e3 41610016
write 27e4 5C20001A
write 27e5 41620017
write 27e6 34010044
write 27e7 5C410017
write 27e8 41610014
write 27e9 5C200015
write 27ea 41620015
write 27eb 34010043
write 27ec 5C410012
write 27ed 35610038
write 27ee B9A01000
write 27ef 34030006
write 27f0 F8001777
write 27f1 5C20000D
write 27f2 3561002C
write 27f3 FBFFFF1A
write 27f4 37810020
write 27f5 FBFFFF0F
write 27f6 43820020
write 27f7 43830021
write 27f8 43840022
write 27f9 43850023
write 27fa 78010001
write 27fb 38211D5C
write 27fc F800002C
write 27fd 340C0001
write 27fe B9800800
write 27ff 2B9D0004
write 2800 2B8B0014
write 2801 2B8C0010
write 2802 2B8D000C
write 2803 2B8E0008
write 2804 379C0020
write 2805 C3A00000
write 2806 379CFFF4
write 2807 5B8B000C
write 2808 5B8C0008
write 2809 5B9D0004
write 280a 780B0001
write 280b B8202000
write 280c 396B406C
write 280d B8401800
write 280e B9600800
write 280f B8801000
write 2810 F8000027
write 2811 B8206000
write 2812 B9600800
write 2813 F8000F3E
write 2814 B9800800
write 2815 2B9D0004
write 2816 2B8B000C
write 2817 2B8C0008
write 2818 379C000C
write 2819 C3A00000
write 281a 379CFFE0
write 281b 5B9D0004
write 281c 5B83000C
write 281d 3783000C
write 281e 5B820008
write 281f 5B840010
write 2820 5B850014
write 2821 5B860018
write 2822 5B87001C
write 2823 5B880020
write 2824 F8000013
write 2825 2B9D0004
write 2826 379C0020
write 2827 C3A00000
write 2828 379CFFDC
write 2829 5B9D0004
write 282a 5B82000C
write 282b 3782000C
write 282c 5B810008
write 282d 5B830010
write 282e 5B840014
write 282f 5B850018
write 2830 5B86001C
write 2831 5B870020
write 2832 5B880024
write 2833 FBFFFFD3
write 2834 2B9D0004
write 2835 379C0024
write 2836 C3A00000
write 2837 379CFF94
write 2838 5B8B0044
write 2839 5B8C0040
write 283a 5B8D003C
write 283b 5B8E0038
write 283c 5B8F0034
write 283d 5B900030
write 283e 5B91002C
write 283f 5B920028
write 2840 5B930024
write 2841 5B940020
write 2842 5B95001C
write 2843 5B960018
write 2844 5B970014
write 2845 5B980010
write 2846 5B99000C
write 2847 5B9B0008
write 2848 5B9D0004
write 2849 78160001
write 284a B820C800
write 284b B840A000
write 284c B8209800
write 284d 34180025
write 284e 34090069
write 284f 34080070
write 2850 34070058
write 2851 34060063
write 2852 34050064
write 2853 341B002A
write 2854 340A0030
write 2855 34170010
write 2856 37950060
write 2857 3AD61D84
write 2858 E0000093
write 2859 34110001
write 285a 34100020
write 285b 340E000A
write 285c 44380004
write 285d 32610000
write 285e E0000038
write 285f 34100030
write 2860 36940001
write 2861 42810000
write 2862 4429003C
write 2863 5429000D
write 2864 44270037
write 2865 54270008
write 2866 443B0018
write 2867 543B0004
write 2868 44200085
write 2869 5C380017
write 286a E000002B
write 286b 5C2A0015
write 286c E3FFFFF3
write 286d 44260019
write 286e 5C250012
write 286f E000002F
write 2870 4428002B
write 2871 54280006
write 2872 3402006E
write 2873 44220077
write 2874 3404006F
write 2875 5C24000B
write 2876 E0000022
write 2877 34020075
write 2878 44220026
write 2879 34040078
write 287a 44240021
write 287b 34020073
write 287c 5C220004
write 287d E000000E
write 287e 286E0000
write 287f 34630004
write 2880 3422FFCF
write 2881 204200FF
write 2882 34040008
write 2883 5444FFDD
write 2884 3431FFD0
write 2885 E3FFFFDB
write 2886 28610000
write 2887 34630004
write 2888 32610000
write 2889 36730001
write 288a E0000060
write 288b B8600800
write 288c 28210000
write 288d 34630004
write 288e E0000004
write 288f 32620000
write 2890 34210001
write 2891 36730001
write 2892 40220000
write 2893 5C40FFFC
write 2894 E0000056
write 2895 32780000
write 2896 36730001
write 2897 E0000053
write 2898 3401000A
write 2899 45C10004
write 289a E0000004
write 289b 340E0010
write 289c E0000002
write 289d 340E0008
write 289e 286D0000
write 289f 34720004
write 28a0 65C3000A
write 28a1 01A4001F
write 28a2 340F0000
write 28a3 A0831800
write 28a4 44600003
write 28a5 C80D6800
write 28a6 340F0001
write 28a7 340C0010
write 28a8 E0000019
write 28a9 B9A00800
write 28aa B9C01000
write 28ab 5B85004C
write 28ac 5B860050
write 28ad 5B870054
write 28ae 5B880058
write 28af 5B89005C
write 28b0 5B8A0048
write 28b1 F8001686
write 28b2 B6C11800
write 28b3 40630000
write 28b4 358CFFFF
write 28b5 B6AC5800
write 28b6 B9A00800
write 28b7 31630000
write 28b8 B9C01000
write 28b9 F800166E
write 28ba 2B8A0048
write 28bb 2B89005C
write 28bc 2B880058
write 28bd 2B870054
write 28be 2B860050
write 28bf 2B85004C
write 28c0 B8206800
write 28c1 7D840000
write 28c2 7DA30000
write 28c3 A0831800
write 28c4 5C60FFE5
write 28c5 5D970004
write 28c6 34020030
write 28c7 3382006F
write 28c8 340C000F
write 28c9 66020020
write 28ca A1E21000
write 28cb 4440000B
write 28cc 358CFFFF
write 28cd B6AC1000
write 28ce 3403002D
write 28cf 30430000
write 28d0 340F0000
write 28d1 E0000005
write 28d2 358CFFFF
write 28d3 B6AC1000
write 28d4 30500000
write 28d5 E0000003
write 28d6 CAF10800
write 28d7 B42F0800
write 28d8 4981FFFA
write 28d9 45E00005
write 28da 358CFFFF
write 28db B6AC0800
write 28dc 3402002D
write 28dd 30220000
write 28de CAEC1800
write 28df BA600800
write 28e0 3404000F
write 28e1 E0000006
write 28e2 B6AC1000
write 28e3 40420000
write 28e4 358C0001
write 28e5 30220000
write 28e6 34210001
write 28e7 4C8CFFFB
write 28e8 B6639800
write 28e9 BA401800
write 28ea 36940001
write 28eb 42810000
write 28ec 5C20FF6D
write 28ed CA790800
write 28ee 32600000
write 28ef 2B9D0004
write 28f0 2B8B0044
write 28f1 2B8C0040
write 28f2 2B8D003C
write 28f3 2B8E0038
write 28f4 2B8F0034
write 28f5 2B900030
write 28f6 2B91002C
write 28f7 2B920028
write 28f8 2B930024
write 28f9 2B940020
write 28fa 2B95001C
write 28fb 2B960018
write 28fc 2B970014
write 28fd 2B980010
write 28fe 2B99000C
write 28ff 2B9B0008
write 2900 379C006C
write 2901 C3A00000
write 2902 78020001
write 2903 14210002
write 2904 384251CC
write 2905 28420000
write 2906 202100FF
write 2907 3C210010
write 2908 5841002C
write 2909 28410030
write 290a 4C20FFFF
write 290b 28410030
write 290c 2021FFFF
write 290d C3A00000
write 290e 14210002
write 290f 78030001
write 2910 386351CC
write 2911 202100FF
write 2912 28630000
write 2913 2042FFFF
write 2914 78048000
write 2915 3C210010
write 2916 B8441000
write 2917 B8411000
write 2918 5862002C
write 2919 28610030
write 291a 4C20FFFF
write 291b C3A00000
write 291c 40240002
write 291d 40230003
write 291e 78020001
write 291f 3C840018
write 2920 3C630010
write 2921 384251CC
write 2922 B8831800
write 2923 40240005
write 2924 28420000
write 2925 B8641800
write 2926 40240004
write 2927 3C840008
write 2928 B8641800
write 2929 58430028
write 292a 40230001
write 292b 40210000
write 292c 3C210008
write 292d B8610800
write 292e 58410024
write 292f C3A00000
write 2930 78020001
write 2931 384251CC
write 2932 28430000
write 2933 28630028
write 2934 30230005
write 2935 28430000
write 2936 28630028
write 2937 00630008
write 2938 30230004
write 2939 28430000
write 293a 28630028
write 293b 00630010
write 293c 30230003
write 293d 28430000
write 293e 28630028
write 293f 00630018
write 2940 30230002
write 2941 28430000
write 2942 28630024
write 2943 30230001
write 2944 28420000
write 2945 28420024
write 2946 00420008
write 2947 30220000
write 2948 C3A00000
write 2949 379CFFF8
write 294a 5B8B0008
write 294b 5B9D0004
write 294c 78020001
write 294d 38425120
write 294e 28420000
write 294f 780B0001
write 2950 396B51CC
write 2951 59620000
write 2952 FBFFFFCA
write 2953 78020001
write 2954 38422390
write 2955 28410000
write 2956 78040001
write 2957 38842394
write 2958 58200000
write 2959 29610000
write 295a 28830000
write 295b 34020003
write 295c 58200000
write 295d 5822000C
write 295e 58230008
write 295f 78030001
write 2960 38632398
write 2961 58220004
write 2962 28620000
write 2963 5822003C
write 2964 2B9D0004
write 2965 2B8B0008
write 2966 379C0008
write 2967 C3A00000
write 2968 379CFFF4
write 2969 5B8B000C
write 296a 5B8C0008
write 296b 5B9D0004
write 296c 780B0001
write 296d B8406000
write 296e 396B51CC
write 296f 5C200004
write 2970 29610000
write 2971 58200000
write 2972 E0000022
write 2973 29610000
write 2974 58200000
write 2975 28220034
write 2976 78010001
write 2977 38211D98
write 2978 FBFFFEB0
write 2979 F8000105
write 297a 29610000
write 297b 340200E0
write 297c 58220000
write 297d 78010001
write 297e 382140EC
write 297f 34020800
write 2980 582C0000
write 2981 34010000
write 2982 FBFFFF8C
write 2983 340100C8
write 2984 F80005A1
write 2985 34010000
write 2986 38028000
write 2987 FBFFFF87
write 2988 34010000
write 2989 34020000
write 298a FBFFFF84
write 298b 34010010
write 298c 34020000
write 298d FBFFFF81
write 298e 7D820000
write 298f 34010000
write 2990 C8021000
write 2991 20421200
write 2992 34420140
write 2993 FBFFFF7B
write 2994 34010000
write 2995 2B9D0004
write 2996 2B8B000C
write 2997 2B8C0008
write 2998 379C000C
write 2999 C3A00000
write 299a 379CFFF0
write 299b 5B8B000C
write 299c 5B8C0008
write 299d 5B9D0004
write 299e 78020001
write 299f 384240EC
write 29a0 284B0000
write 29a1 B8206000
write 29a2 34010004
write 29a3 FBFFFF5F
write 29a4 7D6B0000
write 29a5 0F810012
write 29a6 34010004
write 29a7 C80B5800
write 29a8 FBFFFF5A
write 29a9 216B0020
write 29aa 0F810012
write 29ab 356B0004
write 29ac 45800004
write 29ad 34010014
write 29ae FBFFFF54
write 29af 0D810000
write 29b0 2F810012
write 29b1 A1610800
write 29b2 E42B0800
write 29b3 2B9D0004
write 29b4 2B8B000C
write 29b5 2B8C0008
write 29b6 379C0010
write 29b7 C3A00000
write 29b8 379CFFFC
write 29b9 5B9D0004
write 29ba 34010040
write 29bb FBFFFF47
write 29bc 00210004
write 29bd 2021001F
write 29be 08210320
write 29bf 2B9D0004
write 29c0 379C0004
write 29c1 C3A00000
write 29c2 379CFFF4
write 29c3 5B8B000C
write 29c4 5B8C0008
write 29c5 5B9D0004
write 29c6 78030001
write 29c7 38632898
write 29c8 B8405800
write 29c9 28620000
write 29ca 58220000
write 29cb 78010001
write 29cc 3821289C
write 29cd 282C0000
write 29ce 34010040
write 29cf FBFFFF33
write 29d0 00210004
write 29d1 2021001F
write 29d2 08210320
write 29d3 B42C0800
write 29d4 59610000
write 29d5 34010000
write 29d6 2B9D0004
write 29d7 2B8B000C
write 29d8 2B8C0008
write 29d9 379C000C
write 29da C3A00000
write 29db 379CFFFC
write 29dc 5B9D0004
write 29dd 34010040
write 29de FBFFFF24
write 29df 38220001
write 29e0 34010040
write 29e1 FBFFFF2D
write 29e2 34010000
write 29e3 2B9D0004
write 29e4 379C0004
write 29e5 C3A00000
write 29e6 379CFFFC
write 29e7 5B9D0004
write 29e8 34010040
write 29e9 FBFFFF19
write 29ea 3402FFFE
write 29eb A0221000
write 29ec 34010040
write 29ed FBFFFF21
write 29ee 34010000
write 29ef 2B9D0004
write 29f0 379C0004
write 29f1 C3A00000
write 29f2 379CFFF8
write 29f3 5B8B0008
write 29f4 5B9D0004
write 29f5 780B0001
write 29f6 396B51CC
write 29f7 29610000
write 29f8 28220004
write 29f9 38420010
write 29fa 58220004
write 29fb 34010001
write 29fc F8000529
write 29fd 29610000
write 29fe 28210004
write 29ff 20210020
write 2a00 7C210000
write 2a01 2B9D0004
write 2a02 2B8B0008
write 2a03 379C0008
write 2a04 C3A00000
write 2a05 379CFFF4
write 2a06 5B8B000C
write 2a07 5B8C0008
write 2a08 5B8D0004
write 2a09 1429001F
write 2a0a 00260019
write 2a0b 3D290007
write 2a0c 20670010
write 2a0d 7CE70000
write 2a0e B8C94800
write 2a0f 20680001
write 2a10 20660100
write 2a11 3C210007
write 2a12 3D08001D
write 2a13 3CE7001E
write 2a14 340B0000
write 2a15 44C00002
write 2a16 780B8000
write 2a17 78060001
write 2a18 2042FFFF
write 2a19 38C640F0
write 2a1a 3C42000D
write 2a1b 28CC0000
write 2a1c B8812000
write 2a1d 3CA50003
write 2a1e B8822000
write 2a1f 14A1001F
write 2a20 20631000
write 2a21 B8852800
write 2a22 7C630000
write 2a23 3D8D0003
write 2a24 B8A84000
write 2a25 780A0001
write 2a26 B9214800
write 2a27 B9073800
write 2a28 394A40F8
write 2a29 B54D5000
write 2a2a B8EB5800
write 2a2b B9234800
write 2a2c 35810001
write 2a2d 59490000
write 2a2e 594B0004
write 2a2f 58C10000
write 2a30 2B8B000C
write 2a31 2B8C0008
write 2a32 2B8D0004
write 2a33 379C000C
write 2a34 C3A00000
write 2a35 2025000F
write 2a36 3CA70001
write 2a37 3CA60002
write 2a38 F4A74800
write 2a39 F4E63800
write 2a3a 3D290001
write 2a3b 3CA50003
write 2a3c B4E94800
write 2a3d F4C53000
write 2a3e 3D290001
write 2a3f 00470018
write 2a40 B4C94800
write 2a41 1446001F
write 2a42 3C420008
write 2a43 3CC60008
write 2a44 B8A22800
write 2a45 B8E63000
write 2a46 00820013
write 2a47 B9264800
write 2a48 1486001F
write 2a49 3C84000D
write 2a4a 3CC6000D
write 2a4b B8A42000
write 2a4c 78050001
write 2a4d 38A540F0
write 2a4e 28A80000
write 2a4f 20210010
write 2a50 7C210000
write 2a51 B8463000
write 2a52 78020180
write 2a53 B9264800
write 2a54 3C210007
write 2a55 78060001
write 2a56 3D070003
write 2a57 B8621800
write 2a58 38C640F8
write 2a59 B8641800
write 2a5a B4C73800
write 2a5b B8610800
write 2a5c 39260004
write 2a5d 58E10004
write 2a5e 35010001
write 2a5f 58E60000
write 2a60 58A10000
write 2a61 C3A00000
write 2a62 2027000F
write 2a63 3CE70003
write 2a64 3C420008
write 2a65 20210010
write 2a66 3C84000D
write 2a67 7C210000
write 2a68 B8E21000
write 2a69 3CC60012
write 2a6a B8442000
write 2a6b 3C210007
write 2a6c B8863000
write 2a6d B8C10800
write 2a6e B8231800
write 2a6f 78010001
write 2a70 382140F0
write 2a71 28240000
write 2a72 3CA50017
write 2a73 78020001
write 2a74 3C860003
write 2a75 384240F8
write 2a76 B4461000
write 2a77 B8A31800
write 2a78 34050004
write 2a79 58450000
write 2a7a 58430004
write 2a7b 34820001
write 2a7c 58220000
write 2a7d C3A00000
write 2a7e 379CFFF0
write 2a7f 5B8B0010
write 2a80 5B8C000C
write 2a81 5B8D0008
write 2a82 5B9D0004
write 2a83 780C0001
write 2a84 398C40F8
write 2a85 34010004
write 2a86 780D0001
write 2a87 39AD40F0
write 2a88 3802FFFF
write 2a89 59810000
write 2a8a 34010001
write 2a8b B8401800
write 2a8c 59A10000
write 2a8d 34040003
write 2a8e 34010000
write 2a8f 34050001
write 2a90 59800004
write 2a91 FBFFFF74
write 2a92 3802FFFF
write 2a93 B8401800
write 2a94 34010001
write 2a95 34040000
write 2a96 34050001
write 2a97 FBFFFF6E
write 2a98 3802FFFF
write 2a99 B8401800
write 2a9a 34010002
write 2a9b 34040000
write 2a9c 34050001
write 2a9d FBFFFF68
write 2a9e 34010000
write 2a9f 3402011B
write 2aa0 3803FFFF
write 2aa1 34040003
write 2aa2 34050002
write 2aa3 FBFFFF62
write 2aa4 34010001
write 2aa5 34021900
write 2aa6 3803FFFF
write 2aa7 34040000
write 2aa8 34050002
write 2aa9 FBFFFF5C
write 2aaa 34010002
write 2aab 34020000
write 2aac 3803FFFF
write 2aad 34040000
write 2aae 34050002
write 2aaf 780B0001
write 2ab0 FBFFFF55
write 2ab1 396B51CC
write 2ab2 29610000
write 2ab3 3803FFFF
write 2ab4 34040003
write 2ab5 28220024
write 2ab6 34050003
write 2ab7 34010000
write 2ab8 2042FFFF
write 2ab9 FBFFFF4C
write 2aba 29610000
write 2abb 3803FFFF
write 2abc 34040000
write 2abd 28220028
write 2abe 34050003
write 2abf 34010001
write 2ac0 00420010
write 2ac1 FBFFFF44
write 2ac2 29610000
write 2ac3 3803FFFF
write 2ac4 34040000
write 2ac5 28220028
write 2ac6 34050003
write 2ac7 34010002
write 2ac8 2042FFFF
write 2ac9 FBFFFF3C
write 2aca 34010006
write 2acb 34020800
write 2acc 3803FFFF
write 2acd 34040003
write 2ace 34050004
write 2acf FBFFFF36
write 2ad0 34010006
write 2ad1 380288F7
write 2ad2 3803FFFF
write 2ad3 34040003
write 2ad4 34050005
write 2ad5 FBFFFF30
write 2ad6 34010006
write 2ad7 34020806
write 2ad8 3803FFFF
write 2ad9 34040003
write 2ada 34050006
write 2adb FBFFFF2A
write 2adc 34010006
write 2add 3802DBFF
write 2ade 3803FFFF
write 2adf 34040003
write 2ae0 34050009
write 2ae1 FBFFFF24
write 2ae2 3401000B
write 2ae3 34020001
write 2ae4 340300FF
write 2ae5 34040003
write 2ae6 34050007
write 2ae7 FBFFFF1E
write 2ae8 3401000B
write 2ae9 34020011
write 2aea 340300FF
write 2aeb 34040003
write 2aec 34050008
write 2aed FBFFFF18
write 2aee 3401000A
write 2aef 34020003
write 2af0 34030001
write 2af1 34040000
write 2af2 34050000
write 2af3 34060004
write 2af4 FBFFFF6E
write 2af5 3401000B
write 2af6 34020001
write 2af7 34030001
write 2af8 34040003
write 2af9 34050000
write 2afa 34060004
write 2afb FBFFFF67
write 2afc 3401000E
write 2afd 34020001
write 2afe 34030000
write 2aff 34040006
write 2b00 34050001
write 2b01 34060005
write 2b02 FBFFFF60
write 2b03 3406000E
write 2b04 3401000F
write 2b05 3402000A
write 2b06 34030000
write 2b07 34040007
write 2b08 34050001
write 2b09 FBFFFF59
write 2b0a 34010012
write 2b0b 34020044
write 2b0c 3803FFFF
write 2b0d 34040003
write 2b0e 3405000E
write 2b0f FBFFFEF6
write 2b10 34050000
write 2b11 3406000B
write 2b12 3401000E
write 2b13 3402000E
write 2b14 34030000
write 2b15 34040008
write 2b16 FBFFFF4C
write 2b17 3401000F
write 2b18 3402000E
write 2b19 34030001
write 2b1a 3404000F
write 2b1b FBFFFF1A
write 2b1c 34010014
write 2b1d 3402000B
write 2b1e 34030000
write 2b1f 34040008
write 2b20 34050001
write 2b21 3406000F
write 2b22 FBFFFF40
write 2b23 34050007
write 2b24 34060000
write 2b25 34010017
write 2b26 34020014
write 2b27 34030001
write 2b28 34040009
write 2b29 FBFFFF39
write 2b2a 3401001F
write 2b2b 3402000B
write 2b2c 34030000
write 2b2d 34040008
write 2b2e FBFFFF07
write 2b2f 3401001E
write 2b30 34020001
write 2b31 34030000
write 2b32 34040009
write 2b33 FBFFFF02
write 2b34 34010018
write 2b35 3402000F
write 2b36 34030003
write 2b37 34040000
write 2b38 FBFFFEFD
write 2b39 29A50000
write 2b3a 34020008
write 2b3b 34030000
write 2b3c 3CA10003
write 2b3d 34A50001
write 2b3e B5810800
write 2b3f 58220000
write 2b40 29620000
write 2b41 58200004
write 2b42 59A50000
write 2b43 58400014
write 2b44 B9800800
write 2b45 E000000F
write 2b46 28240004
write 2b47 28270000
write 2b48 34210008
write 2b49 20860FFF
write 2b4a 3CE70014
write 2b4b 0084000C
write 2b4c 58460018
write 2b4d B8E42000
write 2b4e 3C840008
write 2b4f 2067003F
write 2b50 38840040
write 2b51 B8872000
write 2b52 58440014
write 2b53 34630001
write 2b54 48A3FFF2
write 2b55 34010080
write 2b56 58410014
write 2b57 2B9D0004
write 2b58 2B8B0010
write 2b59 2B8C000C
write 2b5a 2B8D0008
write 2b5b 379C0010
write 2b5c C3A00000
write 2b5d 78030001
write 2b5e 386351C8
write 2b5f 44400004
write 2b60 28620000
write 2b61 58410004
write 2b62 C3A00000
write 2b63 28620000
write 2b64 58410008
write 2b65 C3A00000
write 2b66 3401012C
write 2b67 34000000
write 2b68 3421FFFF
write 2b69 5C20FFFE
write 2b6a C3A00000
write 2b6b 379CFFF8
write 2b6c 5B8B0008
write 2b6d 5B9D0004
write 2b6e 202100FF
write 2b6f 3C2B0003
write 2b70 78020001
write 2b71 38423090
write 2b72 B44B5800
write 2b73 29610004
write 2b74 34020000
write 2b75 FBFFFFE8
write 2b76 FBFFFFF0
write 2b77 29610000
write 2b78 34020000
write 2b79 FBFFFFE4
write 2b7a FBFFFFEC
write 2b7b 2B9D0004
write 2b7c 2B8B0008
write 2b7d 379C0008
write 2b7e C3A00000
write 2b7f 379CFFF8
write 2b80 5B8B0008
write 2b81 5B9D0004
write 2b82 202100FF
write 2b83 3C2B0003
write 2b84 78020001
write 2b85 38423090
write 2b86 B44B5800
write 2b87 29610004
write 2b88 34020001
write 2b89 FBFFFFD4
write 2b8a FBFFFFDC
write 2b8b 29610000
write 2b8c 34020001
write 2b8d FBFFFFD0
write 2b8e FBFFFFD8
write 2b8f 29610004
write 2b90 34020000
write 2b91 FBFFFFCC
write 2b92 FBFFFFD4
write 2b93 29610000
write 2b94 34020000
write 2b95 FBFFFFC8
write 2b96 FBFFFFD0
write 2b97 2B9D0004
write 2b98 2B8B0008
write 2b99 379C0008
write 2b9a C3A00000
write 2b9b 379CFFF8
write 2b9c 5B8B0008
write 2b9d 5B9D0004
write 2b9e 202100FF
write 2b9f 3C2B0003
write 2ba0 78020001
write 2ba1 38423090
write 2ba2 B44B5800
write 2ba3 29610004
write 2ba4 34020000
write 2ba5 FBFFFFB8
write 2ba6 FBFFFFC0
write 2ba7 29610000
write 2ba8 34020001
write 2ba9 FBFFFFB4
write 2baa FBFFFFBC
write 2bab 29610004
write 2bac 34020001
write 2bad FBFFFFB0
write 2bae FBFFFFB8
write 2baf 2B9D0004
write 2bb0 2B8B0008
write 2bb1 379C0008
write 2bb2 C3A00000
write 2bb3 379CFFEC
write 2bb4 5B8B0014
write 2bb5 5B8C0010
write 2bb6 5B8D000C
write 2bb7 5B8E0008
write 2bb8 5B9D0004
write 2bb9 202100FF
write 2bba 78030001
write 2bbb 3C2B0003
write 2bbc 38633090
write 2bbd 204E00FF
write 2bbe 340D0008
write 2bbf B46B5800
write 2bc0 29610004
write 2bc1 21C20080
write 2bc2 35ADFFFF
write 2bc3 FBFFFF9A
write 2bc4 FBFFFFA2
write 2bc5 29610000
write 2bc6 34020001
write 2bc7 3DCE0001
write 2bc8 FBFFFF95
write 2bc9 FBFFFF9D
write 2bca 29610000
write 2bcb 34020000
write 2bcc 21AD00FF
write 2bcd FBFFFF90
write 2bce 356C0004
write 2bcf FBFFFF97
write 2bd0 21CE00FF
write 2bd1 5DA0FFEF
write 2bd2 29810000
write 2bd3 34020001
write 2bd4 FBFFFF89
write 2bd5 FBFFFF91
write 2bd6 29610000
write 2bd7 34020001
write 2bd8 FBFFFF85
write 2bd9 FBFFFF8D
write 2bda 78010001
write 2bdb 382151C8
write 2bdc 28210000
write 2bdd 298D0000
write 2bde 34020000
write 2bdf 28210004
write 2be0 A02D6800
write 2be1 29610000
write 2be2 FBFFFF7B
write 2be3 FBFFFF83
write 2be4 29810000
write 2be5 34020000
write 2be6 FBFFFF77
write 2be7 FBFFFF7F
write 2be8 7DA10000
write 2be9 2B9D0004
write 2bea 2B8B0014
write 2beb 2B8C0010
write 2bec 2B8D000C
write 2bed 2B8E0008
write 2bee 379C0014
write 2bef C3A00000
write 2bf0 379CFFE0
write 2bf1 5B8B0020
write 2bf2 5B8C001C
write 2bf3 5B8D0018
write 2bf4 5B8E0014
write 2bf5 5B8F0010
write 2bf6 5B90000C
write 2bf7 5B910008
write 2bf8 5B9D0004
write 2bf9 202100FF
write 2bfa 3C2B0003
write 2bfb 78040001
write 2bfc 38843090
write 2bfd B48B5800
write 2bfe 29610004
write 2bff B8407800
write 2c00 34020001
write 2c01 207000FF
write 2c02 FBFFFF5B
write 2c03 FBFFFF63
write 2c04 29610000
write 2c05 34020000
write 2c06 780D0001
write 2c07 FBFFFF56
write 2c08 340C0000
write 2c09 FBFFFF5D
write 2c0a 340E0000
write 2c0b 39AD51C8
write 2c0c 34110008
write 2c0d 29610000
write 2c0e 34020001
write 2c0f 3D8C0001
write 2c10 FBFFFF4D
write 2c11 FBFFFF55
write 2c12 29A10000
write 2c13 29620004
write 2c14 218C00FF
write 2c15 28210004
write 2c16 A0220800
write 2c17 44200002
write 2c18 398C0001
write 2c19 29610000
write 2c1a 34020000
write 2c1b 35CE0001
write 2c1c FBFFFF41
write 2c1d FBFFFF49
write 2c1e 5DD1FFEF
write 2c1f 46000004
write 2c20 29610004
write 2c21 34020001
write 2c22 E0000003
write 2c23 29610004
write 2c24 34020000
write 2c25 FBFFFF38
write 2c26 FBFFFF40
write 2c27 29610000
write 2c28 34020001
write 2c29 FBFFFF34
write 2c2a FBFFFF3C
write 2c2b 29610000
write 2c2c 34020000
write 2c2d FBFFFF30
write 2c2e FBFFFF38
write 2c2f 31EC0000
write 2c30 2B9D0004
write 2c31 2B8B0020
write 2c32 2B8C001C
write 2c33 2B8D0018
write 2c34 2B8E0014
write 2c35 2B8F0010
write 2c36 2B90000C
write 2c37 2B910008
write 2c38 379C0020
write 2c39 C3A00000
write 2c3a 379CFFF8
write 2c3b 5B8B0008
write 2c3c 5B9D0004
write 2c3d 202100FF
write 2c3e 3C2B0003
write 2c3f 78020001
write 2c40 38423090
write 2c41 B44B5800
write 2c42 29610000
write 2c43 34020001
write 2c44 FBFFFF19
write 2c45 FBFFFF21
write 2c46 29610004
write 2c47 34020001
write 2c48 FBFFFF15
write 2c49 FBFFFF1D
write 2c4a 2B9D0004
write 2c4b 2B8B0008
write 2c4c 379C0008
write 2c4d C3A00000
write 2c4e 379CFFF4
write 2c4f 5B8B000C
write 2c50 5B8C0008
write 2c51 5B9D0004
write 2c52 202B00FF
write 2c53 B9600800
write 2c54 204C00FF
write 2c55 FBFFFF16
write 2c56 3D820001
write 2c57 B9600800
write 2c58 204200FE
write 2c59 FBFFFF5A
write 2c5a B8206000
write 2c5b B9600800
write 2c5c FBFFFF3F
write 2c5d 65810000
write 2c5e 2B9D0004
write 2c5f 2B8B000C
write 2c60 2B8C0008
write 2c61 379C000C
write 2c62 C3A00000
write 2c63 379CFFE8
write 2c64 5B8B0018
write 2c65 5B8C0014
write 2c66 5B8D0010
write 2c67 5B8E000C
write 2c68 5B8F0008
write 2c69 5B9D0004
write 2c6a 780B0001
write 2c6b 396B41F8
write 2c6c 296D000C
write 2c6d 296F0004
write 2c6e B8206000
write 2c6f 3DAD0002
write 2c70 C84F0800
write 2c71 B9A01000
write 2c72 B8607000
write 2c73 F80012C4
write 2c74 B42F1000
write 2c75 B5AF6800
write 2c76 B44E0800
write 2c77 542D0006
write 2c78 B9800800
write 2c79 B9C01800
write 2c7a F800130E
write 2c7b B8206000
write 2c7c E0000009
write 2c7d C9A26800
write 2c7e B9A01800
write 2c7f B9800800
write 2c80 F8001308
write 2c81 29620004
write 2c82 B58D0800
write 2c83 C9CD1800
write 2c84 F8001304
write 2c85 B9800800
write 2c86 2B9D0004
write 2c87 2B8B0018
write 2c88 2B8C0014
write 2c89 2B8D0010
write 2c8a 2B8E000C
write 2c8b 2B8F0008
write 2c8c 379C0018
write 2c8d C3A00000
write 2c8e 379CFFE8
write 2c8f 5B8B0018
write 2c90 5B8C0014
write 2c91 5B8D0010
write 2c92 5B8E000C
write 2c93 5B8F0008
write 2c94 5B9D0004
write 2c95 780B0001
write 2c96 396B41F8
write 2c97 296F000C
write 2c98 296E0004
write 2c99 B8406800
write 2c9a 3DEF0002
write 2c9b C82E0800
write 2c9c B9E01000
write 2c9d F800129A
write 2c9e B42E6000
write 2c9f B58D0800
write 2ca0 B5EE7000
write 2ca1 542E0006
write 2ca2 B9800800
write 2ca3 34020000
write 2ca4 B9A01800
write 2ca5 F8001361
write 2ca6 E000000B
write 2ca7 C9CC7000
write 2ca8 34020000
write 2ca9 B9C01800
write 2caa B9800800
write 2cab F800135B
write 2cac 29610004
write 2cad 34020000
write 2cae C9AE1800
write 2caf F8001357
write 2cb0 B9800800
write 2cb1 2B9D0004
write 2cb2 2B8B0018
write 2cb3 2B8C0014
write 2cb4 2B8D0010
write 2cb5 2B8E000C
write 2cb6 2B8F0008
write 2cb7 379C0018
write 2cb8 C3A00000
write 2cb9 379CFFF4
write 2cba 5B8B000C
write 2cbb 5B8C0008
write 2cbc 5B9D0004
write 2cbd 780C0001
write 2cbe 398C51D8
write 2cbf 29810000
write 2cc0 780B0001
write 2cc1 396B41F8
write 2cc2 58200000
write 2cc3 34020200
write 2cc4 78010001
write 2cc5 38214620
write 2cc6 5962000C
write 2cc7 34020800
write 2cc8 59610004
write 2cc9 59610000
write 2cca FBFFFFC4
write 2ccb 29620004
write 2ccc 29810000
write 2ccd 58220008
write 2cce 2962000C
write 2ccf 5822000C
write 2cd0 34020002
write 2cd1 5822004C
write 2cd2 34020400
write 2cd3 58220000
write 2cd4 2B9D0004
write 2cd5 2B8B000C
write 2cd6 2B8C0008
write 2cd7 379C000C
write 2cd8 C3A00000
write 2cd9 379CFFF4
write 2cda 5B8B000C
write 2cdb 5B8C0008
write 2cdc 5B9D0004
write 2cdd 780B0001
write 2cde 396B51D8
write 2cdf 29630000
write 2ce0 340C0002
write 2ce1 78010001
write 2ce2 586C0040
write 2ce3 78020001
write 2ce4 586C004C
write 2ce5 382141F8
write 2ce6 38424620
write 2ce7 58220004
write 2ce8 00420002
write 2ce9 34040800
write 2cea 5824000C
write 2ceb 344401FF
write 2cec 3C840010
write 2ced 2042FFFF
write 2cee B8821000
write 2cef 58620020
write 2cf0 78020001
write 2cf1 38424220
write 2cf2 58220014
write 2cf3 34020100
write 2cf4 5822001C
write 2cf5 58200020
write 2cf6 58200024
write 2cf7 FBFFFFC2
write 2cf8 29610000
write 2cf9 582C0044
write 2cfa 2B9D0004
write 2cfb 2B8B000C
write 2cfc 2B8C0008
write 2cfd 379C000C
write 2cfe C3A00000
write 2cff 379CFFC4
write 2d00 5B8B0028
write 2d01 5B8C0024
write 2d02 5B8D0020
write 2d03 5B8E001C
write 2d04 5B8F0018
write 2d05 5B900014
write 2d06 5B910010
write 2d07 5B92000C
write 2d08 5B930008
write 2d09 5B9D0004
write 2d0a B8805800
write 2d0b 78040001
write 2d0c 388451D8
write 2d0d 28840000
write 2d0e B8209000
write 2d0f B8408800
write 2d10 2881004C
write 2d11 B8608000
write 2d12 340C0000
write 2d13 20210002
write 2d14 4420008A
write 2d15 780E0001
write 2d16 39CE41F8
write 2d17 29C20000
write 2d18 28430000
write 2d19 48030009
write 2d1a 28810000
write 2d1b 20210200
write 2d1c 5C200004
write 2d1d 78010001
write 2d1e 38211DA0
write 2d1f FBFFFB09
write 2d20 FBFFFF99
write 2d21 E000007D
write 2d22 20610001
write 2d23 206D0FFE
write 2d24 C9A16800
write 2d25 35AF0003
write 2d26 01EF0002
write 2d27 78044000
write 2d28 A0642000
write 2d29 35EF0001
write 2d2a 340CFFFF
write 2d2b 5C800054
write 2d2c 7D610000
write 2d2d 0063001D
write 2d2e A0611800
write 2d2f 4464003E
write 2d30 B44D1000
write 2d31 34030004
write 2d32 37810038
write 2d33 FBFFFF30
write 2d34 29C30000
write 2d35 35B3FFFA
write 2d36 35ADFFFE
write 2d37 B46D1000
write 2d38 3781003E
write 2d39 34030002
write 2d3a FBFFFF29
write 2d3b 78010001
write 2d3c 3821239C
write 2d3d 282C0000
write 2d3e 37820034
write 2d3f 3781002C
write 2d40 2B8D0038
write 2d41 F8000191
write 2d42 78020001
write 2d43 384223A0
write 2d44 28410000
write 2d45 A1AC6000
write 2d46 01AD001C
write 2d47 502C000E
write 2d48 78030001
write 2d49 386323A4
write 2d4a 2B820034
write 2d4b 28610000
write 2d4c 54410009
write 2d4d 2B820030
write 2d4e 2B81002C
write 2d4f 3444FFFF
write 2d50 F4441000
write 2d51 3421FFFF
write 2d52 B4410800
write 2d53 5B81002C
write 2d54 5B840030
write 2d55 78020001
write 2d56 38422360
write 2d57 28410000
write 2d58 2B820030
write 2d59 2183000F
write 2d5a C86D1800
write 2d5b A0410800
write 2d5c 5961000C
write 2d5d 6461FFF1
write 2d5e 64630001
write 2d5f 59600008
write 2d60 B8231800
write 2d61 44600004
write 2d62 34010001
write 2d63 59610004
write 2d64 E0000002
write 2d65 59600004
write 2d66 2F81003E
write 2d67 3D8C0003
write 2d68 BA606800
write 2d69 20210800
write 2d6a 64210000
write 2d6b 596C0010
write 2d6c 31610000
write 2d6d B9A06000
write 2d6e 520D0002
write 2d6f BA006000
write 2d70 780B0001
write 2d71 396B41F8
write 2d72 29610024
write 2d73 29620000
write 2d74 3403000E
write 2d75 34210001
write 2d76 59610024
write 2d77 34420004
write 2d78 BA400800
write 2d79 FBFFFEEA
write 2d7a 29630000
write 2d7b BA200800
write 2d7c 34620012
write 2d7d 3583FFF2
write 2d7e FBFFFEE5
write 2d7f 780B0001
write 2d80 396B41F8
write 2d81 3DEE0002
write 2d82 29610000
write 2d83 B9C01000
write 2d84 FBFFFF0A
write 2d85 78030001
write 2d86 386351D8
write 2d87 286D0000
write 2d88 29610000
write 2d89 59AF0010
write 2d8a 2962000C
write 2d8b 296F0004
write 2d8c 3C420002
write 2d8d C82F0800
write 2d8e B42E0800
write 2d8f F80011A8
write 2d90 B42F0800
write 2d91 59610000
write 2d92 29A20010
write 2d93 28210000
write 2d94 4801000A
write 2d95 29A10000
write 2d96 20210200
write 2d97 44200002
write 2d98 FBFFFF21
write 2d99 78010001
write 2d9a 382151D8
write 2d9b 28210000
write 2d9c 34020002
write 2d9d 5822004C
write 2d9e B9800800
write 2d9f 2B9D0004
write 2da0 2B8B0028
write 2da1 2B8C0024
write 2da2 2B8D0020
write 2da3 2B8E001C
write 2da4 2B8F0018
write 2da5 2B900014
write 2da6 2B910010
write 2da7 2B92000C
write 2da8 2B930008
write 2da9 379C003C
write 2daa C3A00000
write 2dab 379CFFD8
write 2dac 5B8B001C
write 2dad 5B8C0018
write 2dae 5B8D0014
write 2daf 5B8E0010
write 2db0 5B8F000C
write 2db1 5B900008
write 2db2 5B9D0004
write 2db3 780D0001
write 2db4 39AD41F8
write 2db5 B8605800
write 2db6 34030100
write 2db7 59A3001C
write 2db8 59A30018
write 2db9 78030001
write 2dba 386351D8
write 2dbb B8207800
write 2dbc B8407000
write 2dbd 78010001
write 2dbe 28620000
write 2dbf 38214220
write 2dc0 59A10014
write 2dc1 59A10010
write 2dc2 58410004
write 2dc3 35630010
write 2dc4 34020000
write 2dc5 B8806000
write 2dc6 F8001240
write 2dc7 29A10010
write 2dc8 3402003C
write 2dc9 B9601800
write 2dca 34210004
write 2dcb 51620002
write 2dcc 3403003C
write 2dcd 34020000
write 2dce 780D0001
write 2dcf F8001237
write 2dd0 39AD41F8
write 2dd1 29A10010
write 2dd2 B9E01000
write 2dd3 3403000E
write 2dd4 34210004
write 2dd5 F80011B3
write 2dd6 29A10010
write 2dd7 B9C01000
write 2dd8 3563FFF2
write 2dd9 34210012
write 2dda F80011AE
write 2ddb 3401003B
write 2ddc 502B0002
write 2ddd E0000002
write 2dde 340B003C
write 2ddf 35630001
write 2de0 7D810000
write 2de1 00630001
write 2de2 3C21001E
write 2de3 78048000
write 2de4 B8642000
write 2de5 B8812000
write 2de6 78010001
write 2de7 382141F8
write 2de8 28220010
write 2de9 3C630002
write 2dea 78010001
write 2deb 58440000
write 2dec 382151D8
write 2ded B4431000
write 2dee 58400000
write 2def 28220000
write 2df0 340D0000
write 2df1 B8207800
write 2df2 28430000
write 2df3 341003E8
write 2df4 38630001
write 2df5 58430000
write 2df6 29E10000
write 2df7 282E0000
write 2df8 21C10002
write 2df9 5C200009
write 2dfa 34010001
write 2dfb 35AD0001
write 2dfc F8000129
write 2dfd 5DB0FFF9
write 2dfe 78010001
write 2dff 38211DC0
write 2e00 B9C01000
write 2e01 FBFFFA27
write 2e02 45800046
write 2e03 780D0001
write 2e04 340E0000
write 2e05 39AD51D8
write 2e06 340F0064
write 2e07 29A10000
write 2e08 28220000
write 2e09 20420800
write 2e0a 5C40000A
write 2e0b 34010001
write 2e0c 35CE0001
write 2e0d F8000118
write 2e0e 5DCFFFF9
write 2e0f 78010001
write 2e10 38211DF0
write 2e11 FBFFFA17
write 2e12 340E0000
write 2e13 E0000003
write 2e14 282E0014
write 2e15 21CE0001
write 2e16 78010001
write 2e17 382151D8
write 2e18 28210000
write 2e19 282D0018
write 2e1a 28230014
write 2e1b 00630006
write 2e1c 2063FFFF
write 2e1d 44600006
write 2e1e 78020001
write 2e1f 34010000
write 2e20 38421E20
write 2e21 34040000
write 2e22 FBFFD265
write 2e23 78020001
write 2e24 3842239C
write 2e25 28410000
write 2e26 37820028
write 2e27 A1A16800
write 2e28 37810020
write 2e29 F80000A9
write 2e2a 78030001
write 2e2b 386323A0
write 2e2c 28610000
write 2e2d 502D000E
write 2e2e 78030001
write 2e2f 386323A4
write 2e30 2B820028
write 2e31 28610000
write 2e32 54410009
write 2e33 2B830024
write 2e34 2B820020
write 2e35 3461FFFF
write 2e36 F4611800
write 2e37 3442FFFF
write 2e38 B4621000
write 2e39 5B820020
write 2e3a 5B810024
write 2e3b 2B810020
write 2e3c 318E0000
write 2e3d 3DAD0003
write 2e3e 59810008
write 2e3f 2B810024
write 2e40 59800004
write 2e41 598D0010
write 2e42 5981000C
write 2e43 78010001
write 2e44 382141F8
write 2e45 28220020
write 2e46 34420001
write 2e47 58220020
write 2e48 B9600800
write 2e49 2B9D0004
write 2e4a 2B8B001C
write 2e4b 2B8C0018
write 2e4c 2B8D0014
write 2e4d 2B8E0010
write 2e4e 2B8F000C
write 2e4f 2B900008
write 2e50 379C0028
write 2e51 C3A00000
write 2e52 78030001
write 2e53 386341F8
write 2e54 28640020
write 2e55 58240000
write 2e56 28610024
write 2e57 58410000
write 2e58 C3A00000
write 2e59 78010001
write 2e5a 78030001
write 2e5b 386323A8
write 2e5c 3821512C
write 2e5d 28210000
write 2e5e 28620000
write 2e5f 78040001
write 2e60 388423AC
write 2e61 58220000
write 2e62 58200014
write 2e63 28830000
write 2e64 58200018
write 2e65 58200010
write 2e66 58230000
write 2e67 58220000
write 2e68 5820001C
write 2e69 C3A00000
write 2e6a 379CFFE8
write 2e6b 5B8B0018
write 2e6c 5B8C0014
write 2e6d 5B8D0010
write 2e6e 5B8E000C
write 2e6f 5B8F0008
write 2e70 5B9D0004
write 2e71 780B0001
write 2e72 B8207800
write 2e73 34010001
write 2e74 B8406800
write 2e75 B8607000
write 2e76 396B1E48
write 2e77 5DE10003
write 2e78 780B0001
write 2e79 396B1E4C
write 2e7a 15AC001F
write 2e7b B9C00800
write 2e7c F80010E7
write 2e7d 218C0002
write 2e7e 358C002B
write 2e7f 78020001
write 2e80 B8202800
write 2e81 38421E54
write 2e82 34010000
write 2e83 B9601800
write 2e84 B9802000
write 2e85 FBFFD202
write 2e86 78020001
write 2e87 34010002
write 2e88 3842512C
write 2e89 5DE1000E
write 2e8a 28410000
write 2e8b 15A2001F
write 2e8c 20420007
write 2e8d B44E7000
write 2e8e F44E1000
write 2e8f 01CE0003
write 2e90 B44D6800
write 2e91 3DAD001D
write 2e92 58200014
write 2e93 58200018
write 2e94 B9AE7000
write 2e95 582E0010
write 2e96 E0000006
write 2e97 28420000
write 2e98 21AD00FF
write 2e99 584E0014
write 2e9a 584D0018
write 2e9b 58400010
write 2e9c 78010001
write 2e9d 3821512C
write 2e9e 28210000
write 2e9f 28220000
write 2ea0 38420004
write 2ea1 58220000
write 2ea2 34010000
write 2ea3 2B9D0004
write 2ea4 2B8B0018
write 2ea5 2B8C0014
write 2ea6 2B8D0010
write 2ea7 2B8E000C
write 2ea8 2B8F0008
write 2ea9 379C0018
write 2eaa C3A00000
write 2eab 78050001
write 2eac 38A5512C
write 2ead 28A50000
write 2eae 202100FF
write 2eaf 00630003
write 2eb0 58A20014
write 2eb1 58A10018
write 2eb2 58A30010
write 2eb3 34010003
write 2eb4 5C810007
write 2eb5 28A20000
write 2eb6 3401FFF3
write 2eb7 A0410800
write 2eb8 38210008
write 2eb9 58A10000
write 2eba C3A00000
write 2ebb 34010001
write 2ebc 5C810007
write 2ebd 28A2001C
write 2ebe 3401FFE7
write 2ebf A0410800
write 2ec0 38210008
write 2ec1 58A1001C
write 2ec2 C3A00000
write 2ec3 34010002
write 2ec4 5C810006
write 2ec5 28A2001C
write 2ec6 3401FFE7
write 2ec7 A0410800
write 2ec8 38210010
write 2ec9 58A1001C
write 2eca C3A00000
write 2ecb 78010001
write 2ecc 3821512C
write 2ecd 28210000
write 2ece 28220008
write 2ecf 2821000C
write 2ed0 202100FF
write 2ed1 C3A00000
write 2ed2 379CFFE0
write 2ed3 5B8B0020
write 2ed4 5B8C001C
write 2ed5 5B8D0018
write 2ed6 5B8E0014
write 2ed7 5B8F0010
write 2ed8 5B90000C
write 2ed9 5B910008
write 2eda 5B9D0004
write 2edb B8206000
write 2edc 78010001
write 2edd 3821239C
write 2ede 282F0000
write 2edf 780B0001
write 2ee0 B8406800
write 2ee1 396B512C
write 2ee2 FBFFFFE9
write 2ee3 B8208800
write 2ee4 29610000
write 2ee5 B8408000
write 2ee6 282E0004
write 2ee7 A1CF7000
write 2ee8 FBFFFFE3
write 2ee9 5C31FFF9
write 2eea 5C50FFF8
write 2eeb 45800003
write 2eec 59810000
write 2eed 59820004
write 2eee 45A00003
write 2eef 3DC10003
write 2ef0 59A10000
write 2ef1 2B9D0004
write 2ef2 2B8B0020
write 2ef3 2B8C001C
write 2ef4 2B8D0018
write 2ef5 2B8E0014
write 2ef6 2B8F0010
write 2ef7 2B90000C
write 2ef8 2B910008
write 2ef9 379C0020
write 2efa C3A00000
write 2efb 78010001
write 2efc 3821512C
write 2efd 28210000
write 2efe 28210000
write 2eff 20210004
write 2f00 64210000
write 2f01 C3A00000
write 2f02 78020001
write 2f03 3842512C
write 2f04 28420000
write 2f05 2843001C
write 2f06 44200003
write 2f07 38630006
write 2f08 E0000003
write 2f09 3401FFF9
write 2f0a A0611800
write 2f0b 5843001C
write 2f0c 34010000
write 2f0d C3A00000
write 2f0e 78020001
write 2f0f 384251DC
write 2f10 28420000
write 2f11 78030001
write 2f12 386351C8
write 2f13 58620000
write 2f14 44200005
write 2f15 28430010
write 2f16 78018000
write 2f17 B8610800
write 2f18 E0000006
write 2f19 78040001
write 2f1a 38842360
write 2f1b 28430010
write 2f1c 28810000
write 2f1d A0610800
write 2f1e 58410010
write 2f1f C3A00000
write 2f20 78010001
write 2f21 382151C8
write 2f22 28210000
write 2f23 28210014
write 2f24 C3A00000
write 2f25 78020001
write 2f26 384251C8
write 2f27 28420000
write 2f28 28430014
write 2f29 B4230800
write 2f2a 28430014
write 2f2b C8611800
write 2f2c 4803FFFE
write 2f2d C3A00000
write 2f2e 78010001
write 2f2f 382151C8
write 2f30 28210000
write 2f31 28210004
write 2f32 20210080
write 2f33 64210000
write 2f34 C3A00000
write 2f35 379CFFE0
write 2f36 5B8B001C
write 2f37 5B8C0018
write 2f38 5B8D0014
write 2f39 5B8E0010
write 2f3a 5B8F000C
write 2f3b 5B900008
write 2f3c 5B9D0004
write 2f3d B8208000
write 2f3e 34010001
write 2f3f FBFFFCFB
write 2f40 34010001
write 2f41 FBFFFC2A
write 2f42 340200A0
write 2f43 34010001
write 2f44 FBFFFC6F
write 2f45 34020000
write 2f46 34010001
write 2f47 FBFFFC6C
write 2f48 34010001
write 2f49 FBFFFC36
write 2f4a 340200A1
write 2f4b 34010001
write 2f4c FBFFFC67
write 2f4d 378D0023
write 2f4e B9A01000
write 2f4f 34030001
write 2f50 34010001
write 2f51 FBFFFC9F
write 2f52 34010001
write 2f53 FBFFFC48
write 2f54 34010001
write 2f55 438C0023
write 2f56 FBFFFC15
write 2f57 34010001
write 2f58 340200A1
write 2f59 FBFFFC5A
write 2f5a 340BFFD9
write 2f5b 340F000F
write 2f5c 340E0017
write 2f5d 34030000
write 2f5e 34010001
write 2f5f B9A01000
write 2f60 FBFFFC90
write 2f61 43830023
write 2f62 B5836000
write 2f63 218C00FF
write 2f64 556F0003
write 2f65 B60B0800
write 2f66 30230000
write 2f67 356B0001
write 2f68 5D6EFFF5
write 2f69 37820023
write 2f6a 34030001
write 2f6b 34010001
write 2f6c FBFFFC84
write 2f6d 34010001
write 2f6e FBFFFC2D
write 2f6f 43810023
write 2f70 FC2C6000
write 2f71 C80C0800
write 2f72 2B9D0004
write 2f73 2B8B001C
write 2f74 2B8C0018
write 2f75 2B8D0014
write 2f76 2B8E0010
write 2f77 2B8F000C
write 2f78 2B900008
write 2f79 379C0020
write 2f7a C3A00000
write 2f7b 379CFFE0
write 2f7c 5B8B0020
write 2f7d 5B8C001C
write 2f7e 5B8D0018
write 2f7f 5B8E0014
write 2f80 5B8F0010
write 2f81 5B90000C
write 2f82 5B910008
write 2f83 5B9D0004
write 2f84 340C0000
write 2f85 B8206800
write 2f86 B8607800
write 2f87 B8405800
write 2f88 2C4E0004
write 2f89 34110002
write 2f8a 34100001
write 2f8b E0000010
write 2f8c 4161003F
write 2f8d 5C310009
write 2f8e 2961000C
write 2f8f 29620004
write 2f90 B9E01800
write 2f91 B5A10800
write 2f92 B5A21000
write 2f93 FBFFFFE8
write 2f94 44200005
write 2f95 E000000B
write 2f96 5C300003
write 2f97 29610020
write 2f98 442F0004
write 2f99 358C0001
write 2f9a 356B0040
write 2f9b 49CCFFF1
write 2f9c 34010000
write 2f9d 458E0003
write 2f9e 2961000C
write 2f9f B5A10800
write 2fa0 2B9D0004
write 2fa1 2B8B0020
write 2fa2 2B8C001C
write 2fa3 2B8D0018
write 2fa4 2B8E0014
write 2fa5 2B8F0010
write 2fa6 2B90000C
write 2fa7 2B910008
write 2fa8 379C0020
write 2fa9 C3A00000
write 2faa 379CFFFC
write 2fab 5B9D0004
write 2fac 78020003
write 2fad B8201800
write 2fae 34010000
write 2faf FBFFFFCC
write 2fb0 2B9D0004
write 2fb1 379C0004
write 2fb2 C3A00000
write 2fb3 379CFFC8
write 2fb4 5B8B0024
write 2fb5 5B8C0020
write 2fb6 5B8D001C
write 2fb7 5B8E0018
write 2fb8 5B8F0014
write 2fb9 5B900010
write 2fba 5B91000C
write 2fbb 5B920008
write 2fbc 5B9D0004
write 2fbd 780C0001
write 2fbe B8207000
write 2fbf B8405800
write 2fc0 2C520004
write 2fc1 340D0000
write 2fc2 34110002
write 2fc3 34100001
write 2fc4 378F0028
write 2fc5 398C1E74
write 2fc6 E0000018
write 2fc7 4161003F
write 2fc8 5C310006
write 2fc9 2961000C
write 2fca 29620004
write 2fcb B5C10800
write 2fcc B5C21000
write 2fcd FBFFFFE6
write 2fce 4161003F
write 2fcf 5C30000D
write 2fd0 3562002C
write 2fd1 34030013
write 2fd2 B9E00800
write 2fd3 F8000FB5
write 2fd4 2964000C
write 2fd5 2962001C
write 2fd6 29630020
write 2fd7 B9800800
write 2fd8 B5C42000
write 2fd9 B9E02800
write 2fda 3380003B
write 2fdb FBFFF84D
write 2fdc 35AD0001
write 2fdd 356B0040
write 2fde 4A4DFFE9
write 2fdf 2B9D0004
write 2fe0 2B8B0024
write 2fe1 2B8C0020
write 2fe2 2B8D001C
write 2fe3 2B8E0018
write 2fe4 2B8F0014
write 2fe5 2B900010
write 2fe6 2B91000C
write 2fe7 2B920008
write 2fe8 379C0038
write 2fe9 C3A00000
write 2fea 379CFFFC
write 2feb 5B9D0004
write 2fec 78010001
write 2fed 38211E88
write 2fee FBFFF83A
write 2fef 78020003
write 2ff0 34010000
write 2ff1 FBFFFFC2
write 2ff2 78010001
write 2ff3 38211E9C
write 2ff4 FBFFF834
write 2ff5 2B9D0004
write 2ff6 379C0004
write 2ff7 C3A00000
write 2ff8 379CFFFC
write 2ff9 5B9D0004
write 2ffa 78020001
write 2ffb 384223B0
write 2ffc 28410000
write 2ffd FBFFFFAD
write 2ffe 78020001
write 2fff 384251D8
write 3000 58410000
write 3001 78020001
write 3002 384223B4
write 3003 28410000
write 3004 FBFFFFA6
write 3005 78020001
write 3006 38425120
write 3007 58410000
write 3008 78020001
write 3009 384223B8
write 300a 28410000
write 300b FBFFFF9F
write 300c 78020001
write 300d 384251E0
write 300e 58410000
write 300f 78020001
write 3010 384223BC
write 3011 28410000
write 3012 FBFFFF98
write 3013 78020001
write 3014 3842512C
write 3015 58410000
write 3016 78020001
write 3017 384223C0
write 3018 28410000
write 3019 FBFFFF91
write 301a 78020001
write 301b 384251DC
write 301c 58410000
write 301d 78020001
write 301e 384223C4
write 301f 28410000
write 3020 FBFFFF8A
write 3021 78020001
write 3022 384251BC
write 3023 58410000
write 3024 78020001
write 3025 384223C8
write 3026 28410000
write 3027 FBFFFF83
write 3028 78020001
write 3029 384251B8
write 302a 58410000
write 302b 78020001
write 302c 384223CC
write 302d 28410000
write 302e FBFFFF7C
write 302f 78020001
write 3030 384251D4
write 3031 58410000
write 3032 2B9D0004
write 3033 379C0004
write 3034 C3A00000
write 3035 379CFFFC
write 3036 5B9D0004
write 3037 78010001
write 3038 38214E20
write 3039 58200000
write 303a 78020001
write 303b 78010001
write 303c 38214E34
write 303d 38424E24
write 303e 3403FFFF
write 303f 58230000
write 3040 58430000
write 3041 58200008
write 3042 58400008
write 3043 58400004
write 3044 58200004
write 3045 5840000C
write 3046 5820000C
write 3047 34020000
write 3048 34010000
write 3049 F8000CBA
write 304a 2B9D0004
write 304b 379C0004
write 304c C3A00000
write 304d 379CFFF4
write 304e 5B8B000C
write 304f 5B8C0008
write 3050 5B9D0004
write 3051 B8206000
write 3052 34010000
write 3053 F8000D5E
write 3054 B8205800
write 3055 34020000
write 3056 5C20008B
write 3057 FBFFF99B
write 3058 78030001
write 3059 38634E24
write 305a 28650008
write 305b 78020001
write 305c 38424E20
write 305d B8202000
write 305e 28420000
write 305f 44AB0004
write 3060 34010001
write 3061 5CA1001D
write 3062 E0000010
write 3063 34010001
write 3064 44810005
write 3065 28610004
write 3066 34210001
write 3067 58610004
write 3068 E0000002
write 3069 58600004
write 306a 78030001
write 306b 38634E24
write 306c 28650004
write 306d 34010004
write 306e 4C250010
write 306f 34010001
write 3070 58610008
write 3071 E0000002
write 3072 44850003
write 3073 58600004
write 3074 E000000A
write 3075 28650004
write 3076 34010004
write 3077 34A50001
write 3078 58650004
write 3079 4C250005
write 307a 34010002
write 307b 58610008
write 307c 3441FE0C
write 307d 5861000C
write 307e 78030001
write 307f 38634E34
write 3080 28650008
write 3081 44A00004
write 3082 34010001
write 3083 5CA1001C
write 3084 E000000F
write 3085 44850005
write 3086 28610004
write 3087 34210001
write 3088 58610004
write 3089 E0000002
write 308a 58600004
write 308b 78030001
write 308c 38634E34
write 308d 28640004
write 308e 34010004
write 308f 4C240010
write 3090 34010001
write 3091 58610008
write 3092 E0000002
write 3093 44800003
write 3094 58600004
write 3095 E000000A
write 3096 28640004
write 3097 34010004
write 3098 34840001
write 3099 58640004
write 309a 4C240005
write 309b 34010002
write 309c 58610008
write 309d 3441FE0C
write 309e 5861000C
write 309f 3401251B
write 30a0 4C22003A
write 30a1 78020001
write 30a2 38424E24
write 30a3 28430008
write 30a4 34010002
write 30a5 5C610008
write 30a6 78020001
write 30a7 38424E34
write 30a8 28410008
write 30a9 5C230004
write 30aa 2844000C
write 30ab 34011F3F
write 30ac E0000008
write 30ad 78020001
write 30ae 38421EA4
write 30af 34010000
write 30b0 FBFFCFD7
write 30b1 3402FFFF
write 30b2 E000002F
write 30b3 3484E0C0
write 30b4 4881FFFF
write 30b5 78020001
write 30b6 38424E34
write 30b7 5844000C
write 30b8 78020001
write 30b9 38424E24
write 30ba 2843000C
write 30bb 34011F3F
write 30bc E0000002
write 30bd 3463E0C0
write 30be 4861FFFF
write 30bf 78020001
write 30c0 38424E24
write 30c1 5843000C
write 30c2 4C640003
write 30c3 348BF060
write 30c4 E0000004
write 30c5 340B0000
write 30c6 4C830002
write 30c7 348B0FA0
write 30c8 B5635800
write 30c9 0161001F
write 30ca B42B5800
write 30cb 156B0001
write 30cc 4D600003
write 30cd 356B1F40
write 30ce E0000004
write 30cf 34011F3F
write 30d0 4C2B0002
write 30d1 356BE0C0
write 30d2 78020001
write 30d3 38421EC0
write 30d4 34010000
write 30d5 B9602800
write 30d6 FBFFCFB1
write 30d7 34020001
write 30d8 598B0000
write 30d9 E0000008
write 30da 78010001
write 30db 34420064
write 30dc 38214E20
write 30dd 58220000
write 30de 34010000
write 30df F8000C24
write 30e0 34020000
write 30e1 B8400800
write 30e2 2B9D0004
write 30e3 2B8B000C
write 30e4 2B8C0008
write 30e5 379C000C
write 30e6 C3A00000
write 30e7 379CFFF8
write 30e8 5B8B0008
write 30e9 5B9D0004
write 30ea 78020001
write 30eb B8205800
write 30ec B8400800
write 30ed 38211EF4
write 30ee FBFFF73A
write 30ef E0000003
write 30f0 34010064
write 30f1 FBFFFE34
write 30f2 34010000
write 30f3 FBFFF8A7
write 30f4 4420FFFC
write 30f5 34010003
write 30f6 34020000
write 30f7 34030001
write 30f8 F8000B24
write 30f9 78020001
write 30fa B8400800
write 30fb 38211F0C
write 30fc FBFFF72C
write 30fd E0000003
write 30fe 34010064
write 30ff FBFFFE26
write 3100 34010000
write 3101 F8000BF1
write 3102 4420FFFC
write 3103 78020001
write 3104 B8400800
write 3105 38210858
write 3106 FBFFF722
write 3107 78020001
write 3108 B8400800
write 3109 38211F1C
write 310a FBFFF71E
write 310b FBFFFF2A
write 310c B9600800
write 310d FBFFFF40
write 310e 4420FFFE
write 310f 2B9D0004
write 3110 2B8B0008
write 3111 379C0008
write 3112 C3A00000
write 3113 379CFFF4
write 3114 5B8B000C
write 3115 5B8C0008
write 3116 5B9D0004
write 3117 B8406000
write 3118 34020003
write 3119 5C22001E
write 311a FBFFFF1B
write 311b B9800800
write 311c FBFFFF31
write 311d 4420FFFE
write 311e 4C200009
write 311f 78010001
write 3120 38211F3C
write 3121 FBFFF707
write 3122 34010000
write 3123 34020050
write 3124 B9801800
write 3125 34040000
write 3126 E0000009
write 3127 29820000
write 3128 78010001
write 3129 38211FA0
write 312a FBFFF6FE
write 312b 34010000
write 312c 34020050
write 312d B9801800
write 312e 34040001
write 312f F800017D
write 3130 340B0000
write 3131 4C200015
write 3132 78010001
write 3133 38211F74
write 3134 FBFFF6F4
write 3135 340BFFFF
write 3136 E0000010
write 3137 34010000
write 3138 34020050
write 3139 B9801800
write 313a 34040000
write 313b F8000171
write 313c B8205800
write 313d 4C200005
write 313e 78010001
write 313f 38211FC8
write 3140 B9601000
write 3141 E0000004
write 3142 29820000
write 3143 78010001
write 3144 38211FFC
write 3145 FBFFF6E3
write 3146 29810000
write 3147 FBFFF26E
write 3148 B9600800
write 3149 2B9D0004
write 314a 2B8B000C
write 314b 2B8C0008
write 314c 379C000C
write 314d C3A00000
write 314e 379CFFE0
write 314f 5B8B001C
write 3150 5B8C0018
write 3151 5B8D0014
write 3152 5B8E0010
write 3153 5B8F000C
write 3154 5B900008
write 3155 5B9D0004
write 3156 B8205800
write 3157 78010001
write 3158 38214E44
write 3159 B8406000
write 315a 40220000
write 315b B8607000
write 315c B8807800
write 315d B8A06800
write 315e 3401FFFF
write 315f 4440002B
write 3160 3D8C0001
write 3161 B9600800
write 3162 FBFFFA09
write 3163 218200FE
write 3164 B9600800
write 3165 FBFFFA4E
write 3166 01C20008
write 3167 B9600800
write 3168 204200FF
write 3169 FBFFFA4A
write 316a 21C200FF
write 316b B9600800
write 316c FBFFFA47
write 316d B9600800
write 316e FBFFFA11
write 316f 39820001
write 3170 B9600800
write 3171 204200FF
write 3172 FBFFFA41
write 3173 340C0000
write 3174 35AEFFFF
write 3175 37900023
write 3176 E0000009
write 3177 B9600800
write 3178 BA001000
write 3179 34030000
write 317a FBFFFA76
write 317b 43820023
write 317c B5EC0800
write 317d 358C0001
write 317e 30220000
write 317f 55CCFFF8
write 3180 B9600800
write 3181 BA001000
write 3182 34030001
write 3183 FBFFFA6D
write 3184 43810023
write 3185 B5EE7000
write 3186 31C10000
write 3187 B9600800
write 3188 FBFFFA13
write 3189 B9A00800
write 318a 2B9D0004
write 318b 2B8B001C
write 318c 2B8C0018
write 318d 2B8D0014
write 318e 2B8E0010
write 318f 2B8F000C
write 3190 2B900008
write 3191 379C0020
write 3192 C3A00000
write 3193 379CFFE0
write 3194 5B8B0020
write 3195 5B8C001C
write 3196 5B8D0018
write 3197 5B8E0014
write 3198 5B8F0010
write 3199 5B90000C
write 319a 5B910008
write 319b 5B9D0004
write 319c B8205800
write 319d 78010001
write 319e 38214E44
write 319f B8606800
write 31a0 40230000
write 31a1 3C4F0001
write 31a2 B8808000
write 31a3 B8A07000
write 31a4 3401FFFF
write 31a5 21EF00FF
write 31a6 340C0000
write 31a7 5C60001F
write 31a8 E0000020
write 31a9 B9600800
write 31aa FBFFF9C1
write 31ab B9E01000
write 31ac B9600800
write 31ad FBFFFA06
write 31ae 01A20008
write 31af B9600800
write 31b0 204200FF
write 31b1 FBFFFA02
write 31b2 21A200FF
write 31b3 B9600800
write 31b4 FBFFF9FF
write 31b5 B60C1000
write 31b6 40420000
write 31b7 B9600800
write 31b8 35AD0001
write 31b9 FBFFF9FA
write 31ba B9600800
write 31bb FBFFF9E0
write 31bc B9600800
write 31bd FBFFF9AE
write 31be B9600800
write 31bf B9E01000
write 31c0 FBFFF9F3
write 31c1 B8208800
write 31c2 B9600800
write 31c3 FBFFF9D8
write 31c4 5E20FFF8
write 31c5 358C0001
write 31c6 55CCFFE3
write 31c7 B9C00800
write 31c8 2B9D0004
write 31c9 2B8B0020
write 31ca 2B8C001C
write 31cb 2B8D0018
write 31cc 2B8E0014
write 31cd 2B8F0010
write 31ce 2B90000C
write 31cf 2B910008
write 31d0 379C0020
write 31d1 C3A00000
write 31d2 379CFFEC
write 31d3 5B8B0014
write 31d4 5B8C0010
write 31d5 5B8D000C
write 31d6 5B8E0008
write 31d7 5B9D0004
write 31d8 780B0001
write 31d9 202E00FF
write 31da 204D00FF
write 31db 34010001
write 31dc 396B4E44
write 31dd 31610000
write 31de B9A01000
write 31df B9C00800
write 31e0 FBFFFA6E
write 31e1 B8206000
write 31e2 5C200006
write 31e3 B9C00800
write 31e4 B9A01000
write 31e5 FBFFFA69
write 31e6 5C2C0002
write 31e7 31600000
write 31e8 34010000
write 31e9 2B9D0004
write 31ea 2B8B0014
write 31eb 2B8C0010
write 31ec 2B8D000C
write 31ed 2B8E0008
write 31ee 379C0014
write 31ef C3A00000
write 31f0 379CFFF8
write 31f1 5B9D0004
write 31f2 34031004
write 31f3 204200FF
write 31f4 202100FF
write 31f5 3784000B
write 31f6 34050001
write 31f7 3380000B
write 31f8 FBFFFF9B
write 31f9 34030001
write 31fa 3402FFFF
write 31fb 5C230002
write 31fc 4382000B
write 31fd B8400800
write 31fe 2B9D0004
write 31ff 379C0008
write 3200 C3A00000
write 3201 379CFFE8
write 3202 5B8B0018
write 3203 5B8C0014
write 3204 5B8D0010
write 3205 5B8E000C
write 3206 5B8F0008
write 3207 5B9D0004
write 3208 202E00FF
write 3209 20AF00FF
write 320a 34010003
write 320b B8605800
write 320c 204D00FF
write 320d 208C00FF
write 320e 3406FFFC
write 320f 55E10051
write 3210 5DE0000B
write 3211 78040001
write 3212 B9A01000
write 3213 B9C00800
write 3214 34031004
write 3215 38844E4A
write 3216 34050001
write 3217 FBFFFF37
write 3218 34020001
write 3219 3406FFFF
write 321a 5C220046
write 321b 45800007
write 321c 78010001
write 321d 38214E4A
write 321e 40220000
write 321f 34010004
write 3220 3406FFFE
write 3221 4441003F
write 3222 B9EC0800
write 3223 5C200007
write 3224 78010001
write 3225 38214E4A
write 3226 40210000
write 3227 34060000
write 3228 5C260006
write 3229 E0000037
write 322a 3562001C
write 322b B9603000
write 322c 34010000
write 322d 5D800017
write 322e 09E3001D
write 322f B9A01000
write 3230 B9C00800
write 3231 34631005
write 3232 B9602000
write 3233 3405001D
write 3234 FBFFFF1A
write 3235 3402001D
write 3236 B9606000
write 3237 3406FFFF
write 3238 5C220028
write 3239 3562001C
write 323a 34010000
write 323b 41830000
write 323c 358C0001
write 323d B4230800
write 323e 202100FF
write 323f 5D82FFFC
write 3240 4162001C
write 3241 3406FFFD
write 3242 5C41001E
write 3243 E000001A
write 3244 40C30000
write 3245 34C60001
write 3246 B4230800
write 3247 202100FF
write 3248 5CC2FFFC
write 3249 780C0001
write 324a 398C4E4A
write 324b 3161001C
write 324c 41830000
write 324d B9A01000
write 324e B9602000
write 324f 0863001D
write 3250 3405001D
write 3251 B9C00800
write 3252 34631005
write 3253 FBFFFF40
write 3254 41810000
write 3255 B9A01000
write 3256 34031004
write 3257 34210001
write 3258 31810000
write 3259 B9802000
write 325a B9C00800
write 325b 34050001
write 325c FBFFFF37
write 325d 78010001
write 325e 38214E4A
write 325f 40260000
write 3260 B8C00800
write 3261 2B9D0004
write 3262 2B8B0018
write 3263 2B8C0014
write 3264 2B8D0010
write 3265 2B8E000C
write 3266 2B8F0008
write 3267 379C0018
write 3268 C3A00000
write 3269 379CFFC8
write 326a 5B8B0018
write 326b 5B8C0014
write 326c 5B8D0010
write 326d 5B8E000C
write 326e 5B8F0008
write 326f 5B9D0004
write 3270 340C0000
write 3271 B8605800
write 3272 340D0001
write 3273 378E001C
write 3274 340F00FD
write 3275 E000002D
write 3276 34020050
write 3277 34010000
write 3278 B9C01800
write 3279 34040000
write 327a B9802800
write 327b FBFFFF86
write 327c B1801000
write 327d 5C400005
write 327e 202D00FF
write 327f 35A1FFFF
write 3280 202100FF
write 3281 542F0022
write 3282 B9C00800
write 3283 B9601000
write 3284 34030010
write 3285 F8000E36
write 3286 358C0001
write 3287 5C20001B
write 3288 2B810030
write 3289 00220018
write 328a 31610017
write 328b 31620014
write 328c 00220010
write 328d 31620015
write 328e 00220008
write 328f 2B810034
write 3290 31620016
write 3291 00220018
write 3292 3161001B
write 3293 31620018
write 3294 00220010
write 3295 31620019
write 3296 00220008
write 3297 2B81002C
write 3298 3162001A
write 3299 00220018
write 329a 31610013
write 329b 31620010
write 329c 00220010
write 329d 31620011
write 329e 00220008
write 329f 34010001
write 32a0 31620012
write 32a1 E0000003
write 32a2 49ACFFD4
write 32a3 34010000
write 32a4 2B9D0004
write 32a5 2B8B0018
write 32a6 2B8C0014
write 32a7 2B8D0010
write 32a8 2B8E000C
write 32a9 2B8F0008
write 32aa 379C0038
write 32ab C3A00000
write 32ac 379CFFF8
write 32ad 5B8B0008
write 32ae 5B9D0004
write 32af 208400FF
write 32b0 B8605800
write 32b1 202100FF
write 32b2 204200FF
write 32b3 44800013
write 32b4 28640000
write 32b5 78038000
write 32b6 34050004
write 32b7 B8831800
write 32b8 59630000
write 32b9 B9602000
write 32ba 34031000
write 32bb FBFFFED8
write 32bc 7C210004
write 32bd 78040001
write 32be 38842360
write 32bf C8011000
write 32c0 29630000
write 32c1 28810000
write 32c2 38420001
write 32c3 A0610800
write 32c4 59610000
write 32c5 E0000011
write 32c6 34031000
write 32c7 B9602000
write 32c8 34050004
write 32c9 FBFFFE85
write 32ca 34030004
write 32cb 3402FFFF
write 32cc 5C23000A
write 32cd 29610000
write 32ce 34020000
write 32cf 4C200007
write 32d0 78030001
write 32d1 38632360
write 32d2 28620000
write 32d3 A0220800
write 32d4 59610000
write 32d5 34020001
write 32d6 B8400800
write 32d7 2B9D0004
write 32d8 2B8B0008
write 32d9 379C0008
write 32da C3A00000
write 32db 379CFFF8
write 32dc 5B9D0004
write 32dd 34031074
write 32de 204200FF
write 32df 202100FF
write 32e0 3784000A
write 32e1 34050002
write 32e2 0F80000A
write 32e3 FBFFFEB0
write 32e4 34030002
write 32e5 3402FFFF
write 32e6 5C230002
write 32e7 1382000B
write 32e8 B8400800
write 32e9 2B9D0004
write 32ea 379C0008
write 32eb C3A00000
write 32ec 379CFFD4
write 32ed 5B8B0024
write 32ee 5B8C0020
write 32ef 5B8D001C
write 32f0 5B8E0018
write 32f1 5B8F0014
write 32f2 5B900010
write 32f3 5B91000C
write 32f4 5B920008
write 32f5 5B9D0004
write 32f6 202D00FF
write 32f7 204C00FF
write 32f8 34010020
write 32f9 3381002F
write 32fa B9801000
write 32fb B8608800
write 32fc B9A00800
write 32fd 34031074
write 32fe 3784002C
write 32ff 34050002
write 3300 FBFFFE4E
write 3301 34020002
write 3302 340BFFFF
write 3303 5C22004B
write 3304 2F82002C
write 3305 3801FFFF
write 3306 5C410002
write 3307 0F80002C
write 3308 340B0001
write 3309 3790002F
write 330a E0000021
write 330b B9C00800
write 330c 34B21076
write 330d F8000D7F
write 330e B8202800
write 330f B9C02000
write 3310 B9A00800
write 3311 B9801000
write 3312 BA401800
write 3313 FBFFFE80
write 3314 B8207000
write 3315 29E10000
write 3316 F8000D76
write 3317 5DC10036
write 3318 29E10000
write 3319 2F8E002C
write 331a F8000D72
write 331b B5C12800
write 331c 20A5FFFF
write 331d 0F85002C
write 331e B9801000
write 331f 34A31076
write 3320 B9A00800
write 3321 BA002000
write 3322 34050001
write 3323 FBFFFE70
write 3324 34020001
write 3325 5C220028
write 3326 2F81002C
write 3327 356B0001
write 3328 216B00FF
write 3329 34210001
write 332a 0F81002C
write 332b 3D6F0002
write 332c 2F85002C
write 332d B62F7800
write 332e 29EE0000
write 332f 5DC0FFDC
write 3330 3401000A
write 3331 3381002F
write 3332 B9801000
write 3333 34A31075
write 3334 B9A00800
write 3335 3784002F
write 3336 34050001
write 3337 FBFFFE5C
write 3338 34020001
write 3339 340BFFFF
write 333a 5C220014
write 333b B9A00800
write 333c B9801000
write 333d 34031074
write 333e 3784002C
write 333f 34050002
write 3340 FBFFFE53
write 3341 B8207000
write 3342 34010002
write 3343 5DC1000B
write 3344 B9A00800
write 3345 B9801000
write 3346 34031074
write 3347 3784002A
write 3348 34050002
write 3349 FBFFFE05
write 334a E42E5800
write 334b 356BFFFF
write 334c E0000002
write 334d 340BFFFF
write 334e B9600800
write 334f 2B9D0004
write 3350 2B8B0024
write 3351 2B8C0020
write 3352 2B8D001C
write 3353 2B8E0018
write 3354 2B8F0014
write 3355 2B900010
write 3356 2B91000C
write 3357 2B920008
write 3358 379C002C
write 3359 C3A00000
write 335a 379CFFE4
write 335b 5B8B0018
write 335c 5B8C0014
write 335d 5B8D0010
write 335e 5B8E000C
write 335f 5B8F0008
write 3360 5B9D0004
write 3361 202D00FF
write 3362 204E00FF
write 3363 B9C01000
write 3364 34031074
write 3365 B9A00800
write 3366 3784001C
write 3367 34050002
write 3368 FBFFFDE6
write 3369 34020002
write 336a 3403FFFF
write 336b 5C220021
write 336c 2F81001C
write 336d 3802FFFD
write 336e 3421FFFF
write 336f 2021FFFF
write 3370 50410005
write 3371 78010001
write 3372 38211854
write 3373 0F80001C
write 3374 FBFFF4B4
write 3375 780C0001
write 3376 340B0000
write 3377 378F001F
write 3378 398C1850
write 3379 E000000E
write 337a B9C01000
write 337b B9A00800
write 337c 35631076
write 337d B9E02000
write 337e 34050001
write 337f FBFFFDCF
write 3380 34020001
write 3381 5C22000A
write 3382 4382001F
write 3383 B9800800
write 3384 356B0001
write 3385 FBFFF4A3
write 3386 216BFFFF
write 3387 2F81001C
write 3388 542BFFF2
write 3389 34030000
write 338a E0000002
write 338b 3403FFFF
write 338c B8600800
write 338d 2B9D0004
write 338e 2B8B0018
write 338f 2B8C0014
write 3390 2B8D0010
write 3391 2B8E000C
write 3392 2B8F0008
write 3393 379C001C
write 3394 C3A00000
write 3395 379CFFDC
write 3396 5B8B0024
write 3397 5B8C0020
write 3398 5B8D001C
write 3399 5B8E0018
write 339a 5B8F0014
write 339b 5B900010
write 339c 5B91000C
write 339d 5B920008
write 339e 5B9D0004
write 339f 20A500FF
write 33a0 B8608800
write 33a1 202D00FF
write 33a2 204E00FF
write 33a3 209200FF
write 33a4 5CA0000F
write 33a5 78040001
write 33a6 34050002
write 33a7 B9A00800
write 33a8 B9C01000
write 33a9 34031074
write 33aa 38844E46
write 33ab FBFFFDA3
write 33ac B8203000
write 33ad 34010002
write 33ae 3405FFFF
write 33af 5CC10027
write 33b0 78050001
write 33b1 38A54E48
write 33b2 0CA60000
write 33b3 78060001
write 33b4 38C64E48
write 33b5 78050001
write 33b6 38A54E46
write 33b7 2CC20000
write 33b8 2CA10000
write 33b9 34050000
write 33ba 3442FFFE
write 33bb 5041001B
write 33bc 340B0000
write 33bd B8C06000
write 33be 3410000A
write 33bf 2D850000
write 33c0 34A1FFFE
write 33c1 54320012
write 33c2 34A10001
write 33c3 B62B7800
write 33c4 0D810000
write 33c5 B9C01000
write 33c6 34A31074
write 33c7 B9A00800
write 33c8 B9E02000
write 33c9 34050001
write 33ca FBFFFD84
write 33cb 34020001
write 33cc 5C220009
write 33cd 41E10000
write 33ce 356B0001
write 33cf 216B00FF
write 33d0 5C30FFEF
write 33d1 B1602800
write 33d2 E0000004
write 33d3 3405FFFD
write 33d4 E0000002
write 33d5 3405FFFF
write 33d6 B8A00800
write 33d7 2B9D0004
write 33d8 2B8B0024
write 33d9 2B8C0020
write 33da 2B8D001C
write 33db 2B8E0018
write 33dc 2B8F0014
write 33dd 2B900010
write 33de 2B91000C
write 33df 2B920008
write 33e0 379C0024
write 33e1 C3A00000
write 33e2 379CFFFC
write 33e3 5B9D0004
write 33e4 78010001
write 33e5 3821201C
write 33e6 FBFFF442
write 33e7 3401FFFF
write 33e8 2B9D0004
write 33e9 379C0004
write 33ea C3A00000
write 33eb 379CFFF8
write 33ec 5B8B0008
write 33ed 5B9D0004
write 33ee 78010001
write 33ef B8405800
write 33f0 78020001
write 33f1 38212040
write 33f2 38422614
write 33f3 FBFFF435
write 33f4 78030001
write 33f5 78010001
write 33f6 38635130
write 33f7 38215140
write 33f8 34640090
write 33f9 28230004
write 33fa 206200FF
write 33fb 7C450042
write 33fc 7C420028
write 33fd A0A21000
write 33fe 5C400007
write 33ff 00620018
write 3400 31620003
write 3401 00620010
write 3402 00630008
write 3403 31620004
write 3404 31630005
write 3405 34210010
write 3406 5C24FFF3
write 3407 34010000
write 3408 2B9D0004
write 3409 2B8B0008
write 340a 379C0008
write 340b C3A00000
write 340c 379CFFE8
write 340d 5B8B0018
write 340e 5B8C0014
write 340f 5B8D0010
write 3410 5B8E000C
write 3411 5B8F0008
write 3412 5B9D0004
write 3413 780B0001
write 3414 B8207800
write 3415 B8407000
write 3416 340D0008
write 3417 340C0001
write 3418 396B30A0
write 3419 A18E1800
write 341a 29640008
write 341b 7C620000
write 341c B9E00800
write 341d 35ADFFFF
write 341e D8800000
write 341f 3D8C0001
write 3420 5DA0FFF9
write 3421 2B9D0004
write 3422 2B8B0018
write 3423 2B8C0014
write 3424 2B8D0010
write 3425 2B8E000C
write 3426 2B8F0008
write 3427 379C0018
write 3428 C3A00000
write 3429 379CFFE8
write 342a 5B8B0018
write 342b 5B8C0014
write 342c 5B8D0010
write 342d 5B8E000C
write 342e 5B8F0008
write 342f 5B9D0004
write 3430 780B0001
write 3431 B8207800
write 3432 340E0008
write 3433 340C0000
write 3434 340D0001
write 3435 396B30A0
write 3436 29620004
write 3437 B9E00800
write 3438 35CEFFFF
write 3439 D8400000
write 343a 7C220000
write 343b C8021000
write 343c A1A21000
write 343d B9826000
write 343e 3DAD0001
write 343f 5DC0FFF7
write 3440 34010064
write 3441 FBFFEF54
write 3442 B9800800
write 3443 2B9D0004
write 3444 2B8B0018
write 3445 2B8C0014
write 3446 2B8D0010
write 3447 2B8E000C
write 3448 2B8F0008
write 3449 379C0018
write 344a C3A00000
write 344b 379CFFC0
write 344c 5B8B0040
write 344d 5B8C003C
write 344e 5B8D0038
write 344f 5B8E0034
write 3450 5B8F0030
write 3451 5B90002C
write 3452 5B910028
write 3453 5B920024
write 3454 5B930020
write 3455 5B94001C
write 3456 5B950018
write 3457 5B960014
write 3458 5B970010
write 3459 5B98000C
write 345a 5B990008
write 345b 5B9D0004
write 345c 34020000
write 345d B8206000
write 345e 34030080
write 345f 34210008
write 3460 780D0001
write 3461 F8000BA5
write 3462 39AD30A0
write 3463 29A10000
write 3464 340F0000
write 3465 44200061
write 3466 B9805800
write 3467 34120000
write 3468 34110000
write 3469 78194000
write 346a 34160001
write 346b 34180008
write 346c 596C0008
write 346d 45E00022
write 346e 29610000
write 346f 78028000
write 3470 34030000
write 3471 59610010
write 3472 29610004
write 3473 59610014
write 3474 A0590800
write 3475 44200003
write 3476 78024000
write 3477 34030000
write 3478 A0710800
write 3479 A0522800
write 347a B8A12800
write 347b 29640010
write 347c 29610014
write 347d 5CA0000E
write 347e A4603000
write 347f A0260800
write 3480 59610014
write 3481 00630001
write 3482 3C41001F
write 3483 A4403800
write 3484 14420001
write 3485 A0872000
write 3486 B8231800
write 3487 59640010
write 3488 B8430800
write 3489 5C25FFEB
write 348a E000003C
write 348b B8821000
write 348c B8231800
write 348d 59620010
write 348e 59630014
write 348f 35EE0001
write 3490 29A20000
write 3491 3DCE0004
write 3492 B9800800
write 3493 B58E7000
write 3494 D8400000
write 3495 5C360031
write 3496 B9800800
write 3497 340200F0
write 3498 FBFFFF74
write 3499 34140040
write 349a 34130000
write 349b 34100001
write 349c 34120000
write 349d 34110000
write 349e 29A20004
write 349f B9800800
write 34a0 29D70004
write 34a1 D8400000
write 34a2 29A20004
write 34a3 B820A800
write 34a4 B9800800
write 34a5 A2F0B800
write 34a6 D8400000
write 34a7 46A10008
write 34a8 29A30008
write 34a9 BAA01000
write 34aa 7EB50000
write 34ab B9800800
write 34ac D8600000
write 34ad 5EB60011
write 34ae E0000007
write 34af 29A30008
write 34b0 B9800800
write 34b1 BAE01000
write 34b2 D8600000
write 34b3 46E00009
write 34b4 E000000A
write 34b5 29C10000
write 34b6 B8330800
write 34b7 59C10000
write 34b8 29C10004
write 34b9 B8300800
write 34ba 59C10004
write 34bb E0000003
write 34bc BA539000
write 34bd BA308800
write 34be 3E010001
write 34bf 3E730001
write 34c0 F6018000
write 34c1 3694FFFF
write 34c2 B6139800
write 34c3 B8208000
write 34c4 5E80FFDA
write 34c5 E0000014
write 34c6 B9E00800
write 34c7 2B9D0004
write 34c8 2B8B0040
write 34c9 2B8C003C
write 34ca 2B8D0038
write 34cb 2B8E0034
write 34cc 2B8F0030
write 34cd 2B90002C
write 34ce 2B910028
write 34cf 2B920024
write 34d0 2B930020
write 34d1 2B94001C
write 34d2 2B950018
write 34d3 2B960014
write 34d4 2B970010
write 34d5 2B98000C
write 34d6 2B990008
write 34d7 379C0040
write 34d8 C3A00000
write 34d9 35EF0001
write 34da 356B0010
write 34db 5DF8FF91
write 34dc E3FFFFEA
write 34dd 379CFFF0
write 34de 5B8B0010
write 34df 5B8C000C
write 34e0 5B8D0008
write 34e1 5B9D0004
write 34e2 B8205800
write 34e3 78010001
write 34e4 382130A0
write 34e5 28220000
write 34e6 29610000
write 34e7 340C0000
write 34e8 340D0040
write 34e9 D8400000
write 34ea 29610000
write 34eb 34020055
write 34ec FBFFFF20
write 34ed 29610008
write 34ee 2962000C
write 34ef B9801800
write 34f0 358C0008
write 34f1 F80009DA
write 34f2 29610000
write 34f3 FBFFFF19
write 34f4 5D8DFFF9
write 34f5 2B9D0004
write 34f6 2B8B0010
write 34f7 2B8C000C
write 34f8 2B8D0008
write 34f9 379C0010
write 34fa C3A00000
write 34fb 28210000
write 34fc 78020001
write 34fd 384251B8
write 34fe 28420000
write 34ff 3C210008
write 3500 3821000A
write 3501 58410000
write 3502 28410000
write 3503 20230008
write 3504 5C60FFFE
write 3505 20210001
write 3506 18210001
write 3507 C3A00000
write 3508 28210000
write 3509 78020001
write 350a 384251B8
write 350b 28420000
write 350c 3C210008
write 350d 38210009
write 350e 58410000
write 350f 28410000
write 3510 20230008
write 3511 5C60FFFE
write 3512 20210001
write 3513 C3A00000
write 3514 28210000
write 3515 78030001
write 3516 386351B8
write 3517 3C210008
write 3518 28630000
write 3519 7C420000
write 351a 38210008
write 351b B8221000
write 351c 58620000
write 351d 28610000
write 351e 20210008
write 351f 5C20FFFE
write 3520 C3A00000
write 3521 78010001
write 3522 78030001
write 3523 382151B8
write 3524 386323D0
write 3525 28210000
write 3526 28620000
write 3527 58220004
write 3528 C3A00000
write 3529 379CFFC4
write 352a 5B8B001C
write 352b 5B8C0018
write 352c 5B8D0014
write 352d 5B8E0010
write 352e 5B8F000C
write 352f 5B900008
write 3530 5B9D0004
write 3531 B8206000
write 3532 28210000
write 3533 340BFFFF
write 3534 4420002A
write 3535 29820004
write 3536 44400028
write 3537 FBFFEE12
write 3538 780E0001
write 3539 B8206800
write 353a 340B0000
write 353b 3410001F
write 353c 378F0020
write 353d 39CE205C
write 353e E000000B
write 353f FBFFEE0A
write 3540 202400FF
write 3541 B56D1000
write 3542 B5EB0800
write 3543 30240000
write 3544 B8401800
write 3545 B9C00800
write 3546 B8802800
write 3547 FBFFF2E1
write 3548 356B0001
write 3549 29810004
write 354a EE0B1800
write 354b 358C0004
write 354c 7C220000
write 354d A0621000
write 354e 5C40FFF1
write 354f 78010001
write 3550 B9602000
write 3551 B9A01000
write 3552 B9E01800
write 3553 38215130
write 3554 F80001CC
write 3555 B8206000
write 3556 B9601800
write 3557 78010001
write 3558 FD8B5800
write 3559 38212080
write 355a B9A01000
write 355b B9802000
write 355c FBFFF2CC
write 355d C80B5800
write 355e B9600800
write 355f 2B9D0004
write 3560 2B8B001C
write 3561 2B8C0018
write 3562 2B8D0014
write 3563 2B8E0010
write 3564 2B8F000C
write 3565 2B900008
write 3566 379C003C
write 3567 C3A00000
write 3568 379CFFC8
write 3569 5B8B0018
write 356a 5B8C0014
write 356b 5B8D0010
write 356c 5B8E000C
write 356d 5B8F0008
write 356e 5B9D0004
write 356f B8205800
write 3570 28210000
write 3571 3405FFFF
write 3572 4420002C
write 3573 29620004
write 3574 4440002A
write 3575 FBFFEDD4
write 3576 B8207000
write 3577 29610004
write 3578 FBFFEDD1
write 3579 B8205800
write 357a 34010020
write 357b 4C2B0002
write 357c 340B0020
write 357d 378D001C
write 357e 78010001
write 357f B9602000
write 3580 B9C01000
write 3581 B9A01800
write 3582 38215130
write 3583 F8000189
write 3584 B8206000
write 3585 78010001
write 3586 B9601800
write 3587 382120A0
write 3588 B9C01000
write 3589 B9802000
write 358a FBFFF29E
write 358b E98B5800
write 358c EC0C0800
write 358d 3405FFFF
write 358e B9615800
write 358f 5D60000F
write 3590 B9A07800
write 3591 780D0001
write 3592 39AD205C
write 3593 B5EB0800
write 3594 40240000
write 3595 B56E1000
write 3596 B9A00800
write 3597 B8401800
write 3598 B8802800
write 3599 356B0001
write 359a FBFFF28E
write 359b 498BFFF8
write 359c FD8B2800
write 359d C8052800
write 359e B8A00800
write 359f 2B9D0004
write 35a0 2B8B0018
write 35a1 2B8C0014
write 35a2 2B8D0010
write 35a3 2B8E000C
write 35a4 2B8F0008
write 35a5 379C0038
write 35a6 C3A00000
write 35a7 379CFFE4
write 35a8 5B8B001C
write 35a9 5B8C0018
write 35aa 5B8D0014
write 35ab 5B8E0010
write 35ac 5B8F000C
write 35ad 5B900008
write 35ae 5B9D0004
write 35af 780D0001
write 35b0 39AD5130
write 35b1 B9A00800
write 35b2 780B0001
write 35b3 780F0001
write 35b4 780E0001
write 35b5 FBFFFE96
write 35b6 396B5140
write 35b7 340C0000
write 35b8 39EF20C0
write 35b9 39CE20D8
write 35ba 34100008
write 35bb 29630000
write 35bc 29640004
write 35bd B8640800
write 35be 44200010
write 35bf B9801000
write 35c0 B9E00800
write 35c1 FBFFF267
write 35c2 3D810004
write 35c3 34020000
write 35c4 34210008
write 35c5 B5A10800
write 35c6 F8000015
write 35c7 2023FFFF
write 35c8 08632710
write 35c9 B8201000
write 35ca 14420010
write 35cb 14630010
write 35cc B9C00800
write 35cd FBFFF25B
write 35ce 358C0001
write 35cf 356B0010
write 35d0 5D90FFEB
write 35d1 34010000
write 35d2 2B9D0004
write 35d3 2B8B001C
write 35d4 2B8C0018
write 35d5 2B8D0014
write 35d6 2B8E0010
write 35d7 2B8F000C
write 35d8 2B900008
write 35d9 379C001C
write 35da C3A00000
write 35db 379CFFEC
write 35dc 5B8B0014
write 35dd 5B8C0010
write 35de 5B8D000C
write 35df 5B8E0008
write 35e0 5B9D0004
write 35e1 402D000F
write 35e2 B8206000
write 35e3 34010028
write 35e4 B8407000
write 35e5 45A10005
write 35e6 34010042
write 35e7 45A10003
write 35e8 34010010
write 35e9 5DA10034
write 35ea 21CB0002
write 35eb 5D60000F
write 35ec B9800800
write 35ed FBFFFEF0
write 35ee 29810000
write 35ef 34020044
write 35f0 21CE0001
write 35f1 FBFFFE1B
write 35f2 34010000
write 35f3 5DCB002D
write 35f4 780B0001
write 35f5 396B30A0
write 35f6 29620004
write 35f7 29810000
write 35f8 D8400000
write 35f9 4420FFFD
write 35fa B9800800
write 35fb FBFFFEE2
write 35fc 29810000
write 35fd 780B0001
write 35fe 340200BE
write 35ff 396B4E4C
write 3600 FBFFFE0C
write 3601 356E0008
write 3602 E0000005
write 3603 29810000
write 3604 FBFFFE25
write 3605 31610000
write 3606 356B0001
write 3607 5D6EFFFC
write 3608 78020001
write 3609 38424E4C
write 360a 40410001
write 360b 40430000
write 360c 3C210008
write 360d B8230800
write 360e 34030028
write 360f DC200800
write 3610 45A3000B
write 3611 34030042
write 3612 45A30009
write 3613 34030010
write 3614 5DA3000B
write 3615 40420006
write 3616 3C21000F
write 3617 3C42000C
write 3618 3421C000
write 3619 B8220800
write 361a E0000006
write 361b 3C21000C
write 361c E0000004
write 361d 78018000
write 361e E0000002
write 361f 34010000
write 3620 2B9D0004
write 3621 2B8B0014
write 3622 2B8C0010
write 3623 2B8D000C
write 3624 2B8E0008
write 3625 379C0014
write 3626 C3A00000
write 3627 379CFFFC
write 3628 5B9D0004
write 3629 34030000
write 362a B8202000
write 362b 34090028
write 362c 34080042
write 362d 34070010
write 362e 34060008
write 362f 40850017
write 3630 44A90003
write 3631 44A80002
write 3632 5CA70006
write 3633 3C630004
write 3634 34630008
write 3635 B4230800
write 3636 FBFFFFA5
write 3637 E0000005
write 3638 34630001
write 3639 34840010
write 363a 5C66FFF5
write 363b 78018000
write 363c 2B9D0004
write 363d 379C0004
write 363e C3A00000
write 363f 379CFFE0
write 3640 5B8B0020
write 3641 5B8C001C
write 3642 5B8D0018
write 3643 5B8E0014
write 3644 5B8F0010
write 3645 5B90000C
write 3646 5B910008
write 3647 5B9D0004
write 3648 B8205800
write 3649 B8408800
write 364a B8608000
write 364b B8806000
write 364c FBFFFE91
write 364d 29610000
write 364e 3402000F
write 364f 222E00FF
write 3650 FBFFFDBC
write 3651 29610000
write 3652 B9C01000
write 3653 2231FF00
write 3654 FBFFFDB8
write 3655 16310008
write 3656 29610000
write 3657 BA201000
write 3658 340D0000
write 3659 FBFFFDB3
write 365a E0000006
write 365b B60D1000
write 365c 29610000
write 365d 40420000
write 365e 35AD0001
write 365f FBFFFDAD
write 3660 498DFFFB
write 3661 B9600800
write 3662 FBFFFE7B
write 3663 29610000
write 3664 340200AA
write 3665 FBFFFDA7
write 3666 29610000
write 3667 FBFFFDC2
write 3668 B8207800
write 3669 5C2E0022
write 366a 29610000
write 366b FBFFFDBE
write 366c B8207000
write 366d 5C310020
write 366e 29610000
write 366f 340D0000
write 3670 FBFFFDB9
write 3671 B8208800
write 3672 E0000007
write 3673 29610000
write 3674 FBFFFDB5
write 3675 B60D1000
write 3676 40420000
write 3677 5C220018
write 3678 35AD0001
write 3679 498DFFFA
write 367a B9600800
write 367b FBFFFE62
write 367c 29610000
write 367d 34020055
write 367e FBFFFD8E
write 367f 29610000
write 3680 B9E01000
write 3681 FBFFFD8B
write 3682 29610000
write 3683 B9C01000
write 3684 FBFFFD88
write 3685 29610000
write 3686 BA201000
write 3687 FBFFFD85
write 3688 34012710
write 3689 FBFFED0C
write 368a E0000006
write 368b 340CFFFF
write 368c E0000004
write 368d 340CFFFE
write 368e E0000002
write 368f 340CFFFD
write 3690 B9800800
write 3691 2B9D0004
write 3692 2B8B0020
write 3693 2B8C001C
write 3694 2B8D0018
write 3695 2B8E0014
write 3696 2B8F0010
write 3697 2B90000C
write 3698 2B910008
write 3699 379C0020
write 369a C3A00000
write 369b 379CFFE4
write 369c 5B8B001C
write 369d 5B8C0018
write 369e 5B8D0014
write 369f 5B8E0010
write 36a0 5B8F000C
write 36a1 5B900008
write 36a2 5B9D0004
write 36a3 B8208000
write 36a4 2041001F
write 36a5 B8405800
write 36a6 B8607000
write 36a7 B8806000
write 36a8 340D0000
write 36a9 44200030
write 36aa 3441FFFF
write 36ab B4240800
write 36ac 1422001F
write 36ad B8807800
write 36ae 0042001B
write 36af B4410800
write 36b0 1562001F
write 36b1 14210005
write 36b2 0042001B
write 36b3 B44B1000
write 36b4 14420005
write 36b5 4422000C
write 36b6 78010001
write 36b7 382123D4
write 36b8 28220000
write 36b9 A1621000
write 36ba 4C400005
write 36bb 3442FFFF
write 36bc 3401FFE0
write 36bd B8411000
write 36be 34420001
write 36bf 340F0020
write 36c0 C9E27800
write 36c1 BA000800
write 36c2 B9601000
write 36c3 B9C01800
write 36c4 B9E02000
write 36c5 FBFFFF7A
write 36c6 B8206800
write 36c7 48010016
write 36c8 B5CF7000
write 36c9 B56F5800
write 36ca C98F6000
write 36cb E000000E
write 36cc B9802000
write 36cd 4DEC0002
write 36ce 34040020
write 36cf BA000800
write 36d0 B9601000
write 36d1 B9C01800
write 36d2 FBFFFF6D
write 36d3 48010009
write 36d4 B5A16800
write 36d5 35CE0020
write 36d6 356B0020
write 36d7 358CFFE0
write 36d8 E0000002
write 36d9 340F0020
write 36da 4980FFF2
write 36db E0000002
write 36dc B8206800
write 36dd B9A00800
write 36de 2B9D0004
write 36df 2B8B001C
write 36e0 2B8C0018
write 36e1 2B8D0014
write 36e2 2B8E0010
write 36e3 2B8F000C
write 36e4 2B900008
write 36e5 379C001C
write 36e6 C3A00000
write 36e7 379CFFEC
write 36e8 5B8B0014
write 36e9 5B8C0010
write 36ea 5B8D000C
write 36eb 5B8E0008
write 36ec 5B9D0004
write 36ed B8405800
write 36ee B8206000
write 36ef B8607000
write 36f0 B8806800
write 36f1 FBFFFDEC
write 36f2 29810000
write 36f3 340200F0
write 36f4 FBFFFD18
write 36f5 29810000
write 36f6 216200FF
write 36f7 FBFFFD15
write 36f8 2162FF00
write 36f9 29810000
write 36fa 00420008
write 36fb 340B0000
write 36fc FBFFFD10
write 36fd E0000006
write 36fe 29810000
write 36ff FBFFFD2A
write 3700 B5CB1000
write 3701 30410000
write 3702 356B0001
write 3703 49ABFFFB
write 3704 B9A00800
write 3705 2B9D0004
write 3706 2B8B0014
write 3707 2B8C0010
write 3708 2B8D000C
write 3709 2B8E0008
write 370a 379C0014
write 370b C3A00000
write 370c 379CFFFC
write 370d 5B9D0004
write 370e 34050000
write 370f B8203000
write 3710 34080043
write 3711 34070008
write 3712 40C90017
write 3713 5D280006
write 3714 3CA50004
write 3715 34A50008
write 3716 B4250800
write 3717 FBFFFFD0
write 3718 E0000005
write 3719 34A50001
write 371a 34C60010
write 371b 5CA7FFF7
write 371c 3401FFFF
write 371d 2B9D0004
write 371e 379C0004
write 371f C3A00000
write 3720 379CFFFC
write 3721 5B9D0004
write 3722 34050000
write 3723 B8203000
write 3724 34080043
write 3725 34070008
write 3726 40C90017
write 3727 5D280006
write 3728 3CA50004
write 3729 34A50008
write 372a B4250800
write 372b FBFFFF70
write 372c E0000005
write 372d 34A50001
write 372e 34C60010
write 372f 5CA7FFF7
write 3730 3401FFFF
write 3731 2B9D0004
write 3732 379C0004
write 3733 C3A00000
write 3734 78010001
write 3735 382151BC
write 3736 28220000
write 3737 78010001
write 3738 382151D0
write 3739 58220000
write 373a 340103C6
write 373b 58410004
write 373c C3A00000
write 373d C3A00000
write 373e 379CFFF8
write 373f 5B8B0008
write 3740 5B9D0004
write 3741 B8205800
write 3742 3401000A
write 3743 5D610003
write 3744 3401000D
write 3745 FBFFFFF9
write 3746 78020001
write 3747 384251D0
write 3748 28420000
write 3749 28410000
write 374a 20210001
write 374b 5C20FFFE
write 374c 584B0008
write 374d 2B9D0004
write 374e 2B8B0008
write 374f 379C0008
write 3750 C3A00000
write 3751 379CFFF4
write 3752 5B8B000C
write 3753 5B8C0008
write 3754 5B9D0004
write 3755 B8206000
write 3756 B8205800
write 3757 E0000004
write 3758 B8400800
write 3759 356B0001
write 375a FBFFFFE4
write 375b 41620000
write 375c 5C40FFFC
write 375d C96C0800
write 375e 2B9D0004
write 375f 2B8B000C
write 3760 2B8C0008
write 3761 379C000C
write 3762 C3A00000
write 3763 78010001
write 3764 382151D0
write 3765 28220000
write 3766 3401FFFF
write 3767 28430000
write 3768 20630002
write 3769 44600003
write 376a 2841000C
write 376b 202100FF
write 376c C3A00000
write 376d 28250008
write 376e 28240000
write 376f 28260004
write 3770 B4451800
write 3771 88642000
write 3772 5822001C
write 3773 88461000
write 3774 B4821000
write 3775 2824000C
write 3776 1442000C
write 3777 B4442000
write 3778 28220014
write 3779 4C820005
write 377a 28240010
write 377b 44800008
write 377c 4CA3000B
write 377d E0000006
write 377e 28220018
write 377f 4C440006
write 3780 28240010
write 3781 44800002
write 3782 4C650005
write 3783 58230008
write 3784 E0000003
write 3785 58230008
write 3786 B8801000
write 3787 58220020
write 3788 B8400800
write 3789 C3A00000
write 378a 2822000C
write 378b 58200008
write 378c 58220020
write 378d C3A00000
write 378e 379CFFF8
write 378f 5B8B0008
write 3790 5B9D0004
write 3791 B8205800
write 3792 58200014
write 3793 B8400800
write 3794 F80007CF
write 3795 2963000C
write 3796 29620000
write 3797 4823000B
write 3798 29610004
write 3799 4C410003
write 379a 34420001
write 379b 59620000
write 379c 29620000
write 379d 5C410011
write 379e 34010001
write 379f 59610014
write 37a0 59610010
write 37a1 E000000E
write 37a2 29610008
write 37a3 4C220003
write 37a4 3442FFFF
write 37a5 59620000
write 37a6 29620000
write 37a7 5C410007
write 37a8 34010001
write 37a9 59610014
write 37aa 59600000
write 37ab 59600010
write 37ac 3401FFFF
write 37ad E0000002
write 37ae 29610010
write 37af 2B9D0004
write 37b0 2B8B0008
write 37b1 379C0008
write 37b2 C3A00000
write 37b3 58200010
write 37b4 58200000
write 37b5 58200014
write 37b6 C3A00000
write 37b7 78038000
write 37b8 58230004
write 37b9 58220000
write 37ba C3A00000
write 37bb 28230004
write 37bc 78048000
write 37bd 44640009
write 37be 28240000
write 37bf C8431000
write 37c0 88441000
write 37c1 1444000F
write 37c2 14420010
write 37c3 20840001
write 37c4 B4441000
write 37c5 B4431000
write 37c6 58220004
write 37c7 B8400800
write 37c8 C3A00000
write 37c9 78030001
write 37ca 386351C4
write 37cb 28640000
write 37cc 48810013
write 37cd 78030001
write 37ce 38635124
write 37cf C8240800
write 37d0 44400007
write 37d1 28620000
write 37d2 34040001
write 37d3 BC810800
write 37d4 28430018
write 37d5 B8230800
write 37d6 E0000007
write 37d7 28620000
write 37d8 34040001
write 37d9 BC810800
write 37da 28430018
write 37db A4200800
write 37dc A0230800
write 37dd 58410018
write 37de C3A00000
write 37df 78030001
write 37e0 38635124
write 37e1 44400007
write 37e2 28620000
write 37e3 34040001
write 37e4 BC810800
write 37e5 28430014
write 37e6 B8230800
write 37e7 E0000007
write 37e8 28620000
write 37e9 34040001
write 37ea BC810800
write 37eb 28430014
write 37ec A4200800
write 37ed A0230800
write 37ee 58410014
write 37ef C3A00000
write 37f0 379CFFF0
write 37f1 5B8B0010
write 37f2 5B8C000C
write 37f3 5B8D0008
write 37f4 5B9D0004
write 37f5 B8406800
write 37f6 B8606000
write 37f7 34020000
write 37f8 34030028
write 37f9 B8205800
write 37fa F800080C
write 37fb B9600800
write 37fc B9A01000
write 37fd 34030014
write 37fe F800078A
write 37ff 596C0014
write 3800 2B9D0004
write 3801 2B8B0010
write 3802 2B8C000C
write 3803 2B8D0008
write 3804 379C0010
write 3805 C3A00000
write 3806 78040001
write 3807 38845124
write 3808 28850000
write 3809 34040000
write 380a 44600002
write 380b 78048000
write 380c 78060001
write 380d 38C623D8
write 380e 28C30000
write 380f 3C210018
write 3810 A0431000
write 3811 B8410800
write 3812 B8242000
write 3813 58A4002C
write 3814 C3A00000
write 3815 78040001
write 3816 38845124
write 3817 28850000
write 3818 34040000
write 3819 44600002
write 381a 78048000
write 381b 78060001
write 381c 38C623D8
write 381d 28C30000
write 381e 3C210018
write 381f A0431000
write 3820 B8410800
write 3821 B8242000
write 3822 58A4002C
write 3823 C3A00000
write 3824 78040001
write 3825 38845124
write 3826 28850000
write 3827 34040000
write 3828 44600002
write 3829 78048000
write 382a 78060001
write 382b 38C623D8
write 382c 28C30000
write 382d 3C210018
write 382e A0431000
write 382f B8410800
write 3830 B8242000
write 3831 58A4002C
write 3832 C3A00000
write 3833 379CFFF8
write 3834 5B8B0008
write 3835 5B9D0004
write 3836 B8205800
write 3837 34010005
write 3838 59610038
write 3839 3801FFFB
write 383a 5961003C
write 383b 3401012C
write 383c 59610028
write 383d 34010001
write 383e 59610024
write 383f 59610034
write 3840 34217FFF
write 3841 59610030
write 3842 34010190
write 3843 59610064
write 3844 34012710
write 3845 5961005C
write 3846 34012706
write 3847 59610060
write 3848 59620000
write 3849 5960000C
write 384a 59600010
write 384b 59600014
write 384c 59630018
write 384d 64630000
write 384e 35610024
write 384f C8031800
write 3850 20630005
write 3851 34630001
write 3852 5963001C
write 3853 FBFFFF37
write 3854 35610058
write 3855 FBFFFF5E
write 3856 35610048
write 3857 34020FA0
write 3858 FBFFFF5F
write 3859 35610050
write 385a 3402012C
write 385b FBFFFF5C
write 385c 2B9D0004
write 385d 2B8B0008
write 385e 379C0008
write 385f C3A00000
write 3860 379CFFE4
write 3861 5B8B001C
write 3862 5B8C0018
write 3863 5B8D0014
write 3864 5B8E0010
write 3865 5B8F000C
write 3866 5B900008
write 3867 5B9D0004
write 3868 B8406800
write 3869 28220000
write 386a B8205800
write 386b 34010000
write 386c 5C620086
write 386d 2961001C
write 386e 780F0001
write 386f 34030002
write 3870 A1AF7800
write 3871 44230012
write 3872 48230004
write 3873 34020001
write 3874 5C220043
write 3875 E0000006
write 3876 34020003
write 3877 4422001D
write 3878 34020004
write 3879 5C22003E
write 387a E000002B
write 387b 78010001
write 387c 38215124
write 387d 28210000
write 387e 28220004
write 387f 38420004
write 3880 58220004
write 3881 5963001C
write 3882 E000001F
write 3883 780C0001
write 3884 398C5124
write 3885 29810000
write 3886 282E0004
write 3887 34010003
write 3888 21CE0008
write 3889 5DC0002D
write 388a 29700020
write 388b FBFFF695
write 388c CA010800
write 388d 4C2E002A
write 388e 29810000
write 388f 3402FFFB
write 3890 28230004
write 3891 A0621000
write 3892 58220004
write 3893 E0000022
write 3894 29620068
write 3895 44400022
write 3896 78030001
write 3897 38635128
write 3898 28630000
write 3899 58610000
write 389a 58600014
write 389b 58600018
write 389c 58600010
write 389d 34010001
write 389e 5861001C
write 389f 34010004
write 38a0 5961001C
write 38a1 FBFFF67F
write 38a2 342107D0
write 38a3 59610020
write 38a4 E0000013
write 38a5 780C0001
write 38a6 398C5128
write 38a7 29810000
write 38a8 282E001C
write 38a9 21CE0001
write 38aa 45C00005
write 38ab 34020006
write 38ac 5822001C
write 38ad 34010007
write 38ae E0000008
write 38af 29700020
write 38b0 FBFFF670
write 38b1 CA010800
write 38b2 4C2E0005
write 38b3 29810000
write 38b4 5820001C
write 38b5 34010005
write 38b6 5961001C
write 38b7 21A2FFFF
write 38b8 45E00009
write 38b9 29630014
write 38ba 29610008
write 38bb 4C620003
write 38bc 7803FFFF
write 38bd E0000002
write 38be 78030001
write 38bf B4230800
write 38c0 59610008
write 38c1 29610008
write 38c2 29630010
write 38c3 59620014
write 38c4 B4411000
write 38c5 59620010
write 38c6 35610024
write 38c7 C8431000
write 38c8 FBFFFEA5
write 38c9 B8206800
write 38ca B9A01000
write 38cb 35610048
write 38cc FBFFFEEF
write 38cd B9A01000
write 38ce B8206000
write 38cf 35610050
write 38d0 FBFFFEEB
write 38d1 78030001
write 38d2 38635124
write 38d3 B8206800
write 38d4 28610000
write 38d5 28210004
write 38d6 20210010
write 38d7 5C200004
write 38d8 35610058
write 38d9 FBFFFEDA
write 38da 340C7D00
write 38db 78030001
write 38dc 38635124
write 38dd 28610000
write 38de 2182FFFF
write 38df 34030000
write 38e0 58220024
write 38e1 34010041
write 38e2 B9A01000
write 38e3 FBFFFF23
write 38e4 29620004
write 38e5 34030000
write 38e6 34410001
write 38e7 59610004
write 38e8 34010046
write 38e9 FBFFFF1D
write 38ea 34010040
write 38eb B9801000
write 38ec 34030001
write 38ed FBFFFF19
write 38ee 35610058
write 38ef C98D1000
write 38f0 FBFFFE9E
write 38f1 7C210000
write 38f2 2B9D0004
write 38f3 2B8B001C
write 38f4 2B8C0018
write 38f5 2B8D0014
write 38f6 2B8E0010
write 38f7 2B8F000C
write 38f8 2B900008
write 38f9 379C001C
write 38fa C3A00000
write 38fb 379CFFFC
write 38fc 5B9D0004
write 38fd 78020001
write 38fe 38425124
write 38ff 28430000
write 3900 28220018
write 3901 58600004
write 3902 64420000
write 3903 58200004
write 3904 C8021000
write 3905 20420005
write 3906 34420001
write 3907 5822001C
write 3908 34010001
write 3909 58610004
write 390a 34020001
write 390b 34010044
write 390c 34030001
write 390d FBFFFEF9
write 390e 2B9D0004
write 390f 379C0004
write 3910 C3A00000
write 3911 28230068
write 3912 B8201000
write 3913 34010000
write 3914 44600006
write 3915 28430018
write 3916 34010001
write 3917 44600003
write 3918 2841001C
write 3919 64210007
write 391a C3A00000
write 391b 34030005
write 391c 5823002C
write 391d 3803FFFB
write 391e 58230030
write 391f 34030096
write 3920 5823001C
write 3921 34030002
write 3922 58230018
write 3923 34030001
write 3924 58230028
write 3925 340300C8
write 3926 58230048
write 3927 34032710
write 3928 58230040
write 3929 34030064
write 392a 58230044
write 392b 5822000C
write 392c 58200014
write 392d C3A00000
write 392e 379CFFF0
write 392f 5B8B0010
write 3930 5B8C000C
write 3931 5B8D0008
write 3932 5B9D0004
write 3933 B8205800
write 3934 2821000C
write 3935 B8406800
write 3936 340C0000
write 3937 5C610047
write 3938 34010022
write 3939 34030000
write 393a FBFFFEDB
write 393b 29620004
write 393c 34010025
write 393d 34030000
write 393e FBFFFED7
write 393f 29610008
write 3940 4C200004
write 3941 596D0004
write 3942 596D0008
write 3943 E000003B
write 3944 4DA10005
write 3945 29620000
write 3946 78010040
write 3947 B4410800
write 3948 59610000
write 3949 29630000
write 394a 78050001
write 394b 29620004
write 394c 38A523DC
write 394d 28A10000
write 394e B5A32000
write 394f C8826000
write 3950 482C0006
write 3951 78050001
write 3952 38A523E0
write 3953 28A10000
write 3954 49810002
write 3955 E0000002
write 3956 B8206000
write 3957 78050001
write 3958 38A523E4
write 3959 28A10000
write 395a 4C240006
write 395b 4C220005
write 395c C8611800
write 395d C8410800
write 395e 59630000
write 395f 59610004
write 3960 29610004
write 3961 B9801000
write 3962 596D0008
write 3963 34214000
write 3964 59610004
write 3965 35610018
write 3966 FBFFFE07
write 3967 78030001
write 3968 38635124
write 3969 29620010
write 396a B8206800
write 396b 28610000
write 396c 34030000
write 396d 582D0020
write 396e 34410001
write 396f 59610010
write 3970 34010026
write 3971 FBFFFEA4
write 3972 34010020
write 3973 B9A01000
write 3974 34030000
write 3975 FBFFFEA0
write 3976 B9801000
write 3977 34010021
write 3978 34030001
write 3979 FBFFFE9C
write 397a B9801000
write 397b 3561003C
write 397c FBFFFE12
write 397d 7C2C0000
write 397e B9800800
write 397f 2B9D0004
write 3980 2B8B0010
write 3981 2B8C000C
write 3982 2B8D0008
write 3983 379C0010
write 3984 C3A00000
write 3985 379CFFF8
write 3986 5B8B0008
write 3987 5B9D0004
write 3988 B8205800
write 3989 28210030
write 398a 59600004
write 398b 59600000
write 398c 59610024
write 398d 3401FFFF
write 398e 59610008
write 398f 59600010
write 3990 35610018
write 3991 FBFFFDF9
write 3992 3561003C
write 3993 FBFFFE20
write 3994 78020001
write 3995 35610054
write 3996 34030010
write 3997 38422628
write 3998 FBFFFE58
write 3999 2961000C
write 399a 34020001
write 399b FBFFFE2E
write 399c 34010024
write 399d 34020001
write 399e 34030001
write 399f FBFFFE76
write 39a0 2B9D0004
write 39a1 2B8B0008
write 39a2 379C0008
write 39a3 C3A00000
write 39a4 379CFFF8
write 39a5 5B8B0008
write 39a6 5B9D0004
write 39a7 B8205800
write 39a8 34010005
write 39a9 59610018
write 39aa 3801FFFA
write 39ab 5961001C
write 39ac 34010001
write 39ad 59610014
write 39ae 3801FDE8
write 39af 59610010
write 39b0 3401044C
write 39b1 59610008
write 39b2 3401001E
write 39b3 59610004
write 39b4 340104B0
write 39b5 59610034
write 39b6 340103E8
write 39b7 5961002C
write 39b8 34010064
write 39b9 59610030
write 39ba 78010001
write 39bb 382151C4
write 39bc 28210000
write 39bd 59630074
write 39be 59620070
write 39bf C8611800
write 39c0 59630080
write 39c1 35610004
write 39c2 5960007C
write 39c3 FBFFFDC7
write 39c4 35610028
write 39c5 FBFFFDEE
write 39c6 2B9D0004
write 39c7 2B8B0008
write 39c8 379C0008
write 39c9 C3A00000
write 39ca 379CFFF8
write 39cb 5B8B0008
write 39cc 5B9D0004
write 39cd B8205800
write 39ce 58200044
write 39cf 58200040
write 39d0 3401FFFF
write 39d1 59610048
write 39d2 5961004C
write 39d3 59610050
write 39d4 59610054
write 39d5 59600058
write 39d6 35610004
write 39d7 5960005C
write 39d8 59600060
write 39d9 59600068
write 39da 5960006C
write 39db 59600078
write 39dc FBFFFDAE
write 39dd 35610028
write 39de FBFFFDD5
write 39df 29610070
write 39e0 34020001
write 39e1 FBFFFDE8
write 39e2 29610074
write 39e3 34020001
write 39e4 FBFFFDE5
write 39e5 34010004
write 39e6 34020001
write 39e7 34030001
write 39e8 FBFFFE3C
write 39e9 2B9D0004
write 39ea 2B8B0008
write 39eb 379C0008
write 39ec C3A00000
write 39ed 379CFFFC
write 39ee 5B9D0004
write 39ef 28210074
write 39f0 34020000
write 39f1 FBFFFDD8
write 39f2 2B9D0004
write 39f3 379C0004
write 39f4 C3A00000
write 39f5 379CFFF0
write 39f6 5B8B0010
write 39f7 5B8C000C
write 39f8 5B8D0008
write 39f9 5B9D0004
write 39fa B8205800
write 39fb 28210070
write 39fc 5C610002
write 39fd 59620048
write 39fe 29610074
write 39ff 5C610002
write 3a00 5962004C
write 3a01 29630048
write 3a02 34010000
write 3a03 4803006D
write 3a04 2962004C
write 3a05 4802006B
write 3a06 29610050
write 3a07 48010006
write 3a08 4C610005
write 3a09 29630040
write 3a0a 78010040
write 3a0b B4610800
write 3a0c 59610040
write 3a0d 29610054
write 3a0e 48010006
write 3a0f 4C410005
write 3a10 29620044
write 3a11 78010040
write 3a12 B4410800
write 3a13 59610044
write 3a14 29620048
write 3a15 296C0040
write 3a16 2961004C
write 3a17 59620050
write 3a18 B44C6000
write 3a19 29620044
write 3a1a 59610054
write 3a1b C9826000
write 3a1c C9816000
write 3a1d 29610038
write 3a1e 44200006
write 3a1f 218C3FFF
write 3a20 21812000
write 3a21 44200003
write 3a22 3401C000
write 3a23 B9816000
write 3a24 B9801000
write 3a25 35610004
write 3a26 FBFFFD47
write 3a27 29620080
write 3a28 78030001
write 3a29 38635124
write 3a2a 2042000F
write 3a2b B8206800
write 3a2c 3C420010
write 3a2d 28610000
write 3a2e 21A3FFFF
write 3a2f B8621000
write 3a30 58220024
write 3a31 29630040
write 3a32 29620048
write 3a33 34010005
write 3a34 B4621000
write 3a35 34030000
write 3a36 FBFFFDEE
write 3a37 29630044
write 3a38 2962004C
write 3a39 34010002
write 3a3a B4621000
write 3a3b 34030000
write 3a3c FBFFFDE8
write 3a3d 34010001
write 3a3e B9801000
write 3a3f 34030000
write 3a40 FBFFFDE4
write 3a41 29620078
write 3a42 34030000
write 3a43 34410001
write 3a44 59610078
write 3a45 34010006
write 3a46 FBFFFDDE
write 3a47 34010000
write 3a48 B9A01000
write 3a49 34030001
write 3a4a FBFFFDDA
write 3a4b 78020001
write 3a4c 3401FFFF
write 3a4d 384223E8
write 3a4e 5961004C
write 3a4f 59610048
write 3a50 29630040
write 3a51 28410000
write 3a52 4C23000A
write 3a53 29620044
write 3a54 4C220008
write 3a55 78040001
write 3a56 388423EC
write 3a57 28810000
write 3a58 B4611800
write 3a59 B4410800
write 3a5a 59630040
write 3a5b 59610044
write 3a5c 29610038
write 3a5d 4420000F
write 3a5e 2961006C
write 3a5f 29620068
write 3a60 4C220006
write 3a61 34210001
write 3a62 5961006C
write 3a63 29610040
write 3a64 34210001
write 3a65 E0000006
write 3a66 4C410006
write 3a67 3421FFFF
write 3a68 5961006C
write 3a69 29610040
write 3a6a 3421FFFF
write 3a6b 59610040
write 3a6c 35610028
write 3a6d B9801000
write 3a6e FBFFFD20
write 3a6f 7C210000
write 3a70 2B9D0004
write 3a71 2B8B0010
write 3a72 2B8C000C
write 3a73 2B8D0008
write 3a74 379C0010
write 3a75 C3A00000
write 3a76 58220068
write 3a77 34010000
write 3a78 C3A00000
write 3a79 28220068
write 3a7a 2821006C
write 3a7b FC410800
write 3a7c C3A00000
write 3a7d 58220004
write 3a7e 5820001C
write 3a7f 58230008
write 3a80 5820000C
write 3a81 58200010
write 3a82 58200000
write 3a83 C3A00000
write 3a84 379CFFFC
write 3a85 5B9D0004
write 3a86 34020001
write 3a87 58220000
write 3a88 58200014
write 3a89 5820001C
write 3a8a 5820000C
write 3a8b 58200010
write 3a8c 28210004
write 3a8d FBFFFD3C
write 3a8e 78010001
write 3a8f 382151C4
write 3a90 28210000
write 3a91 34020001
write 3a92 FBFFFD37
write 3a93 2B9D0004
write 3a94 379C0004
write 3a95 C3A00000
write 3a96 379CFFB0
write 3a97 5B8B0010
write 3a98 5B8C000C
write 3a99 5B8D0008
write 3a9a 5B9D0004
write 3a9b B8205800
write 3a9c B8406000
write 3a9d B8606800
write 3a9e 37810014
write 3a9f 34020000
write 3aa0 34030040
write 3aa1 F8000565
write 3aa2 3401C000
write 3aa3 78040001
write 3aa4 5B810020
write 3aa5 388451C4
write 3aa6 34014000
write 3aa7 5B810044
write 3aa8 28810000
write 3aa9 5DA10005
write 3aaa 78030001
write 3aab 386330AC
write 3aac 586C0000
write 3aad E0000027
write 3aae 3DAD0005
write 3aaf B56D5800
write 3ab0 29610000
write 3ab1 44200023
write 3ab2 78030001
write 3ab3 386330AC
write 3ab4 28610000
write 3ab5 29620010
write 3ab6 C82C0800
write 3ab7 20213FFF
write 3ab8 1423000C
write 3ab9 5C400007
write 3aba 3C630002
write 3abb 5961000C
write 3abc 34010001
write 3abd 59630014
write 3abe 59610010
write 3abf E0000015
write 3ac0 2964000C
write 3ac1 34420001
write 3ac2 B4240800
write 3ac3 29640014
write 3ac4 B4641800
write 3ac5 3C630002
write 3ac6 37840050
write 3ac7 B4831800
write 3ac8 2863FFC4
write 3ac9 59620010
write 3aca B4230800
write 3acb 29630008
write 3acc 5961000C
write 3acd 5C430007
write 3ace F800040C
write 3acf 59610018
write 3ad0 34010001
write 3ad1 5961001C
write 3ad2 5960000C
write 3ad3 59600010
write 3ad4 34010000
write 3ad5 2B9D0004
write 3ad6 2B8B0010
write 3ad7 2B8C000C
write 3ad8 2B8D0008
write 3ad9 379C0050
write 3ada C3A00000
write 3adb 78030001
write 3adc 38635124
write 3add 5C400009
write 3ade 28620000
write 3adf 34040100
write 3ae0 BC810800
write 3ae1 28430010
write 3ae2 2021FFFF
write 3ae3 A4200800
write 3ae4 A0230800
write 3ae5 E0000007
write 3ae6 28620000
write 3ae7 34040100
write 3ae8 BC810800
write 3ae9 28430010
write 3aea 2021FFFF
write 3aeb B8230800
write 3aec 58410010
write 3aed C3A00000
write 3aee 379CFFEC
write 3aef 5B8B000C
write 3af0 5B8C0008
write 3af1 5B9D0004
write 3af2 780C0001
write 3af3 B8405800
write 3af4 398C4F5C
write 3af5 44200007
write 3af6 342CFFFF
write 3af7 098C008C
write 3af8 78010001
write 3af9 38214E58
write 3afa 358C0190
write 3afb B5816000
write 3afc 1562001F
write 3afd 37810010
write 3afe 480B000B
write 3aff 01630012
write 3b00 3C42000E
write 3b01 B8431000
write 3b02 5B820010
write 3b03 3D62000E
write 3b04 5B820014
write 3b05 34021F40
write 3b06 FBFFE1B5
write 3b07 2B810014
write 3b08 E0000009
write 3b09 0962C000
write 3b0a 5B820014
write 3b0b 1442001F
write 3b0c 5B820010
write 3b0d 34021F40
write 3b0e FBFFE1AD
write 3b0f 2B810014
write 3b10 C8010800
write 3b11 0022001F
write 3b12 B4411000
write 3b13 14420001
write 3b14 B9800800
write 3b15 FBFFFF61
write 3b16 78010001
write 3b17 38214E58
write 3b18 582B0014
write 3b19 2B9D0004
write 3b1a 2B8B000C
write 3b1b 2B8C0008
write 3b1c 379C0014
write 3b1d C3A00000
write 3b1e 379CFFEC
write 3b1f 5B8B0014
write 3b20 5B8C0010
write 3b21 5B8D000C
write 3b22 5B8E0008
write 3b23 5B9D0004
write 3b24 780C0001
write 3b25 780D0001
write 3b26 B8207000
write 3b27 340B0000
write 3b28 398C51C4
write 3b29 39AD5118
write 3b2a E000000A
write 3b2b 29A10000
write 3b2c 942B0800
write 3b2d 20210001
write 3b2e 44200005
write 3b2f 35620015
write 3b30 3C420005
write 3b31 B5C20800
write 3b32 FBFFFF52
write 3b33 356B0001
write 3b34 29810000
write 3b35 482BFFF6
write 3b36 2B9D0004
write 3b37 2B8B0014
write 3b38 2B8C0010
write 3b39 2B8D000C
write 3b3a 2B8E0008
write 3b3b 379C0014
write 3b3c C3A00000
write 3b3d 379CFFB8
write 3b3e 5B8B0044
write 3b3f 5B8C0040
write 3b40 5B8D003C
write 3b41 5B8E0038
write 3b42 5B8F0034
write 3b43 5B900030
write 3b44 5B91002C
write 3b45 5B920028
write 3b46 5B930024
write 3b47 5B940020
write 3b48 5B95001C
write 3b49 5B960018
write 3b4a 5B970014
write 3b4b 5B980010
write 3b4c 5B99000C
write 3b4d 5B9B0008
write 3b4e 5B9D0004
write 3b4f 78010001
write 3b50 78190001
write 3b51 382123D8
write 3b52 780B0001
write 3b53 78170001
write 3b54 780F0001
write 3b55 78110001
write 3b56 78140001
write 3b57 780E0001
write 3b58 78160001
write 3b59 78130001
write 3b5a 3B395124
write 3b5b 283B0000
write 3b5c 396B4E58
write 3b5d 34180009
write 3b5e 3AF7263C
write 3b5f 340C0001
write 3b60 34120003
write 3b61 39EF4EEC
write 3b62 3A314F5C
write 3b63 3A944E70
write 3b64 39CE51C4
write 3b65 3AD650F8
write 3b66 3A7351C0
write 3b67 E0000096
write 3b68 2841005C
write 3b69 5B810048
write 3b6a 2B8D0048
write 3b6b 2B900048
write 3b6c 29610004
write 3b6d 01AD0018
write 3b6e A21B8000
write 3b6f 3421FFFF
write 3b70 21AD007F
write 3b71 54380054
write 3b72 3C210002
write 3b73 B6E10800
write 3b74 28210000
write 3b75 C0200000
write 3b76 29610048
write 3b77 58410020
write 3b78 29610120
write 3b79 2963011C
write 3b7a B4610800
write 3b7b 0023001F
write 3b7c B4610800
write 3b7d 14210001
write 3b7e 58410024
write 3b7f 29C10000
write 3b80 34020001
write 3b81 FBFFFC48
write 3b82 FBFFF39E
write 3b83 34210032
write 3b84 59610008
write 3b85 3401000A
write 3b86 E000000E
write 3b87 29750008
write 3b88 FBFFF398
write 3b89 CAA10800
write 3b8a 4C20003B
write 3b8b 29610000
write 3b8c 5C2C000D
write 3b8d E000002E
write 3b8e 29C10000
write 3b8f 34020000
write 3b90 FBFFFC39
write 3b91 B9E00800
write 3b92 FBFFFD69
write 3b93 34010002
write 3b94 59610004
write 3b95 E0000030
write 3b96 B9E00800
write 3b97 FBFFFD7A
write 3b98 4420002D
write 3b99 59720004
write 3b9a E000002B
write 3b9b BA800800
write 3b9c FBFFFDE9
write 3b9d 34010004
write 3b9e E3FFFFF6
write 3b9f 29610064
write 3ba0 44200025
write 3ba1 29610068
write 3ba2 44200023
write 3ba3 29610000
write 3ba4 5C320009
write 3ba5 34010005
write 3ba6 E3FFFFEE
write 3ba7 BA200800
write 3ba8 FBFFFE22
write 3ba9 34010006
write 3baa E3FFFFEA
write 3bab 2961013C
write 3bac 44200019
write 3bad B9600800
write 3bae FBFFFF70
write 3baf 34010008
write 3bb0 E3FFFFE4
write 3bb1 29610064
write 3bb2 4420000F
write 3bb3 29610000
write 3bb4 5C2C0009
write 3bb5 B9E00800
write 3bb6 FBFFFD5B
write 3bb7 5C200006
write 3bb8 29610010
write 3bb9 34210001
write 3bba 59610010
write 3bbb 596C0004
write 3bbc E0000009
write 3bbd 29610000
write 3bbe 5C320007
write 3bbf 2961013C
write 3bc0 5C200005
write 3bc1 29610010
write 3bc2 34210001
write 3bc3 59610010
write 3bc4 59780004
write 3bc5 29610000
write 3bc6 5C2C000B
write 3bc7 29610004
write 3bc8 34020008
write 3bc9 54220008
write 3bca BD810800
write 3bcb 2021017C
write 3bcc 44200005
write 3bcd B9E00800
write 3bce BA001000
write 3bcf B9A01800
write 3bd0 FBFFFC90
write 3bd1 29610004
write 3bd2 34020008
write 3bd3 54220008
write 3bd4 BD810800
write 3bd5 20210170
write 3bd6 44200005
write 3bd7 BA800800
write 3bd8 BA001000
write 3bd9 B9A01800
write 3bda FBFFFD54
write 3bdb 29620004
write 3bdc 34010006
write 3bdd 5C410005
write 3bde BA200800
write 3bdf BA001000
write 3be0 B9A01800
write 3be1 FBFFFE14
write 3be2 29620004
write 3be3 34010008
write 3be4 5C410019
write 3be5 29610000
write 3be6 5C320011
write 3be7 BA200800
write 3be8 BA001000
write 3be9 B9A01800
write 3bea FBFFFE0B
write 3beb 34150000
write 3bec E0000008
write 3bed 0AA1008C
write 3bee BA001000
write 3bef B9A01800
write 3bf0 34210190
write 3bf1 B5610800
write 3bf2 FBFFFE03
write 3bf3 36B50001
write 3bf4 2A610000
write 3bf5 3421FFFF
write 3bf6 4835FFF7
write 3bf7 29C10000
write 3bf8 49A10005
write 3bf9 BAC00800
write 3bfa BA001000
write 3bfb B9A01800
write 3bfc FBFFFE9A
write 3bfd 2B220000
write 3bfe 78030002
write 3bff 28410060
write 3c00 A0230800
write 3c01 4420FF67
write 3c02 78010001
write 3c03 38214E54
write 3c04 28220000
write 3c05 34420001
write 3c06 58220000
write 3c07 34010001
write 3c08 D0410000
write 3c09 2B9D0004
write 3c0a 2B8B0044
write 3c0b 2B8C0040
write 3c0c 2B8D003C
write 3c0d 2B8E0038
write 3c0e 2B8F0034
write 3c0f 2B900030
write 3c10 2B91002C
write 3c11 2B920028
write 3c12 2B930024
write 3c13 2B940020
write 3c14 2B95001C
write 3c15 2B960018
write 3c16 2B970014
write 3c17 2B980010
write 3c18 2B99000C
write 3c19 2B9B0008
write 3c1a 379C0048
write 3c1b C3A00000
write 3c1c 379CFFD4
write 3c1d 5B8B0024
write 3c1e 5B8C0020
write 3c1f 5B8D001C
write 3c20 5B8E0018
write 3c21 5B8F0014
write 3c22 5B900010
write 3c23 5B91000C
write 3c24 5B920008
write 3c25 5B9D0004
write 3c26 B8205800
write 3c27 B8408000
write 3c28 5B830028
write 3c29 FBFFC44B
write 3c2a 78010001
write 3c2b 382151E0
write 3c2c 28240000
write 3c2d 78010001
write 3c2e 38215124
write 3c2f 58240000
write 3c30 78010001
write 3c31 28820000
write 3c32 3821512C
write 3c33 28250000
write 3c34 78010001
write 3c35 38215128
write 3c36 00460008
write 3c37 58250000
write 3c38 78010001
write 3c39 382151C4
write 3c3a 20C6003F
write 3c3b 00420010
write 3c3c 58260000
write 3c3d 78010001
write 3c3e 382151C0
write 3c3f 20420007
write 3c40 58220000
write 3c41 78010001
write 3c42 38214E58
write 3c43 582B0000
write 3c44 58200010
write 3c45 58800020
write 3c46 58800024
write 3c47 58800000
write 3c48 58800018
write 3c49 58800014
write 3c4a 58800004
write 3c4b 78080001
write 3c4c 58800010
write 3c4d 340703E8
write 3c4e 390823F0
write 3c4f 58870028
write 3c50 29070000
write 3c51 58A0001C
write 3c52 2B830028
write 3c53 58A70000
write 3c54 34050001
write 3c55 5D65000E
write 3c56 28810004
write 3c57 20210002
write 3c58 44200006
write 3c59 78010001
write 3c5a 38214EEC
write 3c5b B4461000
write 3c5c FBFFFBD7
write 3c5d E000000B
write 3c5e 78020001
write 3c5f 34010000
write 3c60 384220F4
write 3c61 FBFFC426
write 3c62 E0000061
write 3c63 34020004
write 3c64 5D620004
write 3c65 34020007
write 3c66 58220004
write 3c67 E0000008
write 3c68 78010001
write 3c69 38214E58
write 3c6a 34020009
write 3c6b 58220004
write 3c6c 34010003
write 3c6d BA001000
write 3c6e 45610004
write 3c6f 78010001
write 3c70 382151C4
write 3c71 28220000
write 3c72 78010001
write 3c73 38214E70
write 3c74 780D0001
write 3c75 FBFFFCA6
write 3c76 39AD51C4
write 3c77 29A30000
write 3c78 78010001
write 3c79 38214F5C
write 3c7a BA001000
write 3c7b 780F0001
write 3c7c 780E0001
write 3c7d FBFFFD27
write 3c7e 340C0000
write 3c7f 39EF51C0
write 3c80 39CE4E58
write 3c81 34120001
write 3c82 E000000C
write 3c83 0991008C
write 3c84 29A30000
write 3c85 BA001000
write 3c86 36210190
write 3c87 34630001
write 3c88 B46C1800
write 3c89 B5C10800
write 3c8a B5D18800
write 3c8b FBFFFD19
write 3c8c 358C0001
write 3c8d 5A320188
write 3c8e 29E10000
write 3c8f 3421FFFF
write 3c90 482CFFF3
write 3c91 34010002
write 3c92 5D610006
write 3c93 78010001
write 3c94 38215128
write 3c95 28210000
write 3c96 34020006
write 3c97 5822001C
write 3c98 780E0001
write 3c99 780D0001
write 3c9a 340C0000
write 3c9b 39CE51C4
write 3c9c 39AD4E58
write 3c9d E0000008
write 3c9e 35810015
write 3c9f 3C210005
write 3ca0 B9801000
write 3ca1 B5A10800
write 3ca2 34030200
write 3ca3 FBFFFDDA
write 3ca4 358C0001
write 3ca5 29C40000
write 3ca6 488CFFF8
write 3ca7 78010001
write 3ca8 3D6B0002
write 3ca9 38212664
write 3caa 78050001
write 3cab B42B5800
write 3cac 38A551C0
write 3cad 29630000
write 3cae 28A50000
write 3caf 78020001
write 3cb0 34010000
write 3cb1 38422130
write 3cb2 FBFFC3D5
write 3cb3 78010001
write 3cb4 38215124
write 3cb5 28210000
write 3cb6 78020002
write 3cb7 E0000003
write 3cb8 2823005C
write 3cb9 5B83002C
write 3cba 28230060
write 3cbb A0621800
write 3cbc 4460FFFC
write 3cbd 34020001
write 3cbe 58220044
write 3cbf 28220018
write 3cc0 38420001
write 3cc1 58220018
write 3cc2 FBFFC3BB
write 3cc3 2B9D0004
write 3cc4 2B8B0024
write 3cc5 2B8C0020
write 3cc6 2B8D001C
write 3cc7 2B8E0018
write 3cc8 2B8F0014
write 3cc9 2B900010
write 3cca 2B91000C
write 3ccb 2B920008
write 3ccc 379C002C
write 3ccd C3A00000
write 3cce 379CFFFC
write 3ccf 5B9D0004
write 3cd0 78020001
write 3cd1 38424E58
write 3cd2 B8201800
write 3cd3 28410004
write 3cd4 64640000
write 3cd5 7C210008
write 3cd6 B8810800
write 3cd7 44200006
write 3cd8 78020001
write 3cd9 34010000
write 3cda 38422164
write 3cdb FBFFC3AC
write 3cdc E0000006
write 3cdd 3461FFFF
write 3cde 0821008C
write 3cdf 34210190
write 3ce0 B4410800
write 3ce1 FBFFFCE9
write 3ce2 2B9D0004
write 3ce3 379C0004
write 3ce4 C3A00000
write 3ce5 379CFFFC
write 3ce6 5B9D0004
write 3ce7 44200008
write 3ce8 3421FFFF
write 3ce9 0821008C
write 3cea 78020001
write 3ceb 38424E58
write 3cec 34210190
write 3ced B4220800
write 3cee FBFFFCFF
write 3cef 2B9D0004
write 3cf0 379C0004
write 3cf1 C3A00000
write 3cf2 78020001
write 3cf3 B8201800
write 3cf4 38424E58
write 3cf5 5C200004
write 3cf6 28410004
write 3cf7 64210008
write 3cf8 C3A00000
write 3cf9 28450004
write 3cfa 34040008
write 3cfb 34010000
write 3cfc 5CA40006
write 3cfd 3463FFFF
write 3cfe 0863008C
write 3cff B4431000
write 3d00 284101C8
write 3d01 7C210000
write 3d02 C3A00000
write 3d03 379CFFE8
write 3d04 5B8B0018
write 3d05 5B8C0014
write 3d06 5B8D0010
write 3d07 5B8E000C
write 3d08 5B8F0008
write 3d09 5B9D0004
write 3d0a 3403FFFF
write 3d0b B8407800
write 3d0c 5C230016
write 3d0d 34010000
write 3d0e 780C0001
write 3d0f 780D0001
write 3d10 FBFFFFF3
write 3d11 340B0000
write 3d12 398C51C0
write 3d13 39AD4E58
write 3d14 340E0004
write 3d15 E0000009
write 3d16 0961008C
write 3d17 B5A10800
write 3d18 28210188
write 3d19 5C2E0004
write 3d1a 35610001
write 3d1b B9E01000
write 3d1c FBFFFDD2
write 3d1d 356B0001
write 3d1e 29810000
write 3d1f 3421FFFF
write 3d20 482BFFF6
write 3d21 E0000002
write 3d22 FBFFFDCC
write 3d23 2B9D0004
write 3d24 2B8B0018
write 3d25 2B8C0014
write 3d26 2B8D0010
write 3d27 2B8E000C
write 3d28 2B8F0008
write 3d29 379C0018
write 3d2a C3A00000
write 3d2b 379CFFF0
write 3d2c 5B8B0010
write 3d2d 5B8C000C
write 3d2e 5B8D0008
write 3d2f 5B9D0004
write 3d30 780B0001
write 3d31 B8406800
write 3d32 B8606000
write 3d33 396B4F5C
write 3d34 44200007
write 3d35 342BFFFF
write 3d36 096B008C
write 3d37 78010001
write 3d38 38214E58
write 3d39 356B0190
write 3d3a B5615800
write 3d3b 45A0000B
write 3d3c 2962006C
write 3d3d 34041F40
write 3d3e 34030000
write 3d3f 3C420001
write 3d40 1441001F
write 3d41 F8000172
write 3d42 3C210012
write 3d43 0044000E
write 3d44 B8242000
write 3d45 59A40000
write 3d46 4580000B
write 3d47 29620068
write 3d48 34030000
write 3d49 34041F40
write 3d4a 3C420001
write 3d4b 1441001F
write 3d4c F8000167
write 3d4d 3C210012
write 3d4e 0042000E
write 3d4f B8221000
write 3d50 59820000
write 3d51 2B9D0004
write 3d52 2B8B0010
write 3d53 2B8C000C
write 3d54 2B8D0008
write 3d55 379C0010
write 3d56 C3A00000
write 3d57 379CFFF0
write 3d58 5B8B0010
write 3d59 5B8C000C
write 3d5a 5B8D0008
write 3d5b 5B9D0004
write 3d5c B8205800
write 3d5d B8406800
write 3d5e 78010001
write 3d5f 3D620005
write 3d60 38214E58
write 3d61 B4220800
write 3d62 282402B8
write 3d63 B8606000
write 3d64 4C800003
write 3d65 34844000
write 3d66 E0000004
write 3d67 34013FFF
write 3d68 4C240002
write 3d69 3484C000
write 3d6a 3C840001
write 3d6b 34010000
write 3d6c 20823FFE
write 3d6d 34030000
write 3d6e 34041F40
write 3d6f F8000144
write 3d70 3C210012
write 3d71 0044000E
write 3d72 B8242000
write 3d73 59A40000
write 3d74 4580000D
write 3d75 78010001
write 3d76 38215118
write 3d77 35630015
write 3d78 28220000
write 3d79 3C630005
write 3d7a 78010001
write 3d7b 38214E58
write 3d7c B4230800
write 3d7d 28210004
write 3d7e 94410800
write 3d7f 20210001
write 3d80 59810000
write 3d81 3D6B0005
write 3d82 78020001
write 3d83 38424E58
write 3d84 B44B1000
write 3d85 284102BC
write 3d86 2B9D0004
write 3d87 2B8B0010
write 3d88 2B8C000C
write 3d89 2B8D0008
write 3d8a 379C0010
write 3d8b C3A00000
write 3d8c 379CFFDC
write 3d8d 5B8B0024
write 3d8e 5B8C0020
write 3d8f 5B9D001C
write 3d90 78010001
write 3d91 38214E58
write 3d92 28220000
write 3d93 4C020019
write 3d94 78020001
write 3d95 38424E54
write 3d96 28430000
write 3d97 28240004
write 3d98 28250000
write 3d99 282600B0
write 3d9a 28270064
write 3d9b 282800FC
write 3d9c 282C013C
write 3d9d 282B0050
write 3d9e 282A0128
write 3d9f 282900D8
write 3da0 28220010
write 3da1 28210098
write 3da2 5B8C0004
write 3da3 5B820014
write 3da4 78020001
write 3da5 5B810018
write 3da6 38422194
write 3da7 34010000
write 3da8 5B8B0008
write 3da9 5B8A000C
write 3daa 5B890010
write 3dab FBFFC2DC
write 3dac 2B9D001C
write 3dad 2B8B0024
write 3dae 2B8C0020
write 3daf 379C0024
write 3db0 C3A00000
write 3db1 379CFFFC
write 3db2 5B9D0004
write 3db3 5C200004
write 3db4 78010001
write 3db5 38214F5C
write 3db6 E0000007
write 3db7 3421FFFF
write 3db8 0821008C
write 3db9 78020001
write 3dba 38424E58
write 3dbb 34210190
write 3dbc B4220800
write 3dbd FBFFFCBC
write 3dbe 2B9D0004
write 3dbf 379C0004
write 3dc0 C3A00000
write 3dc1 379CFFF0
write 3dc2 5B8B0010
write 3dc3 5B8C000C
write 3dc4 5B8D0008
write 3dc5 5B9D0004
write 3dc6 780D0001
write 3dc7 780C0001
write 3dc8 B8205800
write 3dc9 39AD4E58
write 3dca 398C5118
write 3dcb 44400010
write 3dcc 34020001
write 3dcd FBFFF9FC
write 3dce 35610015
write 3dcf 3C210005
write 3dd0 B5A10800
write 3dd1 FBFFFCB3
write 3dd2 29820000
write 3dd3 34010001
write 3dd4 BC2B0800
write 3dd5 B8220800
write 3dd6 78020001
write 3dd7 59810000
write 3dd8 38422210
write 3dd9 34010000
write 3dda E000000D
write 3ddb 34030001
write 3ddc 29840000
write 3ddd BC611800
write 3dde A4601800
write 3ddf A0641800
write 3de0 59830000
write 3de1 29A30174
write 3de2 44230002
write 3de3 FBFFF9E6
write 3de4 78020001
write 3de5 34010000
write 3de6 38422230
write 3de7 B9601800
write 3de8 FBFFC29F
write 3de9 2B9D0004
write 3dea 2B8B0010
write 3deb 2B8C000C
write 3dec 2B8D0008
write 3ded 379C0010
write 3dee C3A00000
write 3def 379CFFC0
write 3df0 5B8B0040
write 3df1 5B8C003C
write 3df2 5B8D0038
write 3df3 5B8E0034
write 3df4 5B8F0030
write 3df5 5B90002C
write 3df6 5B910028
write 3df7 5B920024
write 3df8 5B930020
write 3df9 5B94001C
write 3dfa 5B950018
write 3dfb 5B960014
write 3dfc 5B970010
write 3dfd 5B98000C
write 3dfe 5B990008
write 3dff 5B9D0004
write 3e00 78100001
write 3e01 780C0001
write 3e02 780D0001
write 3e03 78160001
write 3e04 78140001
write 3e05 78130001
write 3e06 78120001
write 3e07 78110001
write 3e08 340B0001
write 3e09 3A1051C0
write 3e0a 398C4E58
write 3e0b 340E0001
write 3e0c 39AD5124
write 3e0d 3AD62250
write 3e0e 34150002
write 3e0f 3A942298
write 3e10 34190003
write 3e11 3A7322C8
write 3e12 34180004
write 3e13 3A5222EC
write 3e14 3A312274
write 3e15 E0000056
write 3e16 3577FFFF
write 3e17 0AEF008C
write 3e18 B58F7800
write 3e19 29E10188
write 3e1a 442E0010
write 3e1b 29A10000
write 3e1c BDCB1000
write 3e1d 28210010
write 3e1e 202100FF
write 3e1f A0220800
write 3e20 5C20000A
write 3e21 BAC01000
write 3e22 B9601800
write 3e23 FBFFC264
write 3e24 B9600800
write 3e25 FBFFFEC0
write 3e26 B9600800
write 3e27 34020000
write 3e28 FBFFFCB3
write 3e29 59EE0188
write 3e2a 0AE1008C
write 3e2b B5817800
write 3e2c 29E30188
write 3e2d 44750017
write 3e2e 48750003
write 3e2f 5C6E003B
write 3e30 E0000004
write 3e31 4479001F
write 3e32 5C780038
write 3e33 E0000029
write 3e34 2981013C
write 3e35 44200035
write 3e36 29A10000
write 3e37 BDCB1000
write 3e38 28210010
write 3e39 202100FF
write 3e3a A0220800
write 3e3b 4420002F
write 3e3c 34010000
write 3e3d BA201000
write 3e3e B9601800
write 3e3f FBFFC248
write 3e40 B9600800
write 3e41 FBFFFE8D
write 3e42 59F50188
write 3e43 E0000027
write 3e44 29E101C8
write 3e45 44200025
write 3e46 29840014
write 3e47 34010000
write 3e48 BA801000
write 3e49 B9601800
write 3e4a FBFFC23D
write 3e4b 29820014
write 3e4c B9600800
write 3e4d FBFFFCA1
write 3e4e 59F90188
write 3e4f E000001B
write 3e50 34210190
write 3e51 B5810800
write 3e52 FBFFFC27
write 3e53 5C200017
write 3e54 BA601000
write 3e55 B9601800
write 3e56 FBFFC231
write 3e57 B9600800
write 3e58 34020001
write 3e59 FBFFFC82
write 3e5a 59F80188
write 3e5b E000000F
write 3e5c 2981013C
write 3e5d 44200003
write 3e5e 29E101C8
write 3e5f 5C20000B
write 3e60 0AF7008C
write 3e61 34010000
write 3e62 BA401000
write 3e63 B9601800
write 3e64 FBFFC223
write 3e65 B9600800
write 3e66 34020000
write 3e67 B597B800
write 3e68 FBFFFC73
write 3e69 5AEE0188
write 3e6a 356B0001
write 3e6b 2A010000
write 3e6c 482BFFAA
write 3e6d 34010000
write 3e6e 2B9D0004
write 3e6f 2B8B0040
write 3e70 2B8C003C
write 3e71 2B8D0038
write 3e72 2B8E0034
write 3e73 2B8F0030
write 3e74 2B90002C
write 3e75 2B910028
write 3e76 2B920024
write 3e77 2B930020
write 3e78 2B94001C
write 3e79 2B950018
write 3e7a 2B960014
write 3e7b 2B970010
write 3e7c 2B98000C
write 3e7d 2B990008
write 3e7e 379C0040
write 3e7f C3A00000
write 3e80 0821008C
write 3e81 78020001
write 3e82 38424E58
write 3e83 B4411000
write 3e84 28410188
write 3e85 28430188
write 3e86 34020004
write 3e87 7C210001
write 3e88 5C620002
write 3e89 38210002
write 3e8a C3A00000
write 3e8b 4C200005
write 3e8c 78010001
write 3e8d 38214E58
write 3e8e 28210050
write 3e8f C3A00000
write 3e90 78020001
write 3e91 38424E58
write 3e92 5C200003
write 3e93 28410128
write 3e94 C3A00000
write 3e95 3421FFFF
write 3e96 0821008C
write 3e97 B4411000
write 3e98 284101B4
write 3e99 C3A00000
write 3e9a 78030001
write 3e9b 38635124
write 3e9c 4C200007
write 3e9d 78010001
write 3e9e 38214E58
write 3e9f 58220050
write 3ea0 28610000
write 3ea1 58220020
write 3ea2 C3A00000
write 3ea3 2024000F
write 3ea4 28630000
write 3ea5 3C840010
write 3ea6 2045FFFF
write 3ea7 B8A42000
write 3ea8 58640024
write 3ea9 78030001
write 3eaa 38634E58
write 3eab 5C200003
write 3eac 58620128
write 3ead C3A00000
write 3eae 3421FFFF
write 3eaf 0821008C
write 3eb0 B4611800
write 3eb1 586201B4
write 3eb2 C3A00000
write 3eb3 2045FFFF
write 3eb4 00460010
write 3eb5 2088FFFF
write 3eb6 00890010
write 3eb7 89053800
write 3eb8 89064000
write 3eb9 89252800
write 3eba 00EA0010
write 3ebb 89263000
write 3ebc B5052800
write 3ebd B4AA2800
write 3ebe 50A80003
write 3ebf 78080001
write 3ec0 B4C83000
write 3ec1 88431000
write 3ec2 88812000
write 3ec3 00A10010
write 3ec4 3CA50010
write 3ec5 B4C13000
write 3ec6 20E7FFFF
write 3ec7 B4440800
write 3ec8 B4260800
write 3ec9 B4A71000
write 3eca C3A00000
write 3ecb 44600008
write 3ecc 34040020
write 3ecd C8832000
write 3ece 48800006
write 3ecf 1423001F
write 3ed0 C8041000
write 3ed1 94221000
write 3ed2 B8600800
write 3ed3 C3A00000
write 3ed4 BC242000
write 3ed5 80431000
write 3ed6 94231800
write 3ed7 B8821000
write 3ed8 B8600800
write 3ed9 E3FFFFFA
write 3eda 379CFFF8
write 3edb 5B8B0008
write 3edc 5B9D0004
write 3edd 44400022
write 3ede B8412000
write 3edf 3403000F
write 3ee0 5483000B
write 3ee1 78030001
write 3ee2 38632678
write 3ee3 3C210004
write 3ee4 B4621000
write 3ee5 B4410800
write 3ee6 40210000
write 3ee7 2B9D0004
write 3ee8 2B8B0008
write 3ee9 379C0008
write 3eea C3A00000
write 3eeb 340B0000
write 3eec 4C200003
write 3eed C8010800
write 3eee 340B0001
write 3eef 4C400003
write 3ef0 C8021000
write 3ef1 196B0001
write 3ef2 90C01800
write 3ef3 20630002
write 3ef4 44600008
write 3ef5 8C220800
write 3ef6 45600002
write 3ef7 C8010800
write 3ef8 2B9D0004
write 3ef9 2B8B0008
write 3efa 379C0008
write 3efb C3A00000
write 3efc 34030000
write 3efd F800004A
write 3efe E3FFFFF8
write 3eff 90000800
write 3f00 20210001
write 3f01 3C210001
write 3f02 D0010000
write 3f03 90E00800
write 3f04 BBA0F000
write 3f05 342100A0
write 3f06 C0200000
write 3f07 379CFFF8
write 3f08 5B8B0008
write 3f09 5B9D0004
write 3f0a 44400015
write 3f0b 340B0000
write 3f0c 4C200003
write 3f0d C8010800
write 3f0e 340B0001
write 3f0f 1443001F
write 3f10 90C02000
write 3f11 98621000
write 3f12 20840002
write 3f13 C8431000
write 3f14 44800008
write 3f15 C4220800
write 3f16 45600002
write 3f17 C8010800
write 3f18 2B9D0004
write 3f19 2B8B0008
write 3f1a 379C0008
write 3f1b C3A00000
write 3f1c 34030001
write 3f1d F800002A
write 3f1e E3FFFFF8
write 3f1f 90000800
write 3f20 20210001
write 3f21 3C210001
write 3f22 D0010000
write 3f23 90E00800
write 3f24 BBA0F000
write 3f25 342100A0
write 3f26 C0200000
write 3f27 379CFFFC
write 3f28 5B9D0004
write 3f29 44400006
write 3f2a 34030000
write 3f2b F800001C
write 3f2c 2B9D0004
write 3f2d 379C0004
write 3f2e C3A00000
write 3f2f 90000800
write 3f30 20210001
write 3f31 3C210001
write 3f32 D0010000
write 3f33 90E00800
write 3f34 BBA0F000
write 3f35 342100A0
write 3f36 C0200000
write 3f37 379CFFFC
write 3f38 5B9D0004
write 3f39 44400006
write 3f3a 34030001
write 3f3b F800000C
write 3f3c 2B9D0004
write 3f3d 379C0004
write 3f3e C3A00000
write 3f3f 90000800
write 3f40 20210001
write 3f41 3C210001
write 3f42 D0010000
write 3f43 90E00800
write 3f44 BBA0F000
write 3f45 342100A0
write 3f46 C0200000
write 3f47 F4222000
write 3f48 44800018
write 3f49 34040001
write 3f4a 4C40000B
write 3f4b 34050000
write 3f4c 54410003
write 3f4d C8220800
write 3f4e B8A42800
write 3f4f 00840001
write 3f50 00420001
write 3f51 5C80FFFB
write 3f52 5C600002
write 3f53 B8A00800
write 3f54 C3A00000
write 3f55 3C420001
write 3f56 3C840001
write 3f57 F4222800
write 3f58 7C860000
write 3f59 A0C52800
write 3f5a 44A00002
write 3f5b 4C40FFFA
write 3f5c 34050000
write 3f5d 4480FFF5
write 3f5e 34050000
write 3f5f E3FFFFED
write 3f60 34040001
write 3f61 34050000
write 3f62 E3FFFFEA
write 3f63 1422001F
write 3f64 98410800
write 3f65 C8220800
write 3f66 C3A00000
write 3f67 34060003
write 3f68 B8202000
write 3f69 B8402800
write 3f6a 50C3000C
write 3f6b B8413000
write 3f6c 20C60003
write 3f6d 5CC0000B
write 3f6e 34010003
write 3f6f 28860000
write 3f70 28A20000
write 3f71 5CC20005
write 3f72 3463FFFC
write 3f73 34840004
write 3f74 34A50004
write 3f75 5461FFFA
write 3f76 34010000
write 3f77 4460000E
write 3f78 40860000
write 3f79 40A10000
write 3f7a 3462FFFF
write 3f7b 44C10006
write 3f7c E000000A
write 3f7d 40860000
write 3f7e 40A10000
write 3f7f 3442FFFF
write 3f80 5CC10006
write 3f81 34840001
write 3f82 34A50001
write 3f83 5C40FFFA
write 3f84 34010000
write 3f85 C3A00000
write 3f86 C8C10800
write 3f87 C3A00000
write 3f88 3404000F
write 3f89 B8203800
write 3f8a B8403000
write 3f8b 5083002D
write 3f8c B8412000
write 3f8d 20840003
write 3f8e 5C80002B
write 3f8f B8402000
write 3f90 B8202800
write 3f91 B8603000
write 3f92 3407000F
write 3f93 28880000
write 3f94 34C6FFF0
write 3f95 58A80000
write 3f96 28880004
write 3f97 58A80004
write 3f98 28880008
write 3f99 58A80008
write 3f9a 2888000C
write 3f9b 34840010
write 3f9c 58A8000C
write 3f9d 34A50010
write 3f9e 54C7FFF5
write 3f9f 3463FFF0
write 3fa0 00660004
write 3fa1 2063000F
write 3fa2 34C60001
write 3fa3 3CC60004
write 3fa4 B4263800
write 3fa5 B4463000
write 3fa6 34020003
write 3fa7 50430011
write 3fa8 34020000
write 3fa9 34080003
write 3faa B4C22000
write 3fab 28850000
write 3fac B4E22000
write 3fad 34420004
write 3fae 58850000
write 3faf C8622000
write 3fb0 5488FFFA
write 3fb1 3463FFFC
write 3fb2 00620002
write 3fb3 20630003
write 3fb4 34420001
write 3fb5 3C420002
write 3fb6 B4E23800
write 3fb7 B4C23000
write 3fb8 44600008
write 3fb9 34020000
write 3fba B4C22000
write 3fbb 40850000
write 3fbc B4E22000
write 3fbd 34420001
write 3fbe 30850000
write 3fbf 5C43FFFB
write 3fc0 C3A00000
write 3fc1 B8203800
write 3fc2 B8403000
write 3fc3 5041000C
write 3fc4 B4432000
write 3fc5 5024000A
write 3fc6 4460003F
write 3fc7 B4231000
write 3fc8 3484FFFF
write 3fc9 40850000
write 3fca 3442FFFF
write 3fcb 3463FFFF
write 3fcc 30450000
write 3fcd 5C60FFFB
write 3fce C3A00000
write 3fcf 3404000F
write 3fd0 5083002D
write 3fd1 B8412000
write 3fd2 20840003
write 3fd3 5C80002B
write 3fd4 B8402000
write 3fd5 B8202800
write 3fd6 B8603000
write 3fd7 3407000F
write 3fd8 28880000
write 3fd9 34C6FFF0
write 3fda 58A80000
write 3fdb 28880004
write 3fdc 58A80004
write 3fdd 28880008
write 3fde 58A80008
write 3fdf 2888000C
write 3fe0 34840010
write 3fe1 58A8000C
write 3fe2 34A50010
write 3fe3 54C7FFF5
write 3fe4 3463FFF0
write 3fe5 00660004
write 3fe6 2063000F
write 3fe7 34C60001
write 3fe8 3CC60004
write 3fe9 B4263800
write 3fea B4463000
write 3feb 34020003
write 3fec 50430011
write 3fed 34020000
write 3fee 34080003
write 3fef B4C22000
write 3ff0 28850000
write 3ff1 B4E22000
write 3ff2 34420004
write 3ff3 58850000
write 3ff4 C8622000
write 3ff5 5488FFFA
write 3ff6 3463FFFC
write 3ff7 00620002
write 3ff8 20630003
write 3ff9 34420001
write 3ffa 3C420002
write 3ffb B4E23800
write 3ffc B4C23000
write 3ffd 44600008
write 3ffe 34020000
write 3fff B4C22000
write 4000 40850000
write 4001 B4E22000
write 4002 34420001
write 4003 30850000
write 4004 5C43FFFB
write 4005 C3A00000
write 4006 20250003
write 4007 B8202000
write 4008 44A0000B
write 4009 4460002C
write 400a 3463FFFF
write 400b 204600FF
write 400c E0000003
write 400d 44600028
write 400e 3463FFFF
write 400f 30860000
write 4010 34840001
write 4011 20850003
write 4012 5CA0FFFB
write 4013 34050003
write 4014 50A3001A
write 4015 204500FF
write 4016 3CA60008
write 4017 340A000F
write 4018 B8C52800
write 4019 3CA60010
write 401a B8804000
write 401b B8C53000
write 401c B8603800
write 401d B8802800
write 401e 3409000F
write 401f 546A0017
write 4020 34040000
write 4021 34070003
write 4022 B5042800
write 4023 34840004
write 4024 58A60000
write 4025 C8642800
write 4026 54A7FFFC
write 4027 3463FFFC
write 4028 00640002
write 4029 20630003
write 402a 34840001
write 402b 3C840002
write 402c B5044000
write 402d B9002000
write 402e 44600007
write 402f 204200FF
write 4030 34050000
write 4031 B4853000
write 4032 30C20000
write 4033 34A50001
write 4034 5C65FFFD
write 4035 C3A00000
write 4036 58A60000
write 4037 58A60004
write 4038 58A60008
write 4039 58A6000C
write 403a 34E7FFF0
write 403b 34A50010
write 403c 54E9FFFA
write 403d 3463FFF0
write 403e 00680004
write 403f 2063000F
write 4040 35080001
write 4041 3D080004
write 4042 B4884000
write 4043 34040003
write 4044 5464FFDC
write 4045 B9002000
write 4046 E3FFFFE8
write 4047 78030001
write 4048 386330B0
write 4049 28670000
write 404a B8204800
write 404b 34030000
write 404c 34060001
write 404d E0000009
write 404e 40840000
write 404f B4E44000
write 4050 41080001
write 4051 21080003
write 4052 45060012
write 4053 C8A40800
write 4054 5C200013
write 4055 44810012
write 4056 B5232800
write 4057 40A50000
write 4058 B4432000
write 4059 34630001
write 405a B4E54000
write 405b 41080001
write 405c 21080003
write 405d 5D06FFF1
write 405e 40840000
write 405f 34A50020
write 4060 B4E44000
write 4061 41080001
write 4062 21080003
write 4063 5D06FFF0
write 4064 34840020
write 4065 C8A40800
write 4066 4420FFEF
write 4067 C3A00000
write 4068 B8412800
write 4069 20A50003
write 406a B8403800
write 406b B8202000
write 406c 5CA00018
write 406d 78040001
write 406e 38842778
write 406f 28430000
write 4070 28880000
write 4071 78040001
write 4072 3884277C
write 4073 28870000
write 4074 A4603000
write 4075 B4682000
write 4076 A0C43000
write 4077 A0C73000
write 4078 B8202000
write 4079 5CC5000A
write 407a 58830000
write 407b 34420004
write 407c 28430000
write 407d 34840004
write 407e A4603000
write 407f B4682800
write 4080 A0C52800
write 4081 A0A72800
write 4082 44A0FFF8
write 4083 B8403800
write 4084 34030000
write 4085 B4E32800
write 4086 40A50000
write 4087 B4833000
write 4088 34630001
write 4089 30C50000
write 408a 5CA0FFFB
write 408b C3A00000
write 408c 20220003
write 408d 4440002C
write 408e 40230000
write 408f 34020000
write 4090 44600027
write 4091 B8201000
write 4092 E0000003
write 4093 40430000
write 4094 44600022
write 4095 34420001
write 4096 20430003
write 4097 5C60FFFC
write 4098 78040001
write 4099 38842778
write 409a 28430000
write 409b 28860000
write 409c 78040001
write 409d 3884277C
write 409e 28850000
write 409f A4602000
write 40a0 B4661800
write 40a1 A0641800
write 40a2 A0651800
write 40a3 5C600011
write 40a4 34420004
write 40a5 28430000
write 40a6 B4662000
write 40a7 A4601800
write 40a8 A0831800
write 40a9 A0651800
write 40aa 5C60000A
write 40ab 34420004
write 40ac 28430000
write 40ad B4662000
write 40ae A4601800
write 40af A0831800
write 40b0 A0651800
write 40b1 4460FFF3
write 40b2 E0000002
write 40b3 34420001
write 40b4 40430000
write 40b5 5C60FFFE
write 40b6 C8411000
write 40b7 B8400800
write 40b8 C3A00000
write 40b9 B8201000
write 40ba E3FFFFDE
write 40bb 34060000
write 40bc 44600017
write 40bd B8413800
write 40be 20E70003
write 40bf 3464FFFF
write 40c0 44E00015
write 40c1 40230000
write 40c2 40450000
write 40c3 5C65000F
write 40c4 34060000
write 40c5 4480000E
write 40c6 34210001
write 40c7 34420001
write 40c8 5C600004
write 40c9 E000000A
write 40ca 44800033
write 40cb 44600032
write 40cc 40230000
write 40cd 40450000
write 40ce 3484FFFF
write 40cf 34210001
write 40d0 34420001
write 40d1 4465FFF9
write 40d2 C8653000
write 40d3 B8C00800
write 40d4 C3A00000
write 40d5 B8202800
write 40d6 34010003
write 40d7 B8402000
write 40d8 50230028
write 40d9 28A10000
write 40da 28420000
write 40db 5C220025
write 40dc 3463FFFC
write 40dd B8E03000
write 40de 4460FFF5
write 40df 78020001
write 40e0 38422778
write 40e1 28490000
write 40e2 78020001
write 40e3 3842277C
write 40e4 28480000
write 40e5 A4201000
write 40e6 B4290800
write 40e7 A0220800
write 40e8 A0280800
write 40e9 34070003
write 40ea 5C20FFE9
write 40eb 34A50004
write 40ec 34840004
write 40ed 54670006
write 40ee B8A00800
write 40ef B8801000
write 40f0 44600014
write 40f1 3464FFFF
write 40f2 E3FFFFCF
write 40f3 28A10000
write 40f4 288A0000
write 40f5 B4293000
write 40f6 A4201000
write 40f7 A0C21000
write 40f8 A0481000
write 40f9 5C2A0007
write 40fa 3463FFFC
write 40fb 44600002
write 40fc 4440FFEF
write 40fd 34060000
write 40fe B8C00800
write 40ff C3A00000
write 4100 B8801000
write 4101 B8A00800
write 4102 3464FFFF
write 4103 E3FFFFBE
write 4104 40A30000
write 4105 40850000
write 4106 C8653000
write 4107 E3FFFFCC
write 4108 B8412000
write 4109 20840003
write 410a 74650003
write 410b 64840000
write 410c B8403000
write 410d A0852000
write 410e B8202800
write 410f 44800015
write 4110 78040001
write 4111 38842778
write 4112 28890000
write 4113 78040001
write 4114 3884277C
write 4115 28880000
write 4116 340A0003
write 4117 E0000006
write 4118 58A40000
write 4119 3463FFFC
write 411a 34A50004
write 411b 34420004
write 411c 51430007
write 411d 28440000
write 411e A4803800
write 411f B4893000
write 4120 A0E63000
write 4121 A0C83000
write 4122 44C0FFF6
write 4123 B8403000
write 4124 44600014
write 4125 40C20000
write 4126 3463FFFF
write 4127 34A40001
write 4128 30A20000
write 4129 44400009
write 412a 34C20001
write 412b 4460000E
write 412c 40450000
write 412d 3463FFFF
write 412e 34420001
write 412f 30850000
write 4130 34840001
write 4131 5CA0FFFA
write 4132 34020000
write 4133 44600007
write 4134 B4822800
write 4135 30A00000
write 4136 34420001
write 4137 5C62FFFD
write 4138 C3A00000
write 4139 C3A00000
write 413a C3A00000
write 413b 77727063
write 413c 2D76322E
write 413d 312D666F
write 413e 722D7772
write 413f 6E69632D
write 4140 32362D67
write 4141 32343564
write 4142 33656600
write 4143 4275696C
write 4144 74206F6E
write 4145 20536570
write 4146 20323820
write 4147 32303134
write 4148 2C203230
write 4149 3A35313A
write 414a 30390A00
write 414b 57522043
write 414c 6F72653A
write 414d 20737461
write 414e 7274696E
write 414f 67207570
write 4150 2E2E2E0A
write 4151 00000000
write 4152 556E6162
write 4153 6C652074
write 4154 6F206465
write 4155 7465726D
write 4156 696E6520
write 4157 4D414320
write 4158 61646472
write 4159 6573730A
write 415a 00000000
write 415b 4C6F6361
write 415c 6C204D41
write 415d 43206164
write 415e 64726573
write 415f 733A2025
write 4160 783A2578
write 4161 3A25783A
write 4162 25783A25
write 4163 783A2578
write 4164 0A000000
write 4165 77727531
write 4166 00000000
write 4167 4C696E6B
write 4168 2075702E
write 4169 0A000000
write 416a 4C696E6B
write 416b 20646F77
write 416c 6E2E0A00
write 416d 53746163
write 416e 6B206F76
write 416f 6572666C
write 4170 6F77210A
write 4171 00000000
write 4172 25750000
write 4173 25752575
write 4174 00000000
write 4175 0A0A5054
write 4176 50207374
write 4177 61747573
write 4178 3A200000
write 4179 25730000
write 417a 0A0A5379
write 417b 6E632069
write 417c 6E666F20
write 417d 6E6F7420
write 417e 76616C69
write 417f 640A0A00
write 4180 0A0A5379
write 4181 6E636872
write 4182 6F6E697A
write 4183 6174696F
write 4184 6E207374
write 4185 61747573
write 4186 3A0A0A00
write 4187 57522050
write 4188 54502043
write 4189 6F726520
write 418a 53796E63
write 418b 204D6F6E
write 418c 69746F72
write 418d 20762031
write 418e 2E300000
write 418f 45736320
write 4190 3D206578
write 4191 69740000
write 4192 0A0A5441
write 4193 49205469
write 4194 6D653A20
write 4195 20202020
write 4196 20202020
write 4197 20202020
write 4198 20202020
write 4199 20000000
write 419a 0A0A4C69
write 419b 6E6B2073
write 419c 74617475
write 419d 733A0000
write 419e 25733A20
write 419f 00000000
write 41a0 4C696E6B
write 41a1 20757020
write 41a2 20200000
write 41a3 4C696E6B
write 41a4 20646F77
write 41a5 6E200000
write 41a6 2852583A
write 41a7 2025642C
write 41a8 2054583A
write 41a9 20256429
write 41aa 2C206D6F
write 41ab 64653A20
write 41ac 00000000
write 41ad 5752204F
write 41ae 66660000
write 41af 436C6F63
write 41b0 6B206F66
write 41b1 66736574
write 41b2 3A202020
write 41b3 20202020
write 41b4 20202020
write 41b5 20202020
write 41b6 20200000
write 41b7 2532692E
write 41b8 25303969
write 41b9 20730000
write 41ba 25396920
write 41bb 6E730000
write 41bc 0A4F6E65
write 41bd 2D776179
write 41be 2064656C
write 41bf 61792061
write 41c0 76657261
write 41c1 6765643A
write 41c2 20202020
write 41c3 20202000
write 41c4 0A4F6273
write 41c5 65727665
write 41c6 64206472
write 41c7 6966743A
write 41c8 20202020
write 41c9 20202020
write 41ca 20202020
write 41cb 20202000
write 41cc 5752204D
write 41cd 61737465
write 41ce 72202000
write 41cf 57522053
write 41d0 6C617665
write 41d1 20202000
write 41d2 57522055
write 41d3 6E6B6E6F
write 41d4 776E2020
write 41d5 20000000
write 41d6 4C6F636B
write 41d7 65642020
write 41d8 00000000
write 41d9 4E6F4C6F
write 41da 636B2020
write 41db 00000000
write 41dc 43616C69
write 41dd 62726174
write 41de 65642020
write 41df 00000000
write 41e0 556E6361
write 41e1 6C696272
write 41e2 61746564
write 41e3 20200000
write 41e4 0A495076
write 41e5 343A2000
write 41e6 424F4F54
write 41e7 50207275
write 41e8 6E6E696E
write 41e9 67000000
write 41ea 25642E25
write 41eb 642E2564
write 41ec 2E256400
write 41ed 53657276
write 41ee 6F207374
write 41ef 6174653A
write 41f0 20202020
write 41f1 20202020
write 41f2 20202020
write 41f3 20202000
write 41f4 50686173
write 41f5 65207472
write 41f6 61636B69
write 41f7 6E673A20
write 41f8 20202020
write 41f9 20202020
write 41fa 20202000
write 41fb 4F4E0A00
write 41fc 4F46460A
write 41fd 00000000
write 41fe 53796E63
write 41ff 68726F6E
write 4200 697A6174
write 4201 696F6E20
write 4202 736F7572
write 4203 63653A20
write 4204 20202000
write 4205 41757820
write 4206 636C6F63
write 4207 6B207374
write 4208 61747573
write 4209 3A202020
write 420a 20202020
write 420b 20202000
write 420c 656E6162
write 420d 6C656400
write 420e 2C206C6F
write 420f 636B6564
write 4210 00000000
write 4211 0A54696D
write 4212 696E6720
write 4213 70617261
write 4214 6D657465
write 4215 72733A0A
write 4216 0A000000
write 4217 526F756E
write 4218 642D7472
write 4219 69702074
write 421a 696D6520
write 421b 286D7529
write 421c 3A202020
write 421d 20000000
write 421e 25732070
write 421f 730A0000
write 4220 4D617374
write 4221 65722D73
write 4222 6C617665
write 4223 2064656C
write 4224 61793A20
write 4225 20202020
write 4226 20000000
write 4227 4D617374
write 4228 65722050
write 4229 48592064
write 422a 656C6179
write 422b 733A2020
write 422c 20202020
write 422d 20000000
write 422e 54583A20
write 422f 25642070
write 4230 732C2052
write 4231 583A2025
write 4232 64207073
write 4233 0A000000
write 4234 536C6176
write 4235 65205048
write 4236 59206465
write 4237 6C617973
write 4238 3A202020
write 4239 20202020
write 423a 20000000
write 423b 546F7461
write 423c 6C206C69
write 423d 6E6B2061
write 423e 73796D6D
write 423f 65747279
write 4240 3A202020
write 4241 20000000
write 4242 25396420
write 4243 70730A00
write 4244 4361626C
write 4245 65207274
write 4246 74206465
write 4247 6C61793A
write 4248 20202020
write 4249 20202020
write 424a 20000000
write 424b 436C6F63
write 424c 6B206F66
write 424d 66736574
write 424e 3A202020
write 424f 20202020
write 4250 20202020
write 4251 20000000
write 4252 50686173
write 4253 65207365
write 4254 74706F69
write 4255 6E743A20
write 4256 20202020
write 4257 20202020
write 4258 20000000
write 4259 536B6577
write 425a 3A202020
write 425b 20202020
write 425c 20202020
write 425d 20202020
write 425e 20202020
write 425f 20000000
write 4260 4D616E75
write 4261 616C2070
write 4262 68617365
write 4263 2061646A
write 4264 7573746D
write 4265 656E743A
write 4266 20000000
write 4267 55706461
write 4268 74652063
write 4269 6F756E74
write 426a 65723A20
write 426b 20202020
write 426c 20202020
write 426d 20000000
write 426e 25396420
write 426f 0A000000
write 4270 2D2D0000
write 4271 6C6E6B3A
write 4272 25642072
write 4273 783A2564
write 4274 2074783A
write 4275 25642000
write 4276 6C6F636B
write 4277 3A256420
write 4278 00000000
write 4279 73763A25
write 427a 64200000
write 427b 73733A27
write 427c 25732720
write 427d 00000000
write 427e 6175783A
write 427f 25782000
write 4280 7365633A
write 4281 2564206E
write 4282 7365633A
write 4283 25642000
write 4284 6D753A25
write 4285 73200000
write 4286 646D733A
write 4287 25732000
write 4288 6474786D
write 4289 3A256420
write 428a 6472786D
write 428b 3A256420
write 428c 00000000
write 428d 64747873
write 428e 3A256420
write 428f 64727873
write 4290 3A256420
write 4291 00000000
write 4292 6173796D
write 4293 3A256420
write 4294 00000000
write 4295 63727474
write 4296 3A257320
write 4297 00000000
write 4298 636B6F3A
write 4299 25642000
write 429a 73657470
write 429b 3A256420
write 429c 00000000
write 429d 68643A25
write 429e 64206D64
write 429f 3A256420
write 42a0 61643A25
write 42a1 64200000
write 42a2 75636E74
write 42a3 3A256420
write 42a4 00000000
write 42a5 74656D70
write 42a6 3A202564
write 42a7 2E253034
write 42a8 64204300
write 42a9 64696167
write 42aa 2D66736D
write 42ab 2D312D25
write 42ac 733A2025
write 42ad 3039642E
write 42ae 25303364
write 42af 3A200000
write 42b0 454E5445
write 42b1 52202573
write 42b2 2C207061
write 42b3 636B6574
write 42b4 206C656E
write 42b5 2025690A
write 42b6 00000000
write 42b7 25733A20
write 42b8 7265656E
write 42b9 74657220
write 42ba 696E2025
write 42bb 69206D73
write 42bc 0A000000
write 42bd 4C454156
write 42be 45202573
write 42bf 20286E65
write 42c0 78743A20
write 42c1 25336920
write 42c2 696E2025
write 42c3 69206D73
write 42c4 290A0A00
write 42c5 52454356
write 42c6 20253032
write 42c7 64206279
write 42c8 74657320
write 42c9 61742025
write 42ca 642E2530
write 42cb 39642028
write 42cc 74797065
write 42cd 2025782C
write 42ce 20257329
write 42cf 0A000000
write 42d0 66736D20
write 42d1 666F7220
write 42d2 25733A20
write 42d3 4572726F
write 42d4 72202569
write 42d5 20696E20
write 42d6 25730A00
write 42d7 66736D3A
write 42d8 20556E6B
write 42d9 6E6F776E
write 42da 20737461
write 42db 74652066
write 42dc 6F722069
write 42dd 66616365
write 42de 2025730A
write 42df 00000000
write 42e0 70707369
write 42e1 00000000
write 42e2 25732D25
write 42e3 692D2573
write 42e4 3A200000
write 42e5 25733A20
write 42e6 6572726F
write 42e7 72207061
write 42e8 7273696E
write 42e9 67202225
write 42ea 73220A00
write 42eb 64696167
write 42ec 2D636F6E
write 42ed 66696700
write 42ee 64696167
write 42ef 2D657874
write 42f0 656E7369
write 42f1 6F6E0000
write 42f2 64696167
write 42f3 2D626D63
write 42f4 00000000
write 42f5 64696167
write 42f6 2D736572
write 42f7 766F0000
write 42f8 64696167
write 42f9 2D667261
write 42fa 6D657300
write 42fb 64696167
write 42fc 2D74696D
write 42fd 65000000
write 42fe 64696167
write 42ff 2D66736D
write 4300 00000000
write 4301 50505369
write 4302 20666F72
write 4303 20575250
write 4304 432E2043
write 4305 6F6D6D69
write 4306 74202573
write 4307 2C206275
write 4308 696C7420
write 4309 6F6E2053
write 430a 65702032
write 430b 35203230
write 430c 31340A00
write 430d 70707369
write 430e 2D763230
write 430f 31332E31
write 4310 312E312D
write 4311 312D6737
write 4312 36643664
write 4313 38330000
write 4314 4C6F636B
write 4315 696E6720
write 4316 504C4C00
write 4317 0A4C6F63
write 4318 6B207469
write 4319 6D656F75
write 431a 742E0000
write 431b 2E000000
write 431c 4C696E6B
write 431d 20646F77
write 431e 6E3A2050
write 431f 54502073
write 4320 746F700A
write 4321 00000000
write 4322 4C696E6B
write 4323 2075703A
write 4324 20505450
write 4325 20737461
write 4326 72740A00
write 4327 77723100
write 4328 25733A20
write 4329 256C690A
write 432a 00000000
write 432b 5761726E
write 432c 696E673A
write 432d 2025733A
write 432e 2063616E
write 432f 206E6F74
write 4330 2061646A
write 4331 75737420
write 4332 66726571
write 4333 5F70706D
write 4334 20256C69
write 4335 0A000000
write 4336 25733A20
write 4337 25396C75
write 4338 2E253039
write 4339 6C690A00
write 433a 25733A20
write 433b 736E743D
write 433c 25642C20
write 433d 7365633D
write 433e 25642C20
write 433f 6E736563
write 4340 3D25640A
write 4341 00000000
write 4342 696E6974
write 4343 69616C69
write 4344 7A696E67
write 4345 00000000
write 4346 6661756C
write 4347 74790000
write 4348 64697361
write 4349 626C6564
write 434a 00000000
write 434b 6C697374
write 434c 656E696E
write 434d 67000000
write 434e 756E6361
write 434f 6C696272
write 4350 61746564
write 4351 00000000
write 4352 736C6176
write 4353 65000000
write 4354 756E6361
write 4355 6C696272
write 4356 61746564
write 4357 2F77722D
write 4358 70726573
write 4359 656E7400
write 435a 6D617374
write 435b 65722F77
write 435c 722D6D2D
write 435d 6C6F636B
write 435e 00000000
write 435f 756E6361
write 4360 6C696272
write 4361 61746564
write 4362 2F77722D
write 4363 732D6C6F
write 4364 636B0000
write 4365 756E6361
write 4366 6C696272
write 4367 61746564
write 4368 2F77722D
write 4369 6C6F636B
write 436a 65640000
write 436b 77722D63
write 436c 616C6962
write 436d 72617469
write 436e 6F6E0000
write 436f 77722D63
write 4370 616C6962
write 4371 72617465
write 4372 64000000
write 4373 77722D72
write 4374 6573702D
write 4375 63616C69
write 4376 622D7265
write 4377 71000000
write 4378 77722D6C
write 4379 696E6B2D
write 437a 6F6E0000
write 437b 5432206F
write 437c 72205433
write 437d 20696E63
write 437e 6F727265
write 437f 63742C20
write 4380 64697363
write 4381 61726469
write 4382 6E672074
write 4383 75706C65
write 4384 0A000000
write 4385 54783D3E
write 4386 3E736361
write 4387 6C656450
write 4388 69636F73
write 4389 65636F6E
write 438a 64732E6D
write 438b 7362203D
write 438c 20307825
write 438d 780A0000
write 438e 54783D3E
write 438f 3E736361
write 4390 6C656450
write 4391 69636F73
write 4392 65636F6E
write 4393 64732E6C
write 4394 7362203D
write 4395 20307825
write 4396 780A0000
write 4397 52782066
write 4398 69786564
write 4399 2064656C
write 439a 6179203D
write 439b 2025640A
write 439c 00000000
write 439d 52783D3E
write 439e 3E736361
write 439f 6C656450
write 43a0 69636F73
write 43a1 65636F6E
write 43a2 64732E6D
write 43a3 7362203D
write 43a4 20307825
write 43a5 780A0000
write 43a6 52783D3E
write 43a7 3E736361
write 43a8 6C656450
write 43a9 69636F73
write 43aa 65636F6E
write 43ab 64732E6C
write 43ac 7362203D
write 43ad 20307825
write 43ae 780A0000
write 43af 4552524F
write 43b0 523A204E
write 43b1 65772063
write 43b2 6C617373
write 43b3 2025690A
write 43b4 00000000
write 43b5 4255473A
write 43b6 20547279
write 43b7 696E6720
write 43b8 746F2073
write 43b9 656E6420
write 43ba 696E7661
write 43bb 6C696420
write 43bc 77725F6D
write 43bd 7367206D
write 43be 6F64653D
write 43bf 25782069
write 43c0 643D2578
write 43c1 00000000
write 43c2 68616E64
write 43c3 6C652053
write 43c4 69676E61
write 43c5 6C696E67
write 43c6 206D7367
write 43c7 2C206661
write 43c8 696C6564
write 43c9 2C205468
write 43ca 69732069
write 43cb 73206E6F
write 43cc 74206F72
write 43cd 67616E69
write 43ce 7A617469
write 43cf 6F6E2065
write 43d0 7874656E
write 43d1 73696F6E
write 43d2 20544C56
write 43d3 203D2030
write 43d4 7825780A
write 43d5 00000000
write 43d6 68616E64
write 43d7 6C652053
write 43d8 69676E61
write 43d9 6C696E67
write 43da 206D7367
write 43db 2C206661
write 43dc 696C6564
write 43dd 2C206E6F
write 43de 74204345
write 43df 524E2773
write 43e0 204F5549
write 43e1 203D2030
write 43e2 7825780A
write 43e3 00000000
write 43e4 68616E64
write 43e5 6C652053
write 43e6 69676E61
write 43e7 6C696E67
write 43e8 206D7367
write 43e9 2C206661
write 43ea 696C6564
write 43eb 2C206E6F
write 43ec 74205768
write 43ed 69746520
write 43ee 52616262
write 43ef 6974206D
write 43f0 61676963
write 43f1 206E756D
write 43f2 62657220
write 43f3 3D203078
write 43f4 25780A00
write 43f5 68616E64
write 43f6 6C652053
write 43f7 69676E61
write 43f8 6C696E67
write 43f9 206D7367
write 43fa 2C206661
write 43fb 696C6564
write 43fc 2C206E6F
write 43fd 74207375
write 43fe 70706F72
write 43ff 74656420
write 4400 76657273
write 4401 696F6E20
write 4402 6E756D62
write 4403 6572203D
write 4404 20307825
write 4405 780A0000
write 4406 25732825
write 4407 6429204D
write 4408 65737361
write 4409 67652063
write 440a 616E2774
write 440b 20626520
write 440c 73656E74
write 440d 0A000000
write 440e 53454E54
write 440f 20253032
write 4410 64206279
write 4411 74657320
write 4412 61742025
write 4413 642E2530
write 4414 39642028
write 4415 2573290A
write 4416 00000000
write 4417 556E696E
write 4418 69746961
write 4419 6C697A65
write 441a 64000000
write 441b 4552524F
write 441c 523A2025
write 441d 733A2054
write 441e 696D6573
write 441f 74616D70
write 4420 73496E63
write 4421 6F727265
write 4422 63743A20
write 4423 25642025
write 4424 64202564
write 4425 2025640A
write 4426 00000000
write 4427 2573203D
write 4428 2025643A
write 4429 25643A25
write 442a 640A0000
write 442b 73657276
write 442c 6F3A7431
write 442d 00000000
write 442e 73657276
write 442f 6F3A7432
write 4430 00000000
write 4431 73657276
write 4432 6F3A7433
write 4433 00000000
write 4434 73657276
write 4435 6F3A7434
write 4436 00000000
write 4437 2D3E6D64
write 4438 656C6179
write 4439 00000000
write 443a 504C4C20
write 443b 4F75744F
write 443c 664C6F63
write 443d 6B2C2073
write 443e 686F756C
write 443f 64207265
write 4440 73746172
write 4441 74207379
write 4442 6E630A00
write 4443 77725F73
write 4444 6572766F
write 4445 20737461
write 4446 74653A20
write 4447 25730A00
write 4448 73657276
write 4449 6F3A6275
write 444a 73790A00
write 444b 53594E43
write 444c 5F534543
write 444d 00000000
write 444e 53594E43
write 444f 5F4E5345
write 4450 43000000
write 4451 53594E43
write 4452 5F504841
write 4453 53450000
write 4454 54524143
write 4455 4B5F5048
write 4456 41534500
write 4457 53594E43
write 4458 5F49444C
write 4459 45000000
write 445a 4F464653
write 445b 45545F53
write 445c 5441424C
write 445d 45000000
write 445e 25733A20
write 445f 63616E27
write 4460 7420696E
write 4461 69742065
write 4462 7874656E
write 4463 73696F6E
write 4464 0A000000
write 4465 636C6F63
write 4466 6B20636C
write 4467 61737320
write 4468 3D202564
write 4469 0A000000
write 446a 636C6F63
write 446b 6B206163
write 446c 63757261
write 446d 6379203D
write 446e 2025640A
write 446f 00000000
write 4470 70705F73
write 4471 6C617665
write 4472 203A2044
write 4473 656C6179
write 4474 20526573
write 4475 7020646F
write 4476 65736E27
write 4477 74206D61
write 4478 74636820
write 4479 44656C61
write 447a 79205265
write 447b 710A0000
write 447c 4E657720
write 447d 666F7265
write 447e 69676E20
write 447f 4D617374
write 4480 65722025
write 4481 69206164
write 4482 6465640A
write 4483 00000000
write 4484 4552524F
write 4485 523A2025
write 4486 733A2046
write 4487 6F6C6C6F
write 4488 77207570
write 4489 206D6573
write 448a 73616765
write 448b 20697320
write 448c 6E6F7420
write 448d 66726F6D
write 448e 20637572
write 448f 72656E74
write 4490 20706172
write 4491 656E740A
write 4492 00000000
write 4493 4552524F
write 4494 523A2025
write 4495 733A2053
write 4496 6C617665
write 4497 20776173
write 4498 206E6F74
write 4499 20776169
write 449a 74696E67
write 449b 20612066
write 449c 6F6C6C6F
write 449d 77207570
write 449e 206D6573
write 449f 73616765
write 44a0 0A000000
write 44a1 4552524F
write 44a2 523A2025
write 44a3 733A2053
write 44a4 65717565
write 44a5 6E636549
write 44a6 44202564
write 44a7 20646F65
write 44a8 736E2774
write 44a9 206D6174
write 44aa 6368206C
write 44ab 61737420
write 44ac 53796E63
write 44ad 206D6573
write 44ae 73616765
write 44af 2025640A
write 44b0 00000000
write 44b1 416E6E6F
write 44b2 756E6365
write 44b3 206D6573
write 44b4 73616765
write 44b5 2066726F
write 44b6 6D20616E
write 44b7 6F746865
write 44b8 7220666F
write 44b9 72656967
write 44ba 6E206D61
write 44bb 73746572
write 44bc 0A000000
write 44bd 25733A25
write 44be 693A2045
write 44bf 72726F72
write 44c0 20310A00
write 44c1 25733A25
write 44c2 693A2045
write 44c3 72726F72
write 44c4 20320A00
write 44c5 42657374
write 44c6 20666F72
write 44c7 6569676E
write 44c8 206D6173
write 44c9 74657220
write 44ca 69732025
write 44cb 692F2569
write 44cc 0A000000
write 44cd 25733A20
write 44ce 6572726F
write 44cf 720A0000
write 44d0 25733A20
write 44d1 70617373
write 44d2 6976650A
write 44d3 00000000
write 44d4 25733A20
write 44d5 6D617374
write 44d6 65720A00
write 44d7 4E657720
write 44d8 55544320
write 44d9 6F666673
write 44da 65743A20
write 44db 25690A00
write 44dc 25733A20
write 44dd 736C6176
write 44de 650A0000
write 44df 73796E63
write 44e0 00000000
write 44e1 64656C61
write 44e2 795F7265
write 44e3 71000000
write 44e4 7064656C
write 44e5 61795F72
write 44e6 65710000
write 44e7 7064656C
write 44e8 61795F72
write 44e9 65737000
write 44ea 64656C61
write 44eb 795F7265
write 44ec 73700000
write 44ed 7064656C
write 44ee 61795F72
write 44ef 6573705F
write 44f0 666F6C6C
write 44f1 6F775F75
write 44f2 70000000
write 44f3 616E6E6F
write 44f4 756E6365
write 44f5 00000000
write 44f6 7369676E
write 44f7 616C696E
write 44f8 67000000
write 44f9 6D616E61
write 44fa 67656D65
write 44fb 6E740000
write 44fc 4552524F
write 44fd 523A2042
write 44fe 55473A20
write 44ff 25732064
write 4500 6F65736E
write 4501 27742073
write 4502 7570706F
write 4503 7274206E
write 4504 65676174
write 4505 69766573
write 4506 0A000000
write 4507 4552524F
write 4508 523A204E
write 4509 65676174
write 450a 69766520
write 450b 76616C75
write 450c 65206361
write 450d 6E6E6F74
write 450e 20626520
write 450f 636F6E76
write 4510 65727465
write 4511 6420696E
write 4512 746F2074
write 4513 696D6573
write 4514 74616D70
write 4515 0A000000
write 4516 4552524F
write 4517 523A2074
write 4518 6F5F5469
write 4519 6D65496E
write 451a 7465726E
write 451b 616C3A20
write 451c 7365636F
write 451d 6E647320
write 451e 6669656C
write 451f 64206973
write 4520 20686967
write 4521 68657220
write 4522 7468616E
write 4523 20736967
write 4524 6E656420
write 4525 696E7465
write 4526 67657220
write 4527 28333262
write 4528 69747329
write 4529 0A000000
write 452a 2D000000
write 452b 25732564
write 452c 2E253039
write 452d 64000000
write 452e 6572726F
write 452f 7220696E
write 4530 20745F6F
write 4531 70732D3E
write 4532 73657276
write 4533 6F5F696E
write 4534 69740000
write 4535 496E6974
write 4536 69616C69
write 4537 7A65643A
write 4538 206F6273
write 4539 5F647269
write 453a 66742025
write 453b 690A0000
write 453c 636F7272
write 453d 65637469
write 453e 6F6E2066
write 453f 69656C64
write 4540 20313A20
write 4541 25730A00
write 4542 636F7272
write 4543 65637469
write 4544 6F6E2066
write 4545 69656C64
write 4546 20323A20
write 4547 25730A00
write 4548 54313A20
write 4549 25730A00
write 454a 54323A20
write 454b 25730A00
write 454c 54333A20
write 454d 25730A00
write 454e 54343A20
write 454f 25730A00
write 4550 4D617374
write 4551 65722074
write 4552 6F20736C
write 4553 6176653A
write 4554 2025730A
write 4555 00000000
write 4556 536C6176
write 4557 6520746F
write 4558 206D6173
write 4559 7465723A
write 455a 2025730A
write 455b 00000000
write 455c 4F6E652D
write 455d 77617920
write 455e 64656C61
write 455f 793A2025
write 4560 730A0000
write 4561 73657276
write 4562 6F206162
write 4563 6F727465
write 4564 642C2064
write 4565 656C6179
write 4566 20677265
write 4567 61746572
write 4568 20746861
write 4569 6E203120
write 456a 7365636F
write 456b 6E640A00
write 456c 73657276
write 456d 6F206162
write 456e 6F727465
write 456f 642C2064
write 4570 656C6179
write 4571 20256420
write 4572 6F722025
write 4573 64206772
write 4574 65617465
write 4575 72207468
write 4576 616E2063
write 4577 6F6E6669
write 4578 67757265
write 4579 64206D61
write 457a 78696D75
write 457b 6D202564
write 457c 0A000000
write 457d 5472696D
write 457e 20746F6F
write 457f 2D6C6F6E
write 4580 67206D70
write 4581 643A2025
write 4582 690A0000
write 4583 41667465
write 4584 72206176
write 4585 67282569
write 4586 292C206F
write 4587 6E652D77
write 4588 61792064
write 4589 656C6179
write 458a 3A202569
write 458b 0A000000
write 458c 4F666673
write 458d 65742066
write 458e 726F6D20
write 458f 6D617374
write 4590 65723A20
write 4591 20202020
write 4592 25730A00
write 4593 73657276
write 4594 6F206162
write 4595 6F727465
write 4596 642C206F
write 4597 66667365
write 4598 74206772
write 4599 65617465
write 459a 72207468
write 459b 616E2031
write 459c 20736563
write 459d 6F6E640A
write 459e 00000000
write 459f 73657276
write 45a0 6F206162
write 45a1 6F727465
write 45a2 642C206F
write 45a3 66667365
write 45a4 74206772
write 45a5 65617465
write 45a6 72207468
write 45a7 616E2063
write 45a8 6F6E6669
write 45a9 67757265
write 45aa 64206D61
write 45ab 78696D75
write 45ac 6D202564
write 45ad 0A000000
write 45ae 5472696D
write 45af 6D656420
write 45b0 64656C74
write 45b1 61202569
write 45b2 20746F20
write 45b3 25690A00
write 45b4 55736520
write 45b5 6F666D20
write 45b6 3D202539
write 45b7 690A0000
write 45b8 41667465
write 45b9 72206176
write 45ba 67282569
write 45bb 292C206D
write 45bc 61672025
write 45bd 39692061
write 45be 6E64206F
write 45bf 666D3A20
write 45c0 25396920
write 45c1 0A000000
write 45c2 4F6E652D
write 45c3 77617920
write 45c4 64656C61
write 45c5 79206176
write 45c6 65726167
write 45c7 65643A20
write 45c8 25730A00
write 45c9 4F666673
write 45ca 65742066
write 45cb 726F6D20
write 45cc 6D206176
write 45cd 65726167
write 45ce 65643A20
write 45cf 25730A00
write 45d0 4F627365
write 45d1 72766564
write 45d2 20647269
write 45d3 66743A20
write 45d4 2539690A
write 45d5 00000000
write 45d6 74696D65
write 45d7 6F757420
write 45d8 65787069
write 45d9 7265643A
write 45da 2025730A
write 45db 00000000
write 45dc 50505F54
write 45dd 4F5F4445
write 45de 4C415952
write 45df 45510000
write 45e0 50505F54
write 45e1 4F5F5359
write 45e2 4E430000
write 45e3 50505F54
write 45e4 4F5F414E
write 45e5 4E5F5245
write 45e6 43454950
write 45e7 54000000
write 45e8 50505F54
write 45e9 4F5F414E
write 45ea 4E5F494E
write 45eb 54455256
write 45ec 414C0000
write 45ed 50505F54
write 45ee 4F5F4641
write 45ef 554C5459
write 45f0 00000000
write 45f1 50505F54
write 45f2 4F5F4558
write 45f3 545F3000
write 45f4 50505F54
write 45f5 4F5F4558
write 45f6 545F3100
write 45f7 50505F54
write 45f8 4F5F4558
write 45f9 545F3200
write 45fa 536C6176
write 45fb 65204F6E
write 45fc 6C792C20
write 45fd 636C6F63
write 45fe 6B20636C
write 45ff 61737320
write 4600 73657420
write 4601 746F2032
write 4602 35350A00
write 4603 1B5B3125
write 4604 63000000
write 4605 436F6D6D
write 4606 616E6420
write 4607 22257322
write 4608 3A206572
write 4609 726F7220
write 460a 25640A00
write 460b 556E7265
write 460c 636F676E
write 460d 697A6564
write 460e 20636F6D
write 460f 6D616E64
write 4610 20222573
write 4611 222E0A00
write 4612 77726323
write 4613 20000000
write 4614 25630000
write 4615 456D7074
write 4616 7920696E
write 4617 69742073
write 4618 63726970
write 4619 742E2E2E
write 461a 0A000000
write 461b 65786563
write 461c 7574696E
write 461d 673A2025
write 461e 730A0000
write 461f 57522043
write 4620 6F726520
write 4621 6275696C
write 4622 643A2025
write 4623 7325730A
write 4624 00000000
write 4625 4275696C
write 4626 7420666F
write 4627 72202564
write 4628 206B4220
write 4629 52414D2C
write 462a 20737461
write 462b 636B2069
write 462c 73202564
write 462d 20627974
write 462e 65730A00
write 462f 5741524E
write 4630 494E473A
write 4631 20686172
write 4632 64776172
write 4633 65207361
write 4634 79732025
write 4635 696B4220
write 4636 3C3D2052
write 4637 414D203C
write 4638 2025696B
write 4639 420A0000
write 463a 76657200
write 463b 696E6974
write 463c 00000000
write 463d 636C0000
write 463e 73746174
write 463f 00000000
write 4640 73707300
write 4641 67707300
write 4642 25642025
write 4643 640A0000
write 4644 73746172
write 4645 74000000
write 4646 73746F70
write 4647 00000000
write 4648 73646163
write 4649 00000000
write 464a 67646163
write 464b 00000000
write 464c 706C6C00
write 464d 64657465
write 464e 63740000
write 464f 4E6F2053
write 4650 46502E0A
write 4651 00000000
write 4652 65726173
write 4653 65000000
write 4654 436F756C
write 4655 64206E6F
write 4656 74206572
write 4657 61736520
write 4658 44420A00
write 4659 61646400
write 465a 53465020
write 465b 44422069
write 465c 73206675
write 465d 6C6C0A00
write 465e 49324320
write 465f 6572726F
write 4660 720A0000
write 4661 25642053
write 4662 46507320
write 4663 696E2044
write 4664 420A0000
write 4665 73686F77
write 4666 00000000
write 4667 53465020
write 4668 64617461
write 4669 62617365
write 466a 20656D70
write 466b 74792E2E
write 466c 2E0A0000
write 466d 53465020
write 466e 64617461
write 466f 62617365
write 4670 20636F72
write 4671 72757074
write 4672 65642E2E
write 4673 2E0A0000
write 4674 25643A20
write 4675 504E3A00
write 4676 20645478
write 4677 3A202564
write 4678 2C206452
write 4679 783A2025
write 467a 642C2061
write 467b 6C706861
write 467c 3A202564
write 467d 0A000000
write 467e 6D617463
write 467f 68000000
write 4680 52756E20
write 4681 73667020
write 4682 64657465
write 4683 63742066
write 4684 69727374
write 4685 0A000000
write 4686 53465020
write 4687 6D617463
write 4688 6865642C
write 4689 20645478
write 468a 3D25642C
write 468b 20645278
write 468c 3D25642C
write 468d 20616C70
write 468e 68613D25
write 468f 640A0000
write 4690 436F756C
write 4691 64206E6F
write 4692 74206D61
write 4693 74636820
write 4694 746F2044
write 4695 420A0000
write 4696 73667000
write 4697 62747300
write 4698 25642070
write 4699 730A0000
write 469a 70747000
write 469b 676D0000
write 469c 6D6F6465
write 469d 00000000
write 469e 756E6B6E
write 469f 6F776E00
write 46a0 6772616E
write 46a1 646D6173
write 46a2 74657200
write 46a3 666F7263
write 46a4 65000000
write 46a5 466F756E
write 46a6 64207068
write 46a7 61736520
write 46a8 7472616E
write 46a9 73697469
write 46aa 6F6E2069
write 46ab 6E204545
write 46ac 50524F4D
write 46ad 3A202564
write 46ae 70730A00
write 46af 4D656173
write 46b0 7572696E
write 46b1 67207432
write 46b2 2F743420
write 46b3 70686173
write 46b4 65207472
write 46b5 616E7369
write 46b6 74696F6E
write 46b7 2E2E2E0A
write 46b8 00000000
write 46b9 63616C69
write 46ba 62726174
write 46bb 696F6E00
write 46bc 73657400
write 46bd 73657473
write 46be 65630000
write 46bf 7365746E
write 46c0 73656300
write 46c1 72617700
write 46c2 2573202B
write 46c3 2564206E
write 46c4 616E6F73
write 46c5 65636F6E
write 46c6 64732E0A
write 46c7 00000000
write 46c8 74696D65
write 46c9 00000000
write 46ca 67756900
write 46cb 73646200
write 46cc 67657400
write 46cd 67657470
write 46ce 00000000
write 46cf 73657470
write 46d0 00000000
write 46d1 4D41432D
write 46d2 61646472
write 46d3 6573733A
write 46d4 20253032
write 46d5 783A2530
write 46d6 32783A25
write 46d7 3032783A
write 46d8 25303278
write 46d9 3A253032
write 46da 783A2530
write 46db 32780A00
write 46dc 6D616300
write 46dd 45455052
write 46de 4F4D206E
write 46df 6F742066
write 46e0 6F756E64
write 46e1 2E2E0A00
write 46e2 436F756C
write 46e3 64206E6F
write 46e4 74206572
write 46e5 61736520
write 46e6 696E6974
write 46e7 20736372
write 46e8 6970740A
write 46e9 00000000
write 46ea 436F756C
write 46eb 64206E6F
write 46ec 74206164
write 46ed 64207468
write 46ee 6520636F
write 46ef 6D6D616E
write 46f0 640A0000
write 46f1 4F4B2E0A
write 46f2 00000000
write 46f3 626F6F74
write 46f4 00000000
write 46f5 4F4E0000
write 46f6 4F464600
write 46f7 656E6162
write 46f8 6C650000
write 46f9 64697361
write 46fa 626C6500
write 46fb 70686173
write 46fc 65207472
write 46fd 61636B69
write 46fe 6E672025
write 46ff 730A0000
write 4700 70747261
write 4701 636B0000
write 4702 41766169
write 4703 6C61626C
write 4704 6520636F
write 4705 6D6D616E
write 4706 64733A0A
write 4707 00000000
write 4708 20202573
write 4709 0A000000
write 470a 68656C70
write 470b 00000000
write 470c 55736167
write 470d 653A2072
write 470e 65667265
write 470f 7368203C
write 4710 7365636F
write 4711 6E64733E
write 4712 0A000000
write 4713 72656672
write 4714 65736800
write 4715 49502D61
write 4716 64647265
write 4717 73733A20
write 4718 696E2074
write 4719 7261696E
write 471a 696E670A
write 471b 00000000
write 471c 49502D61
write 471d 64647265
write 471e 73733A20
write 471f 25642E25
write 4720 642E2564
write 4721 2E25640A
write 4722 00000000
write 4723 69700000
write 4724 50505349
write 4725 20766572
write 4726 626F7369
write 4727 74793A20
write 4728 2530386C
write 4729 780A0000
write 472a 76657262
write 472b 6F736500
write 472c 25732C20
write 472d 25732025
write 472e 642C2025
write 472f 642C2025
write 4730 3032643A
write 4731 25303264
write 4732 3A253032
write 4733 64000000
write 4734 1B5B3025
write 4735 643B3325
write 4736 646D0000
write 4737 1B5B6D00
write 4738 1B5B2564
write 4739 3B256466
write 473a 00000000
write 473b 1B5B324A
write 473c 1B5B313B
write 473d 31480000
write 473e 53756E00
write 473f 4D6F6E00
write 4740 54756500
write 4741 57656400
write 4742 54687500
write 4743 46726900
write 4744 53617400
write 4745 4A616E00
write 4746 46656200
write 4747 4D617200
write 4748 41707200
write 4749 4D617900
write 474a 4A756E00
write 474b 4A756C00
write 474c 41756700
write 474d 53657000
write 474e 4F637400
write 474f 4E6F7600
write 4750 44656300
write 4751 4C6F6F70
write 4752 73207065
write 4753 72206A69
write 4754 6666793A
write 4755 2025690A
write 4756 00000000
write 4757 44697363
write 4758 6F766572
write 4759 65642049
write 475a 50206164
write 475b 64726573
write 475c 73202825
write 475d 642E2564
write 475e 2E25642E
write 475f 25642921
write 4760 0A000000
write 4761 30313233
write 4762 34353637
write 4763 38396162
write 4764 63646566
write 4765 00000000
write 4766 49443A20
write 4767 25780A00
write 4768 696E7661
write 4769 6C696420
write 476a 64657363
write 476b 72697074
write 476c 6F722040
write 476d 2578203D
write 476e 2025780A
write 476f 00000000
write 4770 5761726E
write 4771 696E673A
write 4772 20747820
write 4773 6E6F7420
write 4774 7465726D
write 4775 696E6174
write 4776 65642069
write 4777 6E66696E
write 4778 69746520
write 4779 6D63723D
write 477a 30782578
write 477b 0A000000
write 477c 5761726E
write 477d 696E673A
write 477e 20747820
write 477f 74696D65
write 4780 7374616D
write 4781 70206E65
write 4782 76657220
write 4783 62656361
write 4784 6D652061
write 4785 7661696C
write 4786 61626C65
write 4787 0A000000
write 4788 6D696E69
write 4789 635F7478
write 478a 5F667261
write 478b 6D653A20
write 478c 756E6D61
write 478d 74636865
write 478e 64206669
write 478f 64202564
write 4790 20767320
write 4791 25640A00
write 4792 6E616E6F
write 4793 7365636F
write 4794 6E647300
write 4795 41646A75
write 4796 73743A20
write 4797 636F756E
write 4798 74657220
write 4799 3D202573
write 479a 205B2563
write 479b 25645D0A
write 479c 00000000
write 479d 2538783A
write 479e 25387820
write 479f 30782538
write 47a0 78202573
write 47a1 0A000000
write 47a2 53444220
write 47a3 6D656D6F
write 47a4 7279206D
write 47a5 61703A0A
write 47a6 00000000
write 47a7 2D2D2D0A
write 47a8 00000000
write 47a9 52585453
write 47aa 2063616C
write 47ab 69627261
write 47ac 74696F6E
write 47ad 20657272
write 47ae 6F722E0A
write 47af 00000000
write 47b0 52585453
write 47b1 2063616C
write 47b2 69627261
write 47b3 74696F6E
write 47b4 3A205240
write 47b5 25647073
write 47b6 2C204640
write 47b7 25647073
write 47b8 2C207472
write 47b9 616E7369
write 47ba 74696F6E
write 47bb 40256470
write 47bc 730A0000
write 47bd 57616974
write 47be 696E6720
write 47bf 666F7220
write 47c0 6C696E6B
write 47c1 2E2E2E0A
write 47c2 00000000
write 47c3 4C6F636B
write 47c4 696E6720
write 47c5 504C4C2E
write 47c6 2E2E0A00
write 47c7 43616C69
write 47c8 62726174
write 47c9 696E6720
write 47ca 52582074
write 47cb 696D6573
write 47cc 74616D70
write 47cd 65722E2E
write 47ce 2E0A0000
write 47cf 436F756C
write 47d0 64206E6F
write 47d1 74206361
write 47d2 6C696272
write 47d3 61746520
write 47d4 74323470
write 47d5 2C207472
write 47d6 79696E67
write 47d7 20746F20
write 47d8 72656164
write 47d9 2066726F
write 47da 6D204545
write 47db 50524F4D
write 47dc 0A000000
write 47dd 536F6D65
write 47de 7468696E
write 47df 67207765
write 47e0 6E742077
write 47e1 726F6E67
write 47e2 20776869
write 47e3 6C652077
write 47e4 72697469
write 47e5 6E672045
write 47e6 4550524F
write 47e7 4D0A0000
write 47e8 74323470
write 47e9 2076616C
write 47ea 75652069
write 47eb 73202564
write 47ec 2070732C
write 47ed 2073746F
write 47ee 72696E67
write 47ef 20746F20
write 47f0 45455052
write 47f1 4F4D0A00
write 47f2 536F6D65
write 47f3 7468696E
write 47f4 67207765
write 47f5 6E742077
write 47f6 726F6E67
write 47f7 20776869
write 47f8 6C652072
write 47f9 65616469
write 47fa 6E672066
write 47fb 726F6D20
write 47fc 45455052
write 47fd 4F4D3A20
write 47fe 25640A00
write 47ff 74323470
write 4800 20726561
write 4801 64206672
write 4802 6F6D2045
write 4803 4550524F
write 4804 4D3A2025
write 4805 64207073
write 4806 0A000000
write 4807 43616E27
write 4808 74207361
write 4809 76652070
write 480a 65727369
write 480b 7374656E
write 480c 74204D41
write 480d 43206164
write 480e 64726573
write 480f 730A0000
write 4810 25733A20
write 4811 5573696E
write 4812 67205731
write 4813 20736572
write 4814 69616C20
write 4815 6E756D62
write 4816 65720A00
write 4817 6F666673
write 4818 65742025
write 4819 34692028
write 481a 30782530
write 481b 3378293A
write 481c 20253369
write 481d 20283078
write 481e 25303278
write 481f 290A0000
write 4820 77726974
write 4821 65283078
write 4822 25782C20
write 4823 2569293A
write 4824 20726573
write 4825 756C7420
write 4826 3D202569
write 4827 0A000000
write 4828 72656164
write 4829 28307825
write 482a 782C2025
write 482b 69293A20
write 482c 72657375
write 482d 6C74203D
write 482e 2025690A
write 482f 00000000
write 4830 64657669
write 4831 63652025
write 4832 693A2025
write 4833 30387825
write 4834 3038780A
write 4835 00000000
write 4836 74656D70
write 4837 3A202564
write 4838 2E253034
write 4839 640A0000
write 483a 77310000
write 483b 77317200
write 483c 77317700
write 483d 736F6674
write 483e 706C6C3A
write 483f 20617474
write 4840 656D7074
write 4841 696E6720
write 4842 746F2065
write 4843 6E61626C
write 4844 6520474D
write 4845 206D6F64
write 4846 65206F6E
write 4847 206E6F6E
write 4848 2D474D20
write 4849 68617264
write 484a 77617265
write 484b 2E0A0000
write 484c 736F6674
write 484d 706C6C3A
write 484e 206D6F64
write 484f 65202573
write 4850 2C202564
write 4851 20726566
write 4852 20636861
write 4853 6E6E656C
write 4854 732C2025
write 4855 64206F75
write 4856 74206368
write 4857 616E6E65
write 4858 6C730A00
write 4859 43616E27
write 485a 74207374
write 485b 61727420
write 485c 6368616E
write 485d 6E656C20
write 485e 25642C20
write 485f 74686520
write 4860 504C4C20
write 4861 6973206E
write 4862 6F742072
write 4863 65616479
write 4864 0A000000
write 4865 736F6674
write 4866 706C6C3A
write 4867 20697271
write 4868 5F636F75
write 4869 6E742025
write 486a 64207365
write 486b 7175656E
write 486c 6365725F
write 486d 73746174
write 486e 65202564
write 486f 206D6F64
write 4870 65202564
write 4871 20616C69
write 4872 676E6D65
write 4873 6E745F73
write 4874 74617465
write 4875 20256420
write 4876 484C2564
write 4877 20454C25
write 4878 64204D4C
write 4879 25642048
write 487a 593D2564
write 487b 204D593D
write 487c 25642045
write 487d 593D2564
write 487e 2044656C
write 487f 436E743D
write 4880 25642065
write 4881 78747363
write 4882 3D25640A
write 4883 00000000
write 4884 456E6162
write 4885 6C696E67
write 4886 20707472
write 4887 61636B65
write 4888 72206368
write 4889 616E6E65
write 488a 6C3A2025
write 488b 640A0000
write 488c 44697361
write 488d 626C696E
write 488e 67207074
write 488f 7261636B
write 4890 65722074
write 4891 61676765
write 4892 723A2025
write 4893 640A0000
write 4894 736F6674
write 4895 706C6C3A
write 4896 20646973
write 4897 61626C65
write 4898 64206175
write 4899 78206368
write 489a 616E6E65
write 489b 6C202564
write 489c 0A000000
write 489d 736F6674
write 489e 706C6C3A
write 489f 20656E61
write 48a0 626C6564
write 48a1 20617578
write 48a2 20636861
write 48a3 6E6E656C
write 48a4 2025640A
write 48a5 00000000
write 48a6 736F6674
write 48a7 706C6C3A
write 48a8 20636861
write 48a9 6E6E656C
write 48aa 20256420
write 48ab 6C6F636B
write 48ac 6564205B
write 48ad 616C6967
write 48ae 6E696E67
write 48af 20402025
write 48b0 64207073
write 48b1 5D0A0000
write 48b2 736F6674
write 48b3 706C6C3A
write 48b4 20636861
write 48b5 6E6E656C
write 48b6 20256420
write 48b7 70686173
write 48b8 6520616C
write 48b9 69676E65
write 48ba 640A0000
write 48bb 736F6674
write 48bc 706C6C3A
write 48bd 20617578
write 48be 20636861
write 48bf 6E6E656C
write 48c0 20256420
write 48c1 6F72206D
write 48c2 706C6C20
write 48c3 6C6F7374
write 48c4 206C6F63
write 48c5 6B0A0000
write 48c6 6C6F636B
write 48c7 696E6700
write 48c8 616C6967
write 48c9 6E696E67
write 48ca 00000000
write 48cb 66726565
write 48cc 6D617374
write 48cd 65720000
write 48ce BADC0FFE
write 48cf 3B9AC9FF
write 48d0 3B9ACA00
write 48d1 000F4240
write 48d2 DFFFFFFF
write 48d3 EFFFFFFF
write 48d4 00080030
write 48d5 D4A51000
write 48d6 C4653600
write 48d7 BFFFFFFF
write 48d8 7FFFFFFF
write 48d9 7FFFFFFE
write 48da 80000001
write 48db FFF06000
write 48dc 0007D000
write 48dd 0007CFFF
write 48de FFF83000
write 48df 41C64E6D
write 48e0 00010043
write 48e1 00010044
write 48e2 00015180
write 48e3 000186A0
write 48e4 00062000
write 48e5 005EE000
write 48e6 01000001
write 48e7 0FFFFFFF
write 48e8 059682F0
write 48e9 0EE6B27F
write 48ea 01312D02
write 48eb 01312D0A
write 48ec AB28633A
write 48ed 650C2D4F
write 48ee 65158DC0
write 48ef DE0D8CED
write 48f0 FF07FC47
write 48f1 E2D13D04
write 48f2 779C5443
write 48f3 68202B22
write 48f4 003D0137
write 48f5 8000001F
write 48f6 00FFFFFF
write 48f7 FFFDB610
write 48f8 000249F0
write 48f9 05F5E100
write 48fa 0BEBC200
write 48fb FA0A1F00
write 48fc 01312D03
write 48fd 011B1900
write 48fe 00000000
write 48ff 70705F64
write 4900 6961675F
write 4901 70617273
write 4902 65000000
write 4903 00000000
write 4904 00010BAC
write 4905 00010BB8
write 4906 00010BC8
write 4907 00010BD4
write 4908 00010BE0
write 4909 00010BEC
write 490a 00010BF8
write 490b 77727063
write 490c 5F74696D
write 490d 655F6164
write 490e 6A757374
write 490f 5F6F6666
write 4910 73657400
write 4911 77727063
write 4912 5F74696D
write 4913 655F6164
write 4914 6A757374
write 4915 00000000
write 4916 77727063
write 4917 5F74696D
write 4918 655F7365
write 4919 74000000
write 491a 77727063
write 491b 5F74696D
write 491c 655F6765
write 491d 74000000
write 491e 77727063
write 491f 5F6E6574
write 4920 5F73656E
write 4921 64000000
write 4922 00002BC8
write 4923 00002DA8
write 4924 00002DA8
write 4925 00002DA8
write 4926 00002DA8
write 4927 00002DA8
write 4928 00002DA8
write 4929 00002BF0
write 492a 00002C10
write 492b 00002C80
write 492c 00002CA0
write 492d 00002CBC
write 492e 00002CDC
write 492f 00002D68
write 4930 00002D88
write 4931 00004234
write 4932 000041D0
write 4933 00004270
write 4934 00004340
write 4935 0000419C
write 4936 000042C8
write 4937 77725F73
write 4938 6572766F
write 4939 5F757064
write 493a 61746500
write 493b 70705F69
write 493c 6E697469
write 493d 616C697A
write 493e 696E6700
write 493f 73745F63
write 4940 6F6D5F73
write 4941 6C617665
write 4942 5F68616E
write 4943 646C655F
write 4944 666F6C6C
write 4945 6F777570
write 4946 00000000
write 4947 626D635F
write 4948 64617461
write 4949 7365745F
write 494a 636D7000
write 494b 626D635F
write 494c 73746174
write 494d 655F6465
write 494e 63697369
write 494f 6F6E0000
write 4950 63466965
write 4951 6C645F74
write 4952 6F5F5469
write 4953 6D65496E
write 4954 7465726E
write 4955 616C0000
write 4956 00011A78
write 4957 00011A80
write 4958 00012330
write 4959 00010D48
write 495a 0000001F
write 495b 0000001C
write 495c 0000001F
write 495d 0000001E
write 495e 0000001F
write 495f 0000001E
write 4960 0000001F
write 4961 0000001F
write 4962 0000001E
write 4963 0000001F
write 4964 0000001E
write 4965 0000001F
write 4966 0000001F
write 4967 0000001D
write 4968 0000001F
write 4969 0000001E
write 496a 0000001F
write 496b 0000001E
write 496c 0000001F
write 496d 0000001F
write 496e 0000001E
write 496f 0000001F
write 4970 0000001E
write 4971 0000001F
write 4972 00011CF8
write 4973 00011CFC
write 4974 00011D00
write 4975 00011D04
write 4976 00011D08
write 4977 00011D0C
write 4978 00011D10
write 4979 00011D14
write 497a 00011D18
write 497b 00011D1C
write 497c 00011D20
write 497d 00011D24
write 497e 00011D28
write 497f 00011D2C
write 4980 00011D30
write 4981 00011D34
write 4982 00011D38
write 4983 00011D3C
write 4984 00011D40
write 4985 6765745F
write 4986 70657273
write 4987 69737465
write 4988 6E745F6D
write 4989 61630000
write 498a 0000ECE8
write 498b 0000ECE8
write 498c 00000000
write 498d 0000D9D0
write 498e 00000000
write 498f 0000EE38
write 4990 0000EE58
write 4991 0000EE6C
write 4992 0000EE7C
write 4993 0000EE9C
write 4994 0000EEAC
write 4995 0000EF14
write 4996 0000EEC4
write 4997 0000EDD8
write 4998 0000EE1C
write 4999 000105C4
write 499a 00011A80
write 499b 0001232C
write 499c 00010D48
write 499d 00010D20
write 499e 00000000
write 499f 00000000
write 49a0 00000000
write 49a1 00000000
write 49a2 00010000
write 49a3 00000000
write 49a4 00000000
write 49a5 00000000
write 49a6 00020100
write 49a7 00000000
write 49a8 00000000
write 49a9 00000000
write 49aa 00030101
write 49ab 00000000
write 49ac 00000000
write 49ad 00000000
write 49ae 00040201
write 49af 01000000
write 49b0 00000000
write 49b1 00000000
write 49b2 00050201
write 49b3 01010000
write 49b4 00000000
write 49b5 00000000
write 49b6 00060302
write 49b7 01010100
write 49b8 00000000
write 49b9 00000000
write 49ba 00070302
write 49bb 01010101
write 49bc 00000000
write 49bd 00000000
write 49be 00080402
write 49bf 02010101
write 49c0 01000000
write 49c1 00000000
write 49c2 00090403
write 49c3 02010101
write 49c4 01010000
write 49c5 00000000
write 49c6 000A0503
write 49c7 02020101
write 49c8 01010100
write 49c9 00000000
write 49ca 000B0503
write 49cb 02020101
write 49cc 01010101
write 49cd 00000000
write 49ce 000C0604
write 49cf 03020201
write 49d0 01010101
write 49d1 01000000
write 49d2 000D0604
write 49d3 03020201
write 49d4 01010101
write 49d5 01010000
write 49d6 000E0704
write 49d7 03020202
write 49d8 01010101
write 49d9 01010100
write 49da 000F0705
write 49db 03030202
write 49dc 01010101
write 49dd 01010101
write 49de FEFEFEFF
write 49df 80808080
write 49e0 00202020
write 49e1 20202020
write 49e2 20202828
write 49e3 28282820
write 49e4 20202020
write 49e5 20202020
write 49e6 20202020
write 49e7 20202020
write 49e8 20881010
write 49e9 10101010
write 49ea 10101010
write 49eb 10101010
write 49ec 10040404
write 49ed 04040404
write 49ee 04040410
write 49ef 10101010
write 49f0 10104141
write 49f1 41414141
write 49f2 01010101
write 49f3 01010101
write 49f4 01010101
write 49f5 01010101
write 49f6 01010101
write 49f7 10101010
write 49f8 10104242
write 49f9 42424242
write 49fa 02020202
write 49fb 02020202
write 49fc 02020202
write 49fd 02020202
write 49fe 02020202
write 49ff 10101010
write 4a00 20000000
write 4a01 00000000
write 4a02 00000000
write 4a03 00000000
write 4a04 00000000
write 4a05 00000000
write 4a06 00000000
write 4a07 00000000
write 4a08 00000000
write 4a09 00000000
write 4a0a 00000000
write 4a0b 00000000
write 4a0c 00000000
write 4a0d 00000000
write 4a0e 00000000
write 4a0f 00000000
write 4a10 00000000
write 4a11 00000000
write 4a12 00000000
write 4a13 00000000
write 4a14 00000000
write 4a15 00000000
write 4a16 00000000
write 4a17 00000000
write 4a18 00000000
write 4a19 00000000
write 4a1a 00000000
write 4a1b 00000000
write 4a1c 00000000
write 4a1d 00000000
write 4a1e 00000000
write 4a1f 00000000
write 4a20 00000000
write 4a21 000104EC
write 4a22 0001050C
write 4a23 000003E8
write 4a24 00000001
write 4a25 046362A0
write 4a26 0000B547
write 4a27 00028FA3
write 4a28 00000955
write 4a29 FFFFFFFF
write 4a2a 000128AC
write 4a2b 00000000
write 4a2c 00000000
write 4a2d 00000000
write 4a2e 00000000
write 4a2f 00000000
write 4a30 00000000
write 4a31 00000000
write 4a32 00012DB8
write 4a33 00012EC4
write 4a34 00012EA8
write 4a35 00000000
write 4a36 00000000
write 4a37 00000000
write 4a38 00000000
write 4a39 00000000
write 4a3a 00000000
write 4a3b 00000000
write 4a3c 00000000
write 4a3d 00000000
write 4a3e 00000000
write 4a3f 00000000
write 4a40 00000000
write 4a41 00000000
write 4a42 00000000
write 4a43 00000000
write 4a44 00000000
write 4a45 00000000
write 4a46 00000000
write 4a47 00000000
write 4a48 00000000
write 4a49 00000000
write 4a4a 00000000
write 4a4b 00000000
write 4a4c 00000000
write 4a4d 00000000
write 4a4e 00000000
write 4a4f 00000000
write 4a50 00000000
write 4a51 00000000
write 4a52 00000000
write 4a53 00000000
write 4a54 00000000
write 4a55 00000000
write 4a56 00000000
write 4a57 00000000
write 4a58 00000000
write 4a59 00000000
write 4a5a 00000000
write 4a5b 00000000
write 4a5c 00000000
write 4a5d 00000000
write 4a5e 00000000
write 4a5f 00000000
write 4a60 00000000
write 4a61 00000000
write 4a62 00000000
write 4a63 00000000
write 4a64 00000000
write 4a65 00000000
write 4a66 00000000
write 4a67 00000000
write 4a68 00000000
write 4a69 00000000
write 4a6a 00000000
write 4a6b 00000000
write 4a6c 00000000
write 4a6d 00000000
write 4a6e 00000000
write 4a6f 00000000
write 4a70 00000000
write 4a71 00000000
write 4a72 00000000
write 4a73 00000000
write 4a74 00000000
write 4a75 00000000
write 4a76 00000000
write 4a77 00000000
write 4a78 00000000
write 4a79 00000000
write 4a7a 00000000
write 4a7b 00000000
write 4a7c 00000000
write 4a7d 00000000
write 4a7e 00000000
write 4a7f 00000000
write 4a80 00000000
write 4a81 00000000
write 4a82 00000000
write 4a83 00000000
write 4a84 00000000
write 4a85 00000000
write 4a86 00000000
write 4a87 00000000
write 4a88 00000000
write 4a89 00000000
write 4a8a 00000000
write 4a8b 00000000
write 4a8c 00000000
write 4a8d 00000000
write 4a8e 00000000
write 4a8f 00000000
write 4a90 00000000
write 4a91 00000000
write 4a92 00000000
write 4a93 00000000
write 4a94 00000000
write 4a95 00000000
write 4a96 00000000
write 4a97 00000000
write 4a98 00000000
write 4a99 00000000
write 4a9a 00000000
write 4a9b 00000000
write 4a9c 00000000
write 4a9d 00000000
write 4a9e 00000000
write 4a9f 00000000
write 4aa0 00000000
write 4aa1 00000000
write 4aa2 00000000
write 4aa3 00000000
write 4aa4 00000000
write 4aa5 00000000
write 4aa6 00000000
write 4aa7 00000000
write 4aa8 00000000
write 4aa9 00000000
write 4aaa 00000000
write 4aab 00000000
write 4aac 00000000
write 4aad 00000000
write 4aae 00000000
write 4aaf 00000000
write 4ab0 00000000
write 4ab1 00000000
write 4ab2 00000000
write 4ab3 00000000
write 4ab4 00000000
write 4ab5 00000000
write 4ab6 00000000
write 4ab7 00000000
write 4ab8 00000000
write 4ab9 00000000
write 4aba 00000000
write 4abb 00000000
write 4abc 00000000
write 4abd 00000000
write 4abe 00000000
write 4abf 00000000
write 4ac0 00000000
write 4ac1 00000000
write 4ac2 00000000
write 4ac3 00000000
write 4ac4 00000000
write 4ac5 00000000
write 4ac6 00000000
write 4ac7 00000000
write 4ac8 00000000
write 4ac9 00000000
write 4aca 00000000
write 4acb 00000000
write 4acc 00000000
write 4acd 00000000
write 4ace 00000000
write 4acf 00000000
write 4ad0 00000000
write 4ad1 00000000
write 4ad2 00000000
write 4ad3 00000000
write 4ad4 00000000
write 4ad5 00000000
write 4ad6 00000000
write 4ad7 00000000
write 4ad8 00000000
write 4ad9 00000000
write 4ada 00000000
write 4adb 00000000
write 4adc 00000000
write 4add 00000000
write 4ade 00000000
write 4adf 00000000
write 4ae0 00000000
write 4ae1 00000000
write 4ae2 00000000
write 4ae3 00000000
write 4ae4 00000000
write 4ae5 00000000
write 4ae6 00000000
write 4ae7 00000000
write 4ae8 00000000
write 4ae9 00000000
write 4aea 00000000
write 4aeb 00000000
write 4aec 00000000
write 4aed 00000000
write 4aee 00000000
write 4aef 00000000
write 4af0 00000000
write 4af1 00000000
write 4af2 00000000
write 4af3 00000000
write 4af4 00000000
write 4af5 00000000
write 4af6 00000000
write 4af7 00000000
write 4af8 00000000
write 4af9 00000000
write 4afa 00000000
write 4afb 00000000
write 4afc 00000000
write 4afd 00000000
write 4afe 00000000
write 4aff 00000000
write 4b00 00000000
write 4b01 00000000
write 4b02 00000000
write 4b03 00000000
write 4b04 00000000
write 4b05 00000000
write 4b06 00000000
write 4b07 00000000
write 4b08 00000000
write 4b09 00000000
write 4b0a 00000000
write 4b0b 00000000
write 4b0c 00000000
write 4b0d 00000000
write 4b0e 00000000
write 4b0f 00000000
write 4b10 00000000
write 4b11 00000000
write 4b12 00000000
write 4b13 00000000
write 4b14 00000000
write 4b15 00000000
write 4b16 00000000
write 4b17 00000000
write 4b18 00000000
write 4b19 00000000
write 4b1a 00000000
write 4b1b 00000000
write 4b1c 00000000
write 4b1d 00000000
write 4b1e 00000000
write 4b1f 00000000
write 4b20 00000000
write 4b21 00000000
write 4b22 00000000
write 4b23 00000000
write 4b24 00000000
write 4b25 00000000
write 4b26 00000000
write 4b27 00000000
write 4b28 00000000
write 4b29 00000000
write 4b2a 00000000
write 4b2b 00000000
write 4b2c 00000000
write 4b2d 00000000
write 4b2e 00000000
write 4b2f 00000000
write 4b30 00000000
write 4b31 00000000
write 4b32 00000000
write 4b33 00000000
write 4b34 00000000
write 4b35 00000000
write 4b36 00000000
write 4b37 00000000
write 4b38 00000000
write 4b39 00000000
write 4b3a 00000000
write 4b3b 00000000
write 4b3c 00000000
write 4b3d 00012DF0
write 4b3e 00000000
write 4b3f 00000000
write 4b40 00000000
write 4b41 00000000
write 4b42 00000000
write 4b43 00000000
write 4b44 00000000
write 4b45 00000000
write 4b46 00000000
write 4b47 00000000
write 4b48 00000000
write 4b49 00000000
write 4b4a 00000000
write 4b4b 00000000
write 4b4c 00000000
write 4b4d 00000000
write 4b4e 00000000
write 4b4f 00000000
write 4b50 00000000
write 4b51 00000000
write 4b52 00000000
write 4b53 00000000
write 4b54 00000000
write 4b55 00000000
write 4b56 00000000
write 4b57 00000000
write 4b58 00000000
write 4b59 00000000
write 4b5a 00000000
write 4b5b 00000000
write 4b5c 00000000
write 4b5d 00000000
write 4b5e 00000000
write 4b5f 00000000
write 4b60 00000000
write 4b61 00010C9C
write 4b62 00000000
write 4b63 00000000
write 4b64 00000000
write 4b65 00000000
write 4b66 00000000
write 4b67 00000000
write 4b68 00000000
write 4b69 00000000
write 4b6a 00000000
write 4b6b 00000000
write 4b6c 00000000
write 4b6d 00000000
write 4b6e 000128AC
write 4b6f 00013214
write 4b70 00000000
write 4b71 00013258
write 4b72 00013274
write 4b73 000132A4
write 4b74 000132C4
write 4b75 00000000
write 4b76 00000000
write 4b77 00000000
write 4b78 00000000
write 4b79 00000000
write 4b7a 00000000
write 4b7b 000003E8
write 4b7c 00000000
write 4b7d 00000000
write 4b7e 00000000
write 4b7f 00000000
write 4b80 00012E04
write 4b81 00012E70
write 4b82 00000000
write 4b83 00000000
write 4b84 00000000
write 4b85 00000000
write 4b86 00000000
write 4b87 00000000
write 4b88 00000000
write 4b89 00000000
write 4b8a 00000000
write 4b8b 00000000
write 4b8c 00000000
write 4b8d 00000000
write 4b8e 00000000
write 4b8f 00000000
write 4b90 00000000
write 4b91 00000000
write 4b92 00000000
write 4b93 00000000
write 4b94 00000000
write 4b95 00000000
write 4b96 00000000
write 4b97 00000000
write 4b98 00000000
write 4b99 00000000
write 4b9a 00000000
write 4b9b 00000000
write 4b9c 00001DF0
write 4b9d 00001E24
write 4b9e 00001EA4
write 4b9f 00001EAC
write 4ba0 00001F04
write 4ba1 00001F30
write 4ba2 00001F88
write 4ba3 00001FAC
write 4ba4 00002054
write 4ba5 0000205C
write 4ba6 00002064
write 4ba7 000020C8
write 4ba8 000020E4
write 4ba9 00001ED0
write 4baa 00001B58
write 4bab 00001ADC
write 4bac 00001A80
write 4bad 00001A28
write 4bae 00000000
write 4baf 00000000
write 4bb0 000019F8
write 4bb1 00001D38
write 4bb2 00001D18
write 4bb3 00001CAC
write 4bb4 00001BD8
write 4bb5 00000001
write 4bb6 00010D08
write 4bb7 00004444
write 4bb8 00000002
write 4bb9 00010D18
write 4bba 00004608
write 4bbb 00000003
write 4bbc 00010D20
write 4bbd 000046C4
write 4bbe 00000004
write 4bbf 00010D2C
write 4bc0 000046D4
write 4bc1 00000006
write 4bc2 00012330
write 4bc3 00004878
write 4bc4 00000008
write 4bc5 00010D38
write 4bc6 00004AC0
write 4bc7 00000009
write 4bc8 00010D48
write 4bc9 00004B34
write 4bca 00000064
write 4bcb 00010D50
write 4bcc 000025C4
write 4bcd 00000066
write 4bce 00010D68
write 4bcf 00002760
write 4bd0 00000065
write 4bd1 00010D7C
write 4bd2 000028AC
write 4bd3 00000067
write 4bd4 00010D94
write 4bd5 000029A0
write 4bd6 00000068
write 4bd7 00010DAC
write 4bd8 00002AF0
write 4bd9 00000069
write 4bda 00010DBC
write 4bdb 00002DEC
write 4bdc 0000006A
write 4bdd 00010DCC
write 4bde 00002F4C
write 4bdf 0000006B
write 4be0 00010DE0
write 4be1 000030D4
write 4be2 00000000
write 4be3 00000000
write 4be4 00000000
write 4be5 00002100
write 4be6 00002174
write 4be7 00000000
write 4be8 00002220
write 4be9 0000245C
write 4bea 00002440
write 4beb 00002370
write 4bec 0000223C
write 4bed 00002288
write 4bee 000022F8
write 4bef 00002334
write 4bf0 00002588
write 4bf1 00002564
write 4bf2 00000001
write 4bf3 0001137C
write 4bf4 00011384
write 4bf5 00011390
write 4bf6 0001139C
write 4bf7 00000000
write 4bf8 00000000
write 4bf9 00000000
write 4bfa 00000000
write 4bfb 000113C0
write 4bfc 000113A8
write 4bfd 000113B4
write 4bfe 000113CC
write 4bff 000113D8
write 4c00 000113E4
write 4c01 00000000
write 4c02 00000000
write 4c03 00011770
write 4c04 00011780
write 4c05 0001178C
write 4c06 000117A0
write 4c07 000117B4
write 4c08 000117C4
write 4c09 000117D0
write 4c0a 000117DC
write 4c0b BBFEF060
write 4c0c 00000000
write 4c0d 00000000
write 4c0e 00000000
write 4c0f 00000000
write 4c10 00000000
write 4c11 00000000
write 4c12 00000000
write 4c13 00000000
write 4c14 00000000
write 4c15 00000000
write 4c16 00000000
write 4c17 00000000
write 4c18 00000001
write 4c19 0000000A
write 4c1a 03E80006
write 4c1b 01008080
write 4c1c 00000000
write 4c1d 00000000
write 4c1e 00000000
write 4c1f 00000000
write 4c20 00000000
write 4c21 00000000
write 4c22 00000000
write 4c23 00000001
write 4c24 00000004
write 4c25 00000008
write 4c26 00000100
write 4c27 00000200
write 4c28 0000D3EC
write 4c29 0000D420
write 4c2a 0000D450
write 4c2b FFFFFFFF
write 4c2c 00012780
write 4c2d 000118E8
write 4c2e 00007A3C
write 4c2f 00011930
write 4c30 00007AE4
write 4c31 00011A58
write 4c32 00007D2C
write 4c33 000118F8
write 4c34 000080B4
write 4c35 00011A68
write 4c36 00008108
write 4c37 00011A70
write 4c38 00008168
write 4c39 00011AE4
write 4c3a 00008204
write 4c3b 00011B20
write 4c3c 000082E8
write 4c3d 00011B28
write 4c3e 00008444
write 4c3f 00011B2C
write 4c40 0000845C
write 4c41 00011B70
write 4c42 000084D8
write 4c43 000118EC
write 4c44 000085F0
write 4c45 00011C00
write 4c46 0000870C
write 4c47 00011C28
write 4c48 000087B8
write 4c49 00011C4C
write 4c4a 00008824
write 4c4b 00011C8C
write 4c4c 00008884
write 4c4d 00011CA8
write 4c4e 00008978
write 4c4f 000120E8
write 4c50 0000D69C
write 4c51 000120EC
write 4c52 0000D5A0
write 4c53 000120F0
write 4c54 0000D4A4
write 4c55 0000D4A4
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top/ 0000775 0000000 0000000 00000000000 12412174425 0027103 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top/Manifest.py0000664 0000000 0000000 00000000644 12412174425 0031227 0 ustar 00root root 0000000 0000000 files = ["synthesis_descriptor.vhd", "spec_top_std.vhd", "spec_top.ucf", "spec_reset_gen.vhd"]
fetchto = "../fmc-delay-1ns-8cha/hdl/ip_cores"
modules = {
"local" : ["../fmc-delay-1ns-8cha/hdl/rtl",
"../fmc-delay-1ns-8cha/hdl/platform",
"../.."],
"git" : [ "git://ohwr.org/hdl-core-lib/wr-cores.git",
"git://ohwr.org/hdl-core-lib/gn4124-core.git" ]
}
spec_reset_gen.vhd 0000664 0000000 0000000 00000002304 12412174425 0032513 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top library ieee;
use ieee.STD_LOGIC_1164.all;
use ieee.NUMERIC_STD.all;
use work.gencores_pkg.all;
entity spec_reset_gen is
port (
clk_sys_i : in std_logic;
rst_pcie_n_a_i : in std_logic;
rst_button_n_a_i : in std_logic;
rst_n_o : out std_logic
);
end spec_reset_gen;
architecture behavioral of spec_reset_gen is
signal powerup_cnt : unsigned(7 downto 0) := x"00";
signal button_synced_n : std_logic;
signal pcie_synced_n : std_logic;
signal powerup_n : std_logic := '0';
begin -- behavioral
U_EdgeDet_PCIe : gc_sync_ffs port map (
clk_i => clk_sys_i,
rst_n_i => '1',
data_i => rst_pcie_n_a_i,
ppulse_o => pcie_synced_n);
U_Sync_Button : gc_sync_ffs port map (
clk_i => clk_sys_i,
rst_n_i => '1',
data_i => rst_button_n_a_i,
synced_o => button_synced_n);
p_powerup_reset : process(clk_sys_i)
begin
if rising_edge(clk_sys_i) then
if(powerup_cnt /= x"ff") then
powerup_cnt <= powerup_cnt + 1;
powerup_n <= '0';
else
powerup_n <= '1';
end if;
end if;
end process;
rst_n_o <= powerup_n and button_synced_n and (not pcie_synced_n);
end behavioral;
spec_top.ucf 0000664 0000000 0000000 00000037650 12412174425 0031352 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top #bank 0
NET "CLK_20M_VCXO_I" LOC = H12;
NET "CLK_20M_VCXO_I" IOSTANDARD = "LVCMOS25";
NET "clk_125m_pllref_n_i" LOC = F10;
NET "clk_125m_pllref_n_i" IOSTANDARD = "LVDS_25";
NET "clk_125m_pllref_p_i" LOC = G9;
NET "clk_125m_pllref_p_i" IOSTANDARD = "LVDS_25";
NET "clk_125m_gtp_n_i" LOC = D11;
NET "clk_125m_gtp_p_i" LOC = C11;
#####################################################################
### Gennum ports
#####################################################################
NET "L_RST_N" LOC = N20;
NET "L_RST_N" IOSTANDARD = "LVCMOS18";
NET "GPIO[1]" LOC = U16;
NET "GPIO[1]" IOSTANDARD = "LVCMOS25";
NET "GPIO[0]" LOC = AB19;
NET "GPIO[0]" IOSTANDARD = "LVCMOS25";
NET "P2L_RDY" LOC = J16;
NET "P2L_RDY" IOSTANDARD = "SSTL18_I";
NET "P2L_CLKN" LOC = M19;
NET "P2L_CLKN" IOSTANDARD = "DIFF_SSTL18_I";
NET "P2L_CLKP" LOC = M20;
NET "P2L_CLKP" IOSTANDARD = "DIFF_SSTL18_I";
NET "P2L_DATA[0]" LOC = K20;
NET "P2L_DATA[0]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[1]" LOC = H22;
NET "P2L_DATA[1]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[2]" LOC = H21;
NET "P2L_DATA[2]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[3]" LOC = L17;
NET "P2L_DATA[3]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[4]" LOC = K17;
NET "P2L_DATA[4]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[5]" LOC = G22;
NET "P2L_DATA[5]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[6]" LOC = G20;
NET "P2L_DATA[6]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[7]" LOC = K18;
NET "P2L_DATA[7]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[8]" LOC = K19;
NET "P2L_DATA[8]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[9]" LOC = H20;
NET "P2L_DATA[9]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[10]" LOC = J19;
NET "P2L_DATA[10]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[11]" LOC = E22;
NET "P2L_DATA[11]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[12]" LOC = E20;
NET "P2L_DATA[12]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[13]" LOC = F22;
NET "P2L_DATA[13]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[14]" LOC = F21;
NET "P2L_DATA[14]" IOSTANDARD = "SSTL18_I";
NET "P2L_DATA[15]" LOC = H19;
NET "P2L_DATA[15]" IOSTANDARD = "SSTL18_I";
NET "P2L_DFRAME" LOC = J22;
NET "P2L_DFRAME" IOSTANDARD = "SSTL18_I";
NET "P2L_VALID" LOC = L19;
NET "P2L_VALID" IOSTANDARD = "SSTL18_I";
NET "P_WR_REQ[0]" LOC = M22;
NET "P_WR_REQ[0]" IOSTANDARD = "SSTL18_I";
NET "P_WR_REQ[1]" LOC = M21;
NET "P_WR_REQ[1]" IOSTANDARD = "SSTL18_I";
NET "P_WR_RDY[0]" LOC = L15;
NET "P_WR_RDY[0]" IOSTANDARD = "SSTL18_I";
NET "P_WR_RDY[1]" LOC = K16;
NET "P_WR_RDY[1]" IOSTANDARD = "SSTL18_I";
NET "RX_ERROR" LOC = J17;
NET "RX_ERROR" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[0]" LOC = P16;
NET "L2P_DATA[0]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[1]" LOC = P21;
NET "L2P_DATA[1]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[2]" LOC = P18;
NET "L2P_DATA[2]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[3]" LOC = T20;
NET "L2P_DATA[3]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[4]" LOC = V21;
NET "L2P_DATA[4]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[5]" LOC = V19;
NET "L2P_DATA[5]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[6]" LOC = W22;
NET "L2P_DATA[6]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[7]" LOC = Y22;
NET "L2P_DATA[7]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[8]" LOC = P22;
NET "L2P_DATA[8]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[9]" LOC = R22;
NET "L2P_DATA[9]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[10]" LOC = T21;
NET "L2P_DATA[10]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[11]" LOC = T19;
NET "L2P_DATA[11]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[12]" LOC = V22;
NET "L2P_DATA[12]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[13]" LOC = V20;
NET "L2P_DATA[13]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[14]" LOC = W20;
NET "L2P_DATA[14]" IOSTANDARD = "SSTL18_I";
NET "L2P_DATA[15]" LOC = Y21;
NET "L2P_DATA[15]" IOSTANDARD = "SSTL18_I";
NET "L2P_DFRAME" LOC = U22;
NET "L2P_DFRAME" IOSTANDARD = "SSTL18_I";
NET "L2P_VALID" LOC = T18;
NET "L2P_VALID" IOSTANDARD = "SSTL18_I";
NET "L2P_CLKN" LOC = K22;
NET "L2P_CLKN" IOSTANDARD = "DIFF_SSTL18_I";
NET "L2P_CLKP" LOC = K21;
NET "L2P_CLKP" IOSTANDARD = "DIFF_SSTL18_I";
NET "L2P_EDB" LOC = U20;
NET "L2P_EDB" IOSTANDARD = "SSTL18_I";
NET "L2P_RDY" LOC = U19;
NET "L2P_RDY" IOSTANDARD = "SSTL18_I";
NET "L_WR_RDY[0]" LOC = R20;
NET "L_WR_RDY[0]" IOSTANDARD = "SSTL18_I";
NET "L_WR_RDY[1]" LOC = T22;
NET "L_WR_RDY[1]" IOSTANDARD = "SSTL18_I";
NET "P_RD_D_RDY[0]" LOC = N16;
NET "P_RD_D_RDY[0]" IOSTANDARD = "SSTL18_I";
NET "P_RD_D_RDY[1]" LOC = P19;
NET "P_RD_D_RDY[1]" IOSTANDARD = "SSTL18_I";
NET "TX_ERROR" LOC = M17;
NET "TX_ERROR" IOSTANDARD = "SSTL18_I";
NET "VC_RDY[0]" LOC = B21;
NET "VC_RDY[0]" IOSTANDARD = "SSTL18_I";
NET "VC_RDY[1]" LOC = B22;
NET "VC_RDY[1]" IOSTANDARD = "SSTL18_I";
#####################################################################
### SPEC Generic Stuff
#####################################################################
NET "LED_RED" LOC = D5;
NET "LED_RED" IOSTANDARD = "LVCMOS25";
NET "LED_GREEN" LOC = E5;
NET "LED_GREEN" IOSTANDARD = "LVCMOS25";
NET "dac_cs1_n_o" LOC = A3;
NET "dac_cs1_n_o" IOSTANDARD = "LVCMOS25";
NET "dac_cs2_n_o" LOC = B3;
NET "dac_cs2_n_o" IOSTANDARD = "LVCMOS25";
#NET "dac_clr_n_o" LOC = F7;
#NET "dac_clr_n_o" IOSTANDARD = "LVCMOS25";
NET "dac_din_o" LOC = C4;
NET "dac_din_o" IOSTANDARD = "LVCMOS25";
NET "dac_sclk_o" LOC = A4;
NET "dac_sclk_o" IOSTANDARD = "LVCMOS25";
NET "BUTTON1_I" LOC = C22;
NET "BUTTON1_I" IOSTANDARD = "LVCMOS18";
NET "BUTTON2_I" LOC = D21;
NET "BUTTON2_I" IOSTANDARD = "LVCMOS18";
NET "fmc_scl_b" LOC = F7 ;
NET "fmc_scl_b" IOSTANDARD =LVCMOS25;
NET "fmc_sda_b" LOC = F8 ;
NET "fmc_sda_b" IOSTANDARD =LVCMOS25;
#net "led_n_o[0]" loc=c20;
#net "led_n_o[0]" IOSTANDARD=LVCMOS18;
#net "led_n_o[1]" loc=F18;
#net "led_n_o[1]" IOSTANDARD=LVCMOS18;
#net "led_n_o[2]" loc=f20;
#net "led_n_o[2]" IOSTANDARD=LVCMOS18;
#net "led_n_o[3]" loc=G19;
#net "led_n_o[3]" IOSTANDARD=LVCMOS18;
NET "carrier_onewire_b" LOC = D4;
NET "carrier_onewire_b" IOSTANDARD = "LVCMOS25";
NET "fmc_PRSNT_M2C_L_i" LOC="AB14";
NET "sfp_rxp_i" LOC= D15;
NET "sfp_rxn_i" LOC= C15;
NET "sfp_txp_o" LOC= B16;
NET "sfp_txn_o" LOC= A16;
NET "SFP_MOD_DEF1_b" LOC = C17;
NET "SFP_MOD_DEF1_b" IOSTANDARD = "LVCMOS25";
NET "SFP_MOD_DEF0_b" LOC = G15;
NET "SFP_MOD_DEF0_b" IOSTANDARD = "LVCMOS25";
NET "SFP_MOD_DEF2_b" LOC = G16;
NET "SFP_MOD_DEF2_b" IOSTANDARD = "LVCMOS25";
NET "SFP_RATE_SELECT_b" LOC = H14;
NET "SFP_RATE_SELECT_b" IOSTANDARD = "LVCMOS25";
NET "SFP_TX_FAULT_i" LOC = A17;
NET "SFP_TX_FAULT_i" IOSTANDARD = "LVCMOS25";
NET "SFP_TX_DISABLE_o" LOC = F17;
NET "SFP_TX_DISABLE_o" IOSTANDARD = "LVCMOS25";
NET "SFP_LOS_i" LOC = D18;
NET "SFP_LOS_i" IOSTANDARD = "LVCMOS25";
####################################################################################
# FineDelay V3/V4 pins
####################################################################################
NET "fd_clk_ref_n_i" LOC = L22 ;
NET "fd_clk_ref_n_i" IOSTANDARD =LVDS_25;
NET "fd_clk_ref_p_i" LOC = L20 ;
NET "fd_clk_ref_p_i" IOSTANDARD =LVDS_25;
NET "fd_delay_len_o[3]" LOC = W14 ;
NET "fd_delay_len_o[3]" IOSTANDARD =LVCMOS25;
NET "fd_delay_len_o[3]" SLEW = SLOW;
NET "fd_delay_len_o[3]" DRIVE = 4;
NET "fd_delay_len_o[2]" LOC = Y14 ;
NET "fd_delay_len_o[2]" IOSTANDARD =LVCMOS25;
NET "fd_delay_len_o[2]" SLEW = SLOW;
NET "fd_delay_len_o[2]" DRIVE = 4;
NET "fd_delay_len_o[1]" LOC = Y18 ;
NET "fd_delay_len_o[1]" IOSTANDARD =LVCMOS25;
NET "fd_delay_len_o[1]" SLEW = SLOW;
NET "fd_delay_len_o[1]" DRIVE = 4;
NET "fd_delay_len_o[0]" LOC = W17 ;
NET "fd_delay_len_o[0]" IOSTANDARD =LVCMOS25;
NET "fd_delay_len_o[0]" SLEW = SLOW;
NET "fd_delay_len_o[0]" DRIVE = 4;
NET "fd_delay_pulse_o[3]" LOC = W13 ;
NET "fd_delay_pulse_o[3]" IOSTANDARD =LVCMOS25;
NET "fd_delay_pulse_o[2]" LOC = V13 ;
NET "fd_delay_pulse_o[2]" IOSTANDARD =LVCMOS25;
NET "fd_delay_pulse_o[1]" LOC = U15 ;
NET "fd_delay_pulse_o[1]" IOSTANDARD =LVCMOS25;
NET "fd_delay_pulse_o[0]" LOC = T15 ;
NET "fd_delay_pulse_o[0]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[0]" LOC = A20 ;
NET "fd_delay_val_o[0]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[0]" SLEW = SLOW;
NET "fd_delay_val_o[0]" DRIVE = 4;
NET "fd_delay_val_o[1]" LOC = B20 ;
NET "fd_delay_val_o[1]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[1]" SLEW = SLOW;
NET "fd_delay_val_o[1]" DRIVE = 4;
NET "fd_delay_val_o[2]" LOC = A19 ;
NET "fd_delay_val_o[2]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[2]" SLEW = SLOW;
NET "fd_delay_val_o[2]" DRIVE = 4;
NET "fd_delay_val_o[3]" LOC = C19 ;
NET "fd_delay_val_o[3]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[3]" SLEW = SLOW;
NET "fd_delay_val_o[3]" DRIVE = 4;
NET "fd_delay_val_o[4]" LOC = W18 ;
NET "fd_delay_val_o[4]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[4]" SLEW = SLOW;
NET "fd_delay_val_o[4]" DRIVE = 4;
NET "fd_delay_val_o[5]" LOC = V17 ;
NET "fd_delay_val_o[5]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[5]" SLEW = SLOW;
NET "fd_delay_val_o[5]" DRIVE = 4;
NET "fd_delay_val_o[6]" LOC = C18 ;
NET "fd_delay_val_o[6]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[6]" SLEW = SLOW;
NET "fd_delay_val_o[6]" DRIVE = 4;
NET "fd_delay_val_o[7]" LOC = D17 ;
NET "fd_delay_val_o[7]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[7]" SLEW = SLOW;
NET "fd_delay_val_o[7]" DRIVE = 4;
NET "fd_delay_val_o[8]" LOC = W15 ;
NET "fd_delay_val_o[8]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[8]" SLEW = SLOW;
NET "fd_delay_val_o[8]" DRIVE = 4;
NET "fd_delay_val_o[9]" LOC = Y16 ;
NET "fd_delay_val_o[9]" IOSTANDARD =LVCMOS25;
NET "fd_delay_val_o[9]" SLEW = SLOW;
NET "fd_delay_val_o[9]" DRIVE = 4;
NET "fd_led_trig_o" LOC = V11 ;
NET "fd_led_trig_o" IOSTANDARD =LVCMOS25;
NET "fd_spi_cs_dac_n_o" LOC = AB16 ;
NET "fd_spi_cs_dac_n_o" IOSTANDARD =LVCMOS25;
NET "fd_spi_cs_gpio_n_o" LOC = R11 ;
NET "fd_spi_cs_gpio_n_o" IOSTANDARD =LVCMOS25;
NET "fd_spi_cs_pll_n_o" LOC = AB17 ;
NET "fd_spi_cs_pll_n_o" IOSTANDARD =LVCMOS25;
NET "fd_spi_miso_i" LOC = AB18 ;
NET "fd_spi_miso_i" IOSTANDARD =LVCMOS25;
NET "fd_spi_mosi_o" LOC = AA18 ;
NET "fd_spi_mosi_o" IOSTANDARD =LVCMOS25;
NET "fd_spi_sclk_o" LOC = Y17 ;
NET "fd_spi_sclk_o" IOSTANDARD =LVCMOS25;
NET "fd_dmtd_clk_o" LOC = T12 ;
NET "fd_dmtd_clk_o" IOSTANDARD =LVCMOS25;
NET "fd_dmtd_fb_out_i" LOC = U12 ;
NET "fd_dmtd_fb_out_i" IOSTANDARD =LVCMOS25;
NET "fd_tdc_cal_pulse_o" LOC = Y15 ;
NET "fd_tdc_cal_pulse_o" IOSTANDARD =LVCMOS25;
NET "fd_pll_status_i" LOC = AB15 ;
NET "fd_pll_status_i" IOSTANDARD =LVCMOS25;
NET "fd_tdc_alutrigger_o" LOC = W12 ;
NET "fd_tdc_alutrigger_o" IOSTANDARD =LVCMOS25;
NET "fd_ext_rst_n_o" LOC = T11 ;
NET "fd_ext_rst_n_o" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[0]" LOC = AB12 ;
NET "fd_tdc_d_b[0]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[1]" LOC = U8 ;
NET "fd_tdc_d_b[1]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[10]" LOC = R9 ;
NET "fd_tdc_d_b[10]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[11]" LOC = R8 ;
NET "fd_tdc_d_b[11]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[12]" LOC = AA6 ;
NET "fd_tdc_d_b[12]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[13]" LOC = AB6 ;
NET "fd_tdc_d_b[13]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[14]" LOC = U9 ;
NET "fd_tdc_d_b[14]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[15]" LOC = V9 ;
NET "fd_tdc_d_b[15]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[16]" LOC = Y7 ;
NET "fd_tdc_d_b[16]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[17]" LOC = AB7 ;
NET "fd_tdc_d_b[17]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[18]" LOC = AA8 ;
NET "fd_tdc_d_b[18]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[19]" LOC = AB8 ;
NET "fd_tdc_d_b[19]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[2]" LOC = AA12 ;
NET "fd_tdc_d_b[2]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[20]" LOC = T10 ;
NET "fd_tdc_d_b[20]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[21]" LOC = U10 ;
NET "fd_tdc_d_b[21]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[22]" LOC = W10 ;
NET "fd_tdc_d_b[22]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[23]" LOC = Y10 ;
NET "fd_tdc_d_b[23]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[24]" LOC = Y9 ;
NET "fd_tdc_d_b[24]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[25]" LOC = AB9 ;
NET "fd_tdc_d_b[25]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[26]" LOC = AA4 ;
NET "fd_tdc_d_b[26]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[27]" LOC = AB4 ;
NET "fd_tdc_d_b[27]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[3]" LOC = T8 ;
NET "fd_tdc_d_b[3]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[4]" LOC = W8 ;
NET "fd_tdc_d_b[4]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[5]" LOC = V7 ;
NET "fd_tdc_d_b[5]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[6]" LOC = Y6 ;
NET "fd_tdc_d_b[6]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[7]" LOC = W6 ;
NET "fd_tdc_d_b[7]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[8]" LOC = Y5 ;
NET "fd_tdc_d_b[8]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_d_b[9]" LOC = AB5 ;
NET "fd_tdc_d_b[9]" IOSTANDARD =LVCMOS25;
NET "fd_tdc_emptyf_i" LOC = Y12 ;
NET "fd_tdc_emptyf_i" IOSTANDARD =LVCMOS25;
NET "fd_tdc_oe_n_o" LOC = AA16 ;
NET "fd_tdc_oe_n_o" IOSTANDARD =LVCMOS25;
NET "fd_tdc_rd_n_o" LOC = AB13 ;
NET "fd_tdc_rd_n_o" IOSTANDARD =LVCMOS25;
NET "fd_tdc_start_dis_o" LOC = R13 ;
NET "fd_tdc_start_dis_o" IOSTANDARD =LVCMOS25;
NET "fd_tdc_start_n_i" LOC = F16 ;
NET "fd_tdc_start_n_i" IOSTANDARD =LVDS_25;
NET "fd_tdc_start_p_i" LOC = E16 ;
NET "fd_tdc_start_p_i" IOSTANDARD =LVDS_25;
NET "fd_tdc_stop_dis_o" LOC = T14 ;
NET "fd_tdc_stop_dis_o" IOSTANDARD =LVCMOS25;
NET "fd_tdc_wr_n_o" LOC = Y13 ;
NET "fd_tdc_wr_n_o" IOSTANDARD =LVCMOS25;
NET "fd_trig_a_i" LOC = Y11 ;
NET "fd_trig_a_i" IOSTANDARD =LVCMOS25;
NET "fd_dmtd_fb_in_i" LOC = AB11 ;
NET "fd_dmtd_fb_in_i" IOSTANDARD =LVCMOS25;
NET "fd_onewire_b" LOC = W11 ;
NET "fd_onewire_b" IOSTANDARD =LVCMOS25;
####################################################################################
# Misc
####################################################################################
NET "uart_rxd_i" LOC= A2;
NET "uart_rxd_i" IOSTANDARD=LVCMOS25;
NET "uart_txd_o" LOC= B2;
NET "uart_txd_o" IOSTANDARD=LVCMOS25;
NET "clk_20m_vcxo_i" TNM_NET = clk_20m_vcxo_i;
TIMESPEC TS_clk_20m_vcxo_i = PERIOD "clk_20m_vcxo_i" 50 ns HIGH 50%;
NET "clk_125m_pllref_p_i" TNM_NET = clk_125m_pllref_p_i;
TIMESPEC TS_clk_125m_pllref_p_i = PERIOD "clk_125m_pllref_p_i" 8 ns HIGH 50%;
NET "clk_125m_pllref_n_i" TNM_NET = clk_125m_pllref_n_i;
TIMESPEC TS_clk_125m_pllref_n_i = PERIOD "clk_125m_pllref_n_i" 8 ns HIGH 50%;
PIN "cmp_clk_dmtd_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
NET "fd_clk_ref_n_i" TNM_NET = fd_clk_ref_n_i;
TIMESPEC TS_fd_clk_ref_n_i = PERIOD "fd_clk_ref_n_i" 8 ns HIGH 50%;
NET "fd_clk_ref_p_i" TNM_NET = fd_clk_ref_p_i;
TIMESPEC TS_fd_clk_ref_p_i = PERIOD "fd_clk_ref_p_i" 8 ns HIGH 50%;
NET "clk_sys" TNM_NET = clk_sys;
TIMESPEC TS_clk_20m_vcxo_i = PERIOD "clk_20m_vcxo_i" 50 ns HIGH 50%;
TIMESPEC ts_ignore_crossclock = FROM "clk_sys" TO "fd_clk_ref_p_i" 10ns DATAPATHONLY;
TIMESPEC ts_ignore_crossclock2 = FROM "fd_clk_ref_p_i" TO "clk_sys" 10ns DATAPATHONLY;
#bank 0
#gennum
NET "l_rst_n" TIG;
NET "cmp_gn4124_core/rst_*" TIG;
#Created by Constraints Editor (xc6slx45t-fgg484-3) - 2011/01/20
NET "cmp_gn4124_core/cmp_clk_in/P_clk" TNM_NET = cmp_gn4124_core/cmp_clk_in/P_clk;
PIN "U_DDR_PLL/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
#Created by Constraints Editor (xc6slx45t-fgg484-3) - 2012/04/26
NET "clk_125m_gtp_n_i" TNM_NET = clk_125m_gtp_n_i;
TIMESPEC TS_clk_125m_gtp_n_i = PERIOD "clk_125m_gtp_n_i" 8 ns HIGH 50%;
NET "clk_125m_gtp_p_i" TNM_NET = clk_125m_gtp_p_i;
TIMESPEC TS_clk_125m_gtp_p_i = PERIOD "clk_125m_gtp_p_i" 8 ns HIGH 50%;
TIMESPEC ts_ignore_xclock1 = FROM "clk_sys" TO "clk_125m_pllref_n_i" 10ns DATAPATHONLY;
TIMESPEC ts_ignore_xclock2 = FROM "clk_125m_pllref_p_i" TO "clk_sys" 10ns DATAPATHONLY;
#Created by Constraints Editor (xc6slx45t-fgg484-3) - 2012/04/26
TIMESPEC ts_x3 = FROM "clk_sys" TO "U_GTP_ch1_rx_divclk" 10ns DATAPATHONLY;
TIMESPEC TS_x4 = FROM "U_GTP_ch1_rx_divclk" TO "clk_sys" 10ns DATAPATHONLY;
#Created by Constraints Editor (xc6slx45t-fgg484-3) - 2012/04/27
TIMESPEC TS_x5 = FROM "U_DDR_PLL_clkout0" TO "clk_sys" 10ns DATAPATHONLY;
TIMESPEC TS_x6 = FROM "clk_sys" TO "U_DDR_PLL_clkout0" 10ns DATAPATHONLY;
#Created by Constraints Editor (xc6slx45t-fgg484-3) - 2014/01/16
NET "U_GTP/ch1_gtp_clkout_int<1>" TNM_NET = U_GTP/ch1_gtp_clkout_int<1>;
TIMESPEC TS_U_GTP_ch1_gtp_clkout_int_1_ = PERIOD "U_GTP/ch1_gtp_clkout_int<1>" 125 MHz HIGH 50%;
TIMESPEC TS_cmp_gn4124_core_cmp_clk_in_P_clk = PERIOD "cmp_gn4124_core/cmp_clk_in/P_clk" 5 ns HIGH 50%;
spec_top_std.vhd 0000664 0000000 0000000 00000075656 12412174425 0032240 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top -------------------------------------------------------------------------------
-- Title : Fine Delay FMC SPEC (Simple PCI-Express FMC Carrier) top level
-- for stand alone opeartion.
-- Project : FMC DEL 1ns 4cha-stand-alone application (fmc-delay-1ns-4cha-sa)
-------------------------------------------------------------------------------
-- File : spec_top_std.vhd
-- Author : Jose Jimenez
-- Company : FREE INDEPENDENT ALLIANCE OF MAKERS (or looking for one)
-- Created : 2014-06-08
-- Last update: 2014-07-31
-- Platform : FPGA-generic
-- Standard : VHDL'93
-------------------------------------------------------------------------------
-- Description: Top level for the SPEC 1.1 (and later releases) cards with
-- one Fine Delay FMC operating in stand alone mode
-- Supports:
-- - SDB enumeration (SDB descriptor at 0x00000)
-- - White Rabbit and Etherbone
-- - Interrupts (via WR VIC)
-- - WB Debbuger component provding stand alone operation
-------------------------------------------------------------------------------
-- Adapted from
---- Title : Fine Delay FMC SPEC (Simple PCI-Express FMC Carrier) top level
---- Project : Fine Delay FMC (fmc-delay-1ns-4cha)
---- File : spec_top.vhd
---- Author : Tomasz Wlostowski
---- Company : CERN
---- Created : 2011-08-24
---- Last update: 2013-07-25
---- Platform : FPGA-generic
---- Standard : VHDL'93
-------------------------------------------------------------------------------
-- Revisions :
-- Date Version Author Description
-- 2014-06-08 1.0 jjimenez Created
-------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
use work.gn4124_core_pkg.all;
use work.gencores_pkg.all;
use work.wrcore_pkg.all;
use work.wr_fabric_pkg.all;
use work.wishbone_pkg.all;
use work.fine_delay_pkg.all;
use work.etherbone_pkg.all;
use work.wr_xilinx_pkg.all;
use work.genram_pkg.all;
use work.debugger_pkg.all;
use work.synthesis_descriptor.all;
library UNISIM;
use UNISIM.vcomponents.all;
entity spec_top_std is
generic
(
g_simulation : integer := 0
);
port
(
-------------------------------------------------------------------------
-- Standard SPEC ports (Gennum bridge, LEDS, Etc. Do not modify
-------------------------------------------------------------------------
clk_20m_vcxo_i : in std_logic; -- 20MHz VCXO clock
clk_125m_pllref_p_i : in std_logic; -- 125 MHz PLL reference
clk_125m_pllref_n_i : in std_logic;
clk_125m_gtp_n_i : in std_logic; -- 125 MHz GTP reference
clk_125m_gtp_p_i : in std_logic;
l_rst_n : in std_logic; -- reset from gn4124 (rstout18_n)
-- general purpose interface
gpio : inout std_logic_vector(1 downto 0); -- gpio[0] -> gn4124 gpio8
-- gpio[1] -> gn4124 gpio9
-- pcie to local [inbound data] - rx
p2l_rdy : out std_logic; -- rx buffer full flag
p2l_clkn : in std_logic; -- receiver source synchronous clock-
p2l_clkp : in std_logic; -- receiver source synchronous clock+
p2l_data : in std_logic_vector(15 downto 0); -- parallel receive data
p2l_dframe : in std_logic; -- receive frame
p2l_valid : in std_logic; -- receive data valid
-- inbound buffer request/status
p_wr_req : in std_logic_vector(1 downto 0); -- pcie write request
p_wr_rdy : out std_logic_vector(1 downto 0); -- pcie write ready
rx_error : out std_logic; -- receive error
-- local to parallel [outbound data] - tx
l2p_data : out std_logic_vector(15 downto 0); -- parallel transmit data
l2p_dframe : out std_logic; -- transmit data frame
l2p_valid : out std_logic; -- transmit data valid
l2p_clkn : out std_logic; -- transmitter source synchronous clock-
l2p_clkp : out std_logic; -- transmitter source synchronous clock+
l2p_edb : out std_logic; -- packet termination and discard
-- outbound buffer status
l2p_rdy : in std_logic; -- tx buffer full flag
l_wr_rdy : in std_logic_vector(1 downto 0); -- local-to-pcie write
p_rd_d_rdy : in std_logic_vector(1 downto 0); -- pcie-to-local read response data ready
tx_error : in std_logic; -- transmit error
vc_rdy : in std_logic_vector(1 downto 0); -- channel ready
-- font panel leds
led_red : out std_logic;
led_green : out std_logic;
-------------------------------------------------------------------------
-- PLL VCXO DAC Drive
-------------------------------------------------------------------------
dac_sclk_o : out std_logic;
dac_din_o : out std_logic;
--dac_clr_n_o : out std_logic;
dac_cs1_n_o : out std_logic;
dac_cs2_n_o : out std_logic;
button1_i : in std_logic := '1';
button2_i : in std_logic;
fmc_scl_b : inout std_logic := '1';
fmc_sda_b : inout std_logic := '1';
carrier_onewire_b : inout std_logic := '1';
fmc_prsnt_m2c_l_i : in std_logic;
-------------------------------------------------------------------------
-- SFP pins
-------------------------------------------------------------------------
sfp_txp_o : out std_logic;
sfp_txn_o : out std_logic;
sfp_rxp_i : in std_logic := '0';
sfp_rxn_i : in std_logic := '1';
sfp_mod_def0_b : in std_logic; -- detect pin
sfp_mod_def1_b : inout std_logic; -- scl
sfp_mod_def2_b : inout std_logic; -- sda
sfp_rate_select_b : inout std_logic := '0';
sfp_tx_fault_i : in std_logic := '0';
sfp_tx_disable_o : out std_logic;
sfp_los_i : in std_logic := '0';
-------------------------------------------------------------------------
-- Fine Delay Pins
-------------------------------------------------------------------------
fd_tdc_start_p_i : in std_logic;
fd_tdc_start_n_i : in std_logic;
fd_clk_ref_p_i : in std_logic;
fd_clk_ref_n_i : in std_logic;
fd_trig_a_i : in std_logic;
fd_tdc_cal_pulse_o : out std_logic;
fd_tdc_d_b : inout std_logic_vector(27 downto 0);
fd_tdc_emptyf_i : in std_logic;
fd_tdc_alutrigger_o : out std_logic;
fd_tdc_wr_n_o : out std_logic;
fd_tdc_rd_n_o : out std_logic;
fd_tdc_oe_n_o : out std_logic;
fd_led_trig_o : out std_logic;
fd_tdc_start_dis_o : out std_logic;
fd_tdc_stop_dis_o : out std_logic;
fd_spi_cs_dac_n_o : out std_logic;
fd_spi_cs_pll_n_o : out std_logic;
fd_spi_cs_gpio_n_o : out std_logic;
fd_spi_sclk_o : out std_logic;
fd_spi_mosi_o : out std_logic;
fd_spi_miso_i : in std_logic;
fd_delay_len_o : out std_logic_vector(3 downto 0);
fd_delay_val_o : out std_logic_vector(9 downto 0);
fd_delay_pulse_o : out std_logic_vector(3 downto 0);
fd_dmtd_clk_o : out std_logic;
fd_dmtd_fb_in_i : in std_logic;
fd_dmtd_fb_out_i : in std_logic;
fd_pll_status_i : in std_logic;
fd_ext_rst_n_o : out std_logic;
fd_onewire_b : inout std_logic;
-----------------------------------------
-- UART
-----------------------------------------
uart_rxd_i : in std_logic;
uart_txd_o : out std_logic
);
end spec_top_std;
architecture rtl of spec_top_std is
signal wrpc_uart_rxd_i: std_logic;
signal wrpc_uart_txd_o: std_logic;
component spec_serial_dac_arb
generic(
g_invert_sclk : boolean;
g_num_extra_bits : integer);
port (
clk_i : in std_logic;
rst_n_i : in std_logic;
val1_i : in std_logic_vector(15 downto 0);
load1_i : in std_logic;
val2_i : in std_logic_vector(15 downto 0);
load2_i : in std_logic;
dac_cs_n_o : out std_logic_vector(1 downto 0);
dac_clr_n_o : out std_logic;
dac_sclk_o : out std_logic;
dac_din_o : out std_logic);
end component;
component fd_ddr_pll
port (
RST : in std_logic;
LOCKED : out std_logic;
CLK_IN1_P : in std_logic;
CLK_IN1_N : in std_logic;
CLK_OUT1 : out std_logic;
CLK_OUT2 : out std_logic);
end component;
component spec_reset_gen
port (
clk_sys_i : in std_logic;
rst_pcie_n_a_i : in std_logic;
rst_button_n_a_i : in std_logic;
rst_n_o : out std_logic);
end component;
function f_resize_slv (x : std_logic_vector; len : integer) return std_logic_vector is
variable tmp : std_logic_vector(len-1 downto 0);
begin
if(len > x'length) then
tmp(x'length-1 downto 0) := x;
tmp(len-1 downto x'length) := (others => '0');
elsif(len < x'length) then
tmp := x(len-1 downto 0);
else
tmp := x;
end if;
return tmp;
end f_resize_slv;
function f_int2bool (x : integer) return boolean is
begin
if(x = 0) then
return false;
else
return true;
end if;
end f_int2bool;
constant c_NUM_WB_MASTERS : integer := 4;
constant c_NUM_WB_SLAVES : integer := 3;
constant c_MASTER_GENNUM : integer := 0;
constant c_MASTER_ETHERBONE : integer := 1;
constant c_MASTER_DEBUGGER : integer := 2;
constant c_SLAVE_FD : integer := 0;
constant c_SLAVE_WRCORE : integer := 1;
constant c_SLAVE_VIC : integer := 2;
constant c_SLAVE_DEBG : integer := 3;
constant c_DESC_SYNTHESIS : integer := 4;
constant c_DESC_REPO_URL : integer := 5;
constant c_WRCORE_BRIDGE_SDB : t_sdb_bridge := f_xwb_bridge_manual_sdb(x"0003ffff", x"00030000");
constant c_INTERCONNECT_LAYOUT : t_sdb_record_array(c_NUM_WB_MASTERS+1 downto 0) :=
(c_SLAVE_WRCORE => f_sdb_embed_bridge(c_WRCORE_BRIDGE_SDB, x"000c0000"),
c_SLAVE_FD => f_sdb_embed_device(c_FD_SDB_DEVICE, x"00080000"),
c_SLAVE_VIC => f_sdb_embed_device(c_xwb_vic_sdb, x"00090000"),
c_SLAVE_DEBG => f_sdb_embed_device(c_xwb_dbg_slave_sdb, x"00040000"),
c_DESC_SYNTHESIS => f_sdb_embed_synthesis(c_sdb_synthesis_info),
c_DESC_REPO_URL => f_sdb_embed_repo_url(c_sdb_repo_url));
constant c_SDB_ADDRESS : t_wishbone_address := x"00000000";
constant c_VIC_VECTOR_TABLE : t_wishbone_address_array(0 to 0) :=
(0 => x"00080000");
signal pllout_clk_sys : std_logic;
signal pllout_clk_dmtd : std_logic;
signal pllout_clk_fb_pllref : std_logic;
signal pllout_clk_fb_dmtd : std_logic;
signal clk_20m_vcxo_buf : std_logic;
signal clk_125m_pllref : std_logic;
signal clk_125m_gtp : std_logic;
signal clk_sys : std_logic;
signal clk_dmtd : std_logic;
signal dac_hpll_load_p1 : std_logic;
signal dac_dpll_load_p1 : std_logic;
signal dac_hpll_data : std_logic_vector(15 downto 0);
signal dac_dpll_data : std_logic_vector(15 downto 0);
signal phy_tx_data : std_logic_vector(7 downto 0);
signal phy_tx_k : std_logic;
signal phy_tx_disparity : std_logic;
signal phy_tx_enc_err : std_logic;
signal phy_rx_data : std_logic_vector(7 downto 0);
signal phy_rx_rbclk : std_logic;
signal phy_rx_k : std_logic;
signal phy_rx_enc_err : std_logic;
signal phy_rx_bitslide : std_logic_vector(3 downto 0);
signal phy_rst : std_logic;
signal phy_loopen : std_logic;
signal local_reset_n : std_logic;
signal cnx_master_out : t_wishbone_master_out_array(c_NUM_WB_MASTERS-1 downto 0);
signal cnx_master_in : t_wishbone_master_in_array(c_NUM_WB_MASTERS-1 downto 0);
signal cnx_slave_out : t_wishbone_slave_out_array(c_NUM_WB_SLAVES-1 downto 0);
signal cnx_slave_in : t_wishbone_slave_in_array(c_NUM_WB_SLAVES-1 downto 0);
signal dcm_clk_ref_0, dcm_clk_ref_180 : std_logic;
signal fd_tdc_start : std_logic;
signal tdc_data_out, tdc_data_in : std_logic_vector(27 downto 0);
signal tdc_data_oe : std_logic;
signal tm_link_up : std_logic;
signal tm_utc : std_logic_vector(39 downto 0);
signal tm_cycles : std_logic_vector(27 downto 0);
signal tm_time_valid : std_logic;
signal tm_clk_aux_lock_en : std_logic;
signal tm_clk_aux_locked : std_logic;
signal tm_dac_value : std_logic_vector(23 downto 0);
signal tm_dac_wr : std_logic;
signal ddr_pll_reset : std_logic;
signal ddr_pll_locked, fd_pll_status : std_logic;
signal wrc_scl_out, wrc_scl_in, wrc_sda_out, wrc_sda_in : std_logic;
signal fd_scl_out, fd_scl_in, fd_sda_out, fd_sda_in : std_logic;
signal sfp_scl_out, sfp_scl_in, sfp_sda_out, sfp_sda_in : std_logic;
signal wrc_owr_en, wrc_owr_in : std_logic_vector(1 downto 0);
signal fd_owr_en, fd_owr_in : std_logic;
signal fd_irq : std_logic;
signal gn_wb_adr : std_logic_vector(31 downto 0);
signal pps : std_logic;
signal etherbone_rst_n : std_logic;
signal etherbone_src_out : t_wrf_source_out;
signal etherbone_src_in : t_wrf_source_in;
signal etherbone_snk_out : t_wrf_sink_out;
signal etherbone_snk_in : t_wrf_sink_in;
signal etherbone_cfg_in : t_wishbone_slave_in;
signal etherbone_cfg_out : t_wishbone_slave_out;
signal vic_irqs : std_logic_vector(31 downto 0);
attribute buffer_type : string; --" {bufgdll | ibufg | bufgp | ibuf | bufr | none}";
attribute buffer_type of clk_125m_pllref : signal is "BUFG";
begin
U_Reset_Generator : spec_reset_gen
port map (
clk_sys_i => clk_sys,
rst_pcie_n_a_i => l_rst_n,
rst_button_n_a_i => button1_i,
rst_n_o => local_reset_n);
U_Buf_CLK_PLL : IBUFGDS
generic map (
DIFF_TERM => true,
IBUF_LOW_PWR => true -- Low power (TRUE) vs. performance (FALSE) setting for referenced
)
port map (
O => clk_125m_pllref, -- Buffer output
I => clk_125m_pllref_p_i, -- Diff_p buffer input (connect directly to top-level port)
IB => clk_125m_pllref_n_i -- Diff_n buffer input (connect directly to top-level port)
);
U_Buf_CLK_GTP : IBUFDS
generic map (
DIFF_TERM => true,
IBUF_LOW_PWR => false -- Low power (TRUE) vs. performance (FALSE) setting for referenced
)
port map (
O => clk_125m_gtp,
I => clk_125m_gtp_p_i,
IB => clk_125m_gtp_n_i
);
cmp_sys_clk_pll : PLL_BASE
generic map (
BANDWIDTH => "OPTIMIZED",
CLK_FEEDBACK => "CLKFBOUT",
COMPENSATION => "INTERNAL",
DIVCLK_DIVIDE => 1,
CLKFBOUT_MULT => 8,
CLKFBOUT_PHASE => 0.000,
CLKOUT0_DIVIDE => 16, -- 62.5 MHz
CLKOUT0_PHASE => 0.000,
CLKOUT0_DUTY_CYCLE => 0.500,
CLKOUT1_DIVIDE => 16, -- 125 MHz
CLKOUT1_PHASE => 0.000,
CLKOUT1_DUTY_CYCLE => 0.500,
CLKOUT2_DIVIDE => 16,
CLKOUT2_PHASE => 0.000,
CLKOUT2_DUTY_CYCLE => 0.500,
CLKIN_PERIOD => 8.0,
REF_JITTER => 0.016)
port map (
CLKFBOUT => pllout_clk_fb_pllref,
CLKOUT0 => pllout_clk_sys,
CLKOUT1 => open,
CLKOUT2 => open,
CLKOUT3 => open,
CLKOUT4 => open,
CLKOUT5 => open,
LOCKED => open,
RST => '0',
CLKFBIN => pllout_clk_fb_pllref,
CLKIN => clk_125m_pllref);
cmp_dmtd_clk_pll : PLL_BASE
generic map (
BANDWIDTH => "OPTIMIZED",
CLK_FEEDBACK => "CLKFBOUT",
COMPENSATION => "INTERNAL",
DIVCLK_DIVIDE => 1,
CLKFBOUT_MULT => 50,
CLKFBOUT_PHASE => 0.000,
CLKOUT0_DIVIDE => 16, -- 62.5 MHz
CLKOUT0_PHASE => 0.000,
CLKOUT0_DUTY_CYCLE => 0.500,
CLKOUT1_DIVIDE => 16, -- 62.5 MHz
CLKOUT1_PHASE => 0.000,
CLKOUT1_DUTY_CYCLE => 0.500,
CLKOUT2_DIVIDE => 8,
CLKOUT2_PHASE => 0.000,
CLKOUT2_DUTY_CYCLE => 0.500,
CLKIN_PERIOD => 50.0,
REF_JITTER => 0.016)
port map (
CLKFBOUT => pllout_clk_fb_dmtd,
CLKOUT0 => pllout_clk_dmtd,
CLKOUT1 => open, --pllout_clk_sys,
CLKOUT2 => open,
CLKOUT3 => open,
CLKOUT4 => open,
CLKOUT5 => open,
LOCKED => open,
RST => '0',
CLKFBIN => pllout_clk_fb_dmtd,
CLKIN => clk_20m_vcxo_buf);
cmp_clk_sys_buf : BUFG
port map (
O => clk_sys,
I => pllout_clk_sys);
cmp_clk_dmtd_buf : BUFG
port map (
O => clk_dmtd,
I => pllout_clk_dmtd);
cmp_clk_vcxo : BUFG
port map (
O => clk_20m_vcxo_buf,
I => clk_20m_vcxo_i);
-------------------------------------------------------------------------------
-- Gennum core
-------------------------------------------------------------------------------
cmp_gn4124_core : gn4124_core
port map
(
---------------------------------------------------------
-- Control and status
rst_n_a_i => L_RST_N,
status_o => open,
---------------------------------------------------------
-- P2L Direction
--
-- Source Sync DDR related signals
p2l_clk_p_i => P2L_CLKp,
p2l_clk_n_i => P2L_CLKn,
p2l_data_i => P2L_DATA,
p2l_dframe_i => P2L_DFRAME,
p2l_valid_i => P2L_VALID,
-- P2L Control
p2l_rdy_o => P2L_RDY,
p_wr_req_i => P_WR_REQ,
p_wr_rdy_o => P_WR_RDY,
rx_error_o => RX_ERROR,
vc_rdy_i => VC_RDY,
---------------------------------------------------------
-- L2P Direction
--
-- Source Sync DDR related signals
l2p_clk_p_o => L2P_CLKp,
l2p_clk_n_o => L2P_CLKn,
l2p_data_o => L2P_DATA,
l2p_dframe_o => L2P_DFRAME,
l2p_valid_o => L2P_VALID,
-- L2P Control
l2p_edb_o => L2P_EDB,
l2p_rdy_i => L2P_RDY,
l_wr_rdy_i => L_WR_RDY,
p_rd_d_rdy_i => P_RD_D_RDY,
tx_error_i => TX_ERROR,
---------------------------------------------------------
-- Interrupt interface
dma_irq_o => open,
irq_p_i => '0',
irq_p_o => open,
dma_reg_clk_i => clk_sys,
---------------------------------------------------------
-- CSR wishbone interface (master pipelined)
csr_clk_i => clk_sys,
csr_adr_o => gn_wb_adr,
csr_dat_o => cnx_slave_in(c_MASTER_GENNUM).dat,
csr_sel_o => cnx_slave_in(c_MASTER_GENNUM).sel,
csr_stb_o => cnx_slave_in(c_MASTER_GENNUM).stb,
csr_we_o => cnx_slave_in(c_MASTER_GENNUM).we,
csr_cyc_o => cnx_slave_in(c_MASTER_GENNUM).cyc,
csr_dat_i => cnx_slave_out(c_MASTER_GENNUM).dat,
csr_ack_i => cnx_slave_out(c_MASTER_GENNUM).ack,
csr_stall_i => cnx_slave_out(c_MASTER_GENNUM).stall,
dma_clk_i => clk_sys,
dma_ack_i => '1',
dma_stall_i => '0',
dma_dat_i => (others => '0'),
dma_reg_adr_i => (others => '0'),
dma_reg_dat_i => (others => '0'),
dma_reg_sel_i => (others => '0'),
dma_reg_stb_i => '0',
dma_reg_cyc_i => '0',
dma_reg_we_i => '0'
);
cnx_slave_in(c_MASTER_GENNUM).adr <= gn_wb_adr(29 downto 0) & "00";
-------------------------------------------------------------------------------
-- Top level interconnect and interrupt controller
-------------------------------------------------------------------------------
U_Intercon : xwb_sdb_crossbar
generic map (
g_num_masters => c_NUM_WB_SLAVES,
g_num_slaves => c_NUM_WB_MASTERS,
g_registered => true,
g_wraparound => true,
g_layout => c_INTERCONNECT_LAYOUT,
g_sdb_addr => c_SDB_ADDRESS)
port map (
clk_sys_i => clk_sys,
rst_n_i => local_reset_n,
slave_i => cnx_slave_in,
slave_o => cnx_slave_out,
master_i => cnx_master_in,
master_o => cnx_master_out);
U_VIC : xwb_vic
generic map (
g_interface_mode => PIPELINED,
g_address_granularity => BYTE,
g_num_interrupts => 1,
g_init_vectors => c_VIC_VECTOR_TABLE)
port map (
clk_sys_i => clk_sys,
rst_n_i => local_reset_n,
slave_i => cnx_master_out(c_SLAVE_VIC),
slave_o => cnx_master_in(c_SLAVE_VIC),
irqs_i(0) => fd_irq,
irq_master_o => GPIO(0));
-------------------------------------------------------------------------------
-- White Rabbit Core + PHY
-------------------------------------------------------------------------------
-- Tristates for FMC EEPROM
fmc_scl_b <= '0' when (wrc_scl_out = '0' or fd_scl_out = '0') else 'Z';
fmc_sda_b <= '0' when (wrc_sda_out = '0' or fd_sda_out = '0') else 'Z';
wrc_scl_in <= fmc_scl_b;
wrc_sda_in <= fmc_sda_b;
fd_scl_in <= fmc_scl_b;
fd_sda_in <= fmc_sda_b;
-- Tristates for SFP EEPROM
sfp_mod_def1_b <= '0' when sfp_scl_out = '0' else 'Z';
sfp_mod_def2_b <= '0' when sfp_sda_out = '0' else 'Z';
sfp_scl_in <= sfp_mod_def1_b;
sfp_sda_in <= sfp_mod_def2_b;
carrier_onewire_b <= '0' when wrc_owr_en(0) = '1' else 'Z';
wrc_owr_in(0) <= carrier_onewire_b;
U_WR_CORE : xwr_core
generic map (
g_simulation => g_simulation,
g_phys_uart => true,
g_virtual_uart => true,
g_with_external_clock_input => false,
g_aux_clks => 1,
g_dpram_initf => "wrc-ethb.ram",
g_interface_mode => PIPELINED,
g_address_granularity => BYTE,
g_softpll_enable_debugger => false,
g_aux_sdb => c_etherbone_sdb)
port map (
clk_sys_i => clk_sys,
clk_dmtd_i => clk_dmtd,
clk_ref_i => clk_125m_pllref,
clk_aux_i(0) => dcm_clk_ref_0,
rst_n_i => local_reset_n,
dac_hpll_load_p1_o => dac_hpll_load_p1,
dac_hpll_data_o => dac_hpll_data,
dac_dpll_load_p1_o => dac_dpll_load_p1,
dac_dpll_data_o => dac_dpll_data,
phy_ref_clk_i => clk_125m_pllref,
phy_tx_data_o => phy_tx_data,
phy_tx_k_o => phy_tx_k,
phy_tx_disparity_i => phy_tx_disparity,
phy_tx_enc_err_i => phy_tx_enc_err,
phy_rx_data_i => phy_rx_data,
phy_rx_rbclk_i => phy_rx_rbclk,
phy_rx_k_i => phy_rx_k,
phy_rx_enc_err_i => phy_rx_enc_err,
phy_rx_bitslide_i => phy_rx_bitslide,
phy_rst_o => phy_rst,
phy_loopen_o => phy_loopen,
led_act_o => open,
led_link_o => LED_GREEN,
scl_o => wrc_scl_out,
scl_i => wrc_scl_in,
sda_o => wrc_sda_out,
sda_i => wrc_sda_in,
sfp_scl_o => sfp_scl_out,
sfp_scl_i => sfp_scl_in,
sfp_sda_o => sfp_sda_out,
sfp_sda_i => sfp_sda_in,
sfp_det_i => sfp_mod_def0_b,
uart_rxd_i => wrpc_uart_rxd_i,
uart_txd_o => wrpc_uart_txd_o,
owr_en_o => wrc_owr_en,
owr_i => wrc_owr_in,
slave_i => cnx_master_out(c_SLAVE_WRCORE),
slave_o => cnx_master_in(c_SLAVE_WRCORE),
aux_master_o => etherbone_cfg_in,
aux_master_i => etherbone_cfg_out,
wrf_src_o => etherbone_snk_in,
wrf_src_i => etherbone_snk_out,
wrf_snk_o => etherbone_src_in,
wrf_snk_i => etherbone_src_out,
tm_link_up_o => tm_link_up,
tm_dac_value_o => tm_dac_value,
tm_dac_wr_o(0) => tm_dac_wr,
tm_clk_aux_lock_en_i(0) => tm_clk_aux_lock_en,
tm_clk_aux_locked_o(0) => tm_clk_aux_locked,
tm_time_valid_o => tm_time_valid,
tm_tai_o => tm_utc,
tm_cycles_o => tm_cycles,
btn1_i => '0',
btn2_i => '0',
rst_aux_n_o => etherbone_rst_n,
pps_p_o => pps
);
U_GTP : wr_gtp_phy_spartan6
generic map (
g_simulation => g_simulation,
g_enable_ch0 => 0,
g_enable_ch1 => 1)
port map (
gtp_clk_i => clk_125m_gtp,
ch0_ref_clk_i => clk_125m_pllref,
ch0_tx_data_i => x"00",
ch0_tx_k_i => '0',
ch0_tx_disparity_o => open,
ch0_tx_enc_err_o => open,
ch0_rx_rbclk_o => open,
ch0_rx_data_o => open,
ch0_rx_k_o => open,
ch0_rx_enc_err_o => open,
ch0_rx_bitslide_o => open,
ch0_rst_i => '1',
ch0_loopen_i => '0',
ch1_ref_clk_i => clk_125m_pllref,
ch1_tx_data_i => phy_tx_data,
ch1_tx_k_i => phy_tx_k,
ch1_tx_disparity_o => phy_tx_disparity,
ch1_tx_enc_err_o => phy_tx_enc_err,
ch1_rx_data_o => phy_rx_data,
ch1_rx_rbclk_o => phy_rx_rbclk,
ch1_rx_k_o => phy_rx_k,
ch1_rx_enc_err_o => phy_rx_enc_err,
ch1_rx_bitslide_o => phy_rx_bitslide,
ch1_rst_i => phy_rst,
ch1_loopen_i => '0', --phy_loopen,
pad_txn0_o => open,
pad_txp0_o => open,
pad_rxn0_i => '0',
pad_rxp0_i => '0',
pad_txn1_o => sfp_txn_o,
pad_txp1_o => sfp_txp_o,
pad_rxn1_i => sfp_rxn_i,
pad_rxp1_i => sfp_rxp_i);
U_Etherbone : eb_slave_core
generic map (
g_sdb_address => f_resize_slv(c_sdb_address, 64))
port map (
clk_i => clk_sys,
nRst_i => etherbone_rst_n,
src_o => etherbone_src_out,
src_i => etherbone_src_in,
snk_o => etherbone_snk_out,
snk_i => etherbone_snk_in,
cfg_slave_o => etherbone_cfg_out,
cfg_slave_i => etherbone_cfg_in,
master_o => cnx_slave_in(c_MASTER_ETHERBONE),
master_i => cnx_slave_out(c_MASTER_ETHERBONE));
--cnx_slave_in(c_MASTER_ETHERBONE).cyc <= '0';
U_DAC_ARB : spec_serial_dac_arb
generic map (
g_invert_sclk => false,
g_num_extra_bits => 8)
port map (
clk_i => clk_sys,
rst_n_i => local_reset_n,
val1_i => dac_dpll_data,
load1_i => dac_dpll_load_p1,
val2_i => dac_hpll_data,
load2_i => dac_hpll_load_p1,
dac_cs_n_o(0) => dac_cs1_n_o,
dac_cs_n_o(1) => dac_cs2_n_o,
-- dac_clr_n_o => open,
dac_sclk_o => dac_sclk_o,
dac_din_o => dac_din_o);
-- dac_clr_n_o <= '1';
sfp_tx_disable_o <= '0';
-------------------------------------------------------------------------------
-- FINE DELAY INSTANTIATION
-------------------------------------------------------------------------------
cmp_fd_tdc_start : IBUFDS
generic map (
DIFF_TERM => true,
IBUF_LOW_PWR => false -- Low power (TRUE) vs. performance (FALSE) setting for referenced
)
port map (
O => fd_tdc_start, -- Buffer output
I => fd_tdc_start_p_i, -- Diff_p buffer input (connect directly to top-level port)
IB => fd_tdc_start_n_i -- Diff_n buffer input (connect directly to top-level port)
);
U_DDR_PLL : fd_ddr_pll
port map (
RST => ddr_pll_reset,
LOCKED => ddr_pll_locked,
CLK_IN1_P => fd_clk_ref_p_i,
CLK_IN1_N => fd_clk_ref_n_i,
CLK_OUT1 => dcm_clk_ref_0,
CLK_OUT2 => dcm_clk_ref_180);
ddr_pll_reset <= not fd_pll_status_i;
fd_pll_status <= fd_pll_status_i and ddr_pll_locked;
U_FineDelay_Core : fine_delay_core
generic map (
g_with_wr_core => true,
g_simulation => f_int2bool(g_simulation),
g_interface_mode => PIPELINED,
g_address_granularity => BYTE)
port map (
clk_ref_0_i => dcm_clk_ref_0,
clk_ref_180_i => dcm_clk_ref_180,
clk_sys_i => clk_sys,
clk_dmtd_i => clk_dmtd,
rst_n_i => local_reset_n,
dcm_reset_o => open,
dcm_locked_i => ddr_pll_locked,
trig_a_i => fd_trig_a_i,
tdc_cal_pulse_o => fd_tdc_cal_pulse_o,
tdc_start_i => fd_tdc_start,
dmtd_fb_in_i => fd_dmtd_fb_in_i,
dmtd_fb_out_i => fd_dmtd_fb_out_i,
dmtd_samp_o => fd_dmtd_clk_o,
led_trig_o => fd_led_trig_o,
ext_rst_n_o => fd_ext_rst_n_o,
pll_status_i => fd_pll_status,
acam_d_o => tdc_data_out,
acam_d_i => tdc_data_in,
acam_d_oen_o => tdc_data_oe,
acam_emptyf_i => fd_tdc_emptyf_i,
acam_alutrigger_o => fd_tdc_alutrigger_o,
acam_wr_n_o => fd_tdc_wr_n_o,
acam_rd_n_o => fd_tdc_rd_n_o,
acam_start_dis_o => fd_tdc_start_dis_o,
acam_stop_dis_o => fd_tdc_stop_dis_o,
spi_cs_dac_n_o => fd_spi_cs_dac_n_o,
spi_cs_pll_n_o => fd_spi_cs_pll_n_o,
spi_cs_gpio_n_o => fd_spi_cs_gpio_n_o,
spi_sclk_o => fd_spi_sclk_o,
spi_mosi_o => fd_spi_mosi_o,
spi_miso_i => fd_spi_miso_i,
delay_len_o => fd_delay_len_o,
delay_val_o => fd_delay_val_o,
delay_pulse_o => fd_delay_pulse_o,
tm_link_up_i => tm_link_up,
tm_time_valid_i => tm_time_valid,
tm_cycles_i => tm_cycles,
tm_utc_i => tm_utc,
tm_clk_aux_lock_en_o => tm_clk_aux_lock_en,
tm_clk_aux_locked_i => tm_clk_aux_locked,
tm_clk_dmtd_locked_i => '1', -- FIXME: fan out real signal from the
-- WRCore
tm_dac_value_i => tm_dac_value,
tm_dac_wr_i => tm_dac_wr,
owr_en_o => fd_owr_en,
owr_i => fd_owr_in,
i2c_scl_oen_o => fd_scl_out,
i2c_scl_i => fd_scl_in,
i2c_sda_oen_o => fd_sda_out,
i2c_sda_i => fd_sda_in,
fmc_present_n_i => fmc_prsnt_m2c_l_i,
wb_adr_i => cnx_master_out(c_SLAVE_FD).adr,
wb_dat_i => cnx_master_out(c_SLAVE_FD).dat,
wb_dat_o => cnx_master_in(c_SLAVE_FD).dat,
wb_sel_i => cnx_master_out(c_SLAVE_FD).sel,
wb_cyc_i => cnx_master_out(c_SLAVE_FD).cyc,
wb_stb_i => cnx_master_out(c_SLAVE_FD).stb,
wb_we_i => cnx_master_out(c_SLAVE_FD).we,
wb_ack_o => cnx_master_in(c_SLAVE_FD).ack,
wb_stall_o => cnx_master_in(c_SLAVE_FD).stall,
wb_irq_o => fd_irq);
-- tristate buffer for the TDC data bus:
fd_tdc_d_b <= tdc_data_out when tdc_data_oe = '1' else (others => 'Z');
fd_tdc_oe_n_o <= '1';
tdc_data_in <= fd_tdc_d_b;
fd_onewire_b <= '0' when fd_owr_en = '1' else 'Z';
fd_owr_in <= fd_onewire_b;
U_Debugger : wb_debugger
generic map(
g_dbg_init_file => "FD_node"
)
port map(
clk_sys => clk_sys,
reset_n => local_reset_n,
master_i => cnx_slave_out(c_MASTER_DEBUGGER),
master_o => cnx_slave_in(c_MASTER_DEBUGGER),
slave_i => cnx_master_out(c_SLAVE_DEBG),
slave_o => cnx_master_in(c_SLAVE_DEBG),
wrpc_uart_rxd_i => wrpc_uart_rxd_i,
wrpc_uart_txd_o => wrpc_uart_txd_o,
uart_rxd_i => uart_rxd_i,
uart_txd_o => uart_txd_o,
dbg_indicator => LED_RED,
dbg_control_select => button2_i
);
end rtl;
synthesis_descriptor.vhd 0000664 0000000 0000000 00000003414 12412174425 0034020 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/fmc-delay/top -------------------------------------------------------------------------------
-- Title : Wishbone Debugger SDB descriptor
-- Project : FMC DEL 1ns 4cha-stand-alone application (fmc-delay-1ns-4cha-sa)
-------------------------------------------------------------------------------
-- File : synthesis_descriptor.vhd
-- Author : Jose Jimenez
-- Company : University of Granada
-- Created : 2014-07-31
-- Last update: 2014-07-36
-- Platform : FPGA-generic
-- Standard : VHDL'93
-------------------------------------------------------------------------------
-- Description: SDB descriptor for the WB Debugger and top level of the FMC used
-- on a SPEC carrier.
-- Contains synthesis & source repository information.
-- Warning: this file is modified whenever a synthesis is executed.
-------------------------------------------------------------------------------
library ieee;
use ieee.STD_LOGIC_1164.all;
use work.wishbone_pkg.all;
package synthesis_descriptor is
constant c_sdb_FMC_DEL_synthesis_info : t_sdb_synthesis :=
(
syn_module_name => "spec-fine-delay ",
syn_commit_id => "00000000000000000000000000000000",
syn_tool_name => "ISE ",
syn_tool_version => x"00000147",
syn_date => x"20140731",
syn_username => "jjimenez ");
constant c_sdb_repo_url : t_sdb_repo_url :=
(
repo_url => "git://ohwr.org/fmc-projects/fmc-delay-1ns-8cha-sa.git "
);
constant c_sdb_synthesis_info : t_sdb_synthesis :=
(
syn_module_name => "wb-debugger ",
syn_commit_id => "00000000000000000000000000000000",
syn_tool_name => "ISE ",
syn_tool_version => x"00000147",
syn_date => x"20140731",
syn_username => "jjimenez ");
end package synthesis_descriptor;
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_gw/wb_debugger.vhd 0000664 0000000 0000000 00000033054 12412174425 0027424 0 ustar 00root root 0000000 0000000 -------------------------------------------------------------------------------
-- Title : Wishbone Debugger component
-- Project : FMC DEL 1ns 4cha-stand-alone application (fmc-delay-1ns-4cha-sa)
-------------------------------------------------------------------------------
-- File : wb_debugger.vhd
-- Author : Jose Jimenez
-- Company : University of Granada
-- Created : 2014-06-08
-- Last update: 2014-07-31
-- Platform : FPGA-generic
-- Standard : VHDL'93
-------------------------------------------------------------------------------
-- Revisions :
-- Date Version Author Description
-- 2014-06-08 1.0 jjimenez Created
-------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
use work.wishbone_pkg.all;
use work.genram_pkg.all;
use work.wb_irq_pkg.all;
use work.debugger_pkg.all;
use work.synthesis_descriptor.all;
entity wb_debugger is
generic(
g_dbg_dpram_size : integer;
g_dbg_init_file : string;
g_reset_vector : t_wishbone_address := x"00000000"; -- if wb_irq_lm32 from general-cores::proposed-master
g_msi_queues : natural := 1;
g_profile : string := "medium_icache_debug";
g_internal_time_ref : boolean := true;
g_timers : integer := 1;
g_slave_interface_mode: t_wishbone_interface_mode := PIPELINED;
g_slave_granularity : t_wishbone_address_granularity := BYTE);
port(
clk_sys : in std_logic;
reset_n : in std_logic;
master_i : in t_wishbone_master_in;
master_o : out t_wishbone_master_out;
slave_i : in t_wishbone_slave_in;
slave_o : out t_wishbone_slave_out;
wrpc_uart_rxd_i : inout std_logic;
wrpc_uart_txd_o : inout std_logic;
uart_rxd_i : in std_logic;
uart_txd_o : out std_logic;
dbg_indicator : out std_logic;
dbg_control_select : in std_logic);
end wb_debugger;
architecture Behavioral of wb_debugger is
function f_check_if_lm32_firmware_necessary return boolean is
begin
if(g_dbg_init_file /= "") then
return true;
else
return false;
end if;
end function;
function f_generate_irq_timer return integer is
begin
if(g_timers /= 0) then
return 1;
else
return 0;
end if;
end function;
function f_generate_time_ref return integer is
begin
if(g_internal_time_ref) then
return 1;
else
return 0;
end if;
end function;
function f_choose_lm32_firmware_file return string is
begin
if(g_dbg_init_file = "debugger") then
report "[Dbg Core] Using debugging firmware." severity note;
return "../../dbg.ram";
elsif (g_dbg_init_file = "FD_node") then
report "[Dbg Core] Using FMC Delay stand alone node firmware." severity note;
return "../../fd_std.ram";
else
report "[Dbg Core] Using user provided firmware." severity note;
return g_dbg_init_file;
end if;
end function;
function f_select_dpram_size return integer is
begin
if(g_dbg_init_file = "debugger") then
report "[Dbg Core] Using a 40960 Bytes size RAM." severity note;
return 40960/4;
elsif (g_dbg_init_file = "FD_node") then
report "[Dbg Core] Using a 114740 Bytes RAM." severity note;
return 94208/4;
else
report "[Dbg Core] Using user specifie size RAM size." severity note;
return g_dbg_dpram_size;
end if;
end function;
-- constant c_NUM_WB_MASTERS : integer := 6 + f_generate_irq_timer + f_generate_time_ref;
constant c_NUM_WB_MASTERS : integer := 4 + f_generate_irq_timer + f_generate_time_ref;
constant c_NUM_WB_SLAVES : integer := 3;
constant c_MASTER_LM32 : integer := 0;
constant c_MASTER_ADAPT : integer := 2;
constant c_EXT_BRIDGE : integer := 0;
constant c_SLAVE_DPRAM : integer := 1;
constant c_SLAVE_UART : integer := 2;
constant c_SLAVE_IRQ_CTRL : integer := 3;
constant c_SLAVE_TICS : integer := c_SLAVE_IRQ_CTRL + f_generate_time_ref;
constant c_SLAVE_TIMER_IRQ: integer := c_SLAVE_TICS + f_generate_irq_timer;
constant c_EXT_BRIDGE_SDB : t_sdb_bridge := f_xwb_bridge_manual_sdb(x"000effff", x"00000000");
constant c_FREQ_DIVIDER : integer := 62500; -- LM32 clk = 62.5 Mhz
function f_generate_c_interconection_layout(
num_wb_masters : integer;
last_mandatory_slave : integer
)
return t_sdb_record_array is
variable interconnect_layout : t_sdb_record_array(NUM_WB_MASTERS-1 downto 0);
variable offset : integer range last_mandatory_slave to NUM_WB_MASTERS-1 := last_mandatory_slave;
variable adr_off: unsigned (c_wishbone_address_width-1 downto 0);
begin
-- Vader is Coming Look Busy
interconnect_layout (offset downto 0):=
(c_EXT_BRIDGE => f_sdb_embed_bridge(c_EXT_BRIDGE_SDB, x"00100000"),
c_SLAVE_DPRAM => f_sdb_embed_device(f_xwb_dbg_dpram(f_select_dpram_size), x"00000000"),
c_SLAVE_UART => f_sdb_embed_device(c_dbg_uart_sdb, x"00020100"),
c_SLAVE_IRQ_CTRL => f_sdb_embed_device(c_dbg_irq_ctrl_sdb, x"00020200"));
adr_off := x"00020300";
if (f_generate_time_ref /= 0) then
offset := offset + f_generate_time_ref;
interconnect_layout (offset) := f_sdb_embed_device(c_xwb_dbg_tics_sdb, t_wishbone_address(adr_off));
adr_off := adr_off + x"100";
end if;
if (f_generate_irq_timer /= 0) then
offset := offset + f_generate_irq_timer;
interconnect_layout (offset) := f_sdb_embed_device(c_dbg_irq_timer_sdb, t_wishbone_address(adr_off));
adr_off := adr_off + x"100";
end if;
--interconnect_layout (offset+1) := f_sdb_embed_synthesis(c_sdb_synthesis_info);
--interconnect_layout (offset+2) := f_sdb_embed_repo_url(c_sdb_repo_url);
return interconnect_layout;
end function;
constant c_INTERCONNECT_LAYOUT : t_sdb_record_array := f_generate_c_interconection_layout (c_NUM_WB_MASTERS, c_SLAVE_IRQ_CTRL);
constant c_SDB_ADDRESS : t_wishbone_address := x"00020800";
signal cnx_master_out : t_wishbone_master_out_array(c_NUM_WB_MASTERS-1 downto 0);
signal cnx_master_in : t_wishbone_master_in_array (c_NUM_WB_MASTERS-1 downto 0);
signal cnx_slave_out : t_wishbone_slave_out_array(c_NUM_WB_SLAVES-1 downto 0);
signal cnx_slave_in : t_wishbone_slave_in_array (c_NUM_WB_SLAVES-1 downto 0);
signal dummy_debugger_ram_wbb_i : t_wishbone_slave_in;
signal forced_lm32_reset_n : std_logic := '1';
signal irq_slave_i : t_wishbone_slave_in_array(g_msi_queues-1 to 0);
signal irq_slave_o : t_wishbone_slave_out_array(g_msi_queues-1 to 0);
signal local_counter : unsigned (63 downto 0);
signal uart_dummy_i : std_logic;
signal uart_dummy_o : std_logic;
signal dbg_uart_rxd_i : std_logic;
signal dbg_uart_txd_o : std_logic;
signal use_dbg_uart : std_logic := '1';
signal state_control : unsigned (39 downto 0) := x"0000000000";
begin
dbg_indicator <= forced_lm32_reset_n;
master_o <= cnx_master_out(c_EXT_BRIDGE);
cnx_master_in(c_EXT_BRIDGE) <= master_i;
--------------------------------------
-- UART Selector & Reset controller
--------------------------------------
controller : process (clk_sys)
begin
if (rising_edge(clk_sys)) then
if (dbg_control_select = '0') then
if (state_control /= x"ffffffffff") then
state_control <= state_control + 1;
end if;
else
if ((state_control /= x"0000000000") and (state_control <= x"3B9ACA0")) then --0.5s
forced_lm32_reset_n <= not forced_lm32_reset_n;
elsif (state_control > x"3B9ACA0") then
use_dbg_uart <= not use_dbg_uart;
end if;
state_control <= x"0000000000";
end if;
end if;
end process;
--------------------------------------
-- UART
--------------------------------------
uart_txd_o <= dbg_uart_txd_o when use_dbg_uart ='1' else wrpc_uart_txd_o;
dbg_uart_rxd_i <= uart_rxd_i when use_dbg_uart ='1' else '1';
wrpc_uart_rxd_i <= uart_rxd_i when use_dbg_uart ='0' else '1';
DBG_UART : xwb_simple_uart
generic map(
g_with_virtual_uart => true,
g_with_physical_uart => true,
g_interface_mode => PIPELINED,
g_address_granularity => BYTE
)
port map(
clk_sys_i => clk_sys,
rst_n_i => reset_n,
slave_i => cnx_master_out(c_SLAVE_UART),
slave_o => cnx_master_in(c_SLAVE_UART),
desc_o => open,
uart_rxd_i => dbg_uart_rxd_i,
uart_txd_o => dbg_uart_txd_o
);
-----------------------------------------------------------------------------
-- LM32, with MSI interface
-----------------------------------------------------------------------------
DBG_IRQ_LM32_CORE : wb_irq_lm32
generic map(
g_msi_queues => g_msi_queues,
g_profile => g_profile
)
port map(
clk_sys_i => clk_sys,
rst_n_i => forced_lm32_reset_n,
dwb_o => cnx_slave_in(c_MASTER_LM32),
dwb_i => cnx_slave_out(c_MASTER_LM32),
iwb_o => cnx_slave_in(c_MASTER_LM32+1),
iwb_i => cnx_slave_out(c_MASTER_LM32+1),
irq_slave_o => irq_slave_o, -- wb msi interface
irq_slave_i => irq_slave_i,
ctrl_slave_o => cnx_master_in(c_SLAVE_IRQ_CTRL), -- ctrl interface for LM32 irq processing
ctrl_slave_i => cnx_master_out(c_SLAVE_IRQ_CTRL)
);
---------------------------------------------------------------------------
-- Dual-port RAM
-----------------------------------------------------------------------------
DBG_DPRAM : xwb_dpram
generic map(
g_size => f_select_dpram_size, --in 32-bit words
-- g_size => g_dbg_dpram_size, --in 32-bit words
g_init_file => f_choose_lm32_firmware_file,
g_must_have_init_file => f_check_if_lm32_firmware_necessary,
g_slave1_interface_mode => PIPELINED,
g_slave2_interface_mode => PIPELINED,
g_slave1_granularity => BYTE,
g_slave2_granularity => WORD
)
port map(
clk_sys_i => clk_sys,
rst_n_i => reset_n,
slave1_i => cnx_master_out(c_SLAVE_DPRAM),
slave1_o => cnx_master_in(c_SLAVE_DPRAM),
slave2_i => dummy_debugger_ram_wbb_i,
slave2_o => open
);
---------------------------------------------------------------------------
-- TIMER
---------------------------------------------------------------------------
gen_time_ref : if (f_generate_time_ref /= 0) generate
begin
DBG_TIME_REF : xwb_tics
generic map(
g_period => c_FREQ_DIVIDER
)
port map(
clk_sys_i => clk_sys,
rst_n_i => reset_n,
-- Wishbone
slave_i => cnx_master_out(c_SLAVE_TICS),
slave_o => cnx_master_in(c_SLAVE_TICS),
desc_o => open
);
end generate gen_time_ref;
gen_timer : if (g_timers > 0) generate
begin
process(clk_sys)
begin
if (clk_sys'event and clk_sys = '1') then
if (reset_n = '0') then
local_counter <= (others => '0');
else
local_counter <= local_counter + 1;
end if;
end if;
end process;
DBG_IRQ_TIMER : wb_irq_timer
generic map(
g_timers => g_timers
)
port map(
clk_sys_i => clk_sys,
rst_sys_n_i => forced_lm32_reset_n,
tm_tai8ns_i => std_logic_vector(local_counter),
ctrl_slave_o => cnx_master_in(c_SLAVE_TIMER_IRQ), -- ctrl interface for LM32 irq processing
ctrl_slave_i => cnx_master_out(c_SLAVE_TIMER_IRQ),
irq_master_o => irq_slave_i(g_timers-1), -- wb msi interface
irq_master_i => irq_slave_o(g_timers-1)
);
end generate gen_timer;
---------------------------------------------------------------------------
-- Crossbar
---------------------------------------------------------------------------
DBG_MAIN_INTERCON : xwb_sdb_crossbar
generic map (
g_num_masters => c_NUM_WB_SLAVES,
g_num_slaves => c_NUM_WB_MASTERS,
g_registered => true,
g_wraparound => true,
g_layout => c_INTERCONNECT_LAYOUT,
g_sdb_addr => c_SDB_ADDRESS
)
port map (
clk_sys_i => clk_sys,
rst_n_i => reset_n,
slave_i => cnx_slave_in,
slave_o => cnx_slave_out,
master_i => cnx_master_in,
master_o => cnx_master_out
);
---------------------------------------------------------------------------
-- Adatper
---------------------------------------------------------------------------
DBG_SALVE_ADAPTER : wb_slave_adapter
generic map (
g_master_use_struct => true,
g_master_mode => g_slave_interface_mode,
g_master_granularity => BYTE,
g_slave_use_struct => false,
g_slave_mode => g_slave_interface_mode,
g_slave_granularity => g_slave_granularity)
port map (
clk_sys_i => clk_sys,
rst_n_i => reset_n,
master_i => cnx_slave_out(c_MASTER_ADAPT),
master_o => cnx_slave_in(c_MASTER_ADAPT),
-- Slave interface 0x0 to 0x3ffff
sl_adr_i(c_wishbone_address_width-1 downto 18) => (others => '0'),
sl_adr_i(17 downto 0) => slave_i.adr(17 downto 0),
sl_dat_i => slave_i.dat,
sl_sel_i => slave_i.sel,
sl_cyc_i => slave_i.cyc,
sl_stb_i => slave_i.stb,
sl_we_i => slave_i.we,
sl_dat_o => slave_o.dat,
sl_ack_o => slave_o.ack,
sl_err_o => slave_o.err,
sl_rty_o => slave_o.rty,
sl_stall_o => slave_o.stall
);
end Behavioral;
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/ 0000775 0000000 0000000 00000000000 12412174425 0024454 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/.gitignore 0000664 0000000 0000000 00000000223 12412174425 0026441 0 ustar 00root root 0000000 0000000 *.o
*.a
*.elf
*.ram
*.bin
*.mif
*.*~
*~
*_disasm.S
*.vhd
*.cmd
*.o
*.old
.tmp_*
.config
.config.old
include/config
include/generated
wrpc-sw
*.py
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/Kconfig 0000664 0000000 0000000 00000005625 12412174425 0025767 0 ustar 00root root 0000000 0000000 mainmenu "Debugger Core software configuration"
config FINE_DEL_NODE
bool "Build code for Fine Delay Stand-Alone node"
default n
config DEBUGGER
bool
default !FINE_DEL_NODE
# most options with no prompt here are prompted-for in the "advanced" section
config PRINT_BUFSIZE
int
default 256
config PRINTF_FULL
boolean
default y
config RAMINIT
int
default 0x00000000
config RAMSIZE
int
default 92160
config STACKSIZE
int
default 22528
config HEAPSIZE
int
default 12480
config ALING
int
default 4
config MEM_CHECK_CMD
boolean"Command for memory checking/debbuging"
default y
#
# This is a set of configuration options that should not be changed by
# normal users. If the "developer" menu is used, the binary is tainted.
comment "dbg-sw is tainted if you change the following options"
config DEVELOPER
bool "Advanced configurations, only for developers"
help
The following options are new features under testing, or
special customizations not normally useful for people not
directly working on this package. Please don't use unless
you are a developer of wrpc-sw.
config RAMSIZE
depends on DEVELOPER
int "Size of the RAM in the FPGA for this program"
default 90112
help
The usual configuration for debugger_sw is 0x16000 bytes
(i.e. 88kB = 90112 bytes) but if your project has less or
more features you may want to adjust the FPGA size and
choose your preferred value here.
config STACKSIZE
depends on DEVELOPER
int "Size of the stack area needed by this program"
default 22528
help
The linker complains if the code doesn't fit into RAM, but
we must also consider the stack, or the program will crash
at run time. (However, we have a detector for overflows).
config HEAPSIZE
depends on DEVELOPER
int "Size of the heap area needed by this program"
default 12480
config PRINT_BUFSIZE
depends on DEVELOPER
int "Size for the temporary output string of pp_printf"
default 256
help
This buffer is constant storage (i.e. wasted space), but it
also constraints the maximum lenght of text that can be written
in a single call to printf.
choice
prompt "Implementation of pp_printf"
depends on DEVELOPER
config PRINTF_XINT
bool "hex-and-int"
help
This selects a printf that can only print decimal and hex
numbers, without obeying the format modifiers. %c and %s are
supported too, and %p is equivalent to %x.
See pp_printf/README for details.
config PRINTF_FULL
bool "full"
help
This selects an implementation that supports all standard
formats with modifiers, like "%08X" and "%.5s". It costs
around 2k of compiled code more than XINT.
See pp_printf/README for details.
config PRINTF_MINI
bool "minimal"
help
This selects a printf that prints all integers as hex,
without obeying the format modifiers. %c and %s are
supported too. See pp_printf/README for details.
This is not probably what you want for debbuger-sw.
endchoice
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/Makefile 0000664 0000000 0000000 00000007262 12412174425 0026123 0 ustar 00root root 0000000 0000000 # Jose Jimenez, 2013,2014 UGR
CROSS_COMPILE ?= lm32-elf-
export CROSS_COMPILE
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
OBJDUMP = $(CROSS_COMPILE)objdump
OBJCOPY = $(CROSS_COMPILE)objcopy
SIZE = $(CROSS_COMPILE)size
WRPC_DIR = wrpc-sw
-include $(CURDIR)/.config
AUTOCONF = $(CURDIR)/include/generated/autoconf.h
# we miss CONFIG_ARCH_LM32 as we have no other archs by now
obj-y = arch/lm32/crt0.o arch/lm32/irq.o
LDS-y = arch/lm32/ram.ld arch/lm32/sbrkr.o
obj-$(CONFIG_DEBUGGER) += dbg_main.o
# our linker script is preprocessed, so have a rule here
%.ld: %.ld.S $(AUTOCONF) .config
$(CC) -include $(AUTOCONF) -E -P $*.ld.S -o $@
cflags-y = -ffreestanding -I- -include $(AUTOCONF) -Iinclude/std -Iinclude \
-I.
cflags-y += -I$(CURDIR)/$(WRPC_DIR)/pp_printf
CFLAGS_PLATFORM = -mmultiply-enabled -mbarrel-shift-enabled
LDFLAGS_PLATFORM = -mmultiply-enabled -mbarrel-shift-enabled \
-nostdlib -T $(LDS-y)
include linux/linux.mk
include fmc-delay/fine-delay.mk
include shell/shell.mk
include lib/lib.mk
include printf.mk
include dev/dev.mk
obj-y += check-error.o
obj-y += sdb-lib/libsdbfs.a
cflags-y += -Isdb-lib
CFLAGS = $(CFLAGS_PLATFORM) $(cflags-y) -Wall \
-ffunction-sections -fdata-sections -Os \
-ggdb
LDFLAGS = $(LDFLAGS_PLATFORM) \
-Wl,--gc-sections -Os -lgcc -lc
OBJS = $(obj-y)
#fine delay output included on .mk
output-$(CONFIG_DEBUGGER) = dbg
OUTPUT = $(output-y)
#REVISION=$(shell git describe --dirty --always)
all: wrpc dbg_core
dbg_core: remote_tools tools $(OUTPUT).ram $(OUTPUT).vhd $(OUTPUT).mif
.PRECIOUS: %.elf %.bin
.PHONY: all tools remote_tools clean
sdb-lib/libsdbfs.a:
$(MAKE) -C sdb-lib
$(OUTPUT).elf: $(LDS-y) $(AUTOCONF) $(OUTPUT).o config.o
${CC} -o $@ config.o $(OUTPUT).o $(LDFLAGS)
${OBJDUMP} -d $(OUTPUT).elf > $(OUTPUT)_disasm.S
$(SIZE) $@
$(OUTPUT).o: $(OBJS)
$(LD) --gc-sections -e _start -r $(OBJS) -T bigobj.lds -o $@
config.o: .config
sed '1,3d' .config > .config.bin
dd bs=1 count=1 if=/dev/zero 2> /dev/null >> .config.bin
$(OBJCOPY) -I binary -O elf32-lm32 -B lm32 \
--rename-section .data=.data.config .config.bin $@
rm -f .config.bin
%.bin: %.elf
${OBJCOPY} -O binary $^ $@
%.ram: tools %.bin
./$(WRPC_DIR)/tools/genraminit $*.bin 0 > $@
%.vhd: tools %.bin
./$(WRPC_DIR)/tools/genramvhd -s `. ./.config; echo $$CONFIG_RAMSIZE` $*.bin > $@
%.mif: tools %.bin
./$(WRPC_DIR)/tools/genrammif $*.bin `. ./.config; echo $$CONFIG_RAMSIZE` > $@
$(AUTOCONF): silentoldconfig
clean:
rm -f $(OBJS) *.o *.mif *.vhd *.elf *.bin *.ram *.S $(LDS)
$(MAKE) -C sdb-lib clean
$(MAKE) -C remote_tools clean
$(MAKE) -C $(WRPC_DIR) clean
%.o: %.c
${CC} $(CFLAGS) $(INCLUDE_DIR) $(LIB_DIR) -c $*.c -o $@
tools:
$(MAKE) -C $(WRPC_DIR)/tools -f Makefile
remote_tools:
$(MAKE) -C $@
install: remote_tools
$(MAKE) -C remote_tools $@
wrpc: gitmodules
$(MAKE) -C $(WRPC_DIR) etherbone_defconfig
$(MAKE) -C $(WRPC_DIR)
@cp $(WRPC_DIR)/wrc.ram ./wrc-ethb.ram
# if needed, check out the submodules (first time only), so users
# who didn't read carefully the manual won't get confused
gitmodules:
@test -d $(WRPC_DIR)/inlcude || echo "Checking out submodules"
@test -d $(WRPC_DIR)/inlcude || cd .. && git submodule update --init
# following targets from Makefile.kconfig
silentoldconfig:
@mkdir -p include/config
$(MAKE) -f Makefile.kconfig $@
scripts_basic config:
$(MAKE) -f Makefile.kconfig $@
%config:
$(MAKE) -f Makefile.kconfig $@
defconfig:
$(MAKE) -f Makefile.kconfig dbg_defconfig
.config: silentoldconfig
# This forces more compilations than needed, but it's useful
# (we depend on .config and not on include/generated/autoconf.h
# because the latter is touched by silentoldconfig at each build)
$(obj-y): .config $(wildcard include/*.h)
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/Makefile.kconfig 0000664 0000000 0000000 00000003717 12412174425 0027543 0 ustar 00root root 0000000 0000000
# Do not:
# o use make's built-in rules and variables
# (this increases performance and avoids hard-to-debug behaviour);
# o print "Entering directory ...";
MAKEFLAGS += -rR --no-print-directory
# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
ifdef V
ifeq ("$(origin V)", "command line")
KBUILD_VERBOSE = $(V)
endif
endif
ifndef KBUILD_VERBOSE
KBUILD_VERBOSE = 0
endif
# Cancel implicit rules on top Makefile
$(CURDIR)/Makefile Makefile: ;
# That's our default target when none is given on the command line
PHONY := _all
_all:
# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi ; fi)
# Make variables (CC, etc...)
HOSTCC = gcc
HOSTCXX = g++
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCXXFLAGS = -O2
export HOSTCC HOSTCXX HOSTCFLAGS HOSTCXXFLAGS
KBUILD_KCONFIG = $(CURDIR)/Kconfig
export KBUILD_KCONFIG
srctree := $(CURDIR)
objtree := $(CURDIR)
src := $(srctree)
obj := $(objtree)
export srctree objtree
# We need some generic definitions (do not try to remake the file).
$(srctree)/scripts/Kbuild.include: ;
include $(srctree)/scripts/Kbuild.include
# Basic helpers built in scripts/
PHONY += scripts_basic
scripts_basic:
$(Q)$(MAKE) $(build)=scripts/basic
config: scripts_basic FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
%config: scripts_basic FORCE
$(Q)$(MAKE) $(build)=scripts/kconfig $@
clean:
@find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name 'Module.markers' -o -name '.tmp_*.o.*' \) \
-type f -print | xargs rm -f -v
PHONY += FORCE
FORCE:
# Declare the contents of the .PHONY variable as phony. We keep that
# information in a variable so we can use it in if_changed and friends.
.PHONY: $(PHONY)
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/ 0000775 0000000 0000000 00000000000 12412174425 0025371 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/ 0000775 0000000 0000000 00000000000 12412174425 0026146 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/.gitignore 0000664 0000000 0000000 00000000006 12412174425 0030132 0 ustar 00root root 0000000 0000000 ram.ld fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/crt0.S 0000775 0000000 0000000 00000017517 12412174425 0027160 0 ustar 00root root 0000000 0000000 /****************************************************************************
**
** Name: crt0ram.S
**
** Description:
** Implements boot-code that calls LatticeDDInit (that calls main())
** Implements exception handlers (actually, redirectors)
**
** $Revision: $
**
** Disclaimer:
**
** This source code is intended as a design reference which
** illustrates how these types of functions can be implemented. It
** is the user's responsibility to verify their design for
** consistency and functionality through the use of formal
** verification methods. Lattice Semiconductor provides no warranty
** regarding the use or functionality of this code.
**
** --------------------------------------------------------------------
**
** Lattice Semiconductor Corporation
** 5555 NE Moore Court
** Hillsboro, OR 97214
** U.S.A
**
** TEL: 1-800-Lattice (USA and Canada)
** (503)268-8001 (other locations)
**
** web: http://www.latticesemi.com
** email: techsupport@latticesemi.com
**
** --------------------------------------------------------------------------
**
** Change History (Latest changes on top)
**
** Ver Date Description
** --------------------------------------------------------------------------
** 3.8 Apr-15-2011 Added __MICO_USER__HANDLER__ preprocessor to
** allow customers to implement their own handlers for:
** DATA_ABORT, INST_ABORT
**
** 3.1 Jun-18-2008 Added __MICO_NO_INTERRUPTS__ preprocessor
** option to exclude invoking MicoISRHandler
** to reduce code-size in apps that don't use
** interrupts
**
** 3.0 Mar-25-2008 Added Header
**
**---------------------------------------------------------------------------
*****************************************************************************/
/*
* LatticeMico32 C startup code.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/* From include/sys/signal.h */
#define SIGINT 2 /* interrupt */
#define SIGTRAP 5 /* trace trap */
#define SIGFPE 8 /* arithmetic exception */
#define SIGSEGV 11 /* segmentation violation */
//#define MICO32_FULL_CONTEXT_SAVE_RESTORE
/* Exception handlers - Must be 32 bytes long. */
.section .boot, "ax", @progbits
.global _start
_start:
.global _reset_handler
.type _reset_handler, @function
_reset_handler:
xor r0, r0, r0
wcsr IE, r0
wcsr IM, r0
mvhi r1, hi(_reset_handler)
ori r1, r1, lo(_reset_handler)
wcsr EBA, r1
calli _crt0
nop
.size _reset_handler, .-_reset_handler
.extern _irq_entry
.org 0xc0
.global _interrupt_handler
.type _interrupt_handler, @function
_interrupt_handler:
sw (sp+0), ra
calli _save_all
mvi r1, SIGINT
#ifndef __MICO_NO_INTERRUPTS__
calli _irq_entry
#else
wcsr IE, r0
#endif
bi _restore_all_and_return
nop
nop
nop
.org 0x100
.global _crt0
.type _crt0, @function
_crt0:
/* Clear r0 */
xor r0, r0, r0
/* Setup stack and global pointer */
mvhi sp, hi(_fstack)
ori sp, sp, lo(_fstack)
mvhi gp, hi(_gp)
ori gp, gp, lo(_gp)
mvhi r1, hi(_fbss)
ori r1, r1, lo(_fbss)
mvi r2, 0
mvhi r3, hi(_ebss)
ori r3, r3, lo(_ebss)
sub r3, r3, r1
calli memset
mvi r1, 0
mvi r2, 0
mvi r3, 0
calli main
loopf:
bi loopf
.global _save_all
.type _save_all, @function
_save_all:
#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
addi sp, sp, -128
#else
addi sp, sp, -60
#endif
sw (sp+4), r1
sw (sp+8), r2
sw (sp+12), r3
sw (sp+16), r4
sw (sp+20), r5
sw (sp+24), r6
sw (sp+28), r7
sw (sp+32), r8
sw (sp+36), r9
sw (sp+40), r10
#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
sw (sp+44), r11
sw (sp+48), r12
sw (sp+52), r13
sw (sp+56), r14
sw (sp+60), r15
sw (sp+64), r16
sw (sp+68), r17
sw (sp+72), r18
sw (sp+76), r19
sw (sp+80), r20
sw (sp+84), r21
sw (sp+88), r22
sw (sp+92), r23
sw (sp+96), r24
sw (sp+100), r25
sw (sp+104), r26
sw (sp+108), r27
sw (sp+120), ea
sw (sp+124), ba
/* ra and sp need special handling, as they have been modified */
lw r1, (sp+128)
sw (sp+116), r1
mv r1, sp
addi r1, r1, 128
sw (sp+112), r1
#else
sw (sp+52), ea
sw (sp+56), ba
/* ra and sp need special handling, as they have been modified */
lw r1, (sp+60)
sw (sp+48), r1
mv r1, sp
addi r1, r1, 60
sw (sp+44), r1
#endif
// xor r1, r1, r1
// wcsr ie, r1
ret
.size _save_all, .-_save_all
.global _restore_all_and_return
.type _restore_all_and_return, @function
/* Restore all registers and return from exception */
_restore_all_and_return:
// addi r1, r0, 2
// wcsr ie, r1
lw r1, (sp+4)
lw r2, (sp+8)
lw r3, (sp+12)
lw r4, (sp+16)
lw r5, (sp+20)
lw r6, (sp+24)
lw r7, (sp+28)
lw r8, (sp+32)
lw r9, (sp+36)
lw r10, (sp+40)
#ifdef MICO32_FULL_CONTEXT_SAVE_RESTORE
lw r11, (sp+44)
lw r12, (sp+48)
lw r13, (sp+52)
lw r14, (sp+56)
lw r15, (sp+60)
lw r16, (sp+64)
lw r17, (sp+68)
lw r18, (sp+72)
lw r19, (sp+76)
lw r20, (sp+80)
lw r21, (sp+84)
lw r22, (sp+88)
lw r23, (sp+92)
lw r24, (sp+96)
lw r25, (sp+100)
lw r26, (sp+104)
lw r27, (sp+108)
lw ra, (sp+116)
lw ea, (sp+120)
lw ba, (sp+124)
/* Stack pointer must be restored last, in case it has been updated */
lw sp, (sp+112)
#else
lw ra, (sp+48)
lw ea, (sp+52)
lw ba, (sp+56)
/* Stack pointer must be restored last, in case it has been updated */
lw sp, (sp+44)
#endif
nop
eret
.size _restore_all_and_return, .-_restore_all_and_return
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/irq.c 0000664 0000000 0000000 00000001765 12412174425 0027116 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include "irq.h"
void disable_irq()
{
unsigned int ie, im;
unsigned int Mask = ~1;
/* disable peripheral interrupts in case they were enabled */
asm volatile ("rcsr %0,ie":"=r" (ie));
ie &= (~0x1);
asm volatile ("wcsr ie, %0"::"r" (ie));
/* disable mask-bit in im */
asm volatile ("rcsr %0, im":"=r" (im));
im &= Mask;
asm volatile ("wcsr im, %0"::"r" (im));
}
void enable_irq()
{
unsigned int ie, im;
unsigned int Mask = 1;
/* disable peripheral interrupts in-case they were enabled */
asm volatile ("rcsr %0,ie":"=r" (ie));
ie &= (~0x1);
asm volatile ("wcsr ie, %0"::"r" (ie));
/* enable mask-bit in im */
asm volatile ("rcsr %0, im":"=r" (im));
im |= Mask;
asm volatile ("wcsr im, %0"::"r" (im));
ie |= 0x1;
asm volatile ("wcsr ie, %0"::"r" (ie));
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/ram.ld.S 0000664 0000000 0000000 00000004525 12412174425 0027455 0 ustar 00root root 0000000 0000000 /*
* Link script for Lattice Mico32. Very loosely based on
* code contributed by Jon Beniston
*
* Jon's license (BSD-style):
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
OUTPUT_FORMAT("elf32-lm32")
ENTRY(_start)
_HEAP_SIZE = CONFIG_HEAPSIZE;
aling = CONFIG_ALING;
MEMORY
{
ram :
ORIGIN = CONFIG_RAMINIT,
LENGTH = CONFIG_RAMSIZE,
stack :
ORIGIN = CONFIG_RAMINIT + CONFIG_RAMSIZE,
LENGTH = CONFIG_STACKSIZE
}
SECTIONS
{
.boot : { *(.boot) } > ram
.text : { *(.text .text.*) } > ram =0
.rodata : { *(.rodata .rodata.*) } > ram
.data : {
*(.data .data.*)
_gp = ALIGN(16) + 0x7ff0; /* FIXME: what is this? */
} > ram
.bss : {
_fbss = .;
*(.bss .bss.*)
*(COMMON)
_ebss = .;
} > ram
.heap : {
. = ALIGN(aling);
_heap = .;
_HEAP_START = .;
. += _HEAP_SIZE;
_HEAP_END = .;
} > ram
/* End of RAM for checking stack overflows */
PROVIDE(_endram = ORIGIN(stack));
/* First location in stack is highest address in STACK */
PROVIDE(_fstack = ORIGIN(stack) + LENGTH(stack) - 4);
}
/* We need to provide mprintf to ptp-noposix object files, if missing */
PROVIDE(mprintf = pp_printf);
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/arch/lm32/sbrkr.c 0000664 0000000 0000000 00000001731 12412174425 0027437 0 ustar 00root root 0000000 0000000 #include
#include
#include
#define GGC_MIN_HEAPSIZE_DEFAULT 32
extern unsigned int _HEAP_START;
extern unsigned int _HEAP_END;
extern unsigned int aling;
extern unsigned int _endram;
extern unsigned int _fstack;
caddr_t heap = NULL;
caddr_t _sbrk ( int increment ) {
caddr_t prevHeap;
caddr_t nextHeap;
if (heap == NULL) {
heap = (caddr_t)&_HEAP_START;
}
prevHeap = heap;
/*
* Although it is recommended to return data aligned to a 4 byte boundary,
*
* nextHeap = (caddr_t)(((unsigned int)(heap + increment) + aling) & ~aling)
*
* in our case, we don't need to do it
*/
nextHeap = (caddr_t)((unsigned int)(heap + increment));
register caddr_t stackPtr asm ("sp");
if ((((caddr_t)&_HEAP_START < stackPtr) && (nextHeap > stackPtr)) ||
(nextHeap >= (caddr_t)&_HEAP_END)) {
return NULL;
} else {
heap = nextHeap;
return (caddr_t) prevHeap;
}
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/bigobj.lds 0000664 0000000 0000000 00000000450 12412174425 0026413 0 ustar 00root root 0000000 0000000 /*
* This is used to generate wrc.o from all objects. We need to use
* --gc-sections because sockitowm include a lot of stuff we don't run,
* but at the same time we need to preserve all commands. So use KEEP()
*/
SECTIONS
{
.cmd : {
__cmd_begin = .;
KEEP(*(.cmd))
__cmd_end = .;
}
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/check-error.c 0000664 0000000 0000000 00000001750 12412174425 0027027 0 ustar 00root root 0000000 0000000 /* This work is part of the White Rabbit project
*
* Jose Jimenez , Copyright (C) 2014 UGR.
*
* Released according to the GNU GPL version 3 (GPLv3) or later.
*
* Adpated from check-error.c inlcuded on wrpc-sw project
*/
/*
* This file includes stuff we don't want to link, so if it is
* called in error we get a clear error message, rather than a
* "doesn't fit in ram" error
*/
#include
extern void __you_should_not_call_printf_from_debugger_sw(void);
extern void __you_should_not_divide_ll_in_debugger_sw(void);
#undef printf /* Under ptp-noposix, this is #defined to mprintf */
int printf(const char *fmt, ...)
{
__you_should_not_call_printf_from_debugger_sw();
return 0;
}
long long __moddi3 (long long A, long long B)
{
__you_should_not_divide_ll_in_debugger_sw();
return 0;
}
/* was used in set_phase_shift, phase_to_cf_units */
long long __divdi3 (long long A, long long B)
{
__you_should_not_divide_ll_in_debugger_sw();
return 0;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/configs/ 0000775 0000000 0000000 00000000000 12412174425 0026104 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/configs/dbg_defconfig 0000664 0000000 0000000 00000000650 12412174425 0030570 0 ustar 00root root 0000000 0000000 #
# Automatically generated make config: don't edit
#
# CONFIG_FINE_DEL_NODE is not set
CONFIG_DEBUGGER=y
CONFIG_PRINT_BUFSIZE=128
# CONFIG_PRINTF_FULL is not set
CONFIG_RAMINIT=0x00000000
CONFIG_RAMSIZE=38912
CONFIG_STACKSIZE=2048
CONFIG_HEAPSIZE=1024
CONFIG_ALING=4
CONFIG_MEM_CHECK_CMD=y
#
# dbg-sw is tainted if you change the following options
#
CONFIG_DEVELOPER=y
CONFIG_PRINTF_XINT=y
# CONFIG_PRINTF_MINI is not set
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/configs/fd_defconfig 0000664 0000000 0000000 00000000651 12412174425 0030426 0 ustar 00root root 0000000 0000000 #
# Automatically generated make config: don't edit
#
CONFIG_FINE_DEL_NODE=y
# CONFIG_DEBUGGER is not set
CONFIG_PRINT_BUFSIZE=512
CONFIG_PRINTF_FULL=y
CONFIG_RAMINIT=0x00000000
CONFIG_RAMSIZE=92160
CONFIG_STACKSIZE=2048
CONFIG_HEAPSIZE=12480
CONFIG_ALING=4
CONFIG_MEM_CHECK_CMD=y
#
# dbg-sw is tainted if you change the following options
#
CONFIG_DEVELOPER=y
# CONFIG_PRINTF_XINT is not set
# CONFIG_PRINTF_MINI is not set
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dbg_main.c 0000664 0000000 0000000 00000003215 12412174425 0026361 0 ustar 00root root 0000000 0000000 /* This work is part of the White Rabbit project
*
* Jose Jimenez , Copyright (C) 2014.
*
* Released according to the GNU GPL version 3 (GPLv3) or later.
*
*/
#include
#include
#include
#include
#include
#include
#include "uart.h"
#include "eeprom.h"
#include
#include "shell.h"
#include "irq.h"
#include "linux/jiffies.h"
#include "linux/delay.h"
#define mprintf pp_printf
#define vprintf pp_vprintf
#define sprintf pp_sprintf
void _irq_entry(void) {}
extern uint32_t _endram;
extern uint32_t _fstack;
#define ENDRAM_MAGIC 0xbadc0ffe
void kernel_dev(int subsys, const char *fmt, ...)
{
va_list ap;
if (subsys == 0)
mprintf("Error: ");
else if (subsys == 1)
mprintf("Warning: ");
else if (subsys == 2)
mprintf("Info: ");
va_start(ap, fmt);
vprintf(fmt, ap);
va_end(ap);
}
void mprint_64bit (uint64_t value)
{
char valstr[128];
uint64_t low;
uint32_t high;
high=(uint32_t) div64_u64_rem(value, (1000LLU*1000LLU*1000LLU), &low);
if (high != 0)
pp_sprintf(valstr, "%d%08d", high, (unsigned int) (low));
else
pp_sprintf(valstr, "%d", (unsigned int) (low));
mprintf("%s", valstr);
}
/*static void check_stack(void)
{
while (_endram != ENDRAM_MAGIC) {
mprintf("Stack overflow!\n");
msleep(1000);
}
}*/
int main(void)
{
sdb_find_devices();
//uart_init_sw();
uart_init_hw();
mprintf("Running....\n");
shell_exec("dbgmem");
shell_exec("dbgmem 0x80000");
shell_exec("dbgmem -b 0x80000 0x1");
shell_exec("dbgmem -b0x80000 0x1");
shell_exec("dbgmem -b0x0000");
for (;;){
shell_interactive();
//check_stack();
}
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/ 0000775 0000000 0000000 00000000000 12412174425 0025232 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/ad9516.c 0000664 0000000 0000000 00000014576 12412174425 0026324 0 ustar 00root root 0000000 0000000 /*
* Trivial pll programmer using an spi controoler.
* PLL is AD9516, SPI is opencores
* Tomasz Wlostowski, Alessandro Rubini, 2011, for CERN.
*/
#include
#include
#include
#include
#include "board.h"
#include "syscon.h"
#include "gpio-wrs.h"
#include "rt_ipc.h"
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
#endif
static inline void writel(uint32_t data, void *where)
{
* (volatile uint32_t *)where = data;
}
static inline uint32_t readl(void *where)
{
return * (volatile uint32_t *)where;
}
struct ad9516_reg {
uint16_t reg;
uint8_t val;
};
#include "ad9516_config.h"
/*
* SPI stuff, used by later code
*/
#define SPI_REG_RX0 0
#define SPI_REG_TX0 0
#define SPI_REG_RX1 4
#define SPI_REG_TX1 4
#define SPI_REG_RX2 8
#define SPI_REG_TX2 8
#define SPI_REG_RX3 12
#define SPI_REG_TX3 12
#define SPI_REG_CTRL 16
#define SPI_REG_DIVIDER 20
#define SPI_REG_SS 24
#define SPI_CTRL_ASS (1<<13)
#define SPI_CTRL_IE (1<<12)
#define SPI_CTRL_LSB (1<<11)
#define SPI_CTRL_TXNEG (1<<10)
#define SPI_CTRL_RXNEG (1<<9)
#define SPI_CTRL_GO_BSY (1<<8)
#define SPI_CTRL_CHAR_LEN(x) ((x) & 0x7f)
#define GPIO_PLL_RESET_N 1
#define GPIO_SYS_CLK_SEL 0
#define GPIO_PERIPH_RESET_N 3
#define CS_PLL 0 /* AD9516 on SPI CS0 */
static void *oc_spi_base;
int oc_spi_init(void *base_addr)
{
oc_spi_base = base_addr;
writel(100, oc_spi_base + SPI_REG_DIVIDER);
return 0;
}
int oc_spi_txrx(int ss, int nbits, uint32_t in, uint32_t *out)
{
uint32_t rval;
if (!out)
out = &rval;
writel(SPI_CTRL_ASS | SPI_CTRL_CHAR_LEN(nbits)
| SPI_CTRL_TXNEG,
oc_spi_base + SPI_REG_CTRL);
writel(in, oc_spi_base + SPI_REG_TX0);
writel((1 << ss), oc_spi_base + SPI_REG_SS);
writel(SPI_CTRL_ASS | SPI_CTRL_CHAR_LEN(nbits)
| SPI_CTRL_TXNEG | SPI_CTRL_GO_BSY,
oc_spi_base + SPI_REG_CTRL);
while(readl(oc_spi_base + SPI_REG_CTRL) & SPI_CTRL_GO_BSY)
;
*out = readl(oc_spi_base + SPI_REG_RX0);
return 0;
}
/*
* AD9516 stuff, using SPI, used by later code.
* "reg" is 12 bits, "val" is 8 bits, but both are better used as int
*/
static void ad9516_write_reg(int reg, int val)
{
oc_spi_txrx(CS_PLL, 24, (reg << 8) | val, NULL);
}
static int ad9516_read_reg(int reg)
{
uint32_t rval;
oc_spi_txrx(CS_PLL, 24, (reg << 8) | (1 << 23), &rval);
return rval & 0xff;
}
static void ad9516_load_regset(const struct ad9516_reg *regs, int n_regs, int commit)
{
int i;
for(i=0; i= 0 && output < 6) /* LVPECL outputs */
{
uint16_t base = (output / 2) * 0x3 + 0x190;
if(ratio == 1) /* bypass the divider */
{
uint8_t div_ctl = ad9516_read_reg(base + 1);
ad9516_write_reg(base + 1, div_ctl | (1<<7) | (phase_offset & 0xf));
} else {
uint8_t div_ctl = ad9516_read_reg(base + 1);
TRACE("DivCtl: %x\n", div_ctl);
ad9516_write_reg(base + 1, (div_ctl & (~(1<<7))) | (phase_offset & 0xf)); /* disable bypass bit */
ad9516_write_reg(base, (lcycles << 4) | hcycles);
}
} else { /* LVDS/CMOS outputs */
uint16_t base = ((output - 6) / 2) * 0x5 + 0x199;
TRACE("Output [divider %d]: %d ratio: %d base %x lc %d hc %d\n", secondary, output, ratio, base, lcycles ,hcycles);
if(!secondary)
{
if(ratio == 1) /* bypass the divider 1 */
ad9516_write_reg(base + 3, ad9516_read_reg(base + 3) | 0x10);
else {
ad9516_write_reg(base, (lcycles << 4) | hcycles);
ad9516_write_reg(base + 1, phase_offset & 0xf);
}
} else {
if(ratio == 1) /* bypass the divider 2 */
ad9516_write_reg(base + 3, ad9516_read_reg(base + 3) | 0x20);
else {
ad9516_write_reg(base + 2, (lcycles << 4) | hcycles);
// ad9516_write_reg(base + 1, phase_offset & 0xf);
}
}
}
/* update */
ad9516_write_reg(0x232, 0x0);
ad9516_write_reg(0x232, 0x1);
ad9516_write_reg(0x232, 0x0);
return 0;
}
int ad9516_set_vco_divider(int ratio) /* Sets the VCO divider (2..6) or 0 to enable static output */
{
if(ratio == 0)
ad9516_write_reg(0x1e0, 0x5); /* static mode */
else
ad9516_write_reg(0x1e0, (ratio-2));
ad9516_write_reg(0x232, 0x1);
return 0;
}
void ad9516_sync_outputs()
{
/* VCO divider: static mode */
ad9516_write_reg(0x1E0, 0x7);
ad9516_write_reg(0x232, 0x1);
/* Sync the outputs when they're inactive to avoid +-1 cycle uncertainity */
ad9516_write_reg(0x230, 1);
ad9516_write_reg(0x232, 1);
ad9516_write_reg(0x230, 0);
ad9516_write_reg(0x232, 1);
}
int ad9516_init(void)
{
TRACE("Initializing AD9516 PLL...\n");
oc_spi_init((void *)BASE_SPI);
gpio_out(GPIO_SYS_CLK_SEL, 0); /* switch to the standby reference clock, since the PLL is off after reset */
/* reset the PLL */
gpio_out(GPIO_PLL_RESET_N, 0);
timer_delay(10);
gpio_out(GPIO_PLL_RESET_N, 1);
timer_delay(10);
/* Use unidirectional SPI mode */
ad9516_write_reg(0x000, 0x99);
/* Check the presence of the chip */
if (ad9516_read_reg(0x3) != 0xc3) {
TRACE("Error: AD9516 PLL not responding.\n");
return -1;
}
ad9516_load_regset(ad9516_base_config, ARRAY_SIZE(ad9516_base_config), 0);
ad9516_load_regset(ad9516_ref_tcxo, ARRAY_SIZE(ad9516_ref_tcxo), 1);
ad9516_wait_lock();
ad9516_sync_outputs();
ad9516_set_output_divider(9, 4, 0); /* AUX/SWCore = 187.5 MHz */
ad9516_set_output_divider(7, 12, 0); /* REF = 62.5 MHz */
ad9516_set_output_divider(4, 12, 0); /* GTX = 62.5 MHz */
ad9516_sync_outputs();
ad9516_set_vco_divider(2);
TRACE("AD9516 locked.\n");
gpio_out(GPIO_SYS_CLK_SEL, 1); /* switch the system clock to the PLL reference */
gpio_out(GPIO_PERIPH_RESET_N, 0); /* reset all peripherals which use AD9516-provided clocks */
gpio_out(GPIO_PERIPH_RESET_N, 1);
return 0;
}
int rts_debug_command(int command, int value)
{
switch(command)
{
case RTS_DEBUG_ENABLE_SERDES_CLOCKS:
if(value)
{
ad9516_write_reg(0xf4, 0x08); // OUT4 enabled
ad9516_write_reg(0x232, 0x0);
ad9516_write_reg(0x232, 0x1);
} else {
ad9516_write_reg(0xf4, 0x0a); // OUT4 power-down, no serdes clock
ad9516_write_reg(0x232, 0x0);
ad9516_write_reg(0x232, 0x1);
}
break;
}
return 0;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/ad9516_config.h 0000664 0000000 0000000 00000003064 12412174425 0027644 0 ustar 00root root 0000000 0000000
/* Base configuration (global dividers, output config, reference-independent) */
const struct ad9516_reg ad9516_base_config[] = {
{0x0000, 0x99},
{0x0001, 0x00},
{0x0002, 0x10},
{0x0003, 0xC3},
{0x0004, 0x00},
{0x0010, 0x7C},
{0x0011, 0x05},
{0x0012, 0x00},
{0x0013, 0x0C},
{0x0014, 0x12},
{0x0015, 0x00},
{0x0016, 0x05},
{0x0017, 0x88},
{0x0018, 0x07},
{0x0019, 0x00},
{0x001A, 0x00},
{0x001B, 0x00},
{0x001C, 0x02},
{0x001D, 0x00},
{0x001E, 0x00},
{0x001F, 0x0E},
{0x00A0, 0x01},
{0x00A1, 0x00},
{0x00A2, 0x00},
{0x00A3, 0x01},
{0x00A4, 0x00},
{0x00A5, 0x00},
{0x00A6, 0x01},
{0x00A7, 0x00},
{0x00A8, 0x00},
{0x00A9, 0x01},
{0x00AA, 0x00},
{0x00AB, 0x00},
{0x00F0, 0x0A},
{0x00F1, 0x0A},
{0x00F2, 0x0A},
{0x00F3, 0x0A},
{0x00F4, 0x08},
{0x00F5, 0x08},
{0x0140, 0x43},
{0x0141, 0x42},
{0x0142, 0x43},
{0x0143, 0x42},
{0x0190, 0x00},
{0x0191, 0x80},
{0x0192, 0x00},
{0x0193, 0xBB},
{0x0194, 0x00},
{0x0195, 0x00},
{0x0196, 0x00},
{0x0197, 0x00},
{0x0198, 0x00},
{0x0199, 0x11},
{0x019A, 0x00},
{0x019B, 0x11},
{0x019C, 0x20},
{0x019D, 0x00},
{0x019E, 0x11},
{0x019F, 0x00},
{0x01A0, 0x11},
{0x01A1, 0x20},
{0x01A2, 0x00},
{0x01A3, 0x00},
{0x01E0, 0x04},
{0x01E1, 0x02},
{0x0230, 0x00},
{0x0231, 0x00},
};
/* Config for 25 MHz VCTCXO reference (RDiv = 5, use REF1) */
const struct ad9516_reg ad9516_ref_tcxo[] = {
{0x0011, 0x05},
{0x0012, 0x00}, /* RDiv = 5 */
{0x001C, 0x06} /* Use REF1 */
};
/* Config for 10 MHz external reference (RDiv = 2, use REF2) */
const struct ad9516_reg ad9516_ref_ext[] = {
{0x0011, 0x02},
{0x0012, 0x00}, /* RDiv = 2 */
{0x001C, 0x46} /* Use REF1 */
};
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/ad9516_regs.h 0000664 0000000 0000000 00000002201 12412174425 0027327 0 ustar 00root root 0000000 0000000 const struct {int reg; uint8_t val} ad9516_regs[] = {
{0x0000, 0x99},
{0x0001, 0x00},
{0x0002, 0x10},
{0x0003, 0xC3},
{0x0004, 0x00},
{0x0010, 0x7C},
{0x0011, 0x01},
{0x0012, 0x00},
{0x0013, 0x04},
{0x0014, 0x07},
{0x0015, 0x00},
{0x0016, 0x04},
{0x0017, 0x00},
{0x0018, 0x07},
{0x0019, 0x00},
{0x001A, 0x00},
{0x001B, 0x00},
{0x001C, 0x46},
{0x001D, 0x00},
{0x001E, 0x00},
{0x001F, 0x0E},
{0x00A0, 0x01},
{0x00A1, 0x00},
{0x00A2, 0x00},
{0x00A3, 0x01},
{0x00A4, 0x00},
{0x00A5, 0x00},
{0x00A6, 0x01},
{0x00A7, 0x00},
{0x00A8, 0x00},
{0x00A9, 0x01},
{0x00AA, 0x00},
{0x00AB, 0x00},
{0x00F0, 0x0A},
{0x00F1, 0x0A},
{0x00F2, 0x0A},
{0x00F3, 0x0A},
{0x00F4, 0x08},
{0x00F5, 0x0A},
{0x0140, 0x43},
{0x0141, 0x43},
{0x0142, 0x43},
{0x0143, 0x43},
{0x0190, 0x00},
{0x0191, 0x80},
{0x0192, 0x00},
{0x0193, 0xBB},
{0x0194, 0x00},
{0x0195, 0x00},
{0x0196, 0x00},
{0x0197, 0x00},
{0x0198, 0x00},
{0x0199, 0x22},
{0x019A, 0x00},
{0x019B, 0x11},
{0x019C, 0x00},
{0x019D, 0x00},
{0x019E, 0x22},
{0x019F, 0x00},
{0x01A0, 0x11},
{0x01A1, 0x00},
{0x01A2, 0x00},
{0x01A3, 0x00},
{0x01E0, 0x04},
{0x01E1, 0x02},
{0x0230, 0x00},
{0x0231, 0x00},
{0x0232, 0x00},
{-1, 0}};
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/dev.mk 0000664 0000000 0000000 00000000352 12412174425 0026341 0 ustar 00root root 0000000 0000000 # This work is part of the White Rabbit project
#
# Jose Jimenez , Copyright (C) 2014 UGR.
#
# Released according to the GNU GPL version 3 (GPLv3) or later.
#
obj-y += \
dev/sdb.o \
obj-y += dev/uart.o
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/eeprom.c 0000664 0000000 0000000 00000025630 12412174425 0026673 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2012 CERN (www.cern.ch)
* Author: Grzegorz Daniluk
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include
#include "types.h"
#include "i2c.h"
#include "eeprom.h"
#include "board.h"
#include "syscon.h"
/*
* The SFP section is placed somewhere inside FMC EEPROM and it really does not
* matter where (can be a binary data inside the Board Info section but can be
* placed also outside the FMC standardized EEPROM structure. The only requirement
* is that it starts with 0xdeadbeef pattern. The structure of SFP section is:
*
* ----------------------------------------------
* | cal_ph_trans (4B) | SFP count (1B) |
* --------------------------------------------------------------------------------------------
* | SFP(1) part number (16B) | alpha (4B) | deltaTx (4B) | deltaRx (4B) | chksum(1B) |
* --------------------------------------------------------------------------------------------
* | SFP(2) part number (16B) | alpha (4B) | deltaTx (4B) | deltaRx (4B) | chksum(1B) |
* --------------------------------------------------------------------------------------------
* | (....) | (....) | (....) | (....) | (...) |
* --------------------------------------------------------------------------------------------
* | SFP(count) part number (16B) | alpha (4B) | deltaTx (4B) | deltaRx (4B) | chksum(1B) |
* --------------------------------------------------------------------------------------------
*
* Fields description:
* cal_ph_trans - t2/t4 phase transition value (got from measure_t24p() ), contains
* _valid_ bit (MSB) and 31 bits of cal_phase_transition value
* count - how many SFPs are described in the list (binary)
* SFP(n) part number - SFP PN as read from SFP's EEPROM (e.g. AXGE-1254-0531)
* (16 ascii chars)
* checksum - low order 8 bits of the sum of all bytes for the SFP(PN,alpha,dTx,dRx)
*
*/
/*
* The init script area consist of 2-byte size field and a set of shell commands
* separated with '\n' character.
*
* -------------------
* | bytes used (2B) |
* ------------------------------------------------
* | shell commands separated with '\n'..... |
* | |
* | |
* ------------------------------------------------
*/
uint8_t has_eeprom = 0;
uint8_t eeprom_present(uint8_t i2cif, uint8_t i2c_addr)
{
has_eeprom = 1;
if (!mi2c_devprobe(i2cif, i2c_addr))
if (!mi2c_devprobe(i2cif, i2c_addr))
has_eeprom = 0;
return 0;
}
static int eeprom_read(uint8_t i2cif, uint8_t i2c_addr, uint32_t offset,
uint8_t * buf, size_t size)
{
int i;
unsigned char c;
if (!has_eeprom)
return -1;
mi2c_start(i2cif);
if (mi2c_put_byte(i2cif, i2c_addr << 1) < 0) {
mi2c_stop(i2cif);
return -1;
}
mi2c_put_byte(i2cif, (offset >> 8) & 0xff);
mi2c_put_byte(i2cif, offset & 0xff);
mi2c_repeat_start(i2cif);
mi2c_put_byte(i2cif, (i2c_addr << 1) | 1);
for (i = 0; i < size - 1; ++i) {
mi2c_get_byte(i2cif, &c, 0);
*buf++ = c;
}
mi2c_get_byte(i2cif, &c, 1);
*buf++ = c;
mi2c_stop(i2cif);
return size;
}
static int eeprom_write(uint8_t i2cif, uint8_t i2c_addr, uint32_t offset,
uint8_t * buf, size_t size)
{
int i, busy;
if (!has_eeprom)
return -1;
for (i = 0; i < size; i++) {
mi2c_start(i2cif);
if (mi2c_put_byte(i2cif, i2c_addr << 1) < 0) {
mi2c_stop(i2cif);
return -1;
}
mi2c_put_byte(i2cif, (offset >> 8) & 0xff);
mi2c_put_byte(i2cif, offset & 0xff);
mi2c_put_byte(i2cif, *buf++);
offset++;
mi2c_stop(i2cif);
do { /* wait until the chip becomes ready */
mi2c_start(i2cif);
busy = mi2c_put_byte(i2cif, i2c_addr << 1);
mi2c_stop(i2cif);
} while (busy);
}
return size;
}
int32_t eeprom_sfpdb_erase(uint8_t i2cif, uint8_t i2c_addr)
{
uint8_t sfpcount = 0;
//just a dummy function that writes '0' to sfp count field of the SFP DB
if (eeprom_write(i2cif, i2c_addr, EE_BASE_SFP, &sfpcount,
sizeof(sfpcount)) != sizeof(sfpcount))
return EE_RET_I2CERR;
else
return sfpcount;
}
int32_t eeprom_get_sfp(uint8_t i2cif, uint8_t i2c_addr, struct s_sfpinfo * sfp,
uint8_t add, uint8_t pos)
{
static uint8_t sfpcount = 0;
uint8_t i, chksum = 0;
uint8_t *ptr;
if (pos >= SFPS_MAX)
return EE_RET_POSERR; //position in database outside the range
//read how many SFPs are in the database, but only in the first call (pos==0)
if (!pos
&& eeprom_read(i2cif, i2c_addr, EE_BASE_SFP, &sfpcount,
sizeof(sfpcount)) != sizeof(sfpcount))
return EE_RET_I2CERR;
if (add && sfpcount == SFPS_MAX) //no more space in the database to add new SFPs
return EE_RET_DBFULL;
else if (!pos && !add && sfpcount == 0) //there are no SFPs in the database to read
return sfpcount;
if (!add) {
if (eeprom_read(i2cif, i2c_addr,
EE_BASE_SFP + sizeof(sfpcount)
+ pos * sizeof(struct s_sfpinfo),
(uint8_t*)sfp, sizeof(struct s_sfpinfo))
!= sizeof(struct s_sfpinfo) )
return EE_RET_I2CERR;
ptr = (uint8_t *) sfp;
for (i = 0; i < sizeof(struct s_sfpinfo) - 1; ++i) //'-1' because we do not include chksum in computation
chksum =
(uint8_t) ((uint16_t) chksum + *(ptr++)) & 0xff;
if (chksum != sfp->chksum)
return EE_RET_CORRPT;
} else {
/*count checksum */
ptr = (uint8_t *) sfp;
for (i = 0; i < sizeof(struct s_sfpinfo) - 1; ++i) //'-1' because we do not include chksum in computation
chksum =
(uint8_t) ((uint16_t) chksum + *(ptr++)) & 0xff;
sfp->chksum = chksum;
/*add SFP at the end of DB */
eeprom_write(i2cif, i2c_addr,
EE_BASE_SFP + sizeof(sfpcount)
+ sfpcount * sizeof(struct s_sfpinfo),
(uint8_t *) sfp, sizeof(struct s_sfpinfo));
sfpcount++;
eeprom_write(i2cif, i2c_addr, EE_BASE_SFP, &sfpcount,
sizeof(sfpcount));
}
return sfpcount;
}
int8_t eeprom_match_sfp(uint8_t i2cif, uint8_t i2c_addr, struct s_sfpinfo * sfp)
{
uint8_t sfpcount = 1;
int8_t i, temp;
struct s_sfpinfo dbsfp;
for (i = 0; i < sfpcount; ++i) {
temp = eeprom_get_sfp(WRPC_FMC_I2C, FMC_EEPROM_ADR,
&dbsfp, 0, i);
if (!i) {
sfpcount = temp; //only in first round valid sfpcount is returned from eeprom_get_sfp
if (sfpcount == 0 || sfpcount == 0xFF)
return 0;
else if (sfpcount < 0)
return sfpcount;
}
if (!strncmp(dbsfp.pn, sfp->pn, 16)) {
sfp->dTx = dbsfp.dTx;
sfp->dRx = dbsfp.dRx;
sfp->alpha = dbsfp.alpha;
return 1;
}
}
return 0;
}
int8_t eeprom_phtrans(uint8_t i2cif, uint8_t i2c_addr, uint32_t * val,
uint8_t write)
{
int8_t ret;
if (write) {
*val |= (1 << 31);
if (eeprom_write(i2cif, i2c_addr, EE_BASE_CAL, (uint8_t *) val,
sizeof(*val)) != sizeof(*val))
ret = EE_RET_I2CERR;
else
ret = 1;
*val &= 0x7fffffff; //return ph_trans value without validity bit
return ret;
} else {
if (eeprom_read(i2cif, i2c_addr, EE_BASE_CAL, (uint8_t *) val,
sizeof(*val)) != sizeof(*val))
return EE_RET_I2CERR;
if (!(*val & (1 << 31)))
return 0;
*val &= 0x7fffffff; //return ph_trans value without validity bit
return 1;
}
}
int8_t eeprom_init_erase(uint8_t i2cif, uint8_t i2c_addr)
{
uint16_t used = 0;
if (eeprom_write(i2cif, i2c_addr, EE_BASE_INIT, (uint8_t *) & used,
sizeof(used)) != sizeof(used))
return EE_RET_I2CERR;
else
return used;
}
/*
* Appends a new shell command at the end of boot script
*/
int8_t eeprom_init_add(uint8_t i2cif, uint8_t i2c_addr, const char *args[])
{
uint8_t i = 1;
uint8_t separator = ' ';
uint16_t used, readback;
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT, (uint8_t *) & used,
sizeof(used)) != sizeof(used))
return EE_RET_I2CERR;
if (used == 0xffff)
used = 0; //this means the memory is blank
while (args[i] != '\0') {
if (eeprom_write(i2cif, i2c_addr, EE_BASE_INIT + sizeof(used)
+ used, (uint8_t *) args[i], strlen(args[i]))
!= strlen(args[i]))
return EE_RET_I2CERR;
used += strlen(args[i]);
if (eeprom_write(i2cif, i2c_addr, EE_BASE_INIT + sizeof(used)
+ used, &separator, sizeof(separator))
!= sizeof(separator))
return EE_RET_I2CERR;
++used;
++i;
}
//the end of the command, replace last separator with '\n'
separator = '\n';
if (eeprom_write(i2cif, i2c_addr, EE_BASE_INIT + sizeof(used) + used-1,
&separator, sizeof(separator)) != sizeof(separator))
return EE_RET_I2CERR;
//and finally update the size of the script
if (eeprom_write(i2cif, i2c_addr, EE_BASE_INIT, (uint8_t *) & used,
sizeof(used)) != sizeof(used))
return EE_RET_I2CERR;
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT, (uint8_t *) & readback,
sizeof(readback)) != sizeof(readback))
return EE_RET_I2CERR;
return 0;
}
int32_t eeprom_init_show(uint8_t i2cif, uint8_t i2c_addr)
{
uint16_t used, i;
uint8_t byte;
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT, (uint8_t *) & used,
sizeof(used)) != sizeof(used))
return EE_RET_I2CERR;
if (used == 0 || used == 0xffff) {
used = 0; //this means the memory is blank
mprintf("Empty init script...\n");
}
//just read and print to the screen char after char
for (i = 0; i < used; ++i) {
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT + sizeof(used)
+ i, &byte, sizeof(byte)) != sizeof(byte))
return EE_RET_I2CERR;
mprintf("%c", byte);
}
return 0;
}
int8_t eeprom_init_readcmd(uint8_t i2cif, uint8_t i2c_addr, uint8_t *buf,
uint8_t bufsize, uint8_t next)
{
static uint16_t ptr;
static uint16_t used = 0;
uint8_t i = 0;
if (next == 0) {
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT,
(uint8_t *) & used, sizeof(used))
!= sizeof(used))
return EE_RET_I2CERR;
ptr = sizeof(used);
}
if (ptr - sizeof(used) >= used)
return 0;
do {
if (ptr - sizeof(used) > bufsize)
return EE_RET_CORRPT;
if (eeprom_read(i2cif, i2c_addr, EE_BASE_INIT + (ptr++),
&buf[i], sizeof(char)) != sizeof(char))
return EE_RET_I2CERR;
} while (buf[i++] != '\n');
return i;
}
#ifdef CONFIG_W1
#include
/*
* The "persistent mac" thing was part of onewire.c, and it's not something
* I can understand, I admit.
*
* Now, cards with w1 eeprom already use sdb-eeprom.c as far as I
* know, while this eeprom.c file is still selected for devices that
* have i2c eeprom and never saved a persistent mac address. But maybe
* they prefer w1 for temperature (well, sockitowm will go)
*/
int8_t set_persistent_mac(uint8_t portnum, uint8_t * mac)
{
pp_printf("Can't save persistent MAC address\n");
return -1;
}
int32_t get_persistent_mac(uint8_t portnum, uint8_t * mac)
{
int i, class;
uint64_t rom;
pp_printf("%s: Using W1 serial number\n", __func__);
for (i = 0; i < W1_MAX_DEVICES; i++) {
class = w1_class(wrpc_w1_bus.devs + i);
if (class != 0x28 && class != 0x42)
continue;
rom = wrpc_w1_bus.devs[i].rom;
mac[3] = rom >> 24;
mac[4] = rom >> 16;
mac[5] = rom >> 8;
}
return 0;
}
#endif /* CONFIG_W1 */
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/endpoint.c 0000664 0000000 0000000 00000011743 12412174425 0027224 0 ustar 00root root 0000000 0000000 /*
WR Endpoint (WR-compatible Ethernet MAC driver
Tomasz Wlostowski/CERN 2011
LGPL 2.1
*/
#include
#include
#include "board.h"
#include "syscon.h"
#include
#include "eeprom.h"
#include
#include
/* Length of a single bit on the gigabit serial link in picoseconds. Used for calculating deltaRx/deltaTx
from the serdes bitslip value */
#define PICOS_PER_SERIAL_BIT 800
/* Number of raw phase samples averaged by the DMTD detector in the Endpoint during single phase measurement.
The bigger, the better precision, but slower rate */
#define DMTD_AVG_SAMPLES 256
static int autoneg_enabled;
volatile struct EP_WB *EP;
/* functions for accessing PCS (MDIO) registers */
static uint16_t pcs_read(int location)
{
EP->MDIO_CR = EP_MDIO_CR_ADDR_W(location >> 2);
while ((EP->MDIO_ASR & EP_MDIO_ASR_READY) == 0) ;
return EP_MDIO_ASR_RDATA_R(EP->MDIO_ASR) & 0xffff;
}
static void pcs_write(int location, int value)
{
EP->MDIO_CR = EP_MDIO_CR_ADDR_W(location >> 2)
| EP_MDIO_CR_DATA_W(value)
| EP_MDIO_CR_RW;
while ((EP->MDIO_ASR & EP_MDIO_ASR_READY) == 0) ;
}
/* MAC address setting */
void set_mac_addr(uint8_t dev_addr[])
{
EP->MACL = ((uint32_t) dev_addr[2] << 24)
| ((uint32_t) dev_addr[3] << 16)
| ((uint32_t) dev_addr[4] << 8)
| ((uint32_t) dev_addr[5]);
EP->MACH = ((uint32_t) dev_addr[0] << 8)
| ((uint32_t) dev_addr[1]);
}
void get_mac_addr(uint8_t dev_addr[])
{
dev_addr[5] = (EP->MACL & 0x000000ff);
dev_addr[4] = (EP->MACL & 0x0000ff00) >> 8;
dev_addr[3] = (EP->MACL & 0x00ff0000) >> 16;
dev_addr[2] = (EP->MACL & 0xff000000) >> 24;
dev_addr[1] = (EP->MACH & 0x000000ff);
dev_addr[0] = (EP->MACH & 0x0000ff00) >> 8;
}
/* Initializes the endpoint and sets its local MAC address */
void ep_init(uint8_t mac_addr[])
{
EP = (volatile struct EP_WB *)BASE_EP;
set_mac_addr(mac_addr);
*(unsigned int *)(0x62000) = 0x2; // reset network stuff (cleanup required!)
*(unsigned int *)(0x62000) = 0;
EP->ECR = 0; /* disable Endpoint */
EP->VCR0 = EP_VCR0_QMODE_W(3); /* disable VLAN unit - not used by WRPC */
EP->RFCR = EP_RFCR_MRU_W(1518); /* Set the max RX packet size */
EP->TSCR = EP_TSCR_EN_TXTS | EP_TSCR_EN_RXTS; /* Enable timestamping */
/* Configure DMTD phase tracking */
EP->DMCR = EP_DMCR_EN | EP_DMCR_N_AVG_W(DMTD_AVG_SAMPLES);
}
/* Enables/disables transmission and reception. When autoneg is set to 1,
starts up 802.3 autonegotiation process */
int ep_enable(int enabled, int autoneg)
{
uint16_t mcr;
if (!enabled) {
EP->ECR = 0;
return 0;
}
/* Disable the endpoint */
EP->ECR = 0;
mprintf("ID: %x\n", EP->IDCODE);
/* Load default packet classifier rules - see ep_pfilter.c for details */
pfilter_init_default();
/* Enable TX/RX paths, reset RMON counters */
EP->ECR = EP_ECR_TX_EN | EP_ECR_RX_EN | EP_ECR_RST_CNT;
autoneg_enabled = autoneg;
/* Reset the GTP Transceiver - it's important to do the GTP phase alignment every time
we start up the software, otherwise the calibration RX/TX deltas may not be correct */
pcs_write(MDIO_REG_MCR, MDIO_MCR_PDOWN); /* reset the PHY */
timer_delay_ms(200);
pcs_write(MDIO_REG_MCR, MDIO_MCR_RESET); /* reset the PHY */
pcs_write(MDIO_REG_MCR, 0); /* reset the PHY */
/* Don't advertise anything - we don't want flow control */
pcs_write(MDIO_REG_ADVERTISE, 0);
mcr = MDIO_MCR_SPEED1000_MASK | MDIO_MCR_FULLDPLX_MASK;
if (autoneg)
mcr |= MDIO_MCR_ANENABLE | MDIO_MCR_ANRESTART;
pcs_write(MDIO_REG_MCR, mcr);
return 0;
}
/* Checks the link status. If the link is up, returns non-zero
and stores the Link Partner Ability (LPA) autonegotiation register at *lpa */
int ep_link_up(uint16_t * lpa)
{
uint16_t flags = MDIO_MSR_LSTATUS;
volatile uint16_t msr;
if (autoneg_enabled)
flags |= MDIO_MSR_ANEGCOMPLETE;
msr = pcs_read(MDIO_REG_MSR);
msr = pcs_read(MDIO_REG_MSR); /* Read this flag twice to make sure the status is updated */
if (lpa)
*lpa = pcs_read(MDIO_REG_LPA);
return (msr & flags) == flags ? 1 : 0;
}
int ep_get_bitslide()
{
return PICOS_PER_SERIAL_BIT *
MDIO_WR_SPEC_BSLIDE_R(pcs_read(MDIO_REG_WR_SPEC));
}
/* Returns the TX/RX latencies. They are valid only when the link is up. */
int ep_get_deltas(uint32_t * delta_tx, uint32_t * delta_rx)
{
/* fixme: these values should be stored in calibration block in the EEPROM on the FMC. Also, the TX/RX delays of a particular SFP
should be added here */
*delta_tx = sfp_deltaTx;
*delta_rx =
sfp_deltaRx +
PICOS_PER_SERIAL_BIT *
MDIO_WR_SPEC_BSLIDE_R(pcs_read(MDIO_REG_WR_SPEC));
return 0;
}
int ep_cal_pattern_enable()
{
uint32_t val;
val = pcs_read(MDIO_REG_WR_SPEC);
val |= MDIO_WR_SPEC_TX_CAL;
pcs_write(MDIO_REG_WR_SPEC, val);
return 0;
}
int ep_cal_pattern_disable()
{
uint32_t val;
val = pcs_read(MDIO_REG_WR_SPEC);
val &= (~MDIO_WR_SPEC_TX_CAL);
pcs_write(MDIO_REG_WR_SPEC, val);
return 0;
}
int ep_timestamper_cal_pulse()
{
EP->TSCR |= EP_TSCR_RX_CAL_START;
timer_delay_ms(1);
return EP->TSCR & EP_TSCR_RX_CAL_RESULT ? 1 : 0;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/ep_pfilter.c 0000664 0000000 0000000 00000024002 12412174425 0027525 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011 CERN (www.cern.ch)
* Copyright (C) 2012 GSI (www.gsi.de)
* Author: Tomasz Wlostowski
* Author: Wesley W. Terpstra
*
* Released according to the GNU GPL, version 2 or any later version.
*/
/* Endpoint Packet Filter/Classifier driver
A little explanation: The WR core needs to classify the incoming packets into
two (or more categories):
- PTP, ARP, DHCP packets, which should go to the WRCore CPU packet queue (mini-nic)
- Other packets matching user's provided pattern, which shall go to the external fabric
port - for example to Etherbone, host network controller, etc.
- packets to be dropped (used neither by the WR Core or the user application)
WR Endpoint (WR MAC) inside the WR Core therefore contains a simple microprogrammable
packet filter/classifier. The classifier processes the incoming packet, and assigns it
to one of 8 classes (an 8-bit word, where each bit corresponds to a particular class) or
eventually drops it. Hardware implementation of the unit is a simple VLIW processor with
32 single-bit registers (0 - 31). The registers are organized as follows:
- 0: don't touch (always 0)
- 1 - 22: general purpose registers
- 23: drop packet flag: if 1 at the end of the packet processing, the packet will be dropped.
- 24..31: packet class (class 0 = reg 24, class 7 = reg 31).
Program memory has 64 36-bit words. Packet filtering program is restarted every time a new packet comes.
There are 5 possible instructions:
1. CMP offset, value, mask, oper, Rd:
------------------------------------------
* Rd = Rd oper ((((uint16_t *)packet) [offset] & mask) == value)
Examples:
* CMP 3, 0xcafe, 0xffff, MOV, Rd
will compare the 3rd word of the packet (bytes 6, 7) against 0xcafe and if the words are equal,
1 will be written to Rd register.
* CMP 4, 0xbabe, 0xffff, AND, Rd
will do the same with the 4th word and write to Rd its previous value ANDed with the result
of the comparison. Effectively, Rd now will be 1 only if bytes [6..9] of the payload contain word
0xcafebabe.
Note that the mask value is nibble-granular. That means you can choose a particular
set of nibbles within a word to be compared, but not an arbitrary set of bits (e.g. 0xf00f, 0xff00
and 0xf0f0 masks are ok, but 0x8001 is wrong.
2. BTST offset, bit_number, oper, Rd
------------------------------------------
* Rd = Rd oper (((uint16_t *)packet) [offset] & (1<
#include "board.h"
#include
#include
#define PFILTER_MAX_CODE_SIZE 32
#define pfilter_dbg(x, ...) /* nothing */
extern volatile struct EP_WB *EP;
static const uint64_t PF_MODE_LOGIC = (1ULL << 34);
static const uint64_t PF_MODE_CMP = 0ULL;
static int code_pos;
static uint64_t code_buf[32];
/* begins assembling a new packet filter program */
static void pfilter_new()
{
code_pos = 0;
}
static void check_size()
{
if (code_pos == PFILTER_MAX_CODE_SIZE - 1) {
pfilter_dbg("microcode: code too big (max size: %d)\n",
PFILTER_MAX_CODE_SIZE);
}
}
static void check_reg_range(int val, int minval, int maxval, char *name)
{
if (val < minval || val > maxval) {
pfilter_dbg("microcode: %s register out of range (%d to %d)",
name, minval, maxval);
}
}
static void pfilter_cmp(int offset, int value, int mask, pfilter_op_t op,
int rd)
{
uint64_t ir;
check_size();
if (offset > code_pos)
pfilter_dbg
("microcode: comparison offset is bigger than current PC. Insert some nops before comparing");
check_reg_range(rd, 1, 15, "ra/rd");
ir = (PF_MODE_CMP | ((uint64_t) offset << 7)
| ((mask & 0x1) ? (1ULL << 29) : 0)
| ((mask & 0x10) ? (1ULL << 30) : 0)
| ((mask & 0x100) ? (1ULL << 31) : 0)
| ((mask & 0x1000) ? (1ULL << 32) : 0))
| op | (rd << 3);
ir = ir | ((uint64_t) value & 0xffffULL) << 13;
code_buf[code_pos++] = ir;
}
static void pfilter_nop()
{
uint64_t ir;
check_size();
ir = PF_MODE_LOGIC;
code_buf[code_pos++] = ir;
}
// rd = ra op rb
static void pfilter_logic2(int rd, int ra, pfilter_op_t op, int rb)
{
uint64_t ir;
check_size();
check_reg_range(ra, 0, 31, "ra");
check_reg_range(rb, 0, 31, "rb");
check_reg_range(rd, 1, 31, "rd");
ir = ((uint64_t) ra << 8) | ((uint64_t) rb << 13) |
(((uint64_t) rd & 0xf) << 3) | (((uint64_t) rd & 0x10) ? (1ULL << 7)
: 0) | (uint64_t) op;
ir = ir | PF_MODE_LOGIC | (3ULL << 23);
code_buf[code_pos++] = ir;
}
static void pfilter_logic3(int rd, int ra, pfilter_op_t op, int rb,
pfilter_op_t op2, int rc)
{
uint64_t ir;
check_size();
check_reg_range(ra, 0, 31, "ra");
check_reg_range(rb, 0, 31, "rb");
check_reg_range(rc, 0, 31, "rc");
check_reg_range(rd, 1, 31, "rd");
ir = (ra << 8) | (rb << 13) | (rc << 18) | ((rd & 0xf) << 3) |
((rd & 0x10) ? (1 << 7) : 0) | op;
ir = ir | PF_MODE_LOGIC | (op2 << 23);
code_buf[code_pos++] = ir;
}
/* Terminates the microcode, loads it to the endpoint and enables the pfilter */
static void pfilter_load()
{
int i;
code_buf[code_pos++] = (1ULL << 35); // insert FIN instruction
EP->PFCR0 = 0; // disable pfilter
for (i = 0; i < code_pos; i++) {
uint32_t cr0, cr1;
cr1 = EP_PFCR1_MM_DATA_LSB_W(code_buf[i] & 0xfff);
cr0 =
EP_PFCR0_MM_ADDR_W(i) | EP_PFCR0_MM_DATA_MSB_W(code_buf[i]
>> 12) |
EP_PFCR0_MM_WRITE_MASK;
EP->PFCR1 = cr1;
EP->PFCR0 = cr0;
}
EP->PFCR0 = EP_PFCR0_ENABLE;
}
/* sample packet filter initialization:
- redirects broadcasts and PTP packets to the WR Core
- redirects unicasts addressed to self with ethertype 0xa0a0 to the external fabric */
#define R_CLASS(x) (24 + x)
#define R_DROP 23
void pfilter_init_default()
{
pfilter_new();
pfilter_nop();
pfilter_cmp(0, 0xffff, 0xffff, MOV, 1);
pfilter_cmp(1, 0xffff, 0xffff, AND, 1);
pfilter_cmp(2, 0xffff, 0xffff, AND, 1); /* r1 = 1 when dst mac is broadcast */
pfilter_cmp(0, 0x011b, 0xffff, MOV, 2);
pfilter_cmp(1, 0x1900, 0xffff, AND, 2);
pfilter_cmp(2, 0x0000, 0xffff, AND, 2); /* r2 = 1 when dst mac is PTP multicast (01:1b:19:00:00:00) */
pfilter_cmp(0, EP->MACH & 0xffff, 0xffff, MOV, 3);
pfilter_cmp(1, EP->MACL >> 16, 0xffff, AND, 3);
pfilter_cmp(2, EP->MACL & 0xffff, 0xffff, AND, 3); /* r3 = 1 when the packet is unicast to our own MAC */
pfilter_cmp(6, 0x0800, 0xffff, MOV, 4); /* r4 = 1 when ethertype = IPv4 */
pfilter_cmp(6, 0x88f7, 0xffff, MOV, 5); /* r5 = 1 when ethertype = PTPv2 */
pfilter_cmp(6, 0x0806, 0xffff, MOV, 6); /* r6 = 1 when ethertype = ARP */
pfilter_cmp(6, 0xdbff, 0xffff, MOV, 9); /* r9 = 1 when ethertype = streamer */
/* Ethernet = 14 bytes, Offset to type in IP: 8 bytes = 22/2 = 11 */
pfilter_cmp(11, 0x0001, 0x00ff, MOV, 7); /* r7 = 1 when IP type = ICMP */
pfilter_cmp(11, 0x0011, 0x00ff, MOV, 8); /* r8 = 1 when IP type = UDP */
#ifdef CONFIG_ETHERBONE
pfilter_logic3(10, 3, OR, 0, AND, 4); /* r10 = IP(unicast) */
pfilter_logic3(11, 1, OR, 3, AND, 4); /* r11 = IP(unicast+broadcast) */
pfilter_logic3(14, 1, AND, 6, OR, 5); /* r14 = ARP(broadcast) or PTPv2 */
pfilter_logic3(15, 10, AND, 7, OR, 14); /* r15 = ICMP/IP(unicast) or ARP(broadcast) or PTPv2 */
/* Ethernet = 14 bytes, IPv4 = 20 bytes, offset to dport: 2 = 36/2 = 18 */
pfilter_cmp(18, 0x0044, 0xffff, MOV, 14); /* r14 = 1 when dport = BOOTPC */
pfilter_logic3(14, 14, AND, 8, AND, 11); /* r14 = BOOTP/UDP/IP(unicast|broadcast) */
pfilter_logic2(15, 14, OR, 15); /* r15 = BOOTP/UDP/IP(unicast|broadcast) or ICMP/IP(unicast) or ARP(broadcast) or PTPv2 */
#ifdef CONFIG_NIC_PFILTER
pfilter_cmp(18,0xebd0,0xffff,MOV,6); /* r6 = 1 when dport = ETHERBONE */
//pfilter_cmp(21,0x4e6f,0xffff,MOV,9); /* r9 = 1 when magic number = ETHERBONE */
//pfilter_logic2(6,6,AND,9);
pfilter_logic2(R_CLASS(0), 15, MOV, 0); /* class 0: ICMP/IP(unicast) or ARP(broadcast) or PTPv2 => PTP LM32 core */
pfilter_logic2(R_CLASS(5), 6, OR, 0); /* class 5: Etherbone packet => Etherbone Core */
pfilter_logic3(R_CLASS(7), 15, OR, 6, NOT, 0); /* class 7: Rest => NIC Core */
#else
pfilter_logic3(20, 11, AND, 8, OR, 15); /* r16 = Something we accept */
pfilter_logic3(R_DROP, 20, OR, 9, NOT, 0); /* None match? drop */
pfilter_logic2(R_CLASS(7), 11, AND, 8); /* class 7: UDP/IP(unicast|broadcast) => external fabric */
pfilter_logic2(R_CLASS(6), 1, AND, 9); /* class 6: streamer broadcasts => external fabric */
pfilter_logic2(R_CLASS(0), 15, MOV, 0); /* class 0: ICMP/IP(unicast) or ARP(broadcast) or PTPv2 => PTP LM32 core */
#endif
#else
pfilter_logic3(10, 3, OR, 2, AND, 5); /* r10 = PTP (multicast or unicast) */
pfilter_logic2(11, 1, AND, 9); /* r11 = streamer broadcast */
pfilter_logic3(12, 10, OR, 11, NOT, 0); /* r12 = all non-PTP and non-streamer traffic */
pfilter_logic2(R_CLASS(7), 12, MOV, 0); /* class 7: all non PTP and non-streamer
traffic => external fabric */
pfilter_logic2(R_CLASS(6), 11, MOV, 0); /* class 6: streamer broadcasts =>
external fabric */
pfilter_logic2(R_CLASS(0), 10, MOV, 0); /* class 0: PTP frames => LM32 */
#endif
pfilter_load();
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/i2c.c 0000664 0000000 0000000 00000004551 12412174425 0026060 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011,2012 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
* Author: Grzegorz Daniluk
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include "types.h"
#include "board.h"
#include "syscon.h"
#define I2C_DELAY 300
void mi2c_delay()
{
int i;
for (i = 0; i < I2C_DELAY; i++)
asm volatile ("nop");
}
#define M_SDA_OUT(i, x) { gpio_out(i2c_if[i].sda, x); mi2c_delay(); }
#define M_SCL_OUT(i, x) { gpio_out(i2c_if[i].scl, x); mi2c_delay(); }
#define M_SDA_IN(i) gpio_in(i2c_if[i].sda)
void mi2c_start(uint8_t i2cif)
{
M_SDA_OUT(i2cif, 0);
M_SCL_OUT(i2cif, 0);
}
void mi2c_repeat_start(uint8_t i2cif)
{
M_SDA_OUT(i2cif, 1);
M_SCL_OUT(i2cif, 1);
M_SDA_OUT(i2cif, 0);
M_SCL_OUT(i2cif, 0);
}
void mi2c_stop(uint8_t i2cif)
{
M_SDA_OUT(i2cif, 0);
M_SCL_OUT(i2cif, 1);
M_SDA_OUT(i2cif, 1);
}
unsigned char mi2c_put_byte(uint8_t i2cif, unsigned char data)
{
char i;
unsigned char ack;
for (i = 0; i < 8; i++, data <<= 1) {
M_SDA_OUT(i2cif, data & 0x80);
M_SCL_OUT(i2cif, 1);
M_SCL_OUT(i2cif, 0);
}
M_SDA_OUT(i2cif, 1);
M_SCL_OUT(i2cif, 1);
ack = M_SDA_IN(i2cif); /* ack: sda is pulled low ->success. */
M_SCL_OUT(i2cif, 0);
M_SDA_OUT(i2cif, 0);
return ack != 0;
}
void mi2c_get_byte(uint8_t i2cif, unsigned char *data, uint8_t last)
{
int i;
unsigned char indata = 0;
M_SDA_OUT(i2cif, 1);
/* assert: scl is low */
M_SCL_OUT(i2cif, 0);
for (i = 0; i < 8; i++) {
M_SCL_OUT(i2cif, 1);
indata <<= 1;
if (M_SDA_IN(i2cif))
indata |= 0x01;
M_SCL_OUT(i2cif, 0);
}
if (last) {
M_SDA_OUT(i2cif, 1); //noack
M_SCL_OUT(i2cif, 1);
M_SCL_OUT(i2cif, 0);
} else {
M_SDA_OUT(i2cif, 0); //ack
M_SCL_OUT(i2cif, 1);
M_SCL_OUT(i2cif, 0);
}
*data = indata;
}
void mi2c_init(uint8_t i2cif)
{
M_SCL_OUT(i2cif, 1);
M_SDA_OUT(i2cif, 1);
}
uint8_t mi2c_devprobe(uint8_t i2cif, uint8_t i2c_addr)
{
uint8_t ret;
mi2c_start(i2cif);
ret = !mi2c_put_byte(i2cif, i2c_addr << 1);
mi2c_stop(i2cif);
return ret;
}
//void mi2c_scan(uint8_t i2cif)
//{
// int i;
//
// //for(i=0;i<0x80;i++)
// for(i=0x50;i<0x51;i++)
// {
// mi2c_start(i2cif);
// if(!mi2c_put_byte(i2cif, i<<1)) mprintf("found : %x\n", i);
// mi2c_stop(i2cif);
//
// }
// mprintf("Nothing more found...\n");
//}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/minic.c 0000664 0000000 0000000 00000023561 12412174425 0026504 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011,2012 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
* Author: Grzegorz Daniluk
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include
#include
#include "types.h"
#include "board.h"
#include "pps_gen.h" /* for pps_gen_get_time() */
#include "minic.h"
#include
#include
#define MINIC_DMA_TX_BUF_SIZE 1024
#define MINIC_DMA_RX_BUF_SIZE 2048
#define MINIC_MTU 256
#define F_COUNTER_BITS 4
#define F_COUNTER_MASK ((1<> 28) & 0xf;
static volatile uint32_t dma_tx_buf[MINIC_DMA_TX_BUF_SIZE / 4];
static volatile uint32_t dma_rx_buf[MINIC_DMA_RX_BUF_SIZE / 4];
struct wr_minic {
volatile uint32_t *rx_head, *rx_base;
uint32_t rx_avail, rx_size;
volatile uint32_t *tx_head, *tx_base;
uint32_t tx_avail, tx_size;
int tx_count, rx_count;
};
static struct wr_minic minic;
static inline void minic_writel(uint32_t reg, uint32_t data)
{
*(volatile uint32_t *)(BASE_MINIC + reg) = data;
}
static inline uint32_t minic_readl(uint32_t reg)
{
return *(volatile uint32_t *)(BASE_MINIC + reg);
}
/*
* uint32_t size - in bytes
*/
static uint8_t *minic_rx_memcpy(uint8_t * dst, uint8_t * src, uint32_t size)
{
uint32_t part;
//if src is outside the circular buffer, bring it back to the beginning
src = (uint8_t *)((uint32_t)minic.rx_base +
((uint32_t)src - (uint32_t) minic.rx_base)
% (minic.rx_size << 2));
if ((uint32_t)src + size <= (uint32_t)minic.rx_base
+ (minic.rx_size << 2))
return memcpy(dst, src, size);
part = (uint32_t)minic.rx_base + (minic.rx_size << 2) - (uint32_t)src;
memcpy(dst, src, part);
memcpy((void *)(dst + part), (void *)minic.rx_base, size - part);
return dst;
}
/*
* uint32_t size - in bytes
*/
static uint8_t *minic_rx_memset(uint8_t * mem, uint8_t c, uint32_t size)
{
uint32_t part;
uint32_t *src;
//if src is outside the circular buffer, bring it back to the beginning
src = (uint32_t *)((uint32_t)minic.rx_base +
((uint32_t) mem - (uint32_t) minic.rx_base)
% (minic.rx_size << 2));
if ((uint32_t) src + size <= (uint32_t) minic.rx_base
+ (minic.rx_size << 2))
return memset((void *)src, c, size);
part = (uint32_t) minic.rx_base + (minic.rx_size << 2) - (uint32_t) src;
memset(src, c, part);
memset((void *)minic.rx_base, c, size - part);
return (uint8_t *) src;
}
static void minic_new_rx_buffer()
{
minic_writel(MINIC_REG_MCR, 0);
minic.rx_base = dma_rx_buf;
minic.rx_size = MINIC_DMA_RX_BUF_SIZE / 4;
minic.rx_head = minic.rx_base;
minic_rx_memset((uint8_t *) minic.rx_base, 0x00, minic.rx_size << 2);
minic_writel(MINIC_REG_RX_ADDR, (uint32_t) minic.rx_base);
minic_writel(MINIC_REG_RX_SIZE, minic.rx_size);
//new buffer allocated, clear any old RX interrupts
minic_writel(MINIC_REG_EIC_ISR, MINIC_EIC_ISR_RX);
minic_writel(MINIC_REG_MCR, MINIC_MCR_RX_EN);
}
static void minic_rxbuf_free(uint32_t words)
{
minic_rx_memset((uint8_t *) minic.rx_head, 0x00, words << 2);
minic_writel(MINIC_REG_RX_AVAIL, words);
}
static void minic_new_tx_buffer()
{
minic.tx_base = dma_tx_buf;
minic.tx_size = MINIC_DMA_TX_BUF_SIZE >> 2;
minic.tx_head = minic.tx_base;
minic.tx_avail = minic.tx_size;
minic_writel(MINIC_REG_TX_ADDR, (uint32_t) minic.tx_base);
}
void minic_init()
{
uint32_t lo, hi;
minic_writel(MINIC_REG_EIC_IDR, MINIC_EIC_IDR_RX);
minic_writel(MINIC_REG_EIC_ISR, MINIC_EIC_ISR_RX);
minic.rx_base = dma_rx_buf;
minic.rx_size = sizeof(dma_rx_buf);
/* FIXME: now we have a temporary HW protection against accidentally overwriting the memory - there's some
very well hidden bug in Minic's RX logic which sometimes causes an overwrite of the memory outside
the buffer. */
lo = (uint32_t) minic.rx_base >> 2;
hi = ((uint32_t) minic.rx_base >> 2) + (sizeof(dma_rx_buf) >> 2) - 1;
minic_writel(MINIC_REG_MPROT,
MINIC_MPROT_LO_W(lo) | MINIC_MPROT_HI_W(hi));
minic.tx_base = dma_tx_buf;
minic.tx_size = MINIC_DMA_TX_BUF_SIZE >> 2;
minic.tx_count = 0;
minic.rx_count = 0;
minic_new_rx_buffer();
minic_writel(MINIC_REG_EIC_IER, MINIC_EIC_IER_RX);
}
void minic_disable()
{
minic_writel(MINIC_REG_MCR, 0);
}
int minic_poll_rx()
{
uint32_t isr;
isr = minic_readl(MINIC_REG_EIC_ISR);
return (isr & MINIC_EIC_ISR_RX) ? 1 : 0;
}
int minic_rx_frame(uint8_t * hdr, uint8_t * payload, uint32_t buf_size,
struct hw_timestamp *hwts)
{
uint32_t payload_size, num_words;
uint32_t desc_hdr;
uint32_t raw_ts;
uint32_t cur_avail;
int n_recvd;
if (!(minic_readl(MINIC_REG_EIC_ISR) & MINIC_EIC_ISR_RX))
return 0;
desc_hdr = *minic.rx_head;
if (!RX_DESC_VALID(desc_hdr)) { /* invalid descriptor? Weird, the RX_ADDR seems to be saying something different. Ignore the packet and purge the RX buffer. */
//invalid descriptor ? then probably the interrupt was generated by full rx buffer
if (minic_readl(MINIC_REG_MCR) & MINIC_MCR_RX_FULL) {
minic_new_rx_buffer();
} else {
//otherwise, weird !!
mprintf("invalid descriptor @%x = %x\n",
(uint32_t) minic.rx_head, desc_hdr);
minic_new_rx_buffer();
}
return 0;
}
payload_size = RX_DESC_SIZE(desc_hdr);
num_words = ((payload_size + 3) >> 2) + 1;
/* valid packet */
if (!RX_DESC_ERROR(desc_hdr)) {
if (RX_DESC_HAS_OOB(desc_hdr) && hwts != NULL) {
uint32_t counter_r, counter_f, counter_ppsg;
uint64_t sec;
int cntr_diff;
uint16_t dhdr;
payload_size -= RX_OOB_SIZE;
/* fixme: ugly way of doing unaligned read */
minic_rx_memcpy((uint8_t *) & raw_ts,
(uint8_t *) minic.rx_head
+ payload_size + 6, 4);
minic_rx_memcpy((uint8_t *) & dhdr,
(uint8_t *) minic.rx_head +
payload_size + 4, 2);
EXPLODE_WR_TIMESTAMP(raw_ts, counter_r, counter_f);
shw_pps_gen_get_time(&sec, &counter_ppsg);
if (counter_r > 3 * REF_CLOCK_FREQ_HZ / 4
&& counter_ppsg < 250000000)
sec--;
hwts->sec = sec & 0x7fffffff;
cntr_diff = (counter_r & F_COUNTER_MASK) - counter_f;
if (cntr_diff == 1 || cntr_diff == (-F_COUNTER_MASK))
hwts->ahead = 1;
else
hwts->ahead = 0;
hwts->nsec = counter_r * (REF_CLOCK_PERIOD_PS / 1000);
hwts->valid = (dhdr & RXOOB_TS_INCORRECT) ? 0 : 1;
}
n_recvd = (buf_size < payload_size ? buf_size : payload_size);
minic.rx_count++;
minic_rx_memcpy(hdr, (void *)minic.rx_head + 4,
ETH_HEADER_SIZE);
minic_rx_memcpy(payload, (void *)minic.rx_head + 4
+ ETH_HEADER_SIZE, n_recvd - ETH_HEADER_SIZE);
} else {
n_recvd = -1;
}
minic_rxbuf_free(num_words);
minic.rx_head = (uint32_t *)((uint32_t)minic.rx_base +
((uint32_t) minic.rx_head
+ (num_words << 2) - (uint32_t)minic.rx_base)
% (minic.rx_size << 2));
cur_avail = minic_readl(MINIC_REG_RX_AVAIL) & 0xFFFFFF; /* 24-bit field */
/*empty buffer->no more received packets, or packet reception in progress but not done */
if (!RX_DESC_VALID(*minic.rx_head)) {
if (minic_readl(MINIC_REG_MCR) & MINIC_MCR_RX_FULL)
minic_new_rx_buffer();
minic_writel(MINIC_REG_EIC_ISR, MINIC_EIC_ISR_RX);
}
return n_recvd;
}
int minic_tx_frame(uint8_t * hdr, uint8_t * payload, uint32_t size,
struct hw_timestamp *hwts)
{
uint32_t d_hdr, mcr, nwords;
uint8_t ts_valid;
int i;
minic_new_tx_buffer();
memset((void *)minic.tx_head, 0x0, size + 16);
memset((void *)minic.tx_head + 4, 0, size < 60 ? 60 : size);
memcpy((void *)minic.tx_head + 4, hdr, ETH_HEADER_SIZE);
memcpy((void *)minic.tx_head + 4 + ETH_HEADER_SIZE, payload,
size - ETH_HEADER_SIZE);
if (size < 60)
size = 60;
nwords = ((size + 1) >> 1);
d_hdr = 0;
if (hwts)
d_hdr = TX_DESC_WITH_OOB | (WRPC_FID << 12);
d_hdr |= TX_DESC_VALID | nwords;
*(volatile uint32_t *)(minic.tx_head) = d_hdr;
*(volatile uint32_t *)(minic.tx_head + nwords) = 0;
mcr = minic_readl(MINIC_REG_MCR);
minic_writel(MINIC_REG_MCR, mcr | MINIC_MCR_TX_START);
/* wait for the DMA to finish */
for (i = 0; i < 1000; ++i) {
mcr = minic_readl(MINIC_REG_MCR);
if ((mcr & MINIC_MCR_TX_IDLE) != 0) break;
timer_delay_ms(1);
}
if (i == 1000)
mprintf("Warning: tx not terminated infinite mcr=0x%x\n",mcr);
if (hwts) {
uint32_t raw_ts;
uint16_t fid;
uint32_t counter_r, counter_f;
uint64_t sec;
uint32_t nsec;
/* wait for the timestamp */
for (i = 0; i < 100; ++i) {
mcr = minic_readl(MINIC_REG_MCR);
if ((mcr & MINIC_MCR_TX_TS_READY) != 0) break;
timer_delay_ms(1);
}
ts_valid = 1;
if (i == 100)
{
mprintf("Warning: tx timestamp never became available\n");
ts_valid = 0;
}
if(ts_valid)
ts_valid = (uint8_t)(minic_readl(MINIC_REG_TSR0)
& MINIC_TSR0_VALID);
raw_ts = minic_readl(MINIC_REG_TSR1);
fid = MINIC_TSR0_FID_R(minic_readl(MINIC_REG_TSR0));
if (fid != WRPC_FID) {
TRACE_DEV("minic_tx_frame: unmatched fid %d vs %d\n",
fid, WRPC_FID);
}
EXPLODE_WR_TIMESTAMP(raw_ts, counter_r, counter_f);
shw_pps_gen_get_time(&sec, &nsec);
if (counter_r > 3 * REF_CLOCK_FREQ_HZ / 4 && nsec < 250000000)
sec--;
hwts->valid = ts_valid;
hwts->sec = sec;
hwts->ahead = 0;
hwts->nsec = counter_r * 8;
// TRACE_DEV("minic_tx_frame [%d bytes] TS: %d.%d valid %d\n", size, hwts->utc, hwts->nsec, hwts->valid);
minic.tx_count++;
}
return size;
}
void minic_get_stats(int *tx_frames, int *rx_frames)
{
*tx_frames = minic.tx_count;
*rx_frames = minic.rx_count;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/pps_gen.c 0000664 0000000 0000000 00000007120 12412174425 0027031 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2012 CERN (www.cern.ch)
* Copyright (C) 2012 GSI (www.gsi.de)
* Author: Tomasz Wlostowski
* Author: Wesley W. Terpstra
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include "board.h"
#include "pps_gen.h"
#include "hw/pps_gen_regs.h"
/* PPS Generator driver */
/* Warning: references to "UTC" in the registers DO NOT MEAN actual UTC time, it's just a plain second counter
It doesn't care about leap seconds. */
#define ppsg_write(reg, val) \
*(volatile uint32_t *) (BASE_PPS_GEN + (offsetof(struct PPSG_WB, reg))) = (val)
#define ppsg_read(reg) \
*(volatile uint32_t *) (BASE_PPS_GEN + (offsetof(struct PPSG_WB, reg)))
void shw_pps_gen_init()
{
uint32_t cr;
cr = PPSG_CR_CNT_EN | PPSG_CR_PWIDTH_W(PPS_WIDTH);
ppsg_write(CR, cr);
ppsg_write(ADJ_UTCLO, 0);
ppsg_write(ADJ_UTCHI, 0);
ppsg_write(ADJ_NSEC, 0);
ppsg_write(CR, cr | PPSG_CR_CNT_SET);
ppsg_write(CR, cr);
ppsg_write(ESCR, 0); /* disable PPS output */
}
/* Adjusts the nanosecond (refclk cycle) counter by atomically adding (how_much) cycles. */
int shw_pps_gen_adjust(int counter, int64_t how_much)
{
TRACE_DEV("Adjust: counter = %s [%c%d]\n",
counter == PPSG_ADJUST_SEC ? "seconds" : "nanoseconds",
how_much < 0 ? '-' : '+', (int32_t) abs(how_much));
if (counter == PPSG_ADJUST_NSEC) {
ppsg_write(ADJ_UTCLO, 0);
ppsg_write(ADJ_UTCHI, 0);
ppsg_write(ADJ_NSEC,
(int32_t) ((int64_t) how_much * 1000LL /
(int64_t) REF_CLOCK_PERIOD_PS));
} else {
ppsg_write(ADJ_UTCLO, (uint32_t) (how_much & 0xffffffffLL));
ppsg_write(ADJ_UTCHI, (uint32_t) (how_much >> 32) & 0xff);
ppsg_write(ADJ_NSEC, 0);
}
ppsg_write(CR, ppsg_read(CR) | PPSG_CR_CNT_ADJ);
return 0;
}
/* Sets the current time */
void shw_pps_gen_set_time(uint64_t seconds, uint32_t nanoseconds, int counter)
{
ppsg_write(ADJ_UTCLO, (uint32_t) (seconds & 0xffffffffLL));
ppsg_write(ADJ_UTCHI, (uint32_t) (seconds >> 32) & 0xff);
ppsg_write(ADJ_NSEC,
(int32_t) ((int64_t) nanoseconds * 1000LL /
(int64_t) REF_CLOCK_PERIOD_PS));
if (counter == PPSG_SET_ALL)
ppsg_write(CR, (ppsg_read(CR) & 0xfffffffb) | PPSG_CR_CNT_SET);
else if (counter == PPSG_SET_SEC)
ppsg_write(ESCR, (ppsg_read(ESCR) & 0xffffffe7) | PPSG_ESCR_SEC_SET);
else if (counter == PPSG_SET_NSEC)
ppsg_write(ESCR, (ppsg_read(ESCR) & 0xffffffe7) | PPSG_ESCR_NSEC_SET);
}
uint64_t pps_get_utc(void)
{
uint64_t out;
uint32_t low, high;
low = ppsg_read(CNTR_UTCLO);
high = ppsg_read(CNTR_UTCHI);
high &= 0xFF; /* CNTR_UTCHI has only 8 bits defined -- rest are HDL don't care */
out = (uint64_t) low | (uint64_t) high << 32;
return out;
}
void shw_pps_gen_get_time(uint64_t * seconds, uint32_t * nanoseconds)
{
uint32_t ns_cnt;
uint64_t sec1, sec2;
do {
sec1 = pps_get_utc();
ns_cnt = ppsg_read(CNTR_NSEC) & 0xFFFFFFFUL; /* 28-bit wide register */
sec2 = pps_get_utc();
} while (sec2 != sec1);
if (seconds)
*seconds = sec2;
if (nanoseconds)
*nanoseconds =
(uint32_t) ((int64_t) ns_cnt *
(int64_t) REF_CLOCK_PERIOD_PS / 1000LL);
}
/* Returns 1 when the adjustment operation is not yet finished */
int shw_pps_gen_busy()
{
uint32_t cr = ppsg_read(CR);
return cr & PPSG_CR_CNT_ADJ ? 0 : 1;
}
/* Enables/disables PPS output */
int shw_pps_gen_enable_output(int enable)
{
uint32_t escr = ppsg_read(ESCR);
if (enable)
ppsg_write(ESCR,
escr | PPSG_ESCR_PPS_VALID | PPSG_ESCR_TM_VALID);
else
ppsg_write(ESCR,
escr & ~(PPSG_ESCR_PPS_VALID | PPSG_ESCR_TM_VALID));
return 0;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/rxts_calibrator.c 0000664 0000000 0000000 00000015576 12412174425 0030616 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2012 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include
#include
#include
#include "board.h"
#include "trace.h"
#include "syscon.h"
#include "endpoint.h"
#include "softpll_ng.h"
#include "wrc_ptp.h"
#include "eeprom.h"
#include "ptpd_netif.h"
/* New calibrator for the transition phase value. A major pain in the ass for
the folks who frequently rebuild their gatewares. The idea is described
below:
- lock the PLL to the master
- scan the whole phase shifter range
- at each scanning step, generate a fake RX timestamp.
- check if the rising edge counter is ahead of the falling edge counter
(added a special bit for it in the TSU).
- determine phases at which positive/negative transitions occur
- transition phase value is in the middle between the rising and falling
edges.
This calibration procedure is fast enough to be run on slave nodes whenever
the link goes up. For master mode, the core must be run at least once as a
slave to calibrate itself and store the current transition phase value in
the EEPROM.
*/
/* how finely we scan the phase shift range to determine where we have the bit
* flip */
#define CAL_SCAN_STEP 100
/* deglitcher threshold (to remove 1->0->1 flip bit glitches that might occur
due to jitter) */
#define CAL_DEGLITCH_THRESHOLD 5
/* we scan at least one clock period to look for rising->falling edge transition
plus some headroom */
#define CAL_SCAN_RANGE (REF_CLOCK_PERIOD_PS + \
(3 * CAL_DEGLITCH_THRESHOLD * CAL_SCAN_STEP))
#define TD_WAIT_INACTIVE 0
#define TD_GOT_TRANSITION 1
#define TD_DONE 2
/* state of transition detector */
struct trans_detect_state {
int prev_val;
int sample_count;
int state;
int trans_phase;
};
/* finds the transition in the value of flip_bit and returns phase associated
with it. If no transition phase has been found yet, returns 0. Non-zero
polarity means we are looking for positive transitions, 0 - negative
transitions */
static int lookup_transition(struct trans_detect_state *state, int flip_bit,
int phase, int polarity)
{
if (polarity)
polarity = 1;
switch (state->state) {
case TD_WAIT_INACTIVE:
/* first, wait until we have at least CAL_DEGLITCH_THRESHOLD of
inactive state samples */
if (flip_bit != polarity)
state->sample_count++;
else
state->sample_count = 0;
if (state->sample_count >= CAL_DEGLITCH_THRESHOLD) {
state->state = TD_GOT_TRANSITION;
state->sample_count = 0;
}
break;
case TD_GOT_TRANSITION:
if (flip_bit != polarity)
state->sample_count = 0;
else {
state->sample_count++;
if (state->sample_count >= CAL_DEGLITCH_THRESHOLD) {
state->state = TD_DONE;
state->trans_phase =
phase -
CAL_DEGLITCH_THRESHOLD * CAL_SCAN_STEP;
}
}
break;
case TD_DONE:
return 1;
break;
}
return 0;
}
static struct trans_detect_state det_rising, det_falling;
static int cal_cur_phase;
/* Starts RX timestamper calibration process state machine. Invoked by
ptpnetif's check lock function when the PLL has already locked, to avoid
complicating the API of ptp-noposix/ppsi. */
void rxts_calibration_start()
{
cal_cur_phase = 0;
det_rising.prev_val = det_falling.prev_val = -1;
det_rising.state = det_falling.state = TD_WAIT_INACTIVE;
det_rising.sample_count = 0;
det_falling.sample_count = 0;
det_rising.trans_phase = 0;
det_falling.trans_phase = 0;
spll_set_phase_shift(0, 0);
}
/* Updates RX timestamper state machine. Non-zero return value means that
calibration is done. */
int rxts_calibration_update(uint32_t *t24p_value)
{
int32_t ttrans = 0;
if (spll_shifter_busy(0))
return 0;
/* generate a fake RX timestamp and check if falling edge counter is
ahead of rising edge counter */
int flip = ep_timestamper_cal_pulse();
/* look for transitions (with deglitching) */
lookup_transition(&det_rising, flip, cal_cur_phase, 1);
lookup_transition(&det_falling, flip, cal_cur_phase, 0);
if (cal_cur_phase >= CAL_SCAN_RANGE) {
if (det_rising.state != TD_DONE || det_falling.state != TD_DONE)
{
TRACE_DEV("RXTS calibration error.\n");
return -1;
}
/* normalize */
while (det_falling.trans_phase >= REF_CLOCK_PERIOD_PS)
det_falling.trans_phase -= REF_CLOCK_PERIOD_PS;
while (det_rising.trans_phase >= REF_CLOCK_PERIOD_PS)
det_rising.trans_phase -= REF_CLOCK_PERIOD_PS;
/* Use falling edge as second sample of rising edge */
if (det_falling.trans_phase > det_rising.trans_phase)
ttrans = det_falling.trans_phase - REF_CLOCK_PERIOD_PS/2;
else if(det_falling.trans_phase < det_rising.trans_phase)
ttrans = det_falling.trans_phase + REF_CLOCK_PERIOD_PS/2;
ttrans += det_rising.trans_phase;
ttrans /= 2;
/*normalize ttrans*/
if(ttrans < 0) ttrans += REF_CLOCK_PERIOD_PS;
if(ttrans >= REF_CLOCK_PERIOD_PS) ttrans -= REF_CLOCK_PERIOD_PS;
TRACE_DEV("RXTS calibration: R@%dps, F@%dps, transition@%dps\n",
det_rising.trans_phase, det_falling.trans_phase,
ttrans);
*t24p_value = (uint32_t)ttrans;
return 1;
}
cal_cur_phase += CAL_SCAN_STEP;
spll_set_phase_shift(0, cal_cur_phase);
return 0;
}
/* legacy function for 'calibration force' command */
int measure_t24p(uint32_t *value)
{
int rv;
pp_printf("Waiting for link...\n");
while (!ep_link_up(NULL))
timer_delay_ms(100);
spll_init(SPLL_MODE_SLAVE, 0, 1);
pp_printf("Locking PLL...\n");
while (!spll_check_lock(0))
timer_delay_ms(100);
pp_printf("\n");
pp_printf("Calibrating RX timestamper...\n");
rxts_calibration_start();
while (!(rv = rxts_calibration_update(value))) ;
return rv;
}
/*SoftPLL must be locked prior calling this function*/
static int calib_t24p_slave(uint32_t *value)
{
int rv;
rxts_calibration_start();
while (!(rv = rxts_calibration_update(value))) ;
if (rv < 0) {
pp_printf("Could not calibrate t24p, trying to read from EEPROM\n");
if(eeprom_phtrans(WRPC_FMC_I2C, FMC_EEPROM_ADR, value, 0) < 0) {
pp_printf("Something went wrong while writing EEPROM\n");
return -1;
}
}
else {
pp_printf("t24p value is %d ps, storing to EEPROM\n", *value);
if(eeprom_phtrans(WRPC_FMC_I2C, FMC_EEPROM_ADR, value, 1) < 0) {
pp_printf("Something went wrong while writing EEPROM\n");
return -1;
}
}
return 0;
}
static int calib_t24p_master(uint32_t *value)
{
int rv;
rv = eeprom_phtrans(WRPC_FMC_I2C, FMC_EEPROM_ADR, value, 0);
if(rv < 0)
pp_printf("Something went wrong while reading from EEPROM: %d\n", rv);
else
pp_printf("t24p read from EEPROM: %d ps\n", *value);
return rv;
}
int calib_t24p(int mode, uint32_t *value)
{
int ret;
if (mode == WRC_MODE_SLAVE)
ret = calib_t24p_slave(value);
else
ret = calib_t24p_master(value);
//update phtrans value in socket struct
ptpd_netif_set_phase_transition(*value);
return ret;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/sdb-eeprom.c 0000664 0000000 0000000 00000026265 12412174425 0027446 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2012, 2013 CERN (www.cern.ch)
* Author: Grzegorz Daniluk
* Author: Alessandro Rubini
*
* Released according to the GNU GPL, version 2 or any later version.
*/
//#include
#include
#include
#include
//#include "types.h"
//#include "i2c.h"
//#include "eeprom.h"
//#include "board.h"
//#include "syscon.h"
#include
#define SDBFS_BIG_ENDIAN
#include
/*
* This source file is a drop-in replacement of the legacy one: it manages
* both i2c and w1 devices even if the interface is the old i2c-based one
*/
#define SDB_VENDOR 0x46696c6544617461LL /* "FileData" */
#define SDB_DEV_INIT 0x77722d69 /* wr-i (nit) */
#define SDB_DEV_MAC 0x6d61632d /* mac- (address) */
#define SDB_DEV_SFP 0x7366702d /* sfp- (database) */
#define SDB_DEV_CALIB 0x63616c69 /* cali (bration) */
/* The methods for W1 access */
static int sdb_w1_read(struct sdbfs *fs, int offset, void *buf, int count)
{
return w1_read_eeprom_bus(fs->drvdata, offset, buf, count);
}
static int sdb_w1_write(struct sdbfs *fs, int offset, void *buf, int count)
{
return w1_write_eeprom_bus(fs->drvdata, offset, buf, count);
}
/* The methods for I2C access -- FIXME */
/*
* A trivial dumper, just to show what's up in there
*/
static void eeprom_sdb_list(struct sdbfs *fs)
{
struct sdb_device *d;
int new = 1;
while ( (d = sdbfs_scan(fs, new)) != NULL) {
d->sdb_component.product.record_type = '\0';
pp_printf("file 0x%08x @ %4i, name %s\n",
(int)(d->sdb_component.product.device_id),
(int)(d->sdb_component.addr_first),
(char *)(d->sdb_component.product.name));
new = 0;
}
}
/* The sdb filesystem itself */
static struct sdbfs wrc_sdb = {
.name = "wrpc-storage",
.blocksize = 1, /* Not currently used */
/* .read and .write according to device type */
};
uint8_t has_eeprom = 0; /* modified at init time */
/*
* Init: returns 0 for success; it changes has_eeprom above
*
* This is called by wrc_main, after initializing both w1 and i2c
*/
uint8_t eeprom_present(uint8_t i2cif, uint8_t i2c_addr)
{
uint32_t magic = 0;
static unsigned entry_points[] = {0, 64, 128, 256, 512, 1024};
int i, ret;
/* Look for w1 first: if there is no eeprom if fails fast */
for (i = 0; i < ARRAY_SIZE(entry_points); i++) {
ret = w1_read_eeprom_bus(&wrpc_w1_bus, entry_points[i],
(void *)&magic, sizeof(magic));
if (ret != sizeof(magic))
break;
if (magic == SDB_MAGIC)
break;
}
if (magic == SDB_MAGIC) {
pp_printf("sdbfs: found at %i in W1\n", entry_points[i]);
wrc_sdb.drvdata = &wrpc_w1_bus;
wrc_sdb.read = sdb_w1_read;
wrc_sdb.write = sdb_w1_write;
has_eeprom = 1;
eeprom_sdb_list(&wrc_sdb);
return 0;
}
/*
* If w1 failed, look for i2c: start from high offsets by now.
* FIXME: this is a hack, until we have subdirectory support
*/
for (i = ARRAY_SIZE(entry_points) - i; i >= 0; i--) {
/* FIXME: i2c */
}
return 0;
}
/*
* Reading/writing the MAC address used to be part of dev/onewire.c,
* but is not onewire-specific. What is w1-specific is the default
* setting if no sdbfs is there, but CONFIG_SDB_EEPROM depends on
* CONFIG_W1 anyways.
*/
int32_t get_persistent_mac(uint8_t portnum, uint8_t * mac)
{
int ret;
int i, class;
uint64_t rom;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_MAC) < 0)
return -1;
ret = sdbfs_fread(&wrc_sdb, 0, mac, 6);
sdbfs_close(&wrc_sdb);
if(ret < 0)
pp_printf("%s: SDB error\n", __func__);
if (mac[0] == 0xff ||
(mac[0] | mac[1] | mac[2] | mac[3] | mac[4] | mac[5]) == 0) {
pp_printf("%s: SDB file is empty\n", __func__);
ret = -1;
}
if (ret < 0) {
pp_printf("%s: Using W1 serial number\n", __func__);
for (i = 0; i < W1_MAX_DEVICES; i++) {
class = w1_class(wrpc_w1_bus.devs + i);
if (class != 0x28 && class != 0x42)
continue;
rom = wrpc_w1_bus.devs[i].rom;
mac[3] = rom >> 24;
mac[4] = rom >> 16;
mac[5] = rom >> 8;
ret = 0;
}
}
if (ret < 0) {
pp_printf("%s: failure\n", __func__);
return -1;
}
return 0;
}
int8_t set_persistent_mac(uint8_t portnum, uint8_t * mac)
{
int ret;
ret = sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_MAC);
if (ret >= 0)
ret = sdbfs_fwrite(&wrc_sdb, 0, mac, 6);
sdbfs_close(&wrc_sdb);
if (ret < 0) {
pp_printf("%s: SDB error, can't save\n", __func__);
return -1;
}
return 0;
}
/*
* The SFP section is placed somewhere inside EEPROM (W1 or I2C), using sdbfs.
*
* Initially we have a count of SFP records
*
* For each sfp we have
*
* - part number (16 bytes)
* - alpha (4 bytes)
* - deltaTx (4 bytes)
* - delta Rx (4 bytes)
* - checksum (1 byte) (low order 8 bits of the sum of all bytes)
*
* the total is 29 bytes for each sfp (ugly, but we are byte-oriented anyways
*/
/* Just a dummy function that writes '0' to sfp count field of the SFP DB */
int32_t eeprom_sfpdb_erase(uint8_t i2cif, uint8_t i2c_addr)
{
uint8_t sfpcount = 0;
int ret;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_SFP) < 0)
return -1;
ret = sdbfs_fwrite(&wrc_sdb, 0, (char *)&sfpcount, 1);
sdbfs_close(&wrc_sdb);
return ret == 1 ? 0 : -1;
}
int32_t eeprom_get_sfp(uint8_t i2cif, uint8_t i2c_addr, struct s_sfpinfo * sfp,
uint8_t add, uint8_t pos)
{
static uint8_t sfpcount = 0;
int ret = -1;
uint8_t i, chksum = 0;
uint8_t *ptr;
if (pos >= SFPS_MAX)
return EE_RET_POSERR; //position outside the range
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_SFP) < 0)
return -1;
//read how many SFPs are in the database, but only in the first call
if (!pos
&& sdbfs_fread(&wrc_sdb, 0, &sfpcount, sizeof(sfpcount))
!= sizeof(sfpcount))
goto out;
if (add && sfpcount == SFPS_MAX) //no more space to add new SFPs
return EE_RET_DBFULL;
if (!pos && !add && sfpcount == 0) // no SFPs in the database
return 0;
if (!add) {
if (sdbfs_fread(&wrc_sdb, sizeof(sfpcount) + pos * sizeof(*sfp),
sfp, sizeof(*sfp))
!= sizeof(*sfp))
goto out;
ptr = (uint8_t *)sfp;
/* read sizeof() - 1 because we don't include checksum */
for (i = 0; i < sizeof(struct s_sfpinfo) - 1; ++i)
chksum = chksum + *(ptr++);
if (chksum != sfp->chksum) {
pp_printf("sfp: corrupted checksum\n");
goto out;
}
} else {
/*count checksum */
ptr = (uint8_t *)sfp;
/* use sizeof() - 1 because we don't include checksum */
for (i = 0; i < sizeof(struct s_sfpinfo) - 1; ++i)
chksum = chksum + *(ptr++);
sfp->chksum = chksum;
/* add SFP at the end of DB */
if (sdbfs_fwrite(&wrc_sdb, sizeof(sfpcount)
+ sfpcount * sizeof(*sfp), sfp, sizeof(*sfp))
!= sizeof(*sfp))
goto out;
sfpcount++;
if (sdbfs_fwrite(&wrc_sdb, 0, &sfpcount, sizeof(sfpcount))
!= sizeof(sfpcount))
goto out;
}
ret = sfpcount;
out:
sdbfs_close(&wrc_sdb);
return ret;
return 0;
}
int8_t eeprom_match_sfp(uint8_t i2cif, uint8_t i2c_addr, struct s_sfpinfo * sfp)
{
uint8_t sfpcount = 1;
int8_t i, temp;
struct s_sfpinfo dbsfp;
for (i = 0; i < sfpcount; ++i) {
temp = eeprom_get_sfp(i2cif, i2c_addr,
&dbsfp, 0, i);
if (!i) {
// first round: valid sfpcount is returned
sfpcount = temp;
if (sfpcount == 0 || sfpcount == 0xFF)
return 0;
else if (sfpcount < 0)
return sfpcount;
}
if (!strncmp(dbsfp.pn, sfp->pn, 16)) {
sfp->dTx = dbsfp.dTx;
sfp->dRx = dbsfp.dRx;
sfp->alpha = dbsfp.alpha;
return 1;
}
}
return 0;
}
/*
* Phase transition ("calibration" file)
*/
#define VALIDITY_BIT 0x80000000
int8_t eeprom_phtrans(uint8_t i2cif, uint8_t i2c_addr, uint32_t * valp,
uint8_t write)
{
int ret = -1;
uint32_t value;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_CALIB) < 0)
return -1;
if (write) {
value = *valp | VALIDITY_BIT;
if (sdbfs_fwrite(&wrc_sdb, 0, &value, sizeof(value))
!= sizeof(value))
goto out;
ret = 1;
} else {
if (sdbfs_fread(&wrc_sdb, 0, &value, sizeof(value))
!= sizeof(value))
goto out;
*valp = value & ~VALIDITY_BIT;
ret = (value & VALIDITY_BIT) != 0;
}
out:
sdbfs_close(&wrc_sdb);
return ret;
}
/*
* The init script area consist of 2-byte size field and a set of
* shell commands separated with '\n' character.
*
* -------------------
* | bytes used (2B) |
* ------------------------------------------------
* | shell commands separated with '\n'..... |
* | |
* | |
* ------------------------------------------------
*/
int8_t eeprom_init_erase(uint8_t i2cif, uint8_t i2c_addr)
{
uint16_t used = 0;
int ret;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_INIT) < 0)
return -1;
ret = sdbfs_fwrite(&wrc_sdb, 0, &used, sizeof(used));
sdbfs_close(&wrc_sdb);
return ret == sizeof(used) ? 0 : -1;
}
/*
* Appends a new shell command at the end of boot script
*/
int8_t eeprom_init_add(uint8_t i2cif, uint8_t i2c_addr, const char *args[])
{
int len, i = 1; /* args[0] is "add" */
uint8_t separator = ' ';
uint16_t used, readback;
int ret = -1;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_INIT) < 0)
return -1;
if (sdbfs_fread(&wrc_sdb, 0, &used, sizeof(used)) != sizeof(used))
goto out;
if (used > 256 /* 0xffff or wrong */)
used = 0;
while (args[i] != NULL) {
len = strlen(args[i]);
if (sdbfs_fwrite(&wrc_sdb, sizeof(used) + used,
(void *)args[i], len) != len)
goto out;
used += len;
if (sdbfs_fwrite(&wrc_sdb, sizeof(used) + used,
&separator, sizeof(separator))
!= sizeof(separator))
goto out;
++used;
++i;
}
/* At end of command, replace last separator with '\n' */
separator = '\n';
if (sdbfs_fwrite(&wrc_sdb, sizeof(used) + used - 1,
&separator, sizeof(separator)) != sizeof(separator))
goto out;
/* and finally update the size of the script */
if (sdbfs_fwrite(&wrc_sdb, 0, &used, sizeof(used)) != sizeof(used))
goto out;
if (sdbfs_fread(&wrc_sdb, 0, &readback, sizeof(readback))
!= sizeof(readback))
goto out;
ret = 0;
out:
sdbfs_close(&wrc_sdb);
return ret;
}
int32_t eeprom_init_show(uint8_t i2cif, uint8_t i2c_addr)
{
int i, ret = -1;
uint16_t used;
uint8_t byte;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_INIT) < 0)
return -1;
i = sdbfs_fread(&wrc_sdb, 0, &used, sizeof(used));
if (i != sizeof(used))
goto out;
/* sdbfs configuration sets it to 256: if insanely large refuse it */
if (used == 0 || used > 256 /* 0xffff or wrong */) {
pp_printf("Empty init script...\n");
goto out_ok;
}
/* Just read and print to the screen char after char */
for (i = 0; i < used; ++i) {
if (sdbfs_fread(&wrc_sdb, -1 /* sequentially */, &byte, 1) != 1)
goto out;
pp_printf("%c", byte);
}
out_ok:
ret = 0;
out:
sdbfs_close(&wrc_sdb);
return ret;
}
int8_t eeprom_init_readcmd(uint8_t i2cif, uint8_t i2c_addr, uint8_t *buf,
uint8_t bufsize, uint8_t next)
{
int i = 0, ret = -1;
uint16_t used;
static uint16_t ptr;
if (sdbfs_open_id(&wrc_sdb, SDB_VENDOR, SDB_DEV_INIT) < 0)
return -1;
if (sdbfs_fread(&wrc_sdb, 0, &used, sizeof(used)) != sizeof(used))
goto out;
if (next == 0)
ptr = sizeof(used);
if (ptr - sizeof(used) >= used)
return 0;
do {
if (ptr - sizeof(used) > bufsize)
goto out;
if (sdbfs_fread(&wrc_sdb, (ptr++),
&buf[i], sizeof(char)) != sizeof(char))
goto out;
} while (buf[i++] != '\n');
ret = i;
out:
sdbfs_close(&wrc_sdb);
return ret;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/sdb.c 0000664 0000000 0000000 00000011564 12412174425 0026155 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Author: Jose Jimenez , Copyright (C) 2014.
* Released according to the GNU GPL version 3 (GPLv3) or later.
*
* This is an evolution of sdb.c:
* * Copyright (C) 2012 GSI (www.gsi.de)
* * Author: Wesley W. Terpstra
*
*/
#include
#include
#include "hw/memlayout.h"
unsigned char *BASE_UART;
unsigned char *BASE_ONEWIRE;
unsigned char *BASE_IRQ_CTRL;
unsigned char *BASE_TIMER;
unsigned char *BASE_FINE_DELAY;
unsigned char *BASE_TICS;
//unsigned char *BASE_WRPC_RAM;
#define SDB_INTERCONNET 0x00
#define SDB_DEVICE 0x01
#define SDB_BRIDGE 0x02
#define SDB_EMPTY 0xFF
typedef struct pair64 {
uint32_t high;
uint32_t low;
} pair64_t;
struct sdb_empty {
int8_t reserved[63];
uint8_t record_type;
};
struct sdb_product {
pair64_t vendor_id;
uint32_t device_id;
uint32_t version;
uint32_t date;
int8_t name[19];
uint8_t record_type;
};
struct sdb_component {
pair64_t addr_first;
pair64_t addr_last;
struct sdb_product product;
};
struct sdb_device {
uint16_t abi_class;
uint8_t abi_ver_major;
uint8_t abi_ver_minor;
uint32_t bus_specific;
struct sdb_component sdb_component;
};
struct sdb_bridge {
pair64_t sdb_child;
struct sdb_component sdb_component;
};
struct sdb_interconnect {
uint32_t sdb_magic;
uint16_t sdb_records;
uint8_t sdb_version;
uint8_t sdb_bus_type;
struct sdb_component sdb_component;
};
typedef union sdb_record {
struct sdb_empty empty;
struct sdb_device device;
struct sdb_bridge bridge;
struct sdb_interconnect interconnect;
} sdb_record_t;
static unsigned char *find_device_deep(unsigned int base, unsigned int sdb,
unsigned int devid)
{
sdb_record_t *record = (sdb_record_t *) sdb;
int records = record->interconnect.sdb_records;
int i;
for (i = 0; i < records; ++i, ++record) {
if (record->empty.record_type == SDB_BRIDGE) {
unsigned char *out =
find_device_deep(base +
record->bridge.sdb_component.
addr_first.low,
base +
record->bridge.sdb_child.low,
devid);
if (out)
return out;
}
if (record->empty.record_type == SDB_DEVICE &&
record->device.sdb_component.product.device_id == devid) {
break;
}
}
if (i == records)
return 0;
return (unsigned char *)(base +
record->device.sdb_component.addr_first.low);
}
static int get_devices_deep(unsigned int base, unsigned int sdb,
struct sdb_component * devs, unsigned int * n_devs,
const unsigned int MAX_DEVS)
{
sdb_record_t *record = (sdb_record_t *) sdb;
int records = record->interconnect.sdb_records;
int i;
int rcode;
for (i = 0; i < records; ++i, ++record) {
if (record->empty.record_type == SDB_BRIDGE)
rcode = get_devices_deep(
base + record->bridge.sdb_component.addr_first.low,
base + record->bridge.sdb_child.low,devs,n_devs,MAX_DEVS);;
if (rcode < 0)
return -1;
if (record->empty.record_type != SDB_DEVICE)
continue;
if (*n_devs < MAX_DEVS) {
devs[*n_devs] = record->device.sdb_component;
devs[*n_devs].product.name[19] = 0;
devs[*n_devs].addr_first.low =
base + record->device.sdb_component.addr_first.low;
devs[*n_devs].addr_last.low =
base + record->device.sdb_component.addr_last.low;
(*n_devs)++;
}
else
return (*n_devs - MAX_DEVS);
}
return 0;
}
static void print_devices_deep(unsigned int base, unsigned int sdb)
{
sdb_record_t *record = (sdb_record_t *) sdb;
int records = record->interconnect.sdb_records;
int i;
char buf[20];
for (i = 0; i < records; ++i, ++record) {
if (record->empty.record_type == SDB_BRIDGE)
print_devices_deep(base +
record->bridge.sdb_component.
addr_first.low,
base +
record->bridge.sdb_child.low);
if (record->empty.record_type != SDB_DEVICE)
continue;
memcpy(buf, record->device.sdb_component.product.name, 19);
buf[19] = 0;
mprintf("%8x:%8x 0x%8x %s\n",
record->device.sdb_component.product.vendor_id.low,
record->device.sdb_component.product.device_id,
base + record->device.sdb_component.addr_first.low,
buf);
}
}
unsigned char *find_device(unsigned int devid)
{
return find_device_deep(0, SDB_ADDRESS, devid);
}
void sdb_print_devices(void)
{
mprintf("SDB memory map:\n");
print_devices_deep(0, SDB_ADDRESS);
mprintf("---\n");
}
int sdb_get_devices(struct sdb_component * devs,
unsigned int * n_devs, const int MAX_DEVS)
{
return get_devices_deep(0,SDB_ADDRESS,devs,n_devs,MAX_DEVS);
}
void sdb_find_devices(void)
{
BASE_UART = find_device(0x0deafbee);
BASE_ONEWIRE = find_device(0x779c5443);
BASE_FINE_DELAY = find_device(0xf19ede1a);
BASE_TICS = find_device(0xfade1eaf);
BASE_TIMER = find_device(0xdeadface);
BASE_IRQ_CTRL = find_device(0xe1fb1ade);
//BASE_WRPC_RAM = find_device(0x66cfeb52);
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/sfp.c 0000664 0000000 0000000 00000002204 12412174425 0026164 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2012 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
*
* Released according to the GNU GPL, version 2 or any later version.
*/
/* SFP Detection / managenent functions */
#include
#include
#include "syscon.h"
#include "i2c.h"
#include "sfp.h"
int sfp_present()
{
return !gpio_in(GPIO_SFP_DET);
}
int sfp_read_part_id(char *part_id)
{
int i;
uint8_t data, sum;
mi2c_init(WRPC_SFP_I2C);
mi2c_start(WRPC_SFP_I2C);
mi2c_put_byte(WRPC_SFP_I2C, 0xA0);
mi2c_put_byte(WRPC_SFP_I2C, 0x00);
mi2c_repeat_start(WRPC_SFP_I2C);
mi2c_put_byte(WRPC_SFP_I2C, 0xA1);
mi2c_get_byte(WRPC_SFP_I2C, &data, 1);
mi2c_stop(WRPC_SFP_I2C);
sum = data;
mi2c_start(WRPC_SFP_I2C);
mi2c_put_byte(WRPC_SFP_I2C, 0xA1);
for (i = 1; i < 63; ++i) {
mi2c_get_byte(WRPC_SFP_I2C, &data, 0);
sum = (uint8_t) ((uint16_t) sum + data) & 0xff;
if (i >= 40 && i <= 55) //Part Number
part_id[i - 40] = data;
}
mi2c_get_byte(WRPC_SFP_I2C, &data, 1); //final word, checksum
mi2c_stop(WRPC_SFP_I2C);
if (sum == data)
return 0;
return -1;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/syscon.c 0000664 0000000 0000000 00000001553 12412174425 0026720 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011 CERN (www.cern.ch)
* Author: Grzegorz Daniluk
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include "syscon.h"
struct s_i2c_if i2c_if[2] = {
{SYSC_GPSR_FMC_SCL, SYSC_GPSR_FMC_SDA},
{SYSC_GPSR_SFP_SCL, SYSC_GPSR_SFP_SDA}
};
volatile struct SYSCON_WB *syscon;
/****************************
* TIMER
***************************/
void timer_init(uint32_t enable)
{
syscon = (volatile struct SYSCON_WB *)BASE_SYSCON;
if (enable)
syscon->TCR |= SYSC_TCR_ENABLE;
else
syscon->TCR &= ~SYSC_TCR_ENABLE;
}
uint32_t timer_get_tics(void)
{
return syscon->TVR;
}
void timer_delay(uint32_t tics)
{
uint32_t t_end;
// timer_init(1);
t_end = timer_get_tics() + tics;
while (time_before(timer_get_tics(), t_end))
;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/timer-wrs.c 0000664 0000000 0000000 00000000402 12412174425 0027323 0 ustar 00root root 0000000 0000000 #include "board.h"
#include "syscon.h"
uint32_t timer_get_tics(void)
{
return *(volatile uint32_t *) (BASE_TIMER);
}
void timer_delay(uint32_t tics)
{
uint32_t t_end = timer_get_tics() + tics;
while (time_before(timer_get_tics(), t_end))
;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/uart-sw.c 0000664 0000000 0000000 00000003154 12412174425 0027003 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2013 CERN (www.cern.ch)
* Author: Alessandro Rubini
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include
static struct wrc_uart_sw __attribute__((aligned(16))) uart_sw_dev = {
.magic = UART_SW_MAGIC,
.wsize = CONFIG_UART_SW_WSIZE,
.rsize = CONFIG_UART_SW_RSIZE,
};
static uint16_t nreturned;
void uart_init_sw(void)
{
/* zero fields, as we may be reloaded */
uart_sw_dev.nwritten = uart_sw_dev.nread = 0;
}
void __attribute__((weak)) uart_init_hw(void)
{}
void uart_sw_write_byte(int b)
{
int index;
if (b == '\n')
uart_sw_write_byte('\r');
index = uart_sw_dev.nwritten % CONFIG_UART_SW_WSIZE;
uart_sw_dev.wbuffer[index] = b;
uart_sw_dev.nwritten++;
/* fake a real uart, so user-space can poll not-too-fast */
usleep(1000 * 1000 / 11520);
}
int uart_sw_write_string(const char *s)
{
const char *t = s;
while (*s)
uart_sw_write_byte(*(s++));
return s - t;
}
int uart_sw_read_byte()
{
int index;
if (nreturned == uart_sw_dev.nread) /* nread == written by host */
return -1;
index = (nreturned++) % CONFIG_UART_SW_RSIZE;
return uart_sw_dev.rbuffer[index];
}
/* alias the "hw" names to these, so this applies if !CONFIG_UART */
int puts(const char *s)
__attribute__((alias("uart_sw_write_string"), weak));
void uart_write_byte(int b)
__attribute__((alias("uart_sw_write_byte"), weak));
int uart_write_string(const char *s)
__attribute__((alias("uart_sw_write_string"), weak));
int uart_read_byte()
__attribute__((alias("uart_sw_read_byte"), weak));
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/uart.c 0000664 0000000 0000000 00000002402 12412174425 0026347 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2011 CERN (www.cern.ch)
* Author: Tomasz Wlostowski
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include "board.h"
#include "uart.h"
#include
#define CALC_BAUD(baudrate) \
( ((( (unsigned long long)baudrate * 8ULL) << (16 - 7)) + \
(CPU_CLOCK >> 8)) / (CPU_CLOCK >> 7) )
volatile struct UART_WB *uart;
void uart_init_hw()
{
uart = (volatile struct UART_WB *)BASE_UART;
uart->BCR = CALC_BAUD(UART_BAUDRATE);
}
void __attribute__((weak)) uart_init_sw(void)
{}
void uart_write_byte(int b)
{
if (b == '\n')
uart_write_byte('\r');
while (uart->SR & UART_SR_TX_BUSY)
;
uart->TDR = b;
}
int uart_write_string(const char *s)
{
const char *t = s;
while (*s)
uart_write_byte(*(s++));
return s - t;
}
static int uart_poll()
{
return uart->SR & UART_SR_RX_RDY;
}
int uart_read_byte()
{
if (!uart_poll())
return -1;
return uart->RDR & 0xff;
}
int puts(const char *s)
__attribute__((alias("uart_write_string")));
/* The next alias is for ppsi log messages, that go to sw_uart if built */
int uart_sw_write_string(const char *s)
__attribute__((alias("uart_write_string"), weak));
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/w1-eeprom.c 0000664 0000000 0000000 00000006045 12412174425 0027217 0 ustar 00root root 0000000 0000000 /*
* Eeprom support (family 0x43)
* Cesar Prados, Alessandro Rubini, 2013. GNU GPL2 or later
*/
#include
#include
#include
#include
#define LSB_ADDR(X) ((X) & 0xFF)
#define MSB_ADDR(X) (((X) & 0xFF00)>>8)
static int w1_write_page(struct w1_dev *dev, int offset, const uint8_t *buffer,
int blen)
{
int i, j, es;
/* First, write scratchpad */
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDR_W_SPAD);
w1_write_byte(dev->bus, LSB_ADDR(offset));
w1_write_byte(dev->bus, MSB_ADDR(offset));
for(i = 0; i < blen; i++)
w1_write_byte(dev->bus, buffer[i]);
/* Then, read it back, and remember the return E/S */
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDR_R_SPAD);
if (w1_read_byte(dev->bus) != LSB_ADDR(offset))
return -1;
if (w1_read_byte(dev->bus) != MSB_ADDR(offset))
return -2;
es = w1_read_byte(dev->bus);
for(i = 0; i < blen; i++) {
j = w1_read_byte(dev->bus);
if (j != buffer[i])
return -3;
}
/* Finally, "copy scratchpad" to actually write */
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDR_C_SPAD);
w1_write_byte(dev->bus, LSB_ADDR(offset));
w1_write_byte(dev->bus, MSB_ADDR(offset));
w1_write_byte(dev->bus, es);
usleep(10000); /* 10ms, in theory */
/* Don't read back, as nothing useful is there (I get 0xf9, why?) */
return blen;
}
int w1_write_eeprom(struct w1_dev *dev, int offset, const uint8_t *buffer,
int blen)
{
int i, page, endpage;
int ret = 0;
/* Split the write into several page-local writes */
page = offset / 32;
endpage = (offset + blen - 1) / 32;
/* Traling part of first page */
if (offset % 32) {
if (endpage != page)
i = 32 - (offset % 32);
else
i = blen;
ret += w1_write_page(dev, offset, buffer, i);
if (ret < 0)
return ret;
buffer += i;
offset += i;
blen -= i;
}
/* Whole pages and leading part of last page */
while (blen > 0 ) {
i = blen;
if (blen > 32)
i = 32;
i = w1_write_page(dev, offset, buffer, i);
if (i < 0)
return i;
ret += i;
buffer += 32;
offset += 32;
blen -= 32;
}
return ret;
}
int w1_read_eeprom(struct w1_dev *dev, int offset, uint8_t *buffer, int blen)
{
int i;
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDR_R_MEMORY);
w1_write_byte(dev->bus, LSB_ADDR(offset));
w1_write_byte(dev->bus, MSB_ADDR(offset));
/* There is no page-size limit in reading, just go on at will */
for(i = 0; i < blen; i++)
buffer[i] = w1_read_byte(dev->bus);
return blen;
}
int w1_read_eeprom_bus(struct w1_bus *bus,
int offset, uint8_t *buffer, int blen)
{
int i, class;
for (i = 0; i < W1_MAX_DEVICES; i++) {
class = w1_class(bus->devs + i);
if (class == 0x43)
return w1_read_eeprom(bus->devs + i, offset,
buffer, blen);
}
/* not found */
return -1;
}
int w1_write_eeprom_bus(struct w1_bus *bus,
int offset, const uint8_t *buffer, int blen)
{
int i, class;
for (i = 0; i < W1_MAX_DEVICES; i++) {
class = w1_class(bus->devs + i);
if (class == 0x43)
return w1_write_eeprom(bus->devs + i, offset,
buffer, blen);
}
/* not found */
return -1;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/w1-hw.c 0000664 0000000 0000000 00000003571 12412174425 0026347 0 ustar 00root root 0000000 0000000 /*
* This work is part of the White Rabbit project
*
* Copyright (C) 2013 CERN (www.cern.ch)
* Author: Alessandro Rubini
*
* Released according to the GNU GPL, version 2 or any later version.
*/
#include
#include
#include
#include
static inline uint32_t __wait_cycle(void *base)
{
uint32_t reg;
while ((reg = IORD_SOCKIT_OWM_CTL(base)) & SOCKIT_OWM_CTL_CYC_MSK)
;
return reg;
}
static int w1_reset(struct w1_bus *bus)
{
int portnum = bus->detail;
uint32_t reg;
IOWR_SOCKIT_OWM_CTL(BASE_ONEWIRE, (portnum << SOCKIT_OWM_CTL_SEL_OFST)
| (SOCKIT_OWM_CTL_CYC_MSK)
| (SOCKIT_OWM_CTL_RST_MSK));
reg = __wait_cycle(BASE_ONEWIRE);
/* return presence-detect pulse (1 if true) */
return (reg & SOCKIT_OWM_CTL_DAT_MSK) ? 0 : 1;
}
static int w1_read_bit(struct w1_bus *bus)
{
int portnum = bus->detail;
uint32_t reg;
IOWR_SOCKIT_OWM_CTL(BASE_ONEWIRE, (portnum << SOCKIT_OWM_CTL_SEL_OFST)
| (SOCKIT_OWM_CTL_CYC_MSK)
| (SOCKIT_OWM_CTL_DAT_MSK));
reg = __wait_cycle(BASE_ONEWIRE);
return (reg & SOCKIT_OWM_CTL_DAT_MSK) ? 1 : 0;
}
static void w1_write_bit(struct w1_bus *bus, int bit)
{
int portnum = bus->detail;
IOWR_SOCKIT_OWM_CTL(BASE_ONEWIRE, (portnum << SOCKIT_OWM_CTL_SEL_OFST)
| (SOCKIT_OWM_CTL_CYC_MSK)
| (bit ? SOCKIT_OWM_CTL_DAT_MSK : 0));
__wait_cycle(BASE_ONEWIRE);
}
struct w1_ops wrpc_w1_ops = {
.reset = w1_reset,
.read_bit = w1_read_bit,
.write_bit = w1_write_bit,
};
struct w1_bus wrpc_w1_bus;
/* Init from sockitowm code */
#define CLK_DIV_NOR (CPU_CLOCK / 200000 - 1) /* normal mode */
#define CLK_DIV_OVD (CPU_CLOCK / 1000000 - 1) /* overdrive mode (not used) */
void wrpc_w1_init(void)
{
IOWR_SOCKIT_OWM_CDR(BASE_ONEWIRE,
((CLK_DIV_NOR & SOCKIT_OWM_CDR_N_MSK) |
((CLK_DIV_OVD << SOCKIT_OWM_CDR_O_OFST) &
SOCKIT_OWM_CDR_O_MSK)));
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/w1-shell.c 0000664 0000000 0000000 00000003717 12412174425 0027042 0 ustar 00root root 0000000 0000000 /*
* Onewire generic interface
* Alessandro Rubini, 2013 GNU GPL2 or later
*/
#include
#include
#include
#define BLEN 32
/* A shell command, for testing write: "w1w [ ...]" */
static int cmd_w1_w(const char *args[])
{
int offset, i, blen;
unsigned char buf[BLEN];
if (!args[0] || !args[1])
return -1;
offset = atoi(args[0]);
for (i = 1, blen = 0; args[i] && blen < BLEN; i++, blen++) {
buf[blen] = atoi(args[i]);
pp_printf("offset %4i (0x%03x): %3i (0x%02x)\n",
offset + blen, offset + blen, buf[blen], buf[blen]);
}
i = w1_write_eeprom_bus(&wrpc_w1_bus, offset, buf, blen);
pp_printf("write(0x%x, %i): result = %i\n", offset, blen, i);
return i == blen ? 0 : -1;
}
DEFINE_WRC_COMMAND(w1w) = {
.name = "w1w",
.exec = cmd_w1_w,
};
/* A shell command, for testing read: "w1r */
static int cmd_w1_r(const char *args[])
{
int offset, i, blen;
unsigned char buf[BLEN];
if (!args[0] || !args[1])
return -1;
offset = atoi(args[0]);
blen = atoi(args[1]);
if (blen > BLEN)
blen = BLEN;
i = w1_read_eeprom_bus(&wrpc_w1_bus, offset, buf, blen);
pp_printf("read(0x%x, %i): result = %i\n", offset, blen, i);
if (i <= 0 || i > blen) return -1;
for (blen = 0; blen < i; blen++) {
pp_printf("offset %4i (0x%03x): %3i (0x%02x)\n",
offset + blen, offset + blen, buf[blen], buf[blen]);
}
return i == blen ? 0 : -1;
}
DEFINE_WRC_COMMAND(w1r) = {
.name = "w1r",
.exec = cmd_w1_r,
};
/* A shell command, for checking */
static int cmd_w1(const char *args[])
{
int i;
struct w1_dev *d;
int32_t temp;
w1_scan_bus(&wrpc_w1_bus);
for (i = 0; i < W1_MAX_DEVICES; i++) {
d = wrpc_w1_bus.devs + i;
if (d->rom) {
pp_printf("device %i: %08x%08x\n", i,
(int)(d->rom >> 32), (int)d->rom);
temp = w1_read_temp(d, 0);
pp_printf("temp: %d.%04d\n", temp >> 16,
(int)((temp & 0xffff) * 10 * 1000 >> 16));
}
}
return 0;
}
DEFINE_WRC_COMMAND(w1) = {
.name = "w1",
.exec = cmd_w1,
};
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/w1-temp.c 0000664 0000000 0000000 00000003361 12412174425 0026673 0 ustar 00root root 0000000 0000000 /*
* Temperature input for DS18S20 (family 0x10)
* Alessandro Rubini, 2013 GNU GPL2 or later
*/
#include
#include
int32_t w1_read_temp(struct w1_dev *dev, unsigned long flags)
{
static uint8_t scratchpad[8];
int class = w1_class(dev);
int32_t res;
int16_t cval;
int i;
/* The caller is expected to have checked the class. but still... */
switch(class) {
case 0x10: case 0x28: case 0x42:
break; /* Supported, at least for temperature input */
default:
return 1<<31; /* very negative */
}
/* If so asked, jump over start-conversion and only collect result */
if (flags & W1_FLAG_COLLECT)
goto collect;
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDT_CONVERT);
/* If so asked, don't wait for the conversion to be over */
if (flags & W1_FLAG_NOWAIT)
return 0;
while(wrpc_w1_ops.read_bit(dev->bus) == 0)
;
collect:
w1_match_rom(dev);
w1_write_byte(dev->bus, W1_CMDT_R_SPAD);
for (i = 0; i < sizeof(scratchpad); i++)
scratchpad[i] = w1_read_byte(dev->bus);
res = 0;
cval = scratchpad[1] << 8 | scratchpad[0];
switch(class) {
case 0x10:
/* 18S20: two bytes plus "count remain" value */
res = (int32_t)cval << 15; /* 1 decimal points */
res -= 0x4000; /* - 0.25 degrees */
res |= scratchpad[6] << 12; /* 1/16th of degree each */
break;
case 0x28:
case 0x42:
/* 18B20 and DS28EA00: only the two bytes */
res = (int32_t)cval << 12; /* 4 decimal points */
break;
}
return res;
}
int32_t w1_read_temp_bus(struct w1_bus *bus, unsigned long flags)
{
int i, class;
for (i = 0; i < W1_MAX_DEVICES; i++) {
class = w1_class(bus->devs + i);
switch(class) {
case 0x10: case 0x28: case 0x42:
return w1_read_temp(bus->devs + i, flags);
default:
break;
}
}
/* not found */
return 1 << 31;
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/dev/w1.c 0000664 0000000 0000000 00000006035 12412174425 0025731 0 ustar 00root root 0000000 0000000 /*
* Onewire generic interface
* Alessandro Rubini, 2013 GNU GPL2 or later
*/
#include
#include
#include
static const struct w1_ops *ops = &wrpc_w1_ops; /* local shorter name */
void w1_write_byte(struct w1_bus *bus, int byte)
{
int i;
for (i = 1; i < 0x100; i <<= 1)
ops->write_bit(bus, byte & i ? 1 : 0);
}
int w1_read_byte(struct w1_bus *bus)
{
int i, res = 0;
for (i = 1; i < 0x100; i <<= 1)
res |= ops->read_bit(bus) ? i : 0;
usleep(100); /* inter-byte, for my eyes only */
return res;
}
/* scan_bus requires this di-bit helper */
enum __bits {B_0, B_1, B_BOTH};
/* return what we get, select it if unambiguous or the one passed */
static enum __bits __get_dibit(struct w1_bus *bus, int select)
{
int a, b;
a = ops->read_bit(bus);
b = ops->read_bit(bus);
if (a != b) {
ops->write_bit(bus, a);
return a ? B_1 : B_0;
}
ops->write_bit(bus, select);
return B_BOTH;
}
/*
* This identifies one. Returns 0 if not found, -1 on error. The current mask
* is used to return the conflicts we found: on each conflict, we follow
* what's already in our id->rom, but remember it for later scans.
*/
static int __w1_scan_one(struct w1_bus *bus, uint64_t *rom, uint64_t *cmask)
{
uint64_t mask;
int select;
enum __bits b;
if (ops->reset(bus) != 1)
return -1;
w1_write_byte(bus, 0xf0); /* search rom */
/*
* Send all bits we have (initially, zero).
* On a conflict, follow what we have in rom and possibly mark it.
*/
*cmask = 0;
for (mask = 1; mask; mask <<= 1) {
select = *rom & mask;
b = __get_dibit(bus, select);
switch(b) {
case B_1:
*rom |= mask;
case B_0:
break;
case B_BOTH:
/* if we follow 1, it's resolved, else mark it */
if (!select)
*cmask |= mask;
break;
}
}
return 0;
}
int w1_scan_bus(struct w1_bus *bus)
{
uint64_t mask;
uint64_t cmask; /* current */
struct w1_dev *d;
int i;
memset(bus->devs, 0, sizeof(bus->devs));
if (!ops->reset)
return 0; /* no devices */
for (i = 0, cmask = 0; i < W1_MAX_DEVICES; i++) {
d = bus->devs + i;
d->bus = bus;
if (i) { /* Not first: scan conflicts and resolve last */
d->rom = bus->devs[i-1].rom;
for (mask = (1ULL<<63); mask; mask >>= 1) {
/*
* Warning: lm32 compiter treats as signed!
*
* Even if mask is uint64_t, the shift in the
* for loop above is signed, so fix it.
* I prefer not to change the loop, as the
* code is in use elsewhere and I prefer to
* keep differences to a minimum
*/
if (mask & (1ULL<<62))
mask = (1ULL<<62);
if (cmask & mask)
break;
d->rom &= ~mask;
}
if (!mask) {
/* no conflicts to solve: done */
return i;
}
d->rom |= mask; /* we'll reply 1 next loop */
cmask &= ~mask;
}
if (__w1_scan_one(bus, &d->rom, &cmask)) {
/* error on this one */
return i;
}
}
return i;
}
void w1_match_rom(struct w1_dev *dev)
{
int i;
ops->reset(dev->bus);
w1_write_byte(dev->bus, W1_CMD_MATCH_ROM); /* match rom */
for (i = 0; i < 64; i+=8) {
w1_write_byte(dev->bus, (int)(dev->rom >> i) );
}
}
fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/fmc-delay/ 0000775 0000000 0000000 00000000000 12412174425 0026315 5 ustar 00root root 0000000 0000000 fd_stand_alone_main.c 0000664 0000000 0000000 00000016763 12412174425 0032363 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/fmc-delay /* This work is part of the White Rabbit project
*
* Jose Jimenez , Copyright (C) 2014.
*
* Released according to the GNU GPL version 3 (GPLv3) or later.
*
*/
#include
#include
#include
#include
#include
#include "uart.h"
#include "eeprom.h"
#include "fine-delay.h"
#include "hw/fd_channel_regs.h"
#include "hw/fd_main_regs.h"
#include
#include "errno.h"
#include "shell.h"
#include "irq.h"
#include "linux/jiffies.h"
#include "linux/delay.h"
#include "linux/math64.h"
#include
#include
#include /* usleep */
#define sw_ctrl 0
#define mprintf pp_printf
#define vprintf pp_vprintf
#define sprintf pp_sprintf
#define stop 1000
struct fd_dev fd;
struct fmc_device fmc_loc;
extern unsigned char *BASE_TIMER;
extern uint32_t _endram;
extern uint32_t _fstack;
extern caddr_t heap;
extern uint32_t _HEAP_START;
extern uint32_t _HEAP_END;
int init_iterator=0;
extern int fd_calib_period_s;
int irq_count = 0;
#define ENDRAM_MAGIC 0xbadc0ffe
void _irq_entry()
{
irq_count++;
irq_ctrl_pop();
clear_irq();
}
void kernel_dev(int subsys, const char *fmt, ...)
{
va_list ap;
if (subsys == 0)
mprintf("Error: ");
else if (subsys == 1)
mprintf("Warning: ");
else if (subsys == 2)
mprintf("Info: ");
va_start(ap, fmt);
vprintf(fmt, ap);
va_end(ap);
}
static void check_stack(void)
{
while (_endram != ENDRAM_MAGIC)
{
mprintf("Stack overflow!\n");
init_iterator+=1000*ENOMEM;
}
}
void mprint_64bit (uint64_t value)
{
char valstr[128];
uint64_t low;
uint32_t high;
high=(uint32_t) div64_u64_rem(value, (1000LLU*1000LLU*1000LLU), &low);
if (high != 0)
pp_sprintf(valstr, "%d%08d", high, (unsigned int) (low));
else
pp_sprintf(valstr, "%d", (unsigned int) (low));
mprintf("%s", valstr);
}
/* The reset function (by Tomasz) */
static void fd_do_reset(struct fd_dev *fd, int hw_reset)
{
uint32_t val, adr;
if (hw_reset) {
val= FD_RSTR_LOCK_W(0xdead) | FD_RSTR_RST_CORE_MASK;
adr=FD_REG_RSTR;
fd_writel(fd, val, adr);
udelay(10000);
val= FD_RSTR_LOCK_W(0xdead)|FD_RSTR_RST_CORE_MASK|FD_RSTR_RST_FMC_MASK;
adr=FD_REG_RSTR;
fd_writel(fd, val, adr);
}
val = FD_RSTR_LOCK_W(0xdead) | FD_RSTR_RST_FMC_MASK;
adr = FD_REG_RSTR;
fd_writel(fd, val, adr);
udelay(1000);
val = FD_RSTR_LOCK_W(0xdead) | FD_RSTR_RST_FMC_MASK | FD_RSTR_RST_CORE_MASK;
adr = FD_REG_RSTR;
fd_writel(fd, val, adr);
udelay(1000);
}
int fd_reset_again(struct fd_dev *fd)
{
unsigned long j;
/* Reset the FD core once we have proper reference/TDC clocks */
fd_do_reset(fd, 0 /* not hw */);
j = jiffies + 2 * HZ;
while (time_before(jiffies, j)) {
if (fd_readl(fd, FD_REG_GCR) & FD_GCR_DDR_LOCKED)
break;
msleep(10);
}
if (time_after_eq(jiffies, j))
dev_err(&fd->fmc->dev,
"%s: timeout waiting for GCR lock bit\n", __func__);
fd_do_reset(fd, 0 /* not hw */);
return 0;
}
/* *************************************************** */
int fd_gpio_defaults(struct fd_dev *fd)
{
fd_gpio_dir(fd, FD_GPIO_TRIG_INTERNAL, FD_GPIO_OUT);
fd_gpio_set(fd, FD_GPIO_TRIG_INTERNAL);
fd_gpio_set(fd, FD_GPIO_OUTPUT_MASK);
fd_gpio_dir(fd, FD_GPIO_OUTPUT_MASK, FD_GPIO_OUT);
fd_gpio_dir(fd, FD_GPIO_TERM_EN, FD_GPIO_OUT);
fd_gpio_clr(fd, FD_GPIO_TERM_EN);
return 0;
}
static inline void manage_error (int err_value)
{
if (err_value < 0)
init_iterator += 1000*err_value;
}
int main(void)
{
int ch;
_endram = ENDRAM_MAGIC;
sdb_find_devices();
uart_init_hw();
mprintf("\nWR-Dbg: starting up...\n");
usleep_init();
usleep(750*1000);
shell_init();
mprintf("_endram %08x\n", &_endram);
mprintf("_fstack %08x\n", &_fstack);
mprintf("heap %08x\n", &heap);
mprintf("_HEAP_START %08x\n", &_HEAP_START);
mprintf("_HEAP_END %08x\n", &_HEAP_END);
mprintf(
"\n\n**********************************************************\n"
"* FMC DEALY on-SPEC STAND-ALONE NODE *\n"
"* by *\n"
"* Jose Jimenez *\n"
"* *\n");
mprintf("* *\n"
"* - WARNING - *\n"
"* This is a beta version, please report bugs to: *\n"
"* *\n"
"**********************************************************\n\n");
fd.fd_regs_base = BASE_FINE_DELAY;
fd.fd_owregs_base= fd.fd_regs_base + 0x500;
fd.temp_timer.itmr.timer_addr_base = BASE_TIMER;
fd.temp_timer.itmr.cascade = cascade_disable;
fd.temp_timer.itmr.time_source = diff_time_periodic;
fd.temp_timer.itmr.timer_id_num = 0x0;
fd.temp_timer.itmr.timer_mode = 0x0;
while(init_iterator != stop){
check_stack();
switch(init_iterator){
case 0:
fd_i2c_init(&fd);
fd.fmc = &fmc_loc; /* to prevent a malloc */
fd.fmc->eeprom_len = SPEC_I2C_EEPROM_SIZE;
heap = NULL;
if((fd.fmc->eeprom=malloc((size_t)(fd.fmc->eeprom_len)))==NULL)
{
kernel_dev(0, "Malloc failed.");
init_iterator = stop+1;
}
manage_error(fd_eeprom_read(&fd, 0x50, 0, fd.fmc->eeprom,
(size_t) (fd.fmc->eeprom_len)));
manage_error(fd_handle_eeprom_calibration(&fd));
free(fd.fmc->eeprom);
init_iterator++;
break;
case 1:
fd_do_reset(&fd, 1);
manage_error(fd_spi_init(&fd));
usleep(500*1000);
init_iterator++;
break;
case 2:
manage_error(fd_gpio_init(&fd));
init_iterator++;
break;
case 3:
fd_gpio_defaults(&fd);
manage_error(fd_pll_init(&fd));
init_iterator++;
break;
case 4:
manage_error(fd_onewire_init (&fd));
init_iterator++;
break;
case 5:
fd_reset_again(&fd);
enable_irq();
manage_error(fd_acam_init(&fd));
init_iterator++;
break;
case 6:
manage_error(fd_time_init(&fd));
int tcr = fd_readl(&fd, FD_REG_TCR);
/* let it run... */
fd_writel(&fd, FD_GCR_INPUT_EN, FD_REG_GCR);
/* stay put*/
if(tcr != fd_readl(&fd, FD_REG_TCR))
fd_writel(&fd, tcr, FD_REG_TCR);
init_iterator++;
break;
case 7:
for (ch = 1; ch <= FD_CH_NUMBER; ch++)
fd_gpio_set(&fd, FD_GPIO_OUTPUT_EN(ch));
init_iterator++;
mprintf("\n*-*-*-*- Node initialized -*-*-*-*\n");
break;
case 8:
mprintf("\n*-*-*-*- Demo test -*-*-*-*\n");
shell_exec("pulse -o 4 -1");
shell_exec("pulse -o 3 -p");
mprintf("\n\n");
dev_info(NULL,"Type \"help\" to see command list.\n");
dev_info(NULL,
"Use \"\" to explore commands usage.\n");
mprintf("\n");
init_iterator++;
break;
case 9:
if(irq_count >= fd_calib_period_s)
{
irq_count=0;
mprintf("%i, %i, %i\n",irq_count, (irq_count%fd_calib_period_s), !(irq_count%fd_calib_period_s));
fd.temp_timer.function(fd.temp_timer.data);
}
shell_interactive();
break;
default:
init_iterator = stop;
break;
}
}
mprintf("\n");
kernel_dev(0,"That thing died, sorry... Shit happens!!!\n");
mprintf(" Don't go crying to your mama!! You are a full grown up.\n"
" Instead of that restart the node.\n"
" I'm worried what you just read was *RESET* the node...\n"
" What I wrote was *RESTART* the node (unplug stuff...)\n\n");
mprintf(" This is a beta version, please report bugs to: \n"
" \n"
"\nAttach the following info:\n"
" Step %i code %i\n", init_iterator/1000, init_iterator&1000);
}
fine-delay-cmds/ 0000775 0000000 0000000 00000000000 12412174425 0031177 5 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/fmc-delay cmd_fmc-fdelay-pulse.c 0000664 0000000 0000000 00000022720 12412174425 0035326 0 ustar 00root root 0000000 0000000 fmc-delay-1ns-8cha-sa-cd55d560c798082e44a8968b4e9f922b80a4a22c/debugger_sw/fmc-delay/fine-delay-cmds #include
#include
#include
#include
#include
#include
#include "shell.h"
/*#include
#include
#include
#include
#include "fdelay-lib.h"
#include "tools-common.h"
//void fprintf(NULL, )*/
void help(char *name)
{
/*fprintf(stderr, "%s: Use \"%s [-i ] [-d ] []\n",
name, name);
fprintf(stderr, " options:\n"
" -o