diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af87054 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/kicad/*-backups +/kicad/*-bak +/kicad/gerber/* diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d440521 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "kicad/lib"] + path = kicad/lib + url = git@github.com:necroware/kicad-library.git diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + 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 +. diff --git a/README.md b/README.md new file mode 100755 index 0000000..42cf5ac --- /dev/null +++ b/README.md @@ -0,0 +1,244 @@ +# Necroware's GamePort Adapter + +![GamePort Adapter](./photo.jpg) + +Many people from the retro community still have their beloved joysticks and +gamepads from the early days. These devices often live their lives somewhere in +the dark corners of our basements and we don't dare to throw them away, because +of nostalgic reasons. They remind us so much of our childhoods, where we played +our Wing Commanders, X-Wings, Descents and many other games. These old joysticks +were all made to be connected to the game port, usually on a sound card. But +by the end of 90's and beginning of 2000's game ports vanished from our +computers and were replaced by USB and our old joysticks disappeared into the +past. Today not everybody has a full retro PC and many people are using their +modern computer with DOSBox to play the old games, sometimes with a modern +USB joystick. But wouldn't it be great to play the old games with the same +joystick which we used back then? And this is where this adapter comes into +play. It can be used to connect gameport joysticks to a USB port. + +GamePort Adapter Videos: +* [Part 1: Introduction](https://youtu.be/tSJLgCD8jeM) +* [Part 2: Updates](https://youtu.be/947DewHwbsE) + +## How does it work? + +The adapter is built around Arduino Pro Micro, which uses the same ATmega32U4 +microcontroller as Leonardo. This microcontroller has built-in USB HID +capabilities and can be used to build HID input devices, like joysticks. The +adapter itself is super simple, the main brainwork was invested into the +software. Very much simplified, it reads the joystick states and sends the data, +via USB, to the computer, which thinks that it is communicating with a USB +joystick. + +## What is special about this one? + +There are already plenty of gameport to USB adapters for basic analog joysticks +and, as far as I know, there were some efforts to communicate with Sidewinder +joysticks by Microsoft as well. But there is no universal adapter, which would +work with different types of joysticks. This adapter implements multiple drivers +for various analog and digital joysticks, with an option to add more, in the +future. + +Features overview: +* Support for generic analog joysticks with 2/4 buttons and 2/4 axes +* Four switches to select joystick type +* Autodetection for various digital protocol joysticks +* Auto-Calibration +* Very low input lag + +## What is the difference between analog and digital joystick? + +Many people call button-only joysticks or gamepads digital. This is kind of +right, because a button is either pressed or not. You can't have an analog +values in between. However by digital, in this case, we mean something different. +A gameport contains 15 pins, 8 of which are used for joystick communication. 4 +pins are for buttons and carry digital values in sense of on/off and 4 pins are +for analog axes, which deliver voltage somewhere between 0V and 5V. Joysticks +which were made in the early days used this pinout. They could have a +maximum of 4 buttons and 4 axes and were DOS compatible. Later, in the time of +Windows 95/98 many joysticks were made to be plugged into a gameport as well, +but they were not limited to 4 buttons and 4 axes. They had a lot more exciting +features, like hat switches and throttle controls. But how did this work? Well +the manufacturers implemented their drivers to communicate with the joystick via +gameport using a proprietary communication protocol. For example, by using one +pin of the gameport as clock and another one as data, the possibilities were +almost limitless. Such joysticks are called digital as well, because they used +digital protocols to communicate with the PC. And suddenly, many features were +possible, but the price of these features was the lost compatibility to DOS. You +couldn't just plug such a joystick into the gameport and expect it to work in +old DOS games. The plug was the same, but the signaling was completely different. + +## Which joysticks does this adapter support? + +Currently, the following drivers are implemented. To select the right driver, you +have to use four switches, as shown in the table. The switches may be changed or +extended in the future, so please pay attention to the updates. + +Joystick Model | Buttons | Axes | Hat | SW1-4 | Protocol | Comments +-----------------------------|---------|-------|------|-------|------------|------------------------------------ +Generic Analog | 2 | 2 | 0 | 0000 | Analogue | +Generic Analog | 4 | 2 | 0 | 1000 | Analogue | +Generic Analog | 4 | 3 | 0 | 0100 | Analogue | 3rd Axis is throttle +Generic Analog | 4 | 4 | 0 | 1100 | Analogue | +CH FlightStick | 4 | 4 | 1 | 0010 | Analogue | +CH F16 Combat Stick | 10 | 3 | 1 | 0110 | Analogue | +ThrustMaster | 4 | 3 | 1 | 1010 | Analogue | FCS MARK I/II & PFCS +Sidewinder GamePad | 10 | 2 | 0 | 1110 | Sidewinder | +Sidewinder 3D Pro | 8 | 4 | 1 | 1110 | Sidewinder | +Sidewinder 3D Pro Plus | 9 | 4 | 1 | 1110 | Sidewinder | First version of Precision Pro +Sidewinder Precision Pro | 9 | 4 | 1 | 1110 | Sidewinder | +Sidewinder FFB Pro | 9 | 4 | 1 | 1110 | Sidewinder | FFB not yet implemented +Sidewinder FFB Wheel | 8 | 3 | 0 | 1110 | Sidewinder | FFB not yet implemented +Gravis GamePad Pro | 10 | 2 | 0 | 0001 | GrIP | +Logitech WingMan Extreme | 6 | 3 | 1 | 1001 | ADI | +Logitech CyberMan 2 | 8 | 6 | 0 | 1001 | ADI | +Logitech WingMan Interceptor | 9 | 3 | 3 | 1001 | ADI | 2 hats are mapped as 4 axes +Logitech ThunderPad Digital | 8 | 2 | 0 | 1001 | ADI | Directional buttons mapped as 2 axes +Logitech WingMan Gamepad | 11 | 2 | 0 | 1001 | ADI | Directional buttons mapped as 2 axes +Logitech WingMan Light | 2 | 2 | 0 | 0000 | Analogue | + +*Remarks:* + +- Please pay attention to how the same switches are used for different families +of digital devices. This is possible due to fully digital communication. Using +this method, the adapter implements autodetection as soon as it knows, that it +is connected to a digital joystick. +- Currently, only the drivers for the listed Sidewinder devices are implemented, +since I have no other models at hand. The Precision Pro works natively on USB +as well, but was still implemented, because we can. +- Gravis used their GrIP protocol, which is currently implemented only for the +Gravis GamePad Pro, but without daisy chaining possibility so far. +- The implementation of the ADI protocol used by Logitech should work with all +the devices which support that protocol. However only the listed Logitech devices +were tested so far. + +## Which joysticks were tested? + +Many joysticks in the wild are using the same digital protocol or are backwards +compatible to the analog joysticks as they were used back in the days in DOS. +Following list contains all the devices which were reported by others as working +so far: + +* CH Mach I+ (analog, 2-axes, 2-buttons) +* Gravis Analog Pro (analog) +* Gravis GamePad Pro +* Gravis PC GamePad (analog) +* InterAct UltraRacer PC (analog) +* Logitech CyberMan 2 +* Logitech WingMan Extreme Digital +* Logitech WingMan Interceptor +* Logitech WingMan Light +* Logitech ThunderPad Digital +* Logitech WingMan Gamepad +* Medion Joypad MD9823 (analog, 4-axes, 4-buttons) +* QuickShot QS-123E "Warrior 5" (analog) +* Quickshot QS-146 "Intruder 5" (analog) +* Quickshot QS-151 "Aviator" (analog) +* QuickShot QS-201 "Super Warrior" (analog) +* QuickShot QS-203 "Avenger" (analog) +* Sidewinder 3D Pro +* Sidewinder 3D Pro Plus +* Sidewinder ForceFeedBack Pro +* Sidewinder ForceFeedBack Wheel +* Sidewinder GamePad +* Sidewinder Precision Pro + +Sidewinder 3D Pro can be switched between analog and digital mode and in analog +mode it can emulate the ThrustMaster and CH FlightStick. That's why you see them in +the table above. Unfortunately I don't possess those joysticks in reality, so it may +be that the implementation is not quite correct. + +## What is auto calibration? + +Old analog joysticks have resistors inside, which are specified to be 100 kOhm. +Unfortunately, these resistors are either worn out, bad quality or were wrong from +the beginning. Therefore most of the generic analog joysticks had adjustment +screws to correct the center point of the joystick. Also many games had +calibration options in their settings to readjust the joystick. With USB and new +digital solutions the calibration was not required anymore and was completely +implemented in the joysticks and/or drivers. Many modern games have no option +to re-calibrate the joystick anymore. If we try to play such newer games with +an old analog joystick through this adapter, the joystick center point would be +totally offset. That's why the adapter implements auto calibration internally and +presents already corrected values to the operation system. + +__ATTENTION__: a hard requirement for using the analog joysticks is that during +plugging into the USB port all axes must be in their middle state, because all +the subsequent calibration happens based on the initial state. + +## Technical insights into implementation + +The code is well documented, so if you are interested in the details, feel free +to take a look into the driver implementation. All the analog joysticks were +actually a straight forward task, but the Sidewinder digital protocol was kind +of tough. There are already some implementations of Sidewinder protocol made for +Arduino. However, they are mostly only for the Sidewinder GamePad and not really +universally made. In the end I was heavily inspired by the Linux Sidewinder +driver implementation. The code you can see in this project is a complete rewrite, +I just took the Linux driver implementation as a reference to understand how it +works. Also the Sidewinder patent US#5628686A helped a lot, especially with +switching between digital and analog mode for Sidewinder 3D Pro. + +In opposition to the already mentioned Sidewinder for Arduino implementations, +this one doesn't rely on interrupts. This implementation is from a similar idea +to what the Linux driver does. It polls the port and makes a lot of things +simpler due to synchronous process. The biggest problem was that the Sidwinder +devices send the data incredibly fast, with a clock pulse of only 5us. It was +not possible to use Arduino's digitalRead(...) function for that. It was too +slow with about 2.7us per call on an Arduino Pro Micro of 16MHz. It simply +made it impossible to poll 5us pulses, with such a slow function, not even +considering doing something with the data in between. So out of that need, my +own implementation came about, which is up to 50% faster and needs only about +1.6us per call, on the same hardware. The custom I/O functions made it possible +to read the data with the speed which a Sidewinder joystick requires. The best +part is that the code is written in pure C++. It is very simple to read and to +use. There are no macros, no assembler or any dirty hacks, just a lot of +optimization. + +## Bill of materials (BOM) + +The hardware is super simple. To build an adapter you'll need the PCB from this +project and following parts: + +Part | Qty | [LCSC](https://lcsc.com/) # | [Digikey](https://www.digikey.com/) # | [Mouser Electronics](https://www.mouser.com/) # | Comment +--------|-------|---------|--------------------------|----------------------|------------------------------------------ +CONN1 | 1 | C77835 | 609-5371-ND | 523-L77SDA15SA4CH4F | DB15 female connector +R1..R4 | 4 | C172965 | 13-MFR-25FTE52-100KCT-ND | 603-MFR-25FTE52-100K | 100 kOhm resistors +SW1 | 1 | C15781 | 2449-KG04ET-ND | 642-DS04T | DIP-4 switch +U1 | 1 | C72120 | ED3051-5-ND | 649-DILB24P-223TLF | DIP24 Socket (optional) +U1 | 1 | N/A | 1568-1060-ND | 474-DEV-12640 | Arduino Pro Micro (ATmega32U4 16MHz, 5V), including two 12 pin header connectors, MicroUSB version (see "Known issues") + +## Known issues + +* *Some axes on an analog joystick are offset* + + Auto calibration requires all the axes to be in the center position during + initialization. Please see the paragraph about auto calibration. + +* *Joystick doesn't work* + + Make sure that you are using one of supported joysticks or a joystick which can + work in legacy analog mode + +* *MicroUSB port on the Arduino is not stable enough* + + Use the USB-C version of the Arduino instead. + Or always keep the MicroUSB cable attached to the Arduino MicroUSB version to avoid further wear and apply plug/unplug operations only on the remote side of the cable. + +## How to help the project? + +The best way is to implement more drivers. Since I have only the joysticks +mentioned above, I can't contribute more than what is currently included. + +## Special thanks + +I would like to give some special thanks to *Creopard* from the German +dosreloaded.de community for providing me the mentioned joysticks. Without that +donation this project wouldn't be possible. Especially dealing with Sidewinder +3D Pro was a very exciting task. + +## Links +* [Linux Sidewinder Driver](https://github.com/torvalds/linux/blob/master/drivers/input/joystick/sidewinder.c) +* [Sidewinder patent](https://patents.google.com/patent/US5628686A/en) +* [Creopard Retro Site](https://www.creopard.de/) + diff --git a/firmware/gameport-adapter/.clang-format b/firmware/gameport-adapter/.clang-format new file mode 100644 index 0000000..4a20c9c --- /dev/null +++ b/firmware/gameport-adapter/.clang-format @@ -0,0 +1,149 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveMacros: false +AlignConsecutiveAssignments: false +AlignConsecutiveBitFields: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Right +AlignOperands: Align +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: true +AllowAllConstructorInitializersOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortEnumsOnASingleLine: true +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: false +AllowShortLambdasOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakInheritanceList: BeforeColon +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: true +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 0 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DeriveLineEnding: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + - Regex: '.*' + Priority: 1 + SortPriority: 0 +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IndentCaseLabels: true +IndentCaseBlocks: false +IndentGotoLabels: true +IndentPPDirectives: None +IndentExternBlock: AfterExternBlock +IndentWidth: 2 +IndentWrappedFunctionNames: false +InsertTrailingCommas: None +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 2 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +SpaceBeforeSquareBrackets: false +Standard: Latest +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TabWidth: 8 +UseCRLF: false +UseTab: Never +WhitespaceSensitiveMacros: + - STRINGIZE + - PP_STRINGIZE + - BOOST_PP_STRINGIZE +... + diff --git a/firmware/gameport-adapter/AnalogAxis.h b/firmware/gameport-adapter/AnalogAxis.h new file mode 100644 index 0000000..2840237 --- /dev/null +++ b/firmware/gameport-adapter/AnalogAxis.h @@ -0,0 +1,65 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include + +/// Class to read analog axis. +/// +/// Usually PC joystick axes are specified to have 100 Ohm resistance, but +/// many analog joysticks have old, bad, or just wrong resistors. This ends +/// up in incorrect positions and is especially bad for games, which don't +/// have calibration features. This class takes care of this issue and +/// applies automatic calibration on every read. +template +class AnalogAxis { +public: + /// Constructor. + /// + /// The initial state of the joystick is considered as middle + /// which is used for autocalibration. + AnalogAxis() { + pinMode(ID, INPUT); + m_mid = analogRead(ID); + m_min = m_mid - 100; + m_max = m_mid + 100; + } + + /// Gets the axis state. + /// + /// This function automatically recalculates the outer limits and + /// readjusts the position of the joystick. + /// @returns a value between 0 and 1023 + uint16_t get() { + const auto value = analogRead(ID); + if (value < m_min) { + m_min = value; + } else if (value > m_max) { + m_max = value; + } + + if (value < m_mid) { + return map(value, m_min, m_mid, 1023, 512); + } + return map(value, m_mid, m_max, 511, 0); + } + +private: + int m_mid; + int m_min; + int m_max; +}; diff --git a/firmware/gameport-adapter/AnalogJoystick.h b/firmware/gameport-adapter/AnalogJoystick.h new file mode 100644 index 0000000..1ef6e3a --- /dev/null +++ b/firmware/gameport-adapter/AnalogJoystick.h @@ -0,0 +1,61 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "AnalogAxis.h" +#include "DigitalPin.h" +#include "GamePort.h" + +/// A common class for all analog joysticks. +class AnalogJoystick { +public: + /// Gets axis value. + /// + /// @param[in] id is the axes ID + /// @returns a value between 0 and 255 + uint16_t getAxis(int id) { + switch (id) { + case 0: + return m_axis1.get(); + case 1: + return m_axis2.get(); + case 2: + return m_axis3.get(); + case 3: + return m_axis4.get(); + default: + return 0u; + } + } + + /// Gets the buttons state as one byte. + /// + /// @returns a byte every bit represents a button + byte getButtons() { + return m_button1.isLow() | m_button2.isLow() << 1 | m_button3.isLow() << 2 | m_button4.isLow() << 3; + } + +private: + DigitalInput::pin> m_button1; + DigitalInput::pin> m_button2; + DigitalInput::pin> m_button3; + DigitalInput::pin> m_button4; + AnalogAxis::pin> m_axis1; + AnalogAxis::pin> m_axis2; + AnalogAxis::pin> m_axis3; + AnalogAxis::pin> m_axis4; +}; diff --git a/firmware/gameport-adapter/Buffer.h b/firmware/gameport-adapter/Buffer.h new file mode 100644 index 0000000..49deacc --- /dev/null +++ b/firmware/gameport-adapter/Buffer.h @@ -0,0 +1,104 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include + +template +struct Buffer { + static const uint8_t MAX_SIZE{Size}; + uint8_t data[MAX_SIZE]{}; + uint8_t size{}; +}; + +template +class BufferFillerImpl { +public: + using BufferType = Buffer; + + explicit BufferFillerImpl(BufferType& buffer) + : m_buffer(buffer) {} + + ~BufferFillerImpl() = default; + BufferFillerImpl(const BufferFillerImpl&) = delete; + BufferFillerImpl(BufferFillerImpl&&) = default; + BufferFillerImpl& operator=(const BufferFillerImpl&) = delete; + BufferFillerImpl& operator=(BufferFillerImpl&&) = default; + + template + BufferFillerImpl& push(const T& bits) { + return push(uint32_t(bits), sizeof(bits) * BITS_PER_BYTE); + } + + BufferFillerImpl& push(uint32_t bits, size_t count) { + while(count) { + const auto pushed = fillup(bits, count); + bits >>= pushed; + count -= pushed; + } + return *this; + } + + BufferFillerImpl& align() { + if (m_bitsUsed) { + m_buffer.size++; + m_bitsUsed = 0u; + } + return *this; + } + +private: + static constexpr auto BITS_PER_BYTE{8u}; + + BufferType& m_buffer; + size_t m_bitsUsed{}; + + size_t fillup(byte bits, size_t count) { + + const auto freeBits = BITS_PER_BYTE - m_bitsUsed; + if (freeBits == 0) { + return 0; + } + + // If the total count is above the free bits available in the current + // byte, then push just a chunk to fill up the current byte + if (freeBits < count) { + return fillup(bits, freeBits); + } + + if (m_bitsUsed == 0u) { + m_buffer.data[m_buffer.size] = 0u; + } + + // Obviously the total count is less, than the amount of free bits + // available in the current byte, so the following block will simply + // add the bits to the current byte and return + const auto mask = uint32_t(1u << count) - 1u; + m_buffer.data[m_buffer.size] |= byte(bits & mask) << m_bitsUsed; + m_bitsUsed += count; + if (m_bitsUsed == BITS_PER_BYTE) { + m_buffer.size++; + m_bitsUsed = 0u; + } + return count; + } +}; + +template +BufferFillerImpl BufferFiller(Buffer& buffer) { + return BufferFillerImpl(buffer); +} + diff --git a/firmware/gameport-adapter/CHF16CombatStick.h b/firmware/gameport-adapter/CHF16CombatStick.h new file mode 100644 index 0000000..9c44d45 --- /dev/null +++ b/firmware/gameport-adapter/CHF16CombatStick.h @@ -0,0 +1,74 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "AnalogJoystick.h" +#include "Joystick.h" + +class CHF16CombatStick : public Joystick { +public: + const Description &getDescription() const override { + // CH F16 Combat Stick from 1995 + static const Description description{"CH F16 Combat Stick", 3, 10, 1}; + return description; + } + + const State &getState() const override { + return m_state; + } + + bool init() override { + return true; + } + + + bool update() override { + const auto decodeHat = [](byte code) -> byte { + // Same as CH Flight Stick Pro. But the F16 stick has 4 positions on the hat only. + // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + static constexpr byte table[16] = {0, 0, 0, 7, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 1}; + return (code < sizeof(table)) ? table[code] : 0u; + }; + + const auto decodeButtons = [](byte code) -> uint16_t { + // Map to 10 buttons: 5 real ones, one hat with 4 positions. Thus we need uint16 instead of byte + // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + static constexpr uint16_t table[16] = {0, 1, 8, 0, 4, 32, 256, 0, 16, 2, 128, 0, 512, 0, 64, 0}; + static constexpr auto tableSize = sizeof(table) / sizeof(table[0]); + return (code < tableSize) ? table[code] : 0u; + }; + + // The 4th axis (index 2) is ignored, because there is a big jitter + // and it reacts on movement of the other axes too. So you can not + // assign the axes to a function in your game. + m_state.axes[0] = m_joystick.getAxis(0); + m_state.axes[1] = m_joystick.getAxis(1); + m_state.axes[2] = m_joystick.getAxis(3); // Throttle + + const auto code = m_joystick.getButtons(); + + m_state.hat = decodeHat(code); + m_state.buttons = decodeButtons(code); + + log("Code %d : %d , A2 %d", code, m_state.buttons, m_state.axes[2] ); + return true; + } + +private: + AnalogJoystick m_joystick; + State m_state; +}; diff --git a/firmware/gameport-adapter/CHFlightstickPro.h b/firmware/gameport-adapter/CHFlightstickPro.h new file mode 100644 index 0000000..4d2909e --- /dev/null +++ b/firmware/gameport-adapter/CHFlightstickPro.h @@ -0,0 +1,68 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "AnalogJoystick.h" +#include "Joystick.h" + +class CHFlightstickPro : public Joystick { +public: + const Description &getDescription() const override { + static const Description description{"CH FlightStick Pro", 4, 4, 1}; + return description; + } + + const State &getState() const override { + return m_state; + } + + bool init() override { + return true; + } + + bool update() override { + + // Unfortunately I had no real CHFlighstickPro joystick to test, but + // Sidewinder 3D Pro has an emulation for CHFlighstickPro. So, this + // implementation was made using that emulation and could be wrong. + // CHFlighstickPro seems to be a very interesting joystick. It doesn't + // allow the user to press multiple buttons simultaneously and uses + // combined buttons invocations as hat switch codes instead. So, every + // time a multiple buttons seem to be pressed, means that the user is + // actually using the hat switch. + + const auto decode = [](byte code) -> byte { + static const byte table[16] = {0, 0, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1}; + return (code < sizeof(table)) ? table[code] : 0u; + }; + + for (auto i = 0u; i < 4; i++) { + m_state.axes[i] = m_joystick.getAxis(i); + } + + const auto code = m_joystick.getButtons(); + m_state.hat = decode(code); + m_state.buttons = m_state.hat ? 0u : code; + + return true; + } + +private: + AnalogJoystick m_joystick; + State m_state; +}; + diff --git a/firmware/gameport-adapter/DigitalPin.h b/firmware/gameport-adapter/DigitalPin.h new file mode 100644 index 0000000..02e8411 --- /dev/null +++ b/firmware/gameport-adapter/DigitalPin.h @@ -0,0 +1,162 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include + +/// Digital signal edge types. +enum class Edge { any, falling, rising }; + +/// Digital pin base constants. +/// +/// This implementation was born out of the need for faster digital I/O. The +/// original digitalRead(...) function of Arduino suite needs about 2.7us per +/// call on a 16MHz MCU. Which makes it impossible to poll 5us pulses, not +/// talking about doing with the data something in between. This was a hard +/// requirement for this project, so following solution is up to 50% faster +/// and needs about 1.6us per call on the same hardware. + +template +struct DigitalPin { + using RegType = uint8_t; + const RegType mask; + const RegType port; + DigitalPin() + : mask(digitalPinToBitMask(Id)) + , port(digitalPinToPort(Id)) { + } +}; + +/// Digital Output class. +template +class DigitalOutput { +public: + /// Constructor. + DigitalOutput() + : m_output(*portOutputRegister(m_pin.port)) { + *portModeRegister(m_pin.port) |= m_pin.mask; + } + + /// Sets output high. + void setHigh() const { + m_output |= m_pin.mask; + } + + /// Sets output low. + void setLow() const { + m_output &= ~m_pin.mask; + } + + /// Sets output to the given value. + void set(bool value) const { + value ? setHigh() : setLow(); + } + + /// Toggles the output. + void toggle() const { + m_output ^= m_pin.mask; + } + + /// Triggers a pulse of given duration. + /// @param[in] duration is the duration in microseconds + void pulse(uint16_t duration = 0) const { + toggle(); + if (duration) { + delayMicroseconds(duration); + } + toggle(); + } + +private: + const DigitalPin m_pin; + volatile typename DigitalPin::RegType &m_output; +}; + +/// Digital input class. +template +class DigitalInput { +public: + /// Constructor. + DigitalInput() + : m_input(*portInputRegister(m_pin.port)) { + *portModeRegister(m_pin.port) &= ~m_pin.mask; + if (Pullup) { + *portOutputRegister(m_pin.port) |= m_pin.mask; + } + } + + operator bool() const { + return isHigh(); + } + + /// Read raw bit data + uint8_t read() const { + return m_input & m_pin.mask; + } + + /// Checks if the input is high. + bool isHigh() const { + return read(); + } + + /// Checks if the input is low + bool isLow() const { + return !read(); + } + + /// Waits for an edge with given timeout. + /// @param[in] edge is the type of edge to wait for + /// @param[in] timeount is the timeout in microseconds + uint16_t wait(Edge edge, uint16_t timeout) const { + if (edge == Edge::falling) { + return waitImpl(timeout, [](uint8_t a, uint8_t) {return a;}); + } + if (edge == Edge::rising) { + return waitImpl(timeout, [](uint8_t, uint8_t b) {return b;}); + } + // edge == Edge::rising + return waitImpl(timeout, [](uint8_t a, uint8_t b) {return a|b;}); + } + + /// Waits for a state with given timeout. + /// @param[in] state is the state to wait for + /// @param[in] timeount is the timeout in microseconds + uint16_t wait(bool state, uint16_t timeout) const { + for (; state != isHigh() && timeout; timeout--) + ; + return timeout; + } + +private: + DigitalPin m_pin; + volatile typename DigitalPin::RegType &m_input; + + template + uint16_t waitImpl(uint16_t timeout, T compare) const { + auto last = read(); + for (; timeout; timeout--) { + const auto next = read(); + if (last != next) { + if (compare(last, next)) { + return timeout; + } + last = next; + } + } + return 0u; + } +}; diff --git a/firmware/gameport-adapter/GamePort.h b/firmware/gameport-adapter/GamePort.h new file mode 100644 index 0000000..c2dffeb --- /dev/null +++ b/firmware/gameport-adapter/GamePort.h @@ -0,0 +1,89 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +// Simple GamePort pins to Arduino pins mapper. +// GamePort pins <1>, <8>, <9> are already connected to "VCC" via the PCB +template +struct GamePort { + enum { pin = -1 }; +}; + +// Analog: Button #1 +// Digital (e.g. SW3D): Clock +template <> +struct GamePort<2> { + enum { pin = 10 }; +}; + +// Analog: Joystick1 X-Axis +// Digital (e.g. SW3D): Trigger +template <> +struct GamePort<3> { + enum { pin = A0 }; +}; + +// Analog: Joystick1 Y-Axis +template <> +struct GamePort<6> { + enum { pin = A7 }; +}; + +// Analog: Button #2 +// Digital (e.g. SW3D): Data 0 +template <> +struct GamePort<7> { + enum { pin = 8 }; +}; + +// Analog: Button #3 +// Digital (e.g. SW3D): Data 1 +template <> +struct GamePort<10> { + enum { pin = 16 }; +}; + +// Analog: Joystick2 X-Axis +template <> +struct GamePort<11> { + enum { pin = A1 }; +}; + +// Analog: Midi OUT +template <> +struct GamePort<12> { + enum { pin = 5 }; +}; + +// Analog: Joystick2 Y-Axis +template <> +struct GamePort<13> { + enum { pin = A6 }; +}; + +// Analog: Button #4 +// Digital (e.g. SW3D): Data 2 +template <> +struct GamePort<14> { + enum { pin = 7 }; +}; + +// Analog: Midi IN +template <> +struct GamePort<15> { + enum { pin = 9 }; +}; diff --git a/firmware/gameport-adapter/GenericJoystick.h b/firmware/gameport-adapter/GenericJoystick.h new file mode 100644 index 0000000..1f2f4c2 --- /dev/null +++ b/firmware/gameport-adapter/GenericJoystick.h @@ -0,0 +1,54 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "Joystick.h" +#include "AnalogJoystick.h" + +template +class GenericJoystick : public Joystick { +public: + + static_assert(Axes > 0 && Axes <= 4); + + bool init() override { + return true; + } + + bool update() override { + for (auto i = 0u; i < Axes; i++) { + m_state.axes[i] = m_joystick.getAxis(i); + } + m_state.buttons = m_joystick.getButtons(); + return true; + } + + const State& getState() const override { + return m_state; + } + + const Description& getDescription() const override { + static const Description description { + "Generic Joystick", Axes, Buttons, 0 + }; + return description; + } + +private: + AnalogJoystick m_joystick; + State m_state; +}; diff --git a/firmware/gameport-adapter/GrIP.h b/firmware/gameport-adapter/GrIP.h new file mode 100644 index 0000000..7e5a51a --- /dev/null +++ b/firmware/gameport-adapter/GrIP.h @@ -0,0 +1,120 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "DigitalPin.h" +#include "Joystick.h" + +/// Class to communicate with Gravis joysticks using GrIP. +/// @remark This is a green field implementation, but it was heavily +/// inspired by Linux Gravis/Kensington GrIP driver +/// implementation. See +class GrIP : public Joystick { + /// https://github.com/torvalds/linux/blob/master/drivers/input/joystick/grip.c +public: + /// Resets the joystick and tries to detect the model. + bool init() override { + while (!readPacket()) + ; + return true; + } + + /// Reads the joystick state. + /// @returns the state of axis, buttons etc. + /// @remark if reading the state fails, the last known state is + /// returned and the joystick reset is executed. + bool update() override { + + const auto packet = readPacket(); + if (packet == 0) { + return false; + } + + const auto getBit = [&](uint8_t pos) { return uint8_t(packet >> pos) & 1; }; + + m_state.axes[0] = map(1 + getBit(15) - getBit(16), 0, 2, 0, 1023); + m_state.axes[1] = map(1 + getBit(13) - getBit(12), 0, 2, 0, 1023); + + m_state.buttons = getBit(8); + m_state.buttons |= getBit(3) << 1; + m_state.buttons |= getBit(7) << 2; + m_state.buttons |= getBit(6) << 3; + m_state.buttons |= getBit(10) << 4; + m_state.buttons |= getBit(11) << 5; + m_state.buttons |= getBit(5) << 6; + m_state.buttons |= getBit(2) << 7; + m_state.buttons |= getBit(0) << 8; + m_state.buttons |= getBit(1) << 9; + + return true; + } + + const State &getState() const override { + return m_state; + } + + const Description &getDescription() const override { + static Description desc{"Gravis GamePad Pro", 2, 10, 0}; + return desc; + } + +private: + /// Supported Gravis model types. + /// + /// @remark currently only GamePad Pro is supported and + // this enum is not used yet + enum class Model { + + /// Unknown model + GRIP_UNKNOWN, + + /// GamePad Pro + GRIP_GAMEPAD_PRO, + }; + + DigitalInput::pin, true> m_clock; + DigitalInput::pin, true> m_data; + State m_state; + + /// Read bits packet from the joystick. + uint32_t readPacket() const { + + // Gravis GamePad Pro sends 24 bits long packages of data all the + // time. Every package starts with a binary tag sequence 011111. + + static const auto length = 24u; + uint32_t result = 0u; + + // read a package of 24 bits + for (auto i = 0u; i < length; i++) { + if (!m_clock.wait(Edge::falling, 100)) { + return 0u; + } + result |= uint32_t(m_data.isHigh()) << i; + } + + // alighn the bits to have the binary tag in front. This code + // was taken almost unchanged from the linux kernel. + for (auto i = 0u; i < length; i++) { + result = (result >> 1) | (result & 1) << (length - 1u); + if ((result & 0xfe4210) == 0x7c0000) { + return result; + } + } + return 0u; + } +}; diff --git a/firmware/gameport-adapter/HidDevice.h b/firmware/gameport-adapter/HidDevice.h new file mode 100644 index 0000000..d98eb66 --- /dev/null +++ b/firmware/gameport-adapter/HidDevice.h @@ -0,0 +1,165 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include + +class HidDevice : public PluggableUSBModule { +public: + + explicit HidDevice() + : PluggableUSBModule(1, 1, epType) { + PluggableUSB().plug(this); + } + + void AppendDescriptor(HIDSubDescriptor *node) { + + if (rootNode == nullptr) { + rootNode = node; + } else { + auto current = rootNode; + while (current->next) { + current = current->next; + } + current->next = node; + } + descriptorSize += node->length; + } + + int SendReport(uint8_t id, const void *data, int len) const { + + const auto ret = USB_Send(pluggedEndpoint, &id, 1); + if (ret < 0) { + return ret; + } + + const auto ret2 = USB_Send(pluggedEndpoint | TRANSFER_RELEASE, data, len); + if (ret2 < 0) { + return ret2; + } + + return ret + ret2; + } + +protected: + + int getInterface(uint8_t *interfaceCount) override { + *interfaceCount += 1; // uses 1 + HIDDescriptor hidInterface { + D_INTERFACE(pluggedInterface, 1, USB_DEVICE_CLASS_HUMAN_INTERFACE, HID_SUBCLASS_NONE, HID_PROTOCOL_NONE), + D_HIDREPORT(descriptorSize), + D_ENDPOINT(USB_ENDPOINT_IN(pluggedEndpoint), USB_ENDPOINT_TYPE_INTERRUPT, USB_EP_SIZE, 0x01) + }; + return USB_SendControl(0, &hidInterface, sizeof(hidInterface)); + } + + int getDescriptor(USBSetup &setup) override { + + // Check if this is a HID Class Descriptor request + if (setup.bmRequestType != REQUEST_DEVICETOHOST_STANDARD_INTERFACE) { + return 0; + } + if (setup.wValueH != HID_REPORT_DESCRIPTOR_TYPE) { + return 0; + } + + // In a HID Class Descriptor wIndex contains the interface number + if (setup.wIndex != pluggedInterface) { + return 0; + } + + int total = 0; + for (auto node = rootNode; node; node = node->next) { + const auto res = USB_SendControl(0, node->data, node->length); + if (res < 0) { + return -1; + } + total += res; + } + + // Reset the protocol on reenumeration. Normally the host should not + // assume the state of the protocol due to the USB specs, but Windows + // and Linux just assumes its in report mode. + protocol = HID_REPORT_PROTOCOL; + + return total; + } + + uint8_t getShortName(char *name) override { + name[0] = 'H'; + name[1] = 'I'; + name[2] = 'D'; + name[3] = 'A' + (descriptorSize & 0x0F); + name[4] = 'A' + ((descriptorSize >> 4) & 0x0F); + return 5; + } + + bool setup(USBSetup &setup) override { + + if (pluggedInterface != setup.wIndex) { + return false; + } + + const auto request = setup.bRequest; + const auto requestType = setup.bmRequestType; + + if (requestType == REQUEST_DEVICETOHOST_CLASS_INTERFACE) { + if (request == HID_GET_REPORT) { + // TODO: HID_GetReport(); + return true; + } + if (request == HID_GET_PROTOCOL) { + // TODO: Send8(protocol); + return true; + } + if (request == HID_GET_IDLE) { + // TODO: Send8(idle); + } + } + + if (requestType == REQUEST_HOSTTODEVICE_CLASS_INTERFACE) { + if (request == HID_SET_PROTOCOL) { + // The USB Host tells us if we are in boot or report mode. + // This only works with a real boot compatible device. + protocol = setup.wValueL; + return true; + } + if (request == HID_SET_IDLE) { + idle = setup.wValueL; + return true; + } + if (request == HID_SET_REPORT) { + // uint8_t reportID = setup.wValueL; + // uint16_t length = setup.wLength; + // uint8_t data[length]; + // Make sure to not read more data than USB_EP_SIZE. + // You can read multiple times through a loop. + // The first byte (may!) contain the reportID on a multreport. + // USB_RecvControl(data, length); + } + } + + return false; + } + +private: + uint8_t epType[1]{EP_TYPE_INTERRUPT_IN}; + HIDSubDescriptor *rootNode{nullptr}; + uint16_t descriptorSize{0}; + uint8_t protocol{HID_REPORT_PROTOCOL}; + uint8_t idle{1}; +}; + diff --git a/firmware/gameport-adapter/HidJoystick.h b/firmware/gameport-adapter/HidJoystick.h new file mode 100644 index 0000000..5445ed7 --- /dev/null +++ b/firmware/gameport-adapter/HidJoystick.h @@ -0,0 +1,165 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "Buffer.h" +#include "HidDevice.h" +#include "Joystick.h" +#include "Utilities.h" +#include + +class HidJoystick { +public: + bool init(Joystick *joystick) { + if (!joystick || !joystick->init()) { + return false; + } + + m_joystick = joystick; + m_hidDescription = createDescription(*m_joystick); + m_subDescriptor = new HIDSubDescriptor{m_hidDescription.data, m_hidDescription.size}; + m_hidDevice.AppendDescriptor(m_subDescriptor); + + log("Detected device: %s", joystick->getDescription().name); + return true; + } + + bool update() { + if (!m_joystick || !m_joystick->update()) { + return false; + } + + const auto packet = createPacket(*m_joystick); + m_hidDevice.SendReport(DEVICE_ID, packet.data, packet.size); + return true; + } + +private: + using BufferType = Buffer<255>; + static const uint8_t DEVICE_ID{3}; + + static BufferType createDescription(const Joystick &joystick) { + + enum class ID : uint8_t { + application = 0x01, + button = 0x09, + collection = 0xa1, + end_collection = 0xc0, + generic_desktop = 0x01, + hat_switch = 0x39, + input = 0x81, + input_const = 0x03, + input_data = 0x02, + joystick = 0x04, + logical_max = 0x26, + logical_min = 0x15, + report_count = 0x95, + report_id = 0x85, + report_size = 0x75, + simulation_controls = 0x02, + throttle = 0xbb, + usage = 0x09, + usage_max = 0x29, + usage_min = 0x19, + usage_page = 0x05, + }; + + const auto &desc = joystick.getDescription(); + BufferType buffer; + auto filler = BufferFiller(buffer); + + auto pushData = [&filler](uint8_t size, uint8_t count) { + filler.push(ID::report_size).push(size); + filler.push(ID::report_count).push(count); + filler.push(ID::input).push(ID::input_data); + const auto padding = (size * count) % 8u; + if (padding) { + filler.push(ID::report_size).push(8u - padding); + filler.push(ID::report_count).push(1); + filler.push(ID::input).push(ID::input_const); + } + }; + + filler.push(ID::usage_page).push(ID::generic_desktop); + filler.push(ID::usage).push(ID::joystick); + filler.push(ID::collection).push(ID::application); + filler.push(ID::report_id).push(DEVICE_ID); + + // Push axes + if (desc.numAxes > 0) { + filler.push(ID::usage_page).push(ID::generic_desktop); + for (auto i = 0u; i < desc.numAxes; i++) { + static constexpr uint8_t x_axis = 0x30; + filler.push(ID::usage).push(x_axis + i); + } + filler.push(ID::logical_min).push(0); + filler.push(ID::logical_max).push(1023); + pushData(10, desc.numAxes); + } + + // Push hat + if (desc.hasHat) { + filler.push(ID::usage).push(ID::hat_switch); + filler.push(ID::logical_min).push(1); + filler.push(ID::logical_max).push(8); + pushData(4, 1); + } + + // Push buttons + if (desc.numButtons > 0) { + filler.push(ID::usage_page).push(ID::button); + filler.push(ID::usage_min).push(1); + filler.push(ID::usage_max).push(desc.numButtons); + filler.push(ID::logical_min).push(0); + filler.push(ID::logical_max).push(1); + pushData(1, desc.numButtons); + } + + filler.push(ID::end_collection); + return buffer; + } + + static BufferType createPacket(const Joystick &joystick) { + + const auto &state = joystick.getState(); + const auto &description = joystick.getDescription(); + BufferType buffer; + auto filler = BufferFiller(buffer); + + for (auto i = 0u; i < description.numAxes; i++) { + filler.push(state.axes[i], 10); + } + filler.align(); + + if (description.hasHat) { + filler.push(state.hat, 4); + filler.align(); + } + + if (description.numButtons) { + filler.push(state.buttons, description.numButtons); + filler.align(); + } + + return buffer; + } + + Joystick *m_joystick{}; + BufferType m_hidDescription{}; + HIDSubDescriptor *m_subDescriptor{}; + HidDevice m_hidDevice; +}; diff --git a/firmware/gameport-adapter/Joystick.h b/firmware/gameport-adapter/Joystick.h new file mode 100644 index 0000000..d6546dd --- /dev/null +++ b/firmware/gameport-adapter/Joystick.h @@ -0,0 +1,94 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include + +/// Base class for all joysticks. +class Joystick { +public: + static const auto MAX_AXES{16u}; + + /// Device description. + /// + /// This structure is used to generate the HID description + /// and USB data packages + struct Description { + + /// Human readable name. + const char* name; + + /// Number of supported axes. + uint8_t numAxes; + + /// Number of supported buttons. + uint8_t numButtons; + + /// Has HAT. + bool hasHat; + }; + + /// Joystick state. + struct State { + + /// Axes. + /// + /// To keep it simple all axes are unified to 10 bits + /// resolution. Every joystick has to map it's values + /// to the values 0..1023 independent from the internal + /// resolution of the device. + uint16_t axes[MAX_AXES]{}; + + /// Hats. + /// + /// HAT is represented through values 0..8 1 is up, 2 is + /// 45° clockwise, 3 is right etc. Center is represented + /// with zero. + uint8_t hat{}; + + /// Buttons. + /// + /// Every bit is a button. 1 is pressed, 0 is released + uint16_t buttons{}; + }; + + /// Initialize joystick. + /// + /// @returns True on successful initialization + virtual bool init() = 0; + + /// Update state. + /// + /// This function is called every time the joystick + /// state has to be updated. + /// + /// @returns True on successful initialization + virtual bool update() = 0; + + /// Gets the State of the Joystick. + virtual const State &getState() const = 0; + + /// Gets the Description of the Joystick. + virtual const Description &getDescription() const = 0; + + Joystick() = default; + virtual ~Joystick() = default; + Joystick(const Joystick &) = delete; + Joystick(Joystick &&) = delete; + Joystick &operator=(const Joystick &) = delete; + Joystick &operator=(Joystick &&) = delete; +}; diff --git a/firmware/gameport-adapter/Logitech.h b/firmware/gameport-adapter/Logitech.h new file mode 100755 index 0000000..908d0cd --- /dev/null +++ b/firmware/gameport-adapter/Logitech.h @@ -0,0 +1,357 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "DigitalPin.h" +#include "GamePort.h" +#include "Joystick.h" +#include "Utilities.h" + +class Logitech : public Joystick { +public: + bool init() override { + enableDigitalMode(); + if (!readMetaData()) { + return false; + } + + // Create joystick description + m_description.name = m_metaData.deviceName; + m_description.numAxes = min(Joystick::MAX_AXES, + m_metaData.num10bitAxes + + m_metaData.num8bitAxes + + m_metaData.numSecondaryHats * 2); // Each hat is mapped to two axes + m_description.numButtons = m_metaData.numPrimaryButtons + m_metaData.numSecondaryButtons; + m_description.hasHat = m_metaData.hasHat; + + // If the device is a Logitech ThunderPad Digital, manually redefine the gamepad layout to 2 axes and 8 buttons + if(m_metaData.deviceID == DEVICE_THUNDERPAD_DIGITAL){ + m_description.numAxes = 2; + m_description.numButtons = 8; + m_description.hasHat = 0; + } + // If the device is a Logitech WingMan Gamepad, manually redefine the gamepad layout to 2 axes and 11 buttons + else if(m_metaData.deviceID == DEVICE_WINGMAN_GAMEPAD){ + m_description.numAxes = 2; + m_description.numButtons = 11; + m_description.hasHat = 0; + } + + // Initialize axes centers + uint8_t axis = 0u; + for (auto i = 0u; i < m_metaData.num10bitAxes; i++, axis++) { + m_limits[axis] = { 512 - 256, 512 + 256 }; + } + for (auto i = 0u; i < m_metaData.num8bitAxes; i++, axis++) { + m_limits[axis] = { 128 - 64, 128 + 64 }; + } + + return true; + } + + bool update() override { + + // === Status packet format === + // + // Offset Bits Description + // -------------------------------------------------------- + // 0 4 Low nibble of the Device ID + // 4 4 High nibble of the Device ID + // 8 10*N 10bit axes (N is number of axes) + // ? 8*N 8bit axes (N is number of axes) + // ? 1*N Buttons (N is number of buttons) + // ? R*N Hats (R is resolution, N is number of hats) + // ? 1*N Secondary buttons (N is number of buttons) + + // Cyberman 2 seems not to work properly if the packets are + // read too fast. Following delay will ensure, that after the + // last read at least 5ms passed to ensure, that the joystick + // cooled down again. + delayMicroseconds(5000); + + const auto packet = readPacket(); + + if (packet.size != m_metaData.packageSize) { + return false; + } + + const auto packetID = getBits(packet, 0, 4) | getBits(packet, 4, 4) << 4; + if (packetID != m_metaData.deviceID) { + return false; + } + + State state; + uint16_t offset = 8u; + + uint8_t axis = 0u; + for (auto i = 0u; i < m_metaData.num10bitAxes; i++, axis++) { + state.axes[axis] = mapAxisValue(axis, getBits(packet, offset, 10)); + offset += 10; + } + + for (auto i = 0u; i < m_metaData.num8bitAxes; i++, axis++) { + state.axes[axis] = mapAxisValue(axis, getBits(packet, offset, 8)); + offset += 8; + } + + uint16_t button = 0u; + for (auto i = 0u; i < m_metaData.numPrimaryButtons; i++) { + state.buttons |= getBits(packet, offset++, 1) << button++; + } + + if (m_metaData.hasHat) { + + const auto hatResolution = getHatResolution(); + state.hat = mapHatValue(getBits(packet, offset, hatResolution)); + offset += hatResolution; + + // Secondary hats are all shown as dual axes + for (auto i = 0u; i < m_metaData.numSecondaryHats; i++, axis += 2) { + const auto value = mapHatValue(getBits(packet, offset, hatResolution)); + offset += hatResolution; + static constexpr uint16_t dx[] = { 511, 511, 1023, 1023, 1023, 511, 0, 0, 0 }; + static constexpr uint16_t dy[] = { 511, 0, 0, 511, 1023, 1023, 1023, 511, 0 }; + state.axes[axis + 0] = dx[value]; + state.axes[axis + 1] = dy[value]; + } + } + + for (auto i = 0u; i < m_metaData.numSecondaryButtons; i++) { + state.buttons |= getBits(packet, offset++, 1) << button++; + } + + // If the device is a Logitech ThunderPad Digital, manually remap up, down, left and right buttons to X and Y axes + if(m_metaData.deviceID == DEVICE_THUNDERPAD_DIGITAL){ + const auto value = getBits(packet, 12, 4); + static constexpr uint16_t dx[] = { 511, 0, 511, 0, 1023, 511, 1023, 511, 511, 0, 511, 0, 1023, 511, 1023, 511 }; + static constexpr uint16_t dy[] = { 511, 511, 1023, 1023, 511, 511, 1023, 1023, 0, 0, 511, 511, 0, 0, 511, 511 }; + state.axes[0] = dx[value]; + state.axes[1] = dy[value]; + + state.buttons &= 0xFF0F; + state.buttons |= (state.buttons & 0x0F00) >> 4; + } + // If the device is a Logitech WingMan Gamepad, manually remap up, down, left and right buttons to X and Y axes + else if(m_metaData.deviceID == DEVICE_WINGMAN_GAMEPAD){ + const auto value = getBits(packet, 8, 4); + static constexpr uint16_t dx[] = { 511, 0, 511, 0, 1023, 511, 1023, 511, 511, 0, 511, 0, 1023, 511, 1023, 511 }; + static constexpr uint16_t dy[] = { 511, 511, 1023, 1023, 511, 511, 1023, 1023, 0, 0, 511, 511, 0, 0, 511, 511 }; + state.axes[0] = dx[value]; + state.axes[1] = dy[value]; + + state.buttons >>= 4; + } + + m_state = state; + return true; + } + + const State &getState() const override { + return m_state; + } + + const Description &getDescription() const override { + return m_description; + } + +private: + struct MetaData { + char deviceName[32]{}; + uint8_t deviceID{}; + uint8_t packageSize{}; + uint8_t num8bitAxes{}; + uint8_t num10bitAxes{}; + uint8_t numPrimaryButtons{}; + uint8_t numSecondaryButtons{}; + uint8_t numSecondaryHats{}; + uint8_t hasHat{}; + uint8_t numHatDirections{}; + }; + + struct Limits { + uint16_t min, max; + }; + + // Logitech Device ID constants, taken from the Linux Kernel ADI driver + enum LogitechDevices{ + DEVICE_WINGMAN_EXTREME_DIGITAL = 0x00, + DEVICE_THUNDERPAD_DIGITAL = 0x01, + DEVICE_SIDECAR = 0x02, + DEVICE_CYBERMAN2 = 0x03, + DEVICE_WINGMAN_INTERCEPTOR = 0x04, + DEVICE_WINGMAN_FORMULA = 0x05, + DEVICE_WINGMAN_GAMEPAD = 0x06, + DEVICE_WINGMAN_EXTREME_DIGITAL_3D = 0x07, + DEVICE_WINGMAN_GAMEPAD_EXTREME = 0x08, + DEVICE_WINGMAN_GAMEPAD_USB = 0x09 + }; + + uint16_t mapAxisValue(uint8_t axis, uint16_t value) { + if (value < m_limits[axis].min) { + m_limits[axis].min = value; + } else if (value > m_limits[axis].max) { + m_limits[axis].max = value; + } + return map(value, m_limits[axis].min, m_limits[axis].max, 0, 1023); + } + + uint8_t mapHatValue(uint16_t value) const { + return map(value, 0, m_metaData.numHatDirections, 0, 8); + } + + uint8_t getHatResolution() const { + uint8_t result = 0u; + for (auto value = m_metaData.numHatDirections; value; value >>= 1) { + result++; + } + return result; + } + + /// Internal bit structure which is filled by reading from the joystick. + using Packet = Buffer<255>; + + static uint16_t getBits(const Packet& packet, uint8_t offset, uint8_t count) { + uint16_t result = 0u; + if (offset < packet.size && count <= (packet.size - offset)) { + for (auto i = 0u; i < count; i++) { + result = (result << 1) | packet.data[offset + i]; + } + } + return result; + } + + DigitalOutput::pin> m_trigger; + DigitalInput::pin, true> m_data0; + DigitalInput::pin, true> m_data1; + MetaData m_metaData; + Description m_description; + State m_state; + Limits m_limits[Joystick::MAX_AXES]; + + void enableDigitalMode() const { + static constexpr uint16_t seq[] = {4, 2, 3, 10, 6, 11, 7, 9, 11, 0}; + + // Some devices, as the Logitech ThunderPad Digital, require some time for its + // microcontroller to initialize; otherwise the enableDigitalMode command is skipped + // and the device stays in analog mode. Don't use values higher than 100ms, they could + // interfere with the USB initialization + delay(100); + + for (auto i = 0u; seq[i]; i++) { + m_trigger.pulse(20u); + delay(seq[i]); + } + } + + byte readData() const { + const auto b0 = m_data0.read(); + const auto b1 = m_data1.read(); + return bool(b0) | bool(b1) << 1; + } + + Packet readPacket() const { + static constexpr auto TIMEOUT = 32u; + auto timeout = TIMEOUT; + auto first = true; + Packet packet; + const InterruptStopper noirq; + auto last = readData(); + m_trigger.setHigh(); + while (timeout-- && packet.size < Packet::MAX_SIZE) { + const auto next = readData(); + const auto edge = last ^ next; + if (edge) { + if (first) { + first = false; + } else { + // Normally both data bits should never flip simultaneously. + // We should get either 10, when data1 has flipped, or 01, + // when data0 has flipped. So if we just shift the edge to + // the right once, we will get the needed 1 or 0 bit value. + packet.data[packet.size++] = edge >> 1; + } + last = next; + timeout = TIMEOUT; + } + } + m_trigger.setLow(); + return packet; + } + + bool readMetaData() { + + // === Metadata packet format === + // + // Offset Bits Description + // -------------------------------------------------------- + // 0 10 Metadata package size + // 10 4 Low nibble of the Device ID + // 14 4 High nibble of the Device ID + // 18 4 Feature flags + // 22 10 Status package size + // 32 4 Number of axes (0..15) + // 36 6 Number of buttons (0..63) + // 42 6 Number of hat directions (0..63) + // 48 6 Number of secondary buttons (0..63) + // 54 4 Number of secondary hats (0..15) + // 58 4 Number of 8-bit axes (0..15) + // 62 4 Length of the cname in bytes (0..15) + // 66 8*N Characters of the cname (N is the length) + + // === Flags === + // + // Bit Description + // --------------------- + // 1 Reserved + // 2 Reserved + // 3 Has Hat + // 4 Has 10-bit axes + + const auto packet = readPacket(); + + const auto metaSize = getBits(packet, 0, 10); + if (metaSize != packet.size) { + log("Meta data package size mismatch, expected %d but got %d", packet.size, metaSize); + return false; + } + + m_metaData.deviceID = getBits(packet, 10, 4) | getBits(packet, 14, 4) << 4; + const auto flags = getBits(packet, 18, 4); + m_metaData.hasHat = flags & 0x4; + m_metaData.packageSize = getBits(packet, 22, 10); + const auto numTotalAxes = getBits(packet, 32, 4); + m_metaData.numPrimaryButtons = getBits(packet, 36, 6); + m_metaData.numHatDirections = getBits(packet, 42, 6); + m_metaData.numSecondaryButtons = getBits(packet, 48, 6); + m_metaData.numSecondaryHats = getBits(packet, 54, 4); + const auto num8bitAxes = getBits(packet, 58, 4); + if (flags & 0x8) { + m_metaData.num10bitAxes = numTotalAxes - num8bitAxes; + m_metaData.num8bitAxes = num8bitAxes; + } else { + m_metaData.num8bitAxes = numTotalAxes; + m_metaData.num10bitAxes = 0u; + } + const auto cnameLength = getBits(packet, 62, 4); + m_metaData.deviceName[cnameLength] = 0; + for (auto i = 0u; i < cnameLength; i++) { + m_metaData.deviceName[i] = getBits(packet, 66 + 8 * i, 8); + } + + return true; + } +}; diff --git a/firmware/gameport-adapter/Sidewinder.h b/firmware/gameport-adapter/Sidewinder.h new file mode 100644 index 0000000..28ab7b0 --- /dev/null +++ b/firmware/gameport-adapter/Sidewinder.h @@ -0,0 +1,514 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "Buffer.h" +#include "DigitalPin.h" +#include "Joystick.h" +#include "Utilities.h" + +/// Class to for communication with Sidewinder joysticks. +/// @remark This is a green field implementation, but it was heavily +/// inspired by Linux Sidewinder driver implementation. See +/// https://github.com/torvalds/linux/blob/master/drivers/input/joystick/sidewinder.c +class Sidewinder : public Joystick { +public: + /// Resets the joystick and tries to detect the model. + bool init() override { + log("Sidewinder init..."); + m_errors = 0; + + m_model = guessModel(readPacket()); + while (m_model == Model::SW_UNKNOWN) { + // No data. 3d Pro analog mode? + enableDigitalMode(); + m_model = guessModel(readPacket()); + } + log("Detected model %d", m_model); + return true; + } + + bool update() override { + const auto packet = readPacket(); + State state; + if (decode(packet, state)) { + m_state = state; + m_errors = 0; + return true; + } + + m_errors++; + log("Packet decoding failed %d time(s)", m_errors); + if (m_errors > 5) { + return init(); + } + return false; + } + + const State &getState() const override { + return m_state; + } + + const Description &getDescription() const override; + +private: + /// Supported Sidewinder model types. + enum class Model { + /// Unknown model. + SW_UNKNOWN, + + /// Sidewinder GamePad + SW_GAMEPAD, + + /// Sidewinder 3D Pro + SW_3D_PRO, + + /// Sidewinder Precision Pro + SW_PRECISION_PRO, + + /// Sidewinder Force Feedback Pro + SW_FORCE_FEEDBACK_PRO, + + /// Sidewinder Force Feedback Wheel + SW_FORCE_FEEDBACK_WHEEL + }; + + /// Internal bit structure which is filled by reading from the joystick. + using Packet = Buffer<128u>; + + /// Model specific status decoder function. + template + struct Decoder { + static const Description &getDescription(); + static bool decode(const Packet &packet, State &state); + }; + + /// Guesses joystick model from the size of the packet. + Model guessModel(const Packet &packet) const { + log("Guessing model by packet size of %d", packet.size); + switch (packet.size) { + case 15: + return Model::SW_GAMEPAD; + case 16: // 3bit mode + case 48: { // 1bit mode + const auto id = readID(packet.size); + log("Data packet size is ambiguous. Guessing by ID %d", id); + if (id == 14) { + return Model::SW_FORCE_FEEDBACK_PRO; + } + return Model::SW_PRECISION_PRO; + } + case 11: // 3bit mode + case 33: // 1bit mode + return Model::SW_FORCE_FEEDBACK_WHEEL; + case 64: + return Model::SW_3D_PRO; + default: + return Model::SW_UNKNOWN; + } + } + + void cooldown() const { + m_trigger.setLow(); + delay(3); + } + + void trigger() const { + m_trigger.pulse(20); + } + + DigitalInput::pin, true> m_clock; + DigitalInput::pin, true> m_data0; + DigitalInput::pin, true> m_data1; + DigitalInput::pin, true> m_data2; + DigitalOutput::pin> m_trigger; + Model m_model{Model::SW_UNKNOWN}; + State m_state{}; + uint8_t m_errors{}; + + /// Enables digital mode for 3D Pro. + // + /// The 3D Pro can work as legacy analog joystick or in digital mode. + /// This mode has to be activated explicitly. In this function timing + /// is very important. See Patent: US#5628686 (page 19) for details. + void enableDigitalMode() const { + static const uint16_t magic = 150; + static const uint16_t seq[] = {magic, magic + 725, magic + 300, magic, 0}; + log("Trying to enable digital mode"); + cooldown(); + const InterruptStopper interruptStopper; + for (auto i = 0u; seq[i]; i++) { + trigger(); + delayMicroseconds(seq[i]); + } + } + + /// Read bits packet from the joystick. + /// + /// This part is extremely performance and timing critical. Change only, if + /// you know, what you are doing. + Packet readPacket() const { + + // Packet instantiation is a very expensive call, which zeros the memory. + // The instantiation should therefore happen outside of the interrupt stopper + // and before triggering the device. Otherwise the clock will come before + // the packet was zeroed/instantiated. + Packet packet; + + // We are reading into a byte array instead of an uint64_t, because of two + // reasons. First, bits packets can be larger, than 64 bits. We are actually + // not interested in packets, which are larger than that, but may be in the + // future we'd need to handle them as well. Second, for reading into an + // uint64_t we would need to shift between the clock impulses, which is + // impossible to do in time. Unfortunately this shift is extremely slow on + // an Arduino and it's just faster to write into an array. One bit per byte. + packet.size = readBits(Packet::MAX_SIZE, [this, &packet](uint8_t pos) { + const auto b1 = m_data0.read(); + const auto b2 = m_data1.read(); + const auto b3 = m_data2.read(); + packet.data[pos] = bool(b1) | bool(b2) << 1 | bool(b3) << 2; + }); + + return packet; + } + + uint8_t readID(uint8_t dataPacketSize) const { + + const auto rise = dataPacketSize / 2 - 1; + const auto fall = rise + 2; + + const auto count = readBits(255u, [this, rise, fall](uint8_t pos) { + if (pos == rise) { + m_trigger.setHigh(); + } + else if (pos == fall) { + m_trigger.setLow(); + } + }); + return count < dataPacketSize ? 0 : count - dataPacketSize; + } + + template + uint8_t readBits(uint8_t maxCount, T&& extract) const { + static const uint8_t wait_duration = 100; + uint8_t count{}; + cooldown(); + // WARNING: Here starts the timing critical section + const InterruptStopper interruptStopper; + trigger(); + if (m_clock.wait(true, wait_duration)) { + while(count < maxCount && m_clock.wait(Edge::rising, wait_duration)) { + extract(count++); + } + } + return count; + } + + /// Decodes bit packet into a state. + bool decode(const Packet &packet, State &state) const; +}; + +/// Placeholder for Unknown Device +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"Unknown", 0, 0, 0}; + return desc; + } + + static bool decode(const Packet &, State &) { + return false; + } +}; + +/// Bit decoder for Sidewinder GamePad. +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"MS Sidewinder GamePad", 2, 10, 0}; + return desc; + } + + static bool decode(const Packet &packet, State &state) { + + const auto checksum = [&]() { + byte result = 0u; + for (auto i = 0u; i < packet.size; i++) { + result ^= packet.data[i] & 1; + } + return result; + }; + + if (packet.size != 15 || checksum() != 0) { + return false; + } + + // Bit 0-1: x-axis (10-left, 01-right, 11-middle) + // Bit 2-3: y-axis (01-up, 10-down, 11-middle) + // Bit 4-13: 10 buttons + // Bit 14: checksum + for (auto i = 0u; i < 10; i++) { + state.buttons |= (~packet.data[i + 4] & 1) << i; + } + state.axes[0] = map(1 + packet.data[3] - packet.data[2], 0, 2, 0, 1023); + state.axes[1] = map(1 + packet.data[0] - packet.data[1], 0, 2, 0, 1023); + + return true; + } +}; + +/// Bit decoder for Sidewinder 3D Pro. +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"MS Sidewinder 3D Pro", 4, 8, 1}; + return desc; + } + + static bool decode(const Packet &packet, State &state) { + const auto value = [&]() { + uint64_t result{0u}; + for (auto i = 0u; i < packet.size; i++) { + result |= uint64_t(packet.data[i] & 1) << i; + } + return result; + }(); + + const auto bits = [&](uint8_t start, uint8_t length) { + const auto mask = (1 << length) - 1; + return (value >> start) & mask; + }; + + if (packet.size != 64 || !checkSync(value) || checksum(value)) { + return false; + } + + // bit 38: button 8 + bit 8-15: buttons 1-7 (low active) + state.buttons = ~(bits(8, 7) | (bits(38, 1) << 7)); + + // bit 3-5 + bit 16-22: x-axis (value 0-1023) + state.axes[0] = bits(3, 3) << 7 | bits(16, 7); + + // bit 0-2 + bit 24-30: y-axis (value 0-1023) + state.axes[1] = bits(0, 3) << 7 | bits(24, 7); + + // bit 35-36 + bit 40-46: z-axis (value 0-511) + state.axes[2] = map(bits(35, 2) << 7 | bits(40, 7), 0, 511, 0, 1023); + + // bit 32-34 + bit 48-54: throttle-axis (value 0-1023) + state.axes[3] = bits(32, 3) << 7 | bits(48, 7); + + // bit 6-7 + bit 60-62 (9 pos, 0 center, 1-8 clockwise) + state.hat = bits(6, 1) << 3 | bits(60, 3); + + return true; + } + +private: + /// Checks sync bits. + /// + /// This code was taken from Linux driver as is. + static bool checkSync(uint64_t value) { + return !((value & 0x8080808080808080ULL) ^ 0x80); + } + + /// Calculates checksum. + /// + /// This code was taken from Linux driver as is. + static byte checksum(uint64_t value) { + auto result = 0u; + while (value) { + result += value & 0xf; + value >>= 4; + } + return result & 0xf; + } +}; + +/// Bit decoder for Sidewinder Precision Pro +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"MS Sidewinder Precision Pro", 4, 9, 1}; + return desc; + } + + static bool decode(const Packet &packet, State &state) { + + // The packet can be either in 3bit or in 1bit mode + if (packet.size != 16 && packet.size != 48) { + return false; + } + + const auto value = [&packet]() { + uint64_t result{0u}; + const auto shift = 48 / packet.size; + const auto mask = (shift == 3) ? 0b111 : 0b1; + for (auto i = 0u; i < packet.size; i++) { + result |= uint64_t(packet.data[i] & mask) << (i * shift); + } + return result; + }(); + + // TODO shared code with 3D Pro? + const auto bits = [&value](uint8_t start, uint8_t length) { + const auto mask = (1 << length) - 1; + return (value >> start) & mask; + }; + + // TODO shared code with GP? + const auto parity = [](uint64_t t) { + uint32_t x = t ^ (t >> 32); + x ^= x >> 16; + x ^= x >> 8; + x ^= x >> 4; + x ^= x >> 2; + x ^= x >> 1; + return x & 1; + }; + + if (!parity(value)) { + return false; + } + + state.axes[0] = bits(9, 10); + state.axes[1] = bits(19, 10); + state.axes[2] = map(bits(36, 6), 0, 63, 0, 1023); + state.axes[3] = map(bits(29, 7), 0, 127, 0, 1023); + state.hat = bits(42, 4); + state.buttons = ~bits(0, 9); + + return true; + } +}; + +/// Descriptor for Sidewinder Force Feedback Pro. +/// (The bit decoder is identical to the Precision Pro.) +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"MS Sidewinder Force Feedback Pro", 4, 9, 1}; + return desc; + } + + static bool decode(const Packet &packet, State &state) { + // Decode is identical between the Force Feedback Pro and the Precision Pro. + return Decoder::decode(packet, state); + } +}; + +/// Bit decoder for Sidewinder Force Feedback Wheel. +template <> +class Sidewinder::Decoder { +public: + static const Description &getDescription() { + static const Description desc{"MS ForceFeedBack Wheel", 3, 8, 0}; + return desc; + } + + static bool decode(const Packet &packet, State &state) { + + // The packet can be either in 3bit or in 1bit mode + if (packet.size != 11 && packet.size != 33) { + return false; + } + + const auto value = [&packet]() { + uint64_t result{0u}; + const auto shift = 33 / packet.size; + const auto mask = (shift == 3) ? 0b111 : 0b1; + for (auto i = 0u; i < packet.size; i++) { + result |= uint64_t(packet.data[i] & mask) << (i * shift); + } + return result; + }(); + + // TODO shared code with 3D Pro? + const auto bits = [&value](uint8_t start, uint8_t length) { + const auto mask = (1 << length) - 1; + return (value >> start) & mask; + }; + + // TODO shared code with GP? + const auto parity = [](uint64_t t) { + uint32_t x = t ^ (t >> 32); + x ^= x >> 16; + x ^= x >> 8; + x ^= x >> 4; + x ^= x >> 2; + x ^= x >> 1; + return x & 1; + }; + + if (!parity(value)) { + return false; + } + + // bit 0-9: RX + state.axes[0] = bits(0, 10); + + // bit 10-16: Rudder + state.axes[1] = map(bits(10, 6), 0, 63, 0, 1023); + + // bit 16-21: Throttle + state.axes[2] = map(bits(16, 6), 0, 63, 0, 1023); + + // bit 22-29: buttons 1-8 + state.buttons = ~bits(22, 8); + + return true; + } +}; + +inline const Joystick::Description &Sidewinder::getDescription() const { + switch (m_model) { + case Model::SW_GAMEPAD: + return Decoder::getDescription(); + case Model::SW_3D_PRO: + return Decoder::getDescription(); + case Model::SW_PRECISION_PRO: + return Decoder::getDescription(); + case Model::SW_FORCE_FEEDBACK_PRO: + return Decoder::getDescription(); + case Model::SW_FORCE_FEEDBACK_WHEEL: + return Decoder::getDescription(); + default: + return Decoder::getDescription(); + } +} + +inline bool Sidewinder::decode(const Packet &packet, State &state) const { + switch (m_model) { + case Model::SW_GAMEPAD: + return Decoder::decode(packet, state); + case Model::SW_3D_PRO: + return Decoder::decode(packet, state); + case Model::SW_PRECISION_PRO: + return Decoder::decode(packet, state); + case Model::SW_FORCE_FEEDBACK_PRO: + return Decoder::decode(packet, state); + case Model::SW_FORCE_FEEDBACK_WHEEL: + return Decoder::decode(packet, state); + default: + return Decoder::decode(packet, state); + } +} diff --git a/firmware/gameport-adapter/ThrustMaster.h b/firmware/gameport-adapter/ThrustMaster.h new file mode 100644 index 0000000..fa472ec --- /dev/null +++ b/firmware/gameport-adapter/ThrustMaster.h @@ -0,0 +1,76 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include "AnalogJoystick.h" +#include "Joystick.h" + +class ThrustMaster : public Joystick { +public: + + const Description &getDescription() const override { + static const Description description{"ThrustMaster", 3, 4, 1}; + return description; + } + + const State &getState() const override { + return m_state; + } + + bool init() override { + return true; + } + + bool update() override { + + // Unfortunately I had no real ThrustMaster joystick to test, but + // Sidewinder 3D Pro has an emulation for ThrustMaster. So, this + // implementation was made using that emulation and could be wrong. + // However the ThrustMaster seem to have a strange hat switch. It is + // encoded using the 3rd axis with values between 0 and 512, where + // 0-127 is up, 128-255 is right, 256-383 is down and 384-479 is left. + // Everything above 480 considered to be middle. + const auto hat = [](uint16_t value) -> uint8_t { + if (value < 128) { + return 1; + } + if (value < 256) { + return 3; + } + if (value < 384) { + return 5; + } + if (value < 480) { + return 7; + } + return 0; + }; + + for (auto i = 0u; i < 3; i++) { + m_state.axes[i] = m_joystick.getAxis(i); + } + m_state.hat = hat(m_joystick.getAxis(3)); + m_state.buttons = m_joystick.getButtons(); + + return true; + } + +private: + AnalogJoystick m_joystick; + State m_state; +}; + diff --git a/firmware/gameport-adapter/Utilities.h b/firmware/gameport-adapter/Utilities.h new file mode 100644 index 0000000..36ed8e4 --- /dev/null +++ b/firmware/gameport-adapter/Utilities.h @@ -0,0 +1,61 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#pragma once + +#include +#include +#include + +/// Debug messages on serial port are turned off by default. Comment the following +/// line to enable logging to the serial port. +/// Arduino Micro seems somehow to share the serial port with the USB interface. +/// If the serial port will be activated, the operating system will no longer +/// recognize the USB device! +#define NDEBUG + +#ifdef NDEBUG +#define initLog() +#define log(...) +#else +inline void initLog() { + Serial.begin(9600); + while(!Serial); +} + +inline void log(const char *fmt, ...) { + va_list args; + va_start(args, fmt); + char buffer[512]; + vsnprintf(buffer, sizeof(buffer), fmt, args); + va_end(args); + Serial.println(buffer); +} +#endif // !NDEBUG + +/// Interrupt guard (RAII). +/// +/// This class is used to deactivate the interrupts in performance +/// critical sections. The interrupt is reactivated as soon as this +/// guard runs out of scope. +struct InterruptStopper { + InterruptStopper() { noInterrupts(); } + ~InterruptStopper() { interrupts(); } + InterruptStopper(const InterruptStopper&) = delete; + InterruptStopper(InterruptStopper&&) = delete; + InterruptStopper& operator=(const InterruptStopper&) = delete; + InterruptStopper& operator=(InterruptStopper&&) = delete; +}; diff --git a/firmware/gameport-adapter/gameport-adapter.ino b/firmware/gameport-adapter/gameport-adapter.ino new file mode 100644 index 0000000..cff6fc7 --- /dev/null +++ b/firmware/gameport-adapter/gameport-adapter.ino @@ -0,0 +1,79 @@ +// This file is part of Necroware's GamePort adapter firmware. +// Copyright (C) 2021 Necroware +// +// 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 . + +#include "DigitalPin.h" +#include "HidJoystick.h" + +#include "CHFlightstickPro.h" +#include "CHF16CombatStick.h" +#include "GenericJoystick.h" +#include "GrIP.h" +#include "Logitech.h" +#include "Sidewinder.h" +#include "ThrustMaster.h" + +static Joystick *createJoystick() { + + const auto sw1 = DigitalInput<14, true>{}; + const auto sw2 = DigitalInput<15, true>{}; + const auto sw3 = DigitalInput<20, true>{}; + const auto sw4 = DigitalInput<21, true>{}; + + // Give some time to setup the input + delay(1); + + const auto sw = !sw4 << 3 | !sw3 << 2 | !sw2 << 1 | !sw1; + + switch (sw) { + case 0b0001: + return new GenericJoystick<2,4>; + case 0b0010: + return new GenericJoystick<3,4>; + case 0b0011: + return new GenericJoystick<4,4>; + case 0b0100: + return new CHFlightstickPro; + case 0b0101: + return new ThrustMaster; + case 0b0110: + return new CHF16CombatStick; + case 0b0111: + return new Sidewinder; + case 0b1000: + return new GrIP; + case 0b1001: + return new Logitech; + default: + return new GenericJoystick<2,2>; + } +} + +void setup() { + // DEBUG information: Debugging is turned off by default + // Comment the "NDEBUG" line in "Utilities.h" to enable logging to the serial monitor + initLog(); +} + +void loop() { + + static auto hidJoystick = [] { + HidJoystick hidJoystick; + hidJoystick.init(createJoystick()); + return hidJoystick; + }(); + + hidJoystick.update(); +} diff --git a/kicad/fp-info-cache b/kicad/fp-info-cache new file mode 100644 index 0000000..573541a --- /dev/null +++ b/kicad/fp-info-cache @@ -0,0 +1 @@ +0 diff --git a/kicad/fp-lib-table b/kicad/fp-lib-table new file mode 100644 index 0000000..97acde6 --- /dev/null +++ b/kicad/fp-lib-table @@ -0,0 +1,3 @@ +(fp_lib_table + (lib (name Necroware)(type KiCad)(uri ${KIPRJMOD}/lib/Necroware.pretty)(options "")(descr "")) +) diff --git a/kicad/gameport-adapter.kicad_pcb b/kicad/gameport-adapter.kicad_pcb new file mode 100644 index 0000000..a574662 --- /dev/null +++ b/kicad/gameport-adapter.kicad_pcb @@ -0,0 +1,11121 @@ +(kicad_pcb (version 20211014) (generator pcbnew) + + (general + (thickness 1.6) + ) + + (paper "A4") + (title_block + (title "GamePort Adapter") + (date "2022-01-07") + (rev "0.2.1") + (company "Necroware") + (comment 1 "by Scorp") + ) + + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + ) + + (setup + (pad_to_mask_clearance 0) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (disableapertmacros false) + (usegerberextensions false) + (usegerberattributes false) + (usegerberadvancedattributes true) + (creategerberjobfile true) + (svguseinch false) + (svgprecision 6) + (excludeedgelayer true) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (dxfpolygonmode true) + (dxfimperialunits true) + (dxfusepcbnewfont true) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (sketchpadsonfab false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 0) + (scaleselection 1) + (outputdirectory "./gerber") + ) + ) + + (net 0 "") + (net 1 "VCC") + (net 2 "GND") + (net 3 "Button_4") + (net 4 "Button_3") + (net 5 "AxisY_2") + (net 6 "Button_2") + (net 7 "AxisX_2") + (net 8 "Button_1") + (net 9 "AxisY_1") + (net 10 "AxisX_1") + (net 11 "MIDI_RXD") + (net 12 "MIDI_TXD") + (net 13 "SW3") + (net 14 "SW2") + (net 15 "SW1") + (net 16 "SW4") + + (footprint "Connector_Dsub:DSUB-15_Female_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm" (layer "F.Cu") + (tedit 59FEDEE2) (tstamp 00000000-0000-0000-0000-00005ff79d30) + (at 111.633 78.486 90) + (descr "15-pin D-Sub connector, horizontal/angled (90 deg), THT-mount, female, pitch 2.77x2.84mm, pin-PCB-offset 7.699999999999999mm, distance of mounting holes 33.3mm, distance of mounting holes to PCB edge 9.12mm, see https://disti-assets.s3.amazonaws.com/tonar/files/datasheets/16730.pdf") + (tags "15-pin D-Sub connector horizontal angled 90deg THT female pitch 2.77x2.84mm pin-PCB-offset 7.699999999999999mm mounting-holes-distance 33.3mm mounting-hole-offset 33.3mm") + (path "/00000000-0000-0000-0000-00005fb67ac2") + (attr through_hole) + (fp_text reference "CONN1" (at -10.668 6.985 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4dc69300-0844-462f-8e9c-c9ae8dd39c2b) + ) + (fp_text value "GamePort" (at -9.695 18.61 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp fd99e837-7b8a-482b-b878-21fc3114a13c) + ) + (fp_text user "${REFERENCE}" (at -9.695 14.025 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a28524a7-c538-42a4-9cf4-56d1105d6227) + ) + (fp_line (start -29.355 10.48) (end -29.355 -1.86) (layer "F.SilkS") (width 0.12) (tstamp 3fd02f33-6d57-49c4-a650-5f0918995b31)) + (fp_line (start 9.965 -1.86) (end 9.965 10.48) (layer "F.SilkS") (width 0.12) (tstamp 96a6d0e7-4dd7-42d7-89ed-cb064bf556fb)) + (fp_line (start -0.25 -2.754338) (end 0.25 -2.754338) (layer "F.SilkS") (width 0.12) (tstamp dfdb48fe-7068-4058-bae5-315aec0a0af3)) + (fp_line (start 0 -2.321325) (end -0.25 -2.754338) (layer "F.SilkS") (width 0.12) (tstamp ebca4f01-a2a7-4107-85a1-4c76ee76ffc5)) + (fp_line (start 0.25 -2.754338) (end 0 -2.321325) (layer "F.SilkS") (width 0.12) (tstamp f2b28e2b-a300-4c9c-93fc-2f408d805c71)) + (fp_line (start -29.355 -1.86) (end 9.965 -1.86) (layer "F.SilkS") (width 0.12) (tstamp f7e35b5e-e6ca-4c07-a5d5-5faf5b1b2668)) + (fp_line (start -29.8 -2.35) (end -29.8 17.65) (layer "F.CrtYd") (width 0.05) (tstamp 1bd2fe97-372f-418a-be4a-2b5732929d94)) + (fp_line (start -29.8 17.65) (end 10.45 17.65) (layer "F.CrtYd") (width 0.05) (tstamp 3e9eb073-9447-4b8f-8cd8-62b73f569a87)) + (fp_line (start 10.45 -2.35) (end -29.8 -2.35) (layer "F.CrtYd") (width 0.05) (tstamp b3032ce2-14c2-4a66-a612-539a5817611a)) + (fp_line (start 10.45 17.65) (end 10.45 -2.35) (layer "F.CrtYd") (width 0.05) (tstamp d5450649-9a89-4d2f-9a34-46a2f504f776)) + (fp_line (start 5.355 10.54) (end 5.355 1.42) (layer "F.Fab") (width 0.1) (tstamp 09a8ee1d-bee1-45b8-8415-4017c8fe73de)) + (fp_line (start -21.995 10.94) (end -21.995 17.11) (layer "F.Fab") (width 0.1) (tstamp 0a3a003d-bdfa-4a01-b059-8eb568a86223)) + (fp_line (start 9.905 10.94) (end 9.905 10.54) (layer "F.Fab") (width 0.1) (tstamp 0aa459fa-a860-494f-817b-6b747e3e0a54)) + (fp_line (start 2.605 10.94) (end -21.995 10.94) (layer "F.Fab") (width 0.1) (tstamp 3fdb2571-b292-499f-96df-337a49cc61e5)) + (fp_line (start -23.845 10.94) (end -28.845 10.94) (layer "F.Fab") (width 0.1) (tstamp 42b13a07-c92b-4597-a836-9df9867b0585)) + (fp_line (start -24.745 10.54) (end -24.745 1.42) (layer "F.Fab") (width 0.1) (tstamp 435ae7e9-5347-41e2-a6c3-a5cf56069042)) + (fp_line (start -29.295 10.54) (end -29.295 10.94) (layer "F.Fab") (width 0.1) (tstamp 4adb0775-bea7-476e-8aab-803e3a5f8aee)) + (fp_line (start 2.605 17.11) (end 2.605 10.94) (layer "F.Fab") (width 0.1) (tstamp 4ff6fc6f-e670-46c0-bc30-1b9a87161f0c)) + (fp_line (start -28.845 15.94) (end -23.845 15.94) (layer "F.Fab") (width 0.1) (tstamp 5329f855-e302-4112-8125-a7b70fb032a0)) + (fp_line (start 9.905 -1.8) (end -29.295 -1.8) (layer "F.Fab") (width 0.1) (tstamp 70734bfc-3bae-4bf0-b530-ac27d3ec87f6)) + (fp_line (start -29.295 10.54) (end 9.905 10.54) (layer "F.Fab") (width 0.1) (tstamp 74c887e8-2460-4890-9514-95e4d172c0bf)) + (fp_line (start 8.555 10.54) (end 8.555 1.42) (layer "F.Fab") (width 0.1) (tstamp 8b7d1cda-516e-4f48-90c8-2e5a4fbe4ab8)) + (fp_line (start 9.905 10.54) (end -29.295 10.54) (layer "F.Fab") (width 0.1) (tstamp 8e3f8180-d561-4220-9ce3-d2394d4cff0e)) + (fp_line (start 9.455 15.94) (end 9.455 10.94) (layer "F.Fab") (width 0.1) (tstamp 8fe7a01e-b4f6-43e8-989f-ee7204d00b41)) + (fp_line (start -29.295 10.94) (end 9.905 10.94) (layer "F.Fab") (width 0.1) (tstamp 915d6276-fdbb-4d21-8a97-a87138da4f03)) + (fp_line (start 4.455 15.94) (end 9.455 15.94) (layer "F.Fab") (width 0.1) (tstamp 9430d7de-cce8-43ba-b40e-b9348e091cd1)) + (fp_line (start -21.995 17.11) (end 2.605 17.11) (layer "F.Fab") (width 0.1) (tstamp a041eb99-684c-4dfd-bc8d-24ba7172ac07)) + (fp_line (start 9.905 10.54) (end 9.905 -1.8) (layer "F.Fab") (width 0.1) (tstamp cb5b4280-fa43-4cd8-880a-59df86181a71)) + (fp_line (start 4.455 10.94) (end 4.455 15.94) (layer "F.Fab") (width 0.1) (tstamp cd519a60-042f-4dcb-a2dd-1f74ce7e34f5)) + (fp_line (start -27.945 10.54) (end -27.945 1.42) (layer "F.Fab") (width 0.1) (tstamp d41ed9b0-2033-4b56-b0f0-0c51956543d5)) + (fp_line (start -23.845 15.94) (end -23.845 10.94) (layer "F.Fab") (width 0.1) (tstamp dc17e2ca-2f67-49f8-868b-cbbbd2fbe084)) + (fp_line (start -28.845 10.94) (end -28.845 15.94) (layer "F.Fab") (width 0.1) (tstamp de553bbb-603f-4f18-bd63-23bfb4e4fe70)) + (fp_line (start 9.455 10.94) (end 4.455 10.94) (layer "F.Fab") (width 0.1) (tstamp f0fc953e-1322-4d79-b6dd-f3ce950303ce)) + (fp_line (start -29.295 -1.8) (end -29.295 10.54) (layer "F.Fab") (width 0.1) (tstamp f79fd16d-0017-4424-8dd4-b54b9ffb06c5)) + (fp_arc (start -27.945 1.42) (mid -26.345 -0.18) (end -24.745 1.42) (layer "F.Fab") (width 0.1) (tstamp 95642b86-4ad0-432c-a7d5-666dfd0d6ade)) + (fp_arc (start 5.355 1.42) (mid 6.955 -0.18) (end 8.555 1.42) (layer "F.Fab") (width 0.1) (tstamp b2ed3e04-6ec5-4e31-aa09-d55130d40c5b)) + (pad "0" thru_hole circle locked (at -26.345 1.42 90) (size 4 4) (drill 3.2) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp d8747ffc-c8c7-4d64-9881-c0d9f30d1894)) + (pad "0" thru_hole circle locked (at 6.955 1.42 90) (size 4 4) (drill 3.2) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp fa1842be-9137-4bd8-b0ca-9e4a349fb737)) + (pad "1" thru_hole rect locked (at 0 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 1 "VCC") (tstamp 498db93d-c7a3-43a9-adbc-64b9ff646851)) + (pad "2" thru_hole circle locked (at -2.77 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 8 "Button_1") (tstamp a6e6f3fe-cb36-411d-9926-cbf9e40512b5)) + (pad "3" thru_hole circle locked (at -5.54 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 10 "AxisX_1") (tstamp 4f9cf489-d748-4237-b5a5-bd328e089e59)) + (pad "4" thru_hole circle locked (at -8.31 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp ca84c47c-6171-4b1a-8ad9-a1b1a7d9bb30)) + (pad "5" thru_hole circle locked (at -11.08 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 2358b835-2d3c-407c-8984-c9f27133e886)) + (pad "6" thru_hole circle locked (at -13.85 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 9 "AxisY_1") (tstamp 9410a5b9-28be-451b-a987-464c2fb56ef9)) + (pad "7" thru_hole circle locked (at -16.62 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 6 "Button_2") (tstamp 9aa1ea9d-e10c-4692-be9d-b0737b99939b)) + (pad "8" thru_hole circle locked (at -19.39 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 1 "VCC") (tstamp 65b6e29c-a768-4563-a427-8652f82422f7)) + (pad "9" thru_hole circle locked (at -1.385 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 1 "VCC") (tstamp 5bf492cb-f15d-4def-aa46-2c60d70201ff)) + (pad "10" thru_hole circle locked (at -4.155 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 4 "Button_3") (tstamp 6981600e-a98a-440d-9b13-405249467bca)) + (pad "11" thru_hole circle locked (at -6.925 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 7 "AxisX_2") (tstamp abc6cd6e-e911-47d9-940f-71f730a1979d)) + (pad "12" thru_hole circle locked (at -9.695 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 12 "MIDI_TXD") (tstamp a3bc5821-677e-4889-942b-80f25ab17925)) + (pad "13" thru_hole circle locked (at -12.465 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 5 "AxisY_2") (tstamp 496c9a8f-a445-4931-8d22-9494c6d72449)) + (pad "14" thru_hole circle locked (at -15.235 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 3 "Button_4") (tstamp 7d83b938-cbe3-4bc3-956d-4a956b87804a)) + (pad "15" thru_hole circle locked (at -18.005 2.84 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 11 "MIDI_RXD") (tstamp aab6351c-10d0-47d6-8345-2a0ae49e281d)) + (model "${KISYS3DMOD}/Connector_Dsub.3dshapes/DSUB-15_Female_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal" (layer "F.Cu") + (tedit 5AE5139B) (tstamp 00000000-0000-0000-0000-0000604bd736) + (at 85.217 87.63) + (descr "Resistor, Axial_DIN0204 series, Axial, Horizontal, pin pitch=7.62mm, 0.167W, length*diameter=3.6*1.6mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0204 series Axial Horizontal pin pitch 7.62mm 0.167W length 3.6mm diameter 1.6mm") + (path "/00000000-0000-0000-0000-0000604be4d6") + (attr through_hole) + (fp_text reference "R2" (at -1.905 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5082e480-2c17-49f0-bc73-bd4261550cbe) + ) + (fp_text value "100k" (at 3.81 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp fbe9e7a1-8045-46ee-a1d2-f908bea8468b) + ) + (fp_text user "${REFERENCE}" (at 3.81 0) (layer "F.Fab") + (effects (font (size 0.72 0.72) (thickness 0.108))) + (tstamp 4ba051eb-f958-450e-befd-c9efd3e4c8c2) + ) + (fp_line (start 1.89 -0.92) (end 1.89 0.92) (layer "F.SilkS") (width 0.12) (tstamp 086cfb88-910d-40a0-b214-b52e7d71d934)) + (fp_line (start 1.89 0.92) (end 5.73 0.92) (layer "F.SilkS") (width 0.12) (tstamp 0f7bcb75-4a48-4821-b446-12915ef2f351)) + (fp_line (start 5.73 0.92) (end 5.73 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 5885e1bb-3e6e-4ddb-80bb-d979173de8d5)) + (fp_line (start 6.68 0) (end 5.73 0) (layer "F.SilkS") (width 0.12) (tstamp b3568e9b-c186-4e6e-a189-9307639b97ad)) + (fp_line (start 5.73 -0.92) (end 1.89 -0.92) (layer "F.SilkS") (width 0.12) (tstamp e4235bbe-1e64-4127-a23d-3feb42063d1e)) + (fp_line (start 0.94 0) (end 1.89 0) (layer "F.SilkS") (width 0.12) (tstamp fffd63ce-7342-4fd8-a299-6ba6b127aba1)) + (fp_line (start 8.57 -1.05) (end -0.95 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp 38eda70e-36b7-49dd-9541-db89f18e206d)) + (fp_line (start -0.95 -1.05) (end -0.95 1.05) (layer "F.CrtYd") (width 0.05) (tstamp 8b63a6ae-92a9-4e4a-b411-d3778f014a26)) + (fp_line (start -0.95 1.05) (end 8.57 1.05) (layer "F.CrtYd") (width 0.05) (tstamp ddb47b08-97c8-476b-9f85-d3d3dda62861)) + (fp_line (start 8.57 1.05) (end 8.57 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp ffa8f6de-c05f-4858-834e-766ce5ff32d1)) + (fp_line (start 0 0) (end 2.01 0) (layer "F.Fab") (width 0.1) (tstamp 3ff92208-baa9-4a30-af73-f35a6621cb7d)) + (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp 6bb7318e-4fe7-4711-9c44-4e51cc39691f)) + (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp 79c50160-98b0-4227-8bbe-cf8250f7defe)) + (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp 88e1d159-447c-4b74-a455-ec2b5593d238)) + (fp_line (start 2.01 0.8) (end 5.61 0.8) (layer "F.Fab") (width 0.1) (tstamp c6e81ce5-37b7-444d-8c96-f842c922b712)) + (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp d4a451ca-301f-4dab-9557-7408c8c62397)) + (pad "1" thru_hole circle locked (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp e5348dfd-59e7-449d-8e63-e8652b3c1334)) + (pad "2" thru_hole oval locked (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 10 "AxisX_1") (tstamp ae4df27b-3530-49ec-8a36-c61d9e6cc158)) + (model "${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal" (layer "F.Cu") + (tedit 5AE5139B) (tstamp 00000000-0000-0000-0000-0000604bd74d) + (at 92.837 89.916 180) + (descr "Resistor, Axial_DIN0204 series, Axial, Horizontal, pin pitch=7.62mm, 0.167W, length*diameter=3.6*1.6mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0204 series Axial Horizontal pin pitch 7.62mm 0.167W length 3.6mm diameter 1.6mm") + (path "/00000000-0000-0000-0000-0000604c20f3") + (attr through_hole) + (fp_text reference "R3" (at 9.525 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 3030c04a-4786-4d49-9960-26b29f391324) + ) + (fp_text value "100k" (at 3.81 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 37327772-184c-4e65-baea-1611e3cb1746) + ) + (fp_text user "${REFERENCE}" (at 3.81 0) (layer "F.Fab") + (effects (font (size 0.72 0.72) (thickness 0.108))) + (tstamp 20ec86cc-5c58-4b11-9922-b28e51b159f1) + ) + (fp_line (start 1.89 0.92) (end 5.73 0.92) (layer "F.SilkS") (width 0.12) (tstamp 06a7921a-0b88-4193-a3e9-5cdad04ec0a0)) + (fp_line (start 6.68 0) (end 5.73 0) (layer "F.SilkS") (width 0.12) (tstamp 0d388700-6285-4d85-bef0-44f6df9e9b4d)) + (fp_line (start 5.73 -0.92) (end 1.89 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 76c7b109-0a25-4139-8bb3-50dd612f4820)) + (fp_line (start 5.73 0.92) (end 5.73 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 905926df-8d25-4665-8fbc-2116de03dda2)) + (fp_line (start 1.89 -0.92) (end 1.89 0.92) (layer "F.SilkS") (width 0.12) (tstamp c7338415-2202-4d53-a368-2cf80798588d)) + (fp_line (start 0.94 0) (end 1.89 0) (layer "F.SilkS") (width 0.12) (tstamp de703829-07bc-4f83-8510-7133ec8383fc)) + (fp_line (start 8.57 1.05) (end 8.57 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp 084effc4-385a-4661-a929-006ffb048660)) + (fp_line (start -0.95 1.05) (end 8.57 1.05) (layer "F.CrtYd") (width 0.05) (tstamp 1b233237-d896-41a7-b936-9018ed43d397)) + (fp_line (start 8.57 -1.05) (end -0.95 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp b056dda9-40a1-4309-873a-a626bc7b8b4d)) + (fp_line (start -0.95 -1.05) (end -0.95 1.05) (layer "F.CrtYd") (width 0.05) (tstamp bc9f5ba6-8d30-4f0c-b54c-d771a41fc07a)) + (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp 02664976-794d-40b6-8f84-9e5f5d3f040e)) + (fp_line (start 0 0) (end 2.01 0) (layer "F.Fab") (width 0.1) (tstamp 180db2b9-1ab0-48b4-9de0-b2c4f80b1805)) + (fp_line (start 2.01 0.8) (end 5.61 0.8) (layer "F.Fab") (width 0.1) (tstamp 40bb4fe1-7e66-44bd-9437-6694ab4baf0b)) + (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp 5864594b-d54b-4c9e-8d74-a35038ef06bc)) + (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp 643f848e-925c-471b-8243-c2595b8af5a2)) + (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp 84be5cc7-4bcf-4572-a9b2-7173f8e0a4f1)) + (pad "1" thru_hole circle locked (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 9 "AxisY_1") (tstamp 99d9f2e0-5027-4b68-8174-676edce3146d)) + (pad "2" thru_hole oval locked (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 8e1250c3-8fca-4f85-a956-5c6701ee5b2b)) + (model "${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal" (layer "F.Cu") + (tedit 5AE5139B) (tstamp 00000000-0000-0000-0000-0000604bd764) + (at 85.217 92.202) + (descr "Resistor, Axial_DIN0204 series, Axial, Horizontal, pin pitch=7.62mm, 0.167W, length*diameter=3.6*1.6mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0204 series Axial Horizontal pin pitch 7.62mm 0.167W length 3.6mm diameter 1.6mm") + (path "/00000000-0000-0000-0000-0000604c282a") + (attr through_hole) + (fp_text reference "R4" (at -1.905 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp a0c36e46-13d5-49fb-8af9-201b1c1d76e2) + ) + (fp_text value "100k" (at 3.81 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 207a7627-fddb-4e7d-ae2b-46039bfa2e33) + ) + (fp_text user "${REFERENCE}" (at 3.81 0) (layer "F.Fab") + (effects (font (size 0.72 0.72) (thickness 0.108))) + (tstamp cd144e6e-b31a-41e5-a491-ff61563baf01) + ) + (fp_line (start 0.94 0) (end 1.89 0) (layer "F.SilkS") (width 0.12) (tstamp 53815e5e-18d2-4aa2-9b7d-9f171c6c57d4)) + (fp_line (start 6.68 0) (end 5.73 0) (layer "F.SilkS") (width 0.12) (tstamp 57cb94bc-9079-4720-afeb-3a4e0e295003)) + (fp_line (start 5.73 -0.92) (end 1.89 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 5a3928b2-3656-48e1-80d6-2cfd33e10fda)) + (fp_line (start 1.89 -0.92) (end 1.89 0.92) (layer "F.SilkS") (width 0.12) (tstamp 7009e3bf-8375-43d7-8949-fd5f36a8c61a)) + (fp_line (start 5.73 0.92) (end 5.73 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 9d8c90b7-71ba-447f-b65f-b74358074215)) + (fp_line (start 1.89 0.92) (end 5.73 0.92) (layer "F.SilkS") (width 0.12) (tstamp f6c68e1a-f0b8-4709-9aef-cd7f2ed122fa)) + (fp_line (start -0.95 1.05) (end 8.57 1.05) (layer "F.CrtYd") (width 0.05) (tstamp 55a9d356-9a24-4ae0-9182-9c0a8e3cf90c)) + (fp_line (start 8.57 1.05) (end 8.57 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp 8b7382b2-674a-473a-9f4c-88c37d753512)) + (fp_line (start -0.95 -1.05) (end -0.95 1.05) (layer "F.CrtYd") (width 0.05) (tstamp a87cc92d-2ed2-4551-b3dc-1d34e70211aa)) + (fp_line (start 8.57 -1.05) (end -0.95 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp f6f570fa-b1fe-4981-90cf-8b096cd13182)) + (fp_line (start 0 0) (end 2.01 0) (layer "F.Fab") (width 0.1) (tstamp 155afc5a-b178-4128-82f1-883541ba5377)) + (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp 1a4a8537-5016-438b-bf0a-d22117959c2e)) + (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp 35aca8ff-b215-4f3d-b075-6e9d90c38a70)) + (fp_line (start 2.01 0.8) (end 5.61 0.8) (layer "F.Fab") (width 0.1) (tstamp 4de287e5-12a8-47d4-a60f-3edf2200be92)) + (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp cc52707d-0704-46eb-8768-a8f901b9a3c9)) + (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp f59b60e5-0891-4148-928d-ba669fb25e3d)) + (pad "1" thru_hole circle locked (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp ba1a44f9-99f2-42d6-bb01-227a92aa284e)) + (pad "2" thru_hole oval locked (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 5 "AxisY_2") (tstamp e99f1de5-2d72-4faf-b971-a352c8fdc872)) + (model "${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal" (layer "F.Cu") + (tedit 5AE5139B) (tstamp 00000000-0000-0000-0000-0000604bf205) + (at 92.837 85.344 180) + (descr "Resistor, Axial_DIN0204 series, Axial, Horizontal, pin pitch=7.62mm, 0.167W, length*diameter=3.6*1.6mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") + (tags "Resistor Axial_DIN0204 series Axial Horizontal pin pitch 7.62mm 0.167W length 3.6mm diameter 1.6mm") + (path "/00000000-0000-0000-0000-0000604bcfe5") + (attr through_hole) + (fp_text reference "R1" (at 9.525 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 97053a21-0334-4893-9aa2-d6bd08eb9386) + ) + (fp_text value "100k" (at 3.81 0) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4a7f271d-b122-4e97-aa1f-62ff56998b48) + ) + (fp_text user "${REFERENCE}" (at 3.81 0) (layer "F.Fab") + (effects (font (size 0.72 0.72) (thickness 0.108))) + (tstamp 276ee1db-5f23-400b-a59d-e21c47b91514) + ) + (fp_line (start 1.89 0.92) (end 5.73 0.92) (layer "F.SilkS") (width 0.12) (tstamp 0ca9eefc-b941-4bb4-aec8-8cae76afb1ac)) + (fp_line (start 5.73 -0.92) (end 1.89 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 44e30955-f064-4a84-a982-a797ee88f9d6)) + (fp_line (start 0.94 0) (end 1.89 0) (layer "F.SilkS") (width 0.12) (tstamp 4ea4215d-e402-46e8-b0c0-7d4df3bb6024)) + (fp_line (start 5.73 0.92) (end 5.73 -0.92) (layer "F.SilkS") (width 0.12) (tstamp 7b7f24d6-ede0-4582-af46-630f3753db30)) + (fp_line (start 1.89 -0.92) (end 1.89 0.92) (layer "F.SilkS") (width 0.12) (tstamp 9d002c46-fc4c-4853-8535-ad87ae5d1a87)) + (fp_line (start 6.68 0) (end 5.73 0) (layer "F.SilkS") (width 0.12) (tstamp cf1655d7-bbdb-4bfa-89b7-9fba439045b3)) + (fp_line (start 8.57 -1.05) (end -0.95 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp 0029ea89-7e9c-417a-b197-2fd9b6a11b70)) + (fp_line (start -0.95 -1.05) (end -0.95 1.05) (layer "F.CrtYd") (width 0.05) (tstamp 909170e8-9132-4a94-97b9-4efb2f2096ac)) + (fp_line (start -0.95 1.05) (end 8.57 1.05) (layer "F.CrtYd") (width 0.05) (tstamp c86b4667-f7ca-4e91-96ba-8e853ed4733f)) + (fp_line (start 8.57 1.05) (end 8.57 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp fdea55db-05e8-443c-807b-840c56283188)) + (fp_line (start 2.01 0.8) (end 5.61 0.8) (layer "F.Fab") (width 0.1) (tstamp 16b4ed92-b880-4c2c-bd2b-e0578bda51da)) + (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp 177e0ac8-88c2-4d1a-94a1-798dea9d3a89)) + (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp 1cb9bde2-6c91-4da6-a07f-276f80001212)) + (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp 4f964b0e-2c01-4173-9958-6578f4f40007)) + (fp_line (start 0 0) (end 2.01 0) (layer "F.Fab") (width 0.1) (tstamp e71ab7c9-8392-4c26-b56a-63ac005700a3)) + (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp fd1153ae-620a-424c-86a0-72680e565b3b)) + (pad "1" thru_hole circle locked (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 7 "AxisX_2") (tstamp 451b3786-1402-4b9d-ae61-8e6923532f37)) + (pad "2" thru_hole oval locked (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 2791172f-3dc5-4c80-934a-ea621f478e96)) + (model "${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Symbol:OSHW-Symbol_6.7x6mm_Copper" (layer "F.Cu") + (tedit 6065E847) (tstamp 00000000-0000-0000-0000-00006065ed26) + (at 90.932 75.184) + (descr "Open Source Hardware Symbol") + (tags "Logo Symbol OSHW") + (attr exclude_from_pos_files exclude_from_bom) + (fp_text reference "REF**" (at 0 0) (layer "F.SilkS") hide + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 424bd26f-4ff6-4fe3-b3d0-bd31c2f63992) + ) + (fp_text value "OSHW-Symbol_6.7x6mm_Copper" (at 0.75 0) (layer "F.Fab") hide + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 666e1d65-dbc7-4779-88ae-5eff529fb71e) + ) + (fp_poly (pts + (xy 0.555814 -2.531069) + (xy 0.639635 -2.086445) + (xy 0.94892 -1.958947) + (xy 1.258206 -1.831449) + (xy 1.629246 -2.083754) + (xy 1.733157 -2.154004) + (xy 1.827087 -2.216728) + (xy 1.906652 -2.269062) + (xy 1.96747 -2.308143) + (xy 2.005157 -2.331107) + (xy 2.015421 -2.336058) + (xy 2.03391 -2.323324) + (xy 2.07342 -2.288118) + (xy 2.129522 -2.234938) + (xy 2.197787 -2.168282) + (xy 2.273786 -2.092646) + (xy 2.353092 -2.012528) + (xy 2.431275 -1.932426) + (xy 2.503907 -1.856836) + (xy 2.566559 -1.790255) + (xy 2.614803 -1.737182) + (xy 2.64421 -1.702113) + (xy 2.651241 -1.690377) + (xy 2.641123 -1.66874) + (xy 2.612759 -1.621338) + (xy 2.569129 -1.552807) + (xy 2.513218 -1.467785) + (xy 2.448006 -1.370907) + (xy 2.410219 -1.31565) + (xy 2.341343 -1.214752) + (xy 2.28014 -1.123701) + (xy 2.229578 -1.04703) + (xy 2.192628 -0.989272) + (xy 2.172258 -0.954957) + (xy 2.169197 -0.947746) + (xy 2.176136 -0.927252) + (xy 2.195051 -0.879487) + (xy 2.223087 -0.811168) + (xy 2.257391 -0.729011) + (xy 2.295109 -0.63973) + (xy 2.333387 -0.550042) + (xy 2.36937 -0.466662) + (xy 2.400206 -0.396306) + (xy 2.423039 -0.34569) + (xy 2.435017 -0.321529) + (xy 2.435724 -0.320578) + (xy 2.454531 -0.315964) + (xy 2.504618 -0.305672) + (xy 2.580793 -0.290713) + (xy 2.677865 -0.272099) + (xy 2.790643 -0.250841) + (xy 2.856442 -0.238582) + (xy 2.97695 -0.215638) + (xy 3.085797 -0.193805) + (xy 3.177476 -0.174278) + (xy 3.246481 -0.158252) + (xy 3.287304 -0.146921) + (xy 3.295511 -0.143326) + (xy 3.303548 -0.118994) + (xy 3.310033 -0.064041) + (xy 3.31497 0.015108) + (xy 3.318364 0.112026) + (xy 3.320218 0.220287) + (xy 3.320538 0.333465) + (xy 3.319327 0.445135) + (xy 3.31659 0.548868) + (xy 3.312331 0.638241) + (xy 3.306555 0.706826) + (xy 3.299267 0.748197) + (xy 3.294895 0.75681) + (xy 3.268764 0.767133) + (xy 3.213393 0.781892) + (xy 3.136107 0.799352) + (xy 3.04423 0.81778) + (xy 3.012158 0.823741) + (xy 2.857524 0.852066) + (xy 2.735375 0.874876) + (xy 2.641673 0.89308) + (xy 2.572384 0.907583) + (xy 2.523471 0.919292) + (xy 2.490897 0.929115) + (xy 2.470628 0.937956) + (xy 2.458626 0.946724) + (xy 2.456947 0.948457) + (xy 2.440184 0.976371) + (xy 2.414614 1.030695) + (xy 2.382788 1.104777) + (xy 2.34726 1.191965) + (xy 2.310583 1.285608) + (xy 2.275311 1.379052) + (xy 2.243996 1.465647) + (xy 2.219193 1.53874) + (xy 2.203454 1.591678) + (xy 2.199332 1.617811) + (xy 2.199676 1.618726) + (xy 2.213641 1.640086) + (xy 2.245322 1.687084) + (xy 2.291391 1.754827) + (xy 2.348518 1.838423) + (xy 2.413373 1.932982) + (xy 2.431843 1.959854) + (xy 2.497699 2.057275) + (xy 2.55565 2.146163) + (xy 2.602538 2.221412) + (xy 2.635207 2.27792) + (xy 2.6505 2.310581) + (xy 2.651241 2.314593) + (xy 2.638392 2.335684) + (xy 2.602888 2.377464) + (xy 2.549293 2.435445) + (xy 2.482171 2.505135) + (xy 2.406087 2.582045) + (xy 2.325604 2.661683) + (xy 2.245287 2.739561) + (xy 2.169699 2.811186) + (xy 2.103405 2.87207) + (xy 2.050969 2.917721) + (xy 2.016955 2.94365) + (xy 2.007545 2.947883) + (xy 1.985643 2.937912) + (xy 1.9408 2.91102) + (xy 1.880321 2.871736) + (xy 1.833789 2.840117) + (xy 1.749475 2.782098) + (xy 1.649626 2.713784) + (xy 1.549473 2.645579) + (xy 1.495627 2.609075) + (xy 1.313371 2.4858) + (xy 1.160381 2.56852) + (xy 1.090682 2.604759) + (xy 1.031414 2.632926) + (xy 0.991311 2.648991) + (xy 0.981103 2.651226) + (xy 0.968829 2.634722) + (xy 0.944613 2.588082) + (xy 0.910263 2.515609) + (xy 0.867588 2.421606) + (xy 0.818394 2.310374) + (xy 0.76449 2.186215) + (xy 0.707684 2.053432) + (xy 0.649782 1.916327) + (xy 0.592593 1.779202) + (xy 0.537924 1.646358) + (xy 0.487584 1.522098) + (xy 0.44338 1.410725) + (xy 0.407119 1.316539) + (xy 0.380609 1.243844) + (xy 0.365658 1.196941) + (xy 0.363254 1.180833) + (xy 0.382311 1.160286) + (xy 0.424036 1.126933) + (xy 0.479706 1.087702) + (xy 0.484378 1.084599) + (xy 0.628264 0.969423) + (xy 0.744283 0.835053) + (xy 0.83143 0.685784) + (xy 0.888699 0.525913) + (xy 0.915086 0.359737) + (xy 0.909585 0.191552) + (xy 0.87119 0.025655) + (xy 0.798895 -0.133658) + (xy 0.777626 -0.168513) + (xy 0.666996 -0.309263) + (xy 0.536302 -0.422286) + (xy 0.390064 -0.506997) + (xy 0.232808 -0.562806) + (xy 0.069057 -0.589126) + (xy -0.096667 -0.58537) + (xy -0.259838 -0.55095) + (xy -0.415935 -0.485277) + (xy -0.560433 -0.387765) + (xy -0.605131 -0.348187) + (xy -0.718888 -0.224297) + (xy -0.801782 -0.093876) + (xy -0.858644 0.052315) + (xy -0.890313 0.197088) + (xy -0.898131 0.35986) + (xy -0.872062 0.52344) + (xy -0.814755 0.682298) + (xy -0.728856 0.830906) + (xy -0.617014 0.963735) + (xy -0.481877 1.075256) + (xy -0.464117 1.087011) + (xy -0.40785 1.125508) + (xy -0.365077 1.158863) + (xy -0.344628 1.18016) + (xy -0.344331 1.180833) + (xy -0.348721 1.203871) + (xy -0.366124 1.256157) + (xy -0.394732 1.33339) + (xy -0.432735 1.431268) + (xy -0.478326 1.545491) + (xy -0.529697 1.671758) + (xy -0.585038 1.805767) + (xy -0.642542 1.943218) + (xy -0.700399 2.079808) + (xy -0.756802 2.211237) + (xy -0.809942 2.333205) + (xy -0.85801 2.441409) + (xy -0.899199 2.531549) + (xy -0.931699 2.599323) + (xy -0.953703 2.64043) + (xy -0.962564 2.651226) + (xy -0.98964 2.642819) + (xy -1.040303 2.620272) + (xy -1.105817 2.587613) + (xy -1.141841 2.56852) + (xy -1.294832 2.4858) + (xy -1.477088 2.609075) + (xy -1.570125 2.672228) + (xy -1.671985 2.741727) + (xy -1.767438 2.807165) + (xy -1.81525 2.840117) + (xy -1.882495 2.885273) + (xy -1.939436 2.921057) + (xy -1.978646 2.942938) + (xy -1.991381 2.947563) + (xy -2.009917 2.935085) + (xy -2.050941 2.900252) + (xy -2.110475 2.846678) + (xy -2.184542 2.777983) + (xy -2.269165 2.697781) + (xy -2.322685 2.646286) + (xy -2.416319 2.554286) + (xy -2.497241 2.471999) + (xy -2.562177 2.402945) + (xy -2.607858 2.350644) + (xy -2.631011 2.318616) + (xy -2.633232 2.312116) + (xy -2.622924 2.287394) + (xy -2.594439 2.237405) + (xy -2.550937 2.167212) + (xy -2.495577 2.081875) + (xy -2.43152 1.986456) + (xy -2.413303 1.959854) + (xy -2.346927 1.863167) + (xy -2.287378 1.776117) + (xy -2.237984 1.703595) + (xy -2.202075 1.650493) + (xy -2.182981 1.621703) + (xy -2.181136 1.618726) + (xy -2.183895 1.595782) + (xy -2.198538 1.545336) + (xy -2.222513 1.474041) + (xy -2.253266 1.388547) + (xy -2.288244 1.295507) + (xy -2.324893 1.201574) + (xy -2.360661 1.113399) + (xy -2.392994 1.037634) + (xy -2.419338 0.980931) + (xy -2.437142 0.949943) + (xy -2.438407 0.948457) + (xy -2.449294 0.939601) + (xy -2.467682 0.930843) + (xy -2.497606 0.921277) + (xy -2.543103 0.909996) + (xy -2.608209 0.896093) + (xy -2.696961 0.878663) + (xy -2.813393 0.856798) + (xy -2.961542 0.829591) + (xy -2.993618 0.823741) + (xy -3.088686 0.805374) + (xy -3.171565 0.787405) + (xy -3.23493 0.771569) + (xy -3.271458 0.7596) + (xy -3.276356 0.75681) + (xy -3.284427 0.732072) + (xy -3.290987 0.67679) + (xy -3.296033 0.597389) + (xy -3.299559 0.500296) + (xy -3.301561 0.391938) + (xy -3.302036 0.27874) + (xy -3.300977 0.167128) + (xy -3.298382 0.063529) + (xy -3.294246 -0.025632) + (xy -3.288563 -0.093928) + (xy -3.281331 -0.134934) + (xy -3.276971 -0.143326) + (xy -3.252698 -0.151792) + (xy -3.197426 -0.165565) + (xy -3.116662 -0.18345) + (xy -3.015912 -0.204252) + (xy -2.900683 -0.226777) + (xy -2.837902 -0.238582) + (xy -2.718787 -0.260849) + (xy -2.612565 -0.281021) + (xy -2.524427 -0.298085) + (xy -2.459566 -0.311031) + (xy -2.423174 -0.318845) + (xy -2.417184 -0.320578) + (xy -2.407061 -0.34011) + (xy -2.385662 -0.387157) + (xy -2.355839 -0.454997) + (xy -2.320445 -0.536909) + (xy -2.282332 -0.626172) + (xy -2.244353 -0.716065) + (xy -2.20936 -0.799865) + (xy -2.180206 -0.870853) + (xy -2.159743 -0.922306) + (xy -2.150823 -0.947503) + (xy -2.150657 -0.948604) + (xy -2.160769 -0.968481) + (xy -2.189117 -1.014223) + (xy -2.232723 -1.081283) + (xy -2.288606 -1.165116) + (xy -2.353787 -1.261174) + (xy -2.391679 -1.31635) + (xy -2.460725 -1.417519) + (xy -2.52205 -1.50937) + (xy -2.572663 -1.587256) + (xy -2.609571 -1.646531) + (xy -2.629782 -1.682549) + (xy -2.632701 -1.690623) + (xy -2.620153 -1.709416) + (xy -2.585463 -1.749543) + (xy -2.533063 -1.806507) + (xy -2.467384 -1.875815) + (xy -2.392856 -1.952969) + (xy -2.313913 -2.033475) + (xy -2.234983 -2.112837) + (xy -2.1605 -2.18656) + (xy -2.094894 -2.250148) + (xy -2.042596 -2.299106) + (xy -2.008039 -2.328939) + (xy -1.996478 -2.336058) + (xy -1.977654 -2.326047) + (xy -1.932631 -2.297922) + (xy -1.865787 -2.254546) + (xy -1.781499 -2.198782) + (xy -1.684144 -2.133494) + (xy -1.610707 -2.083754) + (xy -1.239667 -1.831449) + (xy -0.621095 -2.086445) + (xy -0.537275 -2.531069) + (xy -0.453454 -2.975693) + (xy 0.471994 -2.975693) + (xy 0.555814 -2.531069) + ) (layer "F.Mask") (width 0.01) (fill solid) (tstamp d48fe4b0-9557-4526-a0c9-3d262c926bd7)) + ) + + (footprint "Package_DIP:DIP-24_W15.24mm_Socket" (layer "F.Cu") + (tedit 5A02E8C5) (tstamp 00000000-0000-0000-0000-0000607e8134) + (at 80.137 96.393 90) + (descr "24-lead though-hole mounted DIP package, row spacing 15.24 mm (600 mils), Socket") + (tags "THT DIP DIL PDIP 2.54mm 15.24mm 600mil Socket") + (path "/00000000-0000-0000-0000-00005ff74419") + (attr through_hole) + (fp_text reference "U1" (at 7.874 0.635 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp f6097d68-5e04-4f02-96cb-cf4d53efccbd) + ) + (fp_text value "Arduino_Pro_Micro" (at 7.874 21.336 180) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0f053bc8-f66e-4941-9411-4d844da7ff15) + ) + (fp_text user "${REFERENCE}" (at 7.62 2.794 90) (layer "F.Fab") hide + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c68b69cf-7749-4212-bd62-9ac6b91c285f) + ) + (fp_line (start 1.16 29.27) (end 14.08 29.27) (layer "F.SilkS") (width 0.12) (tstamp 3ac7581f-d1ee-46e8-b0bb-b332c160a45d)) + (fp_line (start -1.33 -1.39) (end -1.33 29.33) (layer "F.SilkS") (width 0.12) (tstamp 5c1b52e2-f449-4064-bd71-211dc9a38774)) + (fp_line (start 1.16 -1.33) (end 1.16 29.27) (layer "F.SilkS") (width 0.12) (tstamp 8d9f621a-89e8-41ad-bd9d-0b6e28a1f131)) + (fp_line (start -1.33 29.33) (end 16.57 29.33) (layer "F.SilkS") (width 0.12) (tstamp 9bd59043-c756-468f-9bb3-64a6f858cbca)) + (fp_line (start 6.62 -1.33) (end 1.16 -1.33) (layer "F.SilkS") (width 0.12) (tstamp ab9a598f-8302-4532-92a9-0d14db317fec)) + (fp_line (start 14.08 29.27) (end 14.08 -1.33) (layer "F.SilkS") (width 0.12) (tstamp c4529e45-8da2-4c5a-9331-be04310f64ea)) + (fp_line (start 14.08 -1.33) (end 8.62 -1.33) (layer "F.SilkS") (width 0.12) (tstamp c710a187-390d-436f-b5db-2e1d0490c614)) + (fp_line (start 16.57 -1.39) (end -1.33 -1.39) (layer "F.SilkS") (width 0.12) (tstamp ead4395a-8372-4875-ad4c-bf6c6f976d9d)) + (fp_line (start 16.57 29.33) (end 16.57 -1.39) (layer "F.SilkS") (width 0.12) (tstamp ebab5422-3e40-4758-89c8-586defabec7d)) + (fp_arc (start 8.62 -1.33) (mid 7.62 -0.33) (end 6.62 -1.33) (layer "F.SilkS") (width 0.12) (tstamp bd781b41-65b9-49ec-bbd2-093e904cd6d7)) + (fp_line (start -1.55 -1.6) (end -1.55 29.55) (layer "F.CrtYd") (width 0.05) (tstamp 66c9deff-e631-4a2f-b528-9bc8c7ad163e)) + (fp_line (start 16.8 -1.6) (end -1.55 -1.6) (layer "F.CrtYd") (width 0.05) (tstamp d9272527-b863-40f6-85e9-ca73f9fef30f)) + (fp_line (start 16.8 29.55) (end 16.8 -1.6) (layer "F.CrtYd") (width 0.05) (tstamp f3708cee-f5bd-44aa-b472-07a915efc0c2)) + (fp_line (start -1.55 29.55) (end 16.8 29.55) (layer "F.CrtYd") (width 0.05) (tstamp fbbfc30f-6141-4df7-8ecd-432ab9b85c72)) + (fp_line (start 16.51 -1.33) (end -1.27 -1.33) (layer "F.Fab") (width 0.1) (tstamp 0a348a66-27e7-45ec-a144-5b3379bad74b)) + (fp_line (start -1.27 29.27) (end 16.51 29.27) (layer "F.Fab") (width 0.1) (tstamp 1bf96802-1390-4cae-8b27-1f3fddbee1e9)) + (fp_line (start 16.51 29.27) (end 16.51 -1.33) (layer "F.Fab") (width 0.1) (tstamp 660c9c70-3f4c-4c9d-b320-31287ee0c7a0)) + (fp_line (start 14.985 -1.27) (end 14.985 29.21) (layer "F.Fab") (width 0.1) (tstamp 8832aa45-2920-4a07-a7a4-244d907bd5ac)) + (fp_line (start 1.255 -1.27) (end 14.985 -1.27) (layer "F.Fab") (width 0.1) (tstamp 915414dc-0bcb-47b5-9753-525c09059508)) + (fp_line (start -1.27 -1.33) (end -1.27 29.27) (layer "F.Fab") (width 0.1) (tstamp 9a2647ae-d048-41d0-9ecc-c452a96999b4)) + (fp_line (start 0.255 -0.27) (end 1.255 -1.27) (layer "F.Fab") (width 0.1) (tstamp a444209f-4069-4b4b-ab1d-43299004efdb)) + (fp_line (start 14.985 29.21) (end 0.255 29.21) (layer "F.Fab") (width 0.1) (tstamp a4d28e21-247e-4a85-bc84-e1e10e569a18)) + (fp_line (start 0.255 29.21) (end 0.255 -0.27) (layer "F.Fab") (width 0.1) (tstamp ec39692a-0f10-496f-890b-9ba400b5e957)) + (pad "1" thru_hole rect locked (at 0 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 6dba7a6d-b9a3-45c8-9669-0dd4042a4435)) + (pad "2" thru_hole oval locked (at 0 2.54 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 7cf6ffbf-f48c-4517-9add-c5d122de743e)) + (pad "3" thru_hole oval locked (at 0 5.08 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp b28d93f1-0de5-43ee-89ab-a6990da2703d)) + (pad "4" thru_hole oval locked (at 0 7.62 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 3ebdfebc-f220-43f2-b785-64076ce4d71b)) + (pad "5" thru_hole oval locked (at 0 10.16 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 101eda74-58af-4883-9afd-36ab74c1a122)) + (pad "6" thru_hole oval locked (at 0 12.7 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 0437c49a-7107-4a6c-aa3f-171c02c78e31)) + (pad "7" thru_hole oval locked (at 0 15.24 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 5 "AxisY_2") (tstamp bf1223bd-23f8-4c71-b946-9a22e11ff61c)) + (pad "8" thru_hole oval locked (at 0 17.78 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 12 "MIDI_TXD") (tstamp d8deb3e3-6d6f-4def-8b08-e43b1a1ce3f0)) + (pad "9" thru_hole oval locked (at 0 20.32 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 9 "AxisY_1") (tstamp 2209e2c9-e614-4f11-9503-286b6301741b)) + (pad "10" thru_hole oval locked (at 0 22.86 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 3 "Button_4") (tstamp 93f4566b-119d-4b8b-9147-e53c152f1114)) + (pad "11" thru_hole oval locked (at 0 25.4 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 6 "Button_2") (tstamp 30c9a48a-bf1e-4f91-b484-bccc29047202)) + (pad "12" thru_hole oval locked (at 0 27.94 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 11 "MIDI_RXD") (tstamp ba517919-6de4-40cb-9c7e-bf847cc359aa)) + (pad "13" thru_hole oval locked (at 15.24 27.94 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 8 "Button_1") (tstamp e940155f-383f-4f2e-8fb1-9a3139a131ed)) + (pad "14" thru_hole oval locked (at 15.24 25.4 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 4 "Button_3") (tstamp 20b0808c-84b2-42d7-a767-3a84af5927b2)) + (pad "15" thru_hole oval locked (at 15.24 22.86 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 15 "SW1") (tstamp 76eaaadd-ec54-462c-a16f-e7040a069491)) + (pad "16" thru_hole oval locked (at 15.24 20.32 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 14 "SW2") (tstamp a5a3a90e-1af5-454f-8dd5-cce4d5c39f00)) + (pad "17" thru_hole oval locked (at 15.24 17.78 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 10 "AxisX_1") (tstamp 3124f7b7-59b3-4983-916c-2aae1a3baeb1)) + (pad "18" thru_hole oval locked (at 15.24 15.24 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 7 "AxisX_2") (tstamp ffd1e9a8-d3ae-44b3-b953-e3253dc450ad)) + (pad "19" thru_hole oval locked (at 15.24 12.7 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 13 "SW3") (tstamp 3c5d0cae-a70d-4ff8-a7a1-06d40d12ae3f)) + (pad "20" thru_hole oval locked (at 15.24 10.16 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 16 "SW4") (tstamp b5cdc77a-e176-4e82-bdb5-54055b918fc2)) + (pad "21" thru_hole oval locked (at 15.24 7.62 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 1 "VCC") (tstamp 256e1884-0739-4ddd-85b2-a82bf124e432)) + (pad "22" thru_hole oval locked (at 15.24 5.08 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp d9710715-97cb-4919-8c2d-32c3d3446bed)) + (pad "23" thru_hole oval locked (at 15.24 2.54 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 8cbf95fe-6c12-4595-9191-f1b5848df9d0)) + (pad "24" thru_hole oval locked (at 15.24 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 5cce038d-7526-4d4a-bb1f-32cd287801f7)) + (model "${KISYS3DMOD}/Package_DIP.3dshapes/DIP-24_W15.24mm_Socket.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm" (layer "F.Cu") + (tedit 5A4E1404) (tstamp 00000000-0000-0000-0000-000060871cfc) + (at 105.664 70.231 -90) + (descr "4x-dip-switch SPST , Slide, row spacing 7.62 mm (300 mils), body size 9.78x12.34mm (see e.g. https://www.ctscorp.com/wp-content/uploads/206-208.pdf)") + (tags "DIP Switch SPST Slide 7.62mm 300mil") + (path "/00000000-0000-0000-0000-00005ff7e601") + (attr through_hole) + (fp_text reference "SW1" (at 3.429 -3.302 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d23fd32f-0ab4-4987-9f7a-15c05767056d) + ) + (fp_text value "SW_DIP_x04" (at 3.81 11.04 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 5f7462dc-2924-4d28-916b-5edd94bd6631) + ) + (fp_text user "${REFERENCE}" (at 7.27 3.81) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 1094ea1b-e908-4026-9040-4cc03b5a0f40) + ) + (fp_text user "on" (at 5.365 -1.4975 90) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 223a181e-7fed-4194-ab99-10ad6873cde7) + ) + (fp_line (start 1.78 7.225) (end 3.133333 7.225) (layer "F.SilkS") (width 0.12) (tstamp 00a94c0a-3c0d-41b0-a8e0-a0c8d66673c1)) + (fp_line (start 1.78 0.085) (end 3.133333 0.085) (layer "F.SilkS") (width 0.12) (tstamp 034cfc56-bd9e-483f-bd19-1e451f694d6d)) + (fp_line (start 1.78 7.105) (end 3.133333 7.105) (layer "F.SilkS") (width 0.12) (tstamp 10ee7950-45f9-4cc5-820e-53f1ce42e1fa)) + (fp_line (start 1.78 0.445) (end 3.133333 0.445) (layer "F.SilkS") (width 0.12) (tstamp 124c11f7-22f2-491f-8956-0791a492b208)) + (fp_line (start 1.78 5.525) (end 3.133333 5.525) (layer "F.SilkS") (width 0.12) (tstamp 1409b59a-1008-4b01-8636-b87e76a6ec3f)) + (fp_line (start 1.78 -0.035) (end 3.133333 -0.035) (layer "F.SilkS") (width 0.12) (tstamp 1a119e5e-3d64-43a8-8f33-63afe647bb60)) + (fp_line (start 1.78 5.405) (end 3.133333 5.405) (layer "F.SilkS") (width 0.12) (tstamp 1c79503f-34ec-41fe-aa13-6d8d5ba03249)) + (fp_line (start 3.133333 1.905) (end 3.133333 3.175) (layer "F.SilkS") (width 0.12) (tstamp 23a229ed-fc50-43b8-9679-b3239e5be8a3)) + (fp_line (start 5.84 4.445) (end 1.78 4.445) (layer "F.SilkS") (width 0.12) (tstamp 2bbeccfe-b66f-4806-a8da-b5f7233cb062)) + (fp_line (start 1.78 2.745) (end 3.133333 2.745) (layer "F.SilkS") (width 0.12) (tstamp 2c819e14-5bd1-41ca-9582-fc2ea278d953)) + (fp_line (start 1.78 -0.155) (end 3.133333 -0.155) (layer "F.SilkS") (width 0.12) (tstamp 2c99a0e1-9d07-461d-8eea-fe3c633bdf25)) + (fp_line (start 1.78 5.645) (end 3.133333 5.645) (layer "F.SilkS") (width 0.12) (tstamp 2ca70693-6605-4782-b27d-91b7ffa3bebc)) + (fp_line (start 1.78 2.025) (end 3.133333 2.025) (layer "F.SilkS") (width 0.12) (tstamp 33342e93-46b7-47ea-9f02-72fb6c25041b)) + (fp_line (start -1.14 -2.42) (end 8.76 -2.42) (layer "F.SilkS") (width 0.12) (tstamp 33e915a7-d476-4d2d-8aae-36ae754cd6e4)) + (fp_line (start 1.78 0.205) (end 3.133333 0.205) (layer "F.SilkS") (width 0.12) (tstamp 36616b59-ef94-459c-9045-c045bd0c9a3d)) + (fp_line (start 1.78 6.985) (end 1.78 8.255) (layer "F.SilkS") (width 0.12) (tstamp 3e475829-7af3-4bcb-8d68-da42d260e1ab)) + (fp_line (start 1.78 4.685) (end 3.133333 4.685) (layer "F.SilkS") (width 0.12) (tstamp 45d44958-85d4-4a65-966f-ca7220f7d41b)) + (fp_line (start 3.133333 6.985) (end 3.133333 8.255) (layer "F.SilkS") (width 0.12) (tstamp 49b9d810-1743-4f45-9869-951e48abb733)) + (fp_line (start 1.78 -0.515) (end 3.133333 -0.515) (layer "F.SilkS") (width 0.12) (tstamp 4b3b03a4-1b37-412d-bd03-414c97191da0)) + (fp_line (start 5.84 0.635) (end 5.84 -0.635) (layer "F.SilkS") (width 0.12) (tstamp 4ff01534-0db0-4444-8fcd-2b73b17a4f08)) + (fp_line (start 1.78 7.945) (end 3.133333 7.945) (layer "F.SilkS") (width 0.12) (tstamp 53be31d3-9e2b-42a3-8202-041a470c887a)) + (fp_line (start -1.38 -2.66) (end -1.38 -1.277) (layer "F.SilkS") (width 0.12) (tstamp 56dfe44e-0f6b-4f65-a69e-9b77032b94b0)) + (fp_line (start 1.78 5.285) (end 3.133333 5.285) (layer "F.SilkS") (width 0.12) (tstamp 5777e006-f79f-4fa2-9a60-fdbded1a06e3)) + (fp_line (start 1.78 2.385) (end 3.133333 2.385) (layer "F.SilkS") (width 0.12) (tstamp 5bc804ea-c837-48ff-b59e-8482ce6bce5a)) + (fp_line (start 8.76 -2.42) (end 8.76 10.04) (layer "F.SilkS") (width 0.12) (tstamp 62e9f1dd-3e55-4737-b3a5-d2f64c7e7515)) + (fp_line (start 1.78 4.805) (end 3.133333 4.805) (layer "F.SilkS") (width 0.12) (tstamp 6649123c-9439-470d-bf72-e177ba56bc6b)) + (fp_line (start 1.78 7.345) (end 3.133333 7.345) (layer "F.SilkS") (width 0.12) (tstamp 6828ad46-c14f-4c0a-bd89-3d196a8f1623)) + (fp_line (start 1.78 3.175) (end 5.84 3.175) (layer "F.SilkS") (width 0.12) (tstamp 6cf13531-7c54-490c-8b45-0939f2e0e012)) + (fp_line (start -1.14 -2.42) (end -1.14 10.04) (layer "F.SilkS") (width 0.12) (tstamp 6d1b3399-e4c3-4f0a-9005-7afbd4904b5c)) + (fp_line (start 1.78 5.045) (end 3.133333 5.045) (layer "F.SilkS") (width 0.12) (tstamp 71696ae8-5302-4d27-8f92-756067748e05)) + (fp_line (start 5.84 8.255) (end 5.84 6.985) (layer "F.SilkS") (width 0.12) (tstamp 7525e44d-6161-4cc4-8b30-c03909779dc5)) + (fp_line (start 1.78 -0.395) (end 3.133333 -0.395) (layer "F.SilkS") (width 0.12) (tstamp 752ec62f-23d0-4030-9ff6-c6e7dd535f9b)) + (fp_line (start 1.78 5.165) (end 3.133333 5.165) (layer "F.SilkS") (width 0.12) (tstamp 7fd73da8-6fa6-4958-bf8d-c1c3d7b13efb)) + (fp_line (start 1.78 2.265) (end 3.133333 2.265) (layer "F.SilkS") (width 0.12) (tstamp 8165ee8c-f694-43f3-a896-95b3b3ea7f81)) + (fp_line (start 1.78 8.255) (end 5.84 8.255) (layer "F.SilkS") (width 0.12) (tstamp 83ea1a29-eaca-46f5-bbf1-d2112699ae58)) + (fp_line (start 1.78 2.145) (end 3.133333 2.145) (layer "F.SilkS") (width 0.12) (tstamp 8708dda1-c650-4367-a51e-67101000909f)) + (fp_line (start 3.133333 4.445) (end 3.133333 5.715) (layer "F.SilkS") (width 0.12) (tstamp 872331e4-77a5-47e2-b9fb-49159f8fc5ef)) + (fp_line (start 1.78 2.625) (end 3.133333 2.625) (layer "F.SilkS") (width 0.12) (tstamp 905e2dcc-f3c0-43ae-bd9f-271b3bf707f3)) + (fp_line (start 1.78 7.705) (end 3.133333 7.705) (layer "F.SilkS") (width 0.12) (tstamp 96bba24a-52de-4aa0-9008-dead7bc3fbbf)) + (fp_line (start 1.78 2.865) (end 3.133333 2.865) (layer "F.SilkS") (width 0.12) (tstamp 9b63d5d8-ee53-4826-b921-a34cdc9f866e)) + (fp_line (start 1.78 0.325) (end 3.133333 0.325) (layer "F.SilkS") (width 0.12) (tstamp 9b9aefc7-b9ba-4f60-9853-4a23dfd91023)) + (fp_line (start 1.78 8.185) (end 3.133333 8.185) (layer "F.SilkS") (width 0.12) (tstamp 9ccbb15b-3069-4be5-a569-99293ccf7a47)) + (fp_line (start 1.78 3.105) (end 3.133333 3.105) (layer "F.SilkS") (width 0.12) (tstamp a0f811f0-473f-4fa3-a830-3660ba27c423)) + (fp_line (start 1.78 7.585) (end 3.133333 7.585) (layer "F.SilkS") (width 0.12) (tstamp a4856713-63cf-4050-ae3b-714c375320b7)) + (fp_line (start 1.78 1.905) (end 1.78 3.175) (layer "F.SilkS") (width 0.12) (tstamp a62b45b4-3180-4e5a-a201-7ce1dd22cd3c)) + (fp_line (start 1.78 -0.275) (end 3.133333 -0.275) (layer "F.SilkS") (width 0.12) (tstamp a9a4b6ac-6d57-4dad-a582-eee098fb4938)) + (fp_line (start 1.78 -0.635) (end 1.78 0.635) (layer "F.SilkS") (width 0.12) (tstamp b472b581-de6f-4fa4-852f-46fde32af4ff)) + (fp_line (start 1.78 0.635) (end 5.84 0.635) (layer "F.SilkS") (width 0.12) (tstamp b54e527f-bb72-43e3-b56c-0c50aaad0be8)) + (fp_line (start -1.14 10.04) (end 8.76 10.04) (layer "F.SilkS") (width 0.12) (tstamp ba86c8cb-7cbb-4a2f-b54a-cd95d9b5a87c)) + (fp_line (start 1.78 8.065) (end 3.133333 8.065) (layer "F.SilkS") (width 0.12) (tstamp bb8b624d-ff47-4f84-bc9e-11b84aaf5296)) + (fp_line (start 5.84 6.985) (end 1.78 6.985) (layer "F.SilkS") (width 0.12) (tstamp bd66a11a-89cb-4a7f-b27c-6b08996e41b4)) + (fp_line (start 5.84 5.715) (end 5.84 4.445) (layer "F.SilkS") (width 0.12) (tstamp d1ef63a0-7243-40fc-8b01-b6a8778f0449)) + (fp_line (start 1.78 7.465) (end 3.133333 7.465) (layer "F.SilkS") (width 0.12) (tstamp d568d5f7-894c-40b2-94b0-efa84becef07)) + (fp_line (start 5.84 -0.635) (end 1.78 -0.635) (layer "F.SilkS") (width 0.12) (tstamp d72b58f2-c09e-4797-892d-c24a232269b0)) + (fp_line (start 5.84 3.175) (end 5.84 1.905) (layer "F.SilkS") (width 0.12) (tstamp de1ca552-64af-4ec7-ae35-388254c8cc08)) + (fp_line (start 1.78 0.565) (end 3.133333 0.565) (layer "F.SilkS") (width 0.12) (tstamp e0164275-5a9d-4b71-8f08-147e0c7419f8)) + (fp_line (start 1.78 4.925) (end 3.133333 4.925) (layer "F.SilkS") (width 0.12) (tstamp e09d1d47-ae00-42ba-931e-15917d5d1e07)) + (fp_line (start 1.78 4.565) (end 3.133333 4.565) (layer "F.SilkS") (width 0.12) (tstamp e0ea3ca0-21fa-455e-a068-a28cd0d7f94e)) + (fp_line (start 5.84 1.905) (end 1.78 1.905) (layer "F.SilkS") (width 0.12) (tstamp e421c5f0-f5c5-43e8-bfa9-f4c1572eb48b)) + (fp_line (start -1.38 -2.66) (end 0.004 -2.66) (layer "F.SilkS") (width 0.12) (tstamp e80269d7-5d4c-4ec1-87db-f64b155f7ecc)) + (fp_line (start 1.78 4.445) (end 1.78 5.715) (layer "F.SilkS") (width 0.12) (tstamp eac20aa9-7da8-479e-a38e-0d38abe2e313)) + (fp_line (start 1.78 2.985) (end 3.133333 2.985) (layer "F.SilkS") (width 0.12) (tstamp ecd47ede-b85a-4c00-bcd4-e81cf9a99d81)) + (fp_line (start 1.78 7.825) (end 3.133333 7.825) (layer "F.SilkS") (width 0.12) (tstamp eea8a67c-25b9-49f3-bb36-3942bd9c20f6)) + (fp_line (start 3.133333 -0.635) (end 3.133333 0.635) (layer "F.SilkS") (width 0.12) (tstamp efd725ae-37b8-4b62-8925-0c48276bbb96)) + (fp_line (start 1.78 2.505) (end 3.133333 2.505) (layer "F.SilkS") (width 0.12) (tstamp f0cf11db-08b7-4b76-8131-7f13d0537e98)) + (fp_line (start 1.78 5.715) (end 5.84 5.715) (layer "F.SilkS") (width 0.12) (tstamp f33c63a6-e9f1-4770-90a7-8e417ab7c234)) + (fp_line (start 8.95 10.3) (end 8.95 -2.7) (layer "F.CrtYd") (width 0.05) (tstamp 226f3216-9171-405e-bf98-3d500ec872fb)) + (fp_line (start -1.35 -2.7) (end -1.35 10.3) (layer "F.CrtYd") (width 0.05) (tstamp 5d116887-748c-4ce9-ad14-8e00504029cf)) + (fp_line (start 8.95 -2.7) (end -1.35 -2.7) (layer "F.CrtYd") (width 0.05) (tstamp c9e5ddf5-5064-4777-9ac3-7e77697b6dd8)) + (fp_line (start -1.35 10.3) (end 8.95 10.3) (layer "F.CrtYd") (width 0.05) (tstamp e2aa984d-5e3a-4c23-bd65-0f6e2ddb0295)) + (fp_line (start 8.7 -2.36) (end 8.7 9.98) (layer "F.Fab") (width 0.1) (tstamp 03018311-ae71-403b-8369-c64298b43db8)) + (fp_line (start 8.7 9.98) (end -1.08 9.98) (layer "F.Fab") (width 0.1) (tstamp 0b1124ad-82e5-4278-a732-e283f75ac576)) + (fp_line (start 1.78 4.445) (end 1.78 5.715) (layer "F.Fab") (width 0.1) (tstamp 0e3da2f5-da67-4346-bc51-1457965cd92f)) + (fp_line (start 1.78 3.105) (end 3.133333 3.105) (layer "F.Fab") (width 0.1) (tstamp 121a4efd-8037-4400-8f38-c9556d38f575)) + (fp_line (start 1.78 5.345) (end 3.133333 5.345) (layer "F.Fab") (width 0.1) (tstamp 1471ac63-eca5-427c-b1a6-cdb7fff308c7)) + (fp_line (start 1.78 0.465) (end 3.133333 0.465) (layer "F.Fab") (width 0.1) (tstamp 14c4b6ea-9215-4414-8736-bfd1a261df85)) + (fp_line (start 1.78 3.005) (end 3.133333 3.005) (layer "F.Fab") (width 0.1) (tstamp 1809b98d-961f-4dd1-9508-58e758c47817)) + (fp_line (start 1.78 0.265) (end 3.133333 0.265) (layer "F.Fab") (width 0.1) (tstamp 1811ac0d-fd96-449c-ab91-97d264368091)) + (fp_line (start 1.78 5.145) (end 3.133333 5.145) (layer "F.Fab") (width 0.1) (tstamp 1913dfff-d8e6-40a5-9814-f5cc9868db72)) + (fp_line (start 1.78 7.285) (end 3.133333 7.285) (layer "F.Fab") (width 0.1) (tstamp 1ba32772-eaca-424a-8c79-6ab581673837)) + (fp_line (start 1.78 7.785) (end 3.133333 7.785) (layer "F.Fab") (width 0.1) (tstamp 1e242c40-4c64-403d-b76b-40ca7a67b95e)) + (fp_line (start 5.84 5.715) (end 5.84 4.445) (layer "F.Fab") (width 0.1) (tstamp 1ea7ec13-06dc-4d48-945a-c9cd74990281)) + (fp_line (start 1.78 7.385) (end 3.133333 7.385) (layer "F.Fab") (width 0.1) (tstamp 2a2d207b-e9a3-4597-a05b-93ce6b57502a)) + (fp_line (start 1.78 8.255) (end 5.84 8.255) (layer "F.Fab") (width 0.1) (tstamp 2beef277-f7db-4e12-b0d9-7a76058ea662)) + (fp_line (start 1.78 -0.335) (end 3.133333 -0.335) (layer "F.Fab") (width 0.1) (tstamp 34cc6f8a-8fa2-432a-815b-b5583c4813d4)) + (fp_line (start 1.78 0.635) (end 5.84 0.635) (layer "F.Fab") (width 0.1) (tstamp 36fb4b7c-4d95-4e69-9894-0397e2364897)) + (fp_line (start 1.78 5.045) (end 3.133333 5.045) (layer "F.Fab") (width 0.1) (tstamp 386a67cc-8aa5-4170-94e8-340efdb9f09d)) + (fp_line (start 1.78 2.005) (end 3.133333 2.005) (layer "F.Fab") (width 0.1) (tstamp 38c64a6b-b687-4588-9524-7b2cc01f36ee)) + (fp_line (start 1.78 1.905) (end 1.78 3.175) (layer "F.Fab") (width 0.1) (tstamp 3917448b-1124-4a78-822d-216040695e66)) + (fp_line (start 1.78 -0.035) (end 3.133333 -0.035) (layer "F.Fab") (width 0.1) (tstamp 396754bc-8846-4c9e-a030-ed8360d08441)) + (fp_line (start 1.78 8.085) (end 3.133333 8.085) (layer "F.Fab") (width 0.1) (tstamp 49b534f9-91b9-4883-8523-d878d505987b)) + (fp_line (start 1.78 0.565) (end 3.133333 0.565) (layer "F.Fab") (width 0.1) (tstamp 4b47b626-bc1e-48c3-919d-35ee083e62e4)) + (fp_line (start 1.78 5.445) (end 3.133333 5.445) (layer "F.Fab") (width 0.1) (tstamp 5208584a-c039-4041-9c65-c593bb9f250c)) + (fp_line (start 1.78 7.185) (end 3.133333 7.185) (layer "F.Fab") (width 0.1) (tstamp 52c57fa6-cba3-4f07-842c-eafff2ba3400)) + (fp_line (start 1.78 8.185) (end 3.133333 8.185) (layer "F.Fab") (width 0.1) (tstamp 53499564-661a-4e89-836f-c646f1d4e678)) + (fp_line (start 1.78 7.085) (end 3.133333 7.085) (layer "F.Fab") (width 0.1) (tstamp 55d6bee4-6166-48d3-ae69-49bbc9f7f655)) + (fp_line (start 5.84 3.175) (end 5.84 1.905) (layer "F.Fab") (width 0.1) (tstamp 577e5b08-af20-4e18-8dc4-68773c68bca0)) + (fp_line (start 1.78 7.585) (end 3.133333 7.585) (layer "F.Fab") (width 0.1) (tstamp 58925a52-cc3e-4fae-88b0-fc4c04d6a9a9)) + (fp_line (start 1.78 2.505) (end 3.133333 2.505) (layer "F.Fab") (width 0.1) (tstamp 5a05e978-ec44-459f-99f0-20111dfd8f1c)) + (fp_line (start 1.78 4.945) (end 3.133333 4.945) (layer "F.Fab") (width 0.1) (tstamp 6b9ed050-fc22-4da7-a601-b03edebc7a74)) + (fp_line (start 5.84 6.985) (end 1.78 6.985) (layer "F.Fab") (width 0.1) (tstamp 6c4ca8eb-1de4-44b5-98c7-e4489eacbdbc)) + (fp_line (start 1.78 3.175) (end 5.84 3.175) (layer "F.Fab") (width 0.1) (tstamp 758da97a-6b39-4fb1-bf6b-ab40fee23667)) + (fp_line (start 5.84 4.445) (end 1.78 4.445) (layer "F.Fab") (width 0.1) (tstamp 76d0e80c-fb90-40cf-a313-1cf0b25a2d30)) + (fp_line (start 1.78 -0.535) (end 3.133333 -0.535) (layer "F.Fab") (width 0.1) (tstamp 7bbc6e26-d89c-499a-9eb4-bf451966367b)) + (fp_line (start 1.78 2.405) (end 3.133333 2.405) (layer "F.Fab") (width 0.1) (tstamp 7fea4253-023a-4c65-bbdf-640fd8dfac28)) + (fp_line (start 3.133333 1.905) (end 3.133333 3.175) (layer "F.Fab") (width 0.1) (tstamp 818c406a-24d5-42de-aba6-030cddce60c1)) + (fp_line (start 1.78 5.715) (end 5.84 5.715) (layer "F.Fab") (width 0.1) (tstamp 84fc3c57-c43a-40cb-993d-c75fb12f2931)) + (fp_line (start 1.78 0.165) (end 3.133333 0.165) (layer "F.Fab") (width 0.1) (tstamp 8bd60f61-b570-4fd8-b512-27fb72db00b9)) + (fp_line (start 5.84 1.905) (end 1.78 1.905) (layer "F.Fab") (width 0.1) (tstamp 8cd522d6-5046-4b72-ab87-54a9d9879448)) + (fp_line (start 3.133333 -0.635) (end 3.133333 0.635) (layer "F.Fab") (width 0.1) (tstamp 8cf5487e-8f42-47db-ab40-58cd878dd9ec)) + (fp_line (start 1.78 2.805) (end 3.133333 2.805) (layer "F.Fab") (width 0.1) (tstamp 92f87974-782c-4d37-a46f-6363808bf913)) + (fp_line (start 3.133333 6.985) (end 3.133333 8.255) (layer "F.Fab") (width 0.1) (tstamp 94e7edbe-99cd-4113-8dd9-1818ddbddc70)) + (fp_line (start 1.78 2.105) (end 3.133333 2.105) (layer "F.Fab") (width 0.1) (tstamp 95553ff5-51b4-4699-b46b-4078c0292d1c)) + (fp_line (start 1.78 4.845) (end 3.133333 4.845) (layer "F.Fab") (width 0.1) (tstamp 9c6cac6a-5517-4e81-ad7d-60df657535bf)) + (fp_line (start 1.78 -0.235) (end 3.133333 -0.235) (layer "F.Fab") (width 0.1) (tstamp 9e29b59e-2547-4d7a-81e1-b9e927c07293)) + (fp_line (start 1.78 2.905) (end 3.133333 2.905) (layer "F.Fab") (width 0.1) (tstamp a02a8323-78ba-4b55-86c8-a69fd02888e3)) + (fp_line (start 1.78 2.305) (end 3.133333 2.305) (layer "F.Fab") (width 0.1) (tstamp a07c81ba-4af5-491c-8e6a-c4e782e94963)) + (fp_line (start 1.78 5.645) (end 3.133333 5.645) (layer "F.Fab") (width 0.1) (tstamp a14b6720-c596-49b7-b347-f9842ae97d12)) + (fp_line (start 1.78 2.705) (end 3.133333 2.705) (layer "F.Fab") (width 0.1) (tstamp a1fd5965-b121-42a4-b2c0-cedaea285cda)) + (fp_line (start 5.84 0.635) (end 5.84 -0.635) (layer "F.Fab") (width 0.1) (tstamp a38d58f0-593d-4736-a4cc-a369a22ec92c)) + (fp_line (start 1.78 7.485) (end 3.133333 7.485) (layer "F.Fab") (width 0.1) (tstamp a3952536-70b7-4089-909a-1a735ea38708)) + (fp_line (start 1.78 0.365) (end 3.133333 0.365) (layer "F.Fab") (width 0.1) (tstamp a4f7554d-2652-477a-900d-b469d5e169cd)) + (fp_line (start 1.78 7.885) (end 3.133333 7.885) (layer "F.Fab") (width 0.1) (tstamp a5a23c24-344b-46fe-91d2-547d3b7dcdd0)) + (fp_line (start 1.78 0.065) (end 3.133333 0.065) (layer "F.Fab") (width 0.1) (tstamp aa2ed664-0518-4302-a4f6-69caa0b94e34)) + (fp_line (start 1.78 -0.435) (end 3.133333 -0.435) (layer "F.Fab") (width 0.1) (tstamp b838d40b-4aca-4c7f-9422-7ef319a8c2fe)) + (fp_line (start 1.78 7.685) (end 3.133333 7.685) (layer "F.Fab") (width 0.1) (tstamp c1cc8f9a-1043-4250-8013-3cbab8f7f3ac)) + (fp_line (start 1.78 5.545) (end 3.133333 5.545) (layer "F.Fab") (width 0.1) (tstamp cf1005d3-f767-4616-9182-4b8960d2b970)) + (fp_line (start -0.08 -2.36) (end 8.7 -2.36) (layer "F.Fab") (width 0.1) (tstamp d387de5d-fd90-41bf-b884-46cb82181336)) + (fp_line (start 5.84 8.255) (end 5.84 6.985) (layer "F.Fab") (width 0.1) (tstamp d7527fc4-b434-4718-b7d9-5ee07624d257)) + (fp_line (start 1.78 5.245) (end 3.133333 5.245) (layer "F.Fab") (width 0.1) (tstamp d9b9ebbc-d1f0-4b03-8c29-c709280992de)) + (fp_line (start 1.78 -0.635) (end 1.78 0.635) (layer "F.Fab") (width 0.1) (tstamp da88fd50-3c2a-4e9a-bbaf-257db771a736)) + (fp_line (start -1.08 9.98) (end -1.08 -1.36) (layer "F.Fab") (width 0.1) (tstamp dec67065-3930-4001-8f76-2ada3aec9b1f)) + (fp_line (start 5.84 -0.635) (end 1.78 -0.635) (layer "F.Fab") (width 0.1) (tstamp e1a10dc9-529a-4218-959c-8fb5e2955eed)) + (fp_line (start 1.78 2.205) (end 3.133333 2.205) (layer "F.Fab") (width 0.1) (tstamp e3b8489d-ea09-4c6a-aedf-ae2aaef00fe0)) + (fp_line (start 1.78 4.645) (end 3.133333 4.645) (layer "F.Fab") (width 0.1) (tstamp e74bfe52-caf7-45ff-a6ea-c02e5e486728)) + (fp_line (start 3.133333 4.445) (end 3.133333 5.715) (layer "F.Fab") (width 0.1) (tstamp e8274655-f157-4db8-8b3b-191035b35dd3)) + (fp_line (start -1.08 -1.36) (end -0.08 -2.36) (layer "F.Fab") (width 0.1) (tstamp e97437d5-c78b-4af4-9b9e-51e4cde561a8)) + (fp_line (start 1.78 4.745) (end 3.133333 4.745) (layer "F.Fab") (width 0.1) (tstamp ee6722ff-85f1-46ee-bd09-ff6c6cb052e4)) + (fp_line (start 1.78 4.545) (end 3.133333 4.545) (layer "F.Fab") (width 0.1) (tstamp f034182b-077d-41cb-ba6e-3e648a0acf13)) + (fp_line (start 1.78 -0.135) (end 3.133333 -0.135) (layer "F.Fab") (width 0.1) (tstamp f1c96ddd-6d7a-4be6-92f9-97750c1397ce)) + (fp_line (start 1.78 2.605) (end 3.133333 2.605) (layer "F.Fab") (width 0.1) (tstamp f3ff6a7e-588c-4de1-a979-9820dc005900)) + (fp_line (start 1.78 6.985) (end 1.78 8.255) (layer "F.Fab") (width 0.1) (tstamp f8fee654-f943-4537-aa83-133756691c99)) + (fp_line (start 1.78 7.985) (end 3.133333 7.985) (layer "F.Fab") (width 0.1) (tstamp f969cfbf-e69e-427f-a9ed-fd634e51a7ec)) + (pad "1" thru_hole rect locked (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 57fa53d9-46fd-4c24-a37c-ebac9bb3d83b)) + (pad "2" thru_hole oval locked (at 0 2.54 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp bf60d3ec-e80f-4c07-b4a4-723f35a3700d)) + (pad "3" thru_hole oval locked (at 0 5.08 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp 5bdfe254-db31-4c87-ba8f-b7aea7bdad75)) + (pad "4" thru_hole oval locked (at 0 7.62 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 "GND") (tstamp ad1ee915-8838-4bd2-8807-41e720cdcbd5)) + (pad "5" thru_hole oval locked (at 7.62 7.62 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 16 "SW4") (tstamp da2c9d3e-59f5-41ba-b2c5-40cdf3e9ae33)) + (pad "6" thru_hole oval locked (at 7.62 5.08 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 13 "SW3") (tstamp 8136bcf2-7be4-44e2-8c88-1ad57e13d621)) + (pad "7" thru_hole oval locked (at 7.62 2.54 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 14 "SW2") (tstamp a79d8b8a-b590-454b-a850-82f15f7ee5af)) + (pad "8" thru_hole oval locked (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 15 "SW1") (tstamp 824f03d9-0e6c-4c87-8912-bf3205a728bc)) + (model "${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 90)) + ) + ) + + (gr_line (start 76.835 98.425) (end 93.98 107.95) (layer "Edge.Cuts") (width 0.05) (tstamp 00000000-0000-0000-0000-00005ff7aa71)) + (gr_line (start 76.835 79.375) (end 93.98 68.58) (layer "Edge.Cuts") (width 0.05) (tstamp 00000000-0000-0000-0000-00005ff7aa7b)) + (gr_line (start 122.555 107.95) (end 93.98 107.95) (layer "Edge.Cuts") (width 0.05) (tstamp 505656b6-97c8-47ae-81e7-1f223fd084f4)) + (gr_line (start 122.555 68.58) (end 122.555 107.95) (layer "Edge.Cuts") (width 0.05) (tstamp 760df760-936e-4a61-a39e-ad62c8e615e9)) + (gr_line (start 76.835 98.425) (end 76.835 79.375) (layer "Edge.Cuts") (width 0.05) (tstamp bc054038-876d-4e60-8405-3bf3cd41a739)) + (gr_line (start 93.98 68.58) (end 122.555 68.58) (layer "Edge.Cuts") (width 0.05) (tstamp ee7016ad-1ff6-4b69-a130-21769ee90e53)) + (gr_text "9" (at 114.3 78.105 90) (layer "B.SilkS") (tstamp 1c707e14-e5fc-416a-85a6-e0217e609284) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "https://github.com/necroware" (at 119.888 88.138 90) (layer "B.SilkS") (tstamp 2277a4e0-747c-49fe-b4a6-9542403113e1) + (effects (font (size 1.5 1.4) (thickness 0.275)) (justify mirror)) + ) + (gr_text "15" (at 114.3 98.425 90) (layer "B.SilkS") (tstamp 2b51bb61-b8dd-4deb-a84b-cef98bd4d6b8) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "1" (at 111.76 76.835 90) (layer "B.SilkS") (tstamp 6a78e831-c2fe-450d-a15b-e3409377d333) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "8" (at 111.76 99.695 90) (layer "B.SilkS") (tstamp 844e1352-206e-44ba-9802-572919c9b1d4) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "rev 0.2.1" (at 103.886 106.68) (layer "F.SilkS") (tstamp 45927a76-242c-4729-9d9a-24e6a75983b9) + (effects (font (size 1.4 1.4) (thickness 0.2))) + ) + (gr_text "GamePort Adapter\nby Necroware\n" (at 108.585 101.6) (layer "F.Mask") (tstamp 00000000-0000-0000-0000-0000604bdae0) + (effects (font (size 1.9 1.8) (thickness 0.3)) (justify right)) + ) + + (segment (start 116.84 97.536) (end 115.316 99.06) (width 1) (layer "B.Cu") (net 1) (tstamp 1e091061-7c09-4acc-82cb-fff4ca1dba27)) + (segment (start 108.331 75.184) (end 93.726 75.184) (width 1) (layer "B.Cu") (net 1) (tstamp 4556149b-4c0c-4940-936d-dc5226d10a45)) + (segment (start 111.633 78.486) (end 108.331 75.184) (width 1) (layer "B.Cu") (net 1) (tstamp 6f3f0ec1-2b18-4e4f-92a1-7a8cea5ab1ef)) + (segment (start 114.473 79.871) (end 116.84 82.238) (width 1) (layer "B.Cu") (net 1) (tstamp 72853c24-8597-4c80-ae91-5da158ebaeff)) + (segment (start 115.316 99.06) (end 112.817 99.06) (width 1) (layer "B.Cu") (net 1) (tstamp 753b979a-1582-442e-a37d-73e37bb2a22a)) + (segment (start 113.03 78.486) (end 111.633 78.486) (width 1) (layer "B.Cu") (net 1) (tstamp 843a635b-d8b5-4bcb-bbb4-eea6c2b6aca7)) + (segment (start 116.84 82.238) (end 116.84 97.536) (width 1) (layer "B.Cu") (net 1) (tstamp 84ac7eda-6162-4182-a655-054fd840a659)) + (segment (start 114.473 79.871) (end 114.415 79.871) (width 1) (layer "B.Cu") (net 1) (tstamp 98b33a1f-dba2-45ef-b925-d12e26d31dba)) + (segment (start 112.817 99.06) (end 111.633 97.876) (width 1) (layer "B.Cu") (net 1) (tstamp 9eca3654-998e-45e2-b87e-a103e3d456a2)) + (segment (start 114.415 79.871) (end 113.03 78.486) (width 1) (layer "B.Cu") (net 1) (tstamp d97c6eaa-08ac-4432-9670-ba06712e4de0)) + (segment (start 93.726 75.184) (end 87.757 81.153) (width 1) (layer "B.Cu") (net 1) (tstamp e177b80e-68e4-4bd0-8bfd-dcc8170d15dd)) + (segment (start 105.669 93.721) (end 102.997 96.393) (width 0.35) (layer "F.Cu") (net 3) (tstamp d3828612-2ef3-48f7-8ece-5eb682465fce)) + (segment (start 114.473 93.721) (end 105.669 93.721) (width 0.35) (layer "F.Cu") (net 3) (tstamp ece912f4-1b9b-48d7-88dd-b68928303bdb)) + (segment (start 114.473 82.641) (end 107.025 82.641) (width 0.35) (layer "F.Cu") (net 4) (tstamp 1371cd4c-3bce-49ab-9968-72b2f860778e)) + (segment (start 107.025 82.641) (end 105.537 81.153) (width 0.35) (layer "F.Cu") (net 4) (tstamp f0890e7d-756e-4424-9d98-25e2ec3ff50d)) + (segment (start 100.819 90.951) (end 100.7745 90.9955) (width 0.35) (layer "F.Cu") (net 5) (tstamp 787e2feb-5332-4311-bfe5-a41d131501f8)) + (segment (start 114.473 90.951) (end 100.819 90.951) (width 0.35) (layer "F.Cu") (net 5) (tstamp c7adcb0c-14aa-41b3-9a64-ca2ca3af6f11)) + (segment (start 100.819 90.951) (end 95.377 96.393) (width 0.35) (layer "F.Cu") (net 5) (tstamp cdfa2fae-00f7-4d63-b123-8a395f98bca7)) + (segment (start 94.107 92.202) (end 95.377 93.472) (width 0.35) (layer "B.Cu") (net 5) (tstamp 3334e13c-a018-45a8-bee5-3b13d14a6b02)) + (segment (start 95.377 93.472) (end 95.377 96.393) (width 0.35) (layer "B.Cu") (net 5) (tstamp 4e9e1c12-9e03-4868-b27e-332fd38d4417)) + (segment (start 92.837 92.202) (end 94.107 92.202) (width 0.35) (layer "B.Cu") (net 5) (tstamp af2c9a67-504a-4cc5-bde5-3927d98bdbd4)) + (segment (start 111.633 95.106) (end 106.824 95.106) (width 0.35) (layer "F.Cu") (net 6) (tstamp 6d557831-0636-4f0d-afd4-d6de61d0e63e)) + (segment (start 106.824 95.106) (end 105.537 96.393) (width 0.35) (layer "F.Cu") (net 6) (tstamp f1a49da5-6902-4961-85f3-3161ad7965c1)) + (segment (start 99.635 85.411) (end 95.377 81.153) (width 0.35) (layer "F.Cu") (net 7) (tstamp 34fd2f23-6f77-4e43-a698-52ee0013abae)) + (segment (start 114.473 85.411) (end 99.635 85.411) (width 0.35) (layer "F.Cu") (net 7) (tstamp a45896bf-57aa-4afd-aed1-f7c622b604b4)) + (segment (start 95.377 84.074) (end 95.377 81.153) (width 0.35) (layer "B.Cu") (net 7) (tstamp 27d4b2bf-845f-4078-a113-2b9c7394e5cc)) + (segment (start 92.837 85.344) (end 94.107 85.344) (width 0.35) (layer "B.Cu") (net 7) (tstamp 82a93aab-5b01-46a7-aa00-f76b6e674ae8)) + (segment (start 94.107 85.344) (end 95.377 84.074) (width 0.35) (layer "B.Cu") (net 7) (tstamp 96d0fa48-644b-4bfd-81f4-57df60ecaa7d)) + (segment (start 111.633 81.256) (end 111.53 81.153) (width 0.35) (layer "F.Cu") (net 8) (tstamp a76f32a5-6fb9-43b0-84f3-9a356edf9b38)) + (segment (start 111.53 81.153) (end 108.077 81.153) (width 0.35) (layer "F.Cu") (net 8) (tstamp e74eac49-df3a-4730-a927-c82e813f4a3e)) + (segment (start 104.514 92.336) (end 100.457 96.393) (width 0.35) (layer "F.Cu") (net 9) (tstamp 769477ad-6990-46ec-bd21-6d66680ed17d)) + (segment (start 104.514 92.336) (end 104.4575 92.3925) (width 0.35) (layer "F.Cu") (net 9) (tstamp 937e8461-a397-44f8-bc73-7b81f1175f97)) + (segment (start 111.633 92.336) (end 104.514 92.336) (width 0.35) (layer "F.Cu") (net 9) (tstamp d0cdf210-e9fd-4a79-9b34-d0fbbd98d8dd)) + (segment (start 92.837 89.916) (end 95.758 89.916) (width 0.35) (layer "B.Cu") (net 9) (tstamp 10d3aada-33ea-4086-9551-f2895169d28b)) + (segment (start 100.457 94.615) (end 100.457 96.393) (width 0.35) (layer "B.Cu") (net 9) (tstamp eab79726-af16-4037-b595-ed970d9bb0ee)) + (segment (start 95.758 89.916) (end 100.457 94.615) (width 0.35) (layer "B.Cu") (net 9) (tstamp f3d82eb2-26b2-423d-82af-075ad33a3c6c)) + (segment (start 100.79 84.026) (end 97.917 81.153) (width 0.35) (layer "F.Cu") (net 10) (tstamp 3608b53b-fa22-40ea-a288-ac57d553dac7)) + (segment (start 111.633 84.026) (end 100.79 84.026) (width 0.35) (layer "F.Cu") (net 10) (tstamp 85628396-d075-4a1b-ab23-9609f3b6a793)) + (segment (start 95.6945 87.63) (end 97.917 85.4075) (width 0.35) (layer "B.Cu") (net 10) (tstamp 1597ea22-af09-4501-a936-b663ca3752bd)) + (segment (start 92.837 87.63) (end 95.6945 87.63) (width 0.35) (layer "B.Cu") (net 10) (tstamp 7eaf3ff3-f6ab-455a-96a8-5724a41cd9ec)) + (segment (start 97.917 85.4075) (end 97.917 81.153) (width 0.35) (layer "B.Cu") (net 10) (tstamp a38bd017-cb73-4fbc-87c7-b4008dd8b628)) + (segment (start 114.473 96.491) (end 108.175 96.491) (width 0.35) (layer "F.Cu") (net 11) (tstamp 76276bc1-d541-4b65-b6dc-40206febdcd3)) + (segment (start 108.175 96.491) (end 108.077 96.393) (width 0.35) (layer "F.Cu") (net 11) (tstamp ca3fcf61-211e-4c1c-a3db-63e90ff0d3dc)) + (segment (start 97.917 96.393) (end 101.981 92.329) (width 0.35) (layer "F.Cu") (net 12) (tstamp 64b95c02-ab62-45db-be22-23e08a708c93)) + (segment (start 102.060003 88.181) (end 101.976003 88.265) (width 0.35) (layer "F.Cu") (net 12) (tstamp 7bf9a9fc-c560-4161-81d5-b1d230235cf8)) + (segment (start 114.473 88.181) (end 102.060003 88.181) (width 0.35) (layer "F.Cu") (net 12) (tstamp add3c7a0-b1b0-42d4-b90d-371e483d41d9)) + (via (at 101.981 92.329) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 12) (tstamp 61806f1f-5a65-4d9f-9165-90a3ce76164a)) + (via (at 101.976003 88.265) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 12) (tstamp e023d148-19c6-46ce-8bf5-8fa7130e6337)) + (segment (start 101.981 92.329) (end 101.981 88.269997) (width 0.35) (layer "B.Cu") (net 12) (tstamp b65e1b3b-3644-47ab-bf36-cd61bafb3e7e)) + (segment (start 101.981 88.269997) (end 101.976003 88.265) (width 0.35) (layer "B.Cu") (net 12) (tstamp c23a9e12-2b98-49a2-88f3-fd43daf521da)) + (segment (start 100.584 77.851) (end 98.840989 79.594011) (width 0.35) (layer "F.Cu") (net 13) (tstamp 409b9c33-3776-4d90-9488-870778f1906e)) + (segment (start 94.395989 79.594011) (end 92.837 81.153) (width 0.35) (layer "F.Cu") (net 13) (tstamp 447868ad-dc66-4b8a-9e43-71274eb5b985)) + (segment (start 98.840989 79.594011) (end 94.395989 79.594011) (width 0.35) (layer "F.Cu") (net 13) (tstamp cc7fcb6e-9e9a-44f4-a163-b28f222febd4)) + (segment (start 100.457 80.518) (end 100.457 81.153) (width 0.35) (layer "F.Cu") (net 14) (tstamp 069eba6b-6b75-45c6-bd4c-379dcf9147e9)) + (segment (start 103.124 77.851) (end 100.457 80.518) (width 0.35) (layer "F.Cu") (net 14) (tstamp 45f2d0dc-5dcb-418e-9472-72a1a1054264)) + (segment (start 102.997 80.518) (end 102.997 81.153) (width 0.35) (layer "F.Cu") (net 15) (tstamp eaee7b6c-0302-45eb-9da9-25d1a82ad3af)) + (segment (start 105.664 77.851) (end 102.997 80.518) (width 0.35) (layer "F.Cu") (net 15) (tstamp ed30fada-b048-40ea-a103-59c9ad30ad8b)) + (segment (start 92.456 78.994) (end 90.297 81.153) (width 0.35) (layer "F.Cu") (net 16) (tstamp 03b0b126-0940-4afb-97d2-8f214f0a638b)) + (segment (start 96.901 78.994) (end 92.456 78.994) (width 0.35) (layer "F.Cu") (net 16) (tstamp 1f065c61-f3d9-4bbb-8aa2-604b2fbd05ee)) + (segment (start 92.456 78.994) (end 92.3925 79.0575) (width 0.35) (layer "F.Cu") (net 16) (tstamp 882b0e02-938f-452c-8fa7-deb195dfca38)) + (segment (start 98.044 77.851) (end 96.901 78.994) (width 0.35) (layer "F.Cu") (net 16) (tstamp 9fa1defc-bb0e-4d27-9f77-c5e745c607f6)) + + (zone (net 2) (net_name "GND") (layer "F.Cu") (tstamp 00000000-0000-0000-0000-00005ff82519) (hatch edge 0.508) + (connect_pads (clearance 0.254)) + (min_thickness 0.254) (filled_areas_thickness no) + (fill yes (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 122.555 107.95) + (xy 76.835 107.95) + (xy 76.835 68.453) + (xy 122.555 68.58) + ) + ) + (filled_polygon + (layer "F.Cu") + (pts + (xy 97.443584 68.854502) + (xy 97.490077 68.908158) + (xy 97.500181 68.978432) + (xy 97.470687 69.043012) + (xy 97.428713 69.074695) + (xy 97.392489 69.091586) + (xy 97.382993 69.097069) + (xy 97.204533 69.222028) + (xy 97.196125 69.229084) + (xy 97.042084 69.383125) + (xy 97.035028 69.391533) + (xy 96.910069 69.569993) + (xy 96.904586 69.579489) + (xy 96.81251 69.776947) + (xy 96.808764 69.787239) + (xy 96.762606 69.959503) + (xy 96.762942 69.973599) + (xy 96.770884 69.977) + (xy 106.953884 69.977) + (xy 106.969123 69.972525) + (xy 106.970328 69.971135) + (xy 106.971999 69.963452) + (xy 106.971999 69.386331) + (xy 106.971629 69.37951) + (xy 106.966105 69.328648) + (xy 106.962479 69.313396) + (xy 106.917324 69.192946) + (xy 106.908786 69.177351) + (xy 106.832285 69.075276) + (xy 106.819722 69.062713) + (xy 106.81787 69.061325) + (xy 106.816495 69.059486) + (xy 106.813374 69.056365) + (xy 106.813824 69.055915) + (xy 106.775355 69.004466) + (xy 106.770331 68.933647) + (xy 106.804391 68.871354) + (xy 106.866722 68.837364) + (xy 106.893436 68.8345) + (xy 112.472932 68.8345) + (xy 112.541053 68.854502) + (xy 112.587546 68.908158) + (xy 112.59765 68.978432) + (xy 112.568156 69.043012) + (xy 112.504267 69.082541) + (xy 112.280295 69.140047) + (xy 112.27277 69.142492) + (xy 111.986707 69.255753) + (xy 111.979572 69.25911) + (xy 111.709961 69.40733) + (xy 111.703281 69.41157) + (xy 111.480177 69.573664) + (xy 111.471754 69.584587) + (xy 111.478658 69.597448) + (xy 113.040188 71.158978) + (xy 113.054132 71.166592) + (xy 113.055965 71.166461) + (xy 113.06258 71.16221) + (xy 114.627666 69.597124) + (xy 114.634279 69.585013) + (xy 114.625452 69.573395) + (xy 114.402719 69.41157) + (xy 114.396039 69.40733) + (xy 114.126428 69.25911) + (xy 114.119293 69.255753) + (xy 113.83323 69.142492) + (xy 113.825705 69.140047) + (xy 113.601733 69.082541) + (xy 113.540727 69.046227) + (xy 113.509038 68.982694) + (xy 113.516728 68.912116) + (xy 113.561355 68.856898) + (xy 113.633068 68.8345) + (xy 122.1745 68.8345) + (xy 122.242621 68.854502) + (xy 122.289114 68.908158) + (xy 122.3005 68.9605) + (xy 122.3005 107.5695) + (xy 122.280498 107.637621) + (xy 122.226842 107.684114) + (xy 122.1745 107.6955) + (xy 94.078598 107.6955) + (xy 94.017407 107.679644) + (xy 93.33128 107.298462) + (xy 92.392625 106.776987) + (xy 111.471721 106.776987) + (xy 111.480548 106.788605) + (xy 111.703281 106.95043) + (xy 111.709961 106.95467) + (xy 111.979572 107.10289) + (xy 111.986707 107.106247) + (xy 112.27277 107.219508) + (xy 112.280296 107.221953) + (xy 112.578279 107.298462) + (xy 112.58605 107.299945) + (xy 112.891278 107.338503) + (xy 112.899169 107.339) + (xy 113.206831 107.339) + (xy 113.214722 107.338503) + (xy 113.51995 107.299945) + (xy 113.527721 107.298462) + (xy 113.825704 107.221953) + (xy 113.83323 107.219508) + (xy 114.119293 107.106247) + (xy 114.126428 107.10289) + (xy 114.396039 106.95467) + (xy 114.402719 106.95043) + (xy 114.625823 106.788336) + (xy 114.634246 106.777413) + (xy 114.627342 106.764552) + (xy 113.065812 105.203022) + (xy 113.051868 105.195408) + (xy 113.050035 105.195539) + (xy 113.04342 105.19979) + (xy 111.478334 106.764876) + (xy 111.471721 106.776987) + (xy 92.392625 106.776987) + (xy 88.896973 104.834958) + (xy 110.54029 104.834958) + (xy 110.559607 105.141994) + (xy 110.5606 105.149855) + (xy 110.618246 105.452046) + (xy 110.620217 105.459723) + (xy 110.715284 105.752309) + (xy 110.718199 105.759672) + (xy 110.849189 106.038041) + (xy 110.853001 106.044974) + (xy 111.017851 106.304736) + (xy 111.022495 106.311129) + (xy 111.097497 106.40179) + (xy 111.110014 106.410245) + (xy 111.120752 106.404038) + (xy 112.680978 104.843812) + (xy 112.687356 104.832132) + (xy 113.417408 104.832132) + (xy 113.417539 104.833965) + (xy 113.42179 104.84058) + (xy 114.984145 106.402935) + (xy 114.997407 106.410177) + (xy 115.007512 106.402988) + (xy 115.083505 106.311129) + (xy 115.088149 106.304736) + (xy 115.252999 106.044974) + (xy 115.256811 106.038041) + (xy 115.387801 105.759672) + (xy 115.390716 105.752309) + (xy 115.485783 105.459723) + (xy 115.487754 105.452046) + (xy 115.5454 105.149855) + (xy 115.546393 105.141994) + (xy 115.56571 104.834958) + (xy 115.56571 104.827042) + (xy 115.546393 104.520006) + (xy 115.5454 104.512145) + (xy 115.487754 104.209954) + (xy 115.485783 104.202277) + (xy 115.390716 103.909691) + (xy 115.387801 103.902328) + (xy 115.256811 103.623959) + (xy 115.252999 103.617026) + (xy 115.088149 103.357264) + (xy 115.083505 103.350871) + (xy 115.008503 103.26021) + (xy 114.995986 103.251755) + (xy 114.985248 103.257962) + (xy 113.425022 104.818188) + (xy 113.417408 104.832132) + (xy 112.687356 104.832132) + (xy 112.688592 104.829868) + (xy 112.688461 104.828035) + (xy 112.68421 104.82142) + (xy 111.121855 103.259065) + (xy 111.108593 103.251823) + (xy 111.098488 103.259012) + (xy 111.022495 103.350871) + (xy 111.017851 103.357264) + (xy 110.853001 103.617026) + (xy 110.849189 103.623959) + (xy 110.718199 103.902328) + (xy 110.715284 103.909691) + (xy 110.620217 104.202277) + (xy 110.618246 104.209954) + (xy 110.5606 104.512145) + (xy 110.559607 104.520006) + (xy 110.54029 104.827042) + (xy 110.54029 104.834958) + (xy 88.896973 104.834958) + (xy 85.386305 102.884587) + (xy 111.471754 102.884587) + (xy 111.478658 102.897448) + (xy 113.040188 104.458978) + (xy 113.054132 104.466592) + (xy 113.055965 104.466461) + (xy 113.06258 104.46221) + (xy 114.627666 102.897124) + (xy 114.634279 102.885013) + (xy 114.625452 102.873395) + (xy 114.402719 102.71157) + (xy 114.396039 102.70733) + (xy 114.126428 102.55911) + (xy 114.119293 102.555753) + (xy 113.83323 102.442492) + (xy 113.825704 102.440047) + (xy 113.527721 102.363538) + (xy 113.51995 102.362055) + (xy 113.214722 102.323497) + (xy 113.206831 102.323) + (xy 112.899169 102.323) + (xy 112.891278 102.323497) + (xy 112.58605 102.362055) + (xy 112.578279 102.363538) + (xy 112.280296 102.440047) + (xy 112.27277 102.442492) + (xy 111.986707 102.555753) + (xy 111.979572 102.55911) + (xy 111.709961 102.70733) + (xy 111.703281 102.71157) + (xy 111.480177 102.873664) + (xy 111.471754 102.884587) + (xy 85.386305 102.884587) + (xy 77.154309 98.311256) + (xy 77.104475 98.260689) + (xy 77.0895 98.201112) + (xy 77.0895 97.226218) + (xy 78.9865 97.226218) + (xy 78.98717 97.230768) + (xy 78.98717 97.230771) + (xy 78.995216 97.285426) + (xy 78.996642 97.295112) + (xy 79.000958 97.303902) + (xy 79.042708 97.388937) + (xy 79.048068 97.399855) + (xy 79.13065 97.482293) + (xy 79.140006 97.486866) + (xy 79.140007 97.486867) + (xy 79.150259 97.491878) + (xy 79.235482 97.533536) + (xy 79.261071 97.537269) + (xy 79.299256 97.54284) + (xy 79.29926 97.54284) + (xy 79.303782 97.5435) + (xy 80.970218 97.5435) + (xy 80.974768 97.54283) + (xy 80.974771 97.54283) + (xy 81.029426 97.534784) + (xy 81.029427 97.534784) + (xy 81.039112 97.533358) + (xy 81.100535 97.503201) + (xy 81.134507 97.486522) + (xy 81.134509 97.486521) + (xy 81.143855 97.481932) + (xy 81.226293 97.39935) + (xy 81.233352 97.38491) + (xy 81.27324 97.303306) + (xy 81.277536 97.294518) + (xy 81.285173 97.242171) + (xy 81.28684 97.230744) + (xy 81.28684 97.23074) + (xy 81.2875 97.226218) + (xy 81.2875 96.603673) + (xy 81.307502 96.535552) + (xy 81.361158 96.489059) + (xy 81.431432 96.478955) + (xy 81.496012 96.508449) + (xy 81.534396 96.568175) + (xy 81.535658 96.573784) + (xy 81.535796 96.573749) + (xy 81.587845 96.77869) + (xy 81.676369 96.970714) + (xy 81.798405 97.143391) + (xy 81.806564 97.151339) + (xy 81.925973 97.267662) + (xy 81.949865 97.290937) + (xy 81.954661 97.294142) + (xy 81.954664 97.294144) + (xy 82.090505 97.38491) + (xy 82.125677 97.408411) + (xy 82.130985 97.410692) + (xy 82.130986 97.410692) + (xy 82.31465 97.4896) + (xy 82.314653 97.489601) + (xy 82.319953 97.491878) + (xy 82.325582 97.493152) + (xy 82.325583 97.493152) + (xy 82.52055 97.537269) + (xy 82.520553 97.537269) + (xy 82.526186 97.538544) + (xy 82.531957 97.538771) + (xy 82.531959 97.538771) + (xy 82.593989 97.541208) + (xy 82.73747 97.546846) + (xy 82.743179 97.546018) + (xy 82.743183 97.546018) + (xy 82.941015 97.517333) + (xy 82.941019 97.517332) + (xy 82.94673 97.516504) + (xy 83.034038 97.486867) + (xy 83.141483 97.450395) + (xy 83.141488 97.450393) + (xy 83.146955 97.448537) + (xy 83.156451 97.443219) + (xy 83.326395 97.348046) + (xy 83.326399 97.348043) + (xy 83.331442 97.345219) + (xy 83.494012 97.210012) + (xy 83.629219 97.047442) + (xy 83.632043 97.042399) + (xy 83.632046 97.042395) + (xy 83.729713 96.867998) + (xy 83.729714 96.867996) + (xy 83.732537 96.862955) + (xy 83.742239 96.834375) + (xy 83.783074 96.7763) + (xy 83.848827 96.749521) + (xy 83.918619 96.762542) + (xy 83.970293 96.811228) + (xy 83.979952 96.831783) + (xy 83.985509 96.84705) + (xy 84.077586 97.044511) + (xy 84.083069 97.054007) + (xy 84.208028 97.232467) + (xy 84.215084 97.240875) + (xy 84.369125 97.394916) + (xy 84.377533 97.401972) + (xy 84.555993 97.526931) + (xy 84.565489 97.532414) + (xy 84.762947 97.62449) + (xy 84.773239 97.628236) + (xy 84.945503 97.674394) + (xy 84.959599 97.674058) + (xy 84.963 97.666116) + (xy 84.963 97.660967) + (xy 85.471 97.660967) + (xy 85.474973 97.674498) + (xy 85.483522 97.675727) + (xy 85.660761 97.628236) + (xy 85.671053 97.62449) + (xy 85.868511 97.532414) + (xy 85.878007 97.526931) + (xy 86.056467 97.401972) + (xy 86.064875 97.394916) + (xy 86.218916 97.240875) + (xy 86.225972 97.232467) + (xy 86.350931 97.054007) + (xy 86.356414 97.044511) + (xy 86.372805 97.009359) + (xy 86.419722 96.956074) + (xy 86.487999 96.936613) + (xy 86.555959 96.957155) + (xy 86.601195 97.009359) + (xy 86.617586 97.044511) + (xy 86.623069 97.054007) + (xy 86.748028 97.232467) + (xy 86.755084 97.240875) + (xy 86.909125 97.394916) + (xy 86.917533 97.401972) + (xy 87.095993 97.526931) + (xy 87.105489 97.532414) + (xy 87.302947 97.62449) + (xy 87.313239 97.628236) + (xy 87.485503 97.674394) + (xy 87.499599 97.674058) + (xy 87.503 97.666116) + (xy 87.503 96.665115) + (xy 87.498525 96.649876) + (xy 87.497135 96.648671) + (xy 87.489452 96.647) + (xy 85.489115 96.647) + (xy 85.473876 96.651475) + (xy 85.472671 96.652865) + (xy 85.471 96.660548) + (xy 85.471 97.660967) + (xy 84.963 97.660967) + (xy 84.963 96.120885) + (xy 85.471 96.120885) + (xy 85.475475 96.136124) + (xy 85.476865 96.137329) + (xy 85.484548 96.139) + (xy 87.484885 96.139) + (xy 87.500124 96.134525) + (xy 87.501329 96.133135) + (xy 87.503 96.125452) + (xy 87.503 95.125033) + (xy 87.499027 95.111502) + (xy 87.490478 95.110273) + (xy 87.313239 95.157764) + (xy 87.302947 95.16151) + (xy 87.105489 95.253586) + (xy 87.095993 95.259069) + (xy 86.917533 95.384028) + (xy 86.909125 95.391084) + (xy 86.755084 95.545125) + (xy 86.748028 95.553533) + (xy 86.623069 95.731993) + (xy 86.617586 95.741489) + (xy 86.601195 95.776641) + (xy 86.554278 95.829926) + (xy 86.486001 95.849387) + (xy 86.418041 95.828845) + (xy 86.372805 95.776641) + (xy 86.356414 95.741489) + (xy 86.350931 95.731993) + (xy 86.225972 95.553533) + (xy 86.218916 95.545125) + (xy 86.064875 95.391084) + (xy 86.056467 95.384028) + (xy 85.878007 95.259069) + (xy 85.868511 95.253586) + (xy 85.671053 95.16151) + (xy 85.660761 95.157764) + (xy 85.488497 95.111606) + (xy 85.474401 95.111942) + (xy 85.471 95.119884) + (xy 85.471 96.120885) + (xy 84.963 96.120885) + (xy 84.963 95.125033) + (xy 84.959027 95.111502) + (xy 84.950478 95.110273) + (xy 84.773239 95.157764) + (xy 84.762947 95.16151) + (xy 84.565489 95.253586) + (xy 84.555993 95.259069) + (xy 84.377533 95.384028) + (xy 84.369125 95.391084) + (xy 84.215084 95.545125) + (xy 84.208028 95.553533) + (xy 84.083069 95.731993) + (xy 84.077586 95.741489) + (xy 83.98551 95.938947) + (xy 83.980455 95.952836) + (xy 83.938361 96.010007) + (xy 83.872039 96.035345) + (xy 83.802548 96.020804) + (xy 83.749048 95.96547) + (xy 83.664719 95.794469) + (xy 83.662165 95.78929) + (xy 83.535651 95.619867) + (xy 83.407237 95.501162) + (xy 83.384622 95.480257) + (xy 83.38462 95.480255) + (xy 83.380381 95.476337) + (xy 83.335671 95.448127) + (xy 83.206434 95.366584) + (xy 83.206433 95.366584) + (xy 83.201554 95.363505) + (xy 83.00516 95.285152) + (xy 82.999503 95.284027) + (xy 82.999497 95.284025) + (xy 82.803442 95.245028) + (xy 82.80344 95.245028) + (xy 82.797775 95.243901) + (xy 82.792 95.243825) + (xy 82.791996 95.243825) + (xy 82.685976 95.242437) + (xy 82.586346 95.241133) + (xy 82.580649 95.242112) + (xy 82.580648 95.242112) + (xy 82.38365 95.275962) + (xy 82.383649 95.275962) + (xy 82.377953 95.276941) + (xy 82.179575 95.350127) + (xy 82.174614 95.353079) + (xy 82.174613 95.353079) + (xy 82.157089 95.363505) + (xy 81.997856 95.458238) + (xy 81.838881 95.597655) + (xy 81.707976 95.763708) + (xy 81.705287 95.768819) + (xy 81.705285 95.768822) + (xy 81.691792 95.794469) + (xy 81.609523 95.950836) + (xy 81.54682 96.152773) + (xy 81.546141 96.15851) + (xy 81.538627 96.221995) + (xy 81.510756 96.287292) + (xy 81.452008 96.327156) + (xy 81.381034 96.32893) + (xy 81.320367 96.292051) + (xy 81.289269 96.228227) + (xy 81.2875 96.207185) + (xy 81.2875 95.559782) + (xy 81.286544 95.553284) + (xy 81.278784 95.500574) + (xy 81.278784 95.500573) + (xy 81.277358 95.490888) + (xy 81.225932 95.386145) + (xy 81.14335 95.303707) + (xy 81.126698 95.295567) + (xy 81.089969 95.277614) + (xy 81.038518 95.252464) + (xy 81.008027 95.248016) + (xy 80.974744 95.24316) + (xy 80.97474 95.24316) + (xy 80.970218 95.2425) + (xy 79.303782 95.2425) + (xy 79.299232 95.24317) + (xy 79.299229 95.24317) + (xy 79.244574 95.251216) + (xy 79.244573 95.251216) + (xy 79.234888 95.252642) + (xy 79.184992 95.27714) + (xy 79.139493 95.299478) + (xy 79.139491 95.299479) + (xy 79.130145 95.304068) + (xy 79.122787 95.311438) + (xy 79.122788 95.311438) + (xy 79.059396 95.374941) + (xy 79.047707 95.38665) + (xy 78.996464 95.491482) + (xy 78.995052 95.501162) + (xy 78.987412 95.553533) + (xy 78.9865 95.559782) + (xy 78.9865 97.226218) + (xy 77.0895 97.226218) + (xy 77.0895 93.216261) + (xy 84.567294 93.216261) + (xy 84.57659 93.228276) + (xy 84.606189 93.249001) + (xy 84.615677 93.254479) + (xy 84.797277 93.339159) + (xy 84.807571 93.342907) + (xy 85.001122 93.394769) + (xy 85.011909 93.396671) + (xy 85.211525 93.414135) + (xy 85.222475 93.414135) + (xy 85.422091 93.396671) + (xy 85.432878 93.394769) + (xy 85.626429 93.342907) + (xy 85.636723 93.339159) + (xy 85.818323 93.254479) + (xy 85.827811 93.249001) + (xy 85.858248 93.227689) + (xy 85.866623 93.217212) + (xy 85.859554 93.203764) + (xy 85.229812 92.574022) + (xy 85.215868 92.566408) + (xy 85.214035 92.566539) + (xy 85.20742 92.57079) + (xy 84.573724 93.204486) + (xy 84.567294 93.216261) + (xy 77.0895 93.216261) + (xy 77.0895 92.207475) + (xy 84.004865 92.207475) + (xy 84.022329 92.407091) + (xy 84.024231 92.417878) + (xy 84.076093 92.611429) + (xy 84.079841 92.621723) + (xy 84.164521 92.803323) + (xy 84.169999 92.812811) + (xy 84.191311 92.843248) + (xy 84.201788 92.851623) + (xy 84.215236 92.844554) + (xy 84.844978 92.214812) + (xy 84.851356 92.203132) + (xy 85.581408 92.203132) + (xy 85.581539 92.204965) + (xy 85.58579 92.21158) + (xy 86.219486 92.845276) + (xy 86.231261 92.851706) + (xy 86.243276 92.84241) + (xy 86.264001 92.812811) + (xy 86.269479 92.803323) + (xy 86.354159 92.621723) + (xy 86.357907 92.611429) + (xy 86.409769 92.417878) + (xy 86.411671 92.407091) + (xy 86.429135 92.207475) + (xy 86.429135 92.196525) + (xy 86.428325 92.187262) + (xy 91.78152 92.187262) + (xy 91.784937 92.227949) + (xy 91.794861 92.346128) + (xy 91.798759 92.392553) + (xy 91.800458 92.398478) + (xy 91.849868 92.57079) + (xy 91.855544 92.590586) + (xy 91.858359 92.596063) + (xy 91.85836 92.596066) + (xy 91.90154 92.680085) + (xy 91.949712 92.773818) + (xy 92.077677 92.93527) + (xy 92.08237 92.939264) + (xy 92.082371 92.939265) + (xy 92.228881 93.063954) + (xy 92.234564 93.068791) + (xy 92.414398 93.169297) + (xy 92.509238 93.200113) + (xy 92.604471 93.231056) + (xy 92.604475 93.231057) + (xy 92.610329 93.232959) + (xy 92.814894 93.257351) + (xy 92.821029 93.256879) + (xy 92.821031 93.256879) + (xy 92.877039 93.252569) + (xy 93.0203 93.241546) + (xy 93.02623 93.23989) + (xy 93.026232 93.23989) + (xy 93.155875 93.203693) + (xy 93.218725 93.186145) + (xy 93.224214 93.183372) + (xy 93.22422 93.18337) + (xy 93.397116 93.096033) + (xy 93.40261 93.093258) + (xy 93.4114 93.086391) + (xy 93.560101 92.970213) + (xy 93.564951 92.966424) + (xy 93.592782 92.934182) + (xy 93.69554 92.815134) + (xy 93.69554 92.815133) + (xy 93.699564 92.810472) + (xy 93.7048 92.801256) + (xy 93.738056 92.742714) + (xy 93.801323 92.631344) + (xy 93.866351 92.435863) + (xy 93.892171 92.231474) + (xy 93.892449 92.21158) + (xy 93.892534 92.205522) + (xy 93.892534 92.205518) + (xy 93.892583 92.202) + (xy 93.87248 91.99697) + (xy 93.812935 91.799749) + (xy 93.716218 91.617849) + (xy 93.631035 91.513405) + (xy 93.589906 91.462975) + (xy 93.589903 91.462972) + (xy 93.586011 91.4582) + (xy 93.54099 91.420955) + (xy 93.432025 91.330811) + (xy 93.432021 91.330809) + (xy 93.427275 91.326882) + (xy 93.246055 91.228897) + (xy 93.083676 91.178632) + (xy 93.024517 91.139382) + (xy 92.99597 91.074378) + (xy 93.007098 91.004259) + (xy 93.05437 90.951287) + (xy 93.087052 90.93691) + (xy 93.212788 90.901804) + (xy 93.212801 90.901799) + (xy 93.218725 90.900145) + (xy 93.224214 90.897372) + (xy 93.22422 90.89737) + (xy 93.397116 90.810033) + (xy 93.40261 90.807258) + (xy 93.564951 90.680424) + (xy 93.693701 90.531265) + (xy 93.69554 90.529134) + (xy 93.69554 90.529133) + (xy 93.699564 90.524472) + (xy 93.720387 90.487818) + (xy 93.757053 90.423273) + (xy 93.801323 90.345344) + (xy 93.866351 90.149863) + (xy 93.892171 89.945474) + (xy 93.892583 89.916) + (xy 93.87248 89.71097) + (xy 93.812935 89.513749) + (xy 93.716218 89.331849) + (xy 93.63618 89.233713) + (xy 93.589906 89.176975) + (xy 93.589903 89.176972) + (xy 93.586011 89.1722) + (xy 93.548367 89.141058) + (xy 93.432025 89.044811) + (xy 93.432021 89.044809) + (xy 93.427275 89.040882) + (xy 93.246055 88.942897) + (xy 93.083676 88.892632) + (xy 93.024517 88.853382) + (xy 92.99597 88.788378) + (xy 93.007098 88.718259) + (xy 93.05437 88.665287) + (xy 93.087052 88.65091) + (xy 93.212788 88.615804) + (xy 93.212801 88.615799) + (xy 93.218725 88.614145) + (xy 93.224214 88.611372) + (xy 93.22422 88.61137) + (xy 93.397116 88.524033) + (xy 93.40261 88.521258) + (xy 93.564951 88.394424) + (xy 93.670146 88.272554) + (xy 93.69554 88.243134) + (xy 93.69554 88.243133) + (xy 93.699564 88.238472) + (xy 93.720387 88.201818) + (xy 93.798276 88.064707) + (xy 93.801323 88.059344) + (xy 93.866351 87.863863) + (xy 93.892171 87.659474) + (xy 93.892506 87.635498) + (xy 93.892534 87.633522) + (xy 93.892534 87.633518) + (xy 93.892583 87.63) + (xy 93.87248 87.42497) + (xy 93.812935 87.227749) + (xy 93.716218 87.045849) + (xy 93.642859 86.955902) + (xy 93.589906 86.890975) + (xy 93.589903 86.890972) + (xy 93.586011 86.8862) + (xy 93.568786 86.87195) + (xy 93.432025 86.758811) + (xy 93.432021 86.758809) + (xy 93.427275 86.754882) + (xy 93.246055 86.656897) + (xy 93.083676 86.606632) + (xy 93.024517 86.567382) + (xy 92.99597 86.502378) + (xy 93.007098 86.432259) + (xy 93.05437 86.379287) + (xy 93.087052 86.36491) + (xy 93.212788 86.329804) + (xy 93.212801 86.329799) + (xy 93.218725 86.328145) + (xy 93.224214 86.325372) + (xy 93.22422 86.32537) + (xy 93.397116 86.238033) + (xy 93.40261 86.235258) + (xy 93.564951 86.108424) + (xy 93.659713 85.998641) + (xy 93.69554 85.957134) + (xy 93.69554 85.957133) + (xy 93.699564 85.952472) + (xy 93.70598 85.941179) + (xy 93.774982 85.819712) + (xy 93.801323 85.773344) + (xy 93.866351 85.577863) + (xy 93.892171 85.373474) + (xy 93.892583 85.344) + (xy 93.87248 85.13897) + (xy 93.812935 84.941749) + (xy 93.716218 84.759849) + (xy 93.613538 84.633951) + (xy 93.589906 84.604975) + (xy 93.589903 84.604972) + (xy 93.586011 84.6002) + (xy 93.568786 84.58595) + (xy 93.432025 84.472811) + (xy 93.432021 84.472809) + (xy 93.427275 84.468882) + (xy 93.246055 84.370897) + (xy 93.049254 84.309977) + (xy 93.043129 84.309333) + (xy 93.043128 84.309333) + (xy 92.850498 84.289087) + (xy 92.850496 84.289087) + (xy 92.844369 84.288443) + (xy 92.783724 84.293962) + (xy 92.645342 84.306555) + (xy 92.645339 84.306556) + (xy 92.639203 84.307114) + (xy 92.441572 84.36528) + (xy 92.436107 84.368137) + (xy 92.395753 84.389234) + (xy 92.259002 84.460726) + (xy 92.254201 84.464586) + (xy 92.254198 84.464588) + (xy 92.121224 84.571502) + (xy 92.098447 84.589815) + (xy 91.966024 84.74763) + (xy 91.963056 84.753028) + (xy 91.963053 84.753033) + (xy 91.869743 84.922765) + (xy 91.866776 84.928162) + (xy 91.804484 85.124532) + (xy 91.803798 85.130649) + (xy 91.803797 85.130653) + (xy 91.795324 85.206197) + (xy 91.78152 85.329262) + (xy 91.782036 85.335406) + (xy 91.788074 85.407305) + (xy 91.798759 85.534553) + (xy 91.800458 85.540478) + (xy 91.840675 85.68073) + (xy 91.855544 85.732586) + (xy 91.858359 85.738063) + (xy 91.85836 85.738066) + (xy 91.946897 85.910341) + (xy 91.949712 85.915818) + (xy 92.077677 86.07727) + (xy 92.08237 86.081264) + (xy 92.082371 86.081265) + (xy 92.145503 86.134994) + (xy 92.234564 86.210791) + (xy 92.239942 86.213797) + (xy 92.239944 86.213798) + (xy 92.278342 86.235258) + (xy 92.414398 86.311297) + (xy 92.466251 86.328145) + (xy 92.589231 86.368104) + (xy 92.647837 86.408178) + (xy 92.675474 86.473574) + (xy 92.663367 86.543531) + (xy 92.615361 86.595837) + (xy 92.585872 86.60881) + (xy 92.441572 86.65128) + (xy 92.259002 86.746726) + (xy 92.254201 86.750586) + (xy 92.254198 86.750588) + (xy 92.103254 86.87195) + (xy 92.098447 86.875815) + (xy 91.966024 87.03363) + (xy 91.963056 87.039028) + (xy 91.963053 87.039033) + (xy 91.902398 87.149366) + (xy 91.866776 87.214162) + (xy 91.804484 87.410532) + (xy 91.803798 87.416649) + (xy 91.803797 87.416653) + (xy 91.784781 87.586187) + (xy 91.78152 87.615262) + (xy 91.784899 87.6555) + (xy 91.785795 87.666165) + (xy 91.798759 87.820553) + (xy 91.800458 87.826478) + (xy 91.849868 87.99879) + (xy 91.855544 88.018586) + (xy 91.858359 88.024063) + (xy 91.85836 88.024066) + (xy 91.946897 88.196341) + (xy 91.949712 88.201818) + (xy 92.077677 88.36327) + (xy 92.08237 88.367264) + (xy 92.082371 88.367265) + (xy 92.18687 88.4562) + (xy 92.234564 88.496791) + (xy 92.414398 88.597297) + (xy 92.466251 88.614145) + (xy 92.589231 88.654104) + (xy 92.647837 88.694178) + (xy 92.675474 88.759574) + (xy 92.663367 88.829531) + (xy 92.615361 88.881837) + (xy 92.585872 88.89481) + (xy 92.441572 88.93728) + (xy 92.259002 89.032726) + (xy 92.254201 89.036586) + (xy 92.254198 89.036588) + (xy 92.103254 89.15795) + (xy 92.098447 89.161815) + (xy 91.966024 89.31963) + (xy 91.963056 89.325028) + (xy 91.963053 89.325033) + (xy 91.869743 89.494765) + (xy 91.866776 89.500162) + (xy 91.804484 89.696532) + (xy 91.803798 89.702649) + (xy 91.803797 89.702653) + (xy 91.788164 89.842025) + (xy 91.78152 89.901262) + (xy 91.798759 90.106553) + (xy 91.800458 90.112478) + (xy 91.848944 90.281568) + (xy 91.855544 90.304586) + (xy 91.858359 90.310063) + (xy 91.85836 90.310066) + (xy 91.946897 90.482341) + (xy 91.949712 90.487818) + (xy 92.077677 90.64927) + (xy 92.08237 90.653264) + (xy 92.082371 90.653265) + (xy 92.184802 90.74044) + (xy 92.234564 90.782791) + (xy 92.414398 90.883297) + (xy 92.466251 90.900145) + (xy 92.589231 90.940104) + (xy 92.647837 90.980178) + (xy 92.675474 91.045574) + (xy 92.663367 91.115531) + (xy 92.615361 91.167837) + (xy 92.585872 91.18081) + (xy 92.441572 91.22328) + (xy 92.436107 91.226137) + (xy 92.434313 91.227075) + (xy 92.259002 91.318726) + (xy 92.254201 91.322586) + (xy 92.254198 91.322588) + (xy 92.243971 91.330811) + (xy 92.098447 91.447815) + (xy 91.966024 91.60563) + (xy 91.963056 91.611028) + (xy 91.963053 91.611033) + (xy 91.889183 91.745403) + (xy 91.866776 91.786162) + (xy 91.804484 91.982532) + (xy 91.803798 91.988649) + (xy 91.803797 91.988653) + (xy 91.785136 92.155026) + (xy 91.78152 92.187262) + (xy 86.428325 92.187262) + (xy 86.411671 91.996909) + (xy 86.409769 91.986122) + (xy 86.357907 91.792571) + (xy 86.354159 91.782277) + (xy 86.269479 91.600677) + (xy 86.264001 91.591189) + (xy 86.242689 91.560752) + (xy 86.232212 91.552377) + (xy 86.218764 91.559446) + (xy 85.589022 92.189188) + (xy 85.581408 92.203132) + (xy 84.851356 92.203132) + (xy 84.852592 92.200868) + (xy 84.852461 92.199035) + (xy 84.84821 92.19242) + (xy 84.214514 91.558724) + (xy 84.202739 91.552294) + (xy 84.190724 91.56159) + (xy 84.169999 91.591189) + (xy 84.164521 91.600677) + (xy 84.079841 91.782277) + (xy 84.076093 91.792571) + (xy 84.024231 91.986122) + (xy 84.022329 91.996909) + (xy 84.004865 92.196525) + (xy 84.004865 92.207475) + (xy 77.0895 92.207475) + (xy 77.0895 90.182522) + (xy 84.037801 90.182522) + (xy 84.076092 90.325423) + (xy 84.079842 90.335727) + (xy 84.164521 90.517323) + (xy 84.169998 90.526811) + (xy 84.284925 90.690942) + (xy 84.291981 90.69935) + (xy 84.43365 90.841019) + (xy 84.442058 90.848075) + (xy 84.595886 90.955787) + (xy 84.640214 91.011244) + (xy 84.647523 91.081864) + (xy 84.615492 91.145224) + (xy 84.595886 91.162213) + (xy 84.575752 91.176311) + (xy 84.567377 91.186788) + (xy 84.574446 91.200236) + (xy 85.204188 91.829978) + (xy 85.218132 91.837592) + (xy 85.219965 91.837461) + (xy 85.22658 91.83321) + (xy 85.860276 91.199514) + (xy 85.866706 91.187739) + (xy 85.85741 91.175725) + (xy 85.838114 91.162213) + (xy 85.793786 91.106756) + (xy 85.786477 91.036137) + (xy 85.818507 90.972776) + (xy 85.838114 90.955787) + (xy 85.991942 90.848075) + (xy 86.00035 90.841019) + (xy 86.142019 90.69935) + (xy 86.149075 90.690942) + (xy 86.264002 90.526811) + (xy 86.269479 90.517323) + (xy 86.354158 90.335727) + (xy 86.357908 90.325423) + (xy 86.394866 90.187497) + (xy 86.39453 90.173401) + (xy 86.386588 90.17) + (xy 84.052561 90.17) + (xy 84.03903 90.173973) + (xy 84.037801 90.182522) + (xy 77.0895 90.182522) + (xy 77.0895 89.644503) + (xy 84.039134 89.644503) + (xy 84.03947 89.658599) + (xy 84.047412 89.662) + (xy 86.381439 89.662) + (xy 86.39497 89.658027) + (xy 86.396199 89.649478) + (xy 86.357908 89.506577) + (xy 86.354158 89.496273) + (xy 86.269479 89.314677) + (xy 86.264002 89.305189) + (xy 86.149075 89.141058) + (xy 86.142019 89.13265) + (xy 86.00035 88.990981) + (xy 85.991942 88.983925) + (xy 85.838114 88.876213) + (xy 85.793786 88.820756) + (xy 85.786477 88.750136) + (xy 85.818508 88.686776) + (xy 85.838114 88.669787) + (xy 85.858248 88.655689) + (xy 85.866623 88.645212) + (xy 85.859554 88.631764) + (xy 85.229812 88.002022) + (xy 85.215868 87.994408) + (xy 85.214035 87.994539) + (xy 85.20742 87.99879) + (xy 84.573724 88.632486) + (xy 84.567294 88.644261) + (xy 84.57659 88.656275) + (xy 84.595886 88.669787) + (xy 84.640214 88.725244) + (xy 84.647523 88.795863) + (xy 84.615493 88.859224) + (xy 84.595886 88.876213) + (xy 84.442058 88.983925) + (xy 84.43365 88.990981) + (xy 84.291981 89.13265) + (xy 84.284925 89.141058) + (xy 84.169998 89.305189) + (xy 84.164521 89.314677) + (xy 84.079842 89.496273) + (xy 84.076092 89.506577) + (xy 84.039134 89.644503) + (xy 77.0895 89.644503) + (xy 77.0895 87.635475) + (xy 84.004865 87.635475) + (xy 84.022329 87.835091) + (xy 84.024231 87.845878) + (xy 84.076093 88.039429) + (xy 84.079841 88.049723) + (xy 84.164521 88.231323) + (xy 84.169999 88.240811) + (xy 84.191311 88.271248) + (xy 84.201788 88.279623) + (xy 84.215236 88.272554) + (xy 84.844978 87.642812) + (xy 84.851356 87.631132) + (xy 85.581408 87.631132) + (xy 85.581539 87.632965) + (xy 85.58579 87.63958) + (xy 86.219486 88.273276) + (xy 86.231261 88.279706) + (xy 86.243276 88.27041) + (xy 86.264001 88.240811) + (xy 86.269479 88.231323) + (xy 86.354159 88.049723) + (xy 86.357907 88.039429) + (xy 86.409769 87.845878) + (xy 86.411671 87.835091) + (xy 86.429135 87.635475) + (xy 86.429135 87.624525) + (xy 86.411671 87.424909) + (xy 86.409769 87.414122) + (xy 86.357907 87.220571) + (xy 86.354159 87.210277) + (xy 86.269479 87.028677) + (xy 86.264001 87.019189) + (xy 86.242689 86.988752) + (xy 86.232212 86.980377) + (xy 86.218764 86.987446) + (xy 85.589022 87.617188) + (xy 85.581408 87.631132) + (xy 84.851356 87.631132) + (xy 84.852592 87.628868) + (xy 84.852461 87.627035) + (xy 84.84821 87.62042) + (xy 84.214514 86.986724) + (xy 84.202739 86.980294) + (xy 84.190724 86.98959) + (xy 84.169999 87.019189) + (xy 84.164521 87.028677) + (xy 84.079841 87.210277) + (xy 84.076093 87.220571) + (xy 84.024231 87.414122) + (xy 84.022329 87.424909) + (xy 84.004865 87.624525) + (xy 84.004865 87.635475) + (xy 77.0895 87.635475) + (xy 77.0895 85.610522) + (xy 84.037801 85.610522) + (xy 84.076092 85.753423) + (xy 84.079842 85.763727) + (xy 84.164521 85.945323) + (xy 84.169998 85.954811) + (xy 84.284925 86.118942) + (xy 84.291981 86.12735) + (xy 84.43365 86.269019) + (xy 84.442058 86.276075) + (xy 84.595886 86.383787) + (xy 84.640214 86.439244) + (xy 84.647523 86.509864) + (xy 84.615492 86.573224) + (xy 84.595886 86.590213) + (xy 84.575752 86.604311) + (xy 84.567377 86.614788) + (xy 84.574446 86.628236) + (xy 85.204188 87.257978) + (xy 85.218132 87.265592) + (xy 85.219965 87.265461) + (xy 85.22658 87.26121) + (xy 85.860276 86.627514) + (xy 85.866706 86.615739) + (xy 85.85741 86.603725) + (xy 85.838114 86.590213) + (xy 85.793786 86.534756) + (xy 85.786477 86.464137) + (xy 85.818507 86.400776) + (xy 85.838114 86.383787) + (xy 85.991942 86.276075) + (xy 86.00035 86.269019) + (xy 86.142019 86.12735) + (xy 86.149075 86.118942) + (xy 86.264002 85.954811) + (xy 86.269479 85.945323) + (xy 86.354158 85.763727) + (xy 86.357908 85.753423) + (xy 86.394866 85.615497) + (xy 86.39453 85.601401) + (xy 86.386588 85.598) + (xy 84.052561 85.598) + (xy 84.03903 85.601973) + (xy 84.037801 85.610522) + (xy 77.0895 85.610522) + (xy 77.0895 85.072503) + (xy 84.039134 85.072503) + (xy 84.03947 85.086599) + (xy 84.047412 85.09) + (xy 84.944885 85.09) + (xy 84.960124 85.085525) + (xy 84.961329 85.084135) + (xy 84.963 85.076452) + (xy 84.963 85.071885) + (xy 85.471 85.071885) + (xy 85.475475 85.087124) + (xy 85.476865 85.088329) + (xy 85.484548 85.09) + (xy 86.381439 85.09) + (xy 86.39497 85.086027) + (xy 86.396199 85.077478) + (xy 86.357908 84.934577) + (xy 86.354158 84.924273) + (xy 86.269479 84.742677) + (xy 86.264002 84.733189) + (xy 86.149075 84.569058) + (xy 86.142019 84.56065) + (xy 86.00035 84.418981) + (xy 85.991942 84.411925) + (xy 85.827811 84.296998) + (xy 85.818323 84.291521) + (xy 85.636727 84.206842) + (xy 85.626423 84.203092) + (xy 85.488497 84.166134) + (xy 85.474401 84.16647) + (xy 85.471 84.174412) + (xy 85.471 85.071885) + (xy 84.963 85.071885) + (xy 84.963 84.179561) + (xy 84.959027 84.16603) + (xy 84.950478 84.164801) + (xy 84.807577 84.203092) + (xy 84.797273 84.206842) + (xy 84.615677 84.291521) + (xy 84.606189 84.296998) + (xy 84.442058 84.411925) + (xy 84.43365 84.418981) + (xy 84.291981 84.56065) + (xy 84.284925 84.569058) + (xy 84.169998 84.733189) + (xy 84.164521 84.742677) + (xy 84.079842 84.924273) + (xy 84.076092 84.934577) + (xy 84.039134 85.072503) + (xy 77.0895 85.072503) + (xy 77.0895 81.122754) + (xy 78.981967 81.122754) + (xy 78.982345 81.12852) + (xy 78.994664 81.31647) + (xy 78.995796 81.333749) + (xy 78.997217 81.339345) + (xy 78.997218 81.33935) + (xy 79.044861 81.526942) + (xy 79.047845 81.53869) + (xy 79.050262 81.543933) + (xy 79.101642 81.655385) + (xy 79.136369 81.730714) + (xy 79.258405 81.903391) + (xy 79.409865 82.050937) + (xy 79.414661 82.054142) + (xy 79.414664 82.054144) + (xy 79.50649 82.1155) + (xy 79.585677 82.168411) + (xy 79.590985 82.170692) + (xy 79.590986 82.170692) + (xy 79.77465 82.2496) + (xy 79.774653 82.249601) + (xy 79.779953 82.251878) + (xy 79.785582 82.253152) + (xy 79.785583 82.253152) + (xy 79.98055 82.297269) + (xy 79.980553 82.297269) + (xy 79.986186 82.298544) + (xy 79.991957 82.298771) + (xy 79.991959 82.298771) + (xy 80.053989 82.301208) + (xy 80.19747 82.306846) + (xy 80.203179 82.306018) + (xy 80.203183 82.306018) + (xy 80.401015 82.277333) + (xy 80.401019 82.277332) + (xy 80.40673 82.276504) + (xy 80.50452 82.243309) + (xy 80.601483 82.210395) + (xy 80.601488 82.210393) + (xy 80.606955 82.208537) + (xy 80.611998 82.205713) + (xy 80.786395 82.108046) + (xy 80.786399 82.108043) + (xy 80.791442 82.105219) + (xy 80.954012 81.970012) + (xy 81.089219 81.807442) + (xy 81.092043 81.802399) + (xy 81.092046 81.802395) + (xy 81.189713 81.627998) + (xy 81.189714 81.627996) + (xy 81.192537 81.622955) + (xy 81.202239 81.594375) + (xy 81.243074 81.5363) + (xy 81.308827 81.509521) + (xy 81.378619 81.522542) + (xy 81.430293 81.571228) + (xy 81.439952 81.591783) + (xy 81.445509 81.60705) + (xy 81.537586 81.804511) + (xy 81.543069 81.814007) + (xy 81.668028 81.992467) + (xy 81.675084 82.000875) + (xy 81.829125 82.154916) + (xy 81.837533 82.161972) + (xy 82.015993 82.286931) + (xy 82.025489 82.292414) + (xy 82.222947 82.38449) + (xy 82.233239 82.388236) + (xy 82.405503 82.434394) + (xy 82.419599 82.434058) + (xy 82.423 82.426116) + (xy 82.423 82.420967) + (xy 82.931 82.420967) + (xy 82.934973 82.434498) + (xy 82.943522 82.435727) + (xy 83.120761 82.388236) + (xy 83.131053 82.38449) + (xy 83.328511 82.292414) + (xy 83.338007 82.286931) + (xy 83.516467 82.161972) + (xy 83.524875 82.154916) + (xy 83.678916 82.000875) + (xy 83.685972 81.992467) + (xy 83.810931 81.814007) + (xy 83.816414 81.804511) + (xy 83.90849 81.607053) + (xy 83.914119 81.591587) + (xy 83.916329 81.592391) + (xy 83.948051 81.540324) + (xy 84.011904 81.509288) + (xy 84.082401 81.517701) + (xy 84.137157 81.562892) + (xy 84.147252 81.580788) + (xy 84.194131 81.682476) + (xy 84.216369 81.730714) + (xy 84.338405 81.903391) + (xy 84.489865 82.050937) + (xy 84.494661 82.054142) + (xy 84.494664 82.054144) + (xy 84.58649 82.1155) + (xy 84.665677 82.168411) + (xy 84.670985 82.170692) + (xy 84.670986 82.170692) + (xy 84.85465 82.2496) + (xy 84.854653 82.249601) + (xy 84.859953 82.251878) + (xy 84.865582 82.253152) + (xy 84.865583 82.253152) + (xy 85.06055 82.297269) + (xy 85.060553 82.297269) + (xy 85.066186 82.298544) + (xy 85.071957 82.298771) + (xy 85.071959 82.298771) + (xy 85.133989 82.301208) + (xy 85.27747 82.306846) + (xy 85.283179 82.306018) + (xy 85.283183 82.306018) + (xy 85.481015 82.277333) + (xy 85.481019 82.277332) + (xy 85.48673 82.276504) + (xy 85.58452 82.243309) + (xy 85.681483 82.210395) + (xy 85.681488 82.210393) + (xy 85.686955 82.208537) + (xy 85.691998 82.205713) + (xy 85.866395 82.108046) + (xy 85.866399 82.108043) + (xy 85.871442 82.105219) + (xy 86.034012 81.970012) + (xy 86.169219 81.807442) + (xy 86.172043 81.802399) + (xy 86.172046 81.802395) + (xy 86.269713 81.627998) + (xy 86.269714 81.627996) + (xy 86.272537 81.622955) + (xy 86.274393 81.617488) + (xy 86.274395 81.617483) + (xy 86.321173 81.479676) + (xy 86.340504 81.42273) + (xy 86.341333 81.417015) + (xy 86.36209 81.27386) + (xy 86.39166 81.209315) + (xy 86.451432 81.171003) + (xy 86.522429 81.171087) + (xy 86.582109 81.209542) + (xy 86.611525 81.274158) + (xy 86.612515 81.283695) + (xy 86.615796 81.333749) + (xy 86.617217 81.339345) + (xy 86.617218 81.33935) + (xy 86.664861 81.526942) + (xy 86.667845 81.53869) + (xy 86.670262 81.543933) + (xy 86.721642 81.655385) + (xy 86.756369 81.730714) + (xy 86.878405 81.903391) + (xy 87.029865 82.050937) + (xy 87.034661 82.054142) + (xy 87.034664 82.054144) + (xy 87.12649 82.1155) + (xy 87.205677 82.168411) + (xy 87.210985 82.170692) + (xy 87.210986 82.170692) + (xy 87.39465 82.2496) + (xy 87.394653 82.249601) + (xy 87.399953 82.251878) + (xy 87.405582 82.253152) + (xy 87.405583 82.253152) + (xy 87.60055 82.297269) + (xy 87.600553 82.297269) + (xy 87.606186 82.298544) + (xy 87.611957 82.298771) + (xy 87.611959 82.298771) + (xy 87.673989 82.301208) + (xy 87.81747 82.306846) + (xy 87.823179 82.306018) + (xy 87.823183 82.306018) + (xy 88.021015 82.277333) + (xy 88.021019 82.277332) + (xy 88.02673 82.276504) + (xy 88.12452 82.243309) + (xy 88.221483 82.210395) + (xy 88.221488 82.210393) + (xy 88.226955 82.208537) + (xy 88.231998 82.205713) + (xy 88.406395 82.108046) + (xy 88.406399 82.108043) + (xy 88.411442 82.105219) + (xy 88.574012 81.970012) + (xy 88.709219 81.807442) + (xy 88.712043 81.802399) + (xy 88.712046 81.802395) + (xy 88.809713 81.627998) + (xy 88.809714 81.627996) + (xy 88.812537 81.622955) + (xy 88.814393 81.617488) + (xy 88.814395 81.617483) + (xy 88.861173 81.479676) + (xy 88.880504 81.42273) + (xy 88.881333 81.417015) + (xy 88.90209 81.27386) + (xy 88.93166 81.209315) + (xy 88.991432 81.171003) + (xy 89.062429 81.171087) + (xy 89.122109 81.209542) + (xy 89.151525 81.274158) + (xy 89.152515 81.283695) + (xy 89.155796 81.333749) + (xy 89.157217 81.339345) + (xy 89.157218 81.33935) + (xy 89.204861 81.526942) + (xy 89.207845 81.53869) + (xy 89.210262 81.543933) + (xy 89.261642 81.655385) + (xy 89.296369 81.730714) + (xy 89.418405 81.903391) + (xy 89.569865 82.050937) + (xy 89.574661 82.054142) + (xy 89.574664 82.054144) + (xy 89.66649 82.1155) + (xy 89.745677 82.168411) + (xy 89.750985 82.170692) + (xy 89.750986 82.170692) + (xy 89.93465 82.2496) + (xy 89.934653 82.249601) + (xy 89.939953 82.251878) + (xy 89.945582 82.253152) + (xy 89.945583 82.253152) + (xy 90.14055 82.297269) + (xy 90.140553 82.297269) + (xy 90.146186 82.298544) + (xy 90.151957 82.298771) + (xy 90.151959 82.298771) + (xy 90.213989 82.301208) + (xy 90.35747 82.306846) + (xy 90.363179 82.306018) + (xy 90.363183 82.306018) + (xy 90.561015 82.277333) + (xy 90.561019 82.277332) + (xy 90.56673 82.276504) + (xy 90.66452 82.243309) + (xy 90.761483 82.210395) + (xy 90.761488 82.210393) + (xy 90.766955 82.208537) + (xy 90.771998 82.205713) + (xy 90.946395 82.108046) + (xy 90.946399 82.108043) + (xy 90.951442 82.105219) + (xy 91.114012 81.970012) + (xy 91.249219 81.807442) + (xy 91.252043 81.802399) + (xy 91.252046 81.802395) + (xy 91.349713 81.627998) + (xy 91.349714 81.627996) + (xy 91.352537 81.622955) + (xy 91.354393 81.617488) + (xy 91.354395 81.617483) + (xy 91.401173 81.479676) + (xy 91.420504 81.42273) + (xy 91.421333 81.417015) + (xy 91.44209 81.27386) + (xy 91.47166 81.209315) + (xy 91.531432 81.171003) + (xy 91.602429 81.171087) + (xy 91.662109 81.209542) + (xy 91.691525 81.274158) + (xy 91.692515 81.283695) + (xy 91.695796 81.333749) + (xy 91.697217 81.339345) + (xy 91.697218 81.33935) + (xy 91.744861 81.526942) + (xy 91.747845 81.53869) + (xy 91.750262 81.543933) + (xy 91.801642 81.655385) + (xy 91.836369 81.730714) + (xy 91.958405 81.903391) + (xy 92.109865 82.050937) + (xy 92.114661 82.054142) + (xy 92.114664 82.054144) + (xy 92.20649 82.1155) + (xy 92.285677 82.168411) + (xy 92.290985 82.170692) + (xy 92.290986 82.170692) + (xy 92.47465 82.2496) + (xy 92.474653 82.249601) + (xy 92.479953 82.251878) + (xy 92.485582 82.253152) + (xy 92.485583 82.253152) + (xy 92.68055 82.297269) + (xy 92.680553 82.297269) + (xy 92.686186 82.298544) + (xy 92.691957 82.298771) + (xy 92.691959 82.298771) + (xy 92.753989 82.301208) + (xy 92.89747 82.306846) + (xy 92.903179 82.306018) + (xy 92.903183 82.306018) + (xy 93.101015 82.277333) + (xy 93.101019 82.277332) + (xy 93.10673 82.276504) + (xy 93.20452 82.243309) + (xy 93.301483 82.210395) + (xy 93.301488 82.210393) + (xy 93.306955 82.208537) + (xy 93.311998 82.205713) + (xy 93.486395 82.108046) + (xy 93.486399 82.108043) + (xy 93.491442 82.105219) + (xy 93.654012 81.970012) + (xy 93.789219 81.807442) + (xy 93.792043 81.802399) + (xy 93.792046 81.802395) + (xy 93.889713 81.627998) + (xy 93.889714 81.627996) + (xy 93.892537 81.622955) + (xy 93.894393 81.617488) + (xy 93.894395 81.617483) + (xy 93.941173 81.479676) + (xy 93.960504 81.42273) + (xy 93.961333 81.417015) + (xy 93.98209 81.27386) + (xy 94.01166 81.209315) + (xy 94.071432 81.171003) + (xy 94.142429 81.171087) + (xy 94.202109 81.209542) + (xy 94.231525 81.274158) + (xy 94.232515 81.283695) + (xy 94.235796 81.333749) + (xy 94.237217 81.339345) + (xy 94.237218 81.33935) + (xy 94.284861 81.526942) + (xy 94.287845 81.53869) + (xy 94.290262 81.543933) + (xy 94.341642 81.655385) + (xy 94.376369 81.730714) + (xy 94.498405 81.903391) + (xy 94.649865 82.050937) + (xy 94.654661 82.054142) + (xy 94.654664 82.054144) + (xy 94.74649 82.1155) + (xy 94.825677 82.168411) + (xy 94.830985 82.170692) + (xy 94.830986 82.170692) + (xy 95.01465 82.2496) + (xy 95.014653 82.249601) + (xy 95.019953 82.251878) + (xy 95.025582 82.253152) + (xy 95.025583 82.253152) + (xy 95.22055 82.297269) + (xy 95.220553 82.297269) + (xy 95.226186 82.298544) + (xy 95.231957 82.298771) + (xy 95.231959 82.298771) + (xy 95.293989 82.301208) + (xy 95.43747 82.306846) + (xy 95.443179 82.306018) + (xy 95.443183 82.306018) + (xy 95.641015 82.277333) + (xy 95.641019 82.277332) + (xy 95.64673 82.276504) + (xy 95.655117 82.273657) + (xy 95.656577 82.273596) + (xy 95.657815 82.273299) + (xy 95.657873 82.273542) + (xy 95.726051 82.270704) + (xy 95.784708 82.303877) + (xy 97.563593 84.082763) + (xy 99.253207 85.772377) + (xy 99.25686 85.776186) + (xy 99.296884 85.819712) + (xy 99.331953 85.841456) + (xy 99.341732 85.848177) + (xy 99.374604 85.873127) + (xy 99.387474 85.878222) + (xy 99.407482 85.888286) + (xy 99.41925 85.895582) + (xy 99.427493 85.897977) + (xy 99.4275 85.89798) + (xy 99.458893 85.907101) + (xy 99.47012 85.910945) + (xy 99.500487 85.922968) + (xy 99.500489 85.922969) + (xy 99.508472 85.926129) + (xy 99.517009 85.927026) + (xy 99.517016 85.927028) + (xy 99.522239 85.927577) + (xy 99.544216 85.931888) + (xy 99.551178 85.933911) + (xy 99.55118 85.933911) + (xy 99.557512 85.935751) + (xy 99.564327 85.936251) + (xy 99.565404 85.936331) + (xy 99.565417 85.936331) + (xy 99.567712 85.9365) + (xy 99.600538 85.9365) + (xy 99.613709 85.93719) + (xy 99.651661 85.941179) + (xy 99.660127 85.939747) + (xy 99.66013 85.939747) + (xy 99.668897 85.938264) + (xy 99.689909 85.9365) + (xy 110.396012 85.9365) + (xy 110.464133 85.956502) + (xy 110.510626 86.010158) + (xy 110.52073 86.080432) + (xy 110.501168 86.129857) + (xy 110.501818 86.130232) + (xy 110.499281 86.134627) + (xy 110.499222 86.134775) + (xy 110.499068 86.134994) + (xy 110.493586 86.144489) + (xy 110.40151 86.341947) + (xy 110.397764 86.352239) + (xy 110.341375 86.562688) + (xy 110.339472 86.573481) + (xy 110.320483 86.790525) + (xy 110.320483 86.801475) + (xy 110.339472 87.018519) + (xy 110.341375 87.029312) + (xy 110.397764 87.239761) + (xy 110.40151 87.250053) + (xy 110.493586 87.447511) + (xy 110.499068 87.457006) + (xy 110.499222 87.457225) + (xy 110.49926 87.457337) + (xy 110.501818 87.461768) + (xy 110.500928 87.462282) + (xy 110.521913 87.524498) + (xy 110.504631 87.593359) + (xy 110.452863 87.641945) + (xy 110.396012 87.6555) + (xy 102.452908 87.6555) + (xy 102.385396 87.635887) + (xy 102.307082 87.586187) + (xy 102.148465 87.529706) + (xy 102.141477 87.528873) + (xy 102.141474 87.528872) + (xy 102.048303 87.517762) + (xy 101.981276 87.509769) + (xy 101.974273 87.510505) + (xy 101.974272 87.510505) + (xy 101.928715 87.515293) + (xy 101.813824 87.527369) + (xy 101.807158 87.529638) + (xy 101.807155 87.529639) + (xy 101.661101 87.57936) + (xy 101.661098 87.579361) + (xy 101.654434 87.58163) + (xy 101.648439 87.585318) + (xy 101.648435 87.58532) + (xy 101.517024 87.666165) + (xy 101.517022 87.666167) + (xy 101.511025 87.669856) + (xy 101.505992 87.674785) + (xy 101.411896 87.766931) + (xy 101.390727 87.787661) + (xy 101.299518 87.92919) + (xy 101.297108 87.93581) + (xy 101.297107 87.935813) + (xy 101.27578 87.994408) + (xy 101.24193 88.087409) + (xy 101.220828 88.254455) + (xy 101.221515 88.261462) + (xy 101.221515 88.261465) + (xy 101.223304 88.279706) + (xy 101.237258 88.422025) + (xy 101.290405 88.581791) + (xy 101.294052 88.587813) + (xy 101.294053 88.587815) + (xy 101.373053 88.718259) + (xy 101.377627 88.725812) + (xy 101.382516 88.730875) + (xy 101.382517 88.730876) + (xy 101.4094 88.758714) + (xy 101.494589 88.846929) + (xy 101.500486 88.850788) + (xy 101.62958 88.935266) + (xy 101.629584 88.935268) + (xy 101.635478 88.939125) + (xy 101.793292 88.997815) + (xy 101.800273 88.998746) + (xy 101.800275 88.998747) + (xy 101.845815 89.004823) + (xy 101.960186 89.020083) + (xy 101.967197 89.019445) + (xy 101.967201 89.019445) + (xy 102.120846 89.005462) + (xy 102.127867 89.004823) + (xy 102.134569 89.002645) + (xy 102.134571 89.002645) + (xy 102.281301 88.95497) + (xy 102.281304 88.954969) + (xy 102.288 88.952793) + (xy 102.432626 88.866578) + (xy 102.43772 88.861727) + (xy 102.437724 88.861724) + (xy 102.549457 88.755322) + (xy 102.549458 88.75532) + (xy 102.554557 88.750465) + (xy 102.55482 88.750069) + (xy 102.611766 88.712182) + (xy 102.649178 88.7065) + (xy 110.396012 88.7065) + (xy 110.464133 88.726502) + (xy 110.510626 88.780158) + (xy 110.52073 88.850432) + (xy 110.501168 88.899857) + (xy 110.501818 88.900232) + (xy 110.499281 88.904627) + (xy 110.499222 88.904775) + (xy 110.499068 88.904994) + (xy 110.493586 88.914489) + (xy 110.40151 89.111947) + (xy 110.397764 89.122239) + (xy 110.341375 89.332688) + (xy 110.339472 89.343481) + (xy 110.320483 89.560525) + (xy 110.320483 89.571475) + (xy 110.339472 89.788519) + (xy 110.341375 89.799312) + (xy 110.397764 90.009761) + (xy 110.40151 90.020053) + (xy 110.493586 90.217511) + (xy 110.499068 90.227006) + (xy 110.499222 90.227225) + (xy 110.49926 90.227337) + (xy 110.501818 90.231768) + (xy 110.500928 90.232282) + (xy 110.521913 90.294498) + (xy 110.504631 90.363359) + (xy 110.452863 90.411945) + (xy 110.396012 90.4255) + (xy 100.833435 90.4255) + (xy 100.828159 90.425389) + (xy 100.815894 90.424875) + (xy 100.769081 90.422913) + (xy 100.728895 90.432338) + (xy 100.717229 90.4345) + (xy 100.684864 90.438933) + (xy 100.684862 90.438934) + (xy 100.676354 90.440099) + (xy 100.668473 90.44351) + (xy 100.668471 90.44351) + (xy 100.663653 90.445595) + (xy 100.64239 90.452627) + (xy 100.637275 90.453827) + (xy 100.637273 90.453828) + (xy 100.628907 90.45579) + (xy 100.621382 90.459927) + (xy 100.621379 90.459928) + (xy 100.592738 90.475674) + (xy 100.582078 90.480896) + (xy 100.552098 90.493869) + (xy 100.552095 90.493871) + (xy 100.544217 90.49728) + (xy 100.537544 90.502683) + (xy 100.53754 90.502686) + (xy 100.533456 90.505993) + (xy 100.51487 90.518482) + (xy 100.510562 90.52085) + (xy 100.510559 90.520853) + (xy 100.502738 90.525152) + (xy 100.502737 90.525153) + (xy 100.494995 90.531836) + (xy 100.471791 90.55504) + (xy 100.461991 90.563865) + (xy 100.432325 90.587888) + (xy 100.422194 90.602144) + (xy 100.408587 90.618244) + (xy 95.783243 95.243588) + (xy 95.720931 95.277614) + (xy 95.669567 95.278072) + (xy 95.503442 95.245028) + (xy 95.50344 95.245028) + (xy 95.497775 95.243901) + (xy 95.492 95.243825) + (xy 95.491996 95.243825) + (xy 95.385976 95.242437) + (xy 95.286346 95.241133) + (xy 95.280649 95.242112) + (xy 95.280648 95.242112) + (xy 95.08365 95.275962) + (xy 95.083649 95.275962) + (xy 95.077953 95.276941) + (xy 94.879575 95.350127) + (xy 94.874614 95.353079) + (xy 94.874613 95.353079) + (xy 94.857089 95.363505) + (xy 94.697856 95.458238) + (xy 94.538881 95.597655) + (xy 94.407976 95.763708) + (xy 94.405287 95.768819) + (xy 94.405285 95.768822) + (xy 94.391792 95.794469) + (xy 94.309523 95.950836) + (xy 94.24682 96.152773) + (xy 94.246141 96.15851) + (xy 94.232088 96.277239) + (xy 94.204217 96.342537) + (xy 94.145469 96.382401) + (xy 94.074494 96.384174) + (xy 94.013828 96.347295) + (xy 93.98273 96.283471) + (xy 93.98149 96.273958) + (xy 93.976716 96.221995) + (xy 93.973081 96.18244) + (xy 93.960359 96.137329) + (xy 93.944894 96.082496) + (xy 93.915686 95.978931) + (xy 93.908612 95.964585) + (xy 93.824719 95.794469) + (xy 93.822165 95.78929) + (xy 93.695651 95.619867) + (xy 93.567237 95.501162) + (xy 93.544622 95.480257) + (xy 93.54462 95.480255) + (xy 93.540381 95.476337) + (xy 93.495671 95.448127) + (xy 93.366434 95.366584) + (xy 93.366433 95.366584) + (xy 93.361554 95.363505) + (xy 93.16516 95.285152) + (xy 93.159503 95.284027) + (xy 93.159497 95.284025) + (xy 92.963442 95.245028) + (xy 92.96344 95.245028) + (xy 92.957775 95.243901) + (xy 92.952 95.243825) + (xy 92.951996 95.243825) + (xy 92.845976 95.242437) + (xy 92.746346 95.241133) + (xy 92.740649 95.242112) + (xy 92.740648 95.242112) + (xy 92.54365 95.275962) + (xy 92.543649 95.275962) + (xy 92.537953 95.276941) + (xy 92.339575 95.350127) + (xy 92.334614 95.353079) + (xy 92.334613 95.353079) + (xy 92.317089 95.363505) + (xy 92.157856 95.458238) + (xy 91.998881 95.597655) + (xy 91.867976 95.763708) + (xy 91.865287 95.768819) + (xy 91.865285 95.768822) + (xy 91.851792 95.794469) + (xy 91.769523 95.950836) + (xy 91.70682 96.152773) + (xy 91.706141 96.15851) + (xy 91.692088 96.277239) + (xy 91.664217 96.342537) + (xy 91.605469 96.382401) + (xy 91.534494 96.384174) + (xy 91.473828 96.347295) + (xy 91.44273 96.283471) + (xy 91.44149 96.273958) + (xy 91.436716 96.221995) + (xy 91.433081 96.18244) + (xy 91.420359 96.137329) + (xy 91.404894 96.082496) + (xy 91.375686 95.978931) + (xy 91.368612 95.964585) + (xy 91.284719 95.794469) + (xy 91.282165 95.78929) + (xy 91.155651 95.619867) + (xy 91.027237 95.501162) + (xy 91.004622 95.480257) + (xy 91.00462 95.480255) + (xy 91.000381 95.476337) + (xy 90.955671 95.448127) + (xy 90.826434 95.366584) + (xy 90.826433 95.366584) + (xy 90.821554 95.363505) + (xy 90.62516 95.285152) + (xy 90.619503 95.284027) + (xy 90.619497 95.284025) + (xy 90.423442 95.245028) + (xy 90.42344 95.245028) + (xy 90.417775 95.243901) + (xy 90.412 95.243825) + (xy 90.411996 95.243825) + (xy 90.305976 95.242437) + (xy 90.206346 95.241133) + (xy 90.200649 95.242112) + (xy 90.200648 95.242112) + (xy 90.00365 95.275962) + (xy 90.003649 95.275962) + (xy 89.997953 95.276941) + (xy 89.799575 95.350127) + (xy 89.794614 95.353079) + (xy 89.794613 95.353079) + (xy 89.777089 95.363505) + (xy 89.617856 95.458238) + (xy 89.458881 95.597655) + (xy 89.327976 95.763708) + (xy 89.325287 95.768819) + (xy 89.325285 95.768822) + (xy 89.232211 95.945726) + (xy 89.232209 95.945731) + (xy 89.229523 95.950836) + (xy 89.227811 95.956349) + (xy 89.227788 95.956405) + (xy 89.18324 96.011686) + (xy 89.115876 96.034106) + (xy 89.047085 96.016547) + (xy 88.998707 95.964585) + (xy 88.992979 95.95128) + (xy 88.988491 95.93895) + (xy 88.896414 95.741489) + (xy 88.890931 95.731993) + (xy 88.765972 95.553533) + (xy 88.758916 95.545125) + (xy 88.604875 95.391084) + (xy 88.596467 95.384028) + (xy 88.418007 95.259069) + (xy 88.408511 95.253586) + (xy 88.211053 95.16151) + (xy 88.200761 95.157764) + (xy 88.028497 95.111606) + (xy 88.014401 95.111942) + (xy 88.011 95.119884) + (xy 88.011 97.660967) + (xy 88.014973 97.674498) + (xy 88.023522 97.675727) + (xy 88.200761 97.628236) + (xy 88.211053 97.62449) + (xy 88.408511 97.532414) + (xy 88.418007 97.526931) + (xy 88.596467 97.401972) + (xy 88.604875 97.394916) + (xy 88.758916 97.240875) + (xy 88.765972 97.232467) + (xy 88.890931 97.054007) + (xy 88.896414 97.044511) + (xy 88.98849 96.847053) + (xy 88.994119 96.831587) + (xy 88.996329 96.832391) + (xy 89.028051 96.780324) + (xy 89.091904 96.749288) + (xy 89.162401 96.757701) + (xy 89.217157 96.802892) + (xy 89.227252 96.820788) + (xy 89.249016 96.867998) + (xy 89.296369 96.970714) + (xy 89.418405 97.143391) + (xy 89.426564 97.151339) + (xy 89.545973 97.267662) + (xy 89.569865 97.290937) + (xy 89.574661 97.294142) + (xy 89.574664 97.294144) + (xy 89.710505 97.38491) + (xy 89.745677 97.408411) + (xy 89.750985 97.410692) + (xy 89.750986 97.410692) + (xy 89.93465 97.4896) + (xy 89.934653 97.489601) + (xy 89.939953 97.491878) + (xy 89.945582 97.493152) + (xy 89.945583 97.493152) + (xy 90.14055 97.537269) + (xy 90.140553 97.537269) + (xy 90.146186 97.538544) + (xy 90.151957 97.538771) + (xy 90.151959 97.538771) + (xy 90.213989 97.541208) + (xy 90.35747 97.546846) + (xy 90.363179 97.546018) + (xy 90.363183 97.546018) + (xy 90.561015 97.517333) + (xy 90.561019 97.517332) + (xy 90.56673 97.516504) + (xy 90.654038 97.486867) + (xy 90.761483 97.450395) + (xy 90.761488 97.450393) + (xy 90.766955 97.448537) + (xy 90.776451 97.443219) + (xy 90.946395 97.348046) + (xy 90.946399 97.348043) + (xy 90.951442 97.345219) + (xy 91.114012 97.210012) + (xy 91.249219 97.047442) + (xy 91.252043 97.042399) + (xy 91.252046 97.042395) + (xy 91.349713 96.867998) + (xy 91.349714 96.867996) + (xy 91.352537 96.862955) + (xy 91.354393 96.857488) + (xy 91.354395 96.857483) + (xy 91.418647 96.6682) + (xy 91.420504 96.66273) + (xy 91.421333 96.657015) + (xy 91.44209 96.51386) + (xy 91.47166 96.449315) + (xy 91.531432 96.411003) + (xy 91.602429 96.411087) + (xy 91.662109 96.449542) + (xy 91.691525 96.514158) + (xy 91.692515 96.523695) + (xy 91.695796 96.573749) + (xy 91.697217 96.579345) + (xy 91.697218 96.57935) + (xy 91.719 96.665115) + (xy 91.747845 96.77869) + (xy 91.836369 96.970714) + (xy 91.958405 97.143391) + (xy 91.966564 97.151339) + (xy 92.085973 97.267662) + (xy 92.109865 97.290937) + (xy 92.114661 97.294142) + (xy 92.114664 97.294144) + (xy 92.250505 97.38491) + (xy 92.285677 97.408411) + (xy 92.290985 97.410692) + (xy 92.290986 97.410692) + (xy 92.47465 97.4896) + (xy 92.474653 97.489601) + (xy 92.479953 97.491878) + (xy 92.485582 97.493152) + (xy 92.485583 97.493152) + (xy 92.68055 97.537269) + (xy 92.680553 97.537269) + (xy 92.686186 97.538544) + (xy 92.691957 97.538771) + (xy 92.691959 97.538771) + (xy 92.753989 97.541208) + (xy 92.89747 97.546846) + (xy 92.903179 97.546018) + (xy 92.903183 97.546018) + (xy 93.101015 97.517333) + (xy 93.101019 97.517332) + (xy 93.10673 97.516504) + (xy 93.194038 97.486867) + (xy 93.301483 97.450395) + (xy 93.301488 97.450393) + (xy 93.306955 97.448537) + (xy 93.316451 97.443219) + (xy 93.486395 97.348046) + (xy 93.486399 97.348043) + (xy 93.491442 97.345219) + (xy 93.654012 97.210012) + (xy 93.789219 97.047442) + (xy 93.792043 97.042399) + (xy 93.792046 97.042395) + (xy 93.889713 96.867998) + (xy 93.889714 96.867996) + (xy 93.892537 96.862955) + (xy 93.894393 96.857488) + (xy 93.894395 96.857483) + (xy 93.958647 96.6682) + (xy 93.960504 96.66273) + (xy 93.961333 96.657015) + (xy 93.98209 96.51386) + (xy 94.01166 96.449315) + (xy 94.071432 96.411003) + (xy 94.142429 96.411087) + (xy 94.202109 96.449542) + (xy 94.231525 96.514158) + (xy 94.232515 96.523695) + (xy 94.235796 96.573749) + (xy 94.237217 96.579345) + (xy 94.237218 96.57935) + (xy 94.259 96.665115) + (xy 94.287845 96.77869) + (xy 94.376369 96.970714) + (xy 94.498405 97.143391) + (xy 94.506564 97.151339) + (xy 94.625973 97.267662) + (xy 94.649865 97.290937) + (xy 94.654661 97.294142) + (xy 94.654664 97.294144) + (xy 94.790505 97.38491) + (xy 94.825677 97.408411) + (xy 94.830985 97.410692) + (xy 94.830986 97.410692) + (xy 95.01465 97.4896) + (xy 95.014653 97.489601) + (xy 95.019953 97.491878) + (xy 95.025582 97.493152) + (xy 95.025583 97.493152) + (xy 95.22055 97.537269) + (xy 95.220553 97.537269) + (xy 95.226186 97.538544) + (xy 95.231957 97.538771) + (xy 95.231959 97.538771) + (xy 95.293989 97.541208) + (xy 95.43747 97.546846) + (xy 95.443179 97.546018) + (xy 95.443183 97.546018) + (xy 95.641015 97.517333) + (xy 95.641019 97.517332) + (xy 95.64673 97.516504) + (xy 95.734038 97.486867) + (xy 95.841483 97.450395) + (xy 95.841488 97.450393) + (xy 95.846955 97.448537) + (xy 95.856451 97.443219) + (xy 96.026395 97.348046) + (xy 96.026399 97.348043) + (xy 96.031442 97.345219) + (xy 96.194012 97.210012) + (xy 96.329219 97.047442) + (xy 96.332043 97.042399) + (xy 96.332046 97.042395) + (xy 96.429713 96.867998) + (xy 96.429714 96.867996) + (xy 96.432537 96.862955) + (xy 96.434393 96.857488) + (xy 96.434395 96.857483) + (xy 96.498647 96.6682) + (xy 96.500504 96.66273) + (xy 96.501333 96.657015) + (xy 96.52209 96.51386) + (xy 96.55166 96.449315) + (xy 96.611432 96.411003) + (xy 96.682429 96.411087) + (xy 96.742109 96.449542) + (xy 96.771525 96.514158) + (xy 96.772515 96.523695) + (xy 96.775796 96.573749) + (xy 96.777217 96.579345) + (xy 96.777218 96.57935) + (xy 96.799 96.665115) + (xy 96.827845 96.77869) + (xy 96.916369 96.970714) + (xy 97.038405 97.143391) + (xy 97.046564 97.151339) + (xy 97.165973 97.267662) + (xy 97.189865 97.290937) + (xy 97.194661 97.294142) + (xy 97.194664 97.294144) + (xy 97.330505 97.38491) + (xy 97.365677 97.408411) + (xy 97.370985 97.410692) + (xy 97.370986 97.410692) + (xy 97.55465 97.4896) + (xy 97.554653 97.489601) + (xy 97.559953 97.491878) + (xy 97.565582 97.493152) + (xy 97.565583 97.493152) + (xy 97.76055 97.537269) + (xy 97.760553 97.537269) + (xy 97.766186 97.538544) + (xy 97.771957 97.538771) + (xy 97.771959 97.538771) + (xy 97.833989 97.541208) + (xy 97.97747 97.546846) + (xy 97.983179 97.546018) + (xy 97.983183 97.546018) + (xy 98.181015 97.517333) + (xy 98.181019 97.517332) + (xy 98.18673 97.516504) + (xy 98.274038 97.486867) + (xy 98.381483 97.450395) + (xy 98.381488 97.450393) + (xy 98.386955 97.448537) + (xy 98.396451 97.443219) + (xy 98.566395 97.348046) + (xy 98.566399 97.348043) + (xy 98.571442 97.345219) + (xy 98.734012 97.210012) + (xy 98.869219 97.047442) + (xy 98.872043 97.042399) + (xy 98.872046 97.042395) + (xy 98.969713 96.867998) + (xy 98.969714 96.867996) + (xy 98.972537 96.862955) + (xy 98.974393 96.857488) + (xy 98.974395 96.857483) + (xy 99.038647 96.6682) + (xy 99.040504 96.66273) + (xy 99.041333 96.657015) + (xy 99.06209 96.51386) + (xy 99.09166 96.449315) + (xy 99.151432 96.411003) + (xy 99.222429 96.411087) + (xy 99.282109 96.449542) + (xy 99.311525 96.514158) + (xy 99.312515 96.523695) + (xy 99.315796 96.573749) + (xy 99.317217 96.579345) + (xy 99.317218 96.57935) + (xy 99.339 96.665115) + (xy 99.367845 96.77869) + (xy 99.456369 96.970714) + (xy 99.578405 97.143391) + (xy 99.586564 97.151339) + (xy 99.705973 97.267662) + (xy 99.729865 97.290937) + (xy 99.734661 97.294142) + (xy 99.734664 97.294144) + (xy 99.870505 97.38491) + (xy 99.905677 97.408411) + (xy 99.910985 97.410692) + (xy 99.910986 97.410692) + (xy 100.09465 97.4896) + (xy 100.094653 97.489601) + (xy 100.099953 97.491878) + (xy 100.105582 97.493152) + (xy 100.105583 97.493152) + (xy 100.30055 97.537269) + (xy 100.300553 97.537269) + (xy 100.306186 97.538544) + (xy 100.311957 97.538771) + (xy 100.311959 97.538771) + (xy 100.373989 97.541208) + (xy 100.51747 97.546846) + (xy 100.523179 97.546018) + (xy 100.523183 97.546018) + (xy 100.721015 97.517333) + (xy 100.721019 97.517332) + (xy 100.72673 97.516504) + (xy 100.814038 97.486867) + (xy 100.921483 97.450395) + (xy 100.921488 97.450393) + (xy 100.926955 97.448537) + (xy 100.936451 97.443219) + (xy 101.106395 97.348046) + (xy 101.106399 97.348043) + (xy 101.111442 97.345219) + (xy 101.274012 97.210012) + (xy 101.409219 97.047442) + (xy 101.412043 97.042399) + (xy 101.412046 97.042395) + (xy 101.509713 96.867998) + (xy 101.509714 96.867996) + (xy 101.512537 96.862955) + (xy 101.514393 96.857488) + (xy 101.514395 96.857483) + (xy 101.578647 96.6682) + (xy 101.580504 96.66273) + (xy 101.581333 96.657015) + (xy 101.60209 96.51386) + (xy 101.63166 96.449315) + (xy 101.691432 96.411003) + (xy 101.762429 96.411087) + (xy 101.822109 96.449542) + (xy 101.851525 96.514158) + (xy 101.852515 96.523695) + (xy 101.855796 96.573749) + (xy 101.857217 96.579345) + (xy 101.857218 96.57935) + (xy 101.879 96.665115) + (xy 101.907845 96.77869) + (xy 101.996369 96.970714) + (xy 102.118405 97.143391) + (xy 102.126564 97.151339) + (xy 102.245973 97.267662) + (xy 102.269865 97.290937) + (xy 102.274661 97.294142) + (xy 102.274664 97.294144) + (xy 102.410505 97.38491) + (xy 102.445677 97.408411) + (xy 102.450985 97.410692) + (xy 102.450986 97.410692) + (xy 102.63465 97.4896) + (xy 102.634653 97.489601) + (xy 102.639953 97.491878) + (xy 102.645582 97.493152) + (xy 102.645583 97.493152) + (xy 102.84055 97.537269) + (xy 102.840553 97.537269) + (xy 102.846186 97.538544) + (xy 102.851957 97.538771) + (xy 102.851959 97.538771) + (xy 102.913989 97.541208) + (xy 103.05747 97.546846) + (xy 103.063179 97.546018) + (xy 103.063183 97.546018) + (xy 103.261015 97.517333) + (xy 103.261019 97.517332) + (xy 103.26673 97.516504) + (xy 103.354038 97.486867) + (xy 103.461483 97.450395) + (xy 103.461488 97.450393) + (xy 103.466955 97.448537) + (xy 103.476451 97.443219) + (xy 103.646395 97.348046) + (xy 103.646399 97.348043) + (xy 103.651442 97.345219) + (xy 103.814012 97.210012) + (xy 103.949219 97.047442) + (xy 103.952043 97.042399) + (xy 103.952046 97.042395) + (xy 104.049713 96.867998) + (xy 104.049714 96.867996) + (xy 104.052537 96.862955) + (xy 104.054393 96.857488) + (xy 104.054395 96.857483) + (xy 104.118647 96.6682) + (xy 104.120504 96.66273) + (xy 104.121333 96.657015) + (xy 104.14209 96.51386) + (xy 104.17166 96.449315) + (xy 104.231432 96.411003) + (xy 104.302429 96.411087) + (xy 104.362109 96.449542) + (xy 104.391525 96.514158) + (xy 104.392515 96.523695) + (xy 104.395796 96.573749) + (xy 104.397217 96.579345) + (xy 104.397218 96.57935) + (xy 104.419 96.665115) + (xy 104.447845 96.77869) + (xy 104.536369 96.970714) + (xy 104.658405 97.143391) + (xy 104.666564 97.151339) + (xy 104.785973 97.267662) + (xy 104.809865 97.290937) + (xy 104.814661 97.294142) + (xy 104.814664 97.294144) + (xy 104.950505 97.38491) + (xy 104.985677 97.408411) + (xy 104.990985 97.410692) + (xy 104.990986 97.410692) + (xy 105.17465 97.4896) + (xy 105.174653 97.489601) + (xy 105.179953 97.491878) + (xy 105.185582 97.493152) + (xy 105.185583 97.493152) + (xy 105.38055 97.537269) + (xy 105.380553 97.537269) + (xy 105.386186 97.538544) + (xy 105.391957 97.538771) + (xy 105.391959 97.538771) + (xy 105.453989 97.541208) + (xy 105.59747 97.546846) + (xy 105.603179 97.546018) + (xy 105.603183 97.546018) + (xy 105.801015 97.517333) + (xy 105.801019 97.517332) + (xy 105.80673 97.516504) + (xy 105.894038 97.486867) + (xy 106.001483 97.450395) + (xy 106.001488 97.450393) + (xy 106.006955 97.448537) + (xy 106.016451 97.443219) + (xy 106.186395 97.348046) + (xy 106.186399 97.348043) + (xy 106.191442 97.345219) + (xy 106.354012 97.210012) + (xy 106.489219 97.047442) + (xy 106.492043 97.042399) + (xy 106.492046 97.042395) + (xy 106.589713 96.867998) + (xy 106.589714 96.867996) + (xy 106.592537 96.862955) + (xy 106.594393 96.857488) + (xy 106.594395 96.857483) + (xy 106.658647 96.6682) + (xy 106.660504 96.66273) + (xy 106.661333 96.657015) + (xy 106.68209 96.51386) + (xy 106.71166 96.449315) + (xy 106.771432 96.411003) + (xy 106.842429 96.411087) + (xy 106.902109 96.449542) + (xy 106.931525 96.514158) + (xy 106.932515 96.523695) + (xy 106.935796 96.573749) + (xy 106.937217 96.579345) + (xy 106.937218 96.57935) + (xy 106.959 96.665115) + (xy 106.987845 96.77869) + (xy 107.076369 96.970714) + (xy 107.198405 97.143391) + (xy 107.206564 97.151339) + (xy 107.325973 97.267662) + (xy 107.349865 97.290937) + (xy 107.354661 97.294142) + (xy 107.354664 97.294144) + (xy 107.490505 97.38491) + (xy 107.525677 97.408411) + (xy 107.530985 97.410692) + (xy 107.530986 97.410692) + (xy 107.71465 97.4896) + (xy 107.714653 97.489601) + (xy 107.719953 97.491878) + (xy 107.725582 97.493152) + (xy 107.725583 97.493152) + (xy 107.92055 97.537269) + (xy 107.920553 97.537269) + (xy 107.926186 97.538544) + (xy 107.931957 97.538771) + (xy 107.931959 97.538771) + (xy 107.993989 97.541208) + (xy 108.13747 97.546846) + (xy 108.143179 97.546018) + (xy 108.143183 97.546018) + (xy 108.341015 97.517333) + (xy 108.341019 97.517332) + (xy 108.34673 97.516504) + (xy 108.434038 97.486867) + (xy 108.541483 97.450395) + (xy 108.541488 97.450393) + (xy 108.546955 97.448537) + (xy 108.556451 97.443219) + (xy 108.726395 97.348046) + (xy 108.726399 97.348043) + (xy 108.731442 97.345219) + (xy 108.894012 97.210012) + (xy 108.935247 97.160432) + (xy 109.017169 97.061931) + (xy 109.076106 97.022347) + (xy 109.114043 97.0165) + (xy 110.585682 97.0165) + (xy 110.653803 97.036502) + (xy 110.700296 97.090158) + (xy 110.7104 97.160432) + (xy 110.684632 97.220506) + (xy 110.663976 97.246708) + (xy 110.661287 97.251819) + (xy 110.661285 97.251822) + (xy 110.638822 97.294518) + (xy 110.565523 97.433836) + (xy 110.50282 97.635773) + (xy 110.477967 97.845754) + (xy 110.491796 98.056749) + (xy 110.493217 98.062345) + (xy 110.493218 98.06235) + (xy 110.515784 98.1512) + (xy 110.543845 98.26169) + (xy 110.632369 98.453714) + (xy 110.754405 98.626391) + (xy 110.905865 98.773937) + (xy 110.910661 98.777142) + (xy 110.910664 98.777144) + (xy 111.053936 98.872875) + (xy 111.081677 98.891411) + (xy 111.086985 98.893692) + (xy 111.086986 98.893692) + (xy 111.27065 98.9726) + (xy 111.270653 98.972601) + (xy 111.275953 98.974878) + (xy 111.281582 98.976152) + (xy 111.281583 98.976152) + (xy 111.47655 99.020269) + (xy 111.476553 99.020269) + (xy 111.482186 99.021544) + (xy 111.487957 99.021771) + (xy 111.487959 99.021771) + (xy 111.549989 99.024208) + (xy 111.69347 99.029846) + (xy 111.699179 99.029018) + (xy 111.699183 99.029018) + (xy 111.897015 99.000333) + (xy 111.897019 99.000332) + (xy 111.90273 98.999504) + (xy 111.981987 98.9726) + (xy 112.097483 98.933395) + (xy 112.097488 98.933393) + (xy 112.102955 98.931537) + (xy 112.107998 98.928713) + (xy 112.282395 98.831046) + (xy 112.282399 98.831043) + (xy 112.287442 98.828219) + (xy 112.450012 98.693012) + (xy 112.585219 98.530442) + (xy 112.588043 98.525399) + (xy 112.588046 98.525395) + (xy 112.685713 98.350998) + (xy 112.685714 98.350996) + (xy 112.688537 98.345955) + (xy 112.690393 98.340488) + (xy 112.690395 98.340483) + (xy 112.754647 98.1512) + (xy 112.756504 98.14573) + (xy 112.786846 97.93647) + (xy 112.788429 97.876) + (xy 112.769081 97.66544) + (xy 112.76304 97.644018) + (xy 112.734751 97.543713) + (xy 112.711686 97.461931) + (xy 112.705998 97.450395) + (xy 112.620719 97.277469) + (xy 112.618165 97.27229) + (xy 112.587141 97.230744) + (xy 112.577542 97.217889) + (xy 112.55281 97.151339) + (xy 112.567984 97.081983) + (xy 112.618246 97.031841) + (xy 112.6785 97.0165) + (xy 113.370225 97.0165) + (xy 113.438346 97.036502) + (xy 113.473122 97.06978) + (xy 113.537189 97.160432) + (xy 113.594405 97.241391) + (xy 113.745865 97.388937) + (xy 113.750661 97.392142) + (xy 113.750664 97.392144) + (xy 113.855108 97.461931) + (xy 113.921677 97.506411) + (xy 113.926985 97.508692) + (xy 113.926986 97.508692) + (xy 114.11065 97.5876) + (xy 114.110653 97.587601) + (xy 114.115953 97.589878) + (xy 114.121582 97.591152) + (xy 114.121583 97.591152) + (xy 114.31655 97.635269) + (xy 114.316553 97.635269) + (xy 114.322186 97.636544) + (xy 114.327957 97.636771) + (xy 114.327959 97.636771) + (xy 114.389989 97.639208) + (xy 114.53347 97.644846) + (xy 114.539179 97.644018) + (xy 114.539183 97.644018) + (xy 114.737015 97.615333) + (xy 114.737019 97.615332) + (xy 114.74273 97.614504) + (xy 114.821987 97.5876) + (xy 114.937483 97.548395) + (xy 114.937488 97.548393) + (xy 114.942955 97.546537) + (xy 114.948378 97.5435) + (xy 115.122395 97.446046) + (xy 115.122399 97.446043) + (xy 115.127442 97.443219) + (xy 115.290012 97.308012) + (xy 115.425219 97.145442) + (xy 115.428043 97.140399) + (xy 115.428046 97.140395) + (xy 115.525713 96.965998) + (xy 115.525714 96.965996) + (xy 115.528537 96.960955) + (xy 115.530393 96.955488) + (xy 115.530395 96.955483) + (xy 115.591219 96.7763) + (xy 115.596504 96.76073) + (xy 115.59813 96.749521) + (xy 115.626314 96.55514) + (xy 115.626314 96.555138) + (xy 115.626846 96.55147) + (xy 115.628429 96.491) + (xy 115.609081 96.28044) + (xy 115.551686 96.076931) + (xy 115.533616 96.040287) + (xy 115.460719 95.892469) + (xy 115.458165 95.88729) + (xy 115.362494 95.759171) + (xy 115.335104 95.722491) + (xy 115.335103 95.72249) + (xy 115.331651 95.717867) + (xy 115.206507 95.602185) + (xy 115.180622 95.578257) + (xy 115.18062 95.578255) + (xy 115.176381 95.574337) + (xy 115.059474 95.500574) + (xy 115.002434 95.464584) + (xy 115.002433 95.464584) + (xy 114.997554 95.461505) + (xy 114.80116 95.383152) + (xy 114.795503 95.382027) + (xy 114.795497 95.382025) + (xy 114.599442 95.343028) + (xy 114.59944 95.343028) + (xy 114.593775 95.341901) + (xy 114.588 95.341825) + (xy 114.587996 95.341825) + (xy 114.481976 95.340437) + (xy 114.382346 95.339133) + (xy 114.376649 95.340112) + (xy 114.376648 95.340112) + (xy 114.17965 95.373962) + (xy 114.179649 95.373962) + (xy 114.173953 95.374941) + (xy 113.975575 95.448127) + (xy 113.970614 95.451079) + (xy 113.970613 95.451079) + (xy 113.918475 95.482098) + (xy 113.793856 95.556238) + (xy 113.634881 95.695655) + (xy 113.503976 95.861708) + (xy 113.490517 95.88729) + (xy 113.484793 95.898169) + (xy 113.435373 95.949141) + (xy 113.373285 95.9655) + (xy 112.683131 95.9655) + (xy 112.61501 95.945498) + (xy 112.568517 95.891842) + (xy 112.558413 95.821568) + (xy 112.579291 95.768132) + (xy 112.581517 95.764893) + (xy 112.585219 95.760442) + (xy 112.595834 95.741489) + (xy 112.685713 95.580998) + (xy 112.685714 95.580996) + (xy 112.688537 95.575955) + (xy 112.690393 95.570488) + (xy 112.690395 95.570483) + (xy 112.752797 95.38665) + (xy 112.756504 95.37573) + (xy 112.759789 95.353079) + (xy 112.786314 95.17014) + (xy 112.786314 95.170138) + (xy 112.786846 95.16647) + (xy 112.788429 95.106) + (xy 112.769081 94.89544) + (xy 112.76304 94.874018) + (xy 112.724533 94.737483) + (xy 112.711686 94.691931) + (xy 112.708427 94.685321) + (xy 112.620719 94.507469) + (xy 112.618165 94.50229) + (xy 112.577542 94.447889) + (xy 112.55281 94.381339) + (xy 112.567984 94.311983) + (xy 112.618246 94.261841) + (xy 112.6785 94.2465) + (xy 113.370225 94.2465) + (xy 113.438346 94.266502) + (xy 113.473122 94.29978) + (xy 113.537189 94.390432) + (xy 113.594405 94.471391) + (xy 113.745865 94.618937) + (xy 113.750661 94.622142) + (xy 113.750664 94.622144) + (xy 113.847481 94.686835) + (xy 113.921677 94.736411) + (xy 113.926985 94.738692) + (xy 113.926986 94.738692) + (xy 114.11065 94.8176) + (xy 114.110653 94.817601) + (xy 114.115953 94.819878) + (xy 114.121582 94.821152) + (xy 114.121583 94.821152) + (xy 114.31655 94.865269) + (xy 114.316553 94.865269) + (xy 114.322186 94.866544) + (xy 114.327957 94.866771) + (xy 114.327959 94.866771) + (xy 114.389989 94.869208) + (xy 114.53347 94.874846) + (xy 114.539179 94.874018) + (xy 114.539183 94.874018) + (xy 114.737015 94.845333) + (xy 114.737019 94.845332) + (xy 114.74273 94.844504) + (xy 114.821987 94.8176) + (xy 114.937483 94.778395) + (xy 114.937488 94.778393) + (xy 114.942955 94.776537) + (xy 114.948837 94.773243) + (xy 115.122395 94.676046) + (xy 115.122399 94.676043) + (xy 115.127442 94.673219) + (xy 115.290012 94.538012) + (xy 115.425219 94.375442) + (xy 115.428043 94.370399) + (xy 115.428046 94.370395) + (xy 115.525713 94.195998) + (xy 115.525714 94.195996) + (xy 115.528537 94.190955) + (xy 115.530393 94.185488) + (xy 115.530395 94.185483) + (xy 115.594647 93.9962) + (xy 115.596504 93.99073) + (xy 115.626846 93.78147) + (xy 115.628429 93.721) + (xy 115.609081 93.51044) + (xy 115.551686 93.306931) + (xy 115.548005 93.299465) + (xy 115.460719 93.122469) + (xy 115.458165 93.11729) + (xy 115.363443 92.990442) + (xy 115.335104 92.952491) + (xy 115.335103 92.95249) + (xy 115.331651 92.947867) + (xy 115.188061 92.815134) + (xy 115.180622 92.808257) + (xy 115.18062 92.808255) + (xy 115.176381 92.804337) + (xy 115.143014 92.783284) + (xy 115.002434 92.694584) + (xy 115.002433 92.694584) + (xy 114.997554 92.691505) + (xy 114.80116 92.613152) + (xy 114.795503 92.612027) + (xy 114.795497 92.612025) + (xy 114.599442 92.573028) + (xy 114.59944 92.573028) + (xy 114.593775 92.571901) + (xy 114.588 92.571825) + (xy 114.587996 92.571825) + (xy 114.481976 92.570437) + (xy 114.382346 92.569133) + (xy 114.376649 92.570112) + (xy 114.376648 92.570112) + (xy 114.17965 92.603962) + (xy 114.179649 92.603962) + (xy 114.173953 92.604941) + (xy 113.975575 92.678127) + (xy 113.970614 92.681079) + (xy 113.970613 92.681079) + (xy 113.953089 92.691505) + (xy 113.793856 92.786238) + (xy 113.634881 92.925655) + (xy 113.503976 93.091708) + (xy 113.491225 93.115944) + (xy 113.484793 93.128169) + (xy 113.435373 93.179141) + (xy 113.373285 93.1955) + (xy 112.683131 93.1955) + (xy 112.61501 93.175498) + (xy 112.568517 93.121842) + (xy 112.558413 93.051568) + (xy 112.579291 92.998132) + (xy 112.581517 92.994893) + (xy 112.585219 92.990442) + (xy 112.601279 92.961766) + (xy 112.685713 92.810998) + (xy 112.685714 92.810996) + (xy 112.688537 92.805955) + (xy 112.690393 92.800488) + (xy 112.690395 92.800483) + (xy 112.753258 92.615292) + (xy 112.756504 92.60573) + (xy 112.757906 92.596066) + (xy 112.786314 92.40014) + (xy 112.786314 92.400138) + (xy 112.786846 92.39647) + (xy 112.788429 92.336) + (xy 112.769081 92.12544) + (xy 112.76304 92.104018) + (xy 112.747128 92.0476) + (xy 112.711686 91.921931) + (xy 112.70843 91.915327) + (xy 112.620719 91.737469) + (xy 112.618165 91.73229) + (xy 112.577542 91.677889) + (xy 112.55281 91.611339) + (xy 112.567984 91.541983) + (xy 112.618246 91.491841) + (xy 112.6785 91.4765) + (xy 113.370225 91.4765) + (xy 113.438346 91.496502) + (xy 113.473122 91.52978) + (xy 113.531988 91.613073) + (xy 113.594405 91.701391) + (xy 113.598539 91.705418) + (xy 113.734085 91.837461) + (xy 113.745865 91.848937) + (xy 113.750661 91.852142) + (xy 113.750664 91.852144) + (xy 113.847483 91.916836) + (xy 113.921677 91.966411) + (xy 113.926985 91.968692) + (xy 113.926986 91.968692) + (xy 114.11065 92.0476) + (xy 114.110653 92.047601) + (xy 114.115953 92.049878) + (xy 114.121582 92.051152) + (xy 114.121583 92.051152) + (xy 114.31655 92.095269) + (xy 114.316553 92.095269) + (xy 114.322186 92.096544) + (xy 114.327957 92.096771) + (xy 114.327959 92.096771) + (xy 114.389989 92.099208) + (xy 114.53347 92.104846) + (xy 114.539179 92.104018) + (xy 114.539183 92.104018) + (xy 114.737015 92.075333) + (xy 114.737019 92.075332) + (xy 114.74273 92.074504) + (xy 114.821987 92.0476) + (xy 114.937483 92.008395) + (xy 114.937488 92.008393) + (xy 114.942955 92.006537) + (xy 114.970577 91.991068) + (xy 115.122395 91.906046) + (xy 115.122399 91.906043) + (xy 115.127442 91.903219) + (xy 115.290012 91.768012) + (xy 115.425219 91.605442) + (xy 115.428043 91.600399) + (xy 115.428046 91.600395) + (xy 115.525713 91.425998) + (xy 115.525714 91.425996) + (xy 115.528537 91.420955) + (xy 115.530393 91.415488) + (xy 115.530395 91.415483) + (xy 115.594647 91.2262) + (xy 115.596504 91.22073) + (xy 115.599581 91.199514) + (xy 115.626314 91.01514) + (xy 115.626314 91.015138) + (xy 115.626846 91.01147) + (xy 115.628429 90.951) + (xy 115.609081 90.74044) + (xy 115.551686 90.536931) + (xy 115.546696 90.526811) + (xy 115.460719 90.352469) + (xy 115.458165 90.34729) + (xy 115.331651 90.177867) + (xy 115.176381 90.034337) + (xy 114.997554 89.921505) + (xy 114.80116 89.843152) + (xy 114.795503 89.842027) + (xy 114.795497 89.842025) + (xy 114.599442 89.803028) + (xy 114.59944 89.803028) + (xy 114.593775 89.801901) + (xy 114.588 89.801825) + (xy 114.587996 89.801825) + (xy 114.481976 89.800437) + (xy 114.382346 89.799133) + (xy 114.376649 89.800112) + (xy 114.376648 89.800112) + (xy 114.17965 89.833962) + (xy 114.179649 89.833962) + (xy 114.173953 89.834941) + (xy 113.975575 89.908127) + (xy 113.970614 89.911079) + (xy 113.970613 89.911079) + (xy 113.953089 89.921505) + (xy 113.793856 90.016238) + (xy 113.634881 90.155655) + (xy 113.503976 90.321708) + (xy 113.490517 90.34729) + (xy 113.484793 90.358169) + (xy 113.435373 90.409141) + (xy 113.373285 90.4255) + (xy 112.869988 90.4255) + (xy 112.801867 90.405498) + (xy 112.755374 90.351842) + (xy 112.74527 90.281568) + (xy 112.764832 90.232143) + (xy 112.764182 90.231768) + (xy 112.766719 90.227373) + (xy 112.766778 90.227225) + (xy 112.766932 90.227006) + (xy 112.772414 90.217511) + (xy 112.86449 90.020053) + (xy 112.868236 90.009761) + (xy 112.924625 89.799312) + (xy 112.926528 89.788519) + (xy 112.945517 89.571475) + (xy 112.945517 89.560525) + (xy 112.926528 89.343481) + (xy 112.924625 89.332688) + (xy 112.868236 89.122239) + (xy 112.86449 89.111947) + (xy 112.772414 88.914489) + (xy 112.766932 88.904994) + (xy 112.766778 88.904775) + (xy 112.76674 88.904663) + (xy 112.764182 88.900232) + (xy 112.765072 88.899718) + (xy 112.744087 88.837502) + (xy 112.761369 88.768641) + (xy 112.813137 88.720055) + (xy 112.869988 88.7065) + (xy 113.370225 88.7065) + (xy 113.438346 88.726502) + (xy 113.473122 88.75978) + (xy 113.487524 88.780158) + (xy 113.594405 88.931391) + (xy 113.648333 88.983925) + (xy 113.706801 89.040882) + (xy 113.745865 89.078937) + (xy 113.750661 89.082142) + (xy 113.750664 89.082144) + (xy 113.876976 89.166543) + (xy 113.921677 89.196411) + (xy 113.926985 89.198692) + (xy 113.926986 89.198692) + (xy 114.11065 89.2776) + (xy 114.110653 89.277601) + (xy 114.115953 89.279878) + (xy 114.121582 89.281152) + (xy 114.121583 89.281152) + (xy 114.31655 89.325269) + (xy 114.316553 89.325269) + (xy 114.322186 89.326544) + (xy 114.327957 89.326771) + (xy 114.327959 89.326771) + (xy 114.389989 89.329208) + (xy 114.53347 89.334846) + (xy 114.539179 89.334018) + (xy 114.539183 89.334018) + (xy 114.737015 89.305333) + (xy 114.737019 89.305332) + (xy 114.74273 89.304504) + (xy 114.821987 89.2776) + (xy 114.937483 89.238395) + (xy 114.937488 89.238393) + (xy 114.942955 89.236537) + (xy 114.947998 89.233713) + (xy 115.122395 89.136046) + (xy 115.122399 89.136043) + (xy 115.127442 89.133219) + (xy 115.290012 88.998012) + (xy 115.425219 88.835442) + (xy 115.428043 88.830399) + (xy 115.428046 88.830395) + (xy 115.525713 88.655998) + (xy 115.525714 88.655996) + (xy 115.528537 88.650955) + (xy 115.530393 88.645488) + (xy 115.530395 88.645483) + (xy 115.594647 88.4562) + (xy 115.596504 88.45073) + (xy 115.601683 88.415016) + (xy 115.626314 88.24514) + (xy 115.626314 88.245138) + (xy 115.626846 88.24147) + (xy 115.628429 88.181) + (xy 115.609081 87.97044) + (xy 115.551686 87.766931) + (xy 115.506245 87.674785) + (xy 115.460719 87.582469) + (xy 115.458165 87.57729) + (xy 115.331651 87.407867) + (xy 115.176381 87.264337) + (xy 115.109773 87.22231) + (xy 115.002434 87.154584) + (xy 115.002433 87.154584) + (xy 114.997554 87.151505) + (xy 114.80116 87.073152) + (xy 114.795503 87.072027) + (xy 114.795497 87.072025) + (xy 114.599442 87.033028) + (xy 114.59944 87.033028) + (xy 114.593775 87.031901) + (xy 114.588 87.031825) + (xy 114.587996 87.031825) + (xy 114.481976 87.030437) + (xy 114.382346 87.029133) + (xy 114.376649 87.030112) + (xy 114.376648 87.030112) + (xy 114.17965 87.063962) + (xy 114.179649 87.063962) + (xy 114.173953 87.064941) + (xy 113.975575 87.138127) + (xy 113.970614 87.141079) + (xy 113.970613 87.141079) + (xy 113.834076 87.22231) + (xy 113.793856 87.246238) + (xy 113.634881 87.385655) + (xy 113.503976 87.551708) + (xy 113.488233 87.58163) + (xy 113.484793 87.588169) + (xy 113.435373 87.639141) + (xy 113.373285 87.6555) + (xy 112.869988 87.6555) + (xy 112.801867 87.635498) + (xy 112.755374 87.581842) + (xy 112.74527 87.511568) + (xy 112.764832 87.462143) + (xy 112.764182 87.461768) + (xy 112.766719 87.457373) + (xy 112.766778 87.457225) + (xy 112.766932 87.457006) + (xy 112.772414 87.447511) + (xy 112.86449 87.250053) + (xy 112.868236 87.239761) + (xy 112.924625 87.029312) + (xy 112.926528 87.018519) + (xy 112.945517 86.801475) + (xy 112.945517 86.790525) + (xy 112.926528 86.573481) + (xy 112.924625 86.562688) + (xy 112.868236 86.352239) + (xy 112.86449 86.341947) + (xy 112.772414 86.144489) + (xy 112.766932 86.134994) + (xy 112.766778 86.134775) + (xy 112.76674 86.134663) + (xy 112.764182 86.130232) + (xy 112.765072 86.129718) + (xy 112.744087 86.067502) + (xy 112.761369 85.998641) + (xy 112.813137 85.950055) + (xy 112.869988 85.9365) + (xy 113.370225 85.9365) + (xy 113.438346 85.956502) + (xy 113.473122 85.98978) + (xy 113.487524 86.010158) + (xy 113.594405 86.161391) + (xy 113.745865 86.308937) + (xy 113.750661 86.312142) + (xy 113.750664 86.312144) + (xy 113.844674 86.374959) + (xy 113.921677 86.426411) + (xy 113.926985 86.428692) + (xy 113.926986 86.428692) + (xy 114.11065 86.5076) + (xy 114.110653 86.507601) + (xy 114.115953 86.509878) + (xy 114.121582 86.511152) + (xy 114.121583 86.511152) + (xy 114.31655 86.555269) + (xy 114.316553 86.555269) + (xy 114.322186 86.556544) + (xy 114.327957 86.556771) + (xy 114.327959 86.556771) + (xy 114.389989 86.559208) + (xy 114.53347 86.564846) + (xy 114.539179 86.564018) + (xy 114.539183 86.564018) + (xy 114.737015 86.535333) + (xy 114.737019 86.535332) + (xy 114.74273 86.534504) + (xy 114.815276 86.509878) + (xy 114.937483 86.468395) + (xy 114.937488 86.468393) + (xy 114.942955 86.466537) + (xy 114.947998 86.463713) + (xy 115.122395 86.366046) + (xy 115.122399 86.366043) + (xy 115.127442 86.363219) + (xy 115.290012 86.228012) + (xy 115.425219 86.065442) + (xy 115.428043 86.060399) + (xy 115.428046 86.060395) + (xy 115.525713 85.885998) + (xy 115.525714 85.885996) + (xy 115.528537 85.880955) + (xy 115.530393 85.875488) + (xy 115.530395 85.875483) + (xy 115.594647 85.6862) + (xy 115.596504 85.68073) + (xy 115.608007 85.601401) + (xy 115.626314 85.47514) + (xy 115.626314 85.475138) + (xy 115.626846 85.47147) + (xy 115.628429 85.411) + (xy 115.609081 85.20044) + (xy 115.593475 85.145103) + (xy 115.587673 85.124532) + (xy 115.551686 84.996931) + (xy 115.520937 84.934577) + (xy 115.460719 84.812469) + (xy 115.458165 84.80729) + (xy 115.363443 84.680442) + (xy 115.335104 84.642491) + (xy 115.335103 84.64249) + (xy 115.331651 84.637867) + (xy 115.208202 84.523752) + (xy 115.180622 84.498257) + (xy 115.18062 84.498255) + (xy 115.176381 84.494337) + (xy 115.142265 84.472811) + (xy 115.002434 84.384584) + (xy 115.002433 84.384584) + (xy 114.997554 84.381505) + (xy 114.80116 84.303152) + (xy 114.795503 84.302027) + (xy 114.795497 84.302025) + (xy 114.599442 84.263028) + (xy 114.59944 84.263028) + (xy 114.593775 84.261901) + (xy 114.588 84.261825) + (xy 114.587996 84.261825) + (xy 114.481976 84.260437) + (xy 114.382346 84.259133) + (xy 114.376649 84.260112) + (xy 114.376648 84.260112) + (xy 114.17965 84.293962) + (xy 114.179649 84.293962) + (xy 114.173953 84.294941) + (xy 113.975575 84.368127) + (xy 113.970614 84.371079) + (xy 113.970613 84.371079) + (xy 113.821841 84.459589) + (xy 113.793856 84.476238) + (xy 113.634881 84.615655) + (xy 113.503976 84.781708) + (xy 113.490517 84.80729) + (xy 113.484793 84.818169) + (xy 113.435373 84.869141) + (xy 113.373285 84.8855) + (xy 112.683131 84.8855) + (xy 112.61501 84.865498) + (xy 112.568517 84.811842) + (xy 112.558413 84.741568) + (xy 112.579291 84.688132) + (xy 112.581517 84.684893) + (xy 112.585219 84.680442) + (xy 112.611256 84.633951) + (xy 112.685713 84.500998) + (xy 112.685714 84.500996) + (xy 112.688537 84.495955) + (xy 112.690393 84.490488) + (xy 112.690395 84.490483) + (xy 112.752049 84.308853) + (xy 112.756504 84.29573) + (xy 112.757468 84.289087) + (xy 112.786314 84.09014) + (xy 112.786314 84.090138) + (xy 112.786846 84.08647) + (xy 112.788429 84.026) + (xy 112.769081 83.81544) + (xy 112.76304 83.794018) + (xy 112.724874 83.658692) + (xy 112.711686 83.611931) + (xy 112.703853 83.596046) + (xy 112.620719 83.427469) + (xy 112.618165 83.42229) + (xy 112.577542 83.367889) + (xy 112.55281 83.301339) + (xy 112.567984 83.231983) + (xy 112.618246 83.181841) + (xy 112.6785 83.1665) + (xy 113.370225 83.1665) + (xy 113.438346 83.186502) + (xy 113.473122 83.21978) + (xy 113.537189 83.310432) + (xy 113.594405 83.391391) + (xy 113.745865 83.538937) + (xy 113.750661 83.542142) + (xy 113.750664 83.542144) + (xy 113.855108 83.611931) + (xy 113.921677 83.656411) + (xy 113.926985 83.658692) + (xy 113.926986 83.658692) + (xy 114.11065 83.7376) + (xy 114.110653 83.737601) + (xy 114.115953 83.739878) + (xy 114.121582 83.741152) + (xy 114.121583 83.741152) + (xy 114.31655 83.785269) + (xy 114.316553 83.785269) + (xy 114.322186 83.786544) + (xy 114.327957 83.786771) + (xy 114.327959 83.786771) + (xy 114.389989 83.789208) + (xy 114.53347 83.794846) + (xy 114.539179 83.794018) + (xy 114.539183 83.794018) + (xy 114.737015 83.765333) + (xy 114.737019 83.765332) + (xy 114.74273 83.764504) + (xy 114.821987 83.7376) + (xy 114.937483 83.698395) + (xy 114.937488 83.698393) + (xy 114.942955 83.696537) + (xy 114.947998 83.693713) + (xy 115.122395 83.596046) + (xy 115.122399 83.596043) + (xy 115.127442 83.593219) + (xy 115.290012 83.458012) + (xy 115.425219 83.295442) + (xy 115.428043 83.290399) + (xy 115.428046 83.290395) + (xy 115.525713 83.115998) + (xy 115.525714 83.115996) + (xy 115.528537 83.110955) + (xy 115.530393 83.105488) + (xy 115.530395 83.105483) + (xy 115.594647 82.9162) + (xy 115.596504 82.91073) + (xy 115.626846 82.70147) + (xy 115.628429 82.641) + (xy 115.609081 82.43044) + (xy 115.60641 82.420967) + (xy 115.57416 82.306619) + (xy 115.551686 82.226931) + (xy 115.543532 82.210395) + (xy 115.460719 82.042469) + (xy 115.458165 82.03729) + (xy 115.361185 81.907418) + (xy 115.335104 81.872491) + (xy 115.335103 81.87249) + (xy 115.331651 81.867867) + (xy 115.196499 81.742934) + (xy 115.180622 81.728257) + (xy 115.18062 81.728255) + (xy 115.176381 81.724337) + (xy 115.052664 81.646277) + (xy 115.002434 81.614584) + (xy 115.002433 81.614584) + (xy 114.997554 81.611505) + (xy 114.80116 81.533152) + (xy 114.795503 81.532027) + (xy 114.795497 81.532025) + (xy 114.599442 81.493028) + (xy 114.59944 81.493028) + (xy 114.593775 81.491901) + (xy 114.588 81.491825) + (xy 114.587996 81.491825) + (xy 114.481976 81.490437) + (xy 114.382346 81.489133) + (xy 114.376649 81.490112) + (xy 114.376648 81.490112) + (xy 114.17965 81.523962) + (xy 114.179649 81.523962) + (xy 114.173953 81.524941) + (xy 113.975575 81.598127) + (xy 113.970614 81.601079) + (xy 113.970613 81.601079) + (xy 113.84048 81.6785) + (xy 113.793856 81.706238) + (xy 113.634881 81.845655) + (xy 113.503976 82.011708) + (xy 113.490517 82.03729) + (xy 113.484793 82.048169) + (xy 113.435373 82.099141) + (xy 113.373285 82.1155) + (xy 112.683131 82.1155) + (xy 112.61501 82.095498) + (xy 112.568517 82.041842) + (xy 112.558413 81.971568) + (xy 112.579291 81.918132) + (xy 112.581517 81.914893) + (xy 112.585219 81.910442) + (xy 112.591809 81.898676) + (xy 112.685713 81.730998) + (xy 112.685714 81.730996) + (xy 112.688537 81.725955) + (xy 112.690393 81.720488) + (xy 112.690395 81.720483) + (xy 112.753258 81.535292) + (xy 112.756504 81.52573) + (xy 112.757669 81.517701) + (xy 112.786314 81.32014) + (xy 112.786314 81.320138) + (xy 112.786846 81.31647) + (xy 112.788429 81.256) + (xy 112.769081 81.04544) + (xy 112.76304 81.024018) + (xy 112.730109 80.907256) + (xy 112.711686 80.841931) + (xy 112.703853 80.826046) + (xy 112.620719 80.657469) + (xy 112.618165 80.65229) + (xy 112.522148 80.523708) + (xy 112.495104 80.487491) + (xy 112.495103 80.48749) + (xy 112.491651 80.482867) + (xy 112.37599 80.375951) + (xy 112.340622 80.343257) + (xy 112.34062 80.343255) + (xy 112.336381 80.339337) + (xy 112.330273 80.335483) + (xy 112.162434 80.229584) + (xy 112.162433 80.229584) + (xy 112.157554 80.226505) + (xy 111.96116 80.148152) + (xy 111.955503 80.147027) + (xy 111.955497 80.147025) + (xy 111.759442 80.108028) + (xy 111.75944 80.108028) + (xy 111.753775 80.106901) + (xy 111.748 80.106825) + (xy 111.747996 80.106825) + (xy 111.641976 80.105437) + (xy 111.542346 80.104133) + (xy 111.536649 80.105112) + (xy 111.536648 80.105112) + (xy 111.33965 80.138962) + (xy 111.339649 80.138962) + (xy 111.333953 80.139941) + (xy 111.135575 80.213127) + (xy 111.130614 80.216079) + (xy 111.130613 80.216079) + (xy 110.98094 80.305125) + (xy 110.953856 80.321238) + (xy 110.794881 80.460655) + (xy 110.717815 80.558413) + (xy 110.701187 80.579506) + (xy 110.643306 80.620619) + (xy 110.602237 80.6275) + (xy 109.179086 80.6275) + (xy 109.110965 80.607498) + (xy 109.067916 80.559287) + (xy 109.067738 80.559396) + (xy 109.067136 80.558413) + (xy 109.066082 80.557233) + (xy 109.064719 80.554469) + (xy 109.062165 80.54929) + (xy 109.009641 80.478951) + (xy 108.939104 80.384491) + (xy 108.939103 80.38449) + (xy 108.935651 80.379867) + (xy 108.780381 80.236337) + (xy 108.601554 80.123505) + (xy 108.40516 80.045152) + (xy 108.399503 80.044027) + (xy 108.399497 80.044025) + (xy 108.203442 80.005028) + (xy 108.20344 80.005028) + (xy 108.197775 80.003901) + (xy 108.192 80.003825) + (xy 108.191996 80.003825) + (xy 108.085976 80.002437) + (xy 107.986346 80.001133) + (xy 107.980649 80.002112) + (xy 107.980648 80.002112) + (xy 107.78365 80.035962) + (xy 107.783649 80.035962) + (xy 107.777953 80.036941) + (xy 107.579575 80.110127) + (xy 107.574614 80.113079) + (xy 107.574613 80.113079) + (xy 107.418178 80.206148) + (xy 107.397856 80.218238) + (xy 107.238881 80.357655) + (xy 107.107976 80.523708) + (xy 107.105287 80.528819) + (xy 107.105285 80.528822) + (xy 107.078619 80.579506) + (xy 107.009523 80.710836) + (xy 106.94682 80.912773) + (xy 106.946141 80.91851) + (xy 106.932088 81.037239) + (xy 106.904217 81.102537) + (xy 106.845469 81.142401) + (xy 106.774494 81.144174) + (xy 106.713828 81.107295) + (xy 106.68273 81.043471) + (xy 106.68149 81.033958) + (xy 106.67361 80.948197) + (xy 106.673081 80.94244) + (xy 106.6678 80.923713) + (xy 106.639457 80.823219) + (xy 106.615686 80.738931) + (xy 106.608612 80.724585) + (xy 106.524719 80.554469) + (xy 106.522165 80.54929) + (xy 106.395651 80.379867) + (xy 106.240381 80.236337) + (xy 106.061554 80.123505) + (xy 105.86516 80.045152) + (xy 105.859503 80.044027) + (xy 105.859497 80.044025) + (xy 105.663442 80.005028) + (xy 105.66344 80.005028) + (xy 105.657775 80.003901) + (xy 105.652 80.003825) + (xy 105.651996 80.003825) + (xy 105.545976 80.002437) + (xy 105.446346 80.001133) + (xy 105.440649 80.002112) + (xy 105.440648 80.002112) + (xy 105.24365 80.035962) + (xy 105.243649 80.035962) + (xy 105.237953 80.036941) + (xy 105.039575 80.110127) + (xy 105.034614 80.113079) + (xy 105.034613 80.113079) + (xy 104.878178 80.206148) + (xy 104.857856 80.218238) + (xy 104.698881 80.357655) + (xy 104.567976 80.523708) + (xy 104.565287 80.528819) + (xy 104.565285 80.528822) + (xy 104.538619 80.579506) + (xy 104.469523 80.710836) + (xy 104.40682 80.912773) + (xy 104.406141 80.91851) + (xy 104.392088 81.037239) + (xy 104.364217 81.102537) + (xy 104.305469 81.142401) + (xy 104.234494 81.144174) + (xy 104.173828 81.107295) + (xy 104.14273 81.043471) + (xy 104.14149 81.033958) + (xy 104.13361 80.948197) + (xy 104.133081 80.94244) + (xy 104.1278 80.923713) + (xy 104.099457 80.823219) + (xy 104.075686 80.738931) + (xy 104.068612 80.724585) + (xy 103.984719 80.554469) + (xy 103.982165 80.54929) + (xy 103.93058 80.480209) + (xy 103.905848 80.413661) + (xy 103.921022 80.344305) + (xy 103.942443 80.315726) + (xy 104.417415 79.840754) + (xy 113.317967 79.840754) + (xy 113.331796 80.051749) + (xy 113.333217 80.057345) + (xy 113.333218 80.05735) + (xy 113.382424 80.251095) + (xy 113.383845 80.25669) + (xy 113.386262 80.261933) + (xy 113.456209 80.413661) + (xy 113.472369 80.448714) + (xy 113.594405 80.621391) + (xy 113.599863 80.626708) + (xy 113.709744 80.733749) + (xy 113.745865 80.768937) + (xy 113.750661 80.772142) + (xy 113.750664 80.772144) + (xy 113.855108 80.841931) + (xy 113.921677 80.886411) + (xy 113.926985 80.888692) + (xy 113.926986 80.888692) + (xy 114.11065 80.9676) + (xy 114.110653 80.967601) + (xy 114.115953 80.969878) + (xy 114.121582 80.971152) + (xy 114.121583 80.971152) + (xy 114.31655 81.015269) + (xy 114.316553 81.015269) + (xy 114.322186 81.016544) + (xy 114.327957 81.016771) + (xy 114.327959 81.016771) + (xy 114.389989 81.019208) + (xy 114.53347 81.024846) + (xy 114.539179 81.024018) + (xy 114.539183 81.024018) + (xy 114.737015 80.995333) + (xy 114.737019 80.995332) + (xy 114.74273 80.994504) + (xy 114.821987 80.9676) + (xy 114.937483 80.928395) + (xy 114.937488 80.928393) + (xy 114.942955 80.926537) + (xy 114.947998 80.923713) + (xy 115.122395 80.826046) + (xy 115.122399 80.826043) + (xy 115.127442 80.823219) + (xy 115.290012 80.688012) + (xy 115.425219 80.525442) + (xy 115.428043 80.520399) + (xy 115.428046 80.520395) + (xy 115.525713 80.345998) + (xy 115.525714 80.345996) + (xy 115.528537 80.340955) + (xy 115.530393 80.335488) + (xy 115.530395 80.335483) + (xy 115.593258 80.150292) + (xy 115.596504 80.14073) + (xy 115.600514 80.113079) + (xy 115.626314 79.93514) + (xy 115.626314 79.935138) + (xy 115.626846 79.93147) + (xy 115.628429 79.871) + (xy 115.609081 79.66044) + (xy 115.551686 79.456931) + (xy 115.540553 79.434354) + (xy 115.460719 79.272469) + (xy 115.458165 79.26729) + (xy 115.331651 79.097867) + (xy 115.220661 78.995269) + (xy 115.180622 78.958257) + (xy 115.18062 78.958255) + (xy 115.176381 78.954337) + (xy 114.997554 78.841505) + (xy 114.80116 78.763152) + (xy 114.795503 78.762027) + (xy 114.795497 78.762025) + (xy 114.599442 78.723028) + (xy 114.59944 78.723028) + (xy 114.593775 78.721901) + (xy 114.588 78.721825) + (xy 114.587996 78.721825) + (xy 114.481976 78.720437) + (xy 114.382346 78.719133) + (xy 114.376649 78.720112) + (xy 114.376648 78.720112) + (xy 114.17965 78.753962) + (xy 114.179649 78.753962) + (xy 114.173953 78.754941) + (xy 113.975575 78.828127) + (xy 113.970614 78.831079) + (xy 113.970613 78.831079) + (xy 113.953089 78.841505) + (xy 113.793856 78.936238) + (xy 113.634881 79.075655) + (xy 113.503976 79.241708) + (xy 113.501287 79.246819) + (xy 113.501285 79.246822) + (xy 113.463196 79.319218) + (xy 113.405523 79.428836) + (xy 113.385645 79.492855) + (xy 113.34547 79.62224) + (xy 113.34282 79.630773) + (xy 113.317967 79.840754) + (xy 104.417415 79.840754) + (xy 104.938951 79.319218) + (xy 110.4825 79.319218) + (xy 110.48317 79.323768) + (xy 110.48317 79.323771) + (xy 110.491216 79.378426) + (xy 110.492642 79.388112) + (xy 110.496958 79.396902) + (xy 110.529163 79.462496) + (xy 110.544068 79.492855) + (xy 110.62665 79.575293) + (xy 110.731482 79.626536) + (xy 110.760525 79.630773) + (xy 110.795256 79.63584) + (xy 110.79526 79.63584) + (xy 110.799782 79.6365) + (xy 112.466218 79.6365) + (xy 112.470768 79.63583) + (xy 112.470771 79.63583) + (xy 112.525426 79.627784) + (xy 112.525427 79.627784) + (xy 112.535112 79.626358) + (xy 112.602733 79.593158) + (xy 112.630507 79.579522) + (xy 112.630509 79.579521) + (xy 112.639855 79.574932) + (xy 112.722293 79.49235) + (xy 112.773536 79.387518) + (xy 112.7835 79.319218) + (xy 112.7835 77.652782) + (xy 112.778161 77.61651) + (xy 112.774784 77.593574) + (xy 112.774784 77.593573) + (xy 112.773358 77.583888) + (xy 112.721932 77.479145) + (xy 112.63935 77.396707) + (xy 112.534518 77.345464) + (xy 112.504027 77.341016) + (xy 112.470744 77.33616) + (xy 112.47074 77.33616) + (xy 112.466218 77.3355) + (xy 110.799782 77.3355) + (xy 110.795232 77.33617) + (xy 110.795229 77.33617) + (xy 110.740574 77.344216) + (xy 110.740573 77.344216) + (xy 110.730888 77.345642) + (xy 110.680992 77.37014) + (xy 110.635493 77.392478) + (xy 110.635491 77.392479) + (xy 110.626145 77.397068) + (xy 110.543707 77.47965) + (xy 110.492464 77.584482) + (xy 110.491052 77.594162) + (xy 110.483461 77.646197) + (xy 110.4825 77.652782) + (xy 110.4825 79.319218) + (xy 104.938951 79.319218) + (xy 105.258911 78.999258) + (xy 105.321223 78.965232) + (xy 105.375814 78.96546) + (xy 105.507549 78.995269) + (xy 105.507555 78.99527) + (xy 105.513186 78.996544) + (xy 105.518957 78.996771) + (xy 105.518959 78.996771) + (xy 105.580989 78.999208) + (xy 105.72447 79.004846) + (xy 105.730179 79.004018) + (xy 105.730183 79.004018) + (xy 105.928015 78.975333) + (xy 105.928019 78.975332) + (xy 105.93373 78.974504) + (xy 106.002217 78.951256) + (xy 106.128483 78.908395) + (xy 106.128488 78.908393) + (xy 106.133955 78.906537) + (xy 106.250078 78.841505) + (xy 106.313395 78.806046) + (xy 106.313399 78.806043) + (xy 106.318442 78.803219) + (xy 106.481012 78.668012) + (xy 106.616219 78.505442) + (xy 106.619043 78.500399) + (xy 106.619046 78.500395) + (xy 106.716713 78.325998) + (xy 106.716714 78.325996) + (xy 106.719537 78.320955) + (xy 106.721393 78.315488) + (xy 106.721395 78.315483) + (xy 106.785647 78.1262) + (xy 106.785648 78.126197) + (xy 106.787504 78.12073) + (xy 106.801243 78.025981) + (xy 106.817314 77.91514) + (xy 106.817314 77.915138) + (xy 106.817846 77.91147) + (xy 106.819429 77.851) + (xy 106.800081 77.64044) + (xy 106.742686 77.436931) + (xy 106.731553 77.414354) + (xy 106.651719 77.252469) + (xy 106.649165 77.24729) + (xy 106.522651 77.077867) + (xy 106.367381 76.934337) + (xy 106.188554 76.821505) + (xy 105.99216 76.743152) + (xy 105.986503 76.742027) + (xy 105.986497 76.742025) + (xy 105.790442 76.703028) + (xy 105.79044 76.703028) + (xy 105.784775 76.701901) + (xy 105.779 76.701825) + (xy 105.778996 76.701825) + (xy 105.672976 76.700437) + (xy 105.573346 76.699133) + (xy 105.567649 76.700112) + (xy 105.567648 76.700112) + (xy 105.37065 76.733962) + (xy 105.370649 76.733962) + (xy 105.364953 76.734941) + (xy 105.166575 76.808127) + (xy 105.161614 76.811079) + (xy 105.161613 76.811079) + (xy 105.144089 76.821505) + (xy 104.984856 76.916238) + (xy 104.825881 77.055655) + (xy 104.694976 77.221708) + (xy 104.692287 77.226819) + (xy 104.692285 77.226822) + (xy 104.678792 77.252469) + (xy 104.596523 77.408836) + (xy 104.53382 77.610773) + (xy 104.533141 77.61651) + (xy 104.519088 77.735239) + (xy 104.491217 77.800537) + (xy 104.432469 77.840401) + (xy 104.361494 77.842174) + (xy 104.300828 77.805295) + (xy 104.26973 77.741471) + (xy 104.26849 77.731958) + (xy 104.26061 77.646197) + (xy 104.260081 77.64044) + (xy 104.202686 77.436931) + (xy 104.191553 77.414354) + (xy 104.111719 77.252469) + (xy 104.109165 77.24729) + (xy 103.982651 77.077867) + (xy 103.827381 76.934337) + (xy 103.648554 76.821505) + (xy 103.45216 76.743152) + (xy 103.446503 76.742027) + (xy 103.446497 76.742025) + (xy 103.250442 76.703028) + (xy 103.25044 76.703028) + (xy 103.244775 76.701901) + (xy 103.239 76.701825) + (xy 103.238996 76.701825) + (xy 103.132976 76.700437) + (xy 103.033346 76.699133) + (xy 103.027649 76.700112) + (xy 103.027648 76.700112) + (xy 102.83065 76.733962) + (xy 102.830649 76.733962) + (xy 102.824953 76.734941) + (xy 102.626575 76.808127) + (xy 102.621614 76.811079) + (xy 102.621613 76.811079) + (xy 102.604089 76.821505) + (xy 102.444856 76.916238) + (xy 102.285881 77.055655) + (xy 102.154976 77.221708) + (xy 102.152287 77.226819) + (xy 102.152285 77.226822) + (xy 102.138792 77.252469) + (xy 102.056523 77.408836) + (xy 101.99382 77.610773) + (xy 101.993141 77.61651) + (xy 101.979088 77.735239) + (xy 101.951217 77.800537) + (xy 101.892469 77.840401) + (xy 101.821494 77.842174) + (xy 101.760828 77.805295) + (xy 101.72973 77.741471) + (xy 101.72849 77.731958) + (xy 101.72061 77.646197) + (xy 101.720081 77.64044) + (xy 101.662686 77.436931) + (xy 101.651553 77.414354) + (xy 101.571719 77.252469) + (xy 101.569165 77.24729) + (xy 101.442651 77.077867) + (xy 101.287381 76.934337) + (xy 101.108554 76.821505) + (xy 100.91216 76.743152) + (xy 100.906503 76.742027) + (xy 100.906497 76.742025) + (xy 100.710442 76.703028) + (xy 100.71044 76.703028) + (xy 100.704775 76.701901) + (xy 100.699 76.701825) + (xy 100.698996 76.701825) + (xy 100.592976 76.700437) + (xy 100.493346 76.699133) + (xy 100.487649 76.700112) + (xy 100.487648 76.700112) + (xy 100.29065 76.733962) + (xy 100.290649 76.733962) + (xy 100.284953 76.734941) + (xy 100.086575 76.808127) + (xy 100.081614 76.811079) + (xy 100.081613 76.811079) + (xy 100.064089 76.821505) + (xy 99.904856 76.916238) + (xy 99.745881 77.055655) + (xy 99.614976 77.221708) + (xy 99.612287 77.226819) + (xy 99.612285 77.226822) + (xy 99.598792 77.252469) + (xy 99.516523 77.408836) + (xy 99.45382 77.610773) + (xy 99.453141 77.61651) + (xy 99.439088 77.735239) + (xy 99.411217 77.800537) + (xy 99.352469 77.840401) + (xy 99.281494 77.842174) + (xy 99.220828 77.805295) + (xy 99.18973 77.741471) + (xy 99.18849 77.731958) + (xy 99.18061 77.646197) + (xy 99.180081 77.64044) + (xy 99.122686 77.436931) + (xy 99.111553 77.414354) + (xy 99.031719 77.252469) + (xy 99.029165 77.24729) + (xy 98.902651 77.077867) + (xy 98.747381 76.934337) + (xy 98.568554 76.821505) + (xy 98.37216 76.743152) + (xy 98.366503 76.742027) + (xy 98.366497 76.742025) + (xy 98.170442 76.703028) + (xy 98.17044 76.703028) + (xy 98.164775 76.701901) + (xy 98.159 76.701825) + (xy 98.158996 76.701825) + (xy 98.052976 76.700437) + (xy 97.953346 76.699133) + (xy 97.947649 76.700112) + (xy 97.947648 76.700112) + (xy 97.75065 76.733962) + (xy 97.750649 76.733962) + (xy 97.744953 76.734941) + (xy 97.546575 76.808127) + (xy 97.541614 76.811079) + (xy 97.541613 76.811079) + (xy 97.524089 76.821505) + (xy 97.364856 76.916238) + (xy 97.205881 77.055655) + (xy 97.074976 77.221708) + (xy 97.072287 77.226819) + (xy 97.072285 77.226822) + (xy 97.058792 77.252469) + (xy 96.976523 77.408836) + (xy 96.91382 77.610773) + (xy 96.888967 77.820754) + (xy 96.902796 78.031749) + (xy 96.926784 78.126197) + (xy 96.929167 78.135581) + (xy 96.926549 78.206529) + (xy 96.896139 78.255692) + (xy 96.720236 78.431595) + (xy 96.657924 78.465621) + (xy 96.631141 78.4685) + (xy 92.470435 78.4685) + (xy 92.465159 78.468389) + (xy 92.452894 78.467875) + (xy 92.406081 78.465913) + (xy 92.365895 78.475338) + (xy 92.354229 78.4775) + (xy 92.321864 78.481933) + (xy 92.321862 78.481934) + (xy 92.313354 78.483099) + (xy 92.305473 78.48651) + (xy 92.305471 78.48651) + (xy 92.300653 78.488595) + (xy 92.27939 78.495627) + (xy 92.274275 78.496827) + (xy 92.274273 78.496828) + (xy 92.265907 78.49879) + (xy 92.258382 78.502927) + (xy 92.258379 78.502928) + (xy 92.229738 78.518674) + (xy 92.219078 78.523896) + (xy 92.189098 78.536869) + (xy 92.189095 78.536871) + (xy 92.181217 78.54028) + (xy 92.174544 78.545683) + (xy 92.17454 78.545686) + (xy 92.170456 78.548993) + (xy 92.15187 78.561482) + (xy 92.145525 78.56497) + (xy 92.145521 78.564973) + (xy 92.139738 78.568152) + (xy 92.131995 78.574835) + (xy 92.108782 78.598048) + (xy 92.098981 78.606873) + (xy 92.069325 78.630888) + (xy 92.059194 78.645144) + (xy 92.045587 78.661244) + (xy 90.703243 80.003588) + (xy 90.640931 80.037614) + (xy 90.589567 80.038072) + (xy 90.423442 80.005028) + (xy 90.42344 80.005028) + (xy 90.417775 80.003901) + (xy 90.412 80.003825) + (xy 90.411996 80.003825) + (xy 90.305976 80.002437) + (xy 90.206346 80.001133) + (xy 90.200649 80.002112) + (xy 90.200648 80.002112) + (xy 90.00365 80.035962) + (xy 90.003649 80.035962) + (xy 89.997953 80.036941) + (xy 89.799575 80.110127) + (xy 89.794614 80.113079) + (xy 89.794613 80.113079) + (xy 89.638178 80.206148) + (xy 89.617856 80.218238) + (xy 89.458881 80.357655) + (xy 89.327976 80.523708) + (xy 89.325287 80.528819) + (xy 89.325285 80.528822) + (xy 89.298619 80.579506) + (xy 89.229523 80.710836) + (xy 89.16682 80.912773) + (xy 89.166141 80.91851) + (xy 89.152088 81.037239) + (xy 89.124217 81.102537) + (xy 89.065469 81.142401) + (xy 88.994494 81.144174) + (xy 88.933828 81.107295) + (xy 88.90273 81.043471) + (xy 88.90149 81.033958) + (xy 88.89361 80.948197) + (xy 88.893081 80.94244) + (xy 88.8878 80.923713) + (xy 88.859457 80.823219) + (xy 88.835686 80.738931) + (xy 88.828612 80.724585) + (xy 88.744719 80.554469) + (xy 88.742165 80.54929) + (xy 88.615651 80.379867) + (xy 88.460381 80.236337) + (xy 88.281554 80.123505) + (xy 88.08516 80.045152) + (xy 88.079503 80.044027) + (xy 88.079497 80.044025) + (xy 87.883442 80.005028) + (xy 87.88344 80.005028) + (xy 87.877775 80.003901) + (xy 87.872 80.003825) + (xy 87.871996 80.003825) + (xy 87.765976 80.002437) + (xy 87.666346 80.001133) + (xy 87.660649 80.002112) + (xy 87.660648 80.002112) + (xy 87.46365 80.035962) + (xy 87.463649 80.035962) + (xy 87.457953 80.036941) + (xy 87.259575 80.110127) + (xy 87.254614 80.113079) + (xy 87.254613 80.113079) + (xy 87.098178 80.206148) + (xy 87.077856 80.218238) + (xy 86.918881 80.357655) + (xy 86.787976 80.523708) + (xy 86.785287 80.528819) + (xy 86.785285 80.528822) + (xy 86.758619 80.579506) + (xy 86.689523 80.710836) + (xy 86.62682 80.912773) + (xy 86.626141 80.91851) + (xy 86.612088 81.037239) + (xy 86.584217 81.102537) + (xy 86.525469 81.142401) + (xy 86.454494 81.144174) + (xy 86.393828 81.107295) + (xy 86.36273 81.043471) + (xy 86.36149 81.033958) + (xy 86.35361 80.948197) + (xy 86.353081 80.94244) + (xy 86.3478 80.923713) + (xy 86.319457 80.823219) + (xy 86.295686 80.738931) + (xy 86.288612 80.724585) + (xy 86.204719 80.554469) + (xy 86.202165 80.54929) + (xy 86.075651 80.379867) + (xy 85.920381 80.236337) + (xy 85.741554 80.123505) + (xy 85.54516 80.045152) + (xy 85.539503 80.044027) + (xy 85.539497 80.044025) + (xy 85.343442 80.005028) + (xy 85.34344 80.005028) + (xy 85.337775 80.003901) + (xy 85.332 80.003825) + (xy 85.331996 80.003825) + (xy 85.225976 80.002437) + (xy 85.126346 80.001133) + (xy 85.120649 80.002112) + (xy 85.120648 80.002112) + (xy 84.92365 80.035962) + (xy 84.923649 80.035962) + (xy 84.917953 80.036941) + (xy 84.719575 80.110127) + (xy 84.714614 80.113079) + (xy 84.714613 80.113079) + (xy 84.558178 80.206148) + (xy 84.537856 80.218238) + (xy 84.378881 80.357655) + (xy 84.247976 80.523708) + (xy 84.245287 80.528819) + (xy 84.245285 80.528822) + (xy 84.152211 80.705726) + (xy 84.152209 80.705731) + (xy 84.149523 80.710836) + (xy 84.147811 80.716349) + (xy 84.147788 80.716405) + (xy 84.10324 80.771686) + (xy 84.035876 80.794106) + (xy 83.967085 80.776547) + (xy 83.918707 80.724585) + (xy 83.912979 80.71128) + (xy 83.908491 80.69895) + (xy 83.816414 80.501489) + (xy 83.810931 80.491993) + (xy 83.685972 80.313533) + (xy 83.678916 80.305125) + (xy 83.524875 80.151084) + (xy 83.516467 80.144028) + (xy 83.338007 80.019069) + (xy 83.328511 80.013586) + (xy 83.131053 79.92151) + (xy 83.120761 79.917764) + (xy 82.948497 79.871606) + (xy 82.934401 79.871942) + (xy 82.931 79.879884) + (xy 82.931 82.420967) + (xy 82.423 82.420967) + (xy 82.423 79.885033) + (xy 82.419027 79.871502) + (xy 82.410478 79.870273) + (xy 82.233239 79.917764) + (xy 82.222947 79.92151) + (xy 82.025489 80.013586) + (xy 82.015993 80.019069) + (xy 81.837533 80.144028) + (xy 81.829125 80.151084) + (xy 81.675084 80.305125) + (xy 81.668028 80.313533) + (xy 81.543069 80.491993) + (xy 81.537586 80.501489) + (xy 81.44551 80.698947) + (xy 81.440455 80.712836) + (xy 81.398361 80.770007) + (xy 81.332039 80.795345) + (xy 81.262548 80.780804) + (xy 81.209048 80.72547) + (xy 81.124719 80.554469) + (xy 81.122165 80.54929) + (xy 80.995651 80.379867) + (xy 80.840381 80.236337) + (xy 80.661554 80.123505) + (xy 80.46516 80.045152) + (xy 80.459503 80.044027) + (xy 80.459497 80.044025) + (xy 80.263442 80.005028) + (xy 80.26344 80.005028) + (xy 80.257775 80.003901) + (xy 80.252 80.003825) + (xy 80.251996 80.003825) + (xy 80.145976 80.002437) + (xy 80.046346 80.001133) + (xy 80.040649 80.002112) + (xy 80.040648 80.002112) + (xy 79.84365 80.035962) + (xy 79.843649 80.035962) + (xy 79.837953 80.036941) + (xy 79.639575 80.110127) + (xy 79.634614 80.113079) + (xy 79.634613 80.113079) + (xy 79.478178 80.206148) + (xy 79.457856 80.218238) + (xy 79.298881 80.357655) + (xy 79.167976 80.523708) + (xy 79.165287 80.528819) + (xy 79.165285 80.528822) + (xy 79.138619 80.579506) + (xy 79.069523 80.710836) + (xy 79.00682 80.912773) + (xy 78.981967 81.122754) + (xy 77.0895 81.122754) + (xy 77.0895 79.585064) + (xy 77.109502 79.516943) + (xy 77.148366 79.478439) + (xy 77.173688 79.462496) + (xy 86.680085 73.476987) + (xy 111.471721 73.476987) + (xy 111.480548 73.488605) + (xy 111.703281 73.65043) + (xy 111.709961 73.65467) + (xy 111.979572 73.80289) + (xy 111.986707 73.806247) + (xy 112.27277 73.919508) + (xy 112.280296 73.921953) + (xy 112.578279 73.998462) + (xy 112.58605 73.999945) + (xy 112.891278 74.038503) + (xy 112.899169 74.039) + (xy 113.206831 74.039) + (xy 113.214722 74.038503) + (xy 113.51995 73.999945) + (xy 113.527721 73.998462) + (xy 113.825704 73.921953) + (xy 113.83323 73.919508) + (xy 114.119293 73.806247) + (xy 114.126428 73.80289) + (xy 114.396039 73.65467) + (xy 114.402719 73.65043) + (xy 114.625823 73.488336) + (xy 114.634246 73.477413) + (xy 114.627342 73.464552) + (xy 113.065812 71.903022) + (xy 113.051868 71.895408) + (xy 113.050035 71.895539) + (xy 113.04342 71.89979) + (xy 111.478334 73.464876) + (xy 111.471721 73.476987) + (xy 86.680085 73.476987) + (xy 91.412177 70.497522) + (xy 96.761273 70.497522) + (xy 96.808764 70.674761) + (xy 96.81251 70.685053) + (xy 96.904586 70.882511) + (xy 96.910069 70.892007) + (xy 97.035028 71.070467) + (xy 97.042084 71.078875) + (xy 97.196125 71.232916) + (xy 97.204533 71.239972) + (xy 97.382993 71.364931) + (xy 97.392489 71.370414) + (xy 97.589947 71.46249) + (xy 97.600239 71.466236) + (xy 97.772503 71.512394) + (xy 97.786599 71.512058) + (xy 97.79 71.504116) + (xy 97.79 71.498967) + (xy 98.298 71.498967) + (xy 98.301973 71.512498) + (xy 98.310522 71.513727) + (xy 98.487761 71.466236) + (xy 98.498053 71.46249) + (xy 98.695511 71.370414) + (xy 98.705007 71.364931) + (xy 98.883467 71.239972) + (xy 98.891875 71.232916) + (xy 99.045916 71.078875) + (xy 99.052972 71.070467) + (xy 99.177931 70.892007) + (xy 99.183414 70.882511) + (xy 99.199805 70.847359) + (xy 99.246722 70.794074) + (xy 99.314999 70.774613) + (xy 99.382959 70.795155) + (xy 99.428195 70.847359) + (xy 99.444586 70.882511) + (xy 99.450069 70.892007) + (xy 99.575028 71.070467) + (xy 99.582084 71.078875) + (xy 99.736125 71.232916) + (xy 99.744533 71.239972) + (xy 99.922993 71.364931) + (xy 99.932489 71.370414) + (xy 100.129947 71.46249) + (xy 100.140239 71.466236) + (xy 100.312503 71.512394) + (xy 100.326599 71.512058) + (xy 100.33 71.504116) + (xy 100.33 71.498967) + (xy 100.838 71.498967) + (xy 100.841973 71.512498) + (xy 100.850522 71.513727) + (xy 101.027761 71.466236) + (xy 101.038053 71.46249) + (xy 101.235511 71.370414) + (xy 101.245007 71.364931) + (xy 101.423467 71.239972) + (xy 101.431875 71.232916) + (xy 101.585916 71.078875) + (xy 101.592972 71.070467) + (xy 101.717931 70.892007) + (xy 101.723414 70.882511) + (xy 101.739805 70.847359) + (xy 101.786722 70.794074) + (xy 101.854999 70.774613) + (xy 101.922959 70.795155) + (xy 101.968195 70.847359) + (xy 101.984586 70.882511) + (xy 101.990069 70.892007) + (xy 102.115028 71.070467) + (xy 102.122084 71.078875) + (xy 102.276125 71.232916) + (xy 102.284533 71.239972) + (xy 102.462993 71.364931) + (xy 102.472489 71.370414) + (xy 102.669947 71.46249) + (xy 102.680239 71.466236) + (xy 102.852503 71.512394) + (xy 102.866599 71.512058) + (xy 102.87 71.504116) + (xy 102.87 71.498967) + (xy 103.378 71.498967) + (xy 103.381973 71.512498) + (xy 103.390522 71.513727) + (xy 103.567761 71.466236) + (xy 103.578053 71.46249) + (xy 103.775511 71.370414) + (xy 103.785007 71.364931) + (xy 103.963467 71.239972) + (xy 103.971875 71.232916) + (xy 104.125916 71.078875) + (xy 104.136507 71.066254) + (xy 104.137357 71.066968) + (xy 104.188422 71.026152) + (xy 104.259041 71.018844) + (xy 104.322401 71.050877) + (xy 104.358385 71.112079) + (xy 104.361438 71.129145) + (xy 104.361895 71.133353) + (xy 104.365521 71.148604) + (xy 104.410676 71.269054) + (xy 104.419214 71.284649) + (xy 104.495715 71.386724) + (xy 104.508276 71.399285) + (xy 104.610351 71.475786) + (xy 104.625946 71.484324) + (xy 104.746394 71.529478) + (xy 104.761649 71.533105) + (xy 104.812514 71.538631) + (xy 104.819328 71.539) + (xy 105.391885 71.539) + (xy 105.407124 71.534525) + (xy 105.408329 71.533135) + (xy 105.41 71.525452) + (xy 105.41 71.520884) + (xy 105.918 71.520884) + (xy 105.922475 71.536123) + (xy 105.923865 71.537328) + (xy 105.931548 71.538999) + (xy 106.508669 71.538999) + (xy 106.51549 71.538629) + (xy 106.549291 71.534958) + (xy 110.54029 71.534958) + (xy 110.559607 71.841994) + (xy 110.5606 71.849855) + (xy 110.618246 72.152046) + (xy 110.620217 72.159723) + (xy 110.715284 72.452309) + (xy 110.718199 72.459672) + (xy 110.849189 72.738041) + (xy 110.853001 72.744974) + (xy 111.017851 73.004736) + (xy 111.022495 73.011129) + (xy 111.097497 73.10179) + (xy 111.110014 73.110245) + (xy 111.120752 73.104038) + (xy 112.680978 71.543812) + (xy 112.687356 71.532132) + (xy 113.417408 71.532132) + (xy 113.417539 71.533965) + (xy 113.42179 71.54058) + (xy 114.984145 73.102935) + (xy 114.997407 73.110177) + (xy 115.007512 73.102988) + (xy 115.083505 73.011129) + (xy 115.088149 73.004736) + (xy 115.252999 72.744974) + (xy 115.256811 72.738041) + (xy 115.387801 72.459672) + (xy 115.390716 72.452309) + (xy 115.485783 72.159723) + (xy 115.487754 72.152046) + (xy 115.5454 71.849855) + (xy 115.546393 71.841994) + (xy 115.56571 71.534958) + (xy 115.56571 71.527042) + (xy 115.546393 71.220006) + (xy 115.5454 71.212145) + (xy 115.487754 70.909954) + (xy 115.485783 70.902277) + (xy 115.390716 70.609691) + (xy 115.387801 70.602328) + (xy 115.256811 70.323959) + (xy 115.252999 70.317026) + (xy 115.088149 70.057264) + (xy 115.083505 70.050871) + (xy 115.008503 69.96021) + (xy 114.995986 69.951755) + (xy 114.985248 69.957962) + (xy 113.425022 71.518188) + (xy 113.417408 71.532132) + (xy 112.687356 71.532132) + (xy 112.688592 71.529868) + (xy 112.688461 71.528035) + (xy 112.68421 71.52142) + (xy 111.121855 69.959065) + (xy 111.108593 69.951823) + (xy 111.098488 69.959012) + (xy 111.022495 70.050871) + (xy 111.017851 70.057264) + (xy 110.853001 70.317026) + (xy 110.849189 70.323959) + (xy 110.718199 70.602328) + (xy 110.715284 70.609691) + (xy 110.620217 70.902277) + (xy 110.618246 70.909954) + (xy 110.5606 71.212145) + (xy 110.559607 71.220006) + (xy 110.54029 71.527042) + (xy 110.54029 71.534958) + (xy 106.549291 71.534958) + (xy 106.566352 71.533105) + (xy 106.581604 71.529479) + (xy 106.702054 71.484324) + (xy 106.717649 71.475786) + (xy 106.819724 71.399285) + (xy 106.832285 71.386724) + (xy 106.908786 71.284649) + (xy 106.917324 71.269054) + (xy 106.962478 71.148606) + (xy 106.966105 71.133351) + (xy 106.971631 71.082486) + (xy 106.972 71.075672) + (xy 106.972 70.503115) + (xy 106.967525 70.487876) + (xy 106.966135 70.486671) + (xy 106.958452 70.485) + (xy 105.936115 70.485) + (xy 105.920876 70.489475) + (xy 105.919671 70.490865) + (xy 105.918 70.498548) + (xy 105.918 71.520884) + (xy 105.41 71.520884) + (xy 105.41 70.503115) + (xy 105.405525 70.487876) + (xy 105.404135 70.486671) + (xy 105.396452 70.485) + (xy 103.396115 70.485) + (xy 103.380876 70.489475) + (xy 103.379671 70.490865) + (xy 103.378 70.498548) + (xy 103.378 71.498967) + (xy 102.87 71.498967) + (xy 102.87 70.503115) + (xy 102.865525 70.487876) + (xy 102.864135 70.486671) + (xy 102.856452 70.485) + (xy 100.856115 70.485) + (xy 100.840876 70.489475) + (xy 100.839671 70.490865) + (xy 100.838 70.498548) + (xy 100.838 71.498967) + (xy 100.33 71.498967) + (xy 100.33 70.503115) + (xy 100.325525 70.487876) + (xy 100.324135 70.486671) + (xy 100.316452 70.485) + (xy 98.316115 70.485) + (xy 98.300876 70.489475) + (xy 98.299671 70.490865) + (xy 98.298 70.498548) + (xy 98.298 71.498967) + (xy 97.79 71.498967) + (xy 97.79 70.503115) + (xy 97.785525 70.487876) + (xy 97.784135 70.486671) + (xy 97.776452 70.485) + (xy 96.776033 70.485) + (xy 96.762502 70.488973) + (xy 96.761273 70.497522) + (xy 91.412177 70.497522) + (xy 91.56672 70.400217) + (xy 94.022675 68.853875) + (xy 94.089809 68.8345) + (xy 97.375463 68.8345) + ) + ) + ) + (zone (net 2) (net_name "GND") (layer "B.Cu") (tstamp 00000000-0000-0000-0000-00005ff82516) (hatch edge 0.508) + (connect_pads (clearance 0.254)) + (min_thickness 0.254) (filled_areas_thickness no) + (fill yes (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 122.555 107.95) + (xy 76.835 107.95) + (xy 76.835 68.453) + (xy 122.555 68.58) + ) + ) + (filled_polygon + (layer "B.Cu") + (pts + (xy 97.443584 68.854502) + (xy 97.490077 68.908158) + (xy 97.500181 68.978432) + (xy 97.470687 69.043012) + (xy 97.428713 69.074695) + (xy 97.392489 69.091586) + (xy 97.382993 69.097069) + (xy 97.204533 69.222028) + (xy 97.196125 69.229084) + (xy 97.042084 69.383125) + (xy 97.035028 69.391533) + (xy 96.910069 69.569993) + (xy 96.904586 69.579489) + (xy 96.81251 69.776947) + (xy 96.808764 69.787239) + (xy 96.762606 69.959503) + (xy 96.762942 69.973599) + (xy 96.770884 69.977) + (xy 106.953884 69.977) + (xy 106.969123 69.972525) + (xy 106.970328 69.971135) + (xy 106.971999 69.963452) + (xy 106.971999 69.386331) + (xy 106.971629 69.37951) + (xy 106.966105 69.328648) + (xy 106.962479 69.313396) + (xy 106.917324 69.192946) + (xy 106.908786 69.177351) + (xy 106.832285 69.075276) + (xy 106.819722 69.062713) + (xy 106.81787 69.061325) + (xy 106.816495 69.059486) + (xy 106.813374 69.056365) + (xy 106.813824 69.055915) + (xy 106.775355 69.004466) + (xy 106.770331 68.933647) + (xy 106.804391 68.871354) + (xy 106.866722 68.837364) + (xy 106.893436 68.8345) + (xy 112.472932 68.8345) + (xy 112.541053 68.854502) + (xy 112.587546 68.908158) + (xy 112.59765 68.978432) + (xy 112.568156 69.043012) + (xy 112.504267 69.082541) + (xy 112.280295 69.140047) + (xy 112.27277 69.142492) + (xy 111.986707 69.255753) + (xy 111.979572 69.25911) + (xy 111.709961 69.40733) + (xy 111.703281 69.41157) + (xy 111.480177 69.573664) + (xy 111.471754 69.584587) + (xy 111.478658 69.597448) + (xy 113.040188 71.158978) + (xy 113.054132 71.166592) + (xy 113.055965 71.166461) + (xy 113.06258 71.16221) + (xy 114.627666 69.597124) + (xy 114.634279 69.585013) + (xy 114.625452 69.573395) + (xy 114.402719 69.41157) + (xy 114.396039 69.40733) + (xy 114.126428 69.25911) + (xy 114.119293 69.255753) + (xy 113.83323 69.142492) + (xy 113.825705 69.140047) + (xy 113.601733 69.082541) + (xy 113.540727 69.046227) + (xy 113.509038 68.982694) + (xy 113.516728 68.912116) + (xy 113.561355 68.856898) + (xy 113.633068 68.8345) + (xy 122.1745 68.8345) + (xy 122.242621 68.854502) + (xy 122.289114 68.908158) + (xy 122.3005 68.9605) + (xy 122.3005 107.5695) + (xy 122.280498 107.637621) + (xy 122.226842 107.684114) + (xy 122.1745 107.6955) + (xy 94.078598 107.6955) + (xy 94.017407 107.679644) + (xy 93.33128 107.298462) + (xy 92.392625 106.776987) + (xy 111.471721 106.776987) + (xy 111.480548 106.788605) + (xy 111.703281 106.95043) + (xy 111.709961 106.95467) + (xy 111.979572 107.10289) + (xy 111.986707 107.106247) + (xy 112.27277 107.219508) + (xy 112.280296 107.221953) + (xy 112.578279 107.298462) + (xy 112.58605 107.299945) + (xy 112.891278 107.338503) + (xy 112.899169 107.339) + (xy 113.206831 107.339) + (xy 113.214722 107.338503) + (xy 113.51995 107.299945) + (xy 113.527721 107.298462) + (xy 113.825704 107.221953) + (xy 113.83323 107.219508) + (xy 114.119293 107.106247) + (xy 114.126428 107.10289) + (xy 114.396039 106.95467) + (xy 114.402719 106.95043) + (xy 114.625823 106.788336) + (xy 114.634246 106.777413) + (xy 114.627342 106.764552) + (xy 113.065812 105.203022) + (xy 113.051868 105.195408) + (xy 113.050035 105.195539) + (xy 113.04342 105.19979) + (xy 111.478334 106.764876) + (xy 111.471721 106.776987) + (xy 92.392625 106.776987) + (xy 88.896973 104.834958) + (xy 110.54029 104.834958) + (xy 110.559607 105.141994) + (xy 110.5606 105.149855) + (xy 110.618246 105.452046) + (xy 110.620217 105.459723) + (xy 110.715284 105.752309) + (xy 110.718199 105.759672) + (xy 110.849189 106.038041) + (xy 110.853001 106.044974) + (xy 111.017851 106.304736) + (xy 111.022495 106.311129) + (xy 111.097497 106.40179) + (xy 111.110014 106.410245) + (xy 111.120752 106.404038) + (xy 112.680978 104.843812) + (xy 112.687356 104.832132) + (xy 113.417408 104.832132) + (xy 113.417539 104.833965) + (xy 113.42179 104.84058) + (xy 114.984145 106.402935) + (xy 114.997407 106.410177) + (xy 115.007512 106.402988) + (xy 115.083505 106.311129) + (xy 115.088149 106.304736) + (xy 115.252999 106.044974) + (xy 115.256811 106.038041) + (xy 115.387801 105.759672) + (xy 115.390716 105.752309) + (xy 115.485783 105.459723) + (xy 115.487754 105.452046) + (xy 115.5454 105.149855) + (xy 115.546393 105.141994) + (xy 115.56571 104.834958) + (xy 115.56571 104.827042) + (xy 115.546393 104.520006) + (xy 115.5454 104.512145) + (xy 115.487754 104.209954) + (xy 115.485783 104.202277) + (xy 115.390716 103.909691) + (xy 115.387801 103.902328) + (xy 115.256811 103.623959) + (xy 115.252999 103.617026) + (xy 115.088149 103.357264) + (xy 115.083505 103.350871) + (xy 115.008503 103.26021) + (xy 114.995986 103.251755) + (xy 114.985248 103.257962) + (xy 113.425022 104.818188) + (xy 113.417408 104.832132) + (xy 112.687356 104.832132) + (xy 112.688592 104.829868) + (xy 112.688461 104.828035) + (xy 112.68421 104.82142) + (xy 111.121855 103.259065) + (xy 111.108593 103.251823) + (xy 111.098488 103.259012) + (xy 111.022495 103.350871) + (xy 111.017851 103.357264) + (xy 110.853001 103.617026) + (xy 110.849189 103.623959) + (xy 110.718199 103.902328) + (xy 110.715284 103.909691) + (xy 110.620217 104.202277) + (xy 110.618246 104.209954) + (xy 110.5606 104.512145) + (xy 110.559607 104.520006) + (xy 110.54029 104.827042) + (xy 110.54029 104.834958) + (xy 88.896973 104.834958) + (xy 85.386305 102.884587) + (xy 111.471754 102.884587) + (xy 111.478658 102.897448) + (xy 113.040188 104.458978) + (xy 113.054132 104.466592) + (xy 113.055965 104.466461) + (xy 113.06258 104.46221) + (xy 114.627666 102.897124) + (xy 114.634279 102.885013) + (xy 114.625452 102.873395) + (xy 114.402719 102.71157) + (xy 114.396039 102.70733) + (xy 114.126428 102.55911) + (xy 114.119293 102.555753) + (xy 113.83323 102.442492) + (xy 113.825704 102.440047) + (xy 113.527721 102.363538) + (xy 113.51995 102.362055) + (xy 113.214722 102.323497) + (xy 113.206831 102.323) + (xy 112.899169 102.323) + (xy 112.891278 102.323497) + (xy 112.58605 102.362055) + (xy 112.578279 102.363538) + (xy 112.280296 102.440047) + (xy 112.27277 102.442492) + (xy 111.986707 102.555753) + (xy 111.979572 102.55911) + (xy 111.709961 102.70733) + (xy 111.703281 102.71157) + (xy 111.480177 102.873664) + (xy 111.471754 102.884587) + (xy 85.386305 102.884587) + (xy 77.154309 98.311256) + (xy 77.104475 98.260689) + (xy 77.0895 98.201112) + (xy 77.0895 97.226218) + (xy 78.9865 97.226218) + (xy 78.98717 97.230768) + (xy 78.98717 97.230771) + (xy 78.995216 97.285426) + (xy 78.996642 97.295112) + (xy 79.000958 97.303902) + (xy 79.042708 97.388937) + (xy 79.048068 97.399855) + (xy 79.13065 97.482293) + (xy 79.140006 97.486866) + (xy 79.140007 97.486867) + (xy 79.150259 97.491878) + (xy 79.235482 97.533536) + (xy 79.261071 97.537269) + (xy 79.299256 97.54284) + (xy 79.29926 97.54284) + (xy 79.303782 97.5435) + (xy 80.970218 97.5435) + (xy 80.974768 97.54283) + (xy 80.974771 97.54283) + (xy 81.029426 97.534784) + (xy 81.029427 97.534784) + (xy 81.039112 97.533358) + (xy 81.100535 97.503201) + (xy 81.134507 97.486522) + (xy 81.134509 97.486521) + (xy 81.143855 97.481932) + (xy 81.226293 97.39935) + (xy 81.233352 97.38491) + (xy 81.27324 97.303306) + (xy 81.277536 97.294518) + (xy 81.285173 97.242171) + (xy 81.28684 97.230744) + (xy 81.28684 97.23074) + (xy 81.2875 97.226218) + (xy 81.2875 96.603673) + (xy 81.307502 96.535552) + (xy 81.361158 96.489059) + (xy 81.431432 96.478955) + (xy 81.496012 96.508449) + (xy 81.534396 96.568175) + (xy 81.535658 96.573784) + (xy 81.535796 96.573749) + (xy 81.587845 96.77869) + (xy 81.590262 96.783933) + (xy 81.660648 96.936613) + (xy 81.676369 96.970714) + (xy 81.798405 97.143391) + (xy 81.839795 97.183711) + (xy 81.925973 97.267662) + (xy 81.949865 97.290937) + (xy 81.954661 97.294142) + (xy 81.954664 97.294144) + (xy 82.090505 97.38491) + (xy 82.125677 97.408411) + (xy 82.130985 97.410692) + (xy 82.130986 97.410692) + (xy 82.31465 97.4896) + (xy 82.314653 97.489601) + (xy 82.319953 97.491878) + (xy 82.325582 97.493152) + (xy 82.325583 97.493152) + (xy 82.52055 97.537269) + (xy 82.520553 97.537269) + (xy 82.526186 97.538544) + (xy 82.531957 97.538771) + (xy 82.531959 97.538771) + (xy 82.593989 97.541208) + (xy 82.73747 97.546846) + (xy 82.743179 97.546018) + (xy 82.743183 97.546018) + (xy 82.941015 97.517333) + (xy 82.941019 97.517332) + (xy 82.94673 97.516504) + (xy 83.034038 97.486867) + (xy 83.141483 97.450395) + (xy 83.141488 97.450393) + (xy 83.146955 97.448537) + (xy 83.156451 97.443219) + (xy 83.326395 97.348046) + (xy 83.326399 97.348043) + (xy 83.331442 97.345219) + (xy 83.494012 97.210012) + (xy 83.629219 97.047442) + (xy 83.632043 97.042399) + (xy 83.632046 97.042395) + (xy 83.729713 96.867998) + (xy 83.729714 96.867996) + (xy 83.732537 96.862955) + (xy 83.742239 96.834375) + (xy 83.783074 96.7763) + (xy 83.848827 96.749521) + (xy 83.918619 96.762542) + (xy 83.970293 96.811228) + (xy 83.979952 96.831783) + (xy 83.985509 96.84705) + (xy 84.077586 97.044511) + (xy 84.083069 97.054007) + (xy 84.208028 97.232467) + (xy 84.215084 97.240875) + (xy 84.369125 97.394916) + (xy 84.377533 97.401972) + (xy 84.555993 97.526931) + (xy 84.565489 97.532414) + (xy 84.762947 97.62449) + (xy 84.773239 97.628236) + (xy 84.945503 97.674394) + (xy 84.959599 97.674058) + (xy 84.963 97.666116) + (xy 84.963 97.660967) + (xy 85.471 97.660967) + (xy 85.474973 97.674498) + (xy 85.483522 97.675727) + (xy 85.660761 97.628236) + (xy 85.671053 97.62449) + (xy 85.868511 97.532414) + (xy 85.878007 97.526931) + (xy 86.056467 97.401972) + (xy 86.064875 97.394916) + (xy 86.218916 97.240875) + (xy 86.225972 97.232467) + (xy 86.350931 97.054007) + (xy 86.356414 97.044511) + (xy 86.372805 97.009359) + (xy 86.419722 96.956074) + (xy 86.487999 96.936613) + (xy 86.555959 96.957155) + (xy 86.601195 97.009359) + (xy 86.617586 97.044511) + (xy 86.623069 97.054007) + (xy 86.748028 97.232467) + (xy 86.755084 97.240875) + (xy 86.909125 97.394916) + (xy 86.917533 97.401972) + (xy 87.095993 97.526931) + (xy 87.105489 97.532414) + (xy 87.302947 97.62449) + (xy 87.313239 97.628236) + (xy 87.485503 97.674394) + (xy 87.499599 97.674058) + (xy 87.503 97.666116) + (xy 87.503 96.665115) + (xy 87.498525 96.649876) + (xy 87.497135 96.648671) + (xy 87.489452 96.647) + (xy 85.489115 96.647) + (xy 85.473876 96.651475) + (xy 85.472671 96.652865) + (xy 85.471 96.660548) + (xy 85.471 97.660967) + (xy 84.963 97.660967) + (xy 84.963 96.120885) + (xy 85.471 96.120885) + (xy 85.475475 96.136124) + (xy 85.476865 96.137329) + (xy 85.484548 96.139) + (xy 87.484885 96.139) + (xy 87.500124 96.134525) + (xy 87.501329 96.133135) + (xy 87.503 96.125452) + (xy 87.503 95.125033) + (xy 87.499027 95.111502) + (xy 87.490478 95.110273) + (xy 87.313239 95.157764) + (xy 87.302947 95.16151) + (xy 87.105489 95.253586) + (xy 87.095993 95.259069) + (xy 86.917533 95.384028) + (xy 86.909125 95.391084) + (xy 86.755084 95.545125) + (xy 86.748028 95.553533) + (xy 86.623069 95.731993) + (xy 86.617586 95.741489) + (xy 86.601195 95.776641) + (xy 86.554278 95.829926) + (xy 86.486001 95.849387) + (xy 86.418041 95.828845) + (xy 86.372805 95.776641) + (xy 86.356414 95.741489) + (xy 86.350931 95.731993) + (xy 86.225972 95.553533) + (xy 86.218916 95.545125) + (xy 86.064875 95.391084) + (xy 86.056467 95.384028) + (xy 85.878007 95.259069) + (xy 85.868511 95.253586) + (xy 85.671053 95.16151) + (xy 85.660761 95.157764) + (xy 85.488497 95.111606) + (xy 85.474401 95.111942) + (xy 85.471 95.119884) + (xy 85.471 96.120885) + (xy 84.963 96.120885) + (xy 84.963 95.125033) + (xy 84.959027 95.111502) + (xy 84.950478 95.110273) + (xy 84.773239 95.157764) + (xy 84.762947 95.16151) + (xy 84.565489 95.253586) + (xy 84.555993 95.259069) + (xy 84.377533 95.384028) + (xy 84.369125 95.391084) + (xy 84.215084 95.545125) + (xy 84.208028 95.553533) + (xy 84.083069 95.731993) + (xy 84.077586 95.741489) + (xy 83.98551 95.938947) + (xy 83.980455 95.952836) + (xy 83.938361 96.010007) + (xy 83.872039 96.035345) + (xy 83.802548 96.020804) + (xy 83.749048 95.96547) + (xy 83.664719 95.794469) + (xy 83.662165 95.78929) + (xy 83.535651 95.619867) + (xy 83.407237 95.501162) + (xy 83.384622 95.480257) + (xy 83.38462 95.480255) + (xy 83.380381 95.476337) + (xy 83.335671 95.448127) + (xy 83.206434 95.366584) + (xy 83.206433 95.366584) + (xy 83.201554 95.363505) + (xy 83.00516 95.285152) + (xy 82.999503 95.284027) + (xy 82.999497 95.284025) + (xy 82.803442 95.245028) + (xy 82.80344 95.245028) + (xy 82.797775 95.243901) + (xy 82.792 95.243825) + (xy 82.791996 95.243825) + (xy 82.685976 95.242437) + (xy 82.586346 95.241133) + (xy 82.580649 95.242112) + (xy 82.580648 95.242112) + (xy 82.38365 95.275962) + (xy 82.383649 95.275962) + (xy 82.377953 95.276941) + (xy 82.179575 95.350127) + (xy 82.174614 95.353079) + (xy 82.174613 95.353079) + (xy 82.093766 95.401178) + (xy 81.997856 95.458238) + (xy 81.838881 95.597655) + (xy 81.707976 95.763708) + (xy 81.705287 95.768819) + (xy 81.705285 95.768822) + (xy 81.691792 95.794469) + (xy 81.609523 95.950836) + (xy 81.54682 96.152773) + (xy 81.546141 96.15851) + (xy 81.538627 96.221995) + (xy 81.510756 96.287292) + (xy 81.452008 96.327156) + (xy 81.381034 96.32893) + (xy 81.320367 96.292051) + (xy 81.289269 96.228227) + (xy 81.2875 96.207185) + (xy 81.2875 95.559782) + (xy 81.286544 95.553284) + (xy 81.278784 95.500574) + (xy 81.278784 95.500573) + (xy 81.277358 95.490888) + (xy 81.225932 95.386145) + (xy 81.14335 95.303707) + (xy 81.109769 95.287292) + (xy 81.092686 95.278942) + (xy 81.038518 95.252464) + (xy 81.008027 95.248016) + (xy 80.974744 95.24316) + (xy 80.97474 95.24316) + (xy 80.970218 95.2425) + (xy 79.303782 95.2425) + (xy 79.299232 95.24317) + (xy 79.299229 95.24317) + (xy 79.244574 95.251216) + (xy 79.244573 95.251216) + (xy 79.234888 95.252642) + (xy 79.184992 95.27714) + (xy 79.139493 95.299478) + (xy 79.139491 95.299479) + (xy 79.130145 95.304068) + (xy 79.122787 95.311438) + (xy 79.122788 95.311438) + (xy 79.059396 95.374941) + (xy 79.047707 95.38665) + (xy 79.043134 95.396006) + (xy 79.043133 95.396007) + (xy 79.039488 95.403464) + (xy 78.996464 95.491482) + (xy 78.995052 95.501162) + (xy 78.987412 95.553533) + (xy 78.9865 95.559782) + (xy 78.9865 97.226218) + (xy 77.0895 97.226218) + (xy 77.0895 93.216261) + (xy 84.567294 93.216261) + (xy 84.57659 93.228276) + (xy 84.606189 93.249001) + (xy 84.615677 93.254479) + (xy 84.797277 93.339159) + (xy 84.807571 93.342907) + (xy 85.001122 93.394769) + (xy 85.011909 93.396671) + (xy 85.211525 93.414135) + (xy 85.222475 93.414135) + (xy 85.422091 93.396671) + (xy 85.432878 93.394769) + (xy 85.626429 93.342907) + (xy 85.636723 93.339159) + (xy 85.818323 93.254479) + (xy 85.827811 93.249001) + (xy 85.858248 93.227689) + (xy 85.866623 93.217212) + (xy 85.859554 93.203764) + (xy 85.229812 92.574022) + (xy 85.215868 92.566408) + (xy 85.214035 92.566539) + (xy 85.20742 92.57079) + (xy 84.573724 93.204486) + (xy 84.567294 93.216261) + (xy 77.0895 93.216261) + (xy 77.0895 92.207475) + (xy 84.004865 92.207475) + (xy 84.022329 92.407091) + (xy 84.024231 92.417878) + (xy 84.076093 92.611429) + (xy 84.079841 92.621723) + (xy 84.164521 92.803323) + (xy 84.169999 92.812811) + (xy 84.191311 92.843248) + (xy 84.201788 92.851623) + (xy 84.215236 92.844554) + (xy 84.844978 92.214812) + (xy 84.851356 92.203132) + (xy 85.581408 92.203132) + (xy 85.581539 92.204965) + (xy 85.58579 92.21158) + (xy 86.219486 92.845276) + (xy 86.231261 92.851706) + (xy 86.243276 92.84241) + (xy 86.264001 92.812811) + (xy 86.269479 92.803323) + (xy 86.354159 92.621723) + (xy 86.357907 92.611429) + (xy 86.409769 92.417878) + (xy 86.411671 92.407091) + (xy 86.429135 92.207475) + (xy 86.429135 92.196525) + (xy 86.411671 91.996909) + (xy 86.409769 91.986122) + (xy 86.357907 91.792571) + (xy 86.354159 91.782277) + (xy 86.269479 91.600677) + (xy 86.264001 91.591189) + (xy 86.242689 91.560752) + (xy 86.232212 91.552377) + (xy 86.218764 91.559446) + (xy 85.589022 92.189188) + (xy 85.581408 92.203132) + (xy 84.851356 92.203132) + (xy 84.852592 92.200868) + (xy 84.852461 92.199035) + (xy 84.84821 92.19242) + (xy 84.214514 91.558724) + (xy 84.202739 91.552294) + (xy 84.190724 91.56159) + (xy 84.169999 91.591189) + (xy 84.164521 91.600677) + (xy 84.079841 91.782277) + (xy 84.076093 91.792571) + (xy 84.024231 91.986122) + (xy 84.022329 91.996909) + (xy 84.004865 92.196525) + (xy 84.004865 92.207475) + (xy 77.0895 92.207475) + (xy 77.0895 90.182522) + (xy 84.037801 90.182522) + (xy 84.076092 90.325423) + (xy 84.079842 90.335727) + (xy 84.164521 90.517323) + (xy 84.169998 90.526811) + (xy 84.284925 90.690942) + (xy 84.291981 90.69935) + (xy 84.43365 90.841019) + (xy 84.442058 90.848075) + (xy 84.595886 90.955787) + (xy 84.640214 91.011244) + (xy 84.647523 91.081864) + (xy 84.615492 91.145224) + (xy 84.595886 91.162213) + (xy 84.575752 91.176311) + (xy 84.567377 91.186788) + (xy 84.574446 91.200236) + (xy 85.204188 91.829978) + (xy 85.218132 91.837592) + (xy 85.219965 91.837461) + (xy 85.22658 91.83321) + (xy 85.860276 91.199514) + (xy 85.866706 91.187739) + (xy 85.85741 91.175725) + (xy 85.838114 91.162213) + (xy 85.793786 91.106756) + (xy 85.786477 91.036137) + (xy 85.818507 90.972776) + (xy 85.838114 90.955787) + (xy 85.991942 90.848075) + (xy 86.00035 90.841019) + (xy 86.142019 90.69935) + (xy 86.149075 90.690942) + (xy 86.264002 90.526811) + (xy 86.269479 90.517323) + (xy 86.354158 90.335727) + (xy 86.357908 90.325423) + (xy 86.394866 90.187497) + (xy 86.39453 90.173401) + (xy 86.386588 90.17) + (xy 84.052561 90.17) + (xy 84.03903 90.173973) + (xy 84.037801 90.182522) + (xy 77.0895 90.182522) + (xy 77.0895 89.644503) + (xy 84.039134 89.644503) + (xy 84.03947 89.658599) + (xy 84.047412 89.662) + (xy 86.381439 89.662) + (xy 86.39497 89.658027) + (xy 86.396199 89.649478) + (xy 86.357908 89.506577) + (xy 86.354158 89.496273) + (xy 86.269479 89.314677) + (xy 86.264002 89.305189) + (xy 86.149075 89.141058) + (xy 86.142019 89.13265) + (xy 86.00035 88.990981) + (xy 85.991942 88.983925) + (xy 85.838114 88.876213) + (xy 85.793786 88.820756) + (xy 85.786477 88.750136) + (xy 85.818508 88.686776) + (xy 85.838114 88.669787) + (xy 85.858248 88.655689) + (xy 85.866623 88.645212) + (xy 85.859554 88.631764) + (xy 85.229812 88.002022) + (xy 85.215868 87.994408) + (xy 85.214035 87.994539) + (xy 85.20742 87.99879) + (xy 84.573724 88.632486) + (xy 84.567294 88.644261) + (xy 84.57659 88.656275) + (xy 84.595886 88.669787) + (xy 84.640214 88.725244) + (xy 84.647523 88.795863) + (xy 84.615493 88.859224) + (xy 84.595886 88.876213) + (xy 84.442058 88.983925) + (xy 84.43365 88.990981) + (xy 84.291981 89.13265) + (xy 84.284925 89.141058) + (xy 84.169998 89.305189) + (xy 84.164521 89.314677) + (xy 84.079842 89.496273) + (xy 84.076092 89.506577) + (xy 84.039134 89.644503) + (xy 77.0895 89.644503) + (xy 77.0895 87.635475) + (xy 84.004865 87.635475) + (xy 84.022329 87.835091) + (xy 84.024231 87.845878) + (xy 84.076093 88.039429) + (xy 84.079841 88.049723) + (xy 84.164521 88.231323) + (xy 84.169999 88.240811) + (xy 84.191311 88.271248) + (xy 84.201788 88.279623) + (xy 84.215236 88.272554) + (xy 84.844978 87.642812) + (xy 84.851356 87.631132) + (xy 85.581408 87.631132) + (xy 85.581539 87.632965) + (xy 85.58579 87.63958) + (xy 86.219486 88.273276) + (xy 86.231261 88.279706) + (xy 86.243276 88.27041) + (xy 86.264001 88.240811) + (xy 86.269479 88.231323) + (xy 86.354159 88.049723) + (xy 86.357907 88.039429) + (xy 86.409769 87.845878) + (xy 86.411671 87.835091) + (xy 86.429135 87.635475) + (xy 86.429135 87.624525) + (xy 86.411671 87.424909) + (xy 86.409769 87.414122) + (xy 86.357907 87.220571) + (xy 86.354159 87.210277) + (xy 86.269479 87.028677) + (xy 86.264001 87.019189) + (xy 86.242689 86.988752) + (xy 86.232212 86.980377) + (xy 86.218764 86.987446) + (xy 85.589022 87.617188) + (xy 85.581408 87.631132) + (xy 84.851356 87.631132) + (xy 84.852592 87.628868) + (xy 84.852461 87.627035) + (xy 84.84821 87.62042) + (xy 84.214514 86.986724) + (xy 84.202739 86.980294) + (xy 84.190724 86.98959) + (xy 84.169999 87.019189) + (xy 84.164521 87.028677) + (xy 84.079841 87.210277) + (xy 84.076093 87.220571) + (xy 84.024231 87.414122) + (xy 84.022329 87.424909) + (xy 84.004865 87.624525) + (xy 84.004865 87.635475) + (xy 77.0895 87.635475) + (xy 77.0895 85.610522) + (xy 84.037801 85.610522) + (xy 84.076092 85.753423) + (xy 84.079842 85.763727) + (xy 84.164521 85.945323) + (xy 84.169998 85.954811) + (xy 84.284925 86.118942) + (xy 84.291981 86.12735) + (xy 84.43365 86.269019) + (xy 84.442058 86.276075) + (xy 84.595886 86.383787) + (xy 84.640214 86.439244) + (xy 84.647523 86.509864) + (xy 84.615492 86.573224) + (xy 84.595886 86.590213) + (xy 84.575752 86.604311) + (xy 84.567377 86.614788) + (xy 84.574446 86.628236) + (xy 85.204188 87.257978) + (xy 85.218132 87.265592) + (xy 85.219965 87.265461) + (xy 85.22658 87.26121) + (xy 85.860276 86.627514) + (xy 85.866706 86.615739) + (xy 85.85741 86.603725) + (xy 85.838114 86.590213) + (xy 85.793786 86.534756) + (xy 85.786477 86.464137) + (xy 85.818507 86.400776) + (xy 85.838114 86.383787) + (xy 85.991942 86.276075) + (xy 86.00035 86.269019) + (xy 86.142019 86.12735) + (xy 86.149075 86.118942) + (xy 86.264002 85.954811) + (xy 86.269479 85.945323) + (xy 86.354158 85.763727) + (xy 86.357908 85.753423) + (xy 86.394866 85.615497) + (xy 86.39453 85.601401) + (xy 86.386588 85.598) + (xy 84.052561 85.598) + (xy 84.03903 85.601973) + (xy 84.037801 85.610522) + (xy 77.0895 85.610522) + (xy 77.0895 85.072503) + (xy 84.039134 85.072503) + (xy 84.03947 85.086599) + (xy 84.047412 85.09) + (xy 84.944885 85.09) + (xy 84.960124 85.085525) + (xy 84.961329 85.084135) + (xy 84.963 85.076452) + (xy 84.963 85.071885) + (xy 85.471 85.071885) + (xy 85.475475 85.087124) + (xy 85.476865 85.088329) + (xy 85.484548 85.09) + (xy 86.381439 85.09) + (xy 86.39497 85.086027) + (xy 86.396199 85.077478) + (xy 86.357908 84.934577) + (xy 86.354158 84.924273) + (xy 86.269479 84.742677) + (xy 86.264002 84.733189) + (xy 86.149075 84.569058) + (xy 86.142019 84.56065) + (xy 86.00035 84.418981) + (xy 85.991942 84.411925) + (xy 85.827811 84.296998) + (xy 85.818323 84.291521) + (xy 85.636727 84.206842) + (xy 85.626423 84.203092) + (xy 85.488497 84.166134) + (xy 85.474401 84.16647) + (xy 85.471 84.174412) + (xy 85.471 85.071885) + (xy 84.963 85.071885) + (xy 84.963 84.179561) + (xy 84.959027 84.16603) + (xy 84.950478 84.164801) + (xy 84.807577 84.203092) + (xy 84.797273 84.206842) + (xy 84.615677 84.291521) + (xy 84.606189 84.296998) + (xy 84.442058 84.411925) + (xy 84.43365 84.418981) + (xy 84.291981 84.56065) + (xy 84.284925 84.569058) + (xy 84.169998 84.733189) + (xy 84.164521 84.742677) + (xy 84.079842 84.924273) + (xy 84.076092 84.934577) + (xy 84.039134 85.072503) + (xy 77.0895 85.072503) + (xy 77.0895 81.122754) + (xy 78.981967 81.122754) + (xy 78.982345 81.12852) + (xy 78.994664 81.31647) + (xy 78.995796 81.333749) + (xy 78.997217 81.339345) + (xy 78.997218 81.33935) + (xy 79.044861 81.526942) + (xy 79.047845 81.53869) + (xy 79.050262 81.543933) + (xy 79.096402 81.644018) + (xy 79.136369 81.730714) + (xy 79.258405 81.903391) + (xy 79.409865 82.050937) + (xy 79.414661 82.054142) + (xy 79.414664 82.054144) + (xy 79.545168 82.141344) + (xy 79.585677 82.168411) + (xy 79.590985 82.170692) + (xy 79.590986 82.170692) + (xy 79.77465 82.2496) + (xy 79.774653 82.249601) + (xy 79.779953 82.251878) + (xy 79.785582 82.253152) + (xy 79.785583 82.253152) + (xy 79.98055 82.297269) + (xy 79.980553 82.297269) + (xy 79.986186 82.298544) + (xy 79.991957 82.298771) + (xy 79.991959 82.298771) + (xy 80.053989 82.301208) + (xy 80.19747 82.306846) + (xy 80.203179 82.306018) + (xy 80.203183 82.306018) + (xy 80.401015 82.277333) + (xy 80.401019 82.277332) + (xy 80.40673 82.276504) + (xy 80.485987 82.2496) + (xy 80.601483 82.210395) + (xy 80.601488 82.210393) + (xy 80.606955 82.208537) + (xy 80.614126 82.204521) + (xy 80.786395 82.108046) + (xy 80.786399 82.108043) + (xy 80.791442 82.105219) + (xy 80.954012 81.970012) + (xy 81.089219 81.807442) + (xy 81.092043 81.802399) + (xy 81.092046 81.802395) + (xy 81.189713 81.627998) + (xy 81.189714 81.627996) + (xy 81.192537 81.622955) + (xy 81.202239 81.594375) + (xy 81.243074 81.5363) + (xy 81.308827 81.509521) + (xy 81.378619 81.522542) + (xy 81.430293 81.571228) + (xy 81.439952 81.591783) + (xy 81.445509 81.60705) + (xy 81.537586 81.804511) + (xy 81.543069 81.814007) + (xy 81.668028 81.992467) + (xy 81.675084 82.000875) + (xy 81.829125 82.154916) + (xy 81.837533 82.161972) + (xy 82.015993 82.286931) + (xy 82.025489 82.292414) + (xy 82.222947 82.38449) + (xy 82.233239 82.388236) + (xy 82.405503 82.434394) + (xy 82.419599 82.434058) + (xy 82.423 82.426116) + (xy 82.423 82.420967) + (xy 82.931 82.420967) + (xy 82.934973 82.434498) + (xy 82.943522 82.435727) + (xy 83.120761 82.388236) + (xy 83.131053 82.38449) + (xy 83.328511 82.292414) + (xy 83.338007 82.286931) + (xy 83.516467 82.161972) + (xy 83.524875 82.154916) + (xy 83.678916 82.000875) + (xy 83.685972 81.992467) + (xy 83.810931 81.814007) + (xy 83.816414 81.804511) + (xy 83.90849 81.607053) + (xy 83.914119 81.591587) + (xy 83.916329 81.592391) + (xy 83.948051 81.540324) + (xy 84.011904 81.509288) + (xy 84.082401 81.517701) + (xy 84.137157 81.562892) + (xy 84.147252 81.580788) + (xy 84.201641 81.698767) + (xy 84.216369 81.730714) + (xy 84.338405 81.903391) + (xy 84.489865 82.050937) + (xy 84.494661 82.054142) + (xy 84.494664 82.054144) + (xy 84.625168 82.141344) + (xy 84.665677 82.168411) + (xy 84.670985 82.170692) + (xy 84.670986 82.170692) + (xy 84.85465 82.2496) + (xy 84.854653 82.249601) + (xy 84.859953 82.251878) + (xy 84.865582 82.253152) + (xy 84.865583 82.253152) + (xy 85.06055 82.297269) + (xy 85.060553 82.297269) + (xy 85.066186 82.298544) + (xy 85.071957 82.298771) + (xy 85.071959 82.298771) + (xy 85.133989 82.301208) + (xy 85.27747 82.306846) + (xy 85.283179 82.306018) + (xy 85.283183 82.306018) + (xy 85.481015 82.277333) + (xy 85.481019 82.277332) + (xy 85.48673 82.276504) + (xy 85.565987 82.2496) + (xy 85.681483 82.210395) + (xy 85.681488 82.210393) + (xy 85.686955 82.208537) + (xy 85.694126 82.204521) + (xy 85.866395 82.108046) + (xy 85.866399 82.108043) + (xy 85.871442 82.105219) + (xy 86.034012 81.970012) + (xy 86.169219 81.807442) + (xy 86.172043 81.802399) + (xy 86.172046 81.802395) + (xy 86.269713 81.627998) + (xy 86.269714 81.627996) + (xy 86.272537 81.622955) + (xy 86.274393 81.617488) + (xy 86.274395 81.617483) + (xy 86.338647 81.4282) + (xy 86.340504 81.42273) + (xy 86.341333 81.417015) + (xy 86.36209 81.27386) + (xy 86.39166 81.209315) + (xy 86.451432 81.171003) + (xy 86.522429 81.171087) + (xy 86.582109 81.209542) + (xy 86.611525 81.274158) + (xy 86.612515 81.283695) + (xy 86.615796 81.333749) + (xy 86.617217 81.339345) + (xy 86.617218 81.33935) + (xy 86.664861 81.526942) + (xy 86.667845 81.53869) + (xy 86.670262 81.543933) + (xy 86.716402 81.644018) + (xy 86.756369 81.730714) + (xy 86.878405 81.903391) + (xy 87.029865 82.050937) + (xy 87.034661 82.054142) + (xy 87.034664 82.054144) + (xy 87.165168 82.141344) + (xy 87.205677 82.168411) + (xy 87.210985 82.170692) + (xy 87.210986 82.170692) + (xy 87.39465 82.2496) + (xy 87.394653 82.249601) + (xy 87.399953 82.251878) + (xy 87.405582 82.253152) + (xy 87.405583 82.253152) + (xy 87.60055 82.297269) + (xy 87.600553 82.297269) + (xy 87.606186 82.298544) + (xy 87.611957 82.298771) + (xy 87.611959 82.298771) + (xy 87.673989 82.301208) + (xy 87.81747 82.306846) + (xy 87.823179 82.306018) + (xy 87.823183 82.306018) + (xy 88.021015 82.277333) + (xy 88.021019 82.277332) + (xy 88.02673 82.276504) + (xy 88.105987 82.2496) + (xy 88.221483 82.210395) + (xy 88.221488 82.210393) + (xy 88.226955 82.208537) + (xy 88.234126 82.204521) + (xy 88.406395 82.108046) + (xy 88.406399 82.108043) + (xy 88.411442 82.105219) + (xy 88.574012 81.970012) + (xy 88.709219 81.807442) + (xy 88.712043 81.802399) + (xy 88.712046 81.802395) + (xy 88.809713 81.627998) + (xy 88.809714 81.627996) + (xy 88.812537 81.622955) + (xy 88.814393 81.617488) + (xy 88.814395 81.617483) + (xy 88.878647 81.4282) + (xy 88.880504 81.42273) + (xy 88.881333 81.417015) + (xy 88.90209 81.27386) + (xy 88.93166 81.209315) + (xy 88.991432 81.171003) + (xy 89.062429 81.171087) + (xy 89.122109 81.209542) + (xy 89.151525 81.274158) + (xy 89.152515 81.283695) + (xy 89.155796 81.333749) + (xy 89.157217 81.339345) + (xy 89.157218 81.33935) + (xy 89.204861 81.526942) + (xy 89.207845 81.53869) + (xy 89.210262 81.543933) + (xy 89.256402 81.644018) + (xy 89.296369 81.730714) + (xy 89.418405 81.903391) + (xy 89.569865 82.050937) + (xy 89.574661 82.054142) + (xy 89.574664 82.054144) + (xy 89.705168 82.141344) + (xy 89.745677 82.168411) + (xy 89.750985 82.170692) + (xy 89.750986 82.170692) + (xy 89.93465 82.2496) + (xy 89.934653 82.249601) + (xy 89.939953 82.251878) + (xy 89.945582 82.253152) + (xy 89.945583 82.253152) + (xy 90.14055 82.297269) + (xy 90.140553 82.297269) + (xy 90.146186 82.298544) + (xy 90.151957 82.298771) + (xy 90.151959 82.298771) + (xy 90.213989 82.301208) + (xy 90.35747 82.306846) + (xy 90.363179 82.306018) + (xy 90.363183 82.306018) + (xy 90.561015 82.277333) + (xy 90.561019 82.277332) + (xy 90.56673 82.276504) + (xy 90.645987 82.2496) + (xy 90.761483 82.210395) + (xy 90.761488 82.210393) + (xy 90.766955 82.208537) + (xy 90.774126 82.204521) + (xy 90.946395 82.108046) + (xy 90.946399 82.108043) + (xy 90.951442 82.105219) + (xy 91.114012 81.970012) + (xy 91.249219 81.807442) + (xy 91.252043 81.802399) + (xy 91.252046 81.802395) + (xy 91.349713 81.627998) + (xy 91.349714 81.627996) + (xy 91.352537 81.622955) + (xy 91.354393 81.617488) + (xy 91.354395 81.617483) + (xy 91.418647 81.4282) + (xy 91.420504 81.42273) + (xy 91.421333 81.417015) + (xy 91.44209 81.27386) + (xy 91.47166 81.209315) + (xy 91.531432 81.171003) + (xy 91.602429 81.171087) + (xy 91.662109 81.209542) + (xy 91.691525 81.274158) + (xy 91.692515 81.283695) + (xy 91.695796 81.333749) + (xy 91.697217 81.339345) + (xy 91.697218 81.33935) + (xy 91.744861 81.526942) + (xy 91.747845 81.53869) + (xy 91.750262 81.543933) + (xy 91.796402 81.644018) + (xy 91.836369 81.730714) + (xy 91.958405 81.903391) + (xy 92.109865 82.050937) + (xy 92.114661 82.054142) + (xy 92.114664 82.054144) + (xy 92.245168 82.141344) + (xy 92.285677 82.168411) + (xy 92.290985 82.170692) + (xy 92.290986 82.170692) + (xy 92.47465 82.2496) + (xy 92.474653 82.249601) + (xy 92.479953 82.251878) + (xy 92.485582 82.253152) + (xy 92.485583 82.253152) + (xy 92.68055 82.297269) + (xy 92.680553 82.297269) + (xy 92.686186 82.298544) + (xy 92.691957 82.298771) + (xy 92.691959 82.298771) + (xy 92.753989 82.301208) + (xy 92.89747 82.306846) + (xy 92.903179 82.306018) + (xy 92.903183 82.306018) + (xy 93.101015 82.277333) + (xy 93.101019 82.277332) + (xy 93.10673 82.276504) + (xy 93.185987 82.2496) + (xy 93.301483 82.210395) + (xy 93.301488 82.210393) + (xy 93.306955 82.208537) + (xy 93.314126 82.204521) + (xy 93.486395 82.108046) + (xy 93.486399 82.108043) + (xy 93.491442 82.105219) + (xy 93.654012 81.970012) + (xy 93.789219 81.807442) + (xy 93.792043 81.802399) + (xy 93.792046 81.802395) + (xy 93.889713 81.627998) + (xy 93.889714 81.627996) + (xy 93.892537 81.622955) + (xy 93.894393 81.617488) + (xy 93.894395 81.617483) + (xy 93.958647 81.4282) + (xy 93.960504 81.42273) + (xy 93.961333 81.417015) + (xy 93.98209 81.27386) + (xy 94.01166 81.209315) + (xy 94.071432 81.171003) + (xy 94.142429 81.171087) + (xy 94.202109 81.209542) + (xy 94.231525 81.274158) + (xy 94.232515 81.283695) + (xy 94.235796 81.333749) + (xy 94.237217 81.339345) + (xy 94.237218 81.33935) + (xy 94.284861 81.526942) + (xy 94.287845 81.53869) + (xy 94.290262 81.543933) + (xy 94.336402 81.644018) + (xy 94.376369 81.730714) + (xy 94.498405 81.903391) + (xy 94.649865 82.050937) + (xy 94.693409 82.080032) + (xy 94.795502 82.148249) + (xy 94.84103 82.202726) + (xy 94.8515 82.253014) + (xy 94.8515 83.804141) + (xy 94.831498 83.872262) + (xy 94.814595 83.893236) + (xy 93.926236 84.781595) + (xy 93.863924 84.815621) + (xy 93.837141 84.8185) + (xy 93.822025 84.8185) + (xy 93.753904 84.798498) + (xy 93.71793 84.763069) + (xy 93.716218 84.759849) + (xy 93.710659 84.753033) + (xy 93.589906 84.604975) + (xy 93.589903 84.604972) + (xy 93.586011 84.6002) + (xy 93.548367 84.569058) + (xy 93.432025 84.472811) + (xy 93.432021 84.472809) + (xy 93.427275 84.468882) + (xy 93.246055 84.370897) + (xy 93.049254 84.309977) + (xy 93.043129 84.309333) + (xy 93.043128 84.309333) + (xy 92.850498 84.289087) + (xy 92.850496 84.289087) + (xy 92.844369 84.288443) + (xy 92.783724 84.293962) + (xy 92.645342 84.306555) + (xy 92.645339 84.306556) + (xy 92.639203 84.307114) + (xy 92.441572 84.36528) + (xy 92.259002 84.460726) + (xy 92.254201 84.464586) + (xy 92.254198 84.464588) + (xy 92.103254 84.58595) + (xy 92.098447 84.589815) + (xy 91.966024 84.74763) + (xy 91.963056 84.753028) + (xy 91.963053 84.753033) + (xy 91.927063 84.8185) + (xy 91.866776 84.928162) + (xy 91.804484 85.124532) + (xy 91.803798 85.130649) + (xy 91.803797 85.130653) + (xy 91.795324 85.206197) + (xy 91.78152 85.329262) + (xy 91.782036 85.335406) + (xy 91.797998 85.525487) + (xy 91.798759 85.534553) + (xy 91.800458 85.540478) + (xy 91.84979 85.712518) + (xy 91.855544 85.732586) + (xy 91.858359 85.738063) + (xy 91.85836 85.738066) + (xy 91.946897 85.910341) + (xy 91.949712 85.915818) + (xy 92.077677 86.07727) + (xy 92.08237 86.081264) + (xy 92.082371 86.081265) + (xy 92.145503 86.134994) + (xy 92.234564 86.210791) + (xy 92.239942 86.213797) + (xy 92.239944 86.213798) + (xy 92.278342 86.235258) + (xy 92.414398 86.311297) + (xy 92.466251 86.328145) + (xy 92.589231 86.368104) + (xy 92.647837 86.408178) + (xy 92.675474 86.473574) + (xy 92.663367 86.543531) + (xy 92.615361 86.595837) + (xy 92.585872 86.60881) + (xy 92.441572 86.65128) + (xy 92.259002 86.746726) + (xy 92.254201 86.750586) + (xy 92.254198 86.750588) + (xy 92.185802 86.80558) + (xy 92.098447 86.875815) + (xy 91.966024 87.03363) + (xy 91.963056 87.039028) + (xy 91.963053 87.039033) + (xy 91.869743 87.208765) + (xy 91.866776 87.214162) + (xy 91.804484 87.410532) + (xy 91.803798 87.416649) + (xy 91.803797 87.416653) + (xy 91.784781 87.586187) + (xy 91.78152 87.615262) + (xy 91.78563 87.664207) + (xy 91.797189 87.801853) + (xy 91.798759 87.820553) + (xy 91.800458 87.826478) + (xy 91.849868 87.99879) + (xy 91.855544 88.018586) + (xy 91.858359 88.024063) + (xy 91.85836 88.024066) + (xy 91.946897 88.196341) + (xy 91.949712 88.201818) + (xy 92.077677 88.36327) + (xy 92.08237 88.367264) + (xy 92.082371 88.367265) + (xy 92.229445 88.492434) + (xy 92.234564 88.496791) + (xy 92.414398 88.597297) + (xy 92.520476 88.631764) + (xy 92.589231 88.654104) + (xy 92.647837 88.694178) + (xy 92.675474 88.759574) + (xy 92.663367 88.829531) + (xy 92.615361 88.881837) + (xy 92.585872 88.89481) + (xy 92.441572 88.93728) + (xy 92.259002 89.032726) + (xy 92.254201 89.036586) + (xy 92.254198 89.036588) + (xy 92.103254 89.15795) + (xy 92.098447 89.161815) + (xy 91.966024 89.31963) + (xy 91.963056 89.325028) + (xy 91.963053 89.325033) + (xy 91.874813 89.485543) + (xy 91.866776 89.500162) + (xy 91.804484 89.696532) + (xy 91.803798 89.702649) + (xy 91.803797 89.702653) + (xy 91.788164 89.842025) + (xy 91.78152 89.901262) + (xy 91.798759 90.106553) + (xy 91.800458 90.112478) + (xy 91.850647 90.287507) + (xy 91.855544 90.304586) + (xy 91.858359 90.310063) + (xy 91.85836 90.310066) + (xy 91.880152 90.352469) + (xy 91.949712 90.487818) + (xy 92.077677 90.64927) + (xy 92.08237 90.653264) + (xy 92.082371 90.653265) + (xy 92.184802 90.74044) + (xy 92.234564 90.782791) + (xy 92.239942 90.785797) + (xy 92.239944 90.785798) + (xy 92.267567 90.801236) + (xy 92.414398 90.883297) + (xy 92.466251 90.900145) + (xy 92.589231 90.940104) + (xy 92.647837 90.980178) + (xy 92.675474 91.045574) + (xy 92.663367 91.115531) + (xy 92.615361 91.167837) + (xy 92.585872 91.18081) + (xy 92.441572 91.22328) + (xy 92.436107 91.226137) + (xy 92.434313 91.227075) + (xy 92.259002 91.318726) + (xy 92.254201 91.322586) + (xy 92.254198 91.322588) + (xy 92.131854 91.420955) + (xy 92.098447 91.447815) + (xy 91.966024 91.60563) + (xy 91.963056 91.611028) + (xy 91.963053 91.611033) + (xy 91.874813 91.771543) + (xy 91.866776 91.786162) + (xy 91.804484 91.982532) + (xy 91.803798 91.988649) + (xy 91.803797 91.988653) + (xy 91.785136 92.155026) + (xy 91.78152 92.187262) + (xy 91.78563 92.236207) + (xy 91.794861 92.346128) + (xy 91.798759 92.392553) + (xy 91.800458 92.398478) + (xy 91.849868 92.57079) + (xy 91.855544 92.590586) + (xy 91.858359 92.596063) + (xy 91.85836 92.596066) + (xy 91.922922 92.72169) + (xy 91.949712 92.773818) + (xy 92.077677 92.93527) + (xy 92.08237 92.939264) + (xy 92.082371 92.939265) + (xy 92.223483 93.05936) + (xy 92.234564 93.068791) + (xy 92.239942 93.071797) + (xy 92.239944 93.071798) + (xy 92.264148 93.085325) + (xy 92.414398 93.169297) + (xy 92.479777 93.19054) + (xy 92.604471 93.231056) + (xy 92.604475 93.231057) + (xy 92.610329 93.232959) + (xy 92.814894 93.257351) + (xy 92.821029 93.256879) + (xy 92.821031 93.256879) + (xy 92.877039 93.252569) + (xy 93.0203 93.241546) + (xy 93.02623 93.23989) + (xy 93.026232 93.23989) + (xy 93.179069 93.197217) + (xy 93.218725 93.186145) + (xy 93.224214 93.183372) + (xy 93.22422 93.18337) + (xy 93.397116 93.096033) + (xy 93.40261 93.093258) + (xy 93.4114 93.086391) + (xy 93.514832 93.005581) + (xy 93.564951 92.966424) + (xy 93.592782 92.934182) + (xy 93.69554 92.815134) + (xy 93.69554 92.815133) + (xy 93.699564 92.810472) + (xy 93.710477 92.791262) + (xy 93.761514 92.741913) + (xy 93.820032 92.7275) + (xy 93.837141 92.7275) + (xy 93.905262 92.747502) + (xy 93.926236 92.764405) + (xy 94.814595 93.652764) + (xy 94.848621 93.715076) + (xy 94.8515 93.741859) + (xy 94.8515 95.295179) + (xy 94.831498 95.3633) + (xy 94.789923 95.403464) + (xy 94.714851 95.448127) + (xy 94.697856 95.458238) + (xy 94.538881 95.597655) + (xy 94.407976 95.763708) + (xy 94.405287 95.768819) + (xy 94.405285 95.768822) + (xy 94.391792 95.794469) + (xy 94.309523 95.950836) + (xy 94.24682 96.152773) + (xy 94.246141 96.15851) + (xy 94.232088 96.277239) + (xy 94.204217 96.342537) + (xy 94.145469 96.382401) + (xy 94.074494 96.384174) + (xy 94.013828 96.347295) + (xy 93.98273 96.283471) + (xy 93.98149 96.273958) + (xy 93.980194 96.259846) + (xy 93.973081 96.18244) + (xy 93.960359 96.137329) + (xy 93.944894 96.082496) + (xy 93.915686 95.978931) + (xy 93.908612 95.964585) + (xy 93.824719 95.794469) + (xy 93.822165 95.78929) + (xy 93.695651 95.619867) + (xy 93.567237 95.501162) + (xy 93.544622 95.480257) + (xy 93.54462 95.480255) + (xy 93.540381 95.476337) + (xy 93.495671 95.448127) + (xy 93.366434 95.366584) + (xy 93.366433 95.366584) + (xy 93.361554 95.363505) + (xy 93.16516 95.285152) + (xy 93.159503 95.284027) + (xy 93.159497 95.284025) + (xy 92.963442 95.245028) + (xy 92.96344 95.245028) + (xy 92.957775 95.243901) + (xy 92.952 95.243825) + (xy 92.951996 95.243825) + (xy 92.845976 95.242437) + (xy 92.746346 95.241133) + (xy 92.740649 95.242112) + (xy 92.740648 95.242112) + (xy 92.54365 95.275962) + (xy 92.543649 95.275962) + (xy 92.537953 95.276941) + (xy 92.339575 95.350127) + (xy 92.334614 95.353079) + (xy 92.334613 95.353079) + (xy 92.253766 95.401178) + (xy 92.157856 95.458238) + (xy 91.998881 95.597655) + (xy 91.867976 95.763708) + (xy 91.865287 95.768819) + (xy 91.865285 95.768822) + (xy 91.851792 95.794469) + (xy 91.769523 95.950836) + (xy 91.70682 96.152773) + (xy 91.706141 96.15851) + (xy 91.692088 96.277239) + (xy 91.664217 96.342537) + (xy 91.605469 96.382401) + (xy 91.534494 96.384174) + (xy 91.473828 96.347295) + (xy 91.44273 96.283471) + (xy 91.44149 96.273958) + (xy 91.440194 96.259846) + (xy 91.433081 96.18244) + (xy 91.420359 96.137329) + (xy 91.404894 96.082496) + (xy 91.375686 95.978931) + (xy 91.368612 95.964585) + (xy 91.284719 95.794469) + (xy 91.282165 95.78929) + (xy 91.155651 95.619867) + (xy 91.027237 95.501162) + (xy 91.004622 95.480257) + (xy 91.00462 95.480255) + (xy 91.000381 95.476337) + (xy 90.955671 95.448127) + (xy 90.826434 95.366584) + (xy 90.826433 95.366584) + (xy 90.821554 95.363505) + (xy 90.62516 95.285152) + (xy 90.619503 95.284027) + (xy 90.619497 95.284025) + (xy 90.423442 95.245028) + (xy 90.42344 95.245028) + (xy 90.417775 95.243901) + (xy 90.412 95.243825) + (xy 90.411996 95.243825) + (xy 90.305976 95.242437) + (xy 90.206346 95.241133) + (xy 90.200649 95.242112) + (xy 90.200648 95.242112) + (xy 90.00365 95.275962) + (xy 90.003649 95.275962) + (xy 89.997953 95.276941) + (xy 89.799575 95.350127) + (xy 89.794614 95.353079) + (xy 89.794613 95.353079) + (xy 89.713766 95.401178) + (xy 89.617856 95.458238) + (xy 89.458881 95.597655) + (xy 89.327976 95.763708) + (xy 89.325287 95.768819) + (xy 89.325285 95.768822) + (xy 89.232211 95.945726) + (xy 89.232209 95.945731) + (xy 89.229523 95.950836) + (xy 89.227811 95.956349) + (xy 89.227788 95.956405) + (xy 89.18324 96.011686) + (xy 89.115876 96.034106) + (xy 89.047085 96.016547) + (xy 88.998707 95.964585) + (xy 88.992979 95.95128) + (xy 88.988491 95.93895) + (xy 88.896414 95.741489) + (xy 88.890931 95.731993) + (xy 88.765972 95.553533) + (xy 88.758916 95.545125) + (xy 88.604875 95.391084) + (xy 88.596467 95.384028) + (xy 88.418007 95.259069) + (xy 88.408511 95.253586) + (xy 88.211053 95.16151) + (xy 88.200761 95.157764) + (xy 88.028497 95.111606) + (xy 88.014401 95.111942) + (xy 88.011 95.119884) + (xy 88.011 97.660967) + (xy 88.014973 97.674498) + (xy 88.023522 97.675727) + (xy 88.200761 97.628236) + (xy 88.211053 97.62449) + (xy 88.408511 97.532414) + (xy 88.418007 97.526931) + (xy 88.596467 97.401972) + (xy 88.604875 97.394916) + (xy 88.758916 97.240875) + (xy 88.765972 97.232467) + (xy 88.890931 97.054007) + (xy 88.896414 97.044511) + (xy 88.98849 96.847053) + (xy 88.994119 96.831587) + (xy 88.996329 96.832391) + (xy 89.028051 96.780324) + (xy 89.091904 96.749288) + (xy 89.162401 96.757701) + (xy 89.217157 96.802892) + (xy 89.227252 96.820788) + (xy 89.280648 96.936613) + (xy 89.296369 96.970714) + (xy 89.418405 97.143391) + (xy 89.459795 97.183711) + (xy 89.545973 97.267662) + (xy 89.569865 97.290937) + (xy 89.574661 97.294142) + (xy 89.574664 97.294144) + (xy 89.710505 97.38491) + (xy 89.745677 97.408411) + (xy 89.750985 97.410692) + (xy 89.750986 97.410692) + (xy 89.93465 97.4896) + (xy 89.934653 97.489601) + (xy 89.939953 97.491878) + (xy 89.945582 97.493152) + (xy 89.945583 97.493152) + (xy 90.14055 97.537269) + (xy 90.140553 97.537269) + (xy 90.146186 97.538544) + (xy 90.151957 97.538771) + (xy 90.151959 97.538771) + (xy 90.213989 97.541208) + (xy 90.35747 97.546846) + (xy 90.363179 97.546018) + (xy 90.363183 97.546018) + (xy 90.561015 97.517333) + (xy 90.561019 97.517332) + (xy 90.56673 97.516504) + (xy 90.654038 97.486867) + (xy 90.761483 97.450395) + (xy 90.761488 97.450393) + (xy 90.766955 97.448537) + (xy 90.776451 97.443219) + (xy 90.946395 97.348046) + (xy 90.946399 97.348043) + (xy 90.951442 97.345219) + (xy 91.114012 97.210012) + (xy 91.249219 97.047442) + (xy 91.252043 97.042399) + (xy 91.252046 97.042395) + (xy 91.349713 96.867998) + (xy 91.349714 96.867996) + (xy 91.352537 96.862955) + (xy 91.354393 96.857488) + (xy 91.354395 96.857483) + (xy 91.418647 96.6682) + (xy 91.420504 96.66273) + (xy 91.421333 96.657015) + (xy 91.44209 96.51386) + (xy 91.47166 96.449315) + (xy 91.531432 96.411003) + (xy 91.602429 96.411087) + (xy 91.662109 96.449542) + (xy 91.691525 96.514158) + (xy 91.692515 96.523695) + (xy 91.695796 96.573749) + (xy 91.697217 96.579345) + (xy 91.697218 96.57935) + (xy 91.733989 96.724133) + (xy 91.747845 96.77869) + (xy 91.750262 96.783933) + (xy 91.820648 96.936613) + (xy 91.836369 96.970714) + (xy 91.958405 97.143391) + (xy 91.999795 97.183711) + (xy 92.085973 97.267662) + (xy 92.109865 97.290937) + (xy 92.114661 97.294142) + (xy 92.114664 97.294144) + (xy 92.250505 97.38491) + (xy 92.285677 97.408411) + (xy 92.290985 97.410692) + (xy 92.290986 97.410692) + (xy 92.47465 97.4896) + (xy 92.474653 97.489601) + (xy 92.479953 97.491878) + (xy 92.485582 97.493152) + (xy 92.485583 97.493152) + (xy 92.68055 97.537269) + (xy 92.680553 97.537269) + (xy 92.686186 97.538544) + (xy 92.691957 97.538771) + (xy 92.691959 97.538771) + (xy 92.753989 97.541208) + (xy 92.89747 97.546846) + (xy 92.903179 97.546018) + (xy 92.903183 97.546018) + (xy 93.101015 97.517333) + (xy 93.101019 97.517332) + (xy 93.10673 97.516504) + (xy 93.194038 97.486867) + (xy 93.301483 97.450395) + (xy 93.301488 97.450393) + (xy 93.306955 97.448537) + (xy 93.316451 97.443219) + (xy 93.486395 97.348046) + (xy 93.486399 97.348043) + (xy 93.491442 97.345219) + (xy 93.654012 97.210012) + (xy 93.789219 97.047442) + (xy 93.792043 97.042399) + (xy 93.792046 97.042395) + (xy 93.889713 96.867998) + (xy 93.889714 96.867996) + (xy 93.892537 96.862955) + (xy 93.894393 96.857488) + (xy 93.894395 96.857483) + (xy 93.958647 96.6682) + (xy 93.960504 96.66273) + (xy 93.961333 96.657015) + (xy 93.98209 96.51386) + (xy 94.01166 96.449315) + (xy 94.071432 96.411003) + (xy 94.142429 96.411087) + (xy 94.202109 96.449542) + (xy 94.231525 96.514158) + (xy 94.232515 96.523695) + (xy 94.235796 96.573749) + (xy 94.237217 96.579345) + (xy 94.237218 96.57935) + (xy 94.273989 96.724133) + (xy 94.287845 96.77869) + (xy 94.290262 96.783933) + (xy 94.360648 96.936613) + (xy 94.376369 96.970714) + (xy 94.498405 97.143391) + (xy 94.539795 97.183711) + (xy 94.625973 97.267662) + (xy 94.649865 97.290937) + (xy 94.654661 97.294142) + (xy 94.654664 97.294144) + (xy 94.790505 97.38491) + (xy 94.825677 97.408411) + (xy 94.830985 97.410692) + (xy 94.830986 97.410692) + (xy 95.01465 97.4896) + (xy 95.014653 97.489601) + (xy 95.019953 97.491878) + (xy 95.025582 97.493152) + (xy 95.025583 97.493152) + (xy 95.22055 97.537269) + (xy 95.220553 97.537269) + (xy 95.226186 97.538544) + (xy 95.231957 97.538771) + (xy 95.231959 97.538771) + (xy 95.293989 97.541208) + (xy 95.43747 97.546846) + (xy 95.443179 97.546018) + (xy 95.443183 97.546018) + (xy 95.641015 97.517333) + (xy 95.641019 97.517332) + (xy 95.64673 97.516504) + (xy 95.734038 97.486867) + (xy 95.841483 97.450395) + (xy 95.841488 97.450393) + (xy 95.846955 97.448537) + (xy 95.856451 97.443219) + (xy 96.026395 97.348046) + (xy 96.026399 97.348043) + (xy 96.031442 97.345219) + (xy 96.194012 97.210012) + (xy 96.329219 97.047442) + (xy 96.332043 97.042399) + (xy 96.332046 97.042395) + (xy 96.429713 96.867998) + (xy 96.429714 96.867996) + (xy 96.432537 96.862955) + (xy 96.434393 96.857488) + (xy 96.434395 96.857483) + (xy 96.498647 96.6682) + (xy 96.500504 96.66273) + (xy 96.501333 96.657015) + (xy 96.52209 96.51386) + (xy 96.55166 96.449315) + (xy 96.611432 96.411003) + (xy 96.682429 96.411087) + (xy 96.742109 96.449542) + (xy 96.771525 96.514158) + (xy 96.772515 96.523695) + (xy 96.775796 96.573749) + (xy 96.777217 96.579345) + (xy 96.777218 96.57935) + (xy 96.813989 96.724133) + (xy 96.827845 96.77869) + (xy 96.830262 96.783933) + (xy 96.900648 96.936613) + (xy 96.916369 96.970714) + (xy 97.038405 97.143391) + (xy 97.079795 97.183711) + (xy 97.165973 97.267662) + (xy 97.189865 97.290937) + (xy 97.194661 97.294142) + (xy 97.194664 97.294144) + (xy 97.330505 97.38491) + (xy 97.365677 97.408411) + (xy 97.370985 97.410692) + (xy 97.370986 97.410692) + (xy 97.55465 97.4896) + (xy 97.554653 97.489601) + (xy 97.559953 97.491878) + (xy 97.565582 97.493152) + (xy 97.565583 97.493152) + (xy 97.76055 97.537269) + (xy 97.760553 97.537269) + (xy 97.766186 97.538544) + (xy 97.771957 97.538771) + (xy 97.771959 97.538771) + (xy 97.833989 97.541208) + (xy 97.97747 97.546846) + (xy 97.983179 97.546018) + (xy 97.983183 97.546018) + (xy 98.181015 97.517333) + (xy 98.181019 97.517332) + (xy 98.18673 97.516504) + (xy 98.274038 97.486867) + (xy 98.381483 97.450395) + (xy 98.381488 97.450393) + (xy 98.386955 97.448537) + (xy 98.396451 97.443219) + (xy 98.566395 97.348046) + (xy 98.566399 97.348043) + (xy 98.571442 97.345219) + (xy 98.734012 97.210012) + (xy 98.869219 97.047442) + (xy 98.872043 97.042399) + (xy 98.872046 97.042395) + (xy 98.969713 96.867998) + (xy 98.969714 96.867996) + (xy 98.972537 96.862955) + (xy 98.974393 96.857488) + (xy 98.974395 96.857483) + (xy 99.038647 96.6682) + (xy 99.040504 96.66273) + (xy 99.041333 96.657015) + (xy 99.06209 96.51386) + (xy 99.09166 96.449315) + (xy 99.151432 96.411003) + (xy 99.222429 96.411087) + (xy 99.282109 96.449542) + (xy 99.311525 96.514158) + (xy 99.312515 96.523695) + (xy 99.315796 96.573749) + (xy 99.317217 96.579345) + (xy 99.317218 96.57935) + (xy 99.353989 96.724133) + (xy 99.367845 96.77869) + (xy 99.370262 96.783933) + (xy 99.440648 96.936613) + (xy 99.456369 96.970714) + (xy 99.578405 97.143391) + (xy 99.619795 97.183711) + (xy 99.705973 97.267662) + (xy 99.729865 97.290937) + (xy 99.734661 97.294142) + (xy 99.734664 97.294144) + (xy 99.870505 97.38491) + (xy 99.905677 97.408411) + (xy 99.910985 97.410692) + (xy 99.910986 97.410692) + (xy 100.09465 97.4896) + (xy 100.094653 97.489601) + (xy 100.099953 97.491878) + (xy 100.105582 97.493152) + (xy 100.105583 97.493152) + (xy 100.30055 97.537269) + (xy 100.300553 97.537269) + (xy 100.306186 97.538544) + (xy 100.311957 97.538771) + (xy 100.311959 97.538771) + (xy 100.373989 97.541208) + (xy 100.51747 97.546846) + (xy 100.523179 97.546018) + (xy 100.523183 97.546018) + (xy 100.721015 97.517333) + (xy 100.721019 97.517332) + (xy 100.72673 97.516504) + (xy 100.814038 97.486867) + (xy 100.921483 97.450395) + (xy 100.921488 97.450393) + (xy 100.926955 97.448537) + (xy 100.936451 97.443219) + (xy 101.106395 97.348046) + (xy 101.106399 97.348043) + (xy 101.111442 97.345219) + (xy 101.274012 97.210012) + (xy 101.409219 97.047442) + (xy 101.412043 97.042399) + (xy 101.412046 97.042395) + (xy 101.509713 96.867998) + (xy 101.509714 96.867996) + (xy 101.512537 96.862955) + (xy 101.514393 96.857488) + (xy 101.514395 96.857483) + (xy 101.578647 96.6682) + (xy 101.580504 96.66273) + (xy 101.581333 96.657015) + (xy 101.60209 96.51386) + (xy 101.63166 96.449315) + (xy 101.691432 96.411003) + (xy 101.762429 96.411087) + (xy 101.822109 96.449542) + (xy 101.851525 96.514158) + (xy 101.852515 96.523695) + (xy 101.855796 96.573749) + (xy 101.857217 96.579345) + (xy 101.857218 96.57935) + (xy 101.893989 96.724133) + (xy 101.907845 96.77869) + (xy 101.910262 96.783933) + (xy 101.980648 96.936613) + (xy 101.996369 96.970714) + (xy 102.118405 97.143391) + (xy 102.159795 97.183711) + (xy 102.245973 97.267662) + (xy 102.269865 97.290937) + (xy 102.274661 97.294142) + (xy 102.274664 97.294144) + (xy 102.410505 97.38491) + (xy 102.445677 97.408411) + (xy 102.450985 97.410692) + (xy 102.450986 97.410692) + (xy 102.63465 97.4896) + (xy 102.634653 97.489601) + (xy 102.639953 97.491878) + (xy 102.645582 97.493152) + (xy 102.645583 97.493152) + (xy 102.84055 97.537269) + (xy 102.840553 97.537269) + (xy 102.846186 97.538544) + (xy 102.851957 97.538771) + (xy 102.851959 97.538771) + (xy 102.913989 97.541208) + (xy 103.05747 97.546846) + (xy 103.063179 97.546018) + (xy 103.063183 97.546018) + (xy 103.261015 97.517333) + (xy 103.261019 97.517332) + (xy 103.26673 97.516504) + (xy 103.354038 97.486867) + (xy 103.461483 97.450395) + (xy 103.461488 97.450393) + (xy 103.466955 97.448537) + (xy 103.476451 97.443219) + (xy 103.646395 97.348046) + (xy 103.646399 97.348043) + (xy 103.651442 97.345219) + (xy 103.814012 97.210012) + (xy 103.949219 97.047442) + (xy 103.952043 97.042399) + (xy 103.952046 97.042395) + (xy 104.049713 96.867998) + (xy 104.049714 96.867996) + (xy 104.052537 96.862955) + (xy 104.054393 96.857488) + (xy 104.054395 96.857483) + (xy 104.118647 96.6682) + (xy 104.120504 96.66273) + (xy 104.121333 96.657015) + (xy 104.14209 96.51386) + (xy 104.17166 96.449315) + (xy 104.231432 96.411003) + (xy 104.302429 96.411087) + (xy 104.362109 96.449542) + (xy 104.391525 96.514158) + (xy 104.392515 96.523695) + (xy 104.395796 96.573749) + (xy 104.397217 96.579345) + (xy 104.397218 96.57935) + (xy 104.433989 96.724133) + (xy 104.447845 96.77869) + (xy 104.450262 96.783933) + (xy 104.520648 96.936613) + (xy 104.536369 96.970714) + (xy 104.658405 97.143391) + (xy 104.699795 97.183711) + (xy 104.785973 97.267662) + (xy 104.809865 97.290937) + (xy 104.814661 97.294142) + (xy 104.814664 97.294144) + (xy 104.950505 97.38491) + (xy 104.985677 97.408411) + (xy 104.990985 97.410692) + (xy 104.990986 97.410692) + (xy 105.17465 97.4896) + (xy 105.174653 97.489601) + (xy 105.179953 97.491878) + (xy 105.185582 97.493152) + (xy 105.185583 97.493152) + (xy 105.38055 97.537269) + (xy 105.380553 97.537269) + (xy 105.386186 97.538544) + (xy 105.391957 97.538771) + (xy 105.391959 97.538771) + (xy 105.453989 97.541208) + (xy 105.59747 97.546846) + (xy 105.603179 97.546018) + (xy 105.603183 97.546018) + (xy 105.801015 97.517333) + (xy 105.801019 97.517332) + (xy 105.80673 97.516504) + (xy 105.894038 97.486867) + (xy 106.001483 97.450395) + (xy 106.001488 97.450393) + (xy 106.006955 97.448537) + (xy 106.016451 97.443219) + (xy 106.186395 97.348046) + (xy 106.186399 97.348043) + (xy 106.191442 97.345219) + (xy 106.354012 97.210012) + (xy 106.489219 97.047442) + (xy 106.492043 97.042399) + (xy 106.492046 97.042395) + (xy 106.589713 96.867998) + (xy 106.589714 96.867996) + (xy 106.592537 96.862955) + (xy 106.594393 96.857488) + (xy 106.594395 96.857483) + (xy 106.658647 96.6682) + (xy 106.660504 96.66273) + (xy 106.661333 96.657015) + (xy 106.68209 96.51386) + (xy 106.71166 96.449315) + (xy 106.771432 96.411003) + (xy 106.842429 96.411087) + (xy 106.902109 96.449542) + (xy 106.931525 96.514158) + (xy 106.932515 96.523695) + (xy 106.935796 96.573749) + (xy 106.937217 96.579345) + (xy 106.937218 96.57935) + (xy 106.973989 96.724133) + (xy 106.987845 96.77869) + (xy 106.990262 96.783933) + (xy 107.060648 96.936613) + (xy 107.076369 96.970714) + (xy 107.198405 97.143391) + (xy 107.239795 97.183711) + (xy 107.325973 97.267662) + (xy 107.349865 97.290937) + (xy 107.354661 97.294142) + (xy 107.354664 97.294144) + (xy 107.490505 97.38491) + (xy 107.525677 97.408411) + (xy 107.530985 97.410692) + (xy 107.530986 97.410692) + (xy 107.71465 97.4896) + (xy 107.714653 97.489601) + (xy 107.719953 97.491878) + (xy 107.725582 97.493152) + (xy 107.725583 97.493152) + (xy 107.92055 97.537269) + (xy 107.920553 97.537269) + (xy 107.926186 97.538544) + (xy 107.931957 97.538771) + (xy 107.931959 97.538771) + (xy 107.993989 97.541208) + (xy 108.13747 97.546846) + (xy 108.143179 97.546018) + (xy 108.143183 97.546018) + (xy 108.341015 97.517333) + (xy 108.341019 97.517332) + (xy 108.34673 97.516504) + (xy 108.434038 97.486867) + (xy 108.541483 97.450395) + (xy 108.541488 97.450393) + (xy 108.546955 97.448537) + (xy 108.556451 97.443219) + (xy 108.726395 97.348046) + (xy 108.726399 97.348043) + (xy 108.731442 97.345219) + (xy 108.894012 97.210012) + (xy 109.029219 97.047442) + (xy 109.032043 97.042399) + (xy 109.032046 97.042395) + (xy 109.129713 96.867998) + (xy 109.129714 96.867996) + (xy 109.132537 96.862955) + (xy 109.134393 96.857488) + (xy 109.134395 96.857483) + (xy 109.198647 96.6682) + (xy 109.200504 96.66273) + (xy 109.201935 96.652865) + (xy 109.22979 96.460754) + (xy 113.317967 96.460754) + (xy 113.331796 96.671749) + (xy 113.333217 96.677345) + (xy 113.333218 96.67735) + (xy 113.380357 96.862955) + (xy 113.383845 96.87669) + (xy 113.386262 96.881933) + (xy 113.464612 97.051888) + (xy 113.472369 97.068714) + (xy 113.594405 97.241391) + (xy 113.745865 97.388937) + (xy 113.750661 97.392142) + (xy 113.750664 97.392144) + (xy 113.863437 97.467496) + (xy 113.921677 97.506411) + (xy 113.926985 97.508692) + (xy 113.926986 97.508692) + (xy 114.11065 97.5876) + (xy 114.110653 97.587601) + (xy 114.115953 97.589878) + (xy 114.121582 97.591152) + (xy 114.121583 97.591152) + (xy 114.31655 97.635269) + (xy 114.316553 97.635269) + (xy 114.322186 97.636544) + (xy 114.327957 97.636771) + (xy 114.327959 97.636771) + (xy 114.389989 97.639208) + (xy 114.53347 97.644846) + (xy 114.539179 97.644018) + (xy 114.539183 97.644018) + (xy 114.737015 97.615333) + (xy 114.737019 97.615332) + (xy 114.74273 97.614504) + (xy 114.821987 97.5876) + (xy 114.937483 97.548395) + (xy 114.937488 97.548393) + (xy 114.942955 97.546537) + (xy 114.948378 97.5435) + (xy 115.122395 97.446046) + (xy 115.122399 97.446043) + (xy 115.127442 97.443219) + (xy 115.290012 97.308012) + (xy 115.425219 97.145442) + (xy 115.428043 97.140399) + (xy 115.428046 97.140395) + (xy 115.525713 96.965998) + (xy 115.525714 96.965996) + (xy 115.528537 96.960955) + (xy 115.530393 96.955488) + (xy 115.530395 96.955483) + (xy 115.591219 96.7763) + (xy 115.596504 96.76073) + (xy 115.59813 96.749521) + (xy 115.626314 96.55514) + (xy 115.626314 96.555138) + (xy 115.626846 96.55147) + (xy 115.628429 96.491) + (xy 115.609081 96.28044) + (xy 115.60304 96.259018) + (xy 115.573075 96.152773) + (xy 115.551686 96.076931) + (xy 115.543853 96.061046) + (xy 115.460719 95.892469) + (xy 115.458165 95.88729) + (xy 115.362494 95.759171) + (xy 115.335104 95.722491) + (xy 115.335103 95.72249) + (xy 115.331651 95.717867) + (xy 115.206507 95.602185) + (xy 115.180622 95.578257) + (xy 115.18062 95.578255) + (xy 115.176381 95.574337) + (xy 115.045394 95.49169) + (xy 115.002434 95.464584) + (xy 115.002433 95.464584) + (xy 114.997554 95.461505) + (xy 114.80116 95.383152) + (xy 114.795503 95.382027) + (xy 114.795497 95.382025) + (xy 114.599442 95.343028) + (xy 114.59944 95.343028) + (xy 114.593775 95.341901) + (xy 114.588 95.341825) + (xy 114.587996 95.341825) + (xy 114.481976 95.340437) + (xy 114.382346 95.339133) + (xy 114.376649 95.340112) + (xy 114.376648 95.340112) + (xy 114.17965 95.373962) + (xy 114.179649 95.373962) + (xy 114.173953 95.374941) + (xy 113.975575 95.448127) + (xy 113.970614 95.451079) + (xy 113.970613 95.451079) + (xy 113.918475 95.482098) + (xy 113.793856 95.556238) + (xy 113.634881 95.695655) + (xy 113.503976 95.861708) + (xy 113.501287 95.866819) + (xy 113.501285 95.866822) + (xy 113.463337 95.93895) + (xy 113.405523 96.048836) + (xy 113.34282 96.250773) + (xy 113.317967 96.460754) + (xy 109.22979 96.460754) + (xy 109.230314 96.45714) + (xy 109.230314 96.457138) + (xy 109.230846 96.45347) + (xy 109.232429 96.393) + (xy 109.213081 96.18244) + (xy 109.200359 96.137329) + (xy 109.184894 96.082496) + (xy 109.155686 95.978931) + (xy 109.148612 95.964585) + (xy 109.064719 95.794469) + (xy 109.062165 95.78929) + (xy 108.935651 95.619867) + (xy 108.807237 95.501162) + (xy 108.784622 95.480257) + (xy 108.78462 95.480255) + (xy 108.780381 95.476337) + (xy 108.735671 95.448127) + (xy 108.606434 95.366584) + (xy 108.606433 95.366584) + (xy 108.601554 95.363505) + (xy 108.40516 95.285152) + (xy 108.399503 95.284027) + (xy 108.399497 95.284025) + (xy 108.203442 95.245028) + (xy 108.20344 95.245028) + (xy 108.197775 95.243901) + (xy 108.192 95.243825) + (xy 108.191996 95.243825) + (xy 108.085976 95.242437) + (xy 107.986346 95.241133) + (xy 107.980649 95.242112) + (xy 107.980648 95.242112) + (xy 107.78365 95.275962) + (xy 107.783649 95.275962) + (xy 107.777953 95.276941) + (xy 107.579575 95.350127) + (xy 107.574614 95.353079) + (xy 107.574613 95.353079) + (xy 107.493766 95.401178) + (xy 107.397856 95.458238) + (xy 107.238881 95.597655) + (xy 107.107976 95.763708) + (xy 107.105287 95.768819) + (xy 107.105285 95.768822) + (xy 107.091792 95.794469) + (xy 107.009523 95.950836) + (xy 106.94682 96.152773) + (xy 106.946141 96.15851) + (xy 106.932088 96.277239) + (xy 106.904217 96.342537) + (xy 106.845469 96.382401) + (xy 106.774494 96.384174) + (xy 106.713828 96.347295) + (xy 106.68273 96.283471) + (xy 106.68149 96.273958) + (xy 106.680194 96.259846) + (xy 106.673081 96.18244) + (xy 106.660359 96.137329) + (xy 106.644894 96.082496) + (xy 106.615686 95.978931) + (xy 106.608612 95.964585) + (xy 106.524719 95.794469) + (xy 106.522165 95.78929) + (xy 106.395651 95.619867) + (xy 106.267237 95.501162) + (xy 106.244622 95.480257) + (xy 106.24462 95.480255) + (xy 106.240381 95.476337) + (xy 106.195671 95.448127) + (xy 106.066434 95.366584) + (xy 106.066433 95.366584) + (xy 106.061554 95.363505) + (xy 105.86516 95.285152) + (xy 105.859503 95.284027) + (xy 105.859497 95.284025) + (xy 105.663442 95.245028) + (xy 105.66344 95.245028) + (xy 105.657775 95.243901) + (xy 105.652 95.243825) + (xy 105.651996 95.243825) + (xy 105.545976 95.242437) + (xy 105.446346 95.241133) + (xy 105.440649 95.242112) + (xy 105.440648 95.242112) + (xy 105.24365 95.275962) + (xy 105.243649 95.275962) + (xy 105.237953 95.276941) + (xy 105.039575 95.350127) + (xy 105.034614 95.353079) + (xy 105.034613 95.353079) + (xy 104.953766 95.401178) + (xy 104.857856 95.458238) + (xy 104.698881 95.597655) + (xy 104.567976 95.763708) + (xy 104.565287 95.768819) + (xy 104.565285 95.768822) + (xy 104.551792 95.794469) + (xy 104.469523 95.950836) + (xy 104.40682 96.152773) + (xy 104.406141 96.15851) + (xy 104.392088 96.277239) + (xy 104.364217 96.342537) + (xy 104.305469 96.382401) + (xy 104.234494 96.384174) + (xy 104.173828 96.347295) + (xy 104.14273 96.283471) + (xy 104.14149 96.273958) + (xy 104.140194 96.259846) + (xy 104.133081 96.18244) + (xy 104.120359 96.137329) + (xy 104.104894 96.082496) + (xy 104.075686 95.978931) + (xy 104.068612 95.964585) + (xy 103.984719 95.794469) + (xy 103.982165 95.78929) + (xy 103.855651 95.619867) + (xy 103.727237 95.501162) + (xy 103.704622 95.480257) + (xy 103.70462 95.480255) + (xy 103.700381 95.476337) + (xy 103.655671 95.448127) + (xy 103.526434 95.366584) + (xy 103.526433 95.366584) + (xy 103.521554 95.363505) + (xy 103.32516 95.285152) + (xy 103.319503 95.284027) + (xy 103.319497 95.284025) + (xy 103.123442 95.245028) + (xy 103.12344 95.245028) + (xy 103.117775 95.243901) + (xy 103.112 95.243825) + (xy 103.111996 95.243825) + (xy 103.005976 95.242437) + (xy 102.906346 95.241133) + (xy 102.900649 95.242112) + (xy 102.900648 95.242112) + (xy 102.70365 95.275962) + (xy 102.703649 95.275962) + (xy 102.697953 95.276941) + (xy 102.499575 95.350127) + (xy 102.494614 95.353079) + (xy 102.494613 95.353079) + (xy 102.413766 95.401178) + (xy 102.317856 95.458238) + (xy 102.158881 95.597655) + (xy 102.027976 95.763708) + (xy 102.025287 95.768819) + (xy 102.025285 95.768822) + (xy 102.011792 95.794469) + (xy 101.929523 95.950836) + (xy 101.86682 96.152773) + (xy 101.866141 96.15851) + (xy 101.852088 96.277239) + (xy 101.824217 96.342537) + (xy 101.765469 96.382401) + (xy 101.694494 96.384174) + (xy 101.633828 96.347295) + (xy 101.60273 96.283471) + (xy 101.60149 96.273958) + (xy 101.600194 96.259846) + (xy 101.593081 96.18244) + (xy 101.580359 96.137329) + (xy 101.564894 96.082496) + (xy 101.535686 95.978931) + (xy 101.528612 95.964585) + (xy 101.444719 95.794469) + (xy 101.442165 95.78929) + (xy 101.315651 95.619867) + (xy 101.187237 95.501162) + (xy 101.164622 95.480257) + (xy 101.16462 95.480255) + (xy 101.160381 95.476337) + (xy 101.155503 95.473259) + (xy 101.155491 95.47325) + (xy 101.041264 95.401178) + (xy 100.994326 95.347912) + (xy 100.9825 95.294617) + (xy 100.9825 95.075754) + (xy 110.477967 95.075754) + (xy 110.491796 95.286749) + (xy 110.493217 95.292345) + (xy 110.493218 95.29235) + (xy 110.521438 95.403464) + (xy 110.543845 95.49169) + (xy 110.632369 95.683714) + (xy 110.754405 95.856391) + (xy 110.758539 95.860418) + (xy 110.866378 95.96547) + (xy 110.905865 96.003937) + (xy 110.910661 96.007142) + (xy 110.910664 96.007144) + (xy 111.015108 96.076931) + (xy 111.081677 96.121411) + (xy 111.086985 96.123692) + (xy 111.086986 96.123692) + (xy 111.27065 96.2026) + (xy 111.270653 96.202601) + (xy 111.275953 96.204878) + (xy 111.281582 96.206152) + (xy 111.281583 96.206152) + (xy 111.47655 96.250269) + (xy 111.476553 96.250269) + (xy 111.482186 96.251544) + (xy 111.487957 96.251771) + (xy 111.487959 96.251771) + (xy 111.549989 96.254208) + (xy 111.69347 96.259846) + (xy 111.699179 96.259018) + (xy 111.699183 96.259018) + (xy 111.897015 96.230333) + (xy 111.897019 96.230332) + (xy 111.90273 96.229504) + (xy 111.981987 96.2026) + (xy 112.097483 96.163395) + (xy 112.097488 96.163393) + (xy 112.102955 96.161537) + (xy 112.10836 96.15851) + (xy 112.282395 96.061046) + (xy 112.282399 96.061043) + (xy 112.287442 96.058219) + (xy 112.450012 95.923012) + (xy 112.585219 95.760442) + (xy 112.588043 95.755399) + (xy 112.588046 95.755395) + (xy 112.685713 95.580998) + (xy 112.685714 95.580996) + (xy 112.688537 95.575955) + (xy 112.690393 95.570488) + (xy 112.690395 95.570483) + (xy 112.737173 95.432676) + (xy 112.756504 95.37573) + (xy 112.757795 95.36683) + (xy 112.786314 95.17014) + (xy 112.786314 95.170138) + (xy 112.786846 95.16647) + (xy 112.788429 95.106) + (xy 112.769081 94.89544) + (xy 112.76304 94.874018) + (xy 112.724874 94.738692) + (xy 112.711686 94.691931) + (xy 112.703853 94.676046) + (xy 112.620719 94.507469) + (xy 112.618165 94.50229) + (xy 112.523443 94.375442) + (xy 112.495104 94.337491) + (xy 112.495103 94.33749) + (xy 112.491651 94.332867) + (xy 112.367603 94.218198) + (xy 112.340622 94.193257) + (xy 112.34062 94.193255) + (xy 112.336381 94.189337) + (xy 112.157554 94.076505) + (xy 111.96116 93.998152) + (xy 111.955503 93.997027) + (xy 111.955497 93.997025) + (xy 111.759442 93.958028) + (xy 111.75944 93.958028) + (xy 111.753775 93.956901) + (xy 111.748 93.956825) + (xy 111.747996 93.956825) + (xy 111.641976 93.955437) + (xy 111.542346 93.954133) + (xy 111.536649 93.955112) + (xy 111.536648 93.955112) + (xy 111.33965 93.988962) + (xy 111.339649 93.988962) + (xy 111.333953 93.989941) + (xy 111.135575 94.063127) + (xy 111.130614 94.066079) + (xy 111.130613 94.066079) + (xy 111.113089 94.076505) + (xy 110.953856 94.171238) + (xy 110.794881 94.310655) + (xy 110.663976 94.476708) + (xy 110.661287 94.481819) + (xy 110.661285 94.481822) + (xy 110.647792 94.507469) + (xy 110.565523 94.663836) + (xy 110.50282 94.865773) + (xy 110.477967 95.075754) + (xy 100.9825 95.075754) + (xy 100.9825 94.629435) + (xy 100.982611 94.624159) + (xy 100.984727 94.573666) + (xy 100.985087 94.565081) + (xy 100.975662 94.524895) + (xy 100.9735 94.513229) + (xy 100.969067 94.480864) + (xy 100.969066 94.480862) + (xy 100.967901 94.472354) + (xy 100.962405 94.459653) + (xy 100.955373 94.43839) + (xy 100.954173 94.433275) + (xy 100.954172 94.433273) + (xy 100.95221 94.424907) + (xy 100.948073 94.417382) + (xy 100.948072 94.417379) + (xy 100.932326 94.388738) + (xy 100.927104 94.378078) + (xy 100.914131 94.348098) + (xy 100.914129 94.348095) + (xy 100.91072 94.340217) + (xy 100.905317 94.333544) + (xy 100.905314 94.33354) + (xy 100.902007 94.329456) + (xy 100.889518 94.31087) + (xy 100.886031 94.304527) + (xy 100.886029 94.304524) + (xy 100.882848 94.298738) + (xy 100.876165 94.290996) + (xy 100.85296 94.267791) + (xy 100.844134 94.25799) + (xy 100.825518 94.235001) + (xy 100.820112 94.228325) + (xy 100.805856 94.218194) + (xy 100.789756 94.204587) + (xy 100.275923 93.690754) + (xy 113.317967 93.690754) + (xy 113.331796 93.901749) + (xy 113.333217 93.907345) + (xy 113.333218 93.90735) + (xy 113.356823 94.000292) + (xy 113.383845 94.10669) + (xy 113.472369 94.298714) + (xy 113.594405 94.471391) + (xy 113.598539 94.475418) + (xy 113.681997 94.556719) + (xy 113.745865 94.618937) + (xy 113.750661 94.622142) + (xy 113.750664 94.622144) + (xy 113.855108 94.691931) + (xy 113.921677 94.736411) + (xy 113.926985 94.738692) + (xy 113.926986 94.738692) + (xy 114.11065 94.8176) + (xy 114.110653 94.817601) + (xy 114.115953 94.819878) + (xy 114.121582 94.821152) + (xy 114.121583 94.821152) + (xy 114.31655 94.865269) + (xy 114.316553 94.865269) + (xy 114.322186 94.866544) + (xy 114.327957 94.866771) + (xy 114.327959 94.866771) + (xy 114.389989 94.869208) + (xy 114.53347 94.874846) + (xy 114.539179 94.874018) + (xy 114.539183 94.874018) + (xy 114.737015 94.845333) + (xy 114.737019 94.845332) + (xy 114.74273 94.844504) + (xy 114.821987 94.8176) + (xy 114.937483 94.778395) + (xy 114.937488 94.778393) + (xy 114.942955 94.776537) + (xy 114.947998 94.773713) + (xy 115.122395 94.676046) + (xy 115.122399 94.676043) + (xy 115.127442 94.673219) + (xy 115.290012 94.538012) + (xy 115.425219 94.375442) + (xy 115.428043 94.370399) + (xy 115.428046 94.370395) + (xy 115.525713 94.195998) + (xy 115.525714 94.195996) + (xy 115.528537 94.190955) + (xy 115.530393 94.185488) + (xy 115.530395 94.185483) + (xy 115.593258 94.000292) + (xy 115.596504 93.99073) + (xy 115.601669 93.955112) + (xy 115.626314 93.78514) + (xy 115.626314 93.785138) + (xy 115.626846 93.78147) + (xy 115.628429 93.721) + (xy 115.609081 93.51044) + (xy 115.60304 93.489018) + (xy 115.576995 93.396671) + (xy 115.551686 93.306931) + (xy 115.543853 93.291046) + (xy 115.460719 93.122469) + (xy 115.458165 93.11729) + (xy 115.363443 92.990442) + (xy 115.335104 92.952491) + (xy 115.335103 92.95249) + (xy 115.331651 92.947867) + (xy 115.188061 92.815134) + (xy 115.180622 92.808257) + (xy 115.18062 92.808255) + (xy 115.176381 92.804337) + (xy 115.143014 92.783284) + (xy 115.002434 92.694584) + (xy 115.002433 92.694584) + (xy 114.997554 92.691505) + (xy 114.80116 92.613152) + (xy 114.795503 92.612027) + (xy 114.795497 92.612025) + (xy 114.599442 92.573028) + (xy 114.59944 92.573028) + (xy 114.593775 92.571901) + (xy 114.588 92.571825) + (xy 114.587996 92.571825) + (xy 114.481976 92.570437) + (xy 114.382346 92.569133) + (xy 114.376649 92.570112) + (xy 114.376648 92.570112) + (xy 114.17965 92.603962) + (xy 114.179649 92.603962) + (xy 114.173953 92.604941) + (xy 113.975575 92.678127) + (xy 113.970614 92.681079) + (xy 113.970613 92.681079) + (xy 113.858966 92.747502) + (xy 113.793856 92.786238) + (xy 113.634881 92.925655) + (xy 113.503976 93.091708) + (xy 113.501287 93.096819) + (xy 113.501285 93.096822) + (xy 113.46978 93.156703) + (xy 113.405523 93.278836) + (xy 113.34282 93.480773) + (xy 113.317967 93.690754) + (xy 100.275923 93.690754) + (xy 96.139805 89.554636) + (xy 96.136152 89.550827) + (xy 96.101934 89.513615) + (xy 96.096116 89.507288) + (xy 96.061044 89.485542) + (xy 96.051262 89.478819) + (xy 96.02524 89.459067) + (xy 96.018396 89.453872) + (xy 96.010409 89.45071) + (xy 96.010406 89.450708) + (xy 96.005517 89.448772) + (xy 95.985516 89.438713) + (xy 95.97375 89.431418) + (xy 95.934119 89.419904) + (xy 95.922895 89.41606) + (xy 95.892516 89.404033) + (xy 95.892513 89.404032) + (xy 95.884528 89.400871) + (xy 95.875991 89.399974) + (xy 95.875984 89.399972) + (xy 95.870761 89.399423) + (xy 95.848784 89.395112) + (xy 95.841822 89.393089) + (xy 95.84182 89.393089) + (xy 95.835488 89.391249) + (xy 95.828673 89.390749) + (xy 95.827596 89.390669) + (xy 95.827583 89.390669) + (xy 95.825288 89.3905) + (xy 95.792461 89.3905) + (xy 95.77929 89.38981) + (xy 95.741338 89.385821) + (xy 95.732872 89.387253) + (xy 95.732869 89.387253) + (xy 95.724102 89.388736) + (xy 95.70309 89.3905) + (xy 93.822025 89.3905) + (xy 93.753904 89.370498) + (xy 93.71793 89.335069) + (xy 93.716218 89.331849) + (xy 93.712324 89.327074) + (xy 93.589906 89.176975) + (xy 93.589903 89.176972) + (xy 93.586011 89.1722) + (xy 93.548367 89.141058) + (xy 93.432025 89.044811) + (xy 93.432021 89.044809) + (xy 93.427275 89.040882) + (xy 93.246055 88.942897) + (xy 93.083676 88.892632) + (xy 93.024517 88.853382) + (xy 92.99597 88.788378) + (xy 93.007098 88.718259) + (xy 93.05437 88.665287) + (xy 93.087052 88.65091) + (xy 93.212788 88.615804) + (xy 93.212801 88.615799) + (xy 93.218725 88.614145) + (xy 93.224214 88.611372) + (xy 93.22422 88.61137) + (xy 93.397116 88.524033) + (xy 93.40261 88.521258) + (xy 93.455498 88.479938) + (xy 93.560101 88.398213) + (xy 93.564951 88.394424) + (xy 93.588321 88.36735) + (xy 93.685768 88.254455) + (xy 101.220828 88.254455) + (xy 101.221515 88.261462) + (xy 101.221515 88.261465) + (xy 101.224314 88.29001) + (xy 101.237258 88.422025) + (xy 101.290405 88.581791) + (xy 101.294052 88.587813) + (xy 101.294053 88.587815) + (xy 101.309999 88.614145) + (xy 101.377627 88.725812) + (xy 101.382523 88.730882) + (xy 101.420136 88.769831) + (xy 101.453069 88.832727) + (xy 101.4555 88.857358) + (xy 101.4555 91.740158) + (xy 101.435498 91.808279) + (xy 101.417657 91.830182) + (xy 101.400758 91.84673) + (xy 101.400753 91.846737) + (xy 101.395724 91.851661) + (xy 101.304515 91.99319) + (xy 101.302105 91.99981) + (xy 101.302104 91.999813) + (xy 101.298643 92.009322) + (xy 101.246927 92.151409) + (xy 101.225825 92.318455) + (xy 101.226512 92.325462) + (xy 101.226512 92.325465) + (xy 101.229311 92.35401) + (xy 101.242255 92.486025) + (xy 101.295402 92.645791) + (xy 101.299049 92.651813) + (xy 101.29905 92.651815) + (xy 101.378671 92.783284) + (xy 101.382624 92.789812) + (xy 101.387513 92.794875) + (xy 101.387514 92.794876) + (xy 101.442395 92.851706) + (xy 101.499586 92.910929) + (xy 101.505483 92.914788) + (xy 101.634577 92.999266) + (xy 101.634581 92.999268) + (xy 101.640475 93.003125) + (xy 101.798289 93.061815) + (xy 101.80527 93.062746) + (xy 101.805272 93.062747) + (xy 101.850812 93.068823) + (xy 101.965183 93.084083) + (xy 101.972194 93.083445) + (xy 101.972198 93.083445) + (xy 102.125843 93.069462) + (xy 102.132864 93.068823) + (xy 102.139566 93.066645) + (xy 102.139568 93.066645) + (xy 102.286298 93.01897) + (xy 102.286301 93.018969) + (xy 102.292997 93.016793) + (xy 102.437623 92.930578) + (xy 102.442717 92.925727) + (xy 102.442721 92.925724) + (xy 102.554454 92.819322) + (xy 102.554455 92.81932) + (xy 102.559554 92.814465) + (xy 102.575934 92.789812) + (xy 102.648836 92.680085) + (xy 102.652731 92.674223) + (xy 102.712521 92.516823) + (xy 102.735955 92.350088) + (xy 102.736249 92.329) + (xy 102.733642 92.305754) + (xy 110.477967 92.305754) + (xy 110.491796 92.516749) + (xy 110.493217 92.522345) + (xy 110.493218 92.52235) + (xy 110.533531 92.681079) + (xy 110.543845 92.72169) + (xy 110.546262 92.726933) + (xy 110.599884 92.843248) + (xy 110.632369 92.913714) + (xy 110.754405 93.086391) + (xy 110.758539 93.090418) + (xy 110.874892 93.203764) + (xy 110.905865 93.233937) + (xy 110.910661 93.237142) + (xy 110.910664 93.237144) + (xy 111.014207 93.306329) + (xy 111.081677 93.351411) + (xy 111.086985 93.353692) + (xy 111.086986 93.353692) + (xy 111.27065 93.4326) + (xy 111.270653 93.432601) + (xy 111.275953 93.434878) + (xy 111.281582 93.436152) + (xy 111.281583 93.436152) + (xy 111.47655 93.480269) + (xy 111.476553 93.480269) + (xy 111.482186 93.481544) + (xy 111.487957 93.481771) + (xy 111.487959 93.481771) + (xy 111.539524 93.483797) + (xy 111.69347 93.489846) + (xy 111.699179 93.489018) + (xy 111.699183 93.489018) + (xy 111.897015 93.460333) + (xy 111.897019 93.460332) + (xy 111.90273 93.459504) + (xy 111.981987 93.4326) + (xy 112.097483 93.393395) + (xy 112.097488 93.393393) + (xy 112.102955 93.391537) + (xy 112.130479 93.376123) + (xy 112.282395 93.291046) + (xy 112.282399 93.291043) + (xy 112.287442 93.288219) + (xy 112.450012 93.153012) + (xy 112.585219 92.990442) + (xy 112.588043 92.985399) + (xy 112.588046 92.985395) + (xy 112.685713 92.810998) + (xy 112.685714 92.810996) + (xy 112.688537 92.805955) + (xy 112.690393 92.800488) + (xy 112.690395 92.800483) + (xy 112.753258 92.615292) + (xy 112.756504 92.60573) + (xy 112.757906 92.596066) + (xy 112.786314 92.40014) + (xy 112.786314 92.400138) + (xy 112.786846 92.39647) + (xy 112.788429 92.336) + (xy 112.769081 92.12544) + (xy 112.76304 92.104018) + (xy 112.747128 92.0476) + (xy 112.711686 91.921931) + (xy 112.703853 91.906046) + (xy 112.620719 91.737469) + (xy 112.618165 91.73229) + (xy 112.519885 91.600677) + (xy 112.495104 91.567491) + (xy 112.495103 91.56749) + (xy 112.491651 91.562867) + (xy 112.378423 91.4582) + (xy 112.340622 91.423257) + (xy 112.34062 91.423255) + (xy 112.336381 91.419337) + (xy 112.196527 91.331095) + (xy 112.162434 91.309584) + (xy 112.162433 91.309584) + (xy 112.157554 91.306505) + (xy 111.96116 91.228152) + (xy 111.955503 91.227027) + (xy 111.955497 91.227025) + (xy 111.759442 91.188028) + (xy 111.75944 91.188028) + (xy 111.753775 91.186901) + (xy 111.748 91.186825) + (xy 111.747996 91.186825) + (xy 111.641976 91.185437) + (xy 111.542346 91.184133) + (xy 111.536649 91.185112) + (xy 111.536648 91.185112) + (xy 111.33965 91.218962) + (xy 111.339649 91.218962) + (xy 111.333953 91.219941) + (xy 111.135575 91.293127) + (xy 111.130614 91.296079) + (xy 111.130613 91.296079) + (xy 111.072234 91.330811) + (xy 110.953856 91.401238) + (xy 110.794881 91.540655) + (xy 110.663976 91.706708) + (xy 110.661287 91.711819) + (xy 110.661285 91.711822) + (xy 110.62978 91.771703) + (xy 110.565523 91.893836) + (xy 110.50282 92.095773) + (xy 110.477967 92.305754) + (xy 102.733642 92.305754) + (xy 102.721877 92.200868) + (xy 102.718266 92.168672) + (xy 102.718265 92.168669) + (xy 102.717481 92.161676) + (xy 102.662108 92.002668) + (xy 102.572884 91.859879) + (xy 102.567921 91.854881) + (xy 102.567916 91.854875) + (xy 102.543094 91.829879) + (xy 102.509287 91.767449) + (xy 102.5065 91.741096) + (xy 102.5065 90.920754) + (xy 113.317967 90.920754) + (xy 113.331796 91.131749) + (xy 113.333217 91.137345) + (xy 113.333218 91.13735) + (xy 113.38061 91.323951) + (xy 113.383845 91.33669) + (xy 113.472369 91.528714) + (xy 113.594405 91.701391) + (xy 113.598539 91.705418) + (xy 113.734085 91.837461) + (xy 113.745865 91.848937) + (xy 113.750661 91.852142) + (xy 113.750664 91.852144) + (xy 113.855108 91.921931) + (xy 113.921677 91.966411) + (xy 113.926985 91.968692) + (xy 113.926986 91.968692) + (xy 114.11065 92.0476) + (xy 114.110653 92.047601) + (xy 114.115953 92.049878) + (xy 114.121582 92.051152) + (xy 114.121583 92.051152) + (xy 114.31655 92.095269) + (xy 114.316553 92.095269) + (xy 114.322186 92.096544) + (xy 114.327957 92.096771) + (xy 114.327959 92.096771) + (xy 114.389989 92.099208) + (xy 114.53347 92.104846) + (xy 114.539179 92.104018) + (xy 114.539183 92.104018) + (xy 114.737015 92.075333) + (xy 114.737019 92.075332) + (xy 114.74273 92.074504) + (xy 114.821987 92.0476) + (xy 114.937483 92.008395) + (xy 114.937488 92.008393) + (xy 114.942955 92.006537) + (xy 114.966788 91.99319) + (xy 115.122395 91.906046) + (xy 115.122399 91.906043) + (xy 115.127442 91.903219) + (xy 115.290012 91.768012) + (xy 115.425219 91.605442) + (xy 115.428043 91.600399) + (xy 115.428046 91.600395) + (xy 115.525713 91.425998) + (xy 115.525714 91.425996) + (xy 115.528537 91.420955) + (xy 115.530393 91.415488) + (xy 115.530395 91.415483) + (xy 115.593732 91.228897) + (xy 115.596504 91.22073) + (xy 115.599581 91.199514) + (xy 115.626314 91.01514) + (xy 115.626314 91.015138) + (xy 115.626846 91.01147) + (xy 115.628429 90.951) + (xy 115.609081 90.74044) + (xy 115.551686 90.536931) + (xy 115.546696 90.526811) + (xy 115.460719 90.352469) + (xy 115.458165 90.34729) + (xy 115.331651 90.177867) + (xy 115.176381 90.034337) + (xy 114.997554 89.921505) + (xy 114.80116 89.843152) + (xy 114.795503 89.842027) + (xy 114.795497 89.842025) + (xy 114.599442 89.803028) + (xy 114.59944 89.803028) + (xy 114.593775 89.801901) + (xy 114.588 89.801825) + (xy 114.587996 89.801825) + (xy 114.481976 89.800437) + (xy 114.382346 89.799133) + (xy 114.376649 89.800112) + (xy 114.376648 89.800112) + (xy 114.17965 89.833962) + (xy 114.179649 89.833962) + (xy 114.173953 89.834941) + (xy 113.975575 89.908127) + (xy 113.970614 89.911079) + (xy 113.970613 89.911079) + (xy 113.953089 89.921505) + (xy 113.793856 90.016238) + (xy 113.634881 90.155655) + (xy 113.503976 90.321708) + (xy 113.501287 90.326819) + (xy 113.501285 90.326822) + (xy 113.487792 90.352469) + (xy 113.405523 90.508836) + (xy 113.363417 90.644439) + (xy 113.346187 90.699931) + (xy 113.34282 90.710773) + (xy 113.317967 90.920754) + (xy 102.5065 90.920754) + (xy 102.5065 90.652062) + (xy 110.911493 90.652062) + (xy 110.920789 90.664077) + (xy 110.971994 90.699931) + (xy 110.981489 90.705414) + (xy 111.178947 90.79749) + (xy 111.189239 90.801236) + (xy 111.399688 90.857625) + (xy 111.410481 90.859528) + (xy 111.627525 90.878517) + (xy 111.638475 90.878517) + (xy 111.855519 90.859528) + (xy 111.866312 90.857625) + (xy 112.076761 90.801236) + (xy 112.087053 90.79749) + (xy 112.284511 90.705414) + (xy 112.294006 90.699931) + (xy 112.346048 90.663491) + (xy 112.354424 90.653012) + (xy 112.347356 90.639566) + (xy 111.645812 89.938022) + (xy 111.631868 89.930408) + (xy 111.630035 89.930539) + (xy 111.62342 89.93479) + (xy 110.917923 90.640287) + (xy 110.911493 90.652062) + (xy 102.5065 90.652062) + (xy 102.5065 89.571475) + (xy 110.320483 89.571475) + (xy 110.339472 89.788519) + (xy 110.341375 89.799312) + (xy 110.397764 90.009761) + (xy 110.40151 90.020053) + (xy 110.493586 90.217511) + (xy 110.499069 90.227006) + (xy 110.535509 90.279048) + (xy 110.545988 90.287424) + (xy 110.559434 90.280356) + (xy 111.260978 89.578812) + (xy 111.267356 89.567132) + (xy 111.997408 89.567132) + (xy 111.997539 89.568965) + (xy 112.00179 89.57558) + (xy 112.707287 90.281077) + (xy 112.719062 90.287507) + (xy 112.731077 90.278211) + (xy 112.766931 90.227006) + (xy 112.772414 90.217511) + (xy 112.86449 90.020053) + (xy 112.868236 90.009761) + (xy 112.924625 89.799312) + (xy 112.926528 89.788519) + (xy 112.945517 89.571475) + (xy 112.945517 89.560525) + (xy 112.926528 89.343481) + (xy 112.924625 89.332688) + (xy 112.868236 89.122239) + (xy 112.86449 89.111947) + (xy 112.772414 88.914489) + (xy 112.766931 88.904994) + (xy 112.730491 88.852952) + (xy 112.720012 88.844576) + (xy 112.706566 88.851644) + (xy 112.005022 89.553188) + (xy 111.997408 89.567132) + (xy 111.267356 89.567132) + (xy 111.268592 89.564868) + (xy 111.268461 89.563035) + (xy 111.26421 89.55642) + (xy 110.558713 88.850923) + (xy 110.546938 88.844493) + (xy 110.534923 88.853789) + (xy 110.499069 88.904994) + (xy 110.493586 88.914489) + (xy 110.40151 89.111947) + (xy 110.397764 89.122239) + (xy 110.341375 89.332688) + (xy 110.339472 89.343481) + (xy 110.320483 89.560525) + (xy 110.320483 89.571475) + (xy 102.5065 89.571475) + (xy 102.5065 88.850233) + (xy 102.526502 88.782112) + (xy 102.545608 88.758987) + (xy 102.549457 88.755322) + (xy 102.549458 88.75532) + (xy 102.554557 88.750465) + (xy 102.570937 88.725812) + (xy 102.618579 88.654104) + (xy 102.647734 88.610223) + (xy 102.707524 88.452823) + (xy 102.721262 88.355072) + (xy 102.730407 88.29001) + (xy 102.730407 88.290006) + (xy 102.730958 88.286088) + (xy 102.731252 88.265) + (xy 102.728539 88.240811) + (xy 102.713269 88.104672) + (xy 102.713268 88.104669) + (xy 102.712484 88.097676) + (xy 102.657111 87.938668) + (xy 102.62174 87.882062) + (xy 110.911493 87.882062) + (xy 110.920789 87.894077) + (xy 110.971994 87.929931) + (xy 110.981489 87.935414) + (xy 111.178947 88.02749) + (xy 111.189239 88.031236) + (xy 111.29395 88.059293) + (xy 111.354573 88.096245) + (xy 111.385594 88.160105) + (xy 111.377166 88.2306) + (xy 111.331963 88.285347) + (xy 111.29395 88.302707) + (xy 111.189239 88.330764) + (xy 111.178947 88.33451) + (xy 110.981489 88.426586) + (xy 110.971994 88.432069) + (xy 110.919952 88.468509) + (xy 110.911576 88.478988) + (xy 110.918644 88.492434) + (xy 111.620188 89.193978) + (xy 111.634132 89.201592) + (xy 111.635965 89.201461) + (xy 111.64258 89.19721) + (xy 112.348077 88.491713) + (xy 112.354507 88.479938) + (xy 112.345211 88.467923) + (xy 112.294006 88.432069) + (xy 112.284511 88.426586) + (xy 112.087053 88.33451) + (xy 112.076761 88.330764) + (xy 111.97205 88.302707) + (xy 111.911427 88.265755) + (xy 111.880406 88.201895) + (xy 111.88652 88.150754) + (xy 113.317967 88.150754) + (xy 113.331796 88.361749) + (xy 113.333217 88.367345) + (xy 113.333218 88.36735) + (xy 113.373011 88.524033) + (xy 113.383845 88.56669) + (xy 113.386262 88.571933) + (xy 113.468566 88.750465) + (xy 113.472369 88.758714) + (xy 113.594405 88.931391) + (xy 113.598539 88.935418) + (xy 113.706801 89.040882) + (xy 113.745865 89.078937) + (xy 113.750661 89.082142) + (xy 113.750664 89.082144) + (xy 113.876976 89.166543) + (xy 113.921677 89.196411) + (xy 113.926985 89.198692) + (xy 113.926986 89.198692) + (xy 114.11065 89.2776) + (xy 114.110653 89.277601) + (xy 114.115953 89.279878) + (xy 114.121582 89.281152) + (xy 114.121583 89.281152) + (xy 114.31655 89.325269) + (xy 114.316553 89.325269) + (xy 114.322186 89.326544) + (xy 114.327957 89.326771) + (xy 114.327959 89.326771) + (xy 114.389989 89.329208) + (xy 114.53347 89.334846) + (xy 114.539179 89.334018) + (xy 114.539183 89.334018) + (xy 114.737015 89.305333) + (xy 114.737019 89.305332) + (xy 114.74273 89.304504) + (xy 114.821987 89.2776) + (xy 114.937483 89.238395) + (xy 114.937488 89.238393) + (xy 114.942955 89.236537) + (xy 115.005588 89.201461) + (xy 115.122395 89.136046) + (xy 115.122399 89.136043) + (xy 115.127442 89.133219) + (xy 115.290012 88.998012) + (xy 115.425219 88.835442) + (xy 115.428043 88.830399) + (xy 115.428046 88.830395) + (xy 115.525713 88.655998) + (xy 115.525714 88.655996) + (xy 115.528537 88.650955) + (xy 115.530393 88.645488) + (xy 115.530395 88.645483) + (xy 115.594647 88.4562) + (xy 115.596504 88.45073) + (xy 115.601683 88.415016) + (xy 115.626314 88.24514) + (xy 115.626314 88.245138) + (xy 115.626846 88.24147) + (xy 115.628429 88.181) + (xy 115.609081 87.97044) + (xy 115.600121 87.938668) + (xy 115.566809 87.820553) + (xy 115.551686 87.766931) + (xy 115.540553 87.744354) + (xy 115.460719 87.582469) + (xy 115.458165 87.57729) + (xy 115.331651 87.407867) + (xy 115.176381 87.264337) + (xy 115.137431 87.239761) + (xy 115.002434 87.154584) + (xy 115.002433 87.154584) + (xy 114.997554 87.151505) + (xy 114.80116 87.073152) + (xy 114.795503 87.072027) + (xy 114.795497 87.072025) + (xy 114.599442 87.033028) + (xy 114.59944 87.033028) + (xy 114.593775 87.031901) + (xy 114.588 87.031825) + (xy 114.587996 87.031825) + (xy 114.481976 87.030437) + (xy 114.382346 87.029133) + (xy 114.376649 87.030112) + (xy 114.376648 87.030112) + (xy 114.17965 87.063962) + (xy 114.179649 87.063962) + (xy 114.173953 87.064941) + (xy 113.975575 87.138127) + (xy 113.970614 87.141079) + (xy 113.970613 87.141079) + (xy 113.836999 87.220571) + (xy 113.793856 87.246238) + (xy 113.634881 87.385655) + (xy 113.503976 87.551708) + (xy 113.501287 87.556819) + (xy 113.501285 87.556822) + (xy 113.459904 87.635475) + (xy 113.405523 87.738836) + (xy 113.36105 87.882062) + (xy 113.346187 87.929931) + (xy 113.34282 87.940773) + (xy 113.317967 88.150754) + (xy 111.88652 88.150754) + (xy 111.888834 88.1314) + (xy 111.934037 88.076653) + (xy 111.97205 88.059293) + (xy 112.076761 88.031236) + (xy 112.087053 88.02749) + (xy 112.284511 87.935414) + (xy 112.294006 87.929931) + (xy 112.346048 87.893491) + (xy 112.354424 87.883012) + (xy 112.347356 87.869566) + (xy 111.645812 87.168022) + (xy 111.631868 87.160408) + (xy 111.630035 87.160539) + (xy 111.62342 87.16479) + (xy 110.917923 87.870287) + (xy 110.911493 87.882062) + (xy 102.62174 87.882062) + (xy 102.567887 87.795879) + (xy 102.559726 87.787661) + (xy 102.454208 87.681403) + (xy 102.454204 87.6814) + (xy 102.449245 87.676406) + (xy 102.307082 87.586187) + (xy 102.148465 87.529706) + (xy 102.141477 87.528873) + (xy 102.141474 87.528872) + (xy 102.04547 87.517424) + (xy 101.981276 87.509769) + (xy 101.974273 87.510505) + (xy 101.974272 87.510505) + (xy 101.928715 87.515293) + (xy 101.813824 87.527369) + (xy 101.807158 87.529638) + (xy 101.807155 87.529639) + (xy 101.661101 87.57936) + (xy 101.661098 87.579361) + (xy 101.654434 87.58163) + (xy 101.648439 87.585318) + (xy 101.648435 87.58532) + (xy 101.517024 87.666165) + (xy 101.517022 87.666167) + (xy 101.511025 87.669856) + (xy 101.499234 87.681403) + (xy 101.411896 87.766931) + (xy 101.390727 87.787661) + (xy 101.299518 87.92919) + (xy 101.297108 87.93581) + (xy 101.297107 87.935813) + (xy 101.281439 87.978861) + (xy 101.24193 88.087409) + (xy 101.220828 88.254455) + (xy 93.685768 88.254455) + (xy 93.69554 88.243134) + (xy 93.69554 88.243133) + (xy 93.699564 88.238472) + (xy 93.710477 88.219262) + (xy 93.761514 88.169913) + (xy 93.820032 88.1555) + (xy 95.680065 88.1555) + (xy 95.685342 88.155611) + (xy 95.744419 88.158087) + (xy 95.784605 88.148662) + (xy 95.796271 88.1465) + (xy 95.828636 88.142067) + (xy 95.828638 88.142066) + (xy 95.837146 88.140901) + (xy 95.845027 88.13749) + (xy 95.845029 88.13749) + (xy 95.849847 88.135405) + (xy 95.87111 88.128373) + (xy 95.876229 88.127172) + (xy 95.876231 88.127171) + (xy 95.884593 88.12521) + (xy 95.920775 88.105319) + (xy 95.931405 88.100112) + (xy 95.969283 88.08372) + (xy 95.975959 88.078314) + (xy 95.975961 88.078313) + (xy 95.980042 88.075008) + (xy 95.998626 88.06252) + (xy 96.010763 88.055847) + (xy 96.018505 88.049164) + (xy 96.041709 88.02596) + (xy 96.05151 88.017134) + (xy 96.081175 87.993112) + (xy 96.091306 87.978856) + (xy 96.104913 87.962756) + (xy 97.266194 86.801475) + (xy 110.320483 86.801475) + (xy 110.339472 87.018519) + (xy 110.341375 87.029312) + (xy 110.397764 87.239761) + (xy 110.40151 87.250053) + (xy 110.493586 87.447511) + (xy 110.499069 87.457006) + (xy 110.535509 87.509048) + (xy 110.545988 87.517424) + (xy 110.559434 87.510356) + (xy 111.260978 86.808812) + (xy 111.267356 86.797132) + (xy 111.997408 86.797132) + (xy 111.997539 86.798965) + (xy 112.00179 86.80558) + (xy 112.707287 87.511077) + (xy 112.719062 87.517507) + (xy 112.731077 87.508211) + (xy 112.766931 87.457006) + (xy 112.772414 87.447511) + (xy 112.86449 87.250053) + (xy 112.868236 87.239761) + (xy 112.924625 87.029312) + (xy 112.926528 87.018519) + (xy 112.945517 86.801475) + (xy 112.945517 86.790525) + (xy 112.926528 86.573481) + (xy 112.924625 86.562688) + (xy 112.868236 86.352239) + (xy 112.86449 86.341947) + (xy 112.772414 86.144489) + (xy 112.766931 86.134994) + (xy 112.730491 86.082952) + (xy 112.720012 86.074576) + (xy 112.706566 86.081644) + (xy 112.005022 86.783188) + (xy 111.997408 86.797132) + (xy 111.267356 86.797132) + (xy 111.268592 86.794868) + (xy 111.268461 86.793035) + (xy 111.26421 86.78642) + (xy 110.558713 86.080923) + (xy 110.546938 86.074493) + (xy 110.534923 86.083789) + (xy 110.499069 86.134994) + (xy 110.493586 86.144489) + (xy 110.40151 86.341947) + (xy 110.397764 86.352239) + (xy 110.341375 86.562688) + (xy 110.339472 86.573481) + (xy 110.320483 86.790525) + (xy 110.320483 86.801475) + (xy 97.266194 86.801475) + (xy 98.278364 85.789305) + (xy 98.282173 85.785652) + (xy 98.319385 85.751434) + (xy 98.325712 85.745616) + (xy 98.347465 85.710532) + (xy 98.348526 85.708988) + (xy 110.911576 85.708988) + (xy 110.918644 85.722434) + (xy 111.620188 86.423978) + (xy 111.634132 86.431592) + (xy 111.635965 86.431461) + (xy 111.64258 86.42721) + (xy 112.348077 85.721713) + (xy 112.354507 85.709938) + (xy 112.345211 85.697923) + (xy 112.294006 85.662069) + (xy 112.284511 85.656586) + (xy 112.087053 85.56451) + (xy 112.076761 85.560764) + (xy 111.866312 85.504375) + (xy 111.855519 85.502472) + (xy 111.638475 85.483483) + (xy 111.627525 85.483483) + (xy 111.410481 85.502472) + (xy 111.399688 85.504375) + (xy 111.189239 85.560764) + (xy 111.178947 85.56451) + (xy 110.981489 85.656586) + (xy 110.971994 85.662069) + (xy 110.919952 85.698509) + (xy 110.911576 85.708988) + (xy 98.348526 85.708988) + (xy 98.354182 85.70076) + (xy 98.355891 85.698509) + (xy 98.379128 85.667895) + (xy 98.384224 85.655024) + (xy 98.394292 85.635007) + (xy 98.397056 85.630549) + (xy 98.401582 85.62325) + (xy 98.41241 85.585982) + (xy 98.413094 85.583626) + (xy 98.416939 85.572397) + (xy 98.428968 85.542014) + (xy 98.428968 85.542012) + (xy 98.43213 85.534027) + (xy 98.433577 85.520258) + (xy 98.43789 85.498276) + (xy 98.439908 85.49133) + (xy 98.441751 85.484988) + (xy 98.4425 85.474788) + (xy 98.4425 85.441971) + (xy 98.44319 85.4288) + (xy 98.44718 85.390838) + (xy 98.445475 85.380754) + (xy 113.317967 85.380754) + (xy 113.331796 85.591749) + (xy 113.333217 85.597345) + (xy 113.333218 85.59735) + (xy 113.381894 85.789008) + (xy 113.383845 85.79669) + (xy 113.472369 85.988714) + (xy 113.594405 86.161391) + (xy 113.745865 86.308937) + (xy 113.750661 86.312142) + (xy 113.750664 86.312144) + (xy 113.844674 86.374959) + (xy 113.921677 86.426411) + (xy 113.926985 86.428692) + (xy 113.926986 86.428692) + (xy 114.11065 86.5076) + (xy 114.110653 86.507601) + (xy 114.115953 86.509878) + (xy 114.121582 86.511152) + (xy 114.121583 86.511152) + (xy 114.31655 86.555269) + (xy 114.316553 86.555269) + (xy 114.322186 86.556544) + (xy 114.327957 86.556771) + (xy 114.327959 86.556771) + (xy 114.389989 86.559208) + (xy 114.53347 86.564846) + (xy 114.539179 86.564018) + (xy 114.539183 86.564018) + (xy 114.737015 86.535333) + (xy 114.737019 86.535332) + (xy 114.74273 86.534504) + (xy 114.815276 86.509878) + (xy 114.937483 86.468395) + (xy 114.937488 86.468393) + (xy 114.942955 86.466537) + (xy 114.947998 86.463713) + (xy 115.122395 86.366046) + (xy 115.122399 86.366043) + (xy 115.127442 86.363219) + (xy 115.290012 86.228012) + (xy 115.425219 86.065442) + (xy 115.428043 86.060399) + (xy 115.428046 86.060395) + (xy 115.525713 85.885998) + (xy 115.525714 85.885996) + (xy 115.528537 85.880955) + (xy 115.530393 85.875488) + (xy 115.530395 85.875483) + (xy 115.585713 85.712518) + (xy 115.596504 85.68073) + (xy 115.604839 85.62325) + (xy 115.626314 85.47514) + (xy 115.626314 85.475138) + (xy 115.626846 85.47147) + (xy 115.628429 85.411) + (xy 115.609081 85.20044) + (xy 115.60304 85.179018) + (xy 115.587128 85.1226) + (xy 115.551686 84.996931) + (xy 115.543853 84.981046) + (xy 115.460719 84.812469) + (xy 115.458165 84.80729) + (xy 115.363443 84.680442) + (xy 115.335104 84.642491) + (xy 115.335103 84.64249) + (xy 115.331651 84.637867) + (xy 115.176381 84.494337) + (xy 115.142265 84.472811) + (xy 115.002434 84.384584) + (xy 115.002433 84.384584) + (xy 114.997554 84.381505) + (xy 114.80116 84.303152) + (xy 114.795503 84.302027) + (xy 114.795497 84.302025) + (xy 114.599442 84.263028) + (xy 114.59944 84.263028) + (xy 114.593775 84.261901) + (xy 114.588 84.261825) + (xy 114.587996 84.261825) + (xy 114.481976 84.260437) + (xy 114.382346 84.259133) + (xy 114.376649 84.260112) + (xy 114.376648 84.260112) + (xy 114.17965 84.293962) + (xy 114.179649 84.293962) + (xy 114.173953 84.294941) + (xy 113.975575 84.368127) + (xy 113.970614 84.371079) + (xy 113.970613 84.371079) + (xy 113.824732 84.457869) + (xy 113.793856 84.476238) + (xy 113.634881 84.615655) + (xy 113.503976 84.781708) + (xy 113.501287 84.786819) + (xy 113.501285 84.786822) + (xy 113.474057 84.838574) + (xy 113.405523 84.968836) + (xy 113.34282 85.170773) + (xy 113.317967 85.380754) + (xy 98.445475 85.380754) + (xy 98.444264 85.373596) + (xy 98.4425 85.352584) + (xy 98.4425 83.995754) + (xy 110.477967 83.995754) + (xy 110.491796 84.206749) + (xy 110.493217 84.212345) + (xy 110.493218 84.21235) + (xy 110.532781 84.368127) + (xy 110.543845 84.41169) + (xy 110.632369 84.603714) + (xy 110.754405 84.776391) + (xy 110.905865 84.923937) + (xy 110.910661 84.927142) + (xy 110.910664 84.927144) + (xy 111.015108 84.996931) + (xy 111.081677 85.041411) + (xy 111.086985 85.043692) + (xy 111.086986 85.043692) + (xy 111.27065 85.1226) + (xy 111.270653 85.122601) + (xy 111.275953 85.124878) + (xy 111.281582 85.126152) + (xy 111.281583 85.126152) + (xy 111.47655 85.170269) + (xy 111.476553 85.170269) + (xy 111.482186 85.171544) + (xy 111.487957 85.171771) + (xy 111.487959 85.171771) + (xy 111.549989 85.174208) + (xy 111.69347 85.179846) + (xy 111.699179 85.179018) + (xy 111.699183 85.179018) + (xy 111.897015 85.150333) + (xy 111.897019 85.150332) + (xy 111.90273 85.149504) + (xy 111.975276 85.124878) + (xy 112.097483 85.083395) + (xy 112.097488 85.083393) + (xy 112.102955 85.081537) + (xy 112.112035 85.076452) + (xy 112.282395 84.981046) + (xy 112.282399 84.981043) + (xy 112.287442 84.978219) + (xy 112.450012 84.843012) + (xy 112.585219 84.680442) + (xy 112.588043 84.675399) + (xy 112.588046 84.675395) + (xy 112.685713 84.500998) + (xy 112.685714 84.500996) + (xy 112.688537 84.495955) + (xy 112.690393 84.490488) + (xy 112.690395 84.490483) + (xy 112.752049 84.308853) + (xy 112.756504 84.29573) + (xy 112.757468 84.289087) + (xy 112.786314 84.09014) + (xy 112.786314 84.090138) + (xy 112.786846 84.08647) + (xy 112.788429 84.026) + (xy 112.769081 83.81544) + (xy 112.765895 83.804141) + (xy 112.724874 83.658692) + (xy 112.711686 83.611931) + (xy 112.703853 83.596046) + (xy 112.620719 83.427469) + (xy 112.618165 83.42229) + (xy 112.523443 83.295442) + (xy 112.495104 83.257491) + (xy 112.495103 83.25749) + (xy 112.491651 83.252867) + (xy 112.336381 83.109337) + (xy 112.157554 82.996505) + (xy 111.96116 82.918152) + (xy 111.955503 82.917027) + (xy 111.955497 82.917025) + (xy 111.759442 82.878028) + (xy 111.75944 82.878028) + (xy 111.753775 82.876901) + (xy 111.748 82.876825) + (xy 111.747996 82.876825) + (xy 111.641976 82.875437) + (xy 111.542346 82.874133) + (xy 111.536649 82.875112) + (xy 111.536648 82.875112) + (xy 111.33965 82.908962) + (xy 111.339649 82.908962) + (xy 111.333953 82.909941) + (xy 111.135575 82.983127) + (xy 111.130614 82.986079) + (xy 111.130613 82.986079) + (xy 111.113089 82.996505) + (xy 110.953856 83.091238) + (xy 110.794881 83.230655) + (xy 110.663976 83.396708) + (xy 110.661287 83.401819) + (xy 110.661285 83.401822) + (xy 110.647792 83.427469) + (xy 110.565523 83.583836) + (xy 110.50282 83.785773) + (xy 110.477967 83.995754) + (xy 98.4425 83.995754) + (xy 98.4425 82.251279) + (xy 98.462502 82.183158) + (xy 98.506931 82.141347) + (xy 98.571442 82.105219) + (xy 98.734012 81.970012) + (xy 98.869219 81.807442) + (xy 98.872043 81.802399) + (xy 98.872046 81.802395) + (xy 98.969713 81.627998) + (xy 98.969714 81.627996) + (xy 98.972537 81.622955) + (xy 98.974393 81.617488) + (xy 98.974395 81.617483) + (xy 99.038647 81.4282) + (xy 99.040504 81.42273) + (xy 99.041333 81.417015) + (xy 99.06209 81.27386) + (xy 99.09166 81.209315) + (xy 99.151432 81.171003) + (xy 99.222429 81.171087) + (xy 99.282109 81.209542) + (xy 99.311525 81.274158) + (xy 99.312515 81.283695) + (xy 99.315796 81.333749) + (xy 99.317217 81.339345) + (xy 99.317218 81.33935) + (xy 99.364861 81.526942) + (xy 99.367845 81.53869) + (xy 99.370262 81.543933) + (xy 99.416402 81.644018) + (xy 99.456369 81.730714) + (xy 99.578405 81.903391) + (xy 99.729865 82.050937) + (xy 99.734661 82.054142) + (xy 99.734664 82.054144) + (xy 99.865168 82.141344) + (xy 99.905677 82.168411) + (xy 99.910985 82.170692) + (xy 99.910986 82.170692) + (xy 100.09465 82.2496) + (xy 100.094653 82.249601) + (xy 100.099953 82.251878) + (xy 100.105582 82.253152) + (xy 100.105583 82.253152) + (xy 100.30055 82.297269) + (xy 100.300553 82.297269) + (xy 100.306186 82.298544) + (xy 100.311957 82.298771) + (xy 100.311959 82.298771) + (xy 100.373989 82.301208) + (xy 100.51747 82.306846) + (xy 100.523179 82.306018) + (xy 100.523183 82.306018) + (xy 100.721015 82.277333) + (xy 100.721019 82.277332) + (xy 100.72673 82.276504) + (xy 100.805987 82.2496) + (xy 100.921483 82.210395) + (xy 100.921488 82.210393) + (xy 100.926955 82.208537) + (xy 100.934126 82.204521) + (xy 101.106395 82.108046) + (xy 101.106399 82.108043) + (xy 101.111442 82.105219) + (xy 101.274012 81.970012) + (xy 101.409219 81.807442) + (xy 101.412043 81.802399) + (xy 101.412046 81.802395) + (xy 101.509713 81.627998) + (xy 101.509714 81.627996) + (xy 101.512537 81.622955) + (xy 101.514393 81.617488) + (xy 101.514395 81.617483) + (xy 101.578647 81.4282) + (xy 101.580504 81.42273) + (xy 101.581333 81.417015) + (xy 101.60209 81.27386) + (xy 101.63166 81.209315) + (xy 101.691432 81.171003) + (xy 101.762429 81.171087) + (xy 101.822109 81.209542) + (xy 101.851525 81.274158) + (xy 101.852515 81.283695) + (xy 101.855796 81.333749) + (xy 101.857217 81.339345) + (xy 101.857218 81.33935) + (xy 101.904861 81.526942) + (xy 101.907845 81.53869) + (xy 101.910262 81.543933) + (xy 101.956402 81.644018) + (xy 101.996369 81.730714) + (xy 102.118405 81.903391) + (xy 102.269865 82.050937) + (xy 102.274661 82.054142) + (xy 102.274664 82.054144) + (xy 102.405168 82.141344) + (xy 102.445677 82.168411) + (xy 102.450985 82.170692) + (xy 102.450986 82.170692) + (xy 102.63465 82.2496) + (xy 102.634653 82.249601) + (xy 102.639953 82.251878) + (xy 102.645582 82.253152) + (xy 102.645583 82.253152) + (xy 102.84055 82.297269) + (xy 102.840553 82.297269) + (xy 102.846186 82.298544) + (xy 102.851957 82.298771) + (xy 102.851959 82.298771) + (xy 102.913989 82.301208) + (xy 103.05747 82.306846) + (xy 103.063179 82.306018) + (xy 103.063183 82.306018) + (xy 103.261015 82.277333) + (xy 103.261019 82.277332) + (xy 103.26673 82.276504) + (xy 103.345987 82.2496) + (xy 103.461483 82.210395) + (xy 103.461488 82.210393) + (xy 103.466955 82.208537) + (xy 103.474126 82.204521) + (xy 103.646395 82.108046) + (xy 103.646399 82.108043) + (xy 103.651442 82.105219) + (xy 103.814012 81.970012) + (xy 103.949219 81.807442) + (xy 103.952043 81.802399) + (xy 103.952046 81.802395) + (xy 104.049713 81.627998) + (xy 104.049714 81.627996) + (xy 104.052537 81.622955) + (xy 104.054393 81.617488) + (xy 104.054395 81.617483) + (xy 104.118647 81.4282) + (xy 104.120504 81.42273) + (xy 104.121333 81.417015) + (xy 104.14209 81.27386) + (xy 104.17166 81.209315) + (xy 104.231432 81.171003) + (xy 104.302429 81.171087) + (xy 104.362109 81.209542) + (xy 104.391525 81.274158) + (xy 104.392515 81.283695) + (xy 104.395796 81.333749) + (xy 104.397217 81.339345) + (xy 104.397218 81.33935) + (xy 104.444861 81.526942) + (xy 104.447845 81.53869) + (xy 104.450262 81.543933) + (xy 104.496402 81.644018) + (xy 104.536369 81.730714) + (xy 104.658405 81.903391) + (xy 104.809865 82.050937) + (xy 104.814661 82.054142) + (xy 104.814664 82.054144) + (xy 104.945168 82.141344) + (xy 104.985677 82.168411) + (xy 104.990985 82.170692) + (xy 104.990986 82.170692) + (xy 105.17465 82.2496) + (xy 105.174653 82.249601) + (xy 105.179953 82.251878) + (xy 105.185582 82.253152) + (xy 105.185583 82.253152) + (xy 105.38055 82.297269) + (xy 105.380553 82.297269) + (xy 105.386186 82.298544) + (xy 105.391957 82.298771) + (xy 105.391959 82.298771) + (xy 105.453989 82.301208) + (xy 105.59747 82.306846) + (xy 105.603179 82.306018) + (xy 105.603183 82.306018) + (xy 105.801015 82.277333) + (xy 105.801019 82.277332) + (xy 105.80673 82.276504) + (xy 105.885987 82.2496) + (xy 106.001483 82.210395) + (xy 106.001488 82.210393) + (xy 106.006955 82.208537) + (xy 106.014126 82.204521) + (xy 106.186395 82.108046) + (xy 106.186399 82.108043) + (xy 106.191442 82.105219) + (xy 106.354012 81.970012) + (xy 106.489219 81.807442) + (xy 106.492043 81.802399) + (xy 106.492046 81.802395) + (xy 106.589713 81.627998) + (xy 106.589714 81.627996) + (xy 106.592537 81.622955) + (xy 106.594393 81.617488) + (xy 106.594395 81.617483) + (xy 106.658647 81.4282) + (xy 106.660504 81.42273) + (xy 106.661333 81.417015) + (xy 106.68209 81.27386) + (xy 106.71166 81.209315) + (xy 106.771432 81.171003) + (xy 106.842429 81.171087) + (xy 106.902109 81.209542) + (xy 106.931525 81.274158) + (xy 106.932515 81.283695) + (xy 106.935796 81.333749) + (xy 106.937217 81.339345) + (xy 106.937218 81.33935) + (xy 106.984861 81.526942) + (xy 106.987845 81.53869) + (xy 106.990262 81.543933) + (xy 107.036402 81.644018) + (xy 107.076369 81.730714) + (xy 107.198405 81.903391) + (xy 107.349865 82.050937) + (xy 107.354661 82.054142) + (xy 107.354664 82.054144) + (xy 107.485168 82.141344) + (xy 107.525677 82.168411) + (xy 107.530985 82.170692) + (xy 107.530986 82.170692) + (xy 107.71465 82.2496) + (xy 107.714653 82.249601) + (xy 107.719953 82.251878) + (xy 107.725582 82.253152) + (xy 107.725583 82.253152) + (xy 107.92055 82.297269) + (xy 107.920553 82.297269) + (xy 107.926186 82.298544) + (xy 107.931957 82.298771) + (xy 107.931959 82.298771) + (xy 107.993989 82.301208) + (xy 108.13747 82.306846) + (xy 108.143179 82.306018) + (xy 108.143183 82.306018) + (xy 108.341015 82.277333) + (xy 108.341019 82.277332) + (xy 108.34673 82.276504) + (xy 108.425987 82.2496) + (xy 108.541483 82.210395) + (xy 108.541488 82.210393) + (xy 108.546955 82.208537) + (xy 108.554126 82.204521) + (xy 108.726395 82.108046) + (xy 108.726399 82.108043) + (xy 108.731442 82.105219) + (xy 108.894012 81.970012) + (xy 109.029219 81.807442) + (xy 109.032043 81.802399) + (xy 109.032046 81.802395) + (xy 109.129713 81.627998) + (xy 109.129714 81.627996) + (xy 109.132537 81.622955) + (xy 109.134393 81.617488) + (xy 109.134395 81.617483) + (xy 109.198647 81.4282) + (xy 109.200504 81.42273) + (xy 109.202375 81.409831) + (xy 109.229065 81.225754) + (xy 110.477967 81.225754) + (xy 110.491796 81.436749) + (xy 110.493217 81.442345) + (xy 110.493218 81.44235) + (xy 110.531829 81.594377) + (xy 110.543845 81.64169) + (xy 110.546262 81.646933) + (xy 110.582692 81.725955) + (xy 110.632369 81.833714) + (xy 110.754405 82.006391) + (xy 110.795999 82.04691) + (xy 110.852059 82.101521) + (xy 110.905865 82.153937) + (xy 110.910661 82.157142) + (xy 110.910664 82.157144) + (xy 111.000392 82.217098) + (xy 111.081677 82.271411) + (xy 111.086985 82.273692) + (xy 111.086986 82.273692) + (xy 111.27065 82.3526) + (xy 111.270653 82.352601) + (xy 111.275953 82.354878) + (xy 111.281582 82.356152) + (xy 111.281583 82.356152) + (xy 111.47655 82.400269) + (xy 111.476553 82.400269) + (xy 111.482186 82.401544) + (xy 111.487957 82.401771) + (xy 111.487959 82.401771) + (xy 111.549989 82.404208) + (xy 111.69347 82.409846) + (xy 111.699179 82.409018) + (xy 111.699183 82.409018) + (xy 111.897015 82.380333) + (xy 111.897019 82.380332) + (xy 111.90273 82.379504) + (xy 111.981987 82.3526) + (xy 112.097483 82.313395) + (xy 112.097488 82.313393) + (xy 112.102955 82.311537) + (xy 112.107998 82.308713) + (xy 112.282395 82.211046) + (xy 112.282399 82.211043) + (xy 112.287442 82.208219) + (xy 112.450012 82.073012) + (xy 112.585219 81.910442) + (xy 112.588043 81.905399) + (xy 112.588046 81.905395) + (xy 112.685713 81.730998) + (xy 112.685714 81.730996) + (xy 112.688537 81.725955) + (xy 112.690393 81.720488) + (xy 112.690395 81.720483) + (xy 112.752916 81.5363) + (xy 112.756504 81.52573) + (xy 112.757669 81.517701) + (xy 112.786314 81.32014) + (xy 112.786314 81.320138) + (xy 112.786846 81.31647) + (xy 112.788429 81.256) + (xy 112.769081 81.04544) + (xy 112.711686 80.841931) + (xy 112.700553 80.819354) + (xy 112.620719 80.657469) + (xy 112.618165 80.65229) + (xy 112.522148 80.523708) + (xy 112.495104 80.487491) + (xy 112.495103 80.48749) + (xy 112.491651 80.482867) + (xy 112.361098 80.362185) + (xy 112.340622 80.343257) + (xy 112.34062 80.343255) + (xy 112.336381 80.339337) + (xy 112.196527 80.251095) + (xy 112.162434 80.229584) + (xy 112.162433 80.229584) + (xy 112.157554 80.226505) + (xy 111.96116 80.148152) + (xy 111.955503 80.147027) + (xy 111.955497 80.147025) + (xy 111.759442 80.108028) + (xy 111.75944 80.108028) + (xy 111.753775 80.106901) + (xy 111.748 80.106825) + (xy 111.747996 80.106825) + (xy 111.641976 80.105437) + (xy 111.542346 80.104133) + (xy 111.536649 80.105112) + (xy 111.536648 80.105112) + (xy 111.33965 80.138962) + (xy 111.339649 80.138962) + (xy 111.333953 80.139941) + (xy 111.135575 80.213127) + (xy 111.130614 80.216079) + (xy 111.130613 80.216079) + (xy 110.98094 80.305125) + (xy 110.953856 80.321238) + (xy 110.794881 80.460655) + (xy 110.663976 80.626708) + (xy 110.661287 80.631819) + (xy 110.661285 80.631822) + (xy 110.619714 80.710836) + (xy 110.565523 80.813836) + (xy 110.50282 81.015773) + (xy 110.477967 81.225754) + (xy 109.229065 81.225754) + (xy 109.230314 81.21714) + (xy 109.230314 81.217138) + (xy 109.230846 81.21347) + (xy 109.232429 81.153) + (xy 109.213081 80.94244) + (xy 109.155686 80.738931) + (xy 109.148612 80.724585) + (xy 109.064719 80.554469) + (xy 109.062165 80.54929) + (xy 108.935651 80.379867) + (xy 108.780381 80.236337) + (xy 108.601554 80.123505) + (xy 108.40516 80.045152) + (xy 108.399503 80.044027) + (xy 108.399497 80.044025) + (xy 108.203442 80.005028) + (xy 108.20344 80.005028) + (xy 108.197775 80.003901) + (xy 108.192 80.003825) + (xy 108.191996 80.003825) + (xy 108.085976 80.002437) + (xy 107.986346 80.001133) + (xy 107.980649 80.002112) + (xy 107.980648 80.002112) + (xy 107.78365 80.035962) + (xy 107.783649 80.035962) + (xy 107.777953 80.036941) + (xy 107.579575 80.110127) + (xy 107.574614 80.113079) + (xy 107.574613 80.113079) + (xy 107.526099 80.141942) + (xy 107.397856 80.218238) + (xy 107.238881 80.357655) + (xy 107.107976 80.523708) + (xy 107.105287 80.528819) + (xy 107.105285 80.528822) + (xy 107.091792 80.554469) + (xy 107.009523 80.710836) + (xy 106.94682 80.912773) + (xy 106.946141 80.91851) + (xy 106.932088 81.037239) + (xy 106.904217 81.102537) + (xy 106.845469 81.142401) + (xy 106.774494 81.144174) + (xy 106.713828 81.107295) + (xy 106.68273 81.043471) + (xy 106.68149 81.033958) + (xy 106.680347 81.02151) + (xy 106.673081 80.94244) + (xy 106.615686 80.738931) + (xy 106.608612 80.724585) + (xy 106.524719 80.554469) + (xy 106.522165 80.54929) + (xy 106.395651 80.379867) + (xy 106.240381 80.236337) + (xy 106.061554 80.123505) + (xy 105.86516 80.045152) + (xy 105.859503 80.044027) + (xy 105.859497 80.044025) + (xy 105.663442 80.005028) + (xy 105.66344 80.005028) + (xy 105.657775 80.003901) + (xy 105.652 80.003825) + (xy 105.651996 80.003825) + (xy 105.545976 80.002437) + (xy 105.446346 80.001133) + (xy 105.440649 80.002112) + (xy 105.440648 80.002112) + (xy 105.24365 80.035962) + (xy 105.243649 80.035962) + (xy 105.237953 80.036941) + (xy 105.039575 80.110127) + (xy 105.034614 80.113079) + (xy 105.034613 80.113079) + (xy 104.986099 80.141942) + (xy 104.857856 80.218238) + (xy 104.698881 80.357655) + (xy 104.567976 80.523708) + (xy 104.565287 80.528819) + (xy 104.565285 80.528822) + (xy 104.551792 80.554469) + (xy 104.469523 80.710836) + (xy 104.40682 80.912773) + (xy 104.406141 80.91851) + (xy 104.392088 81.037239) + (xy 104.364217 81.102537) + (xy 104.305469 81.142401) + (xy 104.234494 81.144174) + (xy 104.173828 81.107295) + (xy 104.14273 81.043471) + (xy 104.14149 81.033958) + (xy 104.140347 81.02151) + (xy 104.133081 80.94244) + (xy 104.075686 80.738931) + (xy 104.068612 80.724585) + (xy 103.984719 80.554469) + (xy 103.982165 80.54929) + (xy 103.855651 80.379867) + (xy 103.700381 80.236337) + (xy 103.521554 80.123505) + (xy 103.32516 80.045152) + (xy 103.319503 80.044027) + (xy 103.319497 80.044025) + (xy 103.123442 80.005028) + (xy 103.12344 80.005028) + (xy 103.117775 80.003901) + (xy 103.112 80.003825) + (xy 103.111996 80.003825) + (xy 103.005976 80.002437) + (xy 102.906346 80.001133) + (xy 102.900649 80.002112) + (xy 102.900648 80.002112) + (xy 102.70365 80.035962) + (xy 102.703649 80.035962) + (xy 102.697953 80.036941) + (xy 102.499575 80.110127) + (xy 102.494614 80.113079) + (xy 102.494613 80.113079) + (xy 102.446099 80.141942) + (xy 102.317856 80.218238) + (xy 102.158881 80.357655) + (xy 102.027976 80.523708) + (xy 102.025287 80.528819) + (xy 102.025285 80.528822) + (xy 102.011792 80.554469) + (xy 101.929523 80.710836) + (xy 101.86682 80.912773) + (xy 101.866141 80.91851) + (xy 101.852088 81.037239) + (xy 101.824217 81.102537) + (xy 101.765469 81.142401) + (xy 101.694494 81.144174) + (xy 101.633828 81.107295) + (xy 101.60273 81.043471) + (xy 101.60149 81.033958) + (xy 101.600347 81.02151) + (xy 101.593081 80.94244) + (xy 101.535686 80.738931) + (xy 101.528612 80.724585) + (xy 101.444719 80.554469) + (xy 101.442165 80.54929) + (xy 101.315651 80.379867) + (xy 101.160381 80.236337) + (xy 100.981554 80.123505) + (xy 100.78516 80.045152) + (xy 100.779503 80.044027) + (xy 100.779497 80.044025) + (xy 100.583442 80.005028) + (xy 100.58344 80.005028) + (xy 100.577775 80.003901) + (xy 100.572 80.003825) + (xy 100.571996 80.003825) + (xy 100.465976 80.002437) + (xy 100.366346 80.001133) + (xy 100.360649 80.002112) + (xy 100.360648 80.002112) + (xy 100.16365 80.035962) + (xy 100.163649 80.035962) + (xy 100.157953 80.036941) + (xy 99.959575 80.110127) + (xy 99.954614 80.113079) + (xy 99.954613 80.113079) + (xy 99.906099 80.141942) + (xy 99.777856 80.218238) + (xy 99.618881 80.357655) + (xy 99.487976 80.523708) + (xy 99.485287 80.528819) + (xy 99.485285 80.528822) + (xy 99.471792 80.554469) + (xy 99.389523 80.710836) + (xy 99.32682 80.912773) + (xy 99.326141 80.91851) + (xy 99.312088 81.037239) + (xy 99.284217 81.102537) + (xy 99.225469 81.142401) + (xy 99.154494 81.144174) + (xy 99.093828 81.107295) + (xy 99.06273 81.043471) + (xy 99.06149 81.033958) + (xy 99.060347 81.02151) + (xy 99.053081 80.94244) + (xy 98.995686 80.738931) + (xy 98.988612 80.724585) + (xy 98.904719 80.554469) + (xy 98.902165 80.54929) + (xy 98.775651 80.379867) + (xy 98.620381 80.236337) + (xy 98.441554 80.123505) + (xy 98.24516 80.045152) + (xy 98.239503 80.044027) + (xy 98.239497 80.044025) + (xy 98.043442 80.005028) + (xy 98.04344 80.005028) + (xy 98.037775 80.003901) + (xy 98.032 80.003825) + (xy 98.031996 80.003825) + (xy 97.925976 80.002437) + (xy 97.826346 80.001133) + (xy 97.820649 80.002112) + (xy 97.820648 80.002112) + (xy 97.62365 80.035962) + (xy 97.623649 80.035962) + (xy 97.617953 80.036941) + (xy 97.419575 80.110127) + (xy 97.414614 80.113079) + (xy 97.414613 80.113079) + (xy 97.366099 80.141942) + (xy 97.237856 80.218238) + (xy 97.078881 80.357655) + (xy 96.947976 80.523708) + (xy 96.945287 80.528819) + (xy 96.945285 80.528822) + (xy 96.931792 80.554469) + (xy 96.849523 80.710836) + (xy 96.78682 80.912773) + (xy 96.786141 80.91851) + (xy 96.772088 81.037239) + (xy 96.744217 81.102537) + (xy 96.685469 81.142401) + (xy 96.614494 81.144174) + (xy 96.553828 81.107295) + (xy 96.52273 81.043471) + (xy 96.52149 81.033958) + (xy 96.520347 81.02151) + (xy 96.513081 80.94244) + (xy 96.455686 80.738931) + (xy 96.448612 80.724585) + (xy 96.364719 80.554469) + (xy 96.362165 80.54929) + (xy 96.235651 80.379867) + (xy 96.080381 80.236337) + (xy 95.901554 80.123505) + (xy 95.70516 80.045152) + (xy 95.699503 80.044027) + (xy 95.699497 80.044025) + (xy 95.503442 80.005028) + (xy 95.50344 80.005028) + (xy 95.497775 80.003901) + (xy 95.492 80.003825) + (xy 95.491996 80.003825) + (xy 95.385976 80.002437) + (xy 95.286346 80.001133) + (xy 95.280649 80.002112) + (xy 95.280648 80.002112) + (xy 95.08365 80.035962) + (xy 95.083649 80.035962) + (xy 95.077953 80.036941) + (xy 94.879575 80.110127) + (xy 94.874614 80.113079) + (xy 94.874613 80.113079) + (xy 94.826099 80.141942) + (xy 94.697856 80.218238) + (xy 94.538881 80.357655) + (xy 94.407976 80.523708) + (xy 94.405287 80.528819) + (xy 94.405285 80.528822) + (xy 94.391792 80.554469) + (xy 94.309523 80.710836) + (xy 94.24682 80.912773) + (xy 94.246141 80.91851) + (xy 94.232088 81.037239) + (xy 94.204217 81.102537) + (xy 94.145469 81.142401) + (xy 94.074494 81.144174) + (xy 94.013828 81.107295) + (xy 93.98273 81.043471) + (xy 93.98149 81.033958) + (xy 93.980347 81.02151) + (xy 93.973081 80.94244) + (xy 93.915686 80.738931) + (xy 93.908612 80.724585) + (xy 93.824719 80.554469) + (xy 93.822165 80.54929) + (xy 93.695651 80.379867) + (xy 93.540381 80.236337) + (xy 93.361554 80.123505) + (xy 93.16516 80.045152) + (xy 93.159503 80.044027) + (xy 93.159497 80.044025) + (xy 92.963442 80.005028) + (xy 92.96344 80.005028) + (xy 92.957775 80.003901) + (xy 92.952 80.003825) + (xy 92.951996 80.003825) + (xy 92.845976 80.002437) + (xy 92.746346 80.001133) + (xy 92.740649 80.002112) + (xy 92.740648 80.002112) + (xy 92.54365 80.035962) + (xy 92.543649 80.035962) + (xy 92.537953 80.036941) + (xy 92.339575 80.110127) + (xy 92.334614 80.113079) + (xy 92.334613 80.113079) + (xy 92.286099 80.141942) + (xy 92.157856 80.218238) + (xy 91.998881 80.357655) + (xy 91.867976 80.523708) + (xy 91.865287 80.528819) + (xy 91.865285 80.528822) + (xy 91.851792 80.554469) + (xy 91.769523 80.710836) + (xy 91.70682 80.912773) + (xy 91.706141 80.91851) + (xy 91.692088 81.037239) + (xy 91.664217 81.102537) + (xy 91.605469 81.142401) + (xy 91.534494 81.144174) + (xy 91.473828 81.107295) + (xy 91.44273 81.043471) + (xy 91.44149 81.033958) + (xy 91.440347 81.02151) + (xy 91.433081 80.94244) + (xy 91.375686 80.738931) + (xy 91.368612 80.724585) + (xy 91.284719 80.554469) + (xy 91.282165 80.54929) + (xy 91.155651 80.379867) + (xy 91.000381 80.236337) + (xy 90.821554 80.123505) + (xy 90.62516 80.045152) + (xy 90.619503 80.044027) + (xy 90.619497 80.044025) + (xy 90.423442 80.005028) + (xy 90.42344 80.005028) + (xy 90.417775 80.003901) + (xy 90.412001 80.003825) + (xy 90.411997 80.003825) + (xy 90.411631 80.003821) + (xy 90.411502 80.003819) + (xy 90.411277 80.00375) + (xy 90.406255 80.003222) + (xy 90.406359 80.002236) + (xy 90.343648 79.982929) + (xy 90.29786 79.92867) + (xy 90.288675 79.85827) + (xy 90.31901 79.794081) + (xy 90.324053 79.788735) + (xy 92.292034 77.820754) + (xy 96.888967 77.820754) + (xy 96.902796 78.031749) + (xy 96.904217 78.037345) + (xy 96.904218 78.03735) + (xy 96.926784 78.1262) + (xy 96.954845 78.23669) + (xy 97.043369 78.428714) + (xy 97.165405 78.601391) + (xy 97.169539 78.605418) + (xy 97.288097 78.720912) + (xy 97.316865 78.748937) + (xy 97.321661 78.752142) + (xy 97.321664 78.752144) + (xy 97.452201 78.839366) + (xy 97.492677 78.866411) + (xy 97.497985 78.868692) + (xy 97.497986 78.868692) + (xy 97.68165 78.9476) + (xy 97.681653 78.947601) + (xy 97.686953 78.949878) + (xy 97.692582 78.951152) + (xy 97.692583 78.951152) + (xy 97.88755 78.995269) + (xy 97.887553 78.995269) + (xy 97.893186 78.996544) + (xy 97.898957 78.996771) + (xy 97.898959 78.996771) + (xy 97.960989 78.999208) + (xy 98.10447 79.004846) + (xy 98.110179 79.004018) + (xy 98.110183 79.004018) + (xy 98.308015 78.975333) + (xy 98.308019 78.975332) + (xy 98.31373 78.974504) + (xy 98.392987 78.9476) + (xy 98.508483 78.908395) + (xy 98.508488 78.908393) + (xy 98.513955 78.906537) + (xy 98.518998 78.903713) + (xy 98.693395 78.806046) + (xy 98.693399 78.806043) + (xy 98.698442 78.803219) + (xy 98.861012 78.668012) + (xy 98.996219 78.505442) + (xy 98.999043 78.500399) + (xy 98.999046 78.500395) + (xy 99.096713 78.325998) + (xy 99.096714 78.325996) + (xy 99.099537 78.320955) + (xy 99.101393 78.315488) + (xy 99.101395 78.315483) + (xy 99.165647 78.1262) + (xy 99.167504 78.12073) + (xy 99.181242 78.025982) + (xy 99.18909 77.97186) + (xy 99.21866 77.907315) + (xy 99.278432 77.869003) + (xy 99.349429 77.869087) + (xy 99.409109 77.907542) + (xy 99.438525 77.972158) + (xy 99.439515 77.981695) + (xy 99.442796 78.031749) + (xy 99.444217 78.037345) + (xy 99.444218 78.03735) + (xy 99.466784 78.1262) + (xy 99.494845 78.23669) + (xy 99.583369 78.428714) + (xy 99.705405 78.601391) + (xy 99.709539 78.605418) + (xy 99.828097 78.720912) + (xy 99.856865 78.748937) + (xy 99.861661 78.752142) + (xy 99.861664 78.752144) + (xy 99.992201 78.839366) + (xy 100.032677 78.866411) + (xy 100.037985 78.868692) + (xy 100.037986 78.868692) + (xy 100.22165 78.9476) + (xy 100.221653 78.947601) + (xy 100.226953 78.949878) + (xy 100.232582 78.951152) + (xy 100.232583 78.951152) + (xy 100.42755 78.995269) + (xy 100.427553 78.995269) + (xy 100.433186 78.996544) + (xy 100.438957 78.996771) + (xy 100.438959 78.996771) + (xy 100.500989 78.999208) + (xy 100.64447 79.004846) + (xy 100.650179 79.004018) + (xy 100.650183 79.004018) + (xy 100.848015 78.975333) + (xy 100.848019 78.975332) + (xy 100.85373 78.974504) + (xy 100.932987 78.9476) + (xy 101.048483 78.908395) + (xy 101.048488 78.908393) + (xy 101.053955 78.906537) + (xy 101.058998 78.903713) + (xy 101.233395 78.806046) + (xy 101.233399 78.806043) + (xy 101.238442 78.803219) + (xy 101.401012 78.668012) + (xy 101.536219 78.505442) + (xy 101.539043 78.500399) + (xy 101.539046 78.500395) + (xy 101.636713 78.325998) + (xy 101.636714 78.325996) + (xy 101.639537 78.320955) + (xy 101.641393 78.315488) + (xy 101.641395 78.315483) + (xy 101.705647 78.1262) + (xy 101.707504 78.12073) + (xy 101.721242 78.025982) + (xy 101.72909 77.97186) + (xy 101.75866 77.907315) + (xy 101.818432 77.869003) + (xy 101.889429 77.869087) + (xy 101.949109 77.907542) + (xy 101.978525 77.972158) + (xy 101.979515 77.981695) + (xy 101.982796 78.031749) + (xy 101.984217 78.037345) + (xy 101.984218 78.03735) + (xy 102.006784 78.1262) + (xy 102.034845 78.23669) + (xy 102.123369 78.428714) + (xy 102.245405 78.601391) + (xy 102.249539 78.605418) + (xy 102.368097 78.720912) + (xy 102.396865 78.748937) + (xy 102.401661 78.752142) + (xy 102.401664 78.752144) + (xy 102.532201 78.839366) + (xy 102.572677 78.866411) + (xy 102.577985 78.868692) + (xy 102.577986 78.868692) + (xy 102.76165 78.9476) + (xy 102.761653 78.947601) + (xy 102.766953 78.949878) + (xy 102.772582 78.951152) + (xy 102.772583 78.951152) + (xy 102.96755 78.995269) + (xy 102.967553 78.995269) + (xy 102.973186 78.996544) + (xy 102.978957 78.996771) + (xy 102.978959 78.996771) + (xy 103.040989 78.999208) + (xy 103.18447 79.004846) + (xy 103.190179 79.004018) + (xy 103.190183 79.004018) + (xy 103.388015 78.975333) + (xy 103.388019 78.975332) + (xy 103.39373 78.974504) + (xy 103.472987 78.9476) + (xy 103.588483 78.908395) + (xy 103.588488 78.908393) + (xy 103.593955 78.906537) + (xy 103.598998 78.903713) + (xy 103.773395 78.806046) + (xy 103.773399 78.806043) + (xy 103.778442 78.803219) + (xy 103.941012 78.668012) + (xy 104.076219 78.505442) + (xy 104.079043 78.500399) + (xy 104.079046 78.500395) + (xy 104.176713 78.325998) + (xy 104.176714 78.325996) + (xy 104.179537 78.320955) + (xy 104.181393 78.315488) + (xy 104.181395 78.315483) + (xy 104.245647 78.1262) + (xy 104.247504 78.12073) + (xy 104.261242 78.025982) + (xy 104.26909 77.97186) + (xy 104.29866 77.907315) + (xy 104.358432 77.869003) + (xy 104.429429 77.869087) + (xy 104.489109 77.907542) + (xy 104.518525 77.972158) + (xy 104.519515 77.981695) + (xy 104.522796 78.031749) + (xy 104.524217 78.037345) + (xy 104.524218 78.03735) + (xy 104.546784 78.1262) + (xy 104.574845 78.23669) + (xy 104.663369 78.428714) + (xy 104.785405 78.601391) + (xy 104.789539 78.605418) + (xy 104.908097 78.720912) + (xy 104.936865 78.748937) + (xy 104.941661 78.752142) + (xy 104.941664 78.752144) + (xy 105.072201 78.839366) + (xy 105.112677 78.866411) + (xy 105.117985 78.868692) + (xy 105.117986 78.868692) + (xy 105.30165 78.9476) + (xy 105.301653 78.947601) + (xy 105.306953 78.949878) + (xy 105.312582 78.951152) + (xy 105.312583 78.951152) + (xy 105.50755 78.995269) + (xy 105.507553 78.995269) + (xy 105.513186 78.996544) + (xy 105.518957 78.996771) + (xy 105.518959 78.996771) + (xy 105.580989 78.999208) + (xy 105.72447 79.004846) + (xy 105.730179 79.004018) + (xy 105.730183 79.004018) + (xy 105.928015 78.975333) + (xy 105.928019 78.975332) + (xy 105.93373 78.974504) + (xy 106.012987 78.9476) + (xy 106.128483 78.908395) + (xy 106.128488 78.908393) + (xy 106.133955 78.906537) + (xy 106.138998 78.903713) + (xy 106.313395 78.806046) + (xy 106.313399 78.806043) + (xy 106.318442 78.803219) + (xy 106.481012 78.668012) + (xy 106.616219 78.505442) + (xy 106.619043 78.500399) + (xy 106.619046 78.500395) + (xy 106.716713 78.325998) + (xy 106.716714 78.325996) + (xy 106.719537 78.320955) + (xy 106.721393 78.315488) + (xy 106.721395 78.315483) + (xy 106.785647 78.1262) + (xy 106.787504 78.12073) + (xy 106.801243 78.025981) + (xy 106.817314 77.91514) + (xy 106.817314 77.915138) + (xy 106.817846 77.91147) + (xy 106.819429 77.851) + (xy 106.800081 77.64044) + (xy 106.798417 77.634538) + (xy 106.754591 77.479145) + (xy 106.742686 77.436931) + (xy 106.731553 77.414354) + (xy 106.651719 77.252469) + (xy 106.649165 77.24729) + (xy 106.522651 77.077867) + (xy 106.367381 76.934337) + (xy 106.188554 76.821505) + (xy 105.99216 76.743152) + (xy 105.986503 76.742027) + (xy 105.986497 76.742025) + (xy 105.790442 76.703028) + (xy 105.79044 76.703028) + (xy 105.784775 76.701901) + (xy 105.779 76.701825) + (xy 105.778996 76.701825) + (xy 105.672976 76.700437) + (xy 105.573346 76.699133) + (xy 105.567649 76.700112) + (xy 105.567648 76.700112) + (xy 105.37065 76.733962) + (xy 105.370649 76.733962) + (xy 105.364953 76.734941) + (xy 105.166575 76.808127) + (xy 105.161614 76.811079) + (xy 105.161613 76.811079) + (xy 105.144089 76.821505) + (xy 104.984856 76.916238) + (xy 104.825881 77.055655) + (xy 104.694976 77.221708) + (xy 104.692287 77.226819) + (xy 104.692285 77.226822) + (xy 104.678792 77.252469) + (xy 104.596523 77.408836) + (xy 104.53382 77.610773) + (xy 104.533141 77.61651) + (xy 104.519088 77.735239) + (xy 104.491217 77.800537) + (xy 104.432469 77.840401) + (xy 104.361494 77.842174) + (xy 104.300828 77.805295) + (xy 104.26973 77.741471) + (xy 104.26849 77.731958) + (xy 104.267352 77.719566) + (xy 104.260081 77.64044) + (xy 104.258417 77.634538) + (xy 104.214591 77.479145) + (xy 104.202686 77.436931) + (xy 104.191553 77.414354) + (xy 104.111719 77.252469) + (xy 104.109165 77.24729) + (xy 103.982651 77.077867) + (xy 103.827381 76.934337) + (xy 103.648554 76.821505) + (xy 103.45216 76.743152) + (xy 103.446503 76.742027) + (xy 103.446497 76.742025) + (xy 103.250442 76.703028) + (xy 103.25044 76.703028) + (xy 103.244775 76.701901) + (xy 103.239 76.701825) + (xy 103.238996 76.701825) + (xy 103.132976 76.700437) + (xy 103.033346 76.699133) + (xy 103.027649 76.700112) + (xy 103.027648 76.700112) + (xy 102.83065 76.733962) + (xy 102.830649 76.733962) + (xy 102.824953 76.734941) + (xy 102.626575 76.808127) + (xy 102.621614 76.811079) + (xy 102.621613 76.811079) + (xy 102.604089 76.821505) + (xy 102.444856 76.916238) + (xy 102.285881 77.055655) + (xy 102.154976 77.221708) + (xy 102.152287 77.226819) + (xy 102.152285 77.226822) + (xy 102.138792 77.252469) + (xy 102.056523 77.408836) + (xy 101.99382 77.610773) + (xy 101.993141 77.61651) + (xy 101.979088 77.735239) + (xy 101.951217 77.800537) + (xy 101.892469 77.840401) + (xy 101.821494 77.842174) + (xy 101.760828 77.805295) + (xy 101.72973 77.741471) + (xy 101.72849 77.731958) + (xy 101.727352 77.719566) + (xy 101.720081 77.64044) + (xy 101.718417 77.634538) + (xy 101.674591 77.479145) + (xy 101.662686 77.436931) + (xy 101.651553 77.414354) + (xy 101.571719 77.252469) + (xy 101.569165 77.24729) + (xy 101.442651 77.077867) + (xy 101.287381 76.934337) + (xy 101.108554 76.821505) + (xy 100.91216 76.743152) + (xy 100.906503 76.742027) + (xy 100.906497 76.742025) + (xy 100.710442 76.703028) + (xy 100.71044 76.703028) + (xy 100.704775 76.701901) + (xy 100.699 76.701825) + (xy 100.698996 76.701825) + (xy 100.592976 76.700437) + (xy 100.493346 76.699133) + (xy 100.487649 76.700112) + (xy 100.487648 76.700112) + (xy 100.29065 76.733962) + (xy 100.290649 76.733962) + (xy 100.284953 76.734941) + (xy 100.086575 76.808127) + (xy 100.081614 76.811079) + (xy 100.081613 76.811079) + (xy 100.064089 76.821505) + (xy 99.904856 76.916238) + (xy 99.745881 77.055655) + (xy 99.614976 77.221708) + (xy 99.612287 77.226819) + (xy 99.612285 77.226822) + (xy 99.598792 77.252469) + (xy 99.516523 77.408836) + (xy 99.45382 77.610773) + (xy 99.453141 77.61651) + (xy 99.439088 77.735239) + (xy 99.411217 77.800537) + (xy 99.352469 77.840401) + (xy 99.281494 77.842174) + (xy 99.220828 77.805295) + (xy 99.18973 77.741471) + (xy 99.18849 77.731958) + (xy 99.187352 77.719566) + (xy 99.180081 77.64044) + (xy 99.178417 77.634538) + (xy 99.134591 77.479145) + (xy 99.122686 77.436931) + (xy 99.111553 77.414354) + (xy 99.031719 77.252469) + (xy 99.029165 77.24729) + (xy 98.902651 77.077867) + (xy 98.747381 76.934337) + (xy 98.568554 76.821505) + (xy 98.37216 76.743152) + (xy 98.366503 76.742027) + (xy 98.366497 76.742025) + (xy 98.170442 76.703028) + (xy 98.17044 76.703028) + (xy 98.164775 76.701901) + (xy 98.159 76.701825) + (xy 98.158996 76.701825) + (xy 98.052976 76.700437) + (xy 97.953346 76.699133) + (xy 97.947649 76.700112) + (xy 97.947648 76.700112) + (xy 97.75065 76.733962) + (xy 97.750649 76.733962) + (xy 97.744953 76.734941) + (xy 97.546575 76.808127) + (xy 97.541614 76.811079) + (xy 97.541613 76.811079) + (xy 97.524089 76.821505) + (xy 97.364856 76.916238) + (xy 97.205881 77.055655) + (xy 97.074976 77.221708) + (xy 97.072287 77.226819) + (xy 97.072285 77.226822) + (xy 97.058792 77.252469) + (xy 96.976523 77.408836) + (xy 96.91382 77.610773) + (xy 96.888967 77.820754) + (xy 92.292034 77.820754) + (xy 94.041383 76.071405) + (xy 94.103695 76.037379) + (xy 94.130478 76.0345) + (xy 107.926521 76.0345) + (xy 107.994642 76.054502) + (xy 108.015616 76.071405) + (xy 110.445595 78.501384) + (xy 110.479621 78.563696) + (xy 110.4825 78.590479) + (xy 110.4825 79.319218) + (xy 110.48317 79.323768) + (xy 110.48317 79.323771) + (xy 110.490203 79.371542) + (xy 110.492642 79.388112) + (xy 110.496958 79.396902) + (xy 110.529163 79.462496) + (xy 110.544068 79.492855) + (xy 110.62665 79.575293) + (xy 110.731482 79.626536) + (xy 110.761973 79.630984) + (xy 110.795256 79.63584) + (xy 110.79526 79.63584) + (xy 110.799782 79.6365) + (xy 112.466218 79.6365) + (xy 112.470768 79.63583) + (xy 112.470771 79.63583) + (xy 112.525426 79.627784) + (xy 112.525427 79.627784) + (xy 112.535112 79.626358) + (xy 112.585008 79.60186) + (xy 112.630507 79.579522) + (xy 112.630509 79.579521) + (xy 112.639855 79.574932) + (xy 112.688783 79.525918) + (xy 112.751065 79.491839) + (xy 112.821885 79.496842) + (xy 112.867051 79.52584) + (xy 113.293973 79.952761) + (xy 113.327998 80.015074) + (xy 113.330608 80.033617) + (xy 113.331796 80.051749) + (xy 113.333217 80.057345) + (xy 113.333218 80.05735) + (xy 113.382424 80.251095) + (xy 113.383845 80.25669) + (xy 113.472369 80.448714) + (xy 113.594405 80.621391) + (xy 113.598539 80.625418) + (xy 113.709744 80.733749) + (xy 113.745865 80.768937) + (xy 113.750661 80.772142) + (xy 113.750664 80.772144) + (xy 113.855108 80.841931) + (xy 113.921677 80.886411) + (xy 113.926985 80.888692) + (xy 113.926986 80.888692) + (xy 114.11065 80.9676) + (xy 114.110653 80.967601) + (xy 114.115953 80.969878) + (xy 114.121582 80.971152) + (xy 114.121583 80.971152) + (xy 114.31655 81.015269) + (xy 114.316553 81.015269) + (xy 114.322186 81.016544) + (xy 114.327957 81.016771) + (xy 114.327959 81.016771) + (xy 114.370307 81.018435) + (xy 114.437589 81.041097) + (xy 114.454454 81.055243) + (xy 114.675915 81.276704) + (xy 114.709941 81.339016) + (xy 114.704876 81.409831) + (xy 114.662329 81.466667) + (xy 114.595809 81.491478) + (xy 114.585171 81.491788) + (xy 114.478481 81.490392) + (xy 114.382346 81.489133) + (xy 114.376649 81.490112) + (xy 114.376648 81.490112) + (xy 114.17965 81.523962) + (xy 114.179649 81.523962) + (xy 114.173953 81.524941) + (xy 113.975575 81.598127) + (xy 113.970614 81.601079) + (xy 113.970613 81.601079) + (xy 113.806414 81.698767) + (xy 113.793856 81.706238) + (xy 113.634881 81.845655) + (xy 113.503976 82.011708) + (xy 113.501287 82.016819) + (xy 113.501285 82.016822) + (xy 113.481649 82.054144) + (xy 113.405523 82.198836) + (xy 113.34282 82.400773) + (xy 113.317967 82.610754) + (xy 113.331796 82.821749) + (xy 113.333217 82.827345) + (xy 113.333218 82.82735) + (xy 113.356823 82.920292) + (xy 113.383845 83.02669) + (xy 113.472369 83.218714) + (xy 113.594405 83.391391) + (xy 113.745865 83.538937) + (xy 113.750661 83.542142) + (xy 113.750664 83.542144) + (xy 113.855108 83.611931) + (xy 113.921677 83.656411) + (xy 113.926985 83.658692) + (xy 113.926986 83.658692) + (xy 114.11065 83.7376) + (xy 114.110653 83.737601) + (xy 114.115953 83.739878) + (xy 114.121582 83.741152) + (xy 114.121583 83.741152) + (xy 114.31655 83.785269) + (xy 114.316553 83.785269) + (xy 114.322186 83.786544) + (xy 114.327957 83.786771) + (xy 114.327959 83.786771) + (xy 114.389989 83.789208) + (xy 114.53347 83.794846) + (xy 114.539179 83.794018) + (xy 114.539183 83.794018) + (xy 114.737015 83.765333) + (xy 114.737019 83.765332) + (xy 114.74273 83.764504) + (xy 114.821987 83.7376) + (xy 114.937483 83.698395) + (xy 114.937488 83.698393) + (xy 114.942955 83.696537) + (xy 114.947998 83.693713) + (xy 115.122395 83.596046) + (xy 115.122399 83.596043) + (xy 115.127442 83.593219) + (xy 115.290012 83.458012) + (xy 115.425219 83.295442) + (xy 115.428043 83.290399) + (xy 115.428046 83.290395) + (xy 115.525713 83.115998) + (xy 115.525714 83.115996) + (xy 115.528537 83.110955) + (xy 115.530393 83.105488) + (xy 115.530395 83.105483) + (xy 115.593258 82.920292) + (xy 115.596504 82.91073) + (xy 115.601669 82.875112) + (xy 115.626314 82.70514) + (xy 115.626314 82.705138) + (xy 115.626846 82.70147) + (xy 115.628429 82.641) + (xy 115.618655 82.534634) + (xy 115.632339 82.464969) + (xy 115.681516 82.413762) + (xy 115.75057 82.39727) + (xy 115.817579 82.42073) + (xy 115.833221 82.43401) + (xy 115.952595 82.553384) + (xy 115.986621 82.615696) + (xy 115.9895 82.642479) + (xy 115.9895 97.131521) + (xy 115.969498 97.199642) + (xy 115.9526 97.220611) + (xy 115.000616 98.172596) + (xy 114.938305 98.20662) + (xy 114.911522 98.2095) + (xy 113.221479 98.2095) + (xy 113.153358 98.189498) + (xy 113.132384 98.172595) + (xy 112.815845 97.856056) + (xy 112.781819 97.793744) + (xy 112.779469 97.77849) + (xy 112.76961 97.671197) + (xy 112.769081 97.66544) + (xy 112.76304 97.644018) + (xy 112.736071 97.548395) + (xy 112.711686 97.461931) + (xy 112.708541 97.455552) + (xy 112.620719 97.277469) + (xy 112.618165 97.27229) + (xy 112.521912 97.143391) + (xy 112.495104 97.107491) + (xy 112.495103 97.10749) + (xy 112.491651 97.102867) + (xy 112.390495 97.009359) + (xy 112.340622 96.963257) + (xy 112.34062 96.963255) + (xy 112.336381 96.959337) + (xy 112.331498 96.956256) + (xy 112.162434 96.849584) + (xy 112.162433 96.849584) + (xy 112.157554 96.846505) + (xy 111.96116 96.768152) + (xy 111.955503 96.767027) + (xy 111.955497 96.767025) + (xy 111.759442 96.728028) + (xy 111.75944 96.728028) + (xy 111.753775 96.726901) + (xy 111.748 96.726825) + (xy 111.747996 96.726825) + (xy 111.641976 96.725437) + (xy 111.542346 96.724133) + (xy 111.536649 96.725112) + (xy 111.536648 96.725112) + (xy 111.33965 96.758962) + (xy 111.339649 96.758962) + (xy 111.333953 96.759941) + (xy 111.135575 96.833127) + (xy 111.130614 96.836079) + (xy 111.130613 96.836079) + (xy 111.113089 96.846505) + (xy 110.953856 96.941238) + (xy 110.794881 97.080655) + (xy 110.663976 97.246708) + (xy 110.661287 97.251819) + (xy 110.661285 97.251822) + (xy 110.638822 97.294518) + (xy 110.565523 97.433836) + (xy 110.530503 97.546619) + (xy 110.505697 97.626509) + (xy 110.50282 97.635773) + (xy 110.477967 97.845754) + (xy 110.491796 98.056749) + (xy 110.493217 98.062345) + (xy 110.493218 98.06235) + (xy 110.521217 98.172595) + (xy 110.543845 98.26169) + (xy 110.632369 98.453714) + (xy 110.754405 98.626391) + (xy 110.905865 98.773937) + (xy 110.910661 98.777142) + (xy 110.910664 98.777144) + (xy 111.053936 98.872875) + (xy 111.081677 98.891411) + (xy 111.086985 98.893692) + (xy 111.086986 98.893692) + (xy 111.27065 98.9726) + (xy 111.270653 98.972601) + (xy 111.275953 98.974878) + (xy 111.281582 98.976152) + (xy 111.281583 98.976152) + (xy 111.47655 99.020269) + (xy 111.476553 99.020269) + (xy 111.482186 99.021544) + (xy 111.487957 99.021771) + (xy 111.487959 99.021771) + (xy 111.530306 99.023435) + (xy 111.597589 99.046097) + (xy 111.614453 99.060242) + (xy 112.186568 99.632356) + (xy 112.193711 99.640124) + (xy 112.22702 99.67954) + (xy 112.232444 99.683687) + (xy 112.232445 99.683688) + (xy 112.290929 99.728402) + (xy 112.293345 99.730295) + (xy 112.298365 99.734332) + (xy 112.350753 99.776454) + (xy 112.350756 99.776456) + (xy 112.356073 99.780731) + (xy 112.36219 99.783768) + (xy 112.364802 99.785438) + (xy 112.365196 99.785714) + (xy 112.36532 99.785791) + (xy 112.365742 99.786023) + (xy 112.368395 99.78763) + (xy 112.37382 99.791777) + (xy 112.44284 99.823961) + (xy 112.44673 99.825775) + (xy 112.449505 99.82711) + (xy 112.51548 99.859861) + (xy 112.515484 99.859863) + (xy 112.521593 99.862895) + (xy 112.528218 99.864547) + (xy 112.531121 99.865615) + (xy 112.531573 99.865803) + (xy 112.531708 99.865851) + (xy 112.532167 99.865986) + (xy 112.535108 99.866987) + (xy 112.541297 99.869873) + (xy 112.54796 99.871362) + (xy 112.547959 99.871362) + (xy 112.619831 99.887427) + (xy 112.622828 99.888136) + (xy 112.688938 99.904619) + (xy 112.700894 99.9076) + (xy 112.707714 99.90779) + (xy 112.710792 99.908212) + (xy 112.711709 99.908377) + (xy 112.716585 99.909054) + (xy 112.721637 99.910183) + (xy 112.727307 99.9105) + (xy 112.802964 99.9105) + (xy 112.806483 99.910549) + (xy 112.885611 99.912759) + (xy 112.892317 99.91148) + (xy 112.899114 99.910933) + (xy 112.899157 99.911462) + (xy 112.909363 99.9105) + (xy 115.274938 99.9105) + (xy 115.285479 99.910942) + (xy 115.336902 99.91526) + (xy 115.343662 99.914358) + (xy 115.343666 99.914358) + (xy 115.416659 99.904619) + (xy 115.419713 99.904249) + (xy 115.492928 99.896295) + (xy 115.492931 99.896294) + (xy 115.499709 99.895558) + (xy 115.506169 99.893384) + (xy 115.509217 99.892714) + (xy 115.509678 99.892633) + (xy 115.509829 99.892597) + (xy 115.510288 99.892464) + (xy 115.513307 99.891722) + (xy 115.520069 99.89082) + (xy 115.526479 99.888487) + (xy 115.526483 99.888486) + (xy 115.595671 99.863303) + (xy 115.598577 99.862285) + (xy 115.668377 99.838795) + (xy 115.668379 99.838794) + (xy 115.674848 99.836617) + (xy 115.680702 99.8331) + (xy 115.683514 99.8318) + (xy 115.683957 99.831618) + (xy 115.684116 99.831542) + (xy 115.684534 99.831314) + (xy 115.687303 99.829951) + (xy 115.693715 99.827618) + (xy 115.699473 99.823964) + (xy 115.699479 99.823961) + (xy 115.761644 99.78451) + (xy 115.764263 99.782892) + (xy 115.827393 99.744959) + (xy 115.827395 99.744958) + (xy 115.833244 99.741443) + (xy 115.838203 99.736754) + (xy 115.840682 99.734872) + (xy 115.841459 99.734332) + (xy 115.845369 99.731375) + (xy 115.849738 99.728602) + (xy 115.853972 99.724817) + (xy 115.907478 99.671311) + (xy 115.91 99.668858) + (xy 115.962549 99.619165) + (xy 115.962551 99.619163) + (xy 115.967507 99.614476) + (xy 115.971341 99.608834) + (xy 115.975767 99.603634) + (xy 115.976171 99.603978) + (xy 115.982707 99.596082) + (xy 117.412356 98.166433) + (xy 117.420123 98.15929) + (xy 117.454327 98.130385) + (xy 117.45954 98.12598) + (xy 117.508426 98.06204) + (xy 117.510317 98.059629) + (xy 117.556455 98.002246) + (xy 117.556461 98.002236) + (xy 117.56073 97.996927) + (xy 117.56376 97.990823) + (xy 117.565431 97.98821) + (xy 117.565701 97.987824) + (xy 117.565802 97.987661) + (xy 117.566022 97.987262) + (xy 117.567639 97.984592) + (xy 117.571777 97.97918) + (xy 117.574658 97.973003) + (xy 117.574661 97.972997) + (xy 117.605787 97.906248) + (xy 117.607121 97.903475) + (xy 117.639863 97.837516) + (xy 117.642895 97.831408) + (xy 117.644545 97.824792) + (xy 117.645618 97.821874) + (xy 117.645796 97.821447) + (xy 117.645858 97.82127) + (xy 117.645992 97.820815) + (xy 117.646988 97.817889) + (xy 117.649873 97.811703) + (xy 117.667435 97.733132) + (xy 117.668141 97.73015) + (xy 117.685948 97.658731) + (xy 117.685949 97.658726) + (xy 117.687599 97.652107) + (xy 117.687789 97.645288) + (xy 117.688211 97.64221) + (xy 117.68838 97.641271) + (xy 117.689054 97.636415) + (xy 117.690183 97.631363) + (xy 117.6905 97.625693) + (xy 117.6905 97.550001) + (xy 117.690549 97.546483) + (xy 117.690911 97.533536) + (xy 117.692758 97.467389) + (xy 117.691479 97.460683) + (xy 117.690932 97.453886) + (xy 117.691466 97.453843) + (xy 117.6905 97.443643) + (xy 117.6905 82.279062) + (xy 117.690942 82.268518) + (xy 117.694689 82.223895) + (xy 117.69526 82.217098) + (xy 117.694118 82.208537) + (xy 117.684619 82.137341) + (xy 117.684249 82.134287) + (xy 117.676295 82.061072) + (xy 117.676294 82.061069) + (xy 117.675558 82.054291) + (xy 117.673384 82.047831) + (xy 117.672714 82.044783) + (xy 117.672631 82.044315) + (xy 117.672597 82.044166) + (xy 117.672463 82.043707) + (xy 117.671722 82.04069) + (xy 117.67082 82.033931) + (xy 117.668489 82.027527) + (xy 117.668487 82.027518) + (xy 117.64329 81.958289) + (xy 117.642272 81.955384) + (xy 117.618793 81.885617) + (xy 117.618792 81.885615) + (xy 117.616617 81.879152) + (xy 117.613104 81.873306) + (xy 117.611802 81.870487) + (xy 117.61162 81.870045) + (xy 117.611551 81.869901) + (xy 117.611324 81.869485) + (xy 117.609955 81.866702) + (xy 117.607619 81.860285) + (xy 117.60121 81.850185) + (xy 117.564495 81.792333) + (xy 117.562877 81.789713) + (xy 117.524959 81.726608) + (xy 117.521443 81.720756) + (xy 117.51675 81.715793) + (xy 117.514872 81.713319) + (xy 117.514335 81.712546) + (xy 117.511378 81.708636) + (xy 117.508602 81.704262) + (xy 117.504817 81.700029) + (xy 117.451328 81.64654) + (xy 117.448875 81.644018) + (xy 117.399165 81.591451) + (xy 117.399163 81.591449) + (xy 117.394476 81.586493) + (xy 117.388835 81.582659) + (xy 117.383634 81.578233) + (xy 117.383978 81.577828) + (xy 117.376079 81.571291) + (xy 115.655845 79.851057) + (xy 115.621819 79.788745) + (xy 115.619469 79.773491) + (xy 115.60961 79.666197) + (xy 115.609081 79.66044) + (xy 115.551686 79.456931) + (xy 115.532834 79.418702) + (xy 115.460719 79.272469) + (xy 115.458165 79.26729) + (xy 115.331651 79.097867) + (xy 115.220661 78.995269) + (xy 115.180622 78.958257) + (xy 115.18062 78.958255) + (xy 115.176381 78.954337) + (xy 115.040643 78.868692) + (xy 115.002434 78.844584) + (xy 115.002433 78.844584) + (xy 114.997554 78.841505) + (xy 114.80116 78.763152) + (xy 114.795503 78.762027) + (xy 114.795497 78.762025) + (xy 114.599442 78.723028) + (xy 114.59944 78.723028) + (xy 114.593775 78.721901) + (xy 114.588 78.721825) + (xy 114.587996 78.721825) + (xy 114.518251 78.720912) + (xy 114.450398 78.70002) + (xy 114.430806 78.684018) + (xy 113.660438 77.91365) + (xy 113.653295 77.905883) + (xy 113.624386 77.871674) + (xy 113.61998 77.86646) + (xy 113.556062 77.817591) + (xy 113.553647 77.815698) + (xy 113.496247 77.769546) + (xy 113.496244 77.769544) + (xy 113.490927 77.765269) + (xy 113.48481 77.762232) + (xy 113.482198 77.760562) + (xy 113.481804 77.760286) + (xy 113.48168 77.760209) + (xy 113.481258 77.759977) + (xy 113.478605 77.75837) + (xy 113.47318 77.754223) + (xy 113.400262 77.720221) + (xy 113.397495 77.71889) + (xy 113.33152 77.686139) + (xy 113.331516 77.686137) + (xy 113.325407 77.683105) + (xy 113.318782 77.681453) + (xy 113.315879 77.680385) + (xy 113.315427 77.680197) + (xy 113.315292 77.680149) + (xy 113.314833 77.680014) + (xy 113.311892 77.679013) + (xy 113.305703 77.676127) + (xy 113.283246 77.671107) + (xy 113.227169 77.658573) + (xy 113.224172 77.657864) + (xy 113.152728 77.640051) + (xy 113.152727 77.640051) + (xy 113.146106 77.6384) + (xy 113.139286 77.63821) + (xy 113.136208 77.637788) + (xy 113.135291 77.637623) + (xy 113.130415 77.636946) + (xy 113.125363 77.635817) + (xy 113.119693 77.6355) + (xy 113.044036 77.6355) + (xy 113.040518 77.635451) + (xy 113.038788 77.635403) + (xy 112.961389 77.633241) + (xy 112.954683 77.63452) + (xy 112.947886 77.635067) + (xy 112.947843 77.634538) + (xy 112.937637 77.6355) + (xy 112.877203 77.6355) + (xy 112.809082 77.615498) + (xy 112.7641 77.565031) + (xy 112.726522 77.488493) + (xy 112.726521 77.488491) + (xy 112.721932 77.479145) + (xy 112.63935 77.396707) + (xy 112.534518 77.345464) + (xy 112.504027 77.341016) + (xy 112.470744 77.33616) + (xy 112.47074 77.33616) + (xy 112.466218 77.3355) + (xy 111.737479 77.3355) + (xy 111.669358 77.315498) + (xy 111.648384 77.298595) + (xy 108.961438 74.61165) + (xy 108.954295 74.603883) + (xy 108.925386 74.569674) + (xy 108.92098 74.56446) + (xy 108.857062 74.515591) + (xy 108.854647 74.513698) + (xy 108.849766 74.509773) + (xy 108.836418 74.499041) + (xy 108.797247 74.467546) + (xy 108.797244 74.467544) + (xy 108.791927 74.463269) + (xy 108.78581 74.460232) + (xy 108.783198 74.458562) + (xy 108.782804 74.458286) + (xy 108.78268 74.458209) + (xy 108.782258 74.457977) + (xy 108.779605 74.45637) + (xy 108.77418 74.452223) + (xy 108.701262 74.418221) + (xy 108.698495 74.41689) + (xy 108.63252 74.384139) + (xy 108.632516 74.384137) + (xy 108.626407 74.381105) + (xy 108.619782 74.379453) + (xy 108.616879 74.378385) + (xy 108.616427 74.378197) + (xy 108.616292 74.378149) + (xy 108.615833 74.378014) + (xy 108.612892 74.377013) + (xy 108.606703 74.374127) + (xy 108.584246 74.369107) + (xy 108.528169 74.356573) + (xy 108.525172 74.355864) + (xy 108.453728 74.338051) + (xy 108.453727 74.338051) + (xy 108.447106 74.3364) + (xy 108.440286 74.33621) + (xy 108.437208 74.335788) + (xy 108.436291 74.335623) + (xy 108.431415 74.334946) + (xy 108.426363 74.333817) + (xy 108.420693 74.3335) + (xy 108.345036 74.3335) + (xy 108.341518 74.333451) + (xy 108.339788 74.333403) + (xy 108.262389 74.331241) + (xy 108.255683 74.33252) + (xy 108.248886 74.333067) + (xy 108.248843 74.332538) + (xy 108.238637 74.3335) + (xy 93.767062 74.3335) + (xy 93.756521 74.333058) + (xy 93.705098 74.32874) + (xy 93.698338 74.329642) + (xy 93.698334 74.329642) + (xy 93.625341 74.339381) + (xy 93.622287 74.339751) + (xy 93.549072 74.347705) + (xy 93.549069 74.347706) + (xy 93.542291 74.348442) + (xy 93.535831 74.350616) + (xy 93.532783 74.351286) + (xy 93.532322 74.351367) + (xy 93.532171 74.351403) + (xy 93.531712 74.351536) + (xy 93.528693 74.352278) + (xy 93.521931 74.35318) + (xy 93.515521 74.355513) + (xy 93.515517 74.355514) + (xy 93.446329 74.380697) + (xy 93.443423 74.381715) + (xy 93.373623 74.405205) + (xy 93.373621 74.405206) + (xy 93.367152 74.407383) + (xy 93.361298 74.4109) + (xy 93.358486 74.4122) + (xy 93.358043 74.412382) + (xy 93.357884 74.412458) + (xy 93.357466 74.412686) + (xy 93.354697 74.414049) + (xy 93.348285 74.416382) + (xy 93.342527 74.420036) + (xy 93.342521 74.420039) + (xy 93.280356 74.45949) + (xy 93.277737 74.461108) + (xy 93.214607 74.499041) + (xy 93.214605 74.499042) + (xy 93.208756 74.502557) + (xy 93.203797 74.507246) + (xy 93.201318 74.509128) + (xy 93.200541 74.509668) + (xy 93.196631 74.512625) + (xy 93.192262 74.515398) + (xy 93.188028 74.519183) + (xy 93.134522 74.572689) + (xy 93.132 74.575142) + (xy 93.074493 74.629524) + (xy 93.070659 74.635166) + (xy 93.066233 74.640366) + (xy 93.065829 74.640022) + (xy 93.059293 74.647918) + (xy 87.741766 79.965445) + (xy 87.679454 79.999471) + (xy 87.66803 80.001155) + (xy 87.666346 80.001133) + (xy 87.660649 80.002112) + (xy 87.660648 80.002112) + (xy 87.46365 80.035962) + (xy 87.463649 80.035962) + (xy 87.457953 80.036941) + (xy 87.259575 80.110127) + (xy 87.254614 80.113079) + (xy 87.254613 80.113079) + (xy 87.206099 80.141942) + (xy 87.077856 80.218238) + (xy 86.918881 80.357655) + (xy 86.787976 80.523708) + (xy 86.785287 80.528819) + (xy 86.785285 80.528822) + (xy 86.771792 80.554469) + (xy 86.689523 80.710836) + (xy 86.62682 80.912773) + (xy 86.626141 80.91851) + (xy 86.612088 81.037239) + (xy 86.584217 81.102537) + (xy 86.525469 81.142401) + (xy 86.454494 81.144174) + (xy 86.393828 81.107295) + (xy 86.36273 81.043471) + (xy 86.36149 81.033958) + (xy 86.360347 81.02151) + (xy 86.353081 80.94244) + (xy 86.295686 80.738931) + (xy 86.288612 80.724585) + (xy 86.204719 80.554469) + (xy 86.202165 80.54929) + (xy 86.075651 80.379867) + (xy 85.920381 80.236337) + (xy 85.741554 80.123505) + (xy 85.54516 80.045152) + (xy 85.539503 80.044027) + (xy 85.539497 80.044025) + (xy 85.343442 80.005028) + (xy 85.34344 80.005028) + (xy 85.337775 80.003901) + (xy 85.332 80.003825) + (xy 85.331996 80.003825) + (xy 85.225976 80.002437) + (xy 85.126346 80.001133) + (xy 85.120649 80.002112) + (xy 85.120648 80.002112) + (xy 84.92365 80.035962) + (xy 84.923649 80.035962) + (xy 84.917953 80.036941) + (xy 84.719575 80.110127) + (xy 84.714614 80.113079) + (xy 84.714613 80.113079) + (xy 84.666099 80.141942) + (xy 84.537856 80.218238) + (xy 84.378881 80.357655) + (xy 84.247976 80.523708) + (xy 84.245287 80.528819) + (xy 84.245285 80.528822) + (xy 84.152211 80.705726) + (xy 84.152209 80.705731) + (xy 84.149523 80.710836) + (xy 84.147811 80.716349) + (xy 84.147788 80.716405) + (xy 84.10324 80.771686) + (xy 84.035876 80.794106) + (xy 83.967085 80.776547) + (xy 83.918707 80.724585) + (xy 83.912979 80.71128) + (xy 83.908491 80.69895) + (xy 83.816414 80.501489) + (xy 83.810931 80.491993) + (xy 83.685972 80.313533) + (xy 83.678916 80.305125) + (xy 83.524875 80.151084) + (xy 83.516467 80.144028) + (xy 83.338007 80.019069) + (xy 83.328511 80.013586) + (xy 83.131053 79.92151) + (xy 83.120761 79.917764) + (xy 82.948497 79.871606) + (xy 82.934401 79.871942) + (xy 82.931 79.879884) + (xy 82.931 82.420967) + (xy 82.423 82.420967) + (xy 82.423 79.885033) + (xy 82.419027 79.871502) + (xy 82.410478 79.870273) + (xy 82.233239 79.917764) + (xy 82.222947 79.92151) + (xy 82.025489 80.013586) + (xy 82.015993 80.019069) + (xy 81.837533 80.144028) + (xy 81.829125 80.151084) + (xy 81.675084 80.305125) + (xy 81.668028 80.313533) + (xy 81.543069 80.491993) + (xy 81.537586 80.501489) + (xy 81.44551 80.698947) + (xy 81.440455 80.712836) + (xy 81.398361 80.770007) + (xy 81.332039 80.795345) + (xy 81.262548 80.780804) + (xy 81.209048 80.72547) + (xy 81.124719 80.554469) + (xy 81.122165 80.54929) + (xy 80.995651 80.379867) + (xy 80.840381 80.236337) + (xy 80.661554 80.123505) + (xy 80.46516 80.045152) + (xy 80.459503 80.044027) + (xy 80.459497 80.044025) + (xy 80.263442 80.005028) + (xy 80.26344 80.005028) + (xy 80.257775 80.003901) + (xy 80.252 80.003825) + (xy 80.251996 80.003825) + (xy 80.145976 80.002437) + (xy 80.046346 80.001133) + (xy 80.040649 80.002112) + (xy 80.040648 80.002112) + (xy 79.84365 80.035962) + (xy 79.843649 80.035962) + (xy 79.837953 80.036941) + (xy 79.639575 80.110127) + (xy 79.634614 80.113079) + (xy 79.634613 80.113079) + (xy 79.586099 80.141942) + (xy 79.457856 80.218238) + (xy 79.298881 80.357655) + (xy 79.167976 80.523708) + (xy 79.165287 80.528819) + (xy 79.165285 80.528822) + (xy 79.151792 80.554469) + (xy 79.069523 80.710836) + (xy 79.00682 80.912773) + (xy 78.981967 81.122754) + (xy 77.0895 81.122754) + (xy 77.0895 79.585064) + (xy 77.109502 79.516943) + (xy 77.148366 79.478439) + (xy 77.173688 79.462496) + (xy 86.680085 73.476987) + (xy 111.471721 73.476987) + (xy 111.480548 73.488605) + (xy 111.703281 73.65043) + (xy 111.709961 73.65467) + (xy 111.979572 73.80289) + (xy 111.986707 73.806247) + (xy 112.27277 73.919508) + (xy 112.280296 73.921953) + (xy 112.578279 73.998462) + (xy 112.58605 73.999945) + (xy 112.891278 74.038503) + (xy 112.899169 74.039) + (xy 113.206831 74.039) + (xy 113.214722 74.038503) + (xy 113.51995 73.999945) + (xy 113.527721 73.998462) + (xy 113.825704 73.921953) + (xy 113.83323 73.919508) + (xy 114.119293 73.806247) + (xy 114.126428 73.80289) + (xy 114.396039 73.65467) + (xy 114.402719 73.65043) + (xy 114.625823 73.488336) + (xy 114.634246 73.477413) + (xy 114.627342 73.464552) + (xy 113.065812 71.903022) + (xy 113.051868 71.895408) + (xy 113.050035 71.895539) + (xy 113.04342 71.89979) + (xy 111.478334 73.464876) + (xy 111.471721 73.476987) + (xy 86.680085 73.476987) + (xy 91.412177 70.497522) + (xy 96.761273 70.497522) + (xy 96.808764 70.674761) + (xy 96.81251 70.685053) + (xy 96.904586 70.882511) + (xy 96.910069 70.892007) + (xy 97.035028 71.070467) + (xy 97.042084 71.078875) + (xy 97.196125 71.232916) + (xy 97.204533 71.239972) + (xy 97.382993 71.364931) + (xy 97.392489 71.370414) + (xy 97.589947 71.46249) + (xy 97.600239 71.466236) + (xy 97.772503 71.512394) + (xy 97.786599 71.512058) + (xy 97.79 71.504116) + (xy 97.79 71.498967) + (xy 98.298 71.498967) + (xy 98.301973 71.512498) + (xy 98.310522 71.513727) + (xy 98.487761 71.466236) + (xy 98.498053 71.46249) + (xy 98.695511 71.370414) + (xy 98.705007 71.364931) + (xy 98.883467 71.239972) + (xy 98.891875 71.232916) + (xy 99.045916 71.078875) + (xy 99.052972 71.070467) + (xy 99.177931 70.892007) + (xy 99.183414 70.882511) + (xy 99.199805 70.847359) + (xy 99.246722 70.794074) + (xy 99.314999 70.774613) + (xy 99.382959 70.795155) + (xy 99.428195 70.847359) + (xy 99.444586 70.882511) + (xy 99.450069 70.892007) + (xy 99.575028 71.070467) + (xy 99.582084 71.078875) + (xy 99.736125 71.232916) + (xy 99.744533 71.239972) + (xy 99.922993 71.364931) + (xy 99.932489 71.370414) + (xy 100.129947 71.46249) + (xy 100.140239 71.466236) + (xy 100.312503 71.512394) + (xy 100.326599 71.512058) + (xy 100.33 71.504116) + (xy 100.33 71.498967) + (xy 100.838 71.498967) + (xy 100.841973 71.512498) + (xy 100.850522 71.513727) + (xy 101.027761 71.466236) + (xy 101.038053 71.46249) + (xy 101.235511 71.370414) + (xy 101.245007 71.364931) + (xy 101.423467 71.239972) + (xy 101.431875 71.232916) + (xy 101.585916 71.078875) + (xy 101.592972 71.070467) + (xy 101.717931 70.892007) + (xy 101.723414 70.882511) + (xy 101.739805 70.847359) + (xy 101.786722 70.794074) + (xy 101.854999 70.774613) + (xy 101.922959 70.795155) + (xy 101.968195 70.847359) + (xy 101.984586 70.882511) + (xy 101.990069 70.892007) + (xy 102.115028 71.070467) + (xy 102.122084 71.078875) + (xy 102.276125 71.232916) + (xy 102.284533 71.239972) + (xy 102.462993 71.364931) + (xy 102.472489 71.370414) + (xy 102.669947 71.46249) + (xy 102.680239 71.466236) + (xy 102.852503 71.512394) + (xy 102.866599 71.512058) + (xy 102.87 71.504116) + (xy 102.87 71.498967) + (xy 103.378 71.498967) + (xy 103.381973 71.512498) + (xy 103.390522 71.513727) + (xy 103.567761 71.466236) + (xy 103.578053 71.46249) + (xy 103.775511 71.370414) + (xy 103.785007 71.364931) + (xy 103.963467 71.239972) + (xy 103.971875 71.232916) + (xy 104.125916 71.078875) + (xy 104.136507 71.066254) + (xy 104.137357 71.066968) + (xy 104.188422 71.026152) + (xy 104.259041 71.018844) + (xy 104.322401 71.050877) + (xy 104.358385 71.112079) + (xy 104.361438 71.129145) + (xy 104.361895 71.133353) + (xy 104.365521 71.148604) + (xy 104.410676 71.269054) + (xy 104.419214 71.284649) + (xy 104.495715 71.386724) + (xy 104.508276 71.399285) + (xy 104.610351 71.475786) + (xy 104.625946 71.484324) + (xy 104.746394 71.529478) + (xy 104.761649 71.533105) + (xy 104.812514 71.538631) + (xy 104.819328 71.539) + (xy 105.391885 71.539) + (xy 105.407124 71.534525) + (xy 105.408329 71.533135) + (xy 105.41 71.525452) + (xy 105.41 71.520884) + (xy 105.918 71.520884) + (xy 105.922475 71.536123) + (xy 105.923865 71.537328) + (xy 105.931548 71.538999) + (xy 106.508669 71.538999) + (xy 106.51549 71.538629) + (xy 106.549291 71.534958) + (xy 110.54029 71.534958) + (xy 110.559607 71.841994) + (xy 110.5606 71.849855) + (xy 110.618246 72.152046) + (xy 110.620217 72.159723) + (xy 110.715284 72.452309) + (xy 110.718199 72.459672) + (xy 110.849189 72.738041) + (xy 110.853001 72.744974) + (xy 111.017851 73.004736) + (xy 111.022495 73.011129) + (xy 111.097497 73.10179) + (xy 111.110014 73.110245) + (xy 111.120752 73.104038) + (xy 112.680978 71.543812) + (xy 112.687356 71.532132) + (xy 113.417408 71.532132) + (xy 113.417539 71.533965) + (xy 113.42179 71.54058) + (xy 114.984145 73.102935) + (xy 114.997407 73.110177) + (xy 115.007512 73.102988) + (xy 115.083505 73.011129) + (xy 115.088149 73.004736) + (xy 115.252999 72.744974) + (xy 115.256811 72.738041) + (xy 115.387801 72.459672) + (xy 115.390716 72.452309) + (xy 115.485783 72.159723) + (xy 115.487754 72.152046) + (xy 115.5454 71.849855) + (xy 115.546393 71.841994) + (xy 115.56571 71.534958) + (xy 115.56571 71.527042) + (xy 115.546393 71.220006) + (xy 115.5454 71.212145) + (xy 115.487754 70.909954) + (xy 115.485783 70.902277) + (xy 115.390716 70.609691) + (xy 115.387801 70.602328) + (xy 115.256811 70.323959) + (xy 115.252999 70.317026) + (xy 115.088149 70.057264) + (xy 115.083505 70.050871) + (xy 115.008503 69.96021) + (xy 114.995986 69.951755) + (xy 114.985248 69.957962) + (xy 113.425022 71.518188) + (xy 113.417408 71.532132) + (xy 112.687356 71.532132) + (xy 112.688592 71.529868) + (xy 112.688461 71.528035) + (xy 112.68421 71.52142) + (xy 111.121855 69.959065) + (xy 111.108593 69.951823) + (xy 111.098488 69.959012) + (xy 111.022495 70.050871) + (xy 111.017851 70.057264) + (xy 110.853001 70.317026) + (xy 110.849189 70.323959) + (xy 110.718199 70.602328) + (xy 110.715284 70.609691) + (xy 110.620217 70.902277) + (xy 110.618246 70.909954) + (xy 110.5606 71.212145) + (xy 110.559607 71.220006) + (xy 110.54029 71.527042) + (xy 110.54029 71.534958) + (xy 106.549291 71.534958) + (xy 106.566352 71.533105) + (xy 106.581604 71.529479) + (xy 106.702054 71.484324) + (xy 106.717649 71.475786) + (xy 106.819724 71.399285) + (xy 106.832285 71.386724) + (xy 106.908786 71.284649) + (xy 106.917324 71.269054) + (xy 106.962478 71.148606) + (xy 106.966105 71.133351) + (xy 106.971631 71.082486) + (xy 106.972 71.075672) + (xy 106.972 70.503115) + (xy 106.967525 70.487876) + (xy 106.966135 70.486671) + (xy 106.958452 70.485) + (xy 105.936115 70.485) + (xy 105.920876 70.489475) + (xy 105.919671 70.490865) + (xy 105.918 70.498548) + (xy 105.918 71.520884) + (xy 105.41 71.520884) + (xy 105.41 70.503115) + (xy 105.405525 70.487876) + (xy 105.404135 70.486671) + (xy 105.396452 70.485) + (xy 103.396115 70.485) + (xy 103.380876 70.489475) + (xy 103.379671 70.490865) + (xy 103.378 70.498548) + (xy 103.378 71.498967) + (xy 102.87 71.498967) + (xy 102.87 70.503115) + (xy 102.865525 70.487876) + (xy 102.864135 70.486671) + (xy 102.856452 70.485) + (xy 100.856115 70.485) + (xy 100.840876 70.489475) + (xy 100.839671 70.490865) + (xy 100.838 70.498548) + (xy 100.838 71.498967) + (xy 100.33 71.498967) + (xy 100.33 70.503115) + (xy 100.325525 70.487876) + (xy 100.324135 70.486671) + (xy 100.316452 70.485) + (xy 98.316115 70.485) + (xy 98.300876 70.489475) + (xy 98.299671 70.490865) + (xy 98.298 70.498548) + (xy 98.298 71.498967) + (xy 97.79 71.498967) + (xy 97.79 70.503115) + (xy 97.785525 70.487876) + (xy 97.784135 70.486671) + (xy 97.776452 70.485) + (xy 96.776033 70.485) + (xy 96.762502 70.488973) + (xy 96.761273 70.497522) + (xy 91.412177 70.497522) + (xy 91.56672 70.400217) + (xy 94.022675 68.853875) + (xy 94.089809 68.8345) + (xy 97.375463 68.8345) + ) + ) + ) +) diff --git a/kicad/gameport-adapter.kicad_prl b/kicad/gameport-adapter.kicad_prl new file mode 100644 index 0000000..459a590 --- /dev/null +++ b/kicad/gameport-adapter.kicad_prl @@ -0,0 +1,75 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "All Layers", + "auto_track_width": true, + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "pads": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "ratsnest_display_mode": 0, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": true, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 32, + 33, + 34, + 35, + 36 + ], + "visible_layers": "fffffff_ffffffff", + "zone_display_mode": 0 + }, + "meta": { + "filename": "gameport-adapter.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/kicad/gameport-adapter.kicad_pro b/kicad/gameport-adapter.kicad_pro new file mode 100644 index 0000000..51b62ba --- /dev/null +++ b/kicad/gameport-adapter.kicad_pro @@ -0,0 +1,442 @@ +{ + "board": { + "design_settings": { + "defaults": { + "board_outline_line_width": 0.049999999999999996, + "copper_line_width": 0.19999999999999998, + "copper_text_italic": false, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "copper_text_upright": false, + "courtyard_line_width": 0.049999999999999996, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": false, + "text_position": 0, + "units_format": 1 + }, + "fab_line_width": 0.09999999999999999, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.09999999999999999, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.762, + "height": 1.524, + "width": 1.524 + }, + "silk_line_width": 0.12, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.15, + "silk_text_upright": false, + "zones": { + "45_degree_only": false, + "min_clearance": 0.254 + } + }, + "diff_pair_dimensions": [], + "drc_exclusions": [], + "meta": { + "filename": "board_design_settings.json", + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "copper_edge_clearance": "error", + "courtyards_overlap": "error", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint_type_mismatch": "error", + "hole_clearance": "error", + "hole_near_hole": "error", + "invalid_outline": "error", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "malformed_courtyard": "error", + "microvia_drill_out_of_range": "error", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "error", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_over_copper": "warning", + "silk_overlap": "warning", + "skew_out_of_range": "error", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_dangling": "warning", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "warning", + "zone_has_empty_net": "error", + "zones_intersect": "error" + }, + "rule_severitieslegacy_courtyards_overlap": true, + "rule_severitieslegacy_no_courtyard_defined": false, + "rules": { + "allow_blind_buried_vias": false, + "allow_microvias": false, + "max_error": 0.005, + "min_clearance": 0.0, + "min_copper_edge_clearance": 0.024999999999999998, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.19999999999999998, + "min_microvia_drill": 0.09999999999999999, + "min_silk_clearance": 0.0, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.19999999999999998, + "min_via_annular_width": 0.049999999999999996, + "min_via_diameter": 0.39999999999999997, + "use_height_for_length_calcs": true + }, + "track_widths": [], + "via_dimensions": [], + "zones_allow_external_fillets": false, + "zones_use_no_outline": true + }, + "layer_presets": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_label_syntax": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "gameport-adapter.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12.0, + "clearance": 0.25, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.35, + "via_diameter": 0.8, + "via_drill": 0.4, + "wire_width": 6.0 + }, + { + "bus_width": 12.0, + "clearance": 0.35, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Power", + "nets": [ + "GND", + "VCC" + ], + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 1.0, + "via_diameter": 0.8, + "via_drill": 0.4, + "wire_width": 6.0 + } + ], + "meta": { + "version": 2 + }, + "net_colors": null + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "specctra_dsn": "", + "step": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "drawing": { + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.25, + "pin_symbol_size": 0.0, + "text_offset_ratio": 0.08 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "ngspice": { + "fix_include_paths": true, + "fix_passive_vals": false, + "meta": { + "version": 0 + }, + "model_mode": 0, + "workbook_filename": "" + }, + "page_layout_descr_file": "", + "plot_directory": "", + "spice_adjust_passive_values": false, + "spice_external_command": "spice \"%I\"", + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "bd3a3088-a7a8-46b0-8d32-b4cc0ac8ed31", + "" + ] + ], + "text_variables": {} +} diff --git a/kicad/gameport-adapter.kicad_sch b/kicad/gameport-adapter.kicad_sch new file mode 100644 index 0000000..827d69e --- /dev/null +++ b/kicad/gameport-adapter.kicad_sch @@ -0,0 +1,1160 @@ +(kicad_sch (version 20211123) (generator eeschema) + + (uuid bd3a3088-a7a8-46b0-8d32-b4cc0ac8ed31) + + (paper "A4") + + (title_block + (title "GamePort Adapter") + (date "2021-03-12") + (rev "0.2") + (company "Necroware") + (comment 1 "by Scorp") + ) + + (lib_symbols + (symbol "Connector:DB15_Female_MountingHoles" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (id 0) (at 0 24.13 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "DB15_Female_MountingHoles" (id 1) (at 0 22.225 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" " ~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "female D-SUB connector" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "15-pin female D-SUB connector (low-density/2 columns), Mounting Hole" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DSUB*Female*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "DB15_Female_MountingHoles_0_1" + (circle (center -1.778 -17.78) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 -12.7) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 -7.62) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 -2.54) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 2.54) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 7.62) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 12.7) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -1.778 17.78) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -17.78) + (xy -2.54 -17.78) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -15.24) + (xy 0.508 -15.24) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -12.7) + (xy -2.54 -12.7) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -10.16) + (xy 0.508 -10.16) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -7.62) + (xy -2.54 -7.62) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -5.08) + (xy 0.508 -5.08) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 -2.54) + (xy -2.54 -2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 0) + (xy 0.508 0) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 2.54) + (xy -2.54 2.54) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 5.08) + (xy 0.508 5.08) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 7.62) + (xy -2.54 7.62) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 10.16) + (xy 0.508 10.16) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 12.7) + (xy -2.54 12.7) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 15.24) + (xy 0.508 15.24) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 17.78) + (xy -2.54 17.78) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -3.81 20.955) + (xy 3.175 17.145) + (xy 3.175 -17.145) + (xy -3.81 -20.955) + (xy -3.81 20.955) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (circle (center 1.27 -15.24) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 -10.16) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 -5.08) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 0) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 5.08) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 10.16) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 1.27 15.24) (radius 0.762) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "DB15_Female_MountingHoles_1_1" + (pin passive line (at 0 -22.86 90) (length 3.81) + (name "PAD" (effects (font (size 1.27 1.27)))) + (number "0" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 17.78 0) (length 3.81) + (name "1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 10.16 0) (length 3.81) + (name "P10" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 5.08 0) (length 3.81) + (name "P111" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 0 0) (length 3.81) + (name "P12" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -5.08 0) (length 3.81) + (name "P13" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -10.16 0) (length 3.81) + (name "P14" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -15.24 0) (length 3.81) + (name "P15" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 12.7 0) (length 3.81) + (name "2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 7.62 0) (length 3.81) + (name "3" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 2.54 0) (length 3.81) + (name "4" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -2.54 0) (length 3.81) + (name "5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -7.62 0) (length 3.81) + (name "6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -12.7 0) (length 3.81) + (name "7" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -17.78 0) (length 3.81) + (name "8" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 15.24 0) (length 3.81) + (name "P9" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (id 0) (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (id 1) (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Necroware:Arduino_Pro_Micro" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at 13.97 -1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Arduino_Pro_Micro" (id 1) (at 13.97 -17.78 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Arduino_Pro_Micro_0_1" + (rectangle (start 2.54 -2.54) (end 25.4 -35.56) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + (symbol "Arduino_Pro_Micro_1_1" + (pin bidirectional line (at 0 -5.08 0) (length 2.54) + (name "1/TX" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -27.94 0) (length 2.54) + (name "7" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -30.48 0) (length 2.54) + (name "8/A8" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -33.02 0) (length 2.54) + (name "9/A9" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -33.02 180) (length 2.54) + (name "10/A10" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -30.48 180) (length 2.54) + (name "16/MOSI" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -27.94 180) (length 2.54) + (name "14/MISO" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -25.4 180) (length 2.54) + (name "15/SCLK" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -22.86 180) (length 2.54) + (name "18/A0" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -20.32 180) (length 2.54) + (name "19/A1" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -17.78 180) (length 2.54) + (name "20/A2" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -7.62 0) (length 2.54) + (name "0/RX" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -15.24 180) (length 2.54) + (name "21/A3" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -12.7 180) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -10.16 180) (length 2.54) + (name "RST" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -7.62 180) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 27.94 -5.08 180) (length 2.54) + (name "VIN" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -10.16 0) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -12.7 0) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -15.24 0) (length 2.54) + (name "2/SDA" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -17.78 0) (length 2.54) + (name "3/SCL" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -20.32 0) (length 2.54) + (name "4/A6" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -22.86 0) (length 2.54) + (name "5" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 0 -25.4 0) (length 2.54) + (name "6/A7" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Switch:SW_DIP_x04" (pin_names (offset 0) hide) (in_bom yes) (on_board yes) + (property "Reference" "SW" (id 0) (at 0 8.89 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "SW_DIP_x04" (id 1) (at 0 -6.35 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "dip switch" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "4x DIP Switch, Single Pole Single Throw (SPST) switch, small symbol" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SW?DIP?x4*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "SW_DIP_x04_0_0" + (circle (center -2.032 -2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -2.032 0) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -2.032 2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center -2.032 5.08) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 -2.3876) + (xy 2.3622 -1.3462) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 0.127) + (xy 2.3622 1.1684) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 2.667) + (xy 2.3622 3.7084) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 5.207) + (xy 2.3622 6.2484) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 -2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 0) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 5.08) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "SW_DIP_x04_0_1" + (rectangle (start -3.81 7.62) (end 3.81 -5.08) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + (symbol "SW_DIP_x04_1_1" + (pin passive line (at -7.62 5.08 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 2.54 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 0 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -7.62 -2.54 0) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 -2.54 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 0 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 2.54 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 7.62 5.08 180) (length 5.08) + (name "~" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + + (no_connect (at 78.74 43.18) (uuid 26bcbd54-4917-40d5-8086-2336123e04d4)) + (no_connect (at 78.74 50.8) (uuid 318d3904-9b1d-4a80-9a05-fb45d853b467)) + (no_connect (at 78.74 40.64) (uuid 403c3cb8-169f-4e94-90d0-8033fd154633)) + (no_connect (at 106.68 45.72) (uuid 5e2c1593-19c9-4c68-afe7-ab3b1efcc185)) + (no_connect (at 78.74 53.34) (uuid 94fdde98-89ac-4d8a-8fd1-26b643370b8b)) + (no_connect (at 106.68 40.64) (uuid cdd5609b-b74d-422d-b077-b9c1ee047eae)) + + (global_label "SW3" (shape input) (at 85.09 85.09 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 07b1f9bd-febb-448a-b5d2-9d85f5dc28cd) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "VCC" (shape input) (at 44.45 39.37 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 084fcc96-2688-4ebc-af9f-b6c878342afd) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 142.24 45.72 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 0c408ab4-515f-42e6-8eb9-71663adb1246) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_2" (shape input) (at 78.74 55.88 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 0e9fd3df-16d0-4fdf-ba24-bdc232076b00) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_1" (shape input) (at 134.62 45.72 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 102b27c6-5fa4-437f-bca2-44340d4e4929) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW4" (shape input) (at 106.68 50.8 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 11a59fc9-a02c-448e-bb69-ff9ab0aa7d0a) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 100.33 85.09 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 15970fb1-ee04-49f2-b0f4-c860a0495c2b) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_3" (shape input) (at 106.68 66.04 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 1c76d310-1bb8-4bfd-890f-f2c0219d9069) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 78.74 45.72 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 23194f1b-b539-4d51-b706-0adb60186437) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_1" (shape input) (at 44.45 46.99 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 2769edd9-5bfc-4857-ab13-a32efa909110) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 100.33 80.01 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 2a470269-2077-4685-9b56-e8d1b4433587) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_1" (shape input) (at 44.45 41.91 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 2d0979b4-fffa-40d1-b2d6-d7cd9b54c586) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "MIDI_TXD" (shape input) (at 78.74 58.42 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 32584d03-f24b-4d25-b769-99ee8dfd94f3) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 52.07 77.47 270) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 362ff863-ada6-463f-b0c6-9b9595cc9434) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_1" (shape input) (at 78.74 60.96 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 48b73a96-a760-46a8-9596-de355188404f) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW4" (shape input) (at 85.09 87.63 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 4ca59c36-066c-4d6b-8e60-d80d4abecfbf) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_1" (shape input) (at 106.68 58.42 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 50ea8d66-baf0-40f8-a0d4-bb04ffb94d72) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_1" (shape input) (at 44.45 62.23 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 529984dd-b499-4faf-8d23-6de4a4127690) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_2" (shape input) (at 44.45 67.31 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 5511a972-c4e3-4868-a79d-74a348da4613) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_2" (shape input) (at 134.62 55.88 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 57227ea0-9d1c-4b9a-ad79-514e62fb857d) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW1" (shape input) (at 106.68 63.5 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 5a30b611-101a-4e45-9b9e-59f19d148e7e) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW2" (shape input) (at 106.68 60.96 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 5a7f8ff6-2d59-4d64-8572-59a0f3e564b4) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_1" (shape input) (at 134.62 50.8 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 5c241f7b-e19b-40e7-83eb-93d12d451853) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisY_2" (shape input) (at 44.45 59.69 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 5cc77296-73a0-4bf2-9d2c-6662825a8988) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "VCC" (shape input) (at 44.45 72.39 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 6c9eca85-d165-45ea-ac73-a2597bf71089) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 142.24 40.64 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 79f1ae75-40c0-437d-8f27-14edb08f10a4) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 78.74 48.26 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 7af27a64-6d55-4415-a3c8-bcd566c8a0c5) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 44.45 52.07 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 80207010-4c44-48f0-913e-1c576715a15e) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_3" (shape input) (at 44.45 44.45 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 813a224c-843f-43f2-9770-eb1930196980) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 142.24 55.88 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 84ae0863-b8aa-41e6-9bcc-7d9c302c13ab) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "VCC" (shape input) (at 44.45 36.83 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 898e311f-d055-4495-be6e-4c7ce065d220) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_1" (shape input) (at 106.68 68.58 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 8a42f275-769d-46d0-8c4d-9d8032a1a87d) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 142.24 50.8 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 8df1fb65-01e7-4440-8419-067ecd7e3059) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "VCC" (shape input) (at 106.68 48.26 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid b5d4ea29-08c0-4868-8ad9-5735c858d6e8) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "MIDI_TXD" (shape input) (at 44.45 54.61 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid b94d9d82-07bf-4cf6-a02a-5e8d117c96e4) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_2" (shape input) (at 44.45 49.53 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid bc5388fc-f11a-411a-b074-698fbc66d18a) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 100.33 87.63 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid c82e3477-f0b3-4df4-82e1-44703f7dd8e2) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_4" (shape input) (at 44.45 64.77 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid cc94f237-4f3c-4055-adc8-e86d78dae130) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_4" (shape input) (at 78.74 63.5 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid ce6c921d-987a-405e-8453-24fa6ce56ddb) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_2" (shape input) (at 106.68 55.88 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid d0f31a14-c47a-4207-acc0-2f55ef35deb7) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW1" (shape input) (at 85.09 80.01 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid d189f300-2d01-4e58-910a-f106e6442ba5) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "MIDI_RXD" (shape input) (at 44.45 69.85 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid dd3b2783-66fd-472e-97fc-fb4fa3e36429) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 44.45 57.15 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid dd9d5ece-3d48-44b0-8bb3-ff7af5d3c53e) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 100.33 82.55 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid e3835e7a-421c-4631-86b9-c9e45b93d4c1) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW2" (shape input) (at 85.09 82.55 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid e4638165-2144-4e90-9020-20ecc0111461) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GND" (shape input) (at 106.68 43.18 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid e8126722-6858-4626-81ac-9ff744c4d69c) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "MIDI_RXD" (shape input) (at 78.74 68.58 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid e93f5d69-4e56-4764-8b44-e780267a7940) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "AxisX_2" (shape input) (at 134.62 40.64 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid f6f25110-f789-4395-8ef7-fb1fffd7b6a0) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "SW3" (shape input) (at 106.68 53.34 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid f8e81aa4-3eeb-4b95-bab2-980cace0845a) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "Button_2" (shape input) (at 78.74 66.04 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid fd088acc-7d57-43aa-a4cd-14ba3bdec224) + (property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + + (symbol (lib_id "Connector:DB15_Female_MountingHoles") (at 52.07 54.61 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-00005fb67ac2) + (property "Reference" "CONN1" (id 0) (at 55.9816 53.4416 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "" (id 1) (at 55.9816 55.753 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 52.07 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" " ~" (id 3) (at 52.07 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C77835" (id 4) (at 52.07 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "0" (uuid f0fdc5b7-db43-47ab-90bf-fad51b95fc26)) + (pin "1" (uuid 29847295-8d2e-4057-b697-350843ddd9fd)) + (pin "10" (uuid a9a6aa6e-0b6f-4506-8351-51981a94ed63)) + (pin "11" (uuid da9e2e12-43f7-42d4-851f-97b2ae5baa73)) + (pin "12" (uuid 49005ae8-5c75-4ee9-8f4e-677b40dc4b10)) + (pin "13" (uuid f5428a46-2a40-4aa3-a7a4-250ed20c9889)) + (pin "14" (uuid f6cb5d8d-ad91-4b4b-8099-085c6dfaf952)) + (pin "15" (uuid 17ecd665-9f69-48c9-b065-6719bb7bc0d4)) + (pin "2" (uuid 573e579d-4d14-46a7-a1d9-8502e98eb9a4)) + (pin "3" (uuid bb77c1c1-3a48-43c2-93c6-b226d125436d)) + (pin "4" (uuid b8b5a6d1-d8fc-45ed-85b7-f0675a7e0246)) + (pin "5" (uuid 487a8083-b4dd-486f-b2c4-a01240e122d1)) + (pin "6" (uuid 8c330fde-7a30-4c91-bb1d-512ba8cf3dd0)) + (pin "7" (uuid a266fbce-292e-45c0-8ae8-77a28f5b148b)) + (pin "8" (uuid 662db4fd-c95d-4dbe-b798-f3b0dfdd8955)) + (pin "9" (uuid 8958b652-f4b7-4b87-8755-3e5b03e0ce48)) + ) + + (symbol (lib_id "Necroware:Arduino_Pro_Micro") (at 78.74 35.56 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-00005ff74419) + (property "Reference" "U1" (id 0) (at 92.71 33.909 0)) + (property "Value" "" (id 1) (at 92.71 36.2204 0)) + (property "Footprint" "" (id 2) (at 78.74 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 78.74 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C72120" (id 4) (at 78.74 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9dfcfa7c-e0c9-4370-a63b-2034c158a448)) + (pin "10" (uuid f9989092-84d7-4e76-a909-706bc644b31c)) + (pin "11" (uuid b4748257-9696-47b9-91ff-62996cf3cac6)) + (pin "12" (uuid 018d93bf-6a65-4051-a8e7-3a6e297826bc)) + (pin "13" (uuid c9edd1e9-4f50-4e48-bd42-e78470828a84)) + (pin "14" (uuid 62cc0655-3b97-4a4e-abab-bf6f7a6e68f2)) + (pin "15" (uuid 71eb3543-728d-432b-a160-876ea185cb91)) + (pin "16" (uuid f536419e-3f7e-4677-9858-ceb7088d1973)) + (pin "17" (uuid 190255df-417a-46a6-97ed-af0b14f82a2d)) + (pin "18" (uuid acdd9b7e-6ece-4483-8853-a467bb90d2c3)) + (pin "19" (uuid 85878123-9d12-40ff-846d-947cdc594669)) + (pin "2" (uuid e3a9f332-8022-4eca-9503-876c1b4f3dd8)) + (pin "20" (uuid 9d9b178b-f4bd-45d6-8649-5ce8c70235c0)) + (pin "21" (uuid 5491a099-3be3-4868-9dc9-6e93a1892c4c)) + (pin "22" (uuid 3f0d46d4-091d-430a-a3fe-b836fb30e283)) + (pin "23" (uuid 6dfa8536-6581-464a-b636-d23568b46855)) + (pin "24" (uuid 06761a52-a1a9-4e92-b221-3607f10d5cdb)) + (pin "3" (uuid a8cc6d54-10c6-4273-83b1-b60f7a606e9f)) + (pin "4" (uuid c6fb16bb-abf1-46da-b11b-d71a5bc1d795)) + (pin "5" (uuid f470e827-e5c5-43f5-b465-cdcd7436b005)) + (pin "6" (uuid 0ec8bec4-8313-4ebb-924a-7ef502b12458)) + (pin "7" (uuid 513a5e22-5a7c-45f1-a199-b2e5e8f9fc25)) + (pin "8" (uuid 582d5cd7-236c-48dd-bdce-aa521e377225)) + (pin "9" (uuid 51a508b0-07d0-4c0d-91d0-17d3cb38f52b)) + ) + + (symbol (lib_id "Switch:SW_DIP_x04") (at 92.71 85.09 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-00005ff7e601) + (property "Reference" "SW1" (id 0) (at 92.71 73.2282 0)) + (property "Value" "" (id 1) (at 92.71 75.5396 0)) + (property "Footprint" "" (id 2) (at 92.71 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 92.71 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C15781" (id 4) (at 92.71 85.09 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e0652241-6721-4785-8eb0-993a241b29a3)) + (pin "2" (uuid 0e8f9dbc-5d48-4c49-8880-ae3b3ecd3117)) + (pin "3" (uuid bf6237d7-633c-4f89-9c74-1d5b755179f1)) + (pin "4" (uuid 1e862182-222c-4223-8db7-eb505d135408)) + (pin "5" (uuid cb9a1e6e-d7da-4fd8-acf8-73a1473dc09e)) + (pin "6" (uuid da2f543a-30dc-429e-b42c-7829617ab50d)) + (pin "7" (uuid 68bd699f-bdc2-4899-8dad-8697735af938)) + (pin "8" (uuid 858c8c22-9c01-437b-887c-3ab41d54b1fe)) + ) + + (symbol (lib_id "Device:R") (at 138.43 40.64 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-0000604bcfe5) + (property "Reference" "R1" (id 0) (at 137.16 38.1 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "" (id 1) (at 135.89 40.64 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 138.43 42.418 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 138.43 40.64 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C172965" (id 4) (at 138.43 40.64 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a7779120-8d8e-4c63-bd1d-1f2be0155c1e)) + (pin "2" (uuid c273dc66-91c0-491a-9f40-68fe20c13737)) + ) + + (symbol (lib_id "Device:R") (at 138.43 45.72 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-0000604be4d6) + (property "Reference" "R2" (id 0) (at 139.7 43.18 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "" (id 1) (at 140.97 45.72 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 138.43 43.942 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 138.43 45.72 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C172965" (id 4) (at 138.43 45.72 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c264aa90-f606-4976-a247-976787253e35)) + (pin "2" (uuid eec0d6af-b8d6-4ba4-8132-99d1ac369234)) + ) + + (symbol (lib_id "Device:R") (at 138.43 50.8 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-0000604c20f3) + (property "Reference" "R3" (id 0) (at 137.16 48.26 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "" (id 1) (at 135.89 50.8 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 138.43 52.578 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 138.43 50.8 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C172965" (id 4) (at 138.43 50.8 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 670e5ebf-5bdf-4075-bd4c-22eab5562316)) + (pin "2" (uuid 899fe8ae-c23d-4b20-a3e4-a59ccca71752)) + ) + + (symbol (lib_id "Device:R") (at 138.43 55.88 270) (unit 1) + (in_bom yes) (on_board yes) + (uuid 00000000-0000-0000-0000-0000604c282a) + (property "Reference" "R4" (id 0) (at 139.7 53.34 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "" (id 1) (at 140.97 55.88 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 138.43 54.102 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 138.43 55.88 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "LCSC" "C172965" (id 4) (at 138.43 55.88 90) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c748d2f5-60b1-4522-a318-c97a8c105861)) + (pin "2" (uuid 1fd3de6b-2b30-41ee-aca2-4b07f746cf42)) + ) + + (sheet_instances + (path "/" (page "1")) + ) + + (symbol_instances + (path "/00000000-0000-0000-0000-00005fb67ac2" + (reference "CONN1") (unit 1) (value "GamePort") (footprint "Connector_Dsub:DSUB-15_Female_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm") + ) + (path "/00000000-0000-0000-0000-0000604bcfe5" + (reference "R1") (unit 1) (value "100k") (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal") + ) + (path "/00000000-0000-0000-0000-0000604be4d6" + (reference "R2") (unit 1) (value "100k") (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal") + ) + (path "/00000000-0000-0000-0000-0000604c20f3" + (reference "R3") (unit 1) (value "100k") (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal") + ) + (path "/00000000-0000-0000-0000-0000604c282a" + (reference "R4") (unit 1) (value "100k") (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal") + ) + (path "/00000000-0000-0000-0000-00005ff7e601" + (reference "SW1") (unit 1) (value "SW_DIP_x04") (footprint "Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm") + ) + (path "/00000000-0000-0000-0000-00005ff74419" + (reference "U1") (unit 1) (value "Arduino_Pro_Micro") (footprint "Package_DIP:DIP-24_W15.24mm_Socket") + ) + ) +) diff --git a/kicad/lib/LICENSE b/kicad/lib/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/kicad/lib/LICENSE @@ -0,0 +1,674 @@ + 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 +. diff --git a/kicad/lib/Necroware.dcm b/kicad/lib/Necroware.dcm new file mode 100644 index 0000000..89a0bb8 --- /dev/null +++ b/kicad/lib/Necroware.dcm @@ -0,0 +1,9 @@ +EESchema-DOCLIB Version 2.0 +# +$CMP Mini-DIN-6_shielded +D 6-pin Mini-DIN connector +K Mini-DIN +F http://service.powerdynamics.com/ec/Catalog17/Section%2011.pdf +$ENDCMP +# +#End Doc Library diff --git a/kicad/lib/Necroware.lib b/kicad/lib/Necroware.lib new file mode 100644 index 0000000..90336f4 --- /dev/null +++ b/kicad/lib/Necroware.lib @@ -0,0 +1,121 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# Arduino_Mini +# +DEF Arduino_Mini U 0 40 Y Y 1 F N +F0 "U" 450 -50 50 H V C CNN +F1 "Arduino_Mini" 450 -800 50 V V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +S 100 -100 750 -1550 0 1 0 f +X TX/D0 1 0 -200 100 R 50 50 1 1 B +X D7 10 0 -1100 100 R 50 50 1 1 B +X D8 11 0 -1200 100 R 50 50 1 1 B +X D9 12 0 -1300 100 R 50 50 1 1 B +X D10 13 850 -1300 100 L 50 50 1 1 B +X D11 14 850 -1200 100 L 50 50 1 1 B +X D12 15 850 -1100 100 L 50 50 1 1 B +X D13 16 850 -1000 100 L 50 50 1 1 B +X A0 17 850 -900 100 L 50 50 1 1 B +X A1 18 850 -800 100 L 50 50 1 1 B +X A2 19 850 -700 100 L 50 50 1 1 B +X RX/D1 2 0 -300 100 R 50 50 1 1 B +X A3 20 850 -600 100 L 50 50 1 1 B +X VCC 21 850 -500 100 L 50 50 1 1 B +X RST 22 850 -400 100 L 50 50 1 1 B +X GND 23 850 -300 100 L 50 50 1 1 B +X VIN 24 850 -200 100 L 50 50 1 1 B +X GND 25 250 -1650 100 U 50 50 1 1 B +X A4 26 350 -1650 100 U 50 50 1 1 B +X A5 27 450 -1650 100 U 50 50 1 1 B +X A6 28 550 -1650 100 U 50 50 1 1 B +X A7 29 650 -1650 100 U 50 50 1 1 B +X RST 3 0 -400 100 R 50 50 1 1 B +X GND 4 0 -500 100 R 50 50 1 1 B +X D2 5 0 -600 100 R 50 50 1 1 B +X D3 6 0 -700 100 R 50 50 1 1 B +X D4 7 0 -800 100 R 50 50 1 1 B +X D5 8 0 -900 100 R 50 50 1 1 B +X D6 9 0 -1000 100 R 50 50 1 1 B +ENDDRAW +ENDDEF +# +# Arduino_Pro_Micro +# +DEF Arduino_Pro_Micro U 0 40 Y Y 1 F N +F0 "U" 550 -50 50 H V C CNN +F1 "Arduino_Pro_Micro" 550 -700 50 V V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +S 100 -100 1000 -1400 0 1 0 f +X 1/TX 1 0 -200 100 R 50 50 1 1 B +X 7 10 0 -1100 100 R 50 50 1 1 B +X 8/A8 11 0 -1200 100 R 50 50 1 1 B +X 9/A9 12 0 -1300 100 R 50 50 1 1 B +X 10/A10 13 1100 -1300 100 L 50 50 1 1 B +X 16/MOSI 14 1100 -1200 100 L 50 50 1 1 B +X 14/MISO 15 1100 -1100 100 L 50 50 1 1 B +X 15/SCLK 16 1100 -1000 100 L 50 50 1 1 B +X 18/A0 17 1100 -900 100 L 50 50 1 1 B +X 19/A1 18 1100 -800 100 L 50 50 1 1 B +X 20/A2 19 1100 -700 100 L 50 50 1 1 B +X 0/RX 2 0 -300 100 R 50 50 1 1 B +X 21/A3 20 1100 -600 100 L 50 50 1 1 B +X VCC 21 1100 -500 100 L 50 50 1 1 B +X RST 22 1100 -400 100 L 50 50 1 1 B +X GND 23 1100 -300 100 L 50 50 1 1 B +X VIN 24 1100 -200 100 L 50 50 1 1 B +X GND 3 0 -400 100 R 50 50 1 1 B +X GND 4 0 -500 100 R 50 50 1 1 B +X 2/SDA 5 0 -600 100 R 50 50 1 1 B +X 3/SCL 6 0 -700 100 R 50 50 1 1 B +X 4/A6 7 0 -800 100 R 50 50 1 1 B +X 5 8 0 -900 100 R 50 50 1 1 B +X 6/A7 9 0 -1000 100 R 50 50 1 1 B +ENDDRAW +ENDDEF +# +# Mini-DIN-6_shielded +# +DEF Mini-DIN-6_shielded J 0 40 Y Y 1 F N +F0 "J" 0 250 50 H V C CNN +F1 "Mini-DIN-6_shielded" 50 350 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + MINI?DIN* +$ENDFPLIST +DRAW +A 0 0 200 -1269 -531 0 1 10 N -120 -160 120 -160 +A 2 4 200 1021 -1488 0 1 10 N -40 200 -170 -100 +A 2 5 198 -320 790 0 1 10 N 170 -100 40 200 +C -130 0 20 0 1 0 N +C -80 -100 20 0 1 0 N +C -80 100 20 0 1 0 N +C 80 -100 20 0 1 0 N +C 90 100 20 0 1 0 N +C 130 0 20 0 1 0 N +S -30 100 30 0 0 1 0 F +P 2 0 1 0 -150 0 -200 0 N +P 2 0 1 0 -100 100 -200 100 N +P 2 0 1 0 110 100 200 100 N +P 2 0 1 0 200 0 150 0 N +P 3 0 1 10 -170 -100 -120 -100 -120 -160 N +P 3 0 1 10 170 -100 120 -100 120 -160 N +P 4 0 1 0 -80 -120 -80 -140 -200 -140 -200 -100 N +P 4 0 1 10 -40 200 -40 160 40 160 40 200 N +P 4 0 1 0 80 -120 80 -140 200 -140 200 -100 N +X ~ 1 300 -100 100 L 50 50 1 1 P +X ~ 2 -300 -100 100 R 50 50 1 1 P +X ~ 3 300 0 100 L 50 50 1 1 P +X ~ 4 -300 0 100 R 50 50 1 1 P +X ~ 5 300 100 100 L 50 50 1 1 P +X ~ 6 -300 100 100 R 50 50 1 1 P +X ~ 7 0 -300 100 U 50 50 1 1 B +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/lib/Necroware.pretty/Arduino_Mini.kicad_mod b/kicad/lib/Necroware.pretty/Arduino_Mini.kicad_mod new file mode 100644 index 0000000..8fad487 --- /dev/null +++ b/kicad/lib/Necroware.pretty/Arduino_Mini.kicad_mod @@ -0,0 +1,70 @@ +(module Arduino_Mini (layer F.Cu) (tedit 5FB85749) + (descr "24-lead though-hole mounted DIP package, row spacing 15.24 mm (600 mils), Socket") + (tags "THT DIP DIL PDIP 2.54mm 15.24mm 600mil Socket") + (fp_text reference REF** (at 7.62 -2.33) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Arduino_Mini (at 7.62 30.27) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 16.8 -1.6) (end -1.55 -1.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start 16.8 29.55) (end 16.8 -1.6) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.55 29.55) (end 16.8 29.55) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.55 -1.6) (end -1.55 29.55) (layer F.CrtYd) (width 0.05)) + (fp_line (start 16.57 -1.39) (end -1.33 -1.39) (layer F.SilkS) (width 0.12)) + (fp_line (start 16.57 29.33) (end 16.57 -1.39) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 29.33) (end 16.57 29.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.39) (end -1.33 29.33) (layer F.SilkS) (width 0.12)) + (fp_line (start 14.08 -1.33) (end 8.62 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start 14.08 29.27) (end 14.08 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.16 29.27) (end 14.08 29.27) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.16 -1.33) (end 1.16 29.27) (layer F.SilkS) (width 0.12)) + (fp_line (start 6.62 -1.33) (end 1.16 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start 16.51 -1.33) (end -1.27 -1.33) (layer F.Fab) (width 0.1)) + (fp_line (start 16.51 29.27) (end 16.51 -1.33) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 29.27) (end 16.51 29.27) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 -1.33) (end -1.27 29.27) (layer F.Fab) (width 0.1)) + (fp_line (start 0.255 -0.27) (end 1.255 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start 0.255 29.21) (end 0.255 -0.27) (layer F.Fab) (width 0.1)) + (fp_line (start 14.985 29.21) (end 0.255 29.21) (layer F.Fab) (width 0.1)) + (fp_line (start 14.985 -1.27) (end 14.985 29.21) (layer F.Fab) (width 0.1)) + (fp_line (start 1.255 -1.27) (end 14.985 -1.27) (layer F.Fab) (width 0.1)) + (fp_arc (start 7.62 -1.33) (end 6.62 -1.33) (angle -180) (layer F.SilkS) (width 0.12)) + (fp_text user %R (at 7.62 13.97) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 13 thru_hole oval (at 15.24 27.94) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 2 thru_hole oval (at 0 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 14 thru_hole oval (at 15.24 25.4) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 3 thru_hole oval (at 0 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 15 thru_hole oval (at 15.24 22.86) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 4 thru_hole oval (at 0 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 16 thru_hole oval (at 15.24 20.32) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 5 thru_hole oval (at 0 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 17 thru_hole oval (at 15.24 17.78) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at 0 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 18 thru_hole oval (at 15.24 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 7 thru_hole oval (at 0 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 19 thru_hole oval (at 15.24 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 8 thru_hole oval (at 0 17.78) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 20 thru_hole oval (at 15.24 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 9 thru_hole oval (at 0 20.32) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 21 thru_hole oval (at 15.24 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 10 thru_hole oval (at 0 22.86) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 22 thru_hole oval (at 15.24 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 11 thru_hole oval (at 0 25.4) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 23 thru_hole oval (at 15.24 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 12 thru_hole oval (at 0 27.94) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 24 thru_hole oval (at 15.24 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) + (pad 25 thru_hole circle (at 2.54 27.94) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask)) + (pad 26 thru_hole circle (at 5.08 27.94) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask)) + (pad 27 thru_hole circle (at 7.62 27.94) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask)) + (pad 28 thru_hole circle (at 10.16 27.94) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask)) + (pad 29 thru_hole circle (at 12.7 27.94) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask)) + (model ${KISYS3DMOD}/Package_DIP.3dshapes/DIP-24_W15.24mm_Socket.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) +) diff --git a/kicad/lib/Necroware.pretty/ISA_8BIT_EDGE.kicad_mod b/kicad/lib/Necroware.pretty/ISA_8BIT_EDGE.kicad_mod new file mode 100644 index 0000000..d907b95 --- /dev/null +++ b/kicad/lib/Necroware.pretty/ISA_8BIT_EDGE.kicad_mod @@ -0,0 +1,76 @@ +(module ISA_8BIT_EDGE (layer F.Cu) (tedit 5FB84D5C) + (fp_text reference REF** (at -38.1 -1.905) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value ISA_8BIT_EDGE (at -46.355 -1.905) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -78.105 0) (end -78.105 6.35) (layer F.Fab) (width 0.12)) + (fp_line (start -78.105 6.35) (end -76.835 7.62) (layer F.Fab) (width 0.12)) + (fp_line (start -76.835 7.62) (end 0.635 7.62) (layer F.Fab) (width 0.12)) + (fp_line (start 0.635 7.62) (end 1.905 6.35) (layer F.Fab) (width 0.12)) + (fp_line (start 1.905 6.35) (end 1.905 0) (layer F.Fab) (width 0.12)) + (fp_line (start 1.905 0) (end -78.105 0) (layer F.Fab) (width 0.12)) + (pad 1 connect rect (at 0 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 2 connect rect (at -2.54 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 3 connect rect (at -5.08 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 4 connect rect (at -7.62 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 5 connect rect (at -10.16 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 6 connect rect (at -12.7 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 7 connect rect (at -15.24 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 8 connect rect (at -17.78 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 9 connect rect (at -20.32 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 10 connect rect (at -22.86 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 11 connect rect (at -25.4 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 12 connect rect (at -27.94 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 13 connect rect (at -30.48 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 14 connect rect (at -33.02 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 15 connect rect (at -35.56 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 16 connect rect (at -38.1 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 17 connect rect (at -40.64 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 18 connect rect (at -43.18 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 19 connect rect (at -45.72 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 20 connect rect (at -48.26 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 21 connect rect (at -50.8 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 22 connect rect (at -53.34 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 23 connect rect (at -55.88 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 24 connect rect (at -58.42 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 25 connect rect (at -60.96 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 26 connect rect (at -63.5 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 27 connect rect (at -66.04 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 28 connect rect (at -68.58 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 29 connect rect (at -71.12 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 30 connect rect (at -73.66 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 31 connect rect (at -76.2 3.81) (size 1.27 7.62) (layers B.Cu B.Mask)) + (pad 32 connect rect (at 0 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 33 connect rect (at -2.54 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 34 connect rect (at -5.08 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 35 connect rect (at -7.62 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 36 connect rect (at -10.16 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 37 connect rect (at -12.7 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 38 connect rect (at -15.24 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 39 connect rect (at -17.78 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 40 connect rect (at -20.32 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 41 connect rect (at -22.86 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 42 connect rect (at -25.4 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 43 connect rect (at -27.94 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 44 connect rect (at -30.48 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 45 connect rect (at -33.02 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 46 connect rect (at -35.56 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 47 connect rect (at -38.1 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 48 connect rect (at -40.64 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 49 connect rect (at -43.18 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 50 connect rect (at -45.72 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 51 connect rect (at -48.26 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 52 connect rect (at -50.8 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 53 connect rect (at -53.34 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 54 connect rect (at -55.88 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 55 connect rect (at -58.42 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 56 connect rect (at -60.96 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 57 connect rect (at -63.5 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 58 connect rect (at -66.04 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 59 connect rect (at -68.58 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 60 connect rect (at -71.12 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 61 connect rect (at -73.66 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) + (pad 62 connect rect (at -76.2 3.81) (size 1.27 7.62) (layers F.Cu F.Mask)) +) diff --git a/kicad/lib/Necroware.pretty/Mini_DIN_6_LCSC_C77848.kicad_mod b/kicad/lib/Necroware.pretty/Mini_DIN_6_LCSC_C77848.kicad_mod new file mode 100644 index 0000000..6b93dfe --- /dev/null +++ b/kicad/lib/Necroware.pretty/Mini_DIN_6_LCSC_C77848.kicad_mod @@ -0,0 +1,21 @@ +(module Mini_DIN_6_LCSC_C77848 (layer F.Cu) (tedit 5FB9268E) + (fp_text reference REF** (at 3 -3) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Mini_DIN_6_LCSC_C77848 (at 4 13) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -3.45 -2) (end -3.45 11.28) (layer F.SilkS) (width 0.12)) + (fp_line (start 10.25 11.28) (end -3.45 11.28) (layer F.SilkS) (width 0.12)) + (fp_line (start 10.25 -2) (end 10.25 11.28) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.45 -2) (end 10.25 -2) (layer F.SilkS) (width 0.12)) + (pad 6 thru_hole circle (at 0 0) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 4 thru_hole circle (at 0 2.5) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 5 thru_hole circle (at 6.8 0) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 3 thru_hole circle (at 6.8 2.5) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at 2.1 2.5) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 1 thru_hole circle (at 4.7 2.5) (size 1.7 1.7) (drill 1.1) (layers *.Cu *.Mask)) + (pad 7 thru_hole circle (at 3.4 6.58) (size 3.3 3.3) (drill 2.3) (layers *.Cu *.Mask)) + (pad 7 thru_hole circle (at -3.45 5.78) (size 3.3 3.3) (drill 2.3) (layers *.Cu *.Mask)) + (pad 7 thru_hole circle (at 10.25 5.78) (size 3.3 3.3) (drill 2.3) (layers *.Cu *.Mask)) +) diff --git a/kicad/lib/Necroware.pretty/USB_Mini-B-Jing_Extension_LSCS_C46398.kicad_mod b/kicad/lib/Necroware.pretty/USB_Mini-B-Jing_Extension_LSCS_C46398.kicad_mod new file mode 100644 index 0000000..b662fae --- /dev/null +++ b/kicad/lib/Necroware.pretty/USB_Mini-B-Jing_Extension_LSCS_C46398.kicad_mod @@ -0,0 +1,22 @@ +(module USB_Mini-B-Jing_Extension_LSCS_C46398 (layer F.Cu) (tedit 5FBA7C90) + (fp_text reference REF** (at 0 -4) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value USB_Mini-B-Jing_Extension_LSCS_C46398 (at 0 -2) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -3.7 7.45) (end 3.7 7.45) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.7 9.7) (end -3.7 0) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.7 9.7) (end 3.7 9.7) (layer F.SilkS) (width 0.12)) + (fp_line (start 3.7 0) (end 3.7 9.7) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.7 0) (end 3.7 0) (layer F.SilkS) (width 0.12)) + (pad 3 thru_hole circle (at 0 0) (size 1.1 1.1) (drill 0.4) (layers *.Cu *.Mask)) + (pad 5 thru_hole circle (at 1.6 0) (size 1.1 1.1) (drill 0.4) (layers *.Cu *.Mask)) + (pad 1 thru_hole circle (at -1.6 0) (size 1.1 1.1) (drill 0.4) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at -0.8 1.2) (size 1.1 1.1) (drill 0.4) (layers *.Cu *.Mask)) + (pad 4 thru_hole circle (at 0.8 1.2) (size 1.1 1.1) (drill 0.4) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at 3.7 0.9) (size 1.4 2.5) (drill oval 0.8 1.9) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at -3.7 0.9) (size 1.4 2.5) (drill oval 0.8 1.9) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at -3.7 5.65) (size 1.4 2.5) (drill oval 0.8 1.9) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at 3.7 5.65) (size 1.4 2.5) (drill oval 0.8 1.9) (layers *.Cu *.Mask)) +) diff --git a/kicad/lib/Necroware.pretty/open_hardware_logo.kicad_mod b/kicad/lib/Necroware.pretty/open_hardware_logo.kicad_mod new file mode 100644 index 0000000..4733ef9 --- /dev/null +++ b/kicad/lib/Necroware.pretty/open_hardware_logo.kicad_mod @@ -0,0 +1,371 @@ +(module LOGO (layer F.Cu) + (at 0 0) + (fp_text reference "G***" (at 0 0) (layer F.SilkS) hide + (effects (font (thickness 0.3))) + ) + (fp_text value "LOGO" (at 0.75 0) (layer F.SilkS) hide + (effects (font (thickness 0.3))) + ) + (fp_poly (pts (xy -2.567733 4.243323) (xy -2.542708 4.244832) (xy -2.465751 4.253948) (xy -2.397919 4.269662) (xy -2.339153 4.292005) (xy -2.289396 4.321005) (xy -2.248591 4.356694) (xy -2.216679 4.399101) + (xy -2.204536 4.421785) (xy -2.198337 4.434872) (xy -2.192960 4.446774) (xy -2.188340 4.458364) (xy -2.184416 4.470515) (xy -2.181124 4.484100) (xy -2.178402 4.499991) (xy -2.176187 4.519062) + (xy -2.174417 4.542185) (xy -2.173027 4.570234) (xy -2.171957 4.604081) (xy -2.171142 4.644598) (xy -2.170520 4.692660) (xy -2.170028 4.749138) (xy -2.169603 4.814906) (xy -2.169183 4.890836) + (xy -2.169053 4.914900) (xy -2.166903 5.311422) (xy -2.381516 5.311422) (xy -2.383147 5.262475) (xy -2.384778 5.213527) (xy -2.401037 5.237032) (xy -2.426629 5.264722) (xy -2.461546 5.288034) + (xy -2.504360 5.306020) (xy -2.505894 5.306513) (xy -2.532170 5.312546) (xy -2.566491 5.317077) (xy -2.605695 5.320000) (xy -2.646624 5.321206) (xy -2.686119 5.320587) (xy -2.721020 5.318036) + (xy -2.743200 5.314599) (xy -2.805023 5.297525) (xy -2.858366 5.274085) (xy -2.904483 5.243633) (xy -2.935111 5.215774) (xy -2.965859 5.179189) (xy -2.988479 5.140343) (xy -3.005037 5.095482) + (xy -3.008612 5.082340) (xy -3.018636 5.022292) (xy -3.018283 4.988830) (xy -2.816578 4.988830) (xy -2.811855 5.024864) (xy -2.797578 5.055176) (xy -2.773589 5.079966) (xy -2.739726 5.099433) + (xy -2.722232 5.106169) (xy -2.704732 5.111603) (xy -2.687888 5.115323) (xy -2.668892 5.117643) (xy -2.644932 5.118876) (xy -2.613199 5.119335) (xy -2.603778 5.119366) (xy -2.571832 5.118968) + (xy -2.541164 5.117779) (xy -2.514907 5.115971) (xy -2.496195 5.113719) (xy -2.493711 5.113246) (xy -2.460346 5.103417) (xy -2.433727 5.088728) (xy -2.413289 5.068175) (xy -2.398465 5.040752) + (xy -2.388689 5.005456) (xy -2.383397 4.961280) (xy -2.381998 4.914900) (xy -2.381955 4.865511) (xy -2.536153 4.865511) (xy -2.585229 4.865636) (xy -2.624451 4.866056) (xy -2.655253 4.866841) + (xy -2.679068 4.868059) (xy -2.697328 4.869780) (xy -2.711467 4.872074) (xy -2.721009 4.874435) (xy -2.759073 4.889856) (xy -2.787510 4.911169) (xy -2.806334 4.938388) (xy -2.815556 4.971528) + (xy -2.816578 4.988830) (xy -3.018283 4.988830) (xy -3.018023 4.964233) (xy -3.007341 4.909125) (xy -2.987157 4.857930) (xy -2.958037 4.811606) (xy -2.920548 4.771117) (xy -2.875257 4.737421) + (xy -2.822730 4.711481) (xy -2.782213 4.698516) (xy -2.769017 4.695737) (xy -2.752387 4.693434) (xy -2.731051 4.691536) (xy -2.703733 4.689975) (xy -2.669159 4.688679) (xy -2.626056 4.687578) + (xy -2.573149 4.686602) (xy -2.563353 4.686447) (xy -2.380685 4.683624) (xy -2.382856 4.609337) (xy -2.383923 4.578399) (xy -2.385307 4.556226) (xy -2.387446 4.540297) (xy -2.390783 4.528089) + (xy -2.395757 4.517078) (xy -2.400417 4.508788) (xy -2.421147 4.484513) (xy -2.451527 4.465731) (xy -2.491304 4.452516) (xy -2.540223 4.444940) (xy -2.598031 4.443077) (xy -2.624666 4.444003) + (xy -2.667994 4.447621) (xy -2.702469 4.453921) (xy -2.730363 4.463677) (xy -2.753948 4.477660) (xy -2.773460 4.494588) (xy -2.800897 4.521916) (xy -2.881942 4.460880) (xy -2.907950 4.441011) + (xy -2.930515 4.423232) (xy -2.948195 4.408725) (xy -2.959546 4.398671) (xy -2.963160 4.394392) (xy -2.959432 4.388378) (xy -2.949243 4.376517) (xy -2.934314 4.360735) (xy -2.922411 4.348821) + (xy -2.878897 4.312472) (xy -2.830091 4.283888) (xy -2.775282 4.262876) (xy -2.713760 4.249241) (xy -2.644814 4.242788) (xy -2.567733 4.243323) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -0.378178 5.311671) (xy -0.484011 5.310136) (xy -0.589844 5.308600) (xy -0.592666 5.259144) (xy -0.595489 5.209688) (xy -0.626533 5.235193) (xy -0.679672 5.271826) (xy -0.737484 5.298793) + (xy -0.798551 5.315746) (xy -0.861452 5.322336) (xy -0.924767 5.318214) (xy -0.947320 5.314056) (xy -1.000846 5.296943) (xy -1.051486 5.270202) (xy -1.097678 5.235278) (xy -1.137862 5.193613) + (xy -1.170477 5.146650) (xy -1.193961 5.095833) (xy -1.198449 5.081927) (xy -1.204855 5.055418) (xy -1.209959 5.023471) (xy -1.213813 4.985142) (xy -1.216468 4.939486) (xy -1.217977 4.885560) + (xy -1.218392 4.822420) (xy -1.217846 4.758432) (xy -1.003991 4.758432) (xy -1.003395 4.809565) (xy -1.002388 4.852717) (xy -1.001232 4.886391) (xy -0.999769 4.912396) (xy -0.997841 4.932542) + (xy -0.995292 4.948640) (xy -0.991962 4.962500) (xy -0.989312 4.971143) (xy -0.970883 5.016275) (xy -0.947987 5.051558) (xy -0.919715 5.077608) (xy -0.885158 5.095044) (xy -0.843406 5.104484) + (xy -0.793550 5.106546) (xy -0.790222 5.106447) (xy -0.758530 5.104519) (xy -0.734298 5.100744) (xy -0.713759 5.094453) (xy -0.707096 5.091687) (xy -0.673743 5.072030) (xy -0.646333 5.044574) + (xy -0.624159 5.008397) (xy -0.606513 4.962573) (xy -0.605330 4.958645) (xy -0.601584 4.939658) (xy -0.598497 4.911627) (xy -0.596101 4.876776) (xy -0.594432 4.837334) (xy -0.593525 4.795526) + (xy -0.593414 4.753579) (xy -0.594133 4.713719) (xy -0.595717 4.678173) (xy -0.598201 4.649167) (xy -0.600302 4.634937) (xy -0.613074 4.583827) (xy -0.630661 4.542440) (xy -0.653794 4.509971) + (xy -0.683202 4.485620) (xy -0.719616 4.468583) (xy -0.760835 4.458530) (xy -0.808447 4.455199) (xy -0.853699 4.460770) (xy -0.894794 4.474711) (xy -0.929934 4.496494) (xy -0.948015 4.513787) + (xy -0.964382 4.535060) (xy -0.977557 4.558740) (xy -0.987779 4.586119) (xy -0.995293 4.618486) (xy -1.000338 4.657134) (xy -1.003157 4.703352) (xy -1.003991 4.758432) (xy -1.217846 4.758432) + (xy -1.217766 4.749122) (xy -1.217582 4.736933) (xy -1.216470 4.677497) (xy -1.215083 4.627952) (xy -1.213243 4.586900) (xy -1.210775 4.552944) (xy -1.207504 4.524686) (xy -1.203252 4.500728) + (xy -1.197844 4.479673) (xy -1.191104 4.460124) (xy -1.182855 4.440683) (xy -1.179309 4.433076) (xy -1.162949 4.405415) (xy -1.139629 4.374859) (xy -1.112038 4.344370) (xy -1.082866 4.316911) + (xy -1.054801 4.295444) (xy -1.053764 4.294768) (xy -1.005983 4.270031) (xy -0.952450 4.253001) (xy -0.895832 4.243971) (xy -0.838797 4.243234) (xy -0.784011 4.251083) (xy -0.749755 4.261342) + (xy -0.712255 4.278356) (xy -0.672442 4.301486) (xy -0.634931 4.327937) (xy -0.620838 4.339480) (xy -0.592666 4.363782) (xy -0.592666 3.826934) (xy -0.378178 3.826934) (xy -0.378178 5.311671) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 1.704107 4.243521) (xy 1.722402 4.244672) (xy 1.798353 4.253284) (xy 1.864925 4.267786) (xy 1.922523 4.288439) (xy 1.971555 4.315506) (xy 2.012426 4.349249) (xy 2.045543 4.389929) + (xy 2.071313 4.437808) (xy 2.086216 4.479111) (xy 2.088165 4.486409) (xy 2.089857 4.494875) (xy 2.091317 4.505345) (xy 2.092567 4.518658) (xy 2.093630 4.535650) (xy 2.094531 4.557157) + (xy 2.095292 4.584017) (xy 2.095936 4.617067) (xy 2.096487 4.657143) (xy 2.096969 4.705084) (xy 2.097404 4.761724) (xy 2.097815 4.827903) (xy 2.098227 4.904456) (xy 2.098266 4.912078) + (xy 2.100293 5.311422) (xy 1.885245 5.311422) (xy 1.885245 5.213243) (xy 1.868122 5.236526) (xy 1.840929 5.264733) (xy 1.804783 5.288441) (xy 1.761531 5.306441) (xy 1.761306 5.306513) + (xy 1.741650 5.311833) (xy 1.719833 5.315606) (xy 1.693174 5.318141) (xy 1.658995 5.319747) (xy 1.642534 5.320201) (xy 1.612425 5.320716) (xy 1.585661 5.320808) (xy 1.564608 5.320497) + (xy 1.551629 5.319801) (xy 1.549400 5.319463) (xy 1.538363 5.316897) (xy 1.520220 5.312726) (xy 1.498873 5.307847) (xy 1.498600 5.307785) (xy 1.439970 5.289154) (xy 1.387900 5.261882) + (xy 1.343048 5.226717) (xy 1.306072 5.184411) (xy 1.277631 5.135714) (xy 1.258383 5.081376) (xy 1.249074 5.023395) (xy 1.249544 4.989207) (xy 1.450622 4.989207) (xy 1.455603 5.025126) + (xy 1.470519 5.055709) (xy 1.495333 5.080909) (xy 1.530007 5.100680) (xy 1.544968 5.106485) (xy 1.559733 5.111361) (xy 1.573201 5.114836) (xy 1.587619 5.117103) (xy 1.605234 5.118353) + (xy 1.628292 5.118780) (xy 1.659042 5.118575) (xy 1.682085 5.118230) (xy 1.717843 5.117581) (xy 1.744425 5.116785) (xy 1.763941 5.115549) (xy 1.778501 5.113577) (xy 1.790216 5.110574) + (xy 1.801198 5.106247) (xy 1.813557 5.100300) (xy 1.814729 5.099715) (xy 1.838274 5.084839) (xy 1.856421 5.065710) (xy 1.869680 5.041009) (xy 1.878562 5.009412) (xy 1.883579 4.969599) + (xy 1.885240 4.920247) (xy 1.885245 4.917260) (xy 1.885245 4.865511) (xy 1.731047 4.865511) (xy 1.681971 4.865636) (xy 1.642749 4.866056) (xy 1.611947 4.866841) (xy 1.588132 4.868059) + (xy 1.569872 4.869780) (xy 1.555733 4.872074) (xy 1.546191 4.874435) (xy 1.508158 4.889822) (xy 1.479761 4.911069) (xy 1.460955 4.938230) (xy 1.451692 4.971362) (xy 1.450622 4.989207) + (xy 1.249544 4.989207) (xy 1.249906 4.963002) (xy 1.261027 4.906404) (xy 1.281835 4.854431) (xy 1.311726 4.807913) (xy 1.350099 4.767681) (xy 1.396348 4.734565) (xy 1.449873 4.709396) + (xy 1.484987 4.698516) (xy 1.498188 4.695736) (xy 1.514824 4.693432) (xy 1.536169 4.691534) (xy 1.563497 4.689973) (xy 1.598084 4.688677) (xy 1.641204 4.687576) (xy 1.694131 4.686600) + (xy 1.703750 4.686448) (xy 1.886322 4.683626) (xy 1.884207 4.609469) (xy 1.882205 4.569417) (xy 1.878312 4.538722) (xy 1.871823 4.515511) (xy 1.862031 4.497914) (xy 1.848230 4.484060) + (xy 1.833043 4.473959) (xy 1.811720 4.463084) (xy 1.789547 4.455255) (xy 1.763680 4.449817) (xy 1.731281 4.446113) (xy 1.704622 4.444281) (xy 1.641966 4.443696) (xy 1.588340 4.449596) + (xy 1.543811 4.461963) (xy 1.508446 4.480781) (xy 1.485287 4.502261) (xy 1.468010 4.523221) (xy 1.386183 4.461533) (xy 1.360043 4.441549) (xy 1.337331 4.423658) (xy 1.319483 4.409033) + (xy 1.307936 4.398850) (xy 1.304111 4.394392) (xy 1.307808 4.388379) (xy 1.317972 4.376520) (xy 1.332884 4.360740) (xy 1.344789 4.348821) (xy 1.388779 4.312171) (xy 1.438254 4.283401) + (xy 1.493869 4.262332) (xy 1.556279 4.248783) (xy 1.626140 4.242573) (xy 1.704107 4.243521) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 3.554050 4.248824) (xy 3.621233 4.264096) (xy 3.683475 4.289040) (xy 3.740079 4.323137) (xy 3.790350 4.365869) (xy 3.833591 4.416717) (xy 3.869107 4.475161) (xy 3.896200 4.540685) + (xy 3.900733 4.555221) (xy 3.904825 4.570271) (xy 3.908006 4.585468) (xy 3.910432 4.602646) (xy 3.912260 4.623641) (xy 3.913648 4.650286) (xy 3.914752 4.684417) (xy 3.915729 4.727869) + (xy 3.915799 4.731456) (xy 3.918419 4.865511) (xy 3.262489 4.865511) (xy 3.262489 4.889725) (xy 3.264000 4.909155) (xy 3.267874 4.932813) (xy 3.271141 4.947158) (xy 3.288718 4.995554) + (xy 3.314401 5.036184) (xy 3.348596 5.069540) (xy 3.391708 5.096110) (xy 3.396309 5.098312) (xy 3.417120 5.107191) (xy 3.436237 5.112845) (xy 3.457935 5.116208) (xy 3.486491 5.118216) + (xy 3.487659 5.118273) (xy 3.517237 5.118759) (xy 3.546057 5.117624) (xy 3.569433 5.115085) (xy 3.573634 5.114307) (xy 3.608734 5.103862) (xy 3.647116 5.087228) (xy 3.684421 5.066521) + (xy 3.712744 5.046733) (xy 3.731864 5.033114) (xy 3.745032 5.027169) (xy 3.749832 5.027570) (xy 3.758109 5.033644) (xy 3.772323 5.045131) (xy 3.790755 5.060538) (xy 3.811687 5.078375) + (xy 3.833399 5.097151) (xy 3.854172 5.115372) (xy 3.872287 5.131549) (xy 3.886026 5.144189) (xy 3.893668 5.151800) (xy 3.894667 5.153240) (xy 3.890636 5.159487) (xy 3.879932 5.170945) + (xy 3.864639 5.185703) (xy 3.846839 5.201846) (xy 3.828615 5.217461) (xy 3.812052 5.230636) (xy 3.804356 5.236181) (xy 3.749001 5.268364) (xy 3.687811 5.294322) (xy 3.625120 5.312332) + (xy 3.601156 5.316837) (xy 3.564219 5.320648) (xy 3.520832 5.321966) (xy 3.475540 5.320865) (xy 3.432889 5.317417) (xy 3.407742 5.313773) (xy 3.342260 5.296777) (xy 3.280902 5.270597) + (xy 3.225276 5.236104) (xy 3.176988 5.194168) (xy 3.167004 5.183466) (xy 3.148661 5.159939) (xy 3.129179 5.129825) (xy 3.111165 5.097188) (xy 3.109628 5.094111) (xy 3.087177 5.043126) + (xy 3.070263 4.991266) (xy 3.058430 4.936250) (xy 3.051226 4.875794) (xy 3.048196 4.807619) (xy 3.048033 4.784670) (xy 3.051216 4.700979) (xy 3.056008 4.663497) (xy 3.262489 4.663497) + (xy 3.262489 4.684889) (xy 3.702756 4.684889) (xy 3.702672 4.669367) (xy 3.698624 4.634319) (xy 3.687813 4.595598) (xy 3.671731 4.557235) (xy 3.651864 4.523261) (xy 3.645543 4.514722) + (xy 3.615851 4.485707) (xy 3.579571 4.464192) (xy 3.538662 4.450298) (xy 3.495081 4.444147) (xy 3.450784 4.445861) (xy 3.407731 4.455562) (xy 3.367877 4.473372) (xy 3.337339 4.495548) + (xy 3.309276 4.527421) (xy 3.286470 4.566445) (xy 3.270488 4.609106) (xy 3.262897 4.651885) (xy 3.262489 4.663497) (xy 3.056008 4.663497) (xy 3.060913 4.625144) (xy 3.077464 4.555572) + (xy 3.101204 4.490669) (xy 3.117497 4.456289) (xy 3.141052 4.418282) (xy 3.172006 4.379898) (xy 3.207656 4.343852) (xy 3.245300 4.312854) (xy 3.282232 4.289617) (xy 3.285067 4.288179) + (xy 3.337252 4.266030) (xy 3.390037 4.251843) (xy 3.446923 4.244831) (xy 3.482622 4.243743) (xy 3.554050 4.248824) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -3.475862 2.577931) (xy -3.414828 2.591508) (xy -3.365215 2.611112) (xy -3.339813 2.624711) (xy -3.316824 2.640630) (xy -3.292766 2.661470) (xy -3.276098 2.677690) (xy -3.241097 2.716816) + (xy -3.215077 2.755909) (xy -3.196188 2.798123) (xy -3.186357 2.830670) (xy -3.181150 2.857703) (xy -3.176660 2.894283) (xy -3.172973 2.938682) (xy -3.170176 2.989176) (xy -3.168355 3.044039) + (xy -3.167597 3.101546) (xy -3.167987 3.159970) (xy -3.168565 3.186289) (xy -3.170896 3.250990) (xy -3.174290 3.305814) (xy -3.179038 3.352148) (xy -3.185432 3.391378) (xy -3.193764 3.424891) + (xy -3.204323 3.454072) (xy -3.217402 3.480308) (xy -3.233292 3.504985) (xy -3.236416 3.509291) (xy -3.276128 3.555848) (xy -3.320179 3.592813) (xy -3.370542 3.621632) (xy -3.412687 3.638444) + (xy -3.452691 3.648450) (xy -3.497909 3.653858) (xy -3.544243 3.654552) (xy -3.587594 3.650414) (xy -3.615266 3.644197) (xy -3.665227 3.624764) (xy -3.715513 3.597082) (xy -3.761332 3.564006) + (xy -3.798711 3.533174) (xy -3.798711 4.364372) (xy -3.764307 4.332520) (xy -3.716259 4.295548) (xy -3.662629 4.268327) (xy -3.603700 4.250962) (xy -3.539760 4.243559) (xy -3.524955 4.243278) + (xy -3.462187 4.248465) (xy -3.403148 4.263798) (xy -3.348732 4.288498) (xy -3.299829 4.321785) (xy -3.257332 4.362880) (xy -3.222133 4.411003) (xy -3.195123 4.465374) (xy -3.177195 4.525214) + (xy -3.172664 4.551242) (xy -3.171281 4.567331) (xy -3.170059 4.594232) (xy -3.169007 4.631466) (xy -3.168131 4.678557) (xy -3.167438 4.735027) (xy -3.166936 4.800401) (xy -3.166632 4.874201) + (xy -3.166533 4.953409) (xy -3.166533 5.311422) (xy -3.381022 5.311422) (xy -3.381120 4.985456) (xy -3.381179 4.911083) (xy -3.381353 4.847064) (xy -3.381712 4.792463) (xy -3.382325 4.746344) + (xy -3.383261 4.707772) (xy -3.384590 4.675811) (xy -3.386380 4.649527) (xy -3.388701 4.627983) (xy -3.391622 4.610245) (xy -3.395213 4.595376) (xy -3.399542 4.582441) (xy -3.404679 4.570505) + (xy -3.410693 4.558633) (xy -3.413028 4.554300) (xy -3.437865 4.519759) (xy -3.470670 4.490928) (xy -3.508591 4.470292) (xy -3.510014 4.469734) (xy -3.546596 4.460206) (xy -3.588019 4.456862) + (xy -3.629685 4.459701) (xy -3.666994 4.468717) (xy -3.670027 4.469850) (xy -3.708954 4.490767) (xy -3.742359 4.520516) (xy -3.768921 4.557453) (xy -3.787324 4.599933) (xy -3.793195 4.623478) + (xy -3.794292 4.634959) (xy -3.795301 4.656793) (xy -3.796207 4.688041) (xy -3.796996 4.727766) (xy -3.797654 4.775032) (xy -3.798165 4.828902) (xy -3.798516 4.888439) (xy -3.798693 4.952705) + (xy -3.798711 4.981993) (xy -3.798711 5.311422) (xy -4.013200 5.311422) (xy -4.013200 3.129572) (xy -3.796221 3.129572) (xy -3.795459 3.172792) (xy -3.793738 3.212831) (xy -3.791056 3.247289) + (xy -3.787412 3.273765) (xy -3.785864 3.280884) (xy -3.769259 3.330883) (xy -3.746872 3.371319) (xy -3.718455 3.402465) (xy -3.683758 3.424596) (xy -3.644371 3.437605) (xy -3.610803 3.441407) + (xy -3.572649 3.440423) (xy -3.534607 3.435115) (xy -3.501371 3.425944) (xy -3.493649 3.422784) (xy -3.460590 3.403159) (xy -3.433904 3.376361) (xy -3.412898 3.341398) (xy -3.396881 3.297279) + (xy -3.391658 3.276591) (xy -3.388411 3.255189) (xy -3.386010 3.224925) (xy -3.384438 3.188105) (xy -3.383677 3.147033) (xy -3.383711 3.104013) (xy -3.384522 3.061350) (xy -3.386093 3.021348) + (xy -3.388407 2.986312) (xy -3.391447 2.958546) (xy -3.394132 2.944121) (xy -3.409700 2.896431) (xy -3.430645 2.858386) (xy -3.457744 2.829323) (xy -3.491772 2.808577) (xy -3.533507 2.795486) + (xy -3.574436 2.789968) (xy -3.624827 2.790537) (xy -3.668661 2.800239) (xy -3.706058 2.819162) (xy -3.737134 2.847396) (xy -3.762008 2.885029) (xy -3.780797 2.932150) (xy -3.785683 2.949804) + (xy -3.789699 2.972911) (xy -3.792762 3.004842) (xy -3.794871 3.043196) (xy -3.796025 3.085573) (xy -3.796221 3.129572) (xy -4.013200 3.129572) (xy -4.013200 2.585156) (xy -3.798711 2.585156) + (xy -3.798711 2.693273) (xy -3.769078 2.668121) (xy -3.715513 2.629498) (xy -3.658364 2.601019) (xy -3.598675 2.582834) (xy -3.537493 2.575088) (xy -3.475862 2.577931) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -1.390535 4.247584) (xy -1.333384 4.262004) (xy -1.280751 4.285671) (xy -1.273205 4.290105) (xy -1.255842 4.300373) (xy -1.243067 4.308366) (xy -1.235179 4.315541) (xy -1.232475 4.323356) + (xy -1.235253 4.333266) (xy -1.243811 4.346730) (xy -1.258448 4.365203) (xy -1.279460 4.390144) (xy -1.298196 4.412318) (xy -1.320945 4.439211) (xy -1.341384 4.463031) (xy -1.358357 4.482460) + (xy -1.370711 4.496180) (xy -1.377292 4.502875) (xy -1.377905 4.503299) (xy -1.385255 4.501546) (xy -1.397135 4.494841) (xy -1.399491 4.493213) (xy -1.431843 4.473769) (xy -1.464671 4.462273) + (xy -1.502018 4.457499) (xy -1.518355 4.457194) (xy -1.568557 4.461923) (xy -1.612034 4.475696) (xy -1.648923 4.498596) (xy -1.679364 4.530706) (xy -1.700181 4.565114) (xy -1.718733 4.602789) + (xy -1.720345 4.957106) (xy -1.721958 5.311422) (xy -1.936044 5.311422) (xy -1.936044 4.255911) (xy -1.721555 4.255911) (xy -1.721555 4.364372) (xy -1.688391 4.333667) (xy -1.653546 4.304417) + (xy -1.619332 4.282693) (xy -1.581425 4.265878) (xy -1.569511 4.261676) (xy -1.510557 4.247231) (xy -1.450246 4.242597) (xy -1.390535 4.247584) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 0.679655 4.618418) (xy 0.699590 4.679923) (xy 0.718579 4.738274) (xy 0.736326 4.792583) (xy 0.752539 4.841959) (xy 0.766922 4.885514) (xy 0.779181 4.922357) (xy 0.789022 4.951598) + (xy 0.796151 4.972348) (xy 0.800273 4.983718) (xy 0.801142 4.985639) (xy 0.803301 4.981472) (xy 0.808123 4.967136) (xy 0.815626 4.942562) (xy 0.825831 4.907680) (xy 0.838757 4.862422) + (xy 0.854423 4.806718) (xy 0.872848 4.740498) (xy 0.894053 4.663693) (xy 0.918056 4.576235) (xy 0.944876 4.478053) (xy 0.974534 4.369079) (xy 1.000269 4.274256) (xy 1.005242 4.255911) + (xy 1.118469 4.255911) (xy 1.158505 4.256063) (xy 1.188388 4.256564) (xy 1.209252 4.257489) (xy 1.222228 4.258908) (xy 1.228450 4.260895) (xy 1.229317 4.262967) (xy 1.227299 4.269240) + (xy 1.222089 4.285524) (xy 1.213926 4.311074) (xy 1.203048 4.345145) (xy 1.189692 4.386991) (xy 1.174096 4.435868) (xy 1.156498 4.491031) (xy 1.137134 4.551734) (xy 1.116244 4.617233) + (xy 1.094065 4.686783) (xy 1.070834 4.759639) (xy 1.060924 4.790722) (xy 0.894910 5.311422) (xy 0.706086 5.311422) (xy 0.700912 5.293078) (xy 0.696208 5.276752) (xy 0.688902 5.251859) + (xy 0.679325 5.219496) (xy 0.667807 5.180757) (xy 0.654676 5.136738) (xy 0.640263 5.088534) (xy 0.624896 5.037240) (xy 0.608906 4.983952) (xy 0.592622 4.929766) (xy 0.576374 4.875776) + (xy 0.560490 4.823077) (xy 0.545302 4.772766) (xy 0.531138 4.725937) (xy 0.518327 4.683686) (xy 0.507200 4.647108) (xy 0.498087 4.617298) (xy 0.491315 4.595352) (xy 0.487216 4.582366) + (xy 0.486115 4.579196) (xy 0.483902 4.583258) (xy 0.478774 4.597280) (xy 0.471006 4.620391) (xy 0.460870 4.651721) (xy 0.448642 4.690401) (xy 0.434595 4.735559) (xy 0.419003 4.786327) + (xy 0.402139 4.841835) (xy 0.384279 4.901211) (xy 0.375932 4.929151) (xy 0.357593 4.990625) (xy 0.340110 5.049129) (xy 0.323765 5.103728) (xy 0.308839 5.153487) (xy 0.295612 5.197473) + (xy 0.284367 5.234749) (xy 0.275384 5.264382) (xy 0.268946 5.285438) (xy 0.265331 5.296980) (xy 0.264740 5.298722) (xy 0.262582 5.303414) (xy 0.259096 5.306780) (xy 0.252589 5.309040) + (xy 0.241371 5.310414) (xy 0.223747 5.311122) (xy 0.198026 5.311385) (xy 0.167118 5.311422) (xy 0.074311 5.311422) (xy 0.054351 5.250745) (xy 0.049421 5.235590) (xy 0.041381 5.210663) + (xy 0.030545 5.176944) (xy 0.017227 5.135417) (xy 0.001743 5.087066) (xy -0.015593 5.032873) (xy -0.034467 4.973822) (xy -0.054564 4.910894) (xy -0.075569 4.845074) (xy -0.097168 4.777344) + (xy -0.098751 4.772378) (xy -0.120267 4.704901) (xy -0.141128 4.639523) (xy -0.161028 4.577196) (xy -0.179664 4.518870) (xy -0.196732 4.465496) (xy -0.211927 4.418026) (xy -0.224945 4.377410) + (xy -0.235482 4.344599) (xy -0.243234 4.320544) (xy -0.247896 4.306196) (xy -0.248191 4.305300) (xy -0.264488 4.255911) (xy -0.150589 4.255968) (xy -0.036689 4.256026) (xy 0.061521 4.616833) + (xy 0.078386 4.678664) (xy 0.094462 4.737353) (xy 0.109492 4.791979) (xy 0.123221 4.841624) (xy 0.135391 4.885369) (xy 0.145748 4.922294) (xy 0.154034 4.951480) (xy 0.159994 4.972008) + (xy 0.163372 4.982958) (xy 0.163971 4.984500) (xy 0.167119 4.982006) (xy 0.172859 4.970017) (xy 0.180644 4.949884) (xy 0.189929 4.922954) (xy 0.194096 4.910091) (xy 0.200976 4.888589) + (xy 0.210888 4.857749) (xy 0.223382 4.818967) (xy 0.238005 4.773643) (xy 0.254306 4.723175) (xy 0.271834 4.668963) (xy 0.290136 4.612403) (xy 0.308762 4.554896) (xy 0.312365 4.543778) + (xy 0.404749 4.258734) (xy 0.562293 4.255614) (xy 0.679655 4.618418) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 2.841307 4.243797) (xy 2.868889 4.245889) (xy 2.891458 4.249003) (xy 2.895600 4.249864) (xy 2.917001 4.256371) (xy 2.943502 4.266717) (xy 2.971735 4.279336) (xy 2.998336 4.292663) + (xy 3.019937 4.305131) (xy 3.030288 4.312516) (xy 3.043619 4.323655) (xy 2.968971 4.412550) (xy 2.946257 4.439412) (xy 2.925845 4.463197) (xy 2.908892 4.482587) (xy 2.896557 4.496259) + (xy 2.889995 4.502896) (xy 2.889399 4.503299) (xy 2.881976 4.501544) (xy 2.870054 4.494833) (xy 2.867709 4.493213) (xy 2.852246 4.483631) (xy 2.832550 4.473214) (xy 2.823882 4.469129) + (xy 2.793625 4.460179) (xy 2.757347 4.456600) (xy 2.718940 4.458358) (xy 2.682295 4.465420) (xy 2.667017 4.470473) (xy 2.632263 4.489331) (xy 2.600680 4.516714) (xy 2.575019 4.549866) + (xy 2.561671 4.575969) (xy 2.548467 4.608689) (xy 2.546892 4.960056) (xy 2.545317 5.311422) (xy 2.331156 5.311422) (xy 2.331156 4.255911) (xy 2.545645 4.255911) (xy 2.545645 4.364156) + (xy 2.582270 4.330595) (xy 2.630489 4.293668) (xy 2.683578 4.266853) (xy 2.741710 4.250084) (xy 2.805059 4.243296) (xy 2.813756 4.243142) (xy 2.841307 4.243797) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -4.586122 2.576532) (xy -4.523134 2.585184) (xy -4.465548 2.601232) (xy -4.463110 2.602134) (xy -4.411940 2.626594) (xy -4.362738 2.660143) (xy -4.317451 2.700845) (xy -4.278023 2.746764) + (xy -4.246399 2.795964) (xy -4.228193 2.835931) (xy -4.219147 2.861948) (xy -4.212037 2.886753) (xy -4.206585 2.912364) (xy -4.202515 2.940799) (xy -4.199550 2.974075) (xy -4.197414 3.014211) + (xy -4.195830 3.063223) (xy -4.195563 3.073958) (xy -4.194601 3.142281) (xy -4.195396 3.200986) (xy -4.198164 3.251635) (xy -4.203120 3.295793) (xy -4.210480 3.335024) (xy -4.220461 3.370892) + (xy -4.233278 3.404962) (xy -4.244657 3.429817) (xy -4.269420 3.471363) (xy -4.302243 3.513011) (xy -4.340353 3.551688) (xy -4.380977 3.584322) (xy -4.389113 3.589824) (xy -4.442475 3.618425) + (xy -4.502286 3.639308) (xy -4.566374 3.652042) (xy -4.632567 3.656194) (xy -4.698692 3.651334) (xy -4.698780 3.651322) (xy -4.765656 3.636054) (xy -4.828392 3.610669) (xy -4.885920 3.575814) + (xy -4.937174 3.532137) (xy -4.981086 3.480285) (xy -4.981438 3.479792) (xy -5.002607 3.447583) (xy -5.019779 3.415154) (xy -5.033369 3.380821) (xy -5.043792 3.342902) (xy -5.051461 3.299715) + (xy -5.056791 3.249579) (xy -5.060195 3.190811) (xy -5.061372 3.155188) (xy -5.061429 3.149703) (xy -4.847688 3.149703) (xy -4.846302 3.201872) (xy -4.842573 3.245591) (xy -4.836232 3.282209) + (xy -4.827007 3.313074) (xy -4.814630 3.339532) (xy -4.798830 3.362932) (xy -4.789691 3.373763) (xy -4.756257 3.402806) (xy -4.716319 3.423985) (xy -4.671858 3.436884) (xy -4.624856 3.441084) + (xy -4.577293 3.436169) (xy -4.541751 3.425991) (xy -4.502818 3.405556) (xy -4.469424 3.376053) (xy -4.442594 3.338765) (xy -4.423353 3.294969) (xy -4.416617 3.269716) (xy -4.413331 3.247087) + (xy -4.410860 3.215727) (xy -4.409207 3.178141) (xy -4.408372 3.136836) (xy -4.408357 3.094317) (xy -4.409162 3.053090) (xy -4.410791 3.015660) (xy -4.413244 2.984532) (xy -4.416440 2.962594) + (xy -4.431616 2.912734) (xy -4.454258 2.871329) (xy -4.484452 2.838293) (xy -4.522280 2.813541) (xy -4.567827 2.796986) (xy -4.582297 2.793745) (xy -4.630158 2.789345) (xy -4.676863 2.794503) + (xy -4.720673 2.808511) (xy -4.759850 2.830658) (xy -4.792655 2.860236) (xy -4.812468 2.887613) (xy -4.822406 2.906123) (xy -4.830147 2.924850) (xy -4.836006 2.945627) (xy -4.840300 2.970290) + (xy -4.843345 3.000671) (xy -4.845459 3.038606) (xy -4.846957 3.085929) (xy -4.847002 3.087739) (xy -4.847688 3.149703) (xy -5.061429 3.149703) (xy -5.062187 3.076816) (xy -5.060012 3.008181) + (xy -5.054528 2.948053) (xy -5.045418 2.895200) (xy -5.032365 2.848393) (xy -5.015052 2.806401) (xy -4.993160 2.767993) (xy -4.966374 2.731939) (xy -4.946425 2.709437) (xy -4.897812 2.663847) + (xy -4.846951 2.628613) (xy -4.792173 2.602816) (xy -4.731807 2.585538) (xy -4.715515 2.582418) (xy -4.651316 2.575527) (xy -4.586122 2.576532) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -2.587978 2.577082) (xy -2.543070 2.578260) (xy -2.505524 2.582036) (xy -2.471544 2.589284) (xy -2.437335 2.600879) (xy -2.399101 2.617695) (xy -2.387600 2.623242) (xy -2.361898 2.636514) + (xy -2.340832 2.649475) (xy -2.321112 2.664549) (xy -2.299449 2.684161) (xy -2.282697 2.700563) (xy -2.258840 2.725058) (xy -2.241118 2.745450) (xy -2.227111 2.765006) (xy -2.214401 2.786991) + (xy -2.205119 2.805289) (xy -2.191924 2.832847) (xy -2.181559 2.856760) (xy -2.173654 2.879021) (xy -2.167838 2.901623) (xy -2.163739 2.926557) (xy -2.160987 2.955817) (xy -2.159210 2.991394) + (xy -2.158039 3.035281) (xy -2.157569 3.060700) (xy -2.155282 3.194756) (xy -2.810933 3.194756) (xy -2.810933 3.213741) (xy -2.807426 3.250390) (xy -2.797748 3.290291) (xy -2.783543 3.327392) + (xy -2.758471 3.368223) (xy -2.725410 3.401675) (xy -2.685325 3.427237) (xy -2.639186 3.444400) (xy -2.587958 3.452656) (xy -2.545644 3.452622) (xy -2.497474 3.446591) (xy -2.454500 3.434591) + (xy -2.413433 3.415347) (xy -2.370985 3.387585) (xy -2.363481 3.381992) (xy -2.327395 3.354679) (xy -2.254486 3.416489) (xy -2.230270 3.437334) (xy -2.209256 3.456019) (xy -2.192906 3.471198) + (xy -2.182682 3.481521) (xy -2.179915 3.485264) (xy -2.183120 3.492629) (xy -2.193563 3.505033) (xy -2.209419 3.520786) (xy -2.228863 3.538196) (xy -2.250070 3.555573) (xy -2.271213 3.571227) + (xy -2.276824 3.575038) (xy -2.335352 3.607494) (xy -2.400228 3.632022) (xy -2.469373 3.648205) (xy -2.540708 3.655627) (xy -2.612154 3.653870) (xy -2.647762 3.649340) (xy -2.719330 3.632674) + (xy -2.783622 3.607385) (xy -2.840547 3.573557) (xy -2.890012 3.531277) (xy -2.931924 3.480631) (xy -2.966190 3.421703) (xy -2.992719 3.354580) (xy -3.002164 3.321503) (xy -3.013843 3.262827) + (xy -3.021307 3.197201) (xy -3.024489 3.128176) (xy -3.023323 3.059300) (xy -3.018796 3.006437) (xy -2.810933 3.006437) (xy -2.810933 3.019778) (xy -2.370666 3.019778) (xy -2.370666 2.998386) + (xy -2.375808 2.954825) (xy -2.390314 2.910829) (xy -2.412805 2.869433) (xy -2.441900 2.833667) (xy -2.448453 2.827399) (xy -2.484344 2.801903) (xy -2.525188 2.785237) (xy -2.569052 2.777287) + (xy -2.614001 2.777939) (xy -2.658102 2.787078) (xy -2.699420 2.804592) (xy -2.736021 2.830365) (xy -2.750995 2.845246) (xy -2.772245 2.875074) (xy -2.790193 2.912060) (xy -2.803358 2.952220) + (xy -2.810258 2.991570) (xy -2.810933 3.006437) (xy -3.018796 3.006437) (xy -3.017741 2.994125) (xy -3.009322 2.943578) (xy -2.988483 2.867973) (xy -2.960218 2.800615) (xy -2.924616 2.741630) + (xy -2.881765 2.691143) (xy -2.831753 2.649280) (xy -2.779889 2.618683) (xy -2.742342 2.601610) (xy -2.708373 2.589693) (xy -2.674380 2.582152) (xy -2.636760 2.578207) (xy -2.591911 2.577075) + (xy -2.587978 2.577082) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -0.041013 2.575989) (xy 0.040288 2.586119) (xy 0.118421 2.605882) (xy 0.192088 2.634920) (xy 0.259985 2.672875) (xy 0.280585 2.687065) (xy 0.300017 2.701536) (xy 0.311433 2.711392) + (xy 0.316235 2.718246) (xy 0.315826 2.723705) (xy 0.314452 2.725952) (xy 0.308564 2.733345) (xy 0.296766 2.747613) (xy 0.280485 2.767048) (xy 0.261147 2.789945) (xy 0.248991 2.804257) + (xy 0.190360 2.873149) (xy 0.172791 2.861563) (xy 0.143810 2.844377) (xy 0.108533 2.826318) (xy 0.071536 2.809549) (xy 0.037396 2.796235) (xy 0.027944 2.793096) (xy 0.008439 2.787505) + (xy -0.010041 2.783717) (xy -0.030498 2.781404) (xy -0.055937 2.780238) (xy -0.089361 2.779891) (xy -0.093133 2.779889) (xy -0.125199 2.780034) (xy -0.148516 2.780696) (xy -0.165622 2.782215) + (xy -0.179056 2.784932) (xy -0.191356 2.789187) (xy -0.203804 2.794729) (xy -0.235337 2.814545) (xy -0.257146 2.839969) (xy -0.269450 2.871269) (xy -0.270274 2.875303) (xy -0.272298 2.909382) + (xy -0.264506 2.938014) (xy -0.246765 2.961418) (xy -0.218946 2.979814) (xy -0.203995 2.986185) (xy -0.188989 2.990803) (xy -0.169642 2.994792) (xy -0.144322 2.998373) (xy -0.111396 3.001768) + (xy -0.069232 3.005196) (xy -0.056868 3.006098) (xy -0.018276 3.009138) (xy 0.019728 3.012627) (xy 0.054502 3.016286) (xy 0.083404 3.019837) (xy 0.103791 3.023000) (xy 0.104422 3.023120) + (xy 0.162274 3.039324) (xy 0.212953 3.064083) (xy 0.256116 3.097079) (xy 0.291419 3.137997) (xy 0.318518 3.186517) (xy 0.335723 3.236864) (xy 0.341003 3.266846) (xy 0.343716 3.302670) + (xy 0.343872 3.340321) (xy 0.341481 3.375779) (xy 0.336552 3.405030) (xy 0.335306 3.409631) (xy 0.314334 3.461416) (xy 0.283650 3.508387) (xy 0.244053 3.549841) (xy 0.196345 3.585078) + (xy 0.141326 3.613397) (xy 0.079795 3.634097) (xy 0.078718 3.634374) (xy 0.024528 3.645723) (xy -0.032301 3.653184) (xy -0.087845 3.656419) (xy -0.138176 3.655091) (xy -0.149578 3.653996) + (xy -0.231500 3.640633) (xy -0.306699 3.619572) (xy -0.377215 3.590229) (xy -0.383822 3.586950) (xy -0.410578 3.572369) (xy -0.440435 3.554293) (xy -0.470868 3.534438) (xy -0.499348 3.514519) + (xy -0.523350 3.496252) (xy -0.540346 3.481353) (xy -0.542245 3.479397) (xy -0.555459 3.465332) (xy -0.482664 3.392376) (xy -0.409870 3.319420) (xy -0.380261 3.344715) (xy -0.322153 3.387288) + (xy -0.259667 3.419454) (xy -0.192803 3.441217) (xy -0.121554 3.452577) (xy -0.077300 3.454400) (xy -0.027732 3.451355) (xy 0.017318 3.442590) (xy 0.056323 3.428663) (xy 0.087760 3.410130) + (xy 0.110104 3.387549) (xy 0.111566 3.385413) (xy 0.123003 3.360715) (xy 0.128904 3.331924) (xy 0.129019 3.302972) (xy 0.123100 3.277792) (xy 0.118886 3.269493) (xy 0.110590 3.257587) + (xy 0.101238 3.247727) (xy 0.089594 3.239575) (xy 0.074420 3.232794) (xy 0.054481 3.227044) (xy 0.028539 3.221989) (xy -0.004642 3.217289) (xy -0.046299 3.212607) (xy -0.097668 3.207604) + (xy -0.112465 3.206237) (xy -0.157143 3.201957) (xy -0.192527 3.198077) (xy -0.220593 3.194282) (xy -0.243312 3.190259) (xy -0.262658 3.185695) (xy -0.280606 3.180275) (xy -0.284870 3.178831) + (xy -0.340916 3.154596) (xy -0.387855 3.123693) (xy -0.425649 3.086174) (xy -0.454262 3.042091) (xy -0.473657 2.991494) (xy -0.483796 2.934436) (xy -0.485422 2.897689) (xy -0.480528 2.836623) + (xy -0.466041 2.781269) (xy -0.442255 2.731888) (xy -0.409461 2.688741) (xy -0.367954 2.652088) (xy -0.318026 2.622192) (xy -0.259970 2.599312) (xy -0.194079 2.583710) (xy -0.124178 2.575849) + (xy -0.041013 2.575989) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 0.954676 2.577853) (xy 1.020691 2.589594) (xy 1.064657 2.602975) (xy 1.118626 2.627920) (xy 1.169340 2.661805) (xy 1.215176 2.702969) (xy 1.254511 2.749751) (xy 1.285721 2.800491) + (xy 1.306103 2.850002) (xy 1.314767 2.879346) (xy 1.321539 2.906925) (xy 1.326635 2.934753) (xy 1.330270 2.964842) (xy 1.332662 2.999207) (xy 1.334025 3.039860) (xy 1.334576 3.088816) + (xy 1.334616 3.115734) (xy 1.334112 3.175020) (xy 1.332553 3.224838) (xy 1.329724 3.266979) (xy 1.325414 3.303231) (xy 1.319410 3.335385) (xy 1.311498 3.365230) (xy 1.301467 3.394556) + (xy 1.301453 3.394591) (xy 1.274699 3.450175) (xy 1.238503 3.501603) (xy 1.194349 3.547560) (xy 1.143721 3.586732) (xy 1.088102 3.617806) (xy 1.028976 3.639468) (xy 1.023263 3.640980) + (xy 0.988691 3.647757) (xy 0.948009 3.652522) (xy 0.905551 3.655012) (xy 0.865649 3.654962) (xy 0.834952 3.652450) (xy 0.774008 3.640061) (xy 0.719445 3.620456) (xy 0.669092 3.592525) + (xy 0.620777 3.555157) (xy 0.592485 3.528371) (xy 0.558834 3.491541) (xy 0.531668 3.454655) (xy 0.510298 3.415895) (xy 0.494034 3.373443) (xy 0.482186 3.325480) (xy 0.474062 3.270189) + (xy 0.468975 3.205751) (xy 0.468801 3.202503) (xy 0.466663 3.134801) (xy 0.679373 3.134801) (xy 0.680966 3.183650) (xy 0.684566 3.229419) (xy 0.689450 3.265270) (xy 0.702840 3.312808) + (xy 0.724949 3.354046) (xy 0.754679 3.388260) (xy 0.790932 3.414726) (xy 0.832610 3.432721) (xy 0.878617 3.441519) (xy 0.927855 3.440398) (xy 0.949400 3.436759) (xy 0.996870 3.421704) + (xy 1.036721 3.398319) (xy 1.068950 3.366610) (xy 1.093552 3.326580) (xy 1.110524 3.278234) (xy 1.118162 3.237162) (xy 1.120258 3.213055) (xy 1.121548 3.181586) (xy 1.122078 3.145103) + (xy 1.121899 3.105956) (xy 1.121059 3.066493) (xy 1.119606 3.029062) (xy 1.117590 2.996013) (xy 1.115059 2.969694) (xy 1.112263 2.953222) (xy 1.096028 2.908372) (xy 1.071913 2.868788) + (xy 1.041258 2.836100) (xy 1.005405 2.811938) (xy 0.990425 2.805224) (xy 0.962092 2.797426) (xy 0.927634 2.792687) (xy 0.891339 2.791202) (xy 0.857497 2.793165) (xy 0.832556 2.798077) + (xy 0.788906 2.817078) (xy 0.751708 2.845033) (xy 0.721867 2.881064) (xy 0.700289 2.924291) (xy 0.699125 2.927526) (xy 0.691705 2.956134) (xy 0.685952 2.993541) (xy 0.681934 3.037371) + (xy 0.679718 3.085250) (xy 0.679373 3.134801) (xy 0.466663 3.134801) (xy 0.466590 3.132497) (xy 0.467282 3.064601) (xy 0.470735 3.000539) (xy 0.476806 2.942037) (xy 0.485352 2.890819) + (xy 0.496231 2.848613) (xy 0.498666 2.841429) (xy 0.522599 2.789518) (xy 0.556053 2.739581) (xy 0.597261 2.693570) (xy 0.644454 2.653431) (xy 0.695865 2.621114) (xy 0.700841 2.618553) + (xy 0.758489 2.595411) (xy 0.821437 2.580853) (xy 0.887545 2.574969) (xy 0.954676 2.577853) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 1.624189 2.586442) (xy 1.730022 2.587978) (xy 1.732845 2.937934) (xy 1.735667 3.287889) (xy 1.753134 3.324578) (xy 1.778425 3.365638) (xy 1.810592 3.398322) (xy 1.848497 3.422206) + (xy 1.891000 3.436865) (xy 1.936965 3.441875) (xy 1.985253 3.436811) (xy 2.023869 3.425568) (xy 2.061780 3.405545) (xy 2.093358 3.376523) (xy 2.118179 3.339123) (xy 2.135817 3.293964) + (xy 2.144988 3.248848) (xy 2.145974 3.235653) (xy 2.146905 3.212368) (xy 2.147763 3.180189) (xy 2.148530 3.140315) (xy 2.149187 3.093944) (xy 2.149716 3.042272) (xy 2.150099 2.986499) + (xy 2.150317 2.927821) (xy 2.150359 2.897011) (xy 2.150534 2.585156) (xy 2.359378 2.585156) (xy 2.359378 3.646311) (xy 2.150534 3.646311) (xy 2.150534 3.589867) (xy 2.150318 3.566172) + (xy 2.149738 3.547376) (xy 2.148891 3.535867) (xy 2.148219 3.533422) (xy 2.143351 3.537049) (xy 2.132531 3.546662) (xy 2.117887 3.560357) (xy 2.114285 3.563803) (xy 2.070759 3.598129) + (xy 2.020376 3.625015) (xy 1.965248 3.643882) (xy 1.907485 3.654148) (xy 1.849195 3.655234) (xy 1.803879 3.649160) (xy 1.744779 3.631326) (xy 1.689843 3.603820) (xy 1.640415 3.567702) + (xy 1.597838 3.524035) (xy 1.563456 3.473881) (xy 1.550883 3.449190) (xy 1.544788 3.435663) (xy 1.539512 3.422997) (xy 1.534995 3.410303) (xy 1.531177 3.396690) (xy 1.528001 3.381269) + (xy 1.525406 3.363148) (xy 1.523333 3.341439) (xy 1.521723 3.315251) (xy 1.520517 3.283693) (xy 1.519656 3.245877) (xy 1.519080 3.200912) (xy 1.518731 3.147907) (xy 1.518548 3.085974) + (xy 1.518473 3.014221) (xy 1.518454 2.961798) (xy 1.518356 2.584907) (xy 1.624189 2.586442) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 3.801675 2.577838) (xy 3.844086 2.582151) (xy 3.878618 2.589302) (xy 3.948098 2.614080) (xy 4.010655 2.646772) (xy 4.068497 2.688654) (xy 4.101124 2.718015) (xy 4.118807 2.735519) + (xy 4.129248 2.747289) (xy 4.133631 2.755106) (xy 4.133140 2.760750) (xy 4.131333 2.763438) (xy 4.124724 2.770130) (xy 4.111269 2.782828) (xy 4.092569 2.800051) (xy 4.070228 2.820318) + (xy 4.054423 2.834504) (xy 3.984991 2.896559) (xy 3.950057 2.864946) (xy 3.905014 2.830168) (xy 3.858287 2.806258) (xy 3.808722 2.792804) (xy 3.755165 2.789398) (xy 3.739445 2.790178) + (xy 3.683623 2.798643) (xy 3.635217 2.815545) (xy 3.594054 2.841034) (xy 3.559960 2.875261) (xy 3.532759 2.918375) (xy 3.512278 2.970528) (xy 3.506705 2.990783) (xy 3.501961 3.018063) + (xy 3.498791 3.053365) (xy 3.497191 3.093532) (xy 3.497160 3.135407) (xy 3.498697 3.175835) (xy 3.501799 3.211657) (xy 3.506464 3.239717) (xy 3.506853 3.241322) (xy 3.524854 3.295774) + (xy 3.549603 3.341257) (xy 3.581229 3.377949) (xy 3.619860 3.406024) (xy 3.631094 3.411948) (xy 3.683545 3.431800) (xy 3.737358 3.441095) (xy 3.791115 3.440038) (xy 3.843400 3.428833) + (xy 3.892796 3.407685) (xy 3.937887 3.376800) (xy 3.950198 3.365822) (xy 3.965571 3.351631) (xy 3.977683 3.341097) (xy 3.984336 3.336113) (xy 3.984838 3.335949) (xy 3.989984 3.339530) + (xy 4.001626 3.349163) (xy 4.017921 3.363287) (xy 4.033179 3.376871) (xy 4.056004 3.397393) (xy 4.079603 3.418576) (xy 4.100352 3.437168) (xy 4.108908 3.444819) (xy 4.139259 3.471927) + (xy 4.105863 3.505987) (xy 4.055495 3.550729) (xy 3.999040 3.589194) (xy 3.939132 3.619847) (xy 3.878408 3.641148) (xy 3.870822 3.643094) (xy 3.837021 3.649241) (xy 3.796579 3.653313) + (xy 3.753989 3.655097) (xy 3.713745 3.654380) (xy 3.686164 3.651849) (xy 3.622866 3.638261) (xy 3.560523 3.615954) (xy 3.502246 3.586265) (xy 3.451578 3.550890) (xy 3.405826 3.506152) + (xy 3.366772 3.453156) (xy 3.334657 3.392902) (xy 3.309721 3.326390) (xy 3.292203 3.254620) (xy 3.282345 3.178595) (xy 3.280385 3.099312) (xy 3.286565 3.017775) (xy 3.301125 2.934982) + (xy 3.302394 2.929467) (xy 3.314651 2.888793) (xy 3.332627 2.844471) (xy 3.354433 2.800379) (xy 3.378180 2.760400) (xy 3.397857 2.733310) (xy 3.441085 2.688799) (xy 3.492739 2.649914) + (xy 3.550846 2.617889) (xy 3.613436 2.593955) (xy 3.627243 2.589997) (xy 3.664596 2.582564) (xy 3.708444 2.578054) (xy 3.755299 2.576475) (xy 3.801675 2.577838) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 4.680628 2.577870) (xy 4.747110 2.590613) (xy 4.810783 2.612625) (xy 4.858168 2.636649) (xy 4.887059 2.656853) (xy 4.918455 2.683985) (xy 4.949423 2.715079) (xy 4.977028 2.747169) + (xy 4.998338 2.777290) (xy 4.999929 2.779943) (xy 5.019248 2.815552) (xy 5.034448 2.850625) (xy 5.045939 2.887132) (xy 5.054135 2.927048) (xy 5.059446 2.972346) (xy 5.062285 3.024997) + (xy 5.063067 3.082363) (xy 5.063067 3.194756) (xy 4.406682 3.194756) (xy 4.409821 3.235678) (xy 4.418834 3.288447) (xy 4.436959 3.334843) (xy 4.463656 3.374350) (xy 4.498390 3.406455) + (xy 4.540620 3.430643) (xy 4.589810 3.446400) (xy 4.636911 3.452794) (xy 4.691945 3.450770) (xy 4.746949 3.438644) (xy 4.799332 3.417309) (xy 4.846502 3.387656) (xy 4.861164 3.375598) + (xy 4.887861 3.352042) (xy 4.964246 3.417571) (xy 4.993070 3.442272) (xy 5.013927 3.460947) (xy 5.027174 3.475195) (xy 5.033168 3.486615) (xy 5.032268 3.496808) (xy 5.024829 3.507371) + (xy 5.011209 3.519905) (xy 4.991765 3.536008) (xy 4.990864 3.536756) (xy 4.928186 3.581716) (xy 4.861274 3.616281) (xy 4.790605 3.640317) (xy 4.716654 3.653688) (xy 4.639895 3.656259) + (xy 4.585953 3.651719) (xy 4.513626 3.637387) (xy 4.448232 3.614269) (xy 4.389917 3.582468) (xy 4.338831 3.542088) (xy 4.295122 3.493231) (xy 4.258938 3.436002) (xy 4.249807 3.417711) + (xy 4.228678 3.366545) (xy 4.212926 3.313084) (xy 4.202163 3.255243) (xy 4.195999 3.190937) (xy 4.194046 3.118556) (xy 4.196408 3.040249) (xy 4.200837 2.998386) (xy 4.408311 2.998386) + (xy 4.408311 3.019778) (xy 4.850132 3.019778) (xy 4.846478 2.988684) (xy 4.835523 2.934807) (xy 4.816491 2.887849) (xy 4.789979 2.848391) (xy 4.756585 2.817013) (xy 4.716908 2.794297) + (xy 4.671545 2.780822) (xy 4.628445 2.777067) (xy 4.577621 2.782062) (xy 4.532309 2.796767) (xy 4.493043 2.820760) (xy 4.460354 2.853618) (xy 4.434776 2.894922) (xy 4.416841 2.944248) + (xy 4.416731 2.944669) (xy 4.411969 2.966725) (xy 4.408917 2.988114) (xy 4.408311 2.998386) (xy 4.200837 2.998386) (xy 4.203781 2.970562) (xy 4.216598 2.907797) (xy 4.235291 2.850257) + (xy 4.260291 2.796243) (xy 4.287671 2.750553) (xy 4.328354 2.698639) (xy 4.375732 2.655717) (xy 4.429976 2.621676) (xy 4.491256 2.596406) (xy 4.548508 2.581836) (xy 4.613655 2.574808) + (xy 4.680628 2.577870) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy -1.455607 2.576709) (xy -1.398025 2.586547) (xy -1.342441 2.605476) (xy -1.290257 2.633465) (xy -1.242876 2.670481) (xy -1.236591 2.676494) (xy -1.196114 2.723587) (xy -1.165394 2.776020) + (xy -1.144168 2.834319) (xy -1.134852 2.878667) (xy -1.133349 2.893126) (xy -1.132106 2.915635) (xy -1.131120 2.946627) (xy -1.130384 2.986540) (xy -1.129894 3.035808) (xy -1.129644 3.094867) + (xy -1.129630 3.164153) (xy -1.129845 3.244101) (xy -1.130009 3.282245) (xy -1.131711 3.643489) (xy -1.340555 3.643489) (xy -1.343466 3.296356) (xy -1.344075 3.222962) (xy -1.344637 3.159941) + (xy -1.345238 3.106376) (xy -1.345965 3.061351) (xy -1.346906 3.023951) (xy -1.348146 2.993258) (xy -1.349774 2.968359) (xy -1.351875 2.948336) (xy -1.354536 2.932273) (xy -1.357845 2.919255) + (xy -1.361889 2.908366) (xy -1.366753 2.898690) (xy -1.372525 2.889310) (xy -1.379292 2.879311) (xy -1.383601 2.873022) (xy -1.412603 2.839697) (xy -1.447336 2.814834) (xy -1.486193 2.798315) + (xy -1.527567 2.790026) (xy -1.569849 2.789849) (xy -1.611432 2.797668) (xy -1.650708 2.813368) (xy -1.686071 2.836831) (xy -1.715911 2.867942) (xy -1.734809 2.898422) (xy -1.740082 2.909605) + (xy -1.744601 2.920906) (xy -1.748424 2.933257) (xy -1.751607 2.947586) (xy -1.754210 2.964824) (xy -1.756289 2.985901) (xy -1.757904 3.011746) (xy -1.759111 3.043289) (xy -1.759969 3.081461) + (xy -1.760535 3.127191) (xy -1.760869 3.181409) (xy -1.761026 3.245044) (xy -1.761066 3.319028) (xy -1.761066 3.646311) (xy -1.864548 3.646311) (xy -1.897642 3.646115) (xy -1.926769 3.645570) + (xy -1.950078 3.644741) (xy -1.965718 3.643694) (xy -1.971792 3.642548) (xy -1.972336 3.636482) (xy -1.972856 3.619916) (xy -1.973347 3.593641) (xy -1.973803 3.558446) (xy -1.974219 3.515121) + (xy -1.974589 3.464455) (xy -1.974908 3.407239) (xy -1.975169 3.344261) (xy -1.975367 3.276312) (xy -1.975497 3.204181) (xy -1.975554 3.128658) (xy -1.975555 3.111971) (xy -1.975555 2.585156) + (xy -1.761066 2.585156) (xy -1.761066 2.699339) (xy -1.724419 2.665057) (xy -1.677877 2.628940) (xy -1.626323 2.602080) (xy -1.571158 2.584443) (xy -1.513785 2.575997) (xy -1.455607 2.576709) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 3.117218 2.577431) (xy 3.144324 2.579681) (xy 3.166159 2.583822) (xy 3.177822 2.587301) (xy 3.201355 2.596444) (xy 3.228498 2.608742) (xy 3.255651 2.622390) (xy 3.279215 2.635583) + (xy 3.294868 2.645955) (xy 3.307492 2.655711) (xy 3.236517 2.740378) (xy 3.214154 2.767001) (xy 3.193939 2.790967) (xy 3.177116 2.810807) (xy 3.164933 2.825051) (xy 3.158636 2.832231) + (xy 3.158407 2.832474) (xy 3.152467 2.835802) (xy 3.143857 2.833732) (xy 3.129796 2.825460) (xy 3.126447 2.823233) (xy 3.087010 2.802883) (xy 3.044516 2.791687) (xy 3.000847 2.789324) + (xy 2.957885 2.795474) (xy 2.917509 2.809815) (xy 2.881601 2.832027) (xy 2.852041 2.861789) (xy 2.845323 2.871182) (xy 2.838087 2.882133) (xy 2.831870 2.892127) (xy 2.826591 2.902076) + (xy 2.822166 2.912896) (xy 2.818513 2.925501) (xy 2.815550 2.940804) (xy 2.813195 2.959722) (xy 2.811364 2.983167) (xy 2.809976 3.012054) (xy 2.808948 3.047298) (xy 2.808197 3.089813) + (xy 2.807642 3.140513) (xy 2.807200 3.200313) (xy 2.806788 3.270126) (xy 2.806616 3.300589) (xy 2.804655 3.646311) (xy 2.700373 3.646311) (xy 2.660984 3.646106) (xy 2.631756 3.645440) + (xy 2.611567 3.644241) (xy 2.599296 3.642433) (xy 2.593820 3.639943) (xy 2.593400 3.639256) (xy 2.593025 3.632701) (xy 2.592696 3.615658) (xy 2.592416 3.588926) (xy 2.592185 3.553305) + (xy 2.592007 3.509594) (xy 2.591883 3.458595) (xy 2.591814 3.401106) (xy 2.591803 3.337928) (xy 2.591851 3.269861) (xy 2.591960 3.197704) (xy 2.592133 3.122258) (xy 2.592166 3.110089) + (xy 2.593622 2.587978) (xy 2.699456 2.586442) (xy 2.805289 2.584907) (xy 2.805289 2.698992) (xy 2.840527 2.667104) (xy 2.885593 2.631236) (xy 2.931621 2.605094) (xy 2.980770 2.587868) + (xy 3.035204 2.578750) (xy 3.081867 2.576744) (xy 3.117218 2.577431) )(layer F.SilkS) (width 0.010000) + ) + (fp_poly (pts (xy 0.530628 -5.301544) (xy 0.547790 -5.286022) (xy 0.642971 -4.774559) (xy 0.661750 -4.674032) (xy 0.678626 -4.584493) (xy 0.693628 -4.505807) (xy 0.706781 -4.437839) (xy 0.718113 -4.380453) + (xy 0.727651 -4.333516) (xy 0.735422 -4.296892) (xy 0.741452 -4.270446) (xy 0.745769 -4.254044) (xy 0.748092 -4.247926) (xy 0.760150 -4.234340) (xy 0.772716 -4.225225) (xy 0.780388 -4.221824) + (xy 0.797594 -4.214538) (xy 0.823416 -4.203748) (xy 0.856935 -4.189832) (xy 0.897233 -4.173171) (xy 0.943391 -4.154145) (xy 0.994490 -4.133131) (xy 1.049613 -4.110511) (xy 1.107840 -4.086664) + (xy 1.127167 -4.078758) (xy 1.202922 -4.047876) (xy 1.268741 -4.021255) (xy 1.325070 -3.998723) (xy 1.372354 -3.980110) (xy 1.411041 -3.965244) (xy 1.441576 -3.953954) (xy 1.464405 -3.946068) + (xy 1.479974 -3.941415) (xy 1.488730 -3.939824) (xy 1.488947 -3.939822) (xy 1.493077 -3.939723) (xy 1.496781 -3.939670) (xy 1.500625 -3.940032) (xy 1.505175 -3.941176) (xy 1.510998 -3.943470) + (xy 1.518658 -3.947282) (xy 1.528722 -3.952980) (xy 1.541757 -3.960932) (xy 1.558327 -3.971504) (xy 1.579000 -3.985066) (xy 1.604341 -4.001985) (xy 1.634916 -4.022629) (xy 1.671291 -4.047365) + (xy 1.714032 -4.076562) (xy 1.763705 -4.110587) (xy 1.820876 -4.149808) (xy 1.886111 -4.194593) (xy 1.959976 -4.245309) (xy 1.976683 -4.256779) (xy 2.036924 -4.298041) (xy 2.094736 -4.337455) + (xy 2.149413 -4.374550) (xy 2.200247 -4.408855) (xy 2.246531 -4.439898) (xy 2.287557 -4.467208) (xy 2.322618 -4.490313) (xy 2.351006 -4.508741) (xy 2.372014 -4.522021) (xy 2.384934 -4.529682) + (xy 2.388776 -4.531447) (xy 2.405625 -4.529661) (xy 2.422642 -4.522074) (xy 2.429346 -4.516402) (xy 2.443399 -4.503320) (xy 2.464194 -4.483426) (xy 2.491124 -4.457317) (xy 2.523579 -4.425591) + (xy 2.560954 -4.388844) (xy 2.602639 -4.347675) (xy 2.648027 -4.302680) (xy 2.696509 -4.254458) (xy 2.747479 -4.203605) (xy 2.792251 -4.158813) (xy 2.859786 -4.091062) (xy 2.919503 -4.030938) + (xy 2.971655 -3.978178) (xy 3.016496 -3.932520) (xy 3.054280 -3.893698) (xy 3.085262 -3.861451) (xy 3.109695 -3.835514) (xy 3.127834 -3.815625) (xy 3.139932 -3.801519) (xy 3.146244 -3.792933) + (xy 3.147302 -3.790660) (xy 3.148317 -3.772894) (xy 3.145466 -3.758623) (xy 3.141456 -3.751743) (xy 3.131512 -3.736260) (xy 3.116100 -3.712866) (xy 3.095688 -3.682254) (xy 3.070745 -3.645117) + (xy 3.041738 -3.602149) (xy 3.009135 -3.554043) (xy 2.973404 -3.501492) (xy 2.935012 -3.445189) (xy 2.894428 -3.385828) (xy 2.855795 -3.329456) (xy 2.806358 -3.257369) (xy 2.762946 -3.193972) + (xy 2.725170 -3.138668) (xy 2.692641 -3.090858) (xy 2.664968 -3.049945) (xy 2.641762 -3.015330) (xy 2.622634 -2.986415) (xy 2.607194 -2.962601) (xy 2.595053 -2.943291) (xy 2.585821 -2.927886) + (xy 2.579108 -2.915788) (xy 2.574526 -2.906398) (xy 2.571684 -2.899119) (xy 2.570193 -2.893353) (xy 2.569768 -2.890183) (xy 2.569637 -2.884427) (xy 2.570384 -2.877474) (xy 2.572311 -2.868554) + (xy 2.575723 -2.856897) (xy 2.580925 -2.841732) (xy 2.588220 -2.822288) (xy 2.597913 -2.797797) (xy 2.610307 -2.767486) (xy 2.625708 -2.730586) (xy 2.644419 -2.686327) (xy 2.666744 -2.633938) + (xy 2.692988 -2.572649) (xy 2.719890 -2.509983) (xy 2.745748 -2.449902) (xy 2.770489 -2.392621) (xy 2.793723 -2.339026) (xy 2.815065 -2.290001) (xy 2.834125 -2.246433) (xy 2.850515 -2.209205) + (xy 2.863849 -2.179205) (xy 2.873737 -2.157316) (xy 2.879793 -2.144424) (xy 2.881367 -2.141460) (xy 2.884053 -2.137207) (xy 2.886616 -2.133425) (xy 2.889737 -2.129960) (xy 2.894099 -2.126657) + (xy 2.900384 -2.123362) (xy 2.909274 -2.119920) (xy 2.921451 -2.116178) (xy 2.937597 -2.111980) (xy 2.958394 -2.107173) (xy 2.984524 -2.101602) (xy 3.016669 -2.095113) (xy 3.055511 -2.087551) + (xy 3.101732 -2.078762) (xy 3.156015 -2.068591) (xy 3.219041 -2.056885) (xy 3.291492 -2.043489) (xy 3.374050 -2.028249) (xy 3.414889 -2.020709) (xy 3.447998 -2.014580) (xy 3.490632 -2.006665) + (xy 3.541223 -1.997256) (xy 3.598199 -1.986644) (xy 3.659992 -1.975124) (xy 3.725032 -1.962987) (xy 3.791748 -1.950526) (xy 3.858570 -1.938033) (xy 3.859199 -1.937915) (xy 3.886337 -1.931913) + (xy 3.904891 -1.925321) (xy 3.917557 -1.917117) (xy 3.919877 -1.914939) (xy 3.934178 -1.900638) (xy 3.934178 -1.383375) (xy 3.934189 -1.293710) (xy 3.934194 -1.214651) (xy 3.934154 -1.145518) + (xy 3.934028 -1.085628) (xy 3.933776 -1.034299) (xy 3.933358 -0.990850) (xy 3.932733 -0.954598) (xy 3.931863 -0.924863) (xy 3.930705 -0.900961) (xy 3.929221 -0.882211) (xy 3.927370 -0.867932) + (xy 3.925112 -0.857441) (xy 3.922406 -0.850056) (xy 3.919213 -0.845096) (xy 3.915492 -0.841879) (xy 3.911204 -0.839723) (xy 3.906307 -0.837946) (xy 3.901947 -0.836348) (xy 3.894072 -0.834380) + (xy 3.875947 -0.830540) (xy 3.848428 -0.824989) (xy 3.812367 -0.817893) (xy 3.768620 -0.809416) (xy 3.718040 -0.799721) (xy 3.661483 -0.788974) (xy 3.599801 -0.777337) (xy 3.533849 -0.764975) + (xy 3.464482 -0.752053) (xy 3.426178 -0.744950) (xy 3.355210 -0.731792) (xy 3.287108 -0.719131) (xy 3.222736 -0.707128) (xy 3.162959 -0.695946) (xy 3.108641 -0.685748) (xy 3.060647 -0.676698) + (xy 3.019842 -0.668957) (xy 2.987090 -0.662689) (xy 2.963256 -0.658057) (xy 2.949205 -0.655223) (xy 2.946033 -0.654510) (xy 2.928532 -0.647090) (xy 2.913842 -0.636382) (xy 2.913373 -0.635893) + (xy 2.908520 -0.627699) (xy 2.900052 -0.609992) (xy 2.888376 -0.583805) (xy 2.873905 -0.550170) (xy 2.857048 -0.510117) (xy 2.838214 -0.464678) (xy 2.817814 -0.414885) (xy 2.796258 -0.361769) + (xy 2.773957 -0.306362) (xy 2.751319 -0.249695) (xy 2.728756 -0.192799) (xy 2.706677 -0.136707) (xy 2.685492 -0.082450) (xy 2.665612 -0.031058) (xy 2.647446 0.016435) (xy 2.631404 0.059000) + (xy 2.617897 0.095603) (xy 2.607335 0.125215) (xy 2.600128 0.146803) (xy 2.596685 0.159336) (xy 2.596445 0.161332) (xy 2.596345 0.165943) (xy 2.596311 0.170056) (xy 2.596740 0.174289) + (xy 2.598028 0.179260) (xy 2.600572 0.185586) (xy 2.604769 0.193884) (xy 2.611015 0.204773) (xy 2.619708 0.218868) (xy 2.631243 0.236788) (xy 2.646019 0.259150) (xy 2.664431 0.286571) + (xy 2.686877 0.319670) (xy 2.713753 0.359063) (xy 2.745456 0.405368) (xy 2.782383 0.459202) (xy 2.824931 0.521182) (xy 2.868192 0.584200) (xy 2.906622 0.640193) (xy 2.943767 0.694319) + (xy 2.979038 0.745723) (xy 3.011851 0.793551) (xy 3.041618 0.836948) (xy 3.067753 0.875058) (xy 3.089670 0.907026) (xy 3.106781 0.931997) (xy 3.118501 0.949116) (xy 3.123189 0.955979) + (xy 3.130632 0.966286) (xy 3.137421 0.975165) (xy 3.143143 0.983158) (xy 3.147386 0.990805) (xy 3.149738 0.998647) (xy 3.149787 1.007226) (xy 3.147120 1.017083) (xy 3.141326 1.028759) + (xy 3.131992 1.042794) (xy 3.118706 1.059731) (xy 3.101056 1.080109) (xy 3.078630 1.104471) (xy 3.051015 1.133357) (xy 3.017800 1.167309) (xy 2.978572 1.206867) (xy 2.932920 1.252573) + (xy 2.880430 1.304967) (xy 2.820691 1.364592) (xy 2.784074 1.401185) (xy 2.721774 1.463474) (xy 2.666940 1.518256) (xy 2.619062 1.566013) (xy 2.577630 1.607227) (xy 2.542133 1.642378) + (xy 2.512062 1.671949) (xy 2.486906 1.696421) (xy 2.466155 1.716277) (xy 2.449299 1.731997) (xy 2.435828 1.744064) (xy 2.425231 1.752958) (xy 2.416999 1.759162) (xy 2.410620 1.763158) + (xy 2.405586 1.765426) (xy 2.401385 1.766449) (xy 2.397509 1.766708) (xy 2.396902 1.766711) (xy 2.392160 1.766196) (xy 2.386036 1.764380) (xy 2.377903 1.760856) (xy 2.367133 1.755217) + (xy 2.353096 1.747056) (xy 2.335164 1.735965) (xy 2.312710 1.721538) (xy 2.285104 1.703368) (xy 2.251718 1.681047) (xy 2.211924 1.654169) (xy 2.165094 1.622327) (xy 2.110598 1.585113) + (xy 2.047809 1.542120) (xy 2.007484 1.514473) (xy 1.949063 1.474406) (xy 1.892810 1.435830) (xy 1.839501 1.399275) (xy 1.789906 1.365270) (xy 1.744798 1.334345) (xy 1.704950 1.307029) + (xy 1.671134 1.283853) (xy 1.644124 1.265345) (xy 1.624690 1.252036) (xy 1.613607 1.244454) (xy 1.612267 1.243540) (xy 1.600036 1.235445) (xy 1.588970 1.229341) (xy 1.577966 1.225561) + (xy 1.565919 1.224440) (xy 1.551725 1.226309) (xy 1.534279 1.231501) (xy 1.512477 1.240352) (xy 1.485215 1.253192) (xy 1.451389 1.270356) (xy 1.409893 1.292177) (xy 1.359624 1.318988) + (xy 1.356286 1.320772) (xy 1.314696 1.342871) (xy 1.275990 1.363176) (xy 1.241351 1.381085) (xy 1.211967 1.395995) (xy 1.189022 1.407306) (xy 1.173701 1.414415) (xy 1.167304 1.416728) + (xy 1.156684 1.413153) (xy 1.144177 1.404471) (xy 1.143713 1.404056) (xy 1.140231 1.398669) (xy 1.133901 1.386135) (xy 1.124619 1.366206) (xy 1.112280 1.338633) (xy 1.096778 1.303168) + (xy 1.078009 1.259564) (xy 1.055867 1.207573) (xy 1.030248 1.146947) (xy 1.001046 1.077438) (xy 0.968158 0.998798) (xy 0.931476 0.910779) (xy 0.890897 0.813133) (xy 0.846316 0.705613) + (xy 0.797628 0.587970) (xy 0.779331 0.543714) (xy 0.740781 0.450394) (xy 0.703418 0.359844) (xy 0.667469 0.272622) (xy 0.633162 0.189281) (xy 0.600723 0.110376) (xy 0.570380 0.036463) + (xy 0.542359 -0.031903) (xy 0.516889 -0.094167) (xy 0.494195 -0.149775) (xy 0.474506 -0.198171) (xy 0.458047 -0.238799) (xy 0.445047 -0.271106) (xy 0.435732 -0.294536) (xy 0.430330 -0.308534) + (xy 0.428978 -0.312565) (xy 0.432146 -0.328436) (xy 0.442451 -0.343884) (xy 0.461092 -0.360231) (xy 0.488975 -0.378619) (xy 0.507565 -0.390017) (xy 0.525138 -0.401248) (xy 0.543327 -0.413459) + (xy 0.563763 -0.427798) (xy 0.588078 -0.445413) (xy 0.617903 -0.467450) (xy 0.654869 -0.495057) (xy 0.659863 -0.498799) (xy 0.744951 -0.569595) (xy 0.822433 -0.648628) (xy 0.891809 -0.735360) + (xy 0.922700 -0.780519) (xy 0.977694 -0.875335) (xy 1.022301 -0.973630) (xy 1.056603 -1.074658) (xy 1.080680 -1.177670) (xy 1.094614 -1.281921) (xy 1.098486 -1.386662) (xy 1.092378 -1.491147) + (xy 1.076369 -1.594628) (xy 1.050542 -1.696357) (xy 1.014978 -1.795589) (xy 0.969757 -1.891574) (xy 0.914960 -1.983567) (xy 0.850670 -2.070820) (xy 0.776966 -2.152585) (xy 0.773350 -2.156203) + (xy 0.690844 -2.230539) (xy 0.602182 -2.295486) (xy 0.507761 -2.350846) (xy 0.407979 -2.396422) (xy 0.303233 -2.432014) (xy 0.193921 -2.457426) (xy 0.155222 -2.463795) (xy 0.109393 -2.468823) + (xy 0.056164 -2.471835) (xy -0.000756 -2.472829) (xy -0.057657 -2.471804) (xy -0.110833 -2.468758) (xy -0.155222 -2.463890) (xy -0.263310 -2.442679) (xy -0.366631 -2.411675) (xy -0.464796 -2.371467) + (xy -0.557415 -2.322646) (xy -0.644099 -2.265800) (xy -0.724459 -2.201520) (xy -0.798105 -2.130395) (xy -0.864649 -2.053015) (xy -0.923699 -1.969969) (xy -0.974868 -1.881847) (xy -1.017766 -1.789239) + (xy -1.052002 -1.692734) (xy -1.077189 -1.592922) (xy -1.092937 -1.490393) (xy -1.098855 -1.385735) (xy -1.094556 -1.279539) (xy -1.079649 -1.172394) (xy -1.061303 -1.091883) (xy -1.028792 -0.990840) + (xy -0.986353 -0.893090) (xy -0.934740 -0.799762) (xy -0.874711 -0.711984) (xy -0.807020 -0.630885) (xy -0.732423 -0.557596) (xy -0.669247 -0.506067) (xy -0.631142 -0.477634) (xy -0.600468 -0.454908) + (xy -0.575655 -0.436780) (xy -0.555136 -0.422139) (xy -0.537340 -0.409876) (xy -0.520700 -0.398881) (xy -0.503647 -0.388045) (xy -0.493380 -0.381663) (xy -0.464737 -0.362699) (xy -0.445335 -0.346560) + (xy -0.433923 -0.331904) (xy -0.429253 -0.317388) (xy -0.428978 -0.312480) (xy -0.431100 -0.306386) (xy -0.437317 -0.290417) (xy -0.447400 -0.265130) (xy -0.461123 -0.231078) (xy -0.478259 -0.188818) + (xy -0.498580 -0.138905) (xy -0.521859 -0.081893) (xy -0.547869 -0.018338) (xy -0.576384 0.051205) (xy -0.607175 0.126180) (xy -0.640015 0.206034) (xy -0.674678 0.290210) (xy -0.710937 0.378154) + (xy -0.748563 0.469310) (xy -0.779342 0.543798) (xy -0.829560 0.665192) (xy -0.875633 0.776371) (xy -0.917664 0.877583) (xy -0.955756 0.969070) (xy -0.990013 1.051080) (xy -1.020540 1.123856) + (xy -1.047439 1.187644) (xy -1.070815 1.242689) (xy -1.090772 1.289235) (xy -1.107412 1.327528) (xy -1.120841 1.357812) (xy -1.131162 1.380334) (xy -1.138478 1.395337) (xy -1.142893 1.403067) + (xy -1.143723 1.404056) (xy -1.155970 1.412870) (xy -1.166343 1.416747) (xy -1.166679 1.416756) (xy -1.173572 1.414174) (xy -1.189217 1.406829) (xy -1.212436 1.395321) (xy -1.242049 1.380251) + (xy -1.276875 1.362217) (xy -1.315735 1.341822) (xy -1.355322 1.320800) (xy -1.403656 1.295077) (xy -1.443160 1.274287) (xy -1.474899 1.257930) (xy -1.499938 1.245506) (xy -1.519342 1.236516) + (xy -1.534176 1.230458) (xy -1.545507 1.226835) (xy -1.554398 1.225145) (xy -1.559799 1.224845) (xy -1.563508 1.224661) (xy -1.566583 1.224342) (xy -1.569556 1.224234) (xy -1.572957 1.224683) + (xy -1.577317 1.226038) (xy -1.583166 1.228644) (xy -1.591036 1.232850) (xy -1.601456 1.239000) (xy -1.614958 1.247443) (xy -1.632072 1.258526) (xy -1.653329 1.272594) (xy -1.679259 1.289996) + (xy -1.710393 1.311078) (xy -1.747262 1.336186) (xy -1.790396 1.365669) (xy -1.840326 1.399872) (xy -1.897583 1.439142) (xy -1.962696 1.483827) (xy -2.036198 1.534273) (xy -2.097649 1.576441) + (xy -2.156090 1.616496) (xy -2.205994 1.650584) (xy -2.248100 1.679177) (xy -2.283146 1.702743) (xy -2.311871 1.721752) (xy -2.335013 1.736675) (xy -2.353310 1.747980) (xy -2.367502 1.756137) + (xy -2.378325 1.761616) (xy -2.386520 1.764887) (xy -2.392823 1.766420) (xy -2.396756 1.766711) (xy -2.400643 1.766538) (xy -2.404751 1.765696) (xy -2.409589 1.763703) (xy -2.415670 1.760079) + (xy -2.423503 1.754342) (xy -2.433599 1.746009) (xy -2.446467 1.734599) (xy -2.462619 1.719631) (xy -2.482565 1.700622) (xy -2.506815 1.677091) (xy -2.535880 1.648557) (xy -2.570270 1.614537) + (xy -2.610495 1.574550) (xy -2.657067 1.528114) (xy -2.710494 1.474748) (xy -2.771288 1.413970) (xy -2.784073 1.401185) (xy -2.848033 1.337295) (xy -2.904513 1.280936) (xy -2.953927 1.231568) + (xy -2.996686 1.188649) (xy -3.033202 1.151639) (xy -3.063889 1.119995) (xy -3.089157 1.093177) (xy -3.109420 1.070644) (xy -3.125089 1.051855) (xy -3.136578 1.036269) (xy -3.144297 1.023343) + (xy -3.148659 1.012539) (xy -3.150076 1.003313) (xy -3.148962 0.995125) (xy -3.145727 0.987435) (xy -3.140783 0.979700) (xy -3.134545 0.971380) (xy -3.127422 0.961933) (xy -3.123222 0.955979) + (xy -3.115691 0.944952) (xy -3.102350 0.925460) (xy -3.083776 0.898345) (xy -3.060547 0.864450) (xy -3.033241 0.824617) (xy -3.002434 0.779688) (xy -2.968705 0.730507) (xy -2.932631 0.677914) + (xy -2.894790 0.622754) (xy -2.862919 0.576303) (xy -2.815484 0.507183) (xy -2.774018 0.446759) (xy -2.738121 0.394410) (xy -2.707395 0.349511) (xy -2.681438 0.311440) (xy -2.659852 0.279573) + (xy -2.642235 0.253288) (xy -2.628189 0.231962) (xy -2.617313 0.214970) (xy -2.609207 0.201690) (xy -2.603471 0.191500) (xy -2.599706 0.183775) (xy -2.597512 0.177892) (xy -2.596488 0.173229) + (xy -2.596234 0.169163) (xy -2.596352 0.165069) (xy -2.596444 0.161102) (xy -2.597694 0.153221) (xy -2.601568 0.139403) (xy -2.608257 0.119148) (xy -2.617949 0.091953) (xy -2.630834 0.057318) + (xy -2.647099 0.014742) (xy -2.666936 -0.036277) (xy -2.690532 -0.096240) (xy -2.718077 -0.165647) (xy -2.748576 -0.242042) (xy -2.773649 -0.304511) (xy -2.797708 -0.364085) (xy -2.820396 -0.419906) + (xy -2.841359 -0.471116) (xy -2.860240 -0.516858) (xy -2.876685 -0.556275) (xy -2.890338 -0.588508) (xy -2.900843 -0.612700) (xy -2.907845 -0.627993) (xy -2.910791 -0.633371) (xy -2.922389 -0.644068) + (xy -2.930716 -0.649780) (xy -2.937652 -0.651590) (xy -2.954859 -0.655283) (xy -2.981508 -0.660699) (xy -3.016769 -0.667677) (xy -3.059810 -0.676059) (xy -3.109801 -0.685683) (xy -3.165913 -0.696390) + (xy -3.227314 -0.708018) (xy -3.293174 -0.720409) (xy -3.362663 -0.733402) (xy -3.410557 -0.742313) (xy -3.482089 -0.755602) (xy -3.550614 -0.768348) (xy -3.615294 -0.780394) (xy -3.675292 -0.791584) + (xy -3.729770 -0.801759) (xy -3.777889 -0.810765) (xy -3.818813 -0.818443) (xy -3.851702 -0.824638) (xy -3.875719 -0.829192) (xy -3.890027 -0.831949) (xy -3.893741 -0.832708) (xy -3.907033 -0.838905) + (xy -3.920516 -0.849425) (xy -3.934178 -0.863087) (xy -3.933998 -1.381221) (xy -3.933968 -1.469914) (xy -3.933924 -1.548015) (xy -3.933838 -1.616222) (xy -3.933679 -1.675232) (xy -3.933419 -1.725741) + (xy -3.933030 -1.768449) (xy -3.932481 -1.804051) (xy -3.931744 -1.833245) (xy -3.930790 -1.856728) (xy -3.929589 -1.875198) (xy -3.928114 -1.889352) (xy -3.926334 -1.899886) (xy -3.924220 -1.907499) + (xy -3.921744 -1.912888) (xy -3.918877 -1.916749) (xy -3.915589 -1.919780) (xy -3.911851 -1.922679) (xy -3.911428 -1.923007) (xy -3.904704 -1.925016) (xy -3.887686 -1.928904) (xy -3.861182 -1.934513) + (xy -3.826002 -1.941684) (xy -3.782955 -1.950259) (xy -3.732850 -1.960077) (xy -3.676497 -1.970982) (xy -3.614703 -1.982814) (xy -3.548279 -1.995415) (xy -3.478033 -2.008626) (xy -3.411895 -2.020965) + (xy -3.338702 -2.034626) (xy -3.268466 -2.047845) (xy -3.202010 -2.060462) (xy -3.140159 -2.072315) (xy -3.083736 -2.083242) (xy -3.033565 -2.093081) (xy -2.990471 -2.101672) (xy -2.955277 -2.108853) + (xy -2.928807 -2.114463) (xy -2.911886 -2.118339) (xy -2.905531 -2.120198) (xy -2.890952 -2.130771) (xy -2.881144 -2.141800) (xy -2.877453 -2.149193) (xy -2.869718 -2.166084) (xy -2.858323 -2.191588) + (xy -2.843658 -2.224820) (xy -2.826107 -2.264897) (xy -2.806058 -2.310932) (xy -2.783898 -2.362042) (xy -2.760013 -2.417342) (xy -2.734791 -2.475947) (xy -2.720224 -2.509883) (xy -2.688555 -2.583898) + (xy -2.661201 -2.648195) (xy -2.637917 -2.703383) (xy -2.618459 -2.750072) (xy -2.602580 -2.788871) (xy -2.590035 -2.820388) (xy -2.580580 -2.845233) (xy -2.573969 -2.864015) (xy -2.569957 -2.877342) + (xy -2.568298 -2.885824) (xy -2.568222 -2.887372) (xy -2.568599 -2.891891) (xy -2.569985 -2.897401) (xy -2.572766 -2.904494) (xy -2.577327 -2.913762) (xy -2.584053 -2.925797) (xy -2.593329 -2.941191) + (xy -2.605539 -2.960537) (xy -2.621070 -2.984425) (xy -2.640305 -3.013449) (xy -2.663631 -3.048201) (xy -2.691431 -3.089272) (xy -2.724092 -3.137254) (xy -2.761998 -3.192740) (xy -2.805534 -3.256322) + (xy -2.855084 -3.328592) (xy -2.856278 -3.330332) (xy -2.898718 -3.392299) (xy -2.939348 -3.451807) (xy -2.977709 -3.508173) (xy -3.013341 -3.560714) (xy -3.045785 -3.608746) (xy -3.074582 -3.651587) + (xy -3.099272 -3.688552) (xy -3.119396 -3.718958) (xy -3.134494 -3.742122) (xy -3.144107 -3.757360) (xy -3.147776 -3.763989) (xy -3.147778 -3.763998) (xy -3.148502 -3.780380) (xy -3.146177 -3.791083) + (xy -3.141150 -3.797751) (xy -3.128312 -3.812078) (xy -3.107910 -3.833812) (xy -3.080190 -3.862704) (xy -3.045400 -3.898505) (xy -3.003784 -3.940965) (xy -2.955590 -3.989833) (xy -2.901064 -4.044860) + (xy -2.840451 -4.105797) (xy -2.774000 -4.172393) (xy -2.701955 -4.244398) (xy -2.624564 -4.321563) (xy -2.542072 -4.403639) (xy -2.541630 -4.404078) (xy -2.505349 -4.440026) (xy -2.476077 -4.468708) + (xy -2.452917 -4.490913) (xy -2.434967 -4.507428) (xy -2.421329 -4.519043) (xy -2.411103 -4.526545) (xy -2.403388 -4.530723) (xy -2.397285 -4.532365) (xy -2.395090 -4.532489) (xy -2.390075 -4.531232) + (xy -2.381460 -4.527238) (xy -2.368735 -4.520172) (xy -2.351391 -4.509698) (xy -2.328917 -4.495480) (xy -2.300804 -4.477182) (xy -2.266542 -4.454470) (xy -2.225620 -4.427008) (xy -2.177529 -4.394460) + (xy -2.121759 -4.356491) (xy -2.057800 -4.312765) (xy -1.985143 -4.262947) (xy -1.977682 -4.257825) (xy -1.901761 -4.205694) (xy -1.834593 -4.159571) (xy -1.775615 -4.119090) (xy -1.724263 -4.083885) + (xy -1.679972 -4.053590) (xy -1.642180 -4.027837) (xy -1.610323 -4.006261) (xy -1.583837 -3.988494) (xy -1.562159 -3.974172) (xy -1.544725 -3.962927) (xy -1.530971 -3.954393) (xy -1.520333 -3.948204) + (xy -1.512249 -3.943993) (xy -1.506153 -3.941394) (xy -1.501484 -3.940040) (xy -1.497677 -3.939566) (xy -1.494168 -3.939604) (xy -1.490393 -3.939789) (xy -1.488463 -3.939822) (xy -1.480049 -3.941178) + (xy -1.465404 -3.945376) (xy -1.444009 -3.952617) (xy -1.415341 -3.963099) (xy -1.378881 -3.977020) (xy -1.334108 -3.994579) (xy -1.280501 -4.015976) (xy -1.217539 -4.041407) (xy -1.146438 -4.070365) + (xy -1.073861 -4.100019) (xy -1.011006 -4.125723) (xy -0.957150 -4.147800) (xy -0.911564 -4.166574) (xy -0.873524 -4.182367) (xy -0.842303 -4.195502) (xy -0.817176 -4.206303) (xy -0.797417 -4.215092) + (xy -0.782299 -4.222193) (xy -0.771098 -4.227927) (xy -0.763086 -4.232620) (xy -0.757539 -4.236592) (xy -0.753729 -4.240169) (xy -0.750932 -4.243671) (xy -0.748421 -4.247423) (xy -0.748372 -4.247498) + (xy -0.745675 -4.254390) (xy -0.741719 -4.268921) (xy -0.736432 -4.291448) (xy -0.729742 -4.322329) (xy -0.721578 -4.361921) (xy -0.711869 -4.410583) (xy -0.700543 -4.468670) (xy -0.687527 -4.536541) + (xy -0.672751 -4.614554) (xy -0.656143 -4.703065) (xy -0.642775 -4.774765) (xy -0.547667 -5.286022) (xy -0.530567 -5.301544) (xy -0.513466 -5.317066) (xy 0.513467 -5.317066) (xy 0.530628 -5.301544) )(layer F.SilkS) (width 0.010000) + ) +) diff --git a/kicad/lib/Necroware.pretty/open_hardware_logo_only.kicad_mod b/kicad/lib/Necroware.pretty/open_hardware_logo_only.kicad_mod new file mode 100644 index 0000000..75bd7cc --- /dev/null +++ b/kicad/lib/Necroware.pretty/open_hardware_logo_only.kicad_mod @@ -0,0 +1,225 @@ +(module open_hardware_logo_only (layer F.Cu) (tedit 0) + (fp_text reference G*** (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.524 1.524) (thickness 0.3))) + ) + (fp_text value LOGO (at 0.75 0) (layer F.SilkS) hide + (effects (font (size 1.524 1.524) (thickness 0.3))) + ) + (fp_poly (pts (xy 0.481926 -3.171191) (xy 0.485025 -3.167684) (xy 0.487915 -3.163228) (xy 0.490784 -3.156998) + (xy 0.493818 -3.148167) (xy 0.497202 -3.13591) (xy 0.501124 -3.119399) (xy 0.505768 -3.09781) + (xy 0.511323 -3.070316) (xy 0.517972 -3.036091) (xy 0.525904 -2.994309) (xy 0.535303 -2.944144) + (xy 0.54576 -2.88798) (xy 0.56332 -2.793486) (xy 0.579117 -2.708469) (xy 0.593255 -2.632419) + (xy 0.605837 -2.564826) (xy 0.616968 -2.505181) (xy 0.626754 -2.452975) (xy 0.635297 -2.407696) + (xy 0.642703 -2.368836) (xy 0.649075 -2.335885) (xy 0.654519 -2.308332) (xy 0.659139 -2.285669) + (xy 0.663039 -2.267386) (xy 0.666323 -2.252972) (xy 0.669096 -2.241919) (xy 0.671463 -2.233715) + (xy 0.673527 -2.227852) (xy 0.675393 -2.22382) (xy 0.677166 -2.221109) (xy 0.678949 -2.21921) + (xy 0.680848 -2.217611) (xy 0.682967 -2.215805) (xy 0.683534 -2.21527) (xy 0.691474 -2.210239) + (xy 0.707905 -2.201939) (xy 0.731855 -2.190767) (xy 0.762348 -2.17712) (xy 0.79841 -2.161396) + (xy 0.839068 -2.143993) (xy 0.883347 -2.125308) (xy 0.930273 -2.105738) (xy 0.978871 -2.085682) + (xy 1.028168 -2.065536) (xy 1.077189 -2.045698) (xy 1.124961 -2.026567) (xy 1.170508 -2.008538) + (xy 1.212857 -1.99201) (xy 1.251033 -1.977381) (xy 1.284062 -1.965047) (xy 1.310971 -1.955407) + (xy 1.330785 -1.948858) (xy 1.342529 -1.945797) (xy 1.344339 -1.945619) (xy 1.357758 -1.947028) + (xy 1.371652 -1.952035) (xy 1.388871 -1.96185) (xy 1.400219 -1.969346) (xy 1.413317 -1.978275) + (xy 1.434048 -1.992447) (xy 1.461672 -2.011351) (xy 1.495445 -2.034479) (xy 1.534625 -2.061322) + (xy 1.57847 -2.091371) (xy 1.626237 -2.124119) (xy 1.677186 -2.159054) (xy 1.730573 -2.19567) + (xy 1.785656 -2.233457) (xy 1.841693 -2.271906) (xy 1.897943 -2.310508) (xy 1.953661 -2.348755) + (xy 1.963768 -2.355693) (xy 2.000332 -2.380752) (xy 2.034628 -2.404171) (xy 2.065671 -2.425286) + (xy 2.092477 -2.443429) (xy 2.114061 -2.457935) (xy 2.129438 -2.468138) (xy 2.137624 -2.473372) + (xy 2.138293 -2.473754) (xy 2.143109 -2.476256) (xy 2.147743 -2.478077) (xy 2.152654 -2.478809) + (xy 2.158303 -2.478049) (xy 2.16515 -2.475389) (xy 2.173654 -2.470425) (xy 2.184276 -2.46275) + (xy 2.197476 -2.451958) (xy 2.213713 -2.437645) (xy 2.233448 -2.419404) (xy 2.257139 -2.39683) + (xy 2.285249 -2.369517) (xy 2.318236 -2.337059) (xy 2.35656 -2.29905) (xy 2.400681 -2.255086) + (xy 2.451059 -2.204759) (xy 2.508155 -2.147665) (xy 2.509412 -2.146408) (xy 2.565347 -2.090457) + (xy 2.614527 -2.041225) (xy 2.657385 -1.998251) (xy 2.694357 -1.961076) (xy 2.725876 -1.929238) + (xy 2.752376 -1.902279) (xy 2.774293 -1.879738) (xy 2.792061 -1.861154) (xy 2.806114 -1.846069) + (xy 2.816885 -1.834021) (xy 2.824811 -1.824552) (xy 2.830325 -1.8172) (xy 2.833861 -1.811506) + (xy 2.835854 -1.807009) (xy 2.836738 -1.80325) (xy 2.836948 -1.799768) (xy 2.836949 -1.799496) + (xy 2.836484 -1.795447) (xy 2.83486 -1.79012) (xy 2.831732 -1.782986) (xy 2.826755 -1.773517) + (xy 2.819586 -1.761186) (xy 2.809878 -1.745464) (xy 2.797289 -1.725823) (xy 2.781472 -1.701736) + (xy 2.762083 -1.672674) (xy 2.738779 -1.63811) (xy 2.711213 -1.597514) (xy 2.679042 -1.55036) + (xy 2.641921 -1.496118) (xy 2.599506 -1.434262) (xy 2.580771 -1.406966) (xy 2.542682 -1.351373) + (xy 2.506156 -1.297852) (xy 2.471617 -1.247038) (xy 2.43949 -1.199565) (xy 2.4102 -1.156068) + (xy 2.384171 -1.11718) (xy 2.361828 -1.083536) (xy 2.343596 -1.05577) (xy 2.329899 -1.034517) + (xy 2.321162 -1.02041) (xy 2.317875 -1.014305) (xy 2.313808 -0.991943) (xy 2.315764 -0.978745) + (xy 2.31852 -0.971421) (xy 2.324959 -0.955581) (xy 2.334736 -0.932038) (xy 2.347509 -0.901603) + (xy 2.362933 -0.865091) (xy 2.380665 -0.823312) (xy 2.40036 -0.777081) (xy 2.421677 -0.727208) + (xy 2.44427 -0.674507) (xy 2.455787 -0.6477) (xy 2.483397 -0.583515) (xy 2.507346 -0.528012) + (xy 2.52798 -0.480541) (xy 2.545645 -0.440448) (xy 2.560687 -0.40708) (xy 2.573454 -0.379785) + (xy 2.584292 -0.357911) (xy 2.593547 -0.340804) (xy 2.601566 -0.327813) (xy 2.608695 -0.318284) + (xy 2.615281 -0.311566) (xy 2.62167 -0.307005) (xy 2.628208 -0.303948) (xy 2.635243 -0.301744) + (xy 2.640131 -0.300488) (xy 2.648482 -0.298722) (xy 2.665901 -0.295292) (xy 2.691461 -0.290374) + (xy 2.724237 -0.284143) (xy 2.763304 -0.276773) (xy 2.807735 -0.268438) (xy 2.856606 -0.259313) + (xy 2.90899 -0.249573) (xy 2.963963 -0.239393) (xy 2.96672 -0.238883) (xy 3.053008 -0.222946) + (xy 3.129864 -0.208761) (xy 3.19784 -0.196211) (xy 3.257491 -0.185184) (xy 3.30937 -0.175563) + (xy 3.354032 -0.167234) (xy 3.39203 -0.160083) (xy 3.423918 -0.153993) (xy 3.450249 -0.148851) + (xy 3.471579 -0.144541) (xy 3.488461 -0.140949) (xy 3.501448 -0.137959) (xy 3.511094 -0.135458) + (xy 3.517954 -0.133329) (xy 3.522581 -0.131458) (xy 3.52553 -0.12973) (xy 3.527353 -0.128031) + (xy 3.528605 -0.126245) (xy 3.52984 -0.124258) (xy 3.531612 -0.121954) (xy 3.53187 -0.12167) + (xy 3.54584 -0.10652) (xy 3.54584 0.352901) (xy 3.545799 0.439151) (xy 3.545673 0.515617) + (xy 3.545459 0.58267) (xy 3.545151 0.640686) (xy 3.544744 0.690039) (xy 3.544235 0.731101) + (xy 3.543618 0.764249) (xy 3.542888 0.789854) (xy 3.542043 0.808293) (xy 3.541076 0.819937) + (xy 3.540056 0.825016) (xy 3.531385 0.836076) (xy 3.518592 0.844962) (xy 3.518466 0.845021) + (xy 3.510371 0.847403) (xy 3.493334 0.85138) (xy 3.468411 0.85674) (xy 3.436657 0.863267) + (xy 3.399128 0.870749) (xy 3.35688 0.878973) (xy 3.310969 0.887723) (xy 3.2639 0.89652) + (xy 3.166957 0.914467) (xy 3.077755 0.930992) (xy 2.996519 0.946055) (xy 2.923473 0.959611) + (xy 2.858842 0.971621) (xy 2.802851 0.982042) (xy 2.755724 0.990833) (xy 2.717687 0.997951) + (xy 2.688963 1.003354) (xy 2.669777 1.007001) (xy 2.660354 1.008851) (xy 2.660272 1.008868) + (xy 2.653406 1.010411) (xy 2.647181 1.012383) (xy 2.641288 1.015413) (xy 2.63542 1.020127) + (xy 2.629272 1.027152) (xy 2.622535 1.037114) (xy 2.614902 1.050641) (xy 2.606066 1.068359) + (xy 2.595721 1.090896) (xy 2.583559 1.118877) (xy 2.569273 1.15293) (xy 2.552556 1.193682) + (xy 2.533101 1.241759) (xy 2.5106 1.297789) (xy 2.484747 1.362397) (xy 2.474445 1.388165) + (xy 2.447852 1.454755) (xy 2.424833 1.512576) (xy 2.405149 1.562274) (xy 2.388561 1.604495) + (xy 2.374828 1.639886) (xy 2.363709 1.669095) (xy 2.354967 1.692768) (xy 2.34836 1.711552) + (xy 2.343648 1.726093) (xy 2.340592 1.737038) (xy 2.338952 1.745035) (xy 2.338488 1.750729) + (xy 2.338779 1.753936) (xy 2.342267 1.761704) (xy 2.351292 1.777222) (xy 2.365896 1.800555) + (xy 2.386122 1.831767) (xy 2.412011 1.870921) (xy 2.443606 1.918082) (xy 2.480949 1.973312) + (xy 2.524083 2.036676) (xy 2.573049 2.108238) (xy 2.588588 2.130885) (xy 2.625842 2.18527) + (xy 2.661453 2.237487) (xy 2.694995 2.286899) (xy 2.726044 2.33287) (xy 2.754174 2.374763) + (xy 2.77896 2.41194) (xy 2.799977 2.443764) (xy 2.816799 2.4696) (xy 2.829003 2.488808) + (xy 2.836161 2.500753) (xy 2.837953 2.504496) (xy 2.836889 2.522284) (xy 2.830327 2.536218) + (xy 2.825463 2.541862) (xy 2.814011 2.553983) (xy 2.796603 2.571949) (xy 2.773875 2.59513) + (xy 2.746463 2.622894) (xy 2.715 2.654611) (xy 2.680121 2.689648) (xy 2.642461 2.727376) + (xy 2.602656 2.767162) (xy 2.561339 2.808376) (xy 2.519146 2.850386) (xy 2.476712 2.892562) + (xy 2.434671 2.934273) (xy 2.393658 2.974886) (xy 2.354308 3.013772) (xy 2.317255 3.050298) + (xy 2.283135 3.083835) (xy 2.252583 3.11375) (xy 2.226232 3.139412) (xy 2.204719 3.160191) + (xy 2.188677 3.175456) (xy 2.178742 3.184574) (xy 2.175815 3.186933) (xy 2.171669 3.188838) + (xy 2.166909 3.18974) (xy 2.160993 3.189303) (xy 2.153379 3.187194) (xy 2.143526 3.183077) + (xy 2.130891 3.176619) (xy 2.114932 3.167486) (xy 2.095107 3.155342) (xy 2.070875 3.139854) + (xy 2.041694 3.120687) (xy 2.007021 3.097506) (xy 1.966315 3.069978) (xy 1.919034 3.037767) + (xy 1.864636 3.00054) (xy 1.802578 2.957962) (xy 1.783434 2.944815) (xy 1.720852 2.901842) + (xy 1.666075 2.864269) (xy 1.618543 2.831735) (xy 1.577693 2.803879) (xy 1.542964 2.780337) + (xy 1.513794 2.760749) (xy 1.489621 2.744752) (xy 1.469885 2.731985) (xy 1.454022 2.722085) + (xy 1.441472 2.714691) (xy 1.431672 2.709441) (xy 1.424061 2.705973) (xy 1.418077 2.703926) + (xy 1.413159 2.702936) (xy 1.408745 2.702643) (xy 1.407514 2.702637) (xy 1.400319 2.703155) + (xy 1.391916 2.70497) (xy 1.381316 2.708546) (xy 1.367529 2.714345) (xy 1.349568 2.72283) + (xy 1.326442 2.734465) (xy 1.297163 2.749711) (xy 1.260741 2.769032) (xy 1.22682 2.787184) + (xy 1.181463 2.81139) (xy 1.144096 2.830983) (xy 1.113842 2.846306) (xy 1.089823 2.857705) + (xy 1.071161 2.865524) (xy 1.056979 2.870109) (xy 1.0464 2.871804) (xy 1.038545 2.870955) + (xy 1.032537 2.867906) (xy 1.029166 2.864866) (xy 1.026167 2.859085) (xy 1.019582 2.844509) + (xy 1.009661 2.821742) (xy 0.996654 2.791391) (xy 0.98081 2.754059) (xy 0.962379 2.710354) + (xy 0.94161 2.66088) (xy 0.918754 2.606244) (xy 0.89406 2.547051) (xy 0.867778 2.483906) + (xy 0.840157 2.417415) (xy 0.811447 2.348184) (xy 0.781898 2.276817) (xy 0.751759 2.203922) + (xy 0.721281 2.130103) (xy 0.690712 2.055966) (xy 0.660303 1.982116) (xy 0.630304 1.909159) + (xy 0.600963 1.837701) (xy 0.572531 1.768347) (xy 0.545257 1.701703) (xy 0.519391 1.638375) + (xy 0.495183 1.578967) (xy 0.472882 1.524086) (xy 0.452739 1.474337) (xy 0.435002 1.430326) + (xy 0.419922 1.392657) (xy 0.407748 1.361938) (xy 0.39873 1.338773) (xy 0.393117 1.323769) + (xy 0.39116 1.317529) (xy 0.391159 1.31751) (xy 0.39296 1.30432) (xy 0.399261 1.29242) + (xy 0.411409 1.280321) (xy 0.430751 1.266537) (xy 0.445807 1.257178) (xy 0.459794 1.248625) + (xy 0.473193 1.240083) (xy 0.48728 1.230646) (xy 0.503333 1.219405) (xy 0.522629 1.205455) + (xy 0.546445 1.187888) (xy 0.576057 1.165796) (xy 0.60452 1.144452) (xy 0.642981 1.113209) + (xy 0.68381 1.075924) (xy 0.724269 1.035341) (xy 0.761621 0.994203) (xy 0.792514 0.956069) + (xy 0.849085 0.872629) (xy 0.896282 0.785326) (xy 0.934023 0.694405) (xy 0.962225 0.600116) + (xy 0.980807 0.502704) (xy 0.989685 0.402418) (xy 0.9905 0.36221) (xy 0.985734 0.263266) + (xy 0.971445 0.166827) (xy 0.948059 0.073416) (xy 0.916003 -0.016445) (xy 0.875704 -0.102232) + (xy 0.827589 -0.183423) (xy 0.772083 -0.259493) (xy 0.709614 -0.329921) (xy 0.640607 -0.394182) + (xy 0.565491 -0.451754) (xy 0.484691 -0.502114) (xy 0.398633 -0.544738) (xy 0.307745 -0.579103) + (xy 0.212453 -0.604687) (xy 0.199872 -0.607319) (xy 0.102079 -0.622169) (xy 0.00525 -0.627243) + (xy -0.09009 -0.622915) (xy -0.183419 -0.609559) (xy -0.274214 -0.587549) (xy -0.361951 -0.55726) + (xy -0.446107 -0.519066) (xy -0.526159 -0.47334) (xy -0.601583 -0.420457) (xy -0.671857 -0.360791) + (xy -0.736456 -0.294717) (xy -0.794859 -0.222608) (xy -0.84654 -0.144839) (xy -0.890978 -0.061783) + (xy -0.927649 0.026184) (xy -0.956029 0.11869) (xy -0.975595 0.215359) (xy -0.978414 0.235229) + (xy -0.981765 0.269921) (xy -0.983764 0.310933) (xy -0.984452 0.355637) (xy -0.983872 0.401409) + (xy -0.982066 0.445621) (xy -0.979077 0.485648) (xy -0.974947 0.518864) (xy -0.973728 0.525869) + (xy -0.95038 0.626129) (xy -0.918943 0.720515) (xy -0.879161 0.809627) (xy -0.830777 0.89406) + (xy -0.792038 0.950183) (xy -0.765949 0.982858) (xy -0.734116 1.018735) (xy -0.698885 1.055446) + (xy -0.662605 1.09062) (xy -0.627623 1.121891) (xy -0.59944 1.144549) (xy -0.563589 1.171328) + (xy -0.53445 1.192898) (xy -0.510665 1.210225) (xy -0.490874 1.224271) (xy -0.47372 1.235999) + (xy -0.457842 1.246373) (xy -0.441883 1.256355) (xy -0.440548 1.257174) (xy -0.416699 1.27261) + (xy -0.400716 1.285328) (xy -0.391235 1.296858) (xy -0.38689 1.308729) (xy -0.386175 1.31812) + (xy -0.388094 1.324158) (xy -0.393667 1.338971) (xy -0.402644 1.361951) (xy -0.414776 1.392493) + (xy -0.429812 1.429991) (xy -0.447502 1.473838) (xy -0.467598 1.523428) (xy -0.489849 1.578156) + (xy -0.514005 1.637415) (xy -0.539817 1.700598) (xy -0.567035 1.7671) (xy -0.595408 1.836315) + (xy -0.624688 1.907637) (xy -0.654625 1.980459) (xy -0.684968 2.054175) (xy -0.715467 2.128179) + (xy -0.745874 2.201866) (xy -0.775939 2.274628) (xy -0.80541 2.345859) (xy -0.83404 2.414955) + (xy -0.861577 2.481308) (xy -0.887773 2.544312) (xy -0.912377 2.603361) (xy -0.935139 2.657849) + (xy -0.955811 2.707171) (xy -0.974141 2.750719) (xy -0.98988 2.787887) (xy -1.002779 2.81807) + (xy -1.012588 2.840662) (xy -1.019056 2.855055) (xy -1.02175 2.860406) (xy -1.026441 2.866282) + (xy -1.03209 2.870137) (xy -1.039568 2.871654) (xy -1.049743 2.870512) (xy -1.063487 2.866391) + (xy -1.081668 2.858973) (xy -1.105156 2.847938) (xy -1.134822 2.832966) (xy -1.171534 2.813739) + (xy -1.216164 2.789936) (xy -1.221665 2.786986) (xy -1.266905 2.762717) (xy -1.304217 2.742917) + (xy -1.334673 2.727349) (xy -1.359349 2.715775) (xy -1.379316 2.707956) (xy -1.395651 2.703653) + (xy -1.409426 2.702628) (xy -1.421715 2.704643) (xy -1.433592 2.709459) (xy -1.446132 2.716838) + (xy -1.460408 2.726541) (xy -1.46852 2.732181) (xy -1.565067 2.798961) (xy -1.653514 2.859989) + (xy -1.734048 2.915391) (xy -1.806857 2.965292) (xy -1.872129 3.009819) (xy -1.930051 3.049096) + (xy -1.98081 3.083249) (xy -2.024593 3.112405) (xy -2.06159 3.136688) (xy -2.091985 3.156224) + (xy -2.115968 3.171139) (xy -2.133726 3.181559) (xy -2.145446 3.187608) (xy -2.150743 3.189403) + (xy -2.170426 3.191427) (xy -2.503276 2.858577) (xy -2.559649 2.802199) (xy -2.609263 2.752551) + (xy -2.652547 2.709179) (xy -2.689928 2.671628) (xy -2.721832 2.639446) (xy -2.748688 2.612178) + (xy -2.770921 2.58937) (xy -2.788961 2.57057) (xy -2.803233 2.555321) (xy -2.814165 2.543172) + (xy -2.822184 2.533668) (xy -2.827718 2.526356) (xy -2.831193 2.520781) (xy -2.833037 2.51649) + (xy -2.833677 2.513028) (xy -2.833541 2.509943) (xy -2.833259 2.508053) (xy -2.830365 2.501145) + (xy -2.822808 2.487763) (xy -2.810452 2.467701) (xy -2.79316 2.440755) (xy -2.770796 2.406718) + (xy -2.743226 2.365387) (xy -2.710312 2.316555) (xy -2.67192 2.260018) (xy -2.627913 2.195569) + (xy -2.585171 2.133221) (xy -2.542816 2.071392) (xy -2.503488 2.013706) (xy -2.467497 1.960627) + (xy -2.43515 1.912617) (xy -2.406756 1.870141) (xy -2.382623 1.833661) (xy -2.363058 1.803641) + (xy -2.348371 1.780543) (xy -2.338868 1.764831) (xy -2.334859 1.756969) (xy -2.334815 1.756818) + (xy -2.333986 1.752837) (xy -2.333735 1.748221) (xy -2.334307 1.742302) (xy -2.335945 1.734411) + (xy -2.338892 1.723881) (xy -2.343394 1.710043) (xy -2.349693 1.692229) (xy -2.358034 1.669772) + (xy -2.36866 1.642002) (xy -2.381815 1.608251) (xy -2.397743 1.567852) (xy -2.416687 1.520136) + (xy -2.438893 1.464436) (xy -2.464602 1.400082) (xy -2.469042 1.388975) (xy -2.496217 1.321025) + (xy -2.519926 1.261883) (xy -2.540478 1.210922) (xy -2.558178 1.167514) (xy -2.573334 1.131034) + (xy -2.586253 1.100855) (xy -2.59724 1.07635) (xy -2.606604 1.056892) (xy -2.614651 1.041855) + (xy -2.621688 1.030612) (xy -2.628021 1.022537) (xy -2.633958 1.017002) (xy -2.639805 1.013382) + (xy -2.645869 1.011049) (xy -2.652456 1.009377) (xy -2.655193 1.008778) (xy -2.662292 1.007389) + (xy -2.678617 1.004287) (xy -2.703405 0.999616) (xy -2.735891 0.993517) (xy -2.775313 0.986133) + (xy -2.820908 0.977607) (xy -2.871912 0.968083) (xy -2.927561 0.957702) (xy -2.987093 0.946607) + (xy -3.049744 0.934942) (xy -3.088966 0.927644) (xy -3.153048 0.915669) (xy -3.214399 0.904097) + (xy -3.272263 0.893078) (xy -3.325885 0.882759) (xy -3.374511 0.87329) (xy -3.417384 0.86482) + (xy -3.453749 0.857497) (xy -3.482852 0.85147) (xy -3.503936 0.846887) (xy -3.516247 0.843898) + (xy -3.519135 0.842916) (xy -3.529829 0.832859) (xy -3.535319 0.824264) (xy -3.536383 0.81757) + (xy -3.537326 0.802308) (xy -3.53815 0.7783) (xy -3.538857 0.74537) (xy -3.539449 0.70334) + (xy -3.539929 0.652032) (xy -3.540298 0.591269) (xy -3.540558 0.520875) (xy -3.540711 0.440671) + (xy -3.54076 0.352901) (xy -3.54076 -0.10652) (xy -3.52679 -0.121693) (xy -3.524253 -0.124342) + (xy -3.521364 -0.126788) (xy -3.517491 -0.129168) (xy -3.512 -0.131615) (xy -3.504261 -0.134264) + (xy -3.493639 -0.137251) (xy -3.479502 -0.14071) (xy -3.461217 -0.144775) (xy -3.438152 -0.149581) + (xy -3.409674 -0.155264) (xy -3.375151 -0.161958) (xy -3.333949 -0.169797) (xy -3.285435 -0.178917) + (xy -3.228978 -0.189451) (xy -3.163945 -0.201536) (xy -3.089702 -0.215306) (xy -3.070924 -0.218787) + (xy -3.005074 -0.231042) (xy -2.941907 -0.242888) (xy -2.882162 -0.254183) (xy -2.826579 -0.264783) + (xy -2.775897 -0.274543) (xy -2.730854 -0.283319) (xy -2.69219 -0.290968) (xy -2.660643 -0.297345) + (xy -2.636954 -0.302308) (xy -2.62186 -0.305711) (xy -2.616252 -0.307314) (xy -2.603211 -0.315913) + (xy -2.594911 -0.323385) (xy -2.591676 -0.32935) (xy -2.584861 -0.34373) (xy -2.574868 -0.365593) + (xy -2.562103 -0.394008) (xy -2.54697 -0.428043) (xy -2.529872 -0.466768) (xy -2.511213 -0.509249) + (xy -2.491397 -0.554557) (xy -2.470829 -0.60176) (xy -2.449912 -0.649926) (xy -2.429051 -0.698123) + (xy -2.408649 -0.745421) (xy -2.38911 -0.790888) (xy -2.370838 -0.833593) (xy -2.354238 -0.872603) + (xy -2.339714 -0.906989) (xy -2.327668 -0.935817) (xy -2.318506 -0.958158) (xy -2.312631 -0.973079) + (xy -2.310652 -0.978745) (xy -2.309199 -0.999572) (xy -2.31283 -1.014428) (xy -2.316666 -1.021466) + (xy -2.325851 -1.03623) (xy -2.33996 -1.058084) (xy -2.358567 -1.086396) (xy -2.381248 -1.12053) + (xy -2.407579 -1.159851) (xy -2.437133 -1.203725) (xy -2.469488 -1.251518) (xy -2.504217 -1.302595) + (xy -2.540896 -1.356322) (xy -2.575726 -1.407148) (xy -2.620389 -1.472245) (xy -2.659618 -1.529513) + (xy -2.693756 -1.579479) (xy -2.723148 -1.622673) (xy -2.748139 -1.65962) (xy -2.769072 -1.690849) + (xy -2.786293 -1.716888) (xy -2.800145 -1.738264) (xy -2.810973 -1.755505) (xy -2.819122 -1.769137) + (xy -2.824935 -1.77969) (xy -2.828757 -1.78769) (xy -2.830933 -1.793665) (xy -2.831807 -1.798143) + (xy -2.83187 -1.799556) (xy -2.83169 -1.80303) (xy -2.83086 -1.806755) (xy -2.828947 -1.811192) + (xy -2.825515 -1.816801) (xy -2.820131 -1.824042) (xy -2.812361 -1.833374) (xy -2.801768 -1.845257) + (xy -2.787921 -1.860152) (xy -2.770383 -1.878519) (xy -2.748721 -1.900817) (xy -2.722501 -1.927506) + (xy -2.691288 -1.959047) (xy -2.654647 -1.995899) (xy -2.612145 -2.038522) (xy -2.563347 -2.087377) + (xy -2.507818 -2.142923) (xy -2.504333 -2.146408) (xy -2.446992 -2.20376) (xy -2.396387 -2.254344) + (xy -2.352055 -2.298558) (xy -2.313531 -2.3368) (xy -2.280352 -2.36947) (xy -2.252053 -2.396966) + (xy -2.22817 -2.419687) (xy -2.208239 -2.438031) (xy -2.191795 -2.452397) (xy -2.178376 -2.463185) + (xy -2.167516 -2.470792) (xy -2.158752 -2.475618) (xy -2.151619 -2.478062) (xy -2.145654 -2.478521) + (xy -2.140391 -2.477395) (xy -2.135368 -2.475082) (xy -2.13012 -2.471982) (xy -2.127332 -2.4703) + (xy -2.120748 -2.466012) (xy -2.106418 -2.456398) (xy -2.084968 -2.441888) (xy -2.057026 -2.422909) + (xy -2.023221 -2.39989) (xy -1.98418 -2.373258) (xy -1.940529 -2.343442) (xy -1.892898 -2.31087) + (xy -1.841913 -2.27597) (xy -1.788202 -2.23917) (xy -1.735531 -2.20305) (xy -1.670673 -2.158571) + (xy -1.613644 -2.119508) (xy -1.563903 -2.085512) (xy -1.520915 -2.056233) (xy -1.48414 -2.031322) + (xy -1.45304 -2.010431) (xy -1.427078 -1.993209) (xy -1.405714 -1.979309) (xy -1.388412 -1.968379) + (xy -1.374632 -1.960073) (xy -1.363837 -1.954039) (xy -1.355488 -1.949929) (xy -1.349048 -1.947395) + (xy -1.343979 -1.946085) (xy -1.339741 -1.945653) (xy -1.338837 -1.945641) (xy -1.332037 -1.946563) + (xy -1.321002 -1.949473) (xy -1.305168 -1.954587) (xy -1.283972 -1.962119) (xy -1.256852 -1.972286) + (xy -1.223244 -1.985301) (xy -1.182585 -2.001382) (xy -1.134312 -2.020742) (xy -1.077863 -2.043597) + (xy -1.012673 -2.070163) (xy -1.005387 -2.07314) (xy -0.94072 -2.099612) (xy -0.884833 -2.122611) + (xy -0.837074 -2.142445) (xy -0.796791 -2.15942) (xy -0.763334 -2.173845) (xy -0.736051 -2.186027) + (xy -0.714292 -2.196274) (xy -0.697404 -2.204893) (xy -0.684738 -2.212191) (xy -0.675641 -2.218478) + (xy -0.669463 -2.224059) (xy -0.665552 -2.229244) (xy -0.663257 -2.234338) (xy -0.663101 -2.234825) + (xy -0.661824 -2.240896) (xy -0.658829 -2.256236) (xy -0.654252 -2.280128) (xy -0.648228 -2.31185) + (xy -0.640893 -2.350684) (xy -0.632381 -2.395909) (xy -0.622829 -2.446808) (xy -0.612373 -2.502659) + (xy -0.601146 -2.562743) (xy -0.589285 -2.626341) (xy -0.576925 -2.692734) (xy -0.576514 -2.69494) + (xy -0.564136 -2.761433) (xy -0.552249 -2.825169) (xy -0.540989 -2.885428) (xy -0.530491 -2.941488) + (xy -0.520892 -2.992628) (xy -0.512327 -3.038127) (xy -0.504932 -3.077265) (xy -0.498842 -3.10932) + (xy -0.494194 -3.13357) (xy -0.491123 -3.149295) (xy -0.489765 -3.155773) (xy -0.489752 -3.155818) + (xy -0.484013 -3.165036) (xy -0.473995 -3.174868) (xy -0.471599 -3.176622) (xy -0.46873 -3.178165) + (xy -0.464757 -3.17951) (xy -0.459051 -3.18067) (xy -0.450979 -3.18166) (xy -0.439912 -3.182492) + (xy -0.425217 -3.183181) (xy -0.406265 -3.18374) (xy -0.382425 -3.184182) (xy -0.353064 -3.184522) + (xy -0.317553 -3.184772) (xy -0.275261 -3.184946) (xy -0.225557 -3.185059) (xy -0.16781 -3.185123) + (xy -0.101389 -3.185152) (xy -0.025663 -3.18516) (xy 0.468141 -3.18516) (xy 0.481926 -3.171191)) (layer F.SilkS) (width 0.01)) +) diff --git a/kicad/lib/README.md b/kicad/lib/README.md new file mode 100644 index 0000000..074fe8d --- /dev/null +++ b/kicad/lib/README.md @@ -0,0 +1 @@ +# kicad-library \ No newline at end of file diff --git a/kicad/sym-lib-table b/kicad/sym-lib-table new file mode 100644 index 0000000..ebb9c77 --- /dev/null +++ b/kicad/sym-lib-table @@ -0,0 +1,3 @@ +(sym_lib_table + (lib (name Necroware)(type Legacy)(uri ${KIPRJMOD}/lib/Necroware.lib)(options "")(descr "")) +) diff --git a/photo.jpg b/photo.jpg new file mode 100644 index 0000000..1ab02f5 Binary files /dev/null and b/photo.jpg differ