diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:45:07 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 18:45:07 +0300 |
| commit | 31b9a8949ed0a288143e23bf739f2eb64fdc63be (patch) | |
| tree | 8a984fa143c38fccad461a77792d6864f3e82cd3 /meshmc/branding | |
| parent | 934382c8a1ce738589dee9ee0f14e1cec812770e (diff) | |
| parent | fad6a1066616b69d7f5fef01178efdf014c59537 (diff) | |
| download | Project-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.tar.gz Project-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.zip | |
Add 'meshmc/' from commit 'fad6a1066616b69d7f5fef01178efdf014c59537'
git-subtree-dir: meshmc
git-subtree-mainline: 934382c8a1ce738589dee9ee0f14e1cec812770e
git-subtree-split: fad6a1066616b69d7f5fef01178efdf014c59537
Diffstat (limited to 'meshmc/branding')
22 files changed, 4389 insertions, 0 deletions
diff --git a/meshmc/branding/AdhocSignedApp.entitlements b/meshmc/branding/AdhocSignedApp.entitlements new file mode 100644 index 0000000000..032308a18a --- /dev/null +++ b/meshmc/branding/AdhocSignedApp.entitlements @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.cs.disable-library-validation</key> + <true/> + <key>com.apple.security.device.audio-input</key> + <true/> + <key>com.apple.security.device.camera</key> + <true/> +</dict> +</plist> diff --git a/meshmc/branding/App.entitlements b/meshmc/branding/App.entitlements new file mode 100644 index 0000000000..73bf832c7b --- /dev/null +++ b/meshmc/branding/App.entitlements @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.device.audio-input</key> + <true/> + <key>com.apple.security.device.camera</key> + <true/> +</dict> +</plist> diff --git a/meshmc/branding/LICENSE b/meshmc/branding/LICENSE new file mode 100644 index 0000000000..8b0fdc285f --- /dev/null +++ b/meshmc/branding/LICENSE @@ -0,0 +1,430 @@ +Attribution-ShareAlike 4.0 International + +This license only applies to the instance_icons in this folder. + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 1.png b/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 1.png Binary files differnew file mode 100644 index 0000000000..4a520adb18 --- /dev/null +++ b/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 1.png diff --git a/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 2.png b/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 2.png Binary files differnew file mode 100644 index 0000000000..0b61bf3c20 --- /dev/null +++ b/meshmc/branding/MeshMC.icon/Assets/org.projecttick.ProjTLauncher_Katman 2.png diff --git a/meshmc/branding/MeshMC.icon/icon.json b/meshmc/branding/MeshMC.icon/icon.json new file mode 100644 index 0000000000..a82b83f3fd --- /dev/null +++ b/meshmc/branding/MeshMC.icon/icon.json @@ -0,0 +1,33 @@ +{ + "fill" : { + "automatic-gradient" : "extended-srgb:0.00000,0.53333,1.00000,1.00000" + }, + "groups" : [ + { + "layers" : [ + { + "image-name" : "org.projecttick.ProjTLauncher_Katman 1.png", + "name" : "org.projecttick.ProjTLauncher_Katman 1" + }, + { + "image-name" : "org.projecttick.ProjTLauncher_Katman 2.png", + "name" : "org.projecttick.ProjTLauncher_Katman 2" + } + ], + "shadow" : { + "kind" : "neutral", + "opacity" : 0.5 + }, + "translucency" : { + "enabled" : true, + "value" : 0.5 + } + } + ], + "supported-platforms" : { + "circles" : [ + "watchOS" + ], + "squares" : "shared" + } +} diff --git a/meshmc/branding/MeshMC.manifest.in b/meshmc/branding/MeshMC.manifest.in new file mode 100644 index 0000000000..b1bd98bed2 --- /dev/null +++ b/meshmc/branding/MeshMC.manifest.in @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> + <application xmlns="urn:schemas-microsoft-com:asm.v3"> + <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings"> + <ws2:longPathAware>true</ws2:longPathAware> + </windowsSettings> + </application> + <assemblyIdentity name="@MeshMC_CommonName@.Application.1" type="win32" version="@MeshMC_RELEASE_VERSION_NAME@.0" /> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> + <dependency> + <dependentAssembly> + <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> + </dependentAssembly> + </dependency> + <description>Custom Minecraft launcher for managing multiple installs.</description> + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!--The ID below indicates app support for Windows 10/11 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + </application> + </compatibility> +</assembly> diff --git a/meshmc/branding/genicons.sh b/meshmc/branding/genicons.sh new file mode 100755 index 0000000000..ebf92123d4 --- /dev/null +++ b/meshmc/branding/genicons.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# SPDX-FileCopyrightText: 2026 Project Tick +# SPDX-FileContributor: Project Tick +# SPDX-License-Identifier: GPL-3.0-or-later + +svg2png() { + input_file="$1" + output_file="$2" + width="$3" + height="$4" + + inkscape -w "$width" -h "$height" -o "$output_file" "$input_file" +} + +if command -v "inkscape" && command -v "icotool" && command -v "oxipng"; then + # Windows ICO + d=$(mktemp -d) + + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_16.png" 16 16 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_24.png" 24 24 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_32.png" 32 32 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_48.png" 48 48 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_64.png" 64 64 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_128.png" 128 128 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_256.png" 256 256 + + oxipng --opt max --strip all --alpha --interlace 0 "$d/MeshMC_"*".png" + + rm org.projecttick.MeshMC.ico && icotool -o org.projecttick.MeshMC.ico -c \ + "$d/MeshMC_256.png" \ + "$d/MeshMC_128.png" \ + "$d/MeshMC_64.png" \ + "$d/MeshMC_48.png" \ + "$d/MeshMC_32.png" \ + "$d/MeshMC_24.png" \ + "$d/MeshMC_16.png" +else + echo "ERROR: Windows icons were NOT generated!" >&2 + echo "ERROR: requires inkscape, icotool and oxipng in PATH" +fi + +if command -v "inkscape" && command -v "iconutil" && command -v "oxipng"; then + # macOS ICNS + d=$(mktemp -d) + + d="$d/org.projecttick.MeshMC.iconset" + + mkdir -p "$d" + + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_16x16.png" 16 16 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_16x16@2x.png" 32 32 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_32x32.png" 32 32 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_32x32@2x.png" 64 64 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_128x128.png" 128 128 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_128x128@2x.png" 256 256 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_256x256.png" 256 256 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_256x256@2x.png" 512 512 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_512x512.png" 512 512 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_512x512@2x.png" 1024 1024 + + oxipng --opt max --strip all --alpha --interlace 0 "$d/icon_"*".png" + + iconutil -c icns "$d" + cp -v "$d/org.projecttick.MeshMC.icns" . +else + echo "ERROR: macOS icons were NOT generated!" >&2 + echo "ERROR: requires inkscape, iconutil and oxipng in PATH" +fi + +# replace icon in themes +cp -v org.projecttick.MeshMC.svg "../launcher/resources/multimc/scalable/instances/logo.svg" diff --git a/meshmc/branding/instance_icons.svg b/meshmc/branding/instance_icons.svg new file mode 100644 index 0000000000..84c0ef6f0c --- /dev/null +++ b/meshmc/branding/instance_icons.svg @@ -0,0 +1,2720 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="1024" + height="1024" + version="1.1" + viewBox="0 0 1024 1024" + id="svg168" + sodipodi:docname="instance_icons.svg" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + xml:space="preserve" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><defs + id="defs172"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath7052"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect7054" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24641"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect24643" + width="5" + height="6" + x="72" + y="12" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath37388"><rect + style="fill:#537a64;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect37390" + width="20" + height="7" + x="70" + y="16" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath40516"><rect + style="opacity:1;fill:#f3db6c;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect40518" + width="16" + height="16" + x="200" + y="8" + ry="2" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath44346"><rect + style="opacity:1;fill:#f3db6c;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect44348" + width="16" + height="16" + x="456" + y="8" + ry="2" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70915"><path + sodipodi:type="star" + style="opacity:1;fill:#bd44b3;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path70917" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="matrix(0.60389168,0.3121766,-0.3121766,0.60389168,226.77688,-168.46627)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-5"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-5" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath40516-7"><rect + style="opacity:1;fill:#f3db6c;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect40518-3" + width="16" + height="16" + x="200" + y="8" + ry="2" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath130950"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect130948" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath130954"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect130952" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6-8"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5-1" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6-2"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3-9" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9-3"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4-9" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath131121"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect131119" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath131125"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect131123" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6-8-0"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5-1-8" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6-2-8"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3-9-5" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9-3-0"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4-9-9" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath131331"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect131329" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath131335"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect131333" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath44346-0"><rect + style="opacity:1;fill:#f3db6c;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect44348-4" + width="16" + height="16" + x="456" + y="8" + ry="2" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-4"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-4" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70915-4"><path + sodipodi:type="star" + style="opacity:1;fill:#bd44b3;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path70917-7" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="matrix(0.60389168,0.3121766,-0.3121766,0.60389168,226.77688,-168.46627)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-5-6"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-5-3" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6-8-0-1"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5-1-8-7" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6-2-8-5"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3-9-5-9" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9-3-0-6"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4-9-9-2" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath166658"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect166656" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath166662"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect166660" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70915-4-5"><path + sodipodi:type="star" + style="opacity:1;fill:#bd44b3;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path70917-7-9" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="matrix(0.60389168,0.3121766,-0.3121766,0.60389168,226.77688,-168.46627)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-5-6-7"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-5-3-5" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath7052-9"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect7054-9" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath66059"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect66057" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath66079"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect66077" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6-8-0-1-3"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5-1-8-7-7" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6-2-8-5-5"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3-9-5-9-9" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9-3-0-6-2"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4-9-9-2-2" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath66197"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect66195" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath66201"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect66199" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-4-6-8-7"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-4-2-7-3" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath56548-5-6-7-5-6-8-6"><rect + style="fill:#bd8e74;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56550-5-3-5-4-1-9-1" + width="22" + height="22" + x="485" + y="5" + ry="3" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70915-4-5-0-2-7-5-3"><path + sodipodi:type="star" + style="opacity:1;fill:#bd44b3;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path70917-7-9-2-9-4-0-3" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="matrix(0.60389168,0.3121766,-0.3121766,0.60389168,226.77688,-168.46627)" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient41693" + id="linearGradient2973" + gradientUnits="userSpaceOnUse" + x1="153" + y1="25" + x2="135" + y2="7" /><linearGradient + inkscape:collect="always" + id="linearGradient41693"><stop + style="stop-color:#64d5df;stop-opacity:1;" + offset="0" + id="stop41689" /><stop + style="stop-color:#17c2d6;stop-opacity:1;" + offset="0.35665122" + id="stop41711" /><stop + style="stop-color:#89edf6;stop-opacity:1;" + offset="0.71356344" + id="stop41709" /><stop + style="stop-color:#2bc4d4;stop-opacity:1;" + offset="1" + id="stop41691" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3000" + id="radialGradient3002-5" + cx="272" + cy="16" + fx="272" + fy="16" + r="12" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient3000"><stop + style="stop-color:#62b397;stop-opacity:1;" + offset="0.47770822" + id="stop2996" /><stop + style="stop-color:#3a7a81;stop-opacity:1;" + offset="1" + id="stop2998" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3405" + id="radialGradient3407-4" + cx="272" + cy="16" + fx="272" + fy="16" + r="5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-54.4,-3.2)" /><linearGradient + inkscape:collect="always" + id="linearGradient3405"><stop + style="stop-color:#27414e;stop-opacity:1;" + offset="0.16041158" + id="stop3401" /><stop + style="stop-color:#27414e;stop-opacity:0.74901961;" + offset="0.50162286" + id="stop39443" /><stop + style="stop-color:#27414e;stop-opacity:0;" + offset="1" + id="stop3403" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3853" + id="radialGradient3855-4" + cx="272" + cy="16" + fx="272" + fy="16" + r="5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.2,0,0,2,-326.4,-16)" /><linearGradient + inkscape:collect="always" + id="linearGradient3853"><stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="0.39989081" + id="stop3851" /><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop3849" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3108" + id="linearGradient3110" + x1="70.852509" + y1="141.75883" + x2="70.852509" + y2="0.053809531" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient3108"><stop + style="stop-color:#1bd96a;stop-opacity:1;" + offset="0" + id="stop3104" /><stop + style="stop-color:#1bd9a1;stop-opacity:1;" + offset="1" + id="stop3106" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1468" + id="linearGradient1470" + x1="300" + y1="26" + x2="300" + y2="10" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1468"><stop + style="stop-color:#d63954;stop-opacity:1;" + offset="0" + id="stop1464" /><stop + style="stop-color:#e6812b;stop-opacity:1;" + offset="1" + id="stop1466" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6068" + id="linearGradient6070" + x1="656" + y1="27" + x2="656" + y2="5" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient6068"><stop + style="stop-color:#cdcdcd;stop-opacity:1;" + offset="0" + id="stop6064" /><stop + style="stop-color:#eeeeee;stop-opacity:1;" + offset="1" + id="stop6066" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7624" + id="linearGradient7626" + x1="658" + y1="20" + x2="658" + y2="24" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient7624"><stop + style="stop-color:#8e8e86;stop-opacity:1;" + offset="0" + id="stop7620" /><stop + style="stop-color:#8e8e86;stop-opacity:0;" + offset="1" + id="stop7622" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7155" + id="linearGradient7165" + x1="656" + y1="25" + x2="656" + y2="22" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient7155"><stop + style="stop-color:#3e4447;stop-opacity:1;" + offset="0" + id="stop7151" /><stop + style="stop-color:#2e3134;stop-opacity:1;" + offset="1" + id="stop7153" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6078" + id="radialGradient6080" + cx="662" + cy="18" + fx="662" + fy="18" + r="3" + gradientTransform="matrix(0.99999794,-1.7103091e-6,1.7879388e-6,1.0000015,0.0013367,0.00110992)" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient6078"><stop + style="stop-color:#006868;stop-opacity:1;" + offset="0" + id="stop6074" /><stop + style="stop-color:#3e4447;stop-opacity:1;" + offset="1" + id="stop6076" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7155" + id="linearGradient7157" + x1="651" + y1="20" + x2="651" + y2="16" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient36859" + id="linearGradient11859-1" + x1="111" + y1="25" + x2="111" + y2="7" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(608)" /><linearGradient + inkscape:collect="always" + id="linearGradient36859"><stop + style="stop-color:#729657;stop-opacity:1;" + offset="0" + id="stop36855" /><stop + style="stop-color:#a5bf6e;stop-opacity:1;" + offset="1" + id="stop36857" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient36865" + id="radialGradient10457-1" + cx="112" + cy="17" + fx="112" + fy="17" + r="6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1666668,-6.8921104e-7,5.6666669e-7,1.1666667,589.33332,-2.8332561)" /><linearGradient + inkscape:collect="always" + id="linearGradient36865"><stop + style="stop-color:#63271f;stop-opacity:1;" + offset="0" + id="stop36861" /><stop + style="stop-color:#3d1212;stop-opacity:1;" + offset="1" + id="stop36863" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11855" + id="linearGradient11859" + x1="111" + y1="25" + x2="111" + y2="7" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient11855"><stop + style="stop-color:#57965f;stop-opacity:1;" + offset="0" + id="stop11851" /><stop + style="stop-color:#78bf6e;stop-opacity:1;" + offset="1" + id="stop11853" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient10455" + id="radialGradient10457" + cx="112" + cy="17" + fx="112" + fy="17" + r="6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1666668,-6.8921104e-7,5.6666669e-7,1.1666667,-18.666684,-2.8332561)" /><linearGradient + inkscape:collect="always" + id="linearGradient10455"><stop + style="stop-color:#1b2719;stop-opacity:1;" + offset="0" + id="stop10451" /><stop + style="stop-color:#0f150e;stop-opacity:1;" + offset="1" + id="stop10453" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5295" + id="linearGradient5297" + x1="239" + y1="5" + x2="239" + y2="27" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient5295"><stop + style="stop-color:#25262d;stop-opacity:1;" + offset="0" + id="stop5291" /><stop + style="stop-color:#141519;stop-opacity:1;" + offset="1" + id="stop5293" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5303" + id="linearGradient5316" + x1="243" + y1="17" + x2="243" + y2="20" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient5303"><stop + style="stop-color:#bd44b3;stop-opacity:1;" + offset="0" + id="stop5299" /><stop + style="stop-color:#d84ecd;stop-opacity:1;" + offset="1" + id="stop5301" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5303" + id="linearGradient5305" + x1="236" + y1="17" + x2="236" + y2="20" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient84376" + id="linearGradient84368" + x1="48" + y1="26" + x2="48" + y2="6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(128,32)" /><linearGradient + inkscape:collect="always" + id="linearGradient84376"><stop + style="stop-color:#a63649;stop-opacity:1;" + offset="0" + id="stop84370" /><stop + style="stop-color:#df6277;stop-opacity:1;" + offset="1" + id="stop84381" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient288023" + id="linearGradient85182" + x1="48" + y1="6" + x2="48" + y2="26" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(128,32)" /><linearGradient + inkscape:collect="always" + id="linearGradient288023"><stop + style="stop-color:#c1c1c1;stop-opacity:1;" + offset="0" + id="stop288019" /><stop + style="stop-color:#dfdfdf;stop-opacity:1;" + offset="1" + id="stop288021" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25803" + id="linearGradient25805" + x1="785" + y1="26" + x2="785" + y2="6" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient25803"><stop + style="stop-color:#8e8e86;stop-opacity:1;" + offset="0" + id="stop25799" /><stop + style="stop-color:#a2a29b;stop-opacity:1;" + offset="1" + id="stop25801" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27992" + id="linearGradient17901" + x1="496" + y1="26" + x2="496" + y2="6" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient27992"><stop + style="stop-color:#c5c7cf;stop-opacity:1;" + offset="0" + id="stop27990" /><stop + style="stop-color:#d8d9e0;stop-opacity:1;" + offset="1" + id="stop27988" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient56358" + id="linearGradient18032" + gradientUnits="userSpaceOnUse" + x1="503" + y1="25" + x2="503" + y2="23" + gradientTransform="translate(0,-4)" /><linearGradient + inkscape:collect="always" + id="linearGradient56358"><stop + style="stop-color:#ededed;stop-opacity:1;" + offset="0" + id="stop56354" /><stop + style="stop-color:#f4f4f4;stop-opacity:1;" + offset="1" + id="stop56356" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient56358" + id="linearGradient18124" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-8)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18539" + id="linearGradient18530" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-6)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + id="linearGradient18539"><stop + style="stop-color:#27414e;stop-opacity:0;" + offset="0" + id="stop18537" /><stop + style="stop-color:#27414e;stop-opacity:0.74901961;" + offset="0.49837714" + id="stop18535" /><stop + style="stop-color:#27414e;stop-opacity:1;" + offset="0.83958842" + id="stop18533" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18539" + id="linearGradient18590" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-10)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18539" + id="linearGradient18615" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-14)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18539" + id="linearGradient18640" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-2)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient56358" + id="linearGradient18124-2" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-12)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient56358" + id="linearGradient18124-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-16)" + x1="503" + y1="25" + x2="503" + y2="23" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient48524" + id="linearGradient48512" + gradientUnits="userSpaceOnUse" + x1="153" + y1="25" + x2="135" + y2="7" + gradientTransform="translate(256)" /><linearGradient + inkscape:collect="always" + id="linearGradient48524"><stop + style="stop-color:#dfcd64;stop-opacity:1;" + offset="0" + id="stop48516" /><stop + style="stop-color:#d6b917;stop-opacity:1;" + offset="0.11879402" + id="stop48518" /><stop + style="stop-color:#f6e689;stop-opacity:1;" + offset="0.71356344" + id="stop48520" /><stop + style="stop-color:#d4bb2b;stop-opacity:1;" + offset="1" + id="stop48522" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18899" + id="linearGradient18901" + x1="805" + y1="16" + x2="812" + y2="16" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient18899"><stop + style="stop-color:#bf454c;stop-opacity:1;" + offset="0" + id="stop18895" /><stop + style="stop-color:#df6277;stop-opacity:1;" + offset="0.5" + id="stop18972" /><stop + style="stop-color:#bf454c;stop-opacity:1;" + offset="1" + id="stop18897" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18899" + id="linearGradient19011" + x1="812" + y1="16" + x2="820" + y2="16" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient18899" + id="linearGradient19015" + gradientUnits="userSpaceOnUse" + x1="805" + y1="16" + x2="812" + y2="16" + gradientTransform="matrix(-1,0,0,1,1632,0)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19917" + id="linearGradient22848" + gradientUnits="userSpaceOnUse" + x1="816" + y1="27" + x2="816" + y2="20" /><linearGradient + inkscape:collect="always" + id="linearGradient19917"><stop + style="stop-color:#a02722;stop-opacity:1;" + offset="0" + id="stop19913" /><stop + style="stop-color:#a02722;stop-opacity:0;" + offset="1" + id="stop19915" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient19935" + id="radialGradient19929" + cx="816" + cy="14" + fx="816" + fy="14" + r="11" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1570249,0,0,1,-128.13223,0)" /><linearGradient + inkscape:collect="always" + id="linearGradient19935"><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop19933" /><stop + style="stop-color:#f6cff4;stop-opacity:1;" + offset="1" + id="stop19931" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient53203" + id="linearGradient39079" + gradientUnits="userSpaceOnUse" + x1="785" + y1="26" + x2="785" + y2="6" /><linearGradient + inkscape:collect="always" + id="linearGradient53203"><stop + style="stop-color:#77563b;stop-opacity:1;" + offset="0" + id="stop53199" /><stop + style="stop-color:#86674f;stop-opacity:1;" + offset="1" + id="stop53201" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19391" + id="linearGradient19373" + x1="690" + y1="22" + x2="690" + y2="21" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient19391"><stop + style="stop-color:#cfaf6b;stop-opacity:1;" + offset="0" + id="stop19387" /><stop + style="stop-color:#ddc694;stop-opacity:1;" + offset="1" + id="stop19389" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19391" + id="linearGradient19435" + gradientUnits="userSpaceOnUse" + x1="690" + y1="22" + x2="690" + y2="21" + gradientTransform="translate(0,-5)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19391" + id="linearGradient19458" + gradientUnits="userSpaceOnUse" + x1="690" + y1="22" + x2="690" + y2="21" + gradientTransform="translate(0,-10)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient19391" + id="linearGradient19481" + gradientUnits="userSpaceOnUse" + x1="690" + y1="22" + x2="690" + y2="21" + gradientTransform="translate(0,-15)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient53203" + id="linearGradient56913" + gradientUnits="userSpaceOnUse" + x1="785" + y1="26" + x2="785" + y2="6" + gradientTransform="translate(-352)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient56992" + id="linearGradient56984" + x1="433" + y1="11" + x2="433" + y2="20" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient56992"><stop + style="stop-color:#4d3f33;stop-opacity:0.5;" + offset="0" + id="stop56986" /><stop + style="stop-color:#4d3f33;stop-opacity:0;" + offset="1" + id="stop56990" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient29505" + id="linearGradient29507" + x1="428" + y1="14" + x2="428" + y2="4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(2,2)" /><linearGradient + inkscape:collect="always" + id="linearGradient29505"><stop + style="stop-color:#99cd61;stop-opacity:1;" + offset="0" + id="stop29501" /><stop + style="stop-color:#bccd61;stop-opacity:1;" + offset="1" + id="stop29503" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6068" + id="linearGradient39389" + x1="565" + y1="23" + x2="567" + y2="21" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient38100" + id="linearGradient38102" + x1="408.70773" + y1="-379.00925" + x2="408.70773" + y2="-389.8125" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient38100"><stop + style="stop-color:#956c4a;stop-opacity:1;" + offset="0" + id="stop38096" /><stop + style="stop-color:#bb7c47;stop-opacity:1;" + offset="1" + id="stop38098" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient39375" + id="linearGradient39377" + x1="401.63666" + y1="-379.00925" + x2="401.63666" + y2="-389.8125" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient39375"><stop + style="stop-color:#d15e65;stop-opacity:1;" + offset="0" + id="stop39371" /><stop + style="stop-color:#b2594e;stop-opacity:1;" + offset="1" + id="stop39373" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient62774" + id="radialGradient62776" + cx="624" + cy="15" + fx="624" + fy="15" + r="12" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient62774"><stop + style="stop-color:#f2effd;stop-opacity:1;" + offset="0.45171013" + id="stop62772" /><stop + style="stop-color:#d2cbf3;stop-opacity:1;" + offset="1" + id="stop62770" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient62766" + id="radialGradient62768" + cx="624" + cy="16" + fx="624" + fy="16" + r="6" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient62766"><stop + style="stop-color:#fafbb9;stop-opacity:1;" + offset="0" + id="stop62762" /><stop + style="stop-color:#fafbb9;stop-opacity:0;" + offset="1" + id="stop62764" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient12453" + id="linearGradient12455" + x1="351" + y1="26" + x2="351" + y2="10" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient12453"><stop + style="stop-color:#b11917;stop-opacity:1;" + offset="0" + id="stop12449" /><stop + style="stop-color:#e65014;stop-opacity:1;" + offset="1" + id="stop12451" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient12299" + id="linearGradient12301" + x1="324" + y1="26" + x2="324" + y2="10" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient12299"><stop + style="stop-color:#0787c1;stop-opacity:1;" + offset="0" + id="stop12295" /><stop + style="stop-color:#65adb9;stop-opacity:1;" + offset="1" + id="stop12297" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient12445" + id="linearGradient12447" + x1="334" + y1="26" + x2="334" + y2="10" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient12445"><stop + style="stop-color:#798b2f;stop-opacity:1;" + offset="0" + id="stop12441" /><stop + style="stop-color:#9fc41e;stop-opacity:1;" + offset="1" + id="stop12443" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient21157" + id="radialGradient21159" + cx="368" + cy="16" + fx="368" + fy="16" + r="7" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient21157"><stop + style="stop-color:#e1edf2;stop-opacity:1;" + offset="0" + id="stop21153" /><stop + style="stop-color:#abbdc4;stop-opacity:1;" + offset="0.72112602" + id="stop21161" /><stop + style="stop-color:#95acb6;stop-opacity:1;" + offset="1" + id="stop21155" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient21167" + id="radialGradient21309" + gradientUnits="userSpaceOnUse" + cx="400" + cy="16" + fx="400" + fy="16" + r="11" + gradientTransform="matrix(1.3636364,0,0,1.3636364,-177.45455,-5.8181818)" /><linearGradient + inkscape:collect="always" + id="linearGradient21167"><stop + style="stop-color:#e5e6e9;stop-opacity:1;" + offset="0.13595749" + id="stop21163" /><stop + style="stop-color:#c5c7cf;stop-opacity:1;" + offset="0.86267382" + id="stop21165" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient16441" + id="radialGradient16443" + cx="559.9212" + cy="16.022875" + fx="559.9212" + fy="16.022875" + r="11.80246" + gradientTransform="matrix(1,0,0,1.0119015,0,-0.19069696)" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient16441"><stop + style="stop-color:#9f0bff;stop-opacity:1;" + offset="0.4400529" + id="stop16439" /><stop + style="stop-color:#7111f8;stop-opacity:1;" + offset="1" + id="stop16437" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath70915-4-5-0-2-7-5-3-9-4"><path + sodipodi:type="star" + style="opacity:1;fill:#bd44b3;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path70917-7-9-2-9-4-0-3-1-9" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="matrix(0.60389168,0.3121766,-0.3121766,0.60389168,226.77688,-168.46627)" /></clipPath><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient14255" + id="radialGradient14257" + cx="560" + cy="16" + fx="560" + fy="16" + r="9" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient14255"><stop + style="stop-color:#e570f7;stop-opacity:1;" + offset="0" + id="stop14251" /><stop + style="stop-color:#d829c8;stop-opacity:1;" + offset="1" + id="stop14253" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient16452" + id="linearGradient16454" + x1="560" + y1="25" + x2="560" + y2="11" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient16452"><stop + style="stop-color:#f6cff4;stop-opacity:1;" + offset="0" + id="stop16450" /><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop16448" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2066" + id="radialGradient2757-3" + cx="496.06177" + cy="17.211182" + fx="495.87827" + fy="18.730774" + r="11" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5554022,0,0,1.2337313,-771.57556,-4.2669434)" /><linearGradient + inkscape:collect="always" + id="linearGradient2066"><stop + style="stop-color:#ceb8aa;stop-opacity:1;" + offset="0.23876573" + id="stop2062" /><stop + style="stop-color:#b39888;stop-opacity:1;" + offset="0.51858544" + id="stop2064" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient2085"><stop + style="stop-color:#261a0a;stop-opacity:1;" + offset="0" + id="stop2081" /><stop + style="stop-color:#3c2b13;stop-opacity:1;" + offset="1" + id="stop2083" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2564" + id="linearGradient2566" + x1="466" + y1="27" + x2="466" + y2="22" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient2564"><stop + style="stop-color:#45362e;stop-opacity:1;" + offset="0" + id="stop2560" /><stop + style="stop-color:#59463c;stop-opacity:1;" + offset="1" + id="stop2562" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2739" + id="radialGradient2757" + cx="496.06177" + cy="17.211182" + fx="495.87827" + fy="18.730774" + r="11" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5554022,0,0,1.2337313,-515.57556,-4.2669434)" /><linearGradient + inkscape:collect="always" + id="linearGradient2739"><stop + style="stop-color:#cca997;stop-opacity:1;" + offset="0.23748928" + id="stop2755" /><stop + style="stop-color:#bd8e74;stop-opacity:1;" + offset="0.51858547" + id="stop2735" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1330" + id="linearGradient1332" + x1="487" + y1="15" + x2="487" + y2="5" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(256)" /><linearGradient + inkscape:collect="always" + id="linearGradient1330"><stop + style="stop-color:#261a0a;stop-opacity:1;" + offset="0" + id="stop1326" /><stop + style="stop-color:#422e11;stop-opacity:1;" + offset="1" + id="stop1328" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1463" + id="linearGradient1465" + x1="755" + y1="27" + x2="755" + y2="22" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1463"><stop + style="stop-color:#45220e;stop-opacity:1;" + offset="0" + id="stop1459" /><stop + style="stop-color:#552910;stop-opacity:1;" + offset="1" + id="stop1461" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1503" + id="linearGradient1505" + x1="748" + y1="20" + x2="748" + y2="17" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1503"><stop + style="stop-color:#5c3874;stop-opacity:1;" + offset="0" + id="stop1499" /><stop + style="stop-color:#3c3874;stop-opacity:1;" + offset="1" + id="stop1501" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1308" + id="linearGradient1310" + x1="16" + y1="27" + x2="16" + y2="5" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1308"><stop + style="stop-color:#f3db6c;stop-opacity:1;" + offset="0" + id="stop1304" /><stop + style="stop-color:#ffeea9;stop-opacity:1;" + offset="1" + id="stop1306" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath7052-4-6"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect7054-2-2" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1440" + id="linearGradient1442" + x1="7" + y1="24" + x2="11" + y2="14" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1440"><stop + style="stop-color:#2c251f;stop-opacity:1;" + offset="0" + id="stop1436" /><stop + style="stop-color:#4d3f33;stop-opacity:1;" + offset="1" + id="stop1438" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1460" + id="linearGradient1462" + x1="10" + y1="18" + x2="12" + y2="14" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient1460"><stop + style="stop-color:#4c7aba;stop-opacity:1;" + offset="0" + id="stop1456" /><stop + style="stop-color:#86c3cf;stop-opacity:1;" + offset="1" + id="stop1458" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath87687"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect87685" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath87707"><rect + style="fill:#ff0000;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect87705" + width="6" + height="10" + x="6" + y="14" + ry="1" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient292700" + id="linearGradient292686" + x1="86.052681" + y1="26.999552" + x2="86" + y2="5" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient292700"><stop + style="stop-color:#d0d0d0;stop-opacity:1;" + offset="0.23078403" + id="stop292702" /><stop + style="stop-color:#eeeeee;stop-opacity:1;" + offset="0.83153141" + id="stop292698" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient293074" + id="linearGradient293076" + x1="80" + y1="31" + x2="80" + y2="21" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient293074"><stop + style="stop-color:#a63649;stop-opacity:1;" + offset="0" + id="stop293070" /><stop + style="stop-color:#df6277;stop-opacity:1;" + offset="0.52521378" + id="stop293078" /><stop + style="stop-color:#a63649;stop-opacity:1;" + offset="1" + id="stop293072" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2085" + id="linearGradient42830" + x1="77" + y1="17" + x2="77" + y2="14" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient292039" + id="linearGradient292041" + x1="89" + y1="25" + x2="89" + y2="18" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient292039"><stop + style="stop-color:#fb9168;stop-opacity:1;" + offset="0" + id="stop292035" /><stop + style="stop-color:#f3db6c;stop-opacity:1;" + offset="1" + id="stop292037" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient288023" + id="linearGradient288033" + x1="183" + y1="11" + x2="183" + y2="7" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient288023" + id="linearGradient288025" + x1="171" + y1="11" + x2="171" + y2="7" + gradientUnits="userSpaceOnUse" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51555-6-8-0-1-3-1-4"><rect + style="fill:#fb9168;fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect51557-5-1-8-7-7-0-9" + width="19.999996" + height="16" + x="178.38519" + y="5.9999976" + ry="3" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient287141" + id="linearGradient287143" + x1="181.38519" + y1="21.999998" + x2="181.38519" + y2="5.9999976" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient287141"><stop + style="stop-color:#fb6a32;stop-opacity:1;" + offset="0" + id="stop287137" /><stop + style="stop-color:#fb9168;stop-opacity:1;" + offset="1" + id="stop287139" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient287169" + id="linearGradient287171" + x1="178.38519" + y1="21.999998" + x2="198.38519" + y2="21.999998" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient287169"><stop + style="stop-color:#d6d2d2;stop-opacity:1;" + offset="0" + id="stop287165" /><stop + style="stop-color:#aca7a7;stop-opacity:1;" + offset="0.49945405" + id="stop287173" /><stop + style="stop-color:#d6d2d2;stop-opacity:1;" + offset="0.9989081" + id="stop287167" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath51465-6-2-8-5-5-4-9"><rect + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51467-3-9-5-9-9-2-3" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" + ry="0.99999958" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient287187" + id="linearGradient287189" + x1="192.38519" + y1="22.999998" + x2="192.38519" + y2="17.999998" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + id="linearGradient287187"><stop + style="stop-color:#dfdfdf;stop-opacity:1;" + offset="0" + id="stop287183" /><stop + style="stop-color:#f3f3f3;stop-opacity:1;" + offset="1" + id="stop287185" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52515-9-3-0-6-2-2-6"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52517-4-9-9-2-2-2-0" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath87819"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect87817" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath87823"><rect + style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect87821" + width="6" + height="3" + x="179.38519" + y="13.999998" + ry="0.99999958" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3108" + id="linearGradient94737" + gradientUnits="userSpaceOnUse" + x1="70.852509" + y1="141.75883" + x2="70.852509" + y2="0.053809531" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3108" + id="linearGradient94739" + gradientUnits="userSpaceOnUse" + x1="70.852509" + y1="141.75883" + x2="70.852509" + y2="0.053809531" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2085" + id="linearGradient94741" + gradientUnits="userSpaceOnUse" + x1="504" + y1="15" + x2="504" + y2="5" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1503" + id="linearGradient94747" + gradientUnits="userSpaceOnUse" + x1="748" + y1="20" + x2="748" + y2="17" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1503" + id="linearGradient94749" + gradientUnits="userSpaceOnUse" + x1="748" + y1="20" + x2="748" + y2="17" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2085" + id="linearGradient94751" + gradientUnits="userSpaceOnUse" + x1="77" + y1="17" + x2="77" + y2="14" /></defs><sodipodi:namedview + id="namedview170" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="true" + inkscape:zoom="16" + inkscape:cx="13.3125" + inkscape:cy="42.25" + inkscape:window-width="1366" + inkscape:window-height="699" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="i_steve" + showguides="true"><inkscape:grid + empspacing="32" + type="xygrid" + id="grid451" + originx="0" + originy="0" /><sodipodi:guide + position="48,1008" + orientation="0,-1" + id="guide80876" + inkscape:locked="false" /><sodipodi:guide + position="688,996" + orientation="1,0" + id="guide87005" + inkscape:locked="false" /></sodipodi:namedview><title + id="title132">Prism Launcher Logo</title><metadata + id="metadata166"><rdf:RDF><cc:Work + rdf:about=""><dc:title>Prism Launcher Logo</dc:title><dc:date>19/10/2022</dc:date><dc:creator><cc:Agent><dc:title>Prism Launcher</dc:title></cc:Agent></dc:creator><dc:contributor><cc:Agent><dc:title>AutiOne, Boba, ely, Fulmine, gon sawa, Pankakes, tobimori, Zeke</dc:title></cc:Agent></dc:contributor><dc:source>https://github.com/PrismLauncher/PrismLauncher</dc:source><dc:rights><cc:Agent><dc:title>CC BY-SA 4.0</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>Prism Launcher</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata><g + id="g23616" + transform="matrix(1,0,0,0.6,0,6.2)" /><g + id="i_diamond"><rect + style="fill:#1bc3d7;fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15088-8-0" + width="20" + height="20" + x="134" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-88" + width="32" + height="32" + x="128" + y="0" /><rect + style="fill:url(#linearGradient2973);fill-opacity:1;stroke:none;stroke-width:1;paint-order:stroke markers fill;stop-color:#000000" + id="rect40970-3-3" + width="18" + height="18" + x="135" + y="7" + ry="2" /></g><g + id="i_brick" + style="opacity:0" + transform="translate(32)"><rect + style="fill:#df6277;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect13011" + width="22" + height="22" + x="37" + y="5" + ry="3" /><path + id="rect13933" + style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 47,5 v 5 H 37 v 2 h 4 v 8 h -4 v 2 h 10 v 5 h 2 v -5 h 10 v -2 h -4 v -8 h 4 V 10 H 49 V 5 Z m -4,7 h 10 v 8 H 43 Z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7" + width="32" + height="32" + x="32" + y="0" /></g><g + id="i_enderpearl-7" + transform="translate(-192)"><circle + style="fill:url(#radialGradient3002-5);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path78788-8" + cx="272" + cy="16" + r="12" /><path + id="circle80343-2-6" + style="fill:#62b397;fill-opacity:1;stroke-width:0.220486;paint-order:stroke markers fill;stop-color:#000000" + d="m 272,7 c -4.97057,0 -9,4.029438 -9,9 0,4.970562 4.02943,9 9,9 4.97056,0 9,-4.029438 9,-9 0,-4.970562 -4.02944,-9 -9,-9 z" + sodipodi:nodetypes="sssss" /><circle + style="fill:url(#radialGradient3407-4);fill-opacity:1;stroke-width:0.187412;paint-order:stroke markers fill;stop-color:#000000" + id="circle81814-8" + cx="272" + cy="16" + r="6" /><path + id="circle80343-8" + style="fill:url(#radialGradient3855-4);fill-opacity:1;stroke-width:0.220486;paint-order:stroke markers fill;stop-color:#000000" + d="m 272,6 c -5.52284,0 -10,4.477158 -10,10 h 3 c 0,-3.865989 3.13401,-7 7,-7 z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-4-4" + width="32" + height="32" + x="256" + y="0" /></g><g + id="i_modrinth" + transform="translate(-480,32)"><g + id="g83832" + transform="matrix(0.16936591,0,0,0.16936591,580,3.9908865)" + style="fill:url(#linearGradient3110);fill-opacity:1"><path + d="M 159.07,89.29 A 70.94,70.94 0 1 0 20,63.52 H 32 A 58.78,58.78 0 0 1 145.23,49.93 l -11.66,3.12 a 46.54,46.54 0 0 0 -29,-26.52 l -2.15,12.13 a 34.31,34.31 0 0 1 2.77,63.26 l 3.19,11.9 a 46.52,46.52 0 0 0 28.33,-49 l 11.62,-3.1 A 57.94,57.94 0 0 1 147.27,85 Z" + transform="translate(-19.79)" + fill="var(--color-brand)" + fill-rule="evenodd" + id="path83828" + style="fill:url(#linearGradient94737);fill-opacity:1" /><path + d="M 108.92,139.3 A 70.93,70.93 0 0 1 19.79,76 h 12 a 59.48,59.48 0 0 0 1.78,9.91 58.73,58.73 0 0 0 3.63,9.91 l 10.68,-6.41 a 46.58,46.58 0 0 1 44.72,-65 L 90.43,36.54 A 34.38,34.38 0 0 0 57.36,79.75 C 57.67,80.88 58,82 58.43,83 L 72.09,74.81 68,63.93 80.9,50.68 97.21,47.17 101.9,53 l -7.52,7.61 -6.55,2.06 -4.69,4.82 2.3,6.38 c 0,0 4.64,4.94 4.65,4.94 l 6.57,-1.74 4.67,-5.13 10.2,-3.24 3,6.84 L 104.05,88.43 86.41,94 78.49,85.19 64.7,93.48 a 34.44,34.44 0 0 0 28.72,11.59 L 96.61,117 A 46.6,46.6 0 0 1 54.13,99.83 l -10.64,6.38 a 58.81,58.81 0 0 0 99.6,-9.77 l 11.8,4.29 a 70.77,70.77 0 0 1 -45.97,38.57 z" + fill="var(--color-brand)" + id="path83830" + style="fill:url(#linearGradient94739);fill-opacity:1" + transform="translate(-19.79)" /></g><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8-5" + width="32" + height="32" + x="576" + y="0" /></g><g + id="i_flame" + transform="translate(-192,64)"><path + id="path5010" + style="fill:url(#linearGradient1470);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 299,10 a 2,2 0 0 0 -2,2 h -3 -5 c 0,2.761421 2.23858,5 5,5 h 5 v 1 c 0,1.656852 1.34315,3 3,3 v 1 c -1.10457,0 -2,0.895438 -2,2 v 2 h 11 v -2 c 0,-1.104562 -0.89543,-2 -2,-2 v -1 c 1.10457,0 2,-0.895432 2,-2 0,-3.865965 3.13401,-7 7,-7 v -2 z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-9" + width="32" + height="32" + x="288" + y="0" /><path + id="path225757" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="M 306.94922,12 C 305.86851,12.02738 305,12.912691 305,14 v 1 a 1,1 0 0 1 -1,-1 v 2 c 0,0.552284 0.44772,1 1,1 0,0.552284 -0.44772,1 -1,1 -0.55228,0 -1,-0.447716 -1,-1 -0.55228,0 -1,0.447716 -1,1 0,1.104568 0.89543,2 2,2 0.55228,0 1,0.447716 1,1 0,-0.552284 0.44772,-1 1,-1 h 1 c 0.55228,0 1,-0.447716 1,-1 v -1 c 0,0.552284 -0.44772,1 -1,1 -0.55228,0 -1,-0.447716 -1,-1 0.55228,0 1,-0.447716 1,-1 v -1 c 0,-0.552284 -0.44772,-1 -1,-1 v -1 c 0,-1.087309 0.86851,-1.97262 1.94922,-2 H 307 c -0.0173,0 -0.0336,-4.35e-4 -0.0508,0 z" /></g><g + id="i_skeleton" + transform="translate(-608)"><rect + style="fill:url(#linearGradient6070);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect543-0" + width="22" + height="22" + x="645" + y="5" + ry="3" /><rect + style="fill:url(#linearGradient7626);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect61092" + width="6" + height="3" + x="653" + y="20" + ry="1" /><rect + style="fill:url(#linearGradient7165);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect60969" + width="16" + height="3" + x="648" + y="22" + ry="1" /><rect + style="fill:url(#radialGradient6080);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63182" + width="6" + height="4" + x="659" + y="16" + ry="1" /><rect + style="fill:url(#linearGradient7157);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63184" + width="6" + height="4" + x="647" + y="16" + ry="1" /><rect + style="fill:#00ffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63186" + width="2" + height="2" + x="661" + y="17" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-88-4" + width="32" + height="32" + x="640" + y="0" /></g><g + id="i_squarecreeper" + transform="translate(-672,64)"><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8-3-0" + width="32" + height="32" + x="704" + y="0" /><rect + style="fill:url(#linearGradient11859-1);fill-opacity:1;stroke-width:0.226785;paint-order:stroke markers fill;stop-color:#000000" + id="rect543-0-2-3-9" + width="18" + height="18" + x="711" + y="7" + ry="2.4545455" /><path + id="rect29291-0" + style="fill:url(#radialGradient10457-1);fill-opacity:1;stroke-width:0.529166;paint-order:stroke markers fill;stop-color:#000000" + d="m 714,12 v 4 h 4 v -4 z m 4,4 v 2 h -2 v 6 h 2 v -2 h 4 v 2 h 2 v -6 h -2 v -2 z m 4,0 h 4 v -4 h -4 z" /><rect + style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + id="rect37478" + width="2" + height="2" + x="722" + y="14" /><rect + style="fill:#ff0000;fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + id="rect37478-7" + width="2" + height="2" + x="716" + y="14" /></g><g + id="i_creeper" + transform="translate(-64,32)"><rect + style="fill:url(#linearGradient11859);fill-opacity:1;stroke-width:0.226785;paint-order:stroke markers fill;stop-color:#000000" + id="rect543-0-2-3" + width="18" + height="18" + x="103" + y="7" + ry="2.4545455" /><path + id="rect29291" + style="fill:url(#radialGradient10457);fill-opacity:1;stroke-width:0.529166;paint-order:stroke markers fill;stop-color:#000000" + d="m 106,12 v 4 h 4 v -4 z m 4,4 v 2 h -2 v 6 h 2 v -2 h 4 v 2 h 2 v -6 h -2 v -2 z m 4,0 h 4 v -4 h -4 z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6" + width="32" + height="32" + x="96" + y="0" /></g><g + id="i_enderman" + transform="translate(-192,96)"><rect + style="fill:url(#linearGradient5297);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect543-0-2" + width="22" + height="22" + x="229" + y="5" + ry="3" /><rect + style="fill:url(#linearGradient5316);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63182-8" + width="7" + height="3" + x="242" + y="17" + ry="1" /><rect + style="fill:url(#linearGradient5305);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63184-7" + width="7" + height="3" + x="231" + y="17" + ry="1" /><rect + style="fill:#792aac;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect75119" + width="2" + height="2" + x="234" + y="18" /><rect + style="fill:#792aac;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect75474" + width="2" + height="2" + x="244" + y="18" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6-1" + width="32" + height="32" + x="224" + y="0" /></g><g + id="i_stone" + transform="translate(-576,64)"><rect + style="fill:url(#linearGradient25805);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15088-9" + width="20" + height="20" + x="774" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-4-1" + width="32" + height="32" + x="768" + y="0" /><path + id="path47261" + style="opacity:0.5;fill:#bfbfbb;fill-opacity:1;stroke-width:0.999997;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 777,11 v 1 h 12 v -1 z m 14,2 v 1 h 2 v -1 z m -17,2 v 1 h 8 v -1 z m 16,4 v 1 h 4 v -1 z m -8,2 v 1 h 2 v -1 z m 2,3 v 1 h 5 v -1 z" /><path + id="path47259" + style="opacity:0.5;fill:#7e7e77;fill-opacity:1;stroke-width:0.999997;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 774,8 v 1 h 7 V 8 Z m 15,0 v 1 h 5 V 8 Z m -4,8 v 1 h 5 v -1 z m -11,4 v 1 h 6 v -1 z m 3,3 v 1 h 2 v -1 z m 14,0 v 1 h 3 v -1 z" /></g><g + id="i_iron" + transform="translate(-352,64)"><rect + style="fill:url(#linearGradient17901);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15088" + width="20" + height="20" + x="486" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6-1-2" + width="32" + height="32" + x="480" + y="0" /><path + id="rect17965" + style="fill:#efefef;fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 487,23 c 0,1.107999 0.892,2 2,2 h 14 c 1.108,0 2,-0.892001 2,-2 z" /><rect + style="fill:url(#linearGradient18032);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8" + width="18" + height="2" + x="487" + y="19" /><rect + style="fill:url(#linearGradient18124);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4" + width="18" + height="2" + x="487" + y="15" /><rect + style="opacity:0.1;fill:url(#linearGradient18530);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4-7" + width="18" + height="2" + x="487" + y="17" /><rect + style="opacity:0.1;fill:url(#linearGradient18590);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4-7-5" + width="18" + height="2" + x="487" + y="13" /><rect + style="opacity:0.1;fill:url(#linearGradient18615);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4-7-6" + width="18" + height="2" + x="487" + y="9" /><rect + style="opacity:0.1;fill:url(#linearGradient18640);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4-7-56" + width="18" + height="2" + x="487" + y="21" /><rect + style="fill:url(#linearGradient18124-2);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15357-7-8-4-1" + width="18" + height="2" + x="487" + y="11" /><path + id="rect15357-7-8-4-5" + style="fill:url(#linearGradient18124-0);fill-opacity:1;stroke-width:0.999996;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 489,7 c -1.108,0 -2,0.8920011 -2,2 h 18 c 0,-1.1079989 -0.892,-2 -2,-2 z" /></g><g + id="i_gold" + transform="translate(-256,32)"><rect + style="fill:#d7bc21;fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15088-8" + width="20" + height="20" + x="390" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-88-6" + width="32" + height="32" + x="384" + y="0" /><rect + style="fill:url(#linearGradient48512);fill-opacity:1;stroke:none;stroke-width:1;paint-order:stroke markers fill;stop-color:#000000" + id="rect40970-3" + width="18" + height="18" + x="391" + y="7" + ry="2" /></g><g + id="i_tnt" + transform="translate(-640,64)"><rect + style="fill:#a02722;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect13011-7" + width="20" + height="20" + x="806" + y="6" + ry="3" /><g + id="g19020"><path + id="rect18703" + style="opacity:1;fill:url(#linearGradient18901);fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + d="m 809,6 c -1.662,0 -3,1.3380017 -3,3 v 14 c 0,1.661998 1.338,3 3,3 h 3 V 6 Z" + sodipodi:nodetypes="ssssccs" /><rect + style="opacity:1;fill:url(#linearGradient19011);fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + id="rect19003" + width="6" + height="20" + x="813" + y="6" /><path + id="path19013" + style="opacity:1;fill:url(#linearGradient19015);fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + d="m 823,6 c 1.662,0 3,1.3380017 3,3 v 14 c 0,1.661998 -1.338,3 -3,3 h -3 V 6 Z" + sodipodi:nodetypes="ssssccs" /></g><rect + style="opacity:1;fill:url(#linearGradient22848);fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + id="rect19910" + width="20" + height="20" + x="806" + y="6" + ry="3" /><rect + style="opacity:1;fill:url(#radialGradient19929);fill-opacity:1;stroke:none;stroke-width:0.295813;paint-order:stroke markers fill;stop-color:#000000" + id="rect121411" + width="20" + height="10" + x="806" + y="11" /><path + id="rect122467" + style="opacity:1;fill:#4d3f33;fill-opacity:1;stroke:none;stroke-width:0.374177;paint-order:stroke markers fill;stop-color:#000000" + d="m 808,13 v 2 h 1 v 4 h 2 v -4 h 1 v -2 z m 5,0 v 6 h 2 v -3.171875 l 2,2 V 19 h 2 v -6 h -2 v 2 l -2,-2 z m 7,0 v 2 h 1 v 4 h 2 v -4 h 1 v -2 z" + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-9-7" + width="32" + height="32" + x="800" + y="0" /></g><g + id="i_stone-2" + transform="translate(-576,32)"><rect + style="fill:url(#linearGradient39079);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15088-9-1" + width="20" + height="20" + x="774" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-4-1-0" + width="32" + height="32" + x="768" + y="0" /><path + id="rect48773" + style="opacity:0.268946;fill:#a88356;fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="M 776.13672,8 C 776.05936,8.00781 776,8.07286 776,8.15234 V 9.84766 C 776,9.93244 776.06756,10 776.15234,10 h 1.69532 C 777.93244,10 778,9.93244 778,9.84766 V 8.15234 C 778,8.06756 777.93244,8 777.84766,8 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 10,2 C 786.05936,10.00781 786,10.07286 786,10.15234 v 1.69532 C 786,11.93244 786.06756,12 786.15234,12 h 1.69532 C 787.93244,12 788,11.93244 788,11.84766 V 10.15234 C 788,10.06756 787.93244,10 787.84766,10 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -8,4 C 778.05936,14.00781 778,14.07286 778,14.15234 v 1.69532 C 778,15.93244 778.06756,16 778.15234,16 h 1.69532 C 779.93244,16 780,15.93244 780,15.84766 V 14.15234 C 780,14.06756 779.93244,14 779.84766,14 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 13,2 C 791.05936,16.00781 791,16.07286 791,16.15234 v 1.69532 C 791,17.93244 791.06756,18 791.15234,18 h 1.69532 C 792.93244,18 793,17.93244 793,17.84766 V 16.15234 C 793,16.06756 792.93244,16 792.84766,16 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -7,2 C 784.05936,18.00781 784,18.07286 784,18.15234 v 1.69532 C 784,19.93244 784.06756,20 784.15234,20 h 1.69532 C 785.93244,20 786,19.93244 786,19.84766 V 18.15234 C 786,18.06756 785.93244,18 785.84766,18 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -9,2 C 775.05936,20.00781 775,20.07286 775,20.15234 v 1.69532 C 775,21.93244 775.06756,22 775.15234,22 h 1.69532 C 776.93244,22 777,21.93244 777,21.84766 V 20.15234 C 777,20.06756 776.93244,20 776.84766,20 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 15,2 C 790.05936,22.00781 790,22.07286 790,22.15234 v 1.69532 C 790,23.93244 790.06756,24 790.15234,24 h 1.69532 C 791.93244,24 792,23.93244 792,23.84766 V 22.15234 C 792,22.06756 791.93244,22 791.84766,22 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -9,2 C 781.05936,24.00781 781,24.07286 781,24.15234 v 1.69532 C 781,25.93244 781.06756,26 781.15234,26 h 1.69532 C 782.93244,26 783,25.93244 783,25.84766 V 24.15234 C 783,24.06756 782.93244,24 782.84766,24 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z" /></g><g + id="i_planks" + transform="translate(-512)"><rect + style="fill:#a88a4a;fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56542-7-5-0" + width="20" + height="20" + x="678" + y="6" + ry="3" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-4-9" + width="32" + height="32" + x="672" + y="0" /><path + id="rect15086" + style="fill:url(#linearGradient19373);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 678,21 v 2 c 0,0.771066 0.2909,1.469665 0.76562,2 h 18.46876 C 697.7091,24.469665 698,23.771066 698,23 v -2 z" /><rect + style="fill:url(#linearGradient19435);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15086-4" + width="20" + height="4" + x="678" + y="16" + ry="0" /><rect + style="fill:url(#linearGradient19458);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + id="rect15086-2" + width="20" + height="4" + x="678" + y="11" + ry="0" /><path + id="rect15086-9" + style="fill:url(#linearGradient19481);fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 681,6 c -1.662,0 -3,1.3380017 -3,3 v 1 h 20 V 9 c 0,-1.6619983 -1.338,-3 -3,-3 z" /></g><g + id="i_grass" + transform="translate(-224)"><path + id="rect15088-9-1-7" + style="fill:url(#linearGradient56913);stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 425,8 h 14 l 3,1 v 14 c 0,1.662 -1.338,3 -3,3 h -14 c -1.662,0 -3,-1.338 -3,-3 V 9 Z" + sodipodi:nodetypes="cccsssscc" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-4-8" + width="32" + height="32" + x="416" + y="0" /><path + id="rect48773-2" + style="opacity:0.268946;fill:#a88356;fill-opacity:1;stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="M 424.13672,8 C 424.05936,8.00781 424,8.07286 424,8.15234 V 9.84766 C 424,9.93244 424.06756,10 424.15234,10 h 1.69532 C 425.93244,10 426,9.93244 426,9.84766 V 8.15234 C 426,8.06756 425.93244,8 425.84766,8 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 10,2 C 434.05936,10.00781 434,10.07286 434,10.15234 v 1.69532 C 434,11.93244 434.06756,12 434.15234,12 h 1.69532 C 435.93244,12 436,11.93244 436,11.84766 V 10.15234 C 436,10.06756 435.93244,10 435.84766,10 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -8,4 C 426.05936,14.00781 426,14.07286 426,14.15234 v 1.69532 C 426,15.93244 426.06756,16 426.15234,16 h 1.69532 C 427.93244,16 428,15.93244 428,15.84766 V 14.15234 C 428,14.06756 427.93244,14 427.84766,14 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 13,2 C 439.05936,16.00781 439,16.07286 439,16.15234 v 1.69532 C 439,17.93244 439.06756,18 439.15234,18 h 1.69532 C 440.93244,18 441,17.93244 441,17.84766 V 16.15234 C 441,16.06756 440.93244,16 440.84766,16 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -7,2 C 432.05936,18.00781 432,18.07286 432,18.15234 v 1.69532 C 432,19.93244 432.06756,20 432.15234,20 h 1.69532 C 433.93244,20 434,19.93244 434,19.84766 V 18.15234 C 434,18.06756 433.93244,18 433.84766,18 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -9,2 C 423.05936,20.00781 423,20.07286 423,20.15234 v 1.69532 C 423,21.93244 423.06756,22 423.15234,22 h 1.69532 C 424.93244,22 425,21.93244 425,21.84766 V 20.15234 C 425,20.06756 424.93244,20 424.84766,20 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m 15,2 C 438.05936,22.00781 438,22.07286 438,22.15234 v 1.69532 C 438,23.93244 438.06756,24 438.15234,24 h 1.69532 C 439.93244,24 440,23.93244 440,23.84766 V 22.15234 C 440,22.06756 439.93244,22 439.84766,22 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z m -9,2 C 429.05936,24.00781 429,24.07286 429,24.15234 v 1.69532 C 429,25.93244 429.06756,26 429.15234,26 h 1.69532 C 430.93244,26 431,25.93244 431,25.84766 V 24.15234 C 431,24.06756 430.93244,24 430.84766,24 h -1.69532 c -0.005,0 -0.0105,-5.2e-4 -0.0156,0 z" /><path + id="rect56976" + style="fill:url(#linearGradient56984);stroke-linecap:square;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000" + d="m 425,8 h 7 7 l 3,1 v 14 l -3,3 h -14 l -3,-3 V 9 Z" + sodipodi:nodetypes="cccccccccc" /><path + id="rect24023" + style="fill:url(#linearGradient29507);fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + d="m 425,6 c -1.662,0 -3,1.3380037 -3,3 v 3 2 h 2 v -2 h 2 v 2 h 4 v 2 h 2 v -2 -2 -2 h 2 v 2 2 h 2 v -2 h 2 v 2 2 h 2 v -2 h 2 V 9 c 0,-1.6619983 -1.338,-3 -3,-3 h -7 z" /></g><g + id="i_meat" + transform="translate(-480,32)"><path + id="rect80640" + style="opacity:1;fill:url(#linearGradient39389);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 568.48528,21.449747 a 1.5,1.5 0 0 0 -1.70424,-0.290027 l -2.18485,-2.184846 c -0.39173,-0.391738 -1.02247,-0.391737 -1.41421,0 l -0.70711,0.707106 c -0.39173,0.391737 -0.39173,1.022477 0,1.414214 l 2.18485,2.184847 a 1.5,1.5 0 0 0 0.29003,1.70424 1.5,1.5 0 0 0 2.12132,0 1.5,1.5 0 0 0 0.4378,-0.979175 1.5,1.5 0 0 0 0.97641,-0.435038 1.5,1.5 0 0 0 0,-2.121321 z" /><rect + style="opacity:1;fill:url(#linearGradient38102);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect74200" + width="16" + height="11" + x="397.64703" + y="-389.8125" + ry="4" + rx="0" + transform="rotate(45)" /><rect + style="opacity:1;fill:url(#linearGradient39377);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect74196" + width="8" + height="11" + x="396.64703" + y="-389.8125" + ry="4" + rx="3" + transform="rotate(45)" /><rect + style="opacity:1;fill:#dfdfdf;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect79410" + width="2" + height="3" + x="399.64703" + y="-385.8125" + ry="1" + transform="rotate(45)" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-61" + width="32" + height="32" + x="544" + y="0" /></g><g + id="i_netherstar" + transform="translate(-544,64)"><path + id="path87169-8-4" + style="fill:url(#radialGradient62776);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 624,4 c -1,1.999998 -2,3.000001 -3,4 -1,0.999999 0,3.000001 -1,4 -1,0.999999 -3,10e-7 -4,1 -1,0.999999 -2,2.000001 -4,3 2,0.999999 3,2.000001 4,3 1,0.999999 3,1e-6 4,1 1,0.999999 0,3.000001 1,4 1,0.999999 2,2.000002 3,4 1,-1.999998 2,-3.000001 3,-4 1,-0.999999 0,-3.000001 1,-4 1,-0.999999 3,-1e-6 4,-1 1,-0.999999 2,-2.000001 4,-3 -2,-0.999999 -3,-2.000001 -4,-3 -1,-0.999999 -3,-10e-7 -4,-1 -1,-0.999999 0,-3.000001 -1,-4 -1,-0.999999 -2,-2.000002 -3,-4 z" /><path + style="fill:url(#radialGradient62768);fill-opacity:1;stroke:none;stroke-width:0.132291;paint-order:stroke markers fill;stop-color:#000000" + d="m 624,22 c 1,-3 3,-5 6,-6 -3,-1 -5,-3 -6,-6 -1,3 -3,5 -6,6 3,1 5,3 6,6 z" + id="path88076" + sodipodi:nodetypes="ccccc" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6-9" + width="32" + height="32" + x="608" + y="0" /></g><g + id="i_ftb_logo" + transform="translate(-224)"><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8-2" + width="32" + height="32" + x="320" + y="0" /><path + id="path15348-5" + style="fill:url(#linearGradient12455);fill-opacity:1;stroke:none;stroke-width:0.869508;paint-order:stroke markers fill;stop-color:#000000" + d="m 342,10 v 3 11 a 2,2 0 0 0 2,2 h 7 V 20 A 3,3 0 0 0 349.6543,17.49805 3,3 0 0 0 351,15 v -3 a 2,2 0 0 0 -2,-2 z m 3,3 h 3 v 3 h -3 z m 0,6 h 3 v 1 3 h -3 z" /><path + id="path15342-4" + style="fill:url(#linearGradient12301);fill-opacity:1;stroke:none;stroke-width:0.869508;paint-order:stroke markers fill;stop-color:#000000" + d="m 323,10 a 2,2 0 0 0 -2,2 v 14 h 3 v -7 h 4.5 V 16 H 324 v -3 h 5 v -3 z" /><path + style="fill:url(#linearGradient12447);fill-opacity:1;stroke:none;stroke-width:0.869508;paint-order:stroke markers fill;stop-color:#000000" + d="m 330,10 v 3 h 4 v 13 h 3 V 13 h 4 v -3 z" + id="rect10933-8" + sodipodi:nodetypes="ccccccccc" /></g><g + id="i_gear" + transform="translate(-288,96)"><path + id="path26489" + style="opacity:1;fill:url(#radialGradient21159);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 368,9 c -3.86599,0 -7,3.134007 -7,7 0,3.865993 3.13401,7 7,7 3.86599,0 7,-3.134007 7,-7 0,-3.865993 -3.13401,-7 -7,-7 z m 0,5 c 1.10456,0 2,0.89543 2,2 0,1.10457 -0.89544,2 -2,2 -1.10456,0 -2,-0.89543 -2,-2 0,-1.10457 0.89544,-2 2,-2 z" + sodipodi:nodetypes="ssssssssss" /><path + id="path23199" + style="fill:url(#radialGradient21309);fill-opacity:1;stroke:none;stroke-width:0.148828;paint-order:stroke markers fill;stop-color:#000000" + d="m 366,5 v 2.2265625 c -1.00464,0.2280151 -1.94322,0.6232232 -2.78906,1.15625 l -1.57422,-1.5742187 -2.82813,2.828125 1.57422,1.5742192 C 359.84979,12.056778 359.45458,12.995357 359.22656,14 H 357 v 4 h 2.22656 c 0.22802,1.004643 0.62323,1.943222 1.15625,2.789062 l -1.57422,1.574219 2.82813,2.830078 1.57422,-1.576171 c 0.84584,0.533026 1.78442,0.928234 2.78906,1.15625 V 27 h 4 v -2.226562 c 1.00464,-0.228016 1.94322,-0.623224 2.78906,-1.15625 l 1.57422,1.576171 2.83008,-2.830078 -1.57617,-1.574219 C 376.15021,19.943222 376.54542,19.004643 376.77344,18 H 379 v -4 h -2.22656 c -0.22802,-1.004643 -0.62323,-1.943222 -1.15625,-2.789062 l 1.57617,-1.5742192 -2.83008,-2.828125 -1.57422,1.5742187 C 371.94322,7.8497857 371.00464,7.4545776 370,7.2265625 V 5 Z m 2,5 c 3.31371,0 6,2.686295 6,6 0,3.313705 -2.68629,6 -6,6 -3.31371,0 -6,-2.686295 -6,-6 0,-3.313705 2.68629,-6 6,-6 z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6-0" + width="32" + height="32" + x="352" + y="0" /></g><g + id="i_magitech" + transform="translate(-416,96)"><path + sodipodi:type="star" + style="opacity:1;fill:url(#radialGradient16443);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="path63885" + inkscape:flatsided="false" + sodipodi:sides="8" + sodipodi:cx="560" + sodipodi:cy="16" + sodipodi:r1="10.946013" + sodipodi:r2="12.727922" + sodipodi:arg1="0.78539816" + sodipodi:arg2="1.1780972" + inkscape:rounded="0.29" + inkscape:randomized="0.014" + d="m 567.75822,23.780557 c -1.02129,1.017197 -1.40469,3.26498 -2.72399,3.814557 -1.3193,0.549578 -3.76804,-0.657585 -5.20836,-0.687167 -1.44032,-0.02958 -3.32578,1.488919 -4.65697,0.936933 -1.33119,-0.551986 -2.06769,-2.91036 -3.08281,-3.927341 -1.01511,-1.016982 -3.30517,-1.550442 -3.83572,-2.877061 -0.53055,-1.326619 0.75095,-3.615262 0.76004,-5.050859 0.009,-1.435596 -1.30602,-3.611418 -0.75806,-4.936294 0.54796,-1.3248769 2.7981,-1.6627753 3.83368,-2.6540083 1.03559,-0.9912328 1.77327,-3.6016077 3.08037,-4.1709394 1.3071,-0.5693318 3.41767,0.6823629 4.85198,0.6871672 1.43432,0.0048 3.67769,-1.1020263 5.01335,-0.5805511 1.33567,0.5214752 1.68844,2.9320874 2.72643,3.9273412 1.03799,0.9952536 3.30533,1.5532379 3.83572,2.8770604 0.53039,1.323824 -0.73478,3.255376 -0.76004,4.694477 -0.0253,1.439101 1.28343,3.594239 0.75806,4.936295 -0.52537,1.342056 -2.8124,1.993192 -3.83368,3.01039 z" + transform="rotate(15,543.92119,-105.50919)" /><g + id="g68167" + clip-path="url(#clipPath70915-4-5-0-2-7-5-3-9-4)" + transform="translate(-32)"><rect + style="opacity:1;fill:url(#radialGradient14257);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect68163" + width="18" + height="18" + x="551" + y="7" /><path + id="rect67092" + style="opacity:1;fill:url(#linearGradient16454);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="M 562,11.419922 V 15 l -2,1 -2,-1 v -3.576172 c -1.82001,0.794312 -2.99746,2.590388 -3,4.576172 0,2.049737 1.2349,3.810134 3,4.582031 V 25 h 4 v -4.417969 c 1.7651,-0.771897 3,-2.532294 3,-4.582031 -9.9e-4,-1.987202 -1.1787,-3.785197 -3,-4.580078 z" /></g><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-0" + width="32" + height="32" + x="512" + y="0" /></g><g + id="i_herobrine" + transform="translate(-448)"><g + id="g56546" + clip-path="none" + transform="translate(-32)"><rect + style="fill:url(#radialGradient2757-3);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56542-7-5" + width="22" + height="22" + x="485" + y="5" + ry="2.999999" /><path + id="rect56552" + style="fill:url(#linearGradient94741);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="M 488 5 C 486.338 5 485 6.3380017 485 8 L 485 15 L 487 15 C 488.108 15 489 14.107998 489 13 L 489 12 L 503 12 L 503 13 C 503 14.107998 503.892 15 505 15 L 507 15 L 507 8 C 507 6.3380017 505.662 5 504 5 L 503 5 L 489 5 L 488 5 z " /></g><rect + style="opacity:1;fill:#8a5d54;fill-opacity:1;stroke:none;stroke-width:0.396874;paint-order:stroke markers fill;stop-color:#000000" + id="rect53396" + width="6" + height="3" + x="461" + y="22" + ry="0" /><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63182-8-0" + width="7" + height="3" + x="466" + y="17" + ry="1" /><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63184-7-9" + width="7" + height="3" + x="455" + y="17" + ry="1" /><rect + style="opacity:1;fill:#6a493c;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect50123" + width="4" + height="2" + x="462" + y="20" + ry="0" /><path + id="path195645-9" + style="fill:url(#linearGradient2566);fill-opacity:1;stroke:none;stroke-width:0.362295;paint-order:stroke markers fill;stop-color:#000000" + d="m 461,22 a 2,2 0 0 0 -2,2 v 3 h 3 4 3 v -3 a 2,2 0 0 0 -2,-2 h -1 v 2 h -4 v -2 z" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8-3-9" + width="32" + height="32" + x="448" + y="0" /></g><g + id="i_steve" + transform="translate(-736,32)"><rect + style="fill:url(#radialGradient2757);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect56542-7" + width="22" + height="22" + x="741" + y="5" + ry="3" /><path + id="rect56552-6" + style="fill:url(#linearGradient1332);fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="M 744 5 C 742.338 5 741 6.3380017 741 8 L 741 15 L 743 15 C 744.108 15 745 14.107997 745 13 L 745 12 L 759 12 L 759 13 C 759 14.107997 759.892 15 761 15 L 763 15 L 763 8 C 763 6.3380017 761.662 5 760 5 L 759 5 L 745 5 L 744 5 z " /><rect + style="fill:#8a4c3d;fill-opacity:1;stroke:none;stroke-width:0.396874;paint-order:stroke markers fill;stop-color:#000000" + id="rect53396-9" + width="6" + height="3" + x="749" + y="22" + ry="0" /><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63182-8-0-3" + width="7" + height="3" + x="754" + y="17" + ry="1" /><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect63184-7-9-7" + width="7" + height="3" + x="743" + y="17" + ry="1" /><rect + style="fill:#6a4030;fill-opacity:1;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect50123-4" + width="4" + height="2" + x="750" + y="20" + ry="0" /><path + id="path195645" + style="fill:url(#linearGradient1465);fill-opacity:1;stroke:none;stroke-width:0.362295;paint-order:stroke markers fill;stop-color:#000000" + d="m 749,22 a 2,2 0 0 0 -2,2 v 3 h 3 4 3 v -3 a 2,2 0 0 0 -2,-2 h -1 v 2 h -4 v -2 z" /><g + id="g1469" + style="fill:url(#linearGradient1505);fill-opacity:1"><rect + style="fill:url(#linearGradient94747);fill-opacity:1;stroke-width:0.396874;paint-order:stroke markers fill;stop-color:#000000" + id="rect75119-2" + width="3" + height="3" + x="746" + y="17" /><rect + style="fill:url(#linearGradient94749);fill-opacity:1;stroke-width:0.396874;paint-order:stroke markers fill;stop-color:#000000" + id="rect112219" + width="3" + height="3" + x="755" + y="17" /></g><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-6-1-9" + width="32" + height="32" + x="736" + y="0" /></g><g + id="i_dirt" + transform="translate(-192,64)"><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8-3" + width="32" + height="32" + x="192" + y="0" /></g><g + id="i_bee" + transform="translate(0,64)"><rect + style="fill:url(#linearGradient1310);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect543" + width="22" + height="22" + x="5" + y="5" + ry="3" /><g + id="g7050" + clip-path="url(#clipPath7052-4-6)"><rect + style="fill:url(#linearGradient1442);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect3612" + width="6" + height="10" + x="6" + y="14" /><rect + style="fill:url(#linearGradient1462);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect4739" + width="3" + height="4" + x="9" + y="14" /></g><use + x="0" + y="0" + xlink:href="#g7050" + id="use7056" + transform="matrix(-1,0,0,1,32,0)" /><g + id="g10049" + transform="translate(-1)" + style="fill:#2c251f;fill-opacity:1"><rect + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect9308" + width="3" + height="3" + x="9" + y="10" + ry="1" /><rect + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect9310" + width="5" + height="3" + x="4" + y="7" + ry="1" /><path + id="path9312" + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 8,9 v 1 c 0.5539988,0 1,0.446001 1,1 h 1 V 10 C 9.4460006,10 9,9.5539994 9,9 Z" /></g><g + id="g10057" + transform="matrix(-1,0,0,1,33,0)" + style="fill:#2c251f;fill-opacity:1"><rect + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect10051" + width="3" + height="3" + x="9" + y="10" + ry="1" /><rect + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect10053" + width="5" + height="3" + x="4" + y="7" + ry="1" /><path + id="path10055" + style="fill:#2c251f;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 8,9 v 1 c 0.5539988,0 1,0.446001 1,1 h 1 V 10 C 9.4460006,10 9,9.5539994 9,9 Z" /></g><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412" + width="32" + height="32" + x="0" + y="0" /></g><g + id="i_chicken" + transform="translate(-64,96)"><rect + style="fill:url(#linearGradient292686);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect18469" + width="18" + height="22" + x="71" + y="5" + ry="3" /><rect + style="fill:url(#linearGradient293076);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect22620" + width="8" + height="8" + x="76" + y="21" + ry="1" /><g + id="g23887" + clip-path="none" + style="fill:url(#linearGradient42830);fill-opacity:1"><rect + style="fill:url(#linearGradient94751);fill-opacity:1;stroke-width:0.170787;paint-order:stroke markers fill;stop-color:#000000" + id="rect3612-5" + width="5" + height="5" + x="72" + y="12" + ry="1" /><path + id="rect42884" + style="fill:#ffffff;fill-opacity:1;stroke:none;paint-order:stroke markers fill;stop-color:#000000" + d="m 75,12 v 2 h 2 v -1 c 0,-0.553999 -0.446001,-1 -1,-1 z" /></g><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-8" + width="32" + height="32" + x="64" + y="0" /><use + x="0" + y="0" + xlink:href="#g23887" + id="use42929" + transform="translate(11)" /><rect + style="fill:url(#linearGradient292041);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect37390-3" + width="20" + height="7" + x="70" + y="16" + ry="1" /></g><g + id="i_fox" + transform="translate(-160,128)"><path + id="path51543" + style="fill:url(#linearGradient288033);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 180,7 v 2 1 1 c 0,1.107999 0.892,2 2,2 h 2 c 1.108,0 2,-0.892001 2,-2 V 9 c 0,-1.1079989 -0.892,-2 -2,-2 h -1 -1 z" /><path + id="rect51469" + style="fill:url(#linearGradient288025);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 172,7 v 2 1 1 c 0,1.107999 -0.892,2 -2,2 h -2 c -1.108,0 -2,-0.892001 -2,-2 V 9 c 0,-1.1079989 0.892,-2 2,-2 h 1 1 z" /><g + id="g51553" + clip-path="url(#clipPath51555-6-8-0-1-3-1-4)" + transform="translate(-12.385191,4.0000023)"><rect + style="fill:url(#linearGradient287143);fill-opacity:1;stroke-width:0.271456;paint-order:stroke markers fill;stop-color:#000000" + id="rect50678" + width="19.999996" + height="16" + x="178.38519" + y="5.9999981" /><rect + style="fill:url(#linearGradient287171);fill-opacity:1;stroke-width:0.258767;paint-order:stroke markers fill;stop-color:#000000" + id="rect51545" + width="21.999998" + height="5" + x="177.38519" + y="19.999998" + ry="2" /></g><g + id="g51463" + clip-path="url(#clipPath51465-6-2-8-5-5-4-9)" + transform="translate(-12.385191,4.0000023)"><rect + style="fill:url(#linearGradient287189);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51033" + width="10.000002" + height="5.0000005" + x="183.38519" + y="17.999998" /><rect + style="fill:#4d3f33;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect51319" + width="6" + height="3" + x="185.38519" + y="16.999998" + ry="0.99999958" /></g><g + id="g52513" + clip-path="url(#clipPath52515-9-3-0-6-2-2-6)" + transform="matrix(-1,0,0,1,352.38519,4.0000023)"><rect + style="fill:#e9ecec;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52365" + width="6" + height="3" + x="179.38519" + y="13.999998" /><rect + style="fill:#141519;fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect52369" + width="6" + height="5" + x="176.38519" + y="12.999998" /></g><use + x="0" + y="0" + xlink:href="#g52513" + id="use55252" + transform="matrix(-1,0,0,1,352,0)" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-4" + width="32" + height="32" + x="160" + y="0" /></g><rect + style="fill:url(#linearGradient84368);fill-opacity:1;stroke-width:0.277182;paint-order:stroke markers fill;stop-color:#000000" + id="rect13011-3" + width="20" + height="20" + x="166" + y="38" + ry="3" /><path + id="rect13933-4" + style="fill:url(#linearGradient85182);fill-opacity:1;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + d="m 175,38 v 5 h -9 v 2 h 4 v 6 h -4 v 2 h 9 v 5 h 2 v -5 h 9 v -2 h -4 v -6 h 4 v -2 h -9 v -5 z m -3,7 h 8 v 6 h -8 z" + sodipodi:nodetypes="cccccccccccccccccccccccccc" /><rect + style="fill:#ffffff;fill-opacity:0;stroke:none;stroke-width:0.264583;paint-order:stroke markers fill;stop-color:#000000" + id="rect128412-7-0" + width="32" + height="32" + x="160" + y="32" /></svg> diff --git a/meshmc/branding/meshmc.6.scd.in b/meshmc/branding/meshmc.6.scd.in new file mode 100644 index 0000000000..1a3d63898e --- /dev/null +++ b/meshmc/branding/meshmc.6.scd.in @@ -0,0 +1,82 @@ +@MeshMC_AppBinaryName@(6) + + +# NAME + +@MeshMC_AppBinaryName@ - a launcher and instance manager for Minecraft. + + +# SYNOPSIS + +*@MeshMC_AppBinaryName@* [OPTIONS...] + + +# DESCRIPTION + +MeshMC is a custom launcher for Minecraft that allows you to easily manage +multiple installations of Minecraft at once. It also allows you to easily +install and remove mods by simply dragging and dropping. +Here are the current features of MeshMC. + +# OPTIONS + +*-d, --dir*=DIRECTORY + Use DIRECTORY as the MeshMC root. + +*-l, --launch*=INSTANCE_ID + Launch the instance specified by INSTANCE_ID. + +*--show*=INSTANCE_ID + Show the configuration window of the instance specified by INSTANCE_ID. + +*--alive* + Write a small 'live.check' file after MeshMC starts. + +*-h, --help* + Display help text and exit. + +*-v, --version* + Display program version and exit. + +*-a, --profile*=PROFILE + Use the account specified by PROFILE (only valid in combination with --launch). + +# ENVIRONMENT + +The behavior of the launcher can be customized by the following environment +variables, besides other common Qt variables: + +*QT_LOGGING_RULES* + Specifies which logging categories are shown in the logs. One can + enable/disable multiple categories by separating them with a semicolon (;). + + The specific syntax, and alternatives to this setting, can be found at + https://doc.qt.io/qt-6/qloggingcategory.html#configuring-categories. + +*QT_MESSAGE_PATTERN* + Specifies the format in which the console output will be shown. + + Available options, as well as syntax, can be viewed at + https://doc.qt.io/qt-6/qtglobal.html#qSetMessagePattern. + +# EXIT STATUS + +*0* + Success + +*1* + Failure (syntax or usage error; configuration error; unexpected error). + +# BUGS + +@MeshMC_BUG_TRACKER_URL@ + +# RESOURCES + +GitHub: @MeshMC_Git@ + +Main website: https://@MeshMC_Domain@ + +# AUTHORS + +@MeshMC_Authors@ diff --git a/meshmc/branding/meshmc.qrc.in b/meshmc/branding/meshmc.qrc.in new file mode 100644 index 0000000000..021c902d01 --- /dev/null +++ b/meshmc/branding/meshmc.qrc.in @@ -0,0 +1,6 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource prefix="/"> + <file>@MeshMC_AppID@.svg</file> + </qresource> +</RCC> diff --git a/meshmc/branding/meshmc.rc.in b/meshmc/branding/meshmc.rc.in new file mode 100644 index 0000000000..fd9e283a53 --- /dev/null +++ b/meshmc/branding/meshmc.rc.in @@ -0,0 +1,29 @@ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <windows.h> + +IDI_ICON1 ICON DISCARDABLE "@MeshMC_AppID@.ico" +1 RT_MANIFEST "@MeshMC_AppBinaryName@.manifest" + +VS_VERSION_INFO VERSIONINFO +FILEVERSION @MeshMC_VERSION_NAME4_COMMA@ +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "@MeshMC_Copyright@" + VALUE "FileDescription", "@MeshMC_DisplayName@" + VALUE "FileVersion", "@MeshMC_RELEASE_VERSION_NAME@.0" + VALUE "ProductName", "@MeshMC_DisplayName@" + VALUE "ProductVersion", "@MeshMC_RELEASE_VERSION_NAME@" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0000, 0x04b0 // Unicode + END +END diff --git a/meshmc/branding/org.projecttick.MeshMC.bigsur.svg b/meshmc/branding/org.projecttick.MeshMC.bigsur.svg new file mode 100644 index 0000000000..9e61411e1a --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.bigsur.svg @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="1024" + height="1024" + viewBox="0 0 1024 1024" + version="1.1" + id="svg1" + inkscape:version="1.4.3 (0d15f75, 2025-12-25)" + sodipodi:docname="org.projecttick.ProjTLauncher.bigsur.svg" + inkscape:export-filename="ProjT.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="px" + showgrid="true" + inkscape:zoom="0.3982734" + inkscape:cx="474.54839" + inkscape:cy="657.83956" + inkscape:window-width="1470" + inkscape:window-height="831" + inkscape:window-x="0" + inkscape:window-y="33" + inkscape:window-maximized="0" + inkscape:current-layer="layer2" + showguides="true" + inkscape:export-bgcolor="#00000000"> + <inkscape:grid + id="grid5" + units="px" + originx="0" + originy="0" + spacingx="1" + spacingy="1" + empcolor="#0099e5" + empopacity="0.30196078" + color="#0099e5" + opacity="0.14901961" + empspacing="8" + enabled="true" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1"> + <inkscape:path-effect + effect="bspline" + id="path-effect3" + is_visible="true" + lpeversion="1.3" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" + uniform="false" /> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke-width:21.7166" + id="rect22" + width="377.13037" + height="133.73126" + x="641.68304" + y="431.42764" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath82"> + <rect + style="display:inline;fill:#000000;stroke:#000000;stroke-width:133.333;stroke-opacity:1" + id="rect82" + width="941.03699" + height="940.44" + x="40.02132" + y="41.07177" + rx="126" /> + </clipPath> + </defs> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Katman 2" + style="display:inline"> + <rect + style="display:inline;fill:#000000;stroke:#000000;stroke-width:133.333;stroke-opacity:1" + id="rect1" + width="891.03729" + height="890.43964" + x="66.32843" + y="67.078201" + ry="0" + rx="126" /> + </g> + <g + inkscape:label="Katman 1" + inkscape:groupmode="layer" + id="layer1" + style="display:inline"> + <g + id="g82" + clip-path="url(#clipPath82)"> + <path + style="display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="M 40.450225,165.79121 983.54979,166.09708 983.23606,41.307514 40.450225,41.001659 V 290.2749" + id="path7" /> + <path + style="display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="M 40.558073,555.82487 V 306.06476 H 983.44194 V 430.70138 H 40.558073" + id="path8" /> + <path + style="display:inline;fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="m 40.509663,695.21779 v -124.6233 l 942.871427,0.68852 v 123.24626 z" + id="path10" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.9446;stroke-dasharray:none;stroke-opacity:1" + d="M 22.509662,711.0539 H 1001.3811" + id="path11" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00148,712.02216 0.004,108.29039" + id="path12" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:16.7362;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00591,820.19084 v 15.57958" + id="path13" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00591,835.77042 -66.92359,-0.0933" + id="path14" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:252.484;stroke-dasharray:none;stroke-opacity:1" + d="m 501.04199,812.03729 h 24.02613" + id="path15" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="M 40.558073,851.34999 H 983.44194" + id="path16" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.2588;stroke-dasharray:none;stroke-opacity:1" + d="M 506.9747,851.34999 V 975.96451" + id="path17" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path23" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path27" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path28" /> + <path + style="display:inline;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path32" /> + <rect + style="display:inline;fill:#000000;fill-opacity:0" + id="rect2" + width="25.282333" + height="25.007524" + x="968.42328" + y="535.60071" /> + <g + id="g7" + transform="matrix(0.61781835,0,0,1.1483695,389.44165,-65.489641)" + clip-path="url(#clipPath22)" + style="display:inline"> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.4154;stroke-dasharray:none;stroke-opacity:1" + d="M 660.7929,428.19661 983.90794,555.72506" + id="path9" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#ffffff;fill-opacity:1;stroke-width:1.00281" + id="rect3" + width="6.2020512" + height="14.520559" + x="984.00256" + y="539.02423" /> + </g> + </g> + </g> +</svg> diff --git a/meshmc/branding/org.projecttick.MeshMC.desktop.in b/meshmc/branding/org.projecttick.MeshMC.desktop.in new file mode 100644 index 0000000000..58c1c77e18 --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.desktop.in @@ -0,0 +1,13 @@ +[Desktop Entry] +Version=1.0 +Name=@MeshMC_DisplayName@ +Comment=Discover, manage, and play Minecraft instances +Type=Application +Terminal=false +Exec=@MeshMC_AppBinaryName@ %U +StartupNotify=true +Icon=@MeshMC_AppID@ +Categories=Game;ActionGame;AdventureGame;Simulation;PackageManager; +Keywords=game;minecraft;mc; +StartupWMClass=@MeshMC_CommonName@ +MimeType=application/zip;application/x-modrinth-modpack+zip;x-scheme-handler/curseforge;x-scheme-handler/meshmc;x-scheme-handler/@MeshMC_AppBinaryName@; diff --git a/meshmc/branding/org.projecttick.MeshMC.icns b/meshmc/branding/org.projecttick.MeshMC.icns Binary files differnew file mode 100644 index 0000000000..bf34d3741e --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.icns diff --git a/meshmc/branding/org.projecttick.MeshMC.ico b/meshmc/branding/org.projecttick.MeshMC.ico Binary files differnew file mode 100644 index 0000000000..3ca3a676da --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.ico diff --git a/meshmc/branding/org.projecttick.MeshMC.metainfo.xml.in b/meshmc/branding/org.projecttick.MeshMC.metainfo.xml.in new file mode 100644 index 0000000000..1dcfe79af6 --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.metainfo.xml.in @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="desktop"> + <id>@MeshMC_AppID@</id> + <name>MeshMC</name> + <summary>Custom Minecraft Launcher to easily manage multiple Minecraft installations at once</summary> + <developer id="org.projecttick"> + <name>Project Tick</name> + </developer> + <metadata_license>CC0-1.0</metadata_license> + <project_license>GPL-3.0-only</project_license> + <description> + <p>MeshMC is a custom launcher for Minecraft that focuses on predictability, long term stability and simplicity.</p> + <p>Features:</p> + <ul> + <li>Easily install game modifications, such as Fabric, Forge and Quilt</li> + <li>Easily install and update modpacks from the MeshMC</li> + <li>Control your Java settings, and enable Mangohud or Gamemode with a toggle</li> + <li>Manage worlds and resource packs from the launcher</li> + <li>See logs and other details easily through a dashboard</li> + <li>Kill Minecraft in case of a crash/freeze</li> + <li>Isolate Minecraft instances to keep everything clean</li> + <li>Install and update mods directly from the launcher</li> + <li>Customize the launcher with themes, and more</li> + <li>And cat :3</li> + </ul> + </description> + <screenshots> + <screenshot type="default"> + <caption>The main MeshMC window</caption> + <image type="source" width="1030" height="764">https://projecttick.org/img/MeshMC.png</image> + </screenshot> + </screenshots> + <releases> + <release version="@MeshMC_VERSION_NAME@" date="@MeshMC_BUILD_TIMESTAMP@"></release> + </releases> + <url type="homepage">https://projecttick.org/p/meshmc</url> + <url type="bugtracker">https://github.com/Project-Tick/MeshMC/issues</url> + <url type="faq">https://projecttick.org/handbook</url> + <url type="help">https://projecttick.org/handbook/</url> + <url type="translate">https://crowdin.com/project/projtlauncher</url> + <url type="contact">https://github.com/Project-Tick/MeshMC/issues</url> + <url type="vcs-browser">https://github.com/Project-Tick/MeshMC</url> + <url type="contribute">https://github.com/Project-Tick/MeshMC/blob/master/README.md</url> + <content_rating type="oars-1.1"> + <content_attribute id="violence-fantasy">moderate</content_attribute> + <content_attribute id="social-chat">intense</content_attribute> + </content_rating> + <launchable type="desktop-id">@MeshMC_AppID@.desktop</launchable> +</component> diff --git a/meshmc/branding/org.projecttick.MeshMC.mime.xml b/meshmc/branding/org.projecttick.MeshMC.mime.xml new file mode 100644 index 0000000000..912250ff61 --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.mime.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-modrinth-modpack+zip"> + <comment>Modrinth Modpack File</comment> + <icon name="application-x-modrinth-modpack"/> + <glob-deleteall/> + <glob pattern="*.mrpack"/> + </mime-type> +</mime-info> diff --git a/meshmc/branding/org.projecttick.MeshMC.svg b/meshmc/branding/org.projecttick.MeshMC.svg new file mode 100644 index 0000000000..0bf2cf6db1 --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC.svg @@ -0,0 +1,181 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="1024" + height="1024" + viewBox="0 0 1024 1024" + version="1.1" + id="svg1" + inkscape:version="1.4.3 (0d15f75, 2025-12-25)" + sodipodi:docname="org.projecttick.ProjTLauncher.svg" + inkscape:export-filename="ProjT.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#696969" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="px" + showgrid="true" + inkscape:zoom="0.41948948" + inkscape:cx="216.93035" + inkscape:cy="479.15385" + inkscape:window-width="1470" + inkscape:window-height="833" + inkscape:window-x="0" + inkscape:window-y="33" + inkscape:window-maximized="0" + inkscape:current-layer="layer1" + showguides="false" + inkscape:export-bgcolor="#00000000"> + <inkscape:grid + id="grid5" + units="px" + originx="0" + originy="0" + spacingx="1" + spacingy="1" + empcolor="#0099e5" + empopacity="0.30196078" + color="#0099e5" + opacity="0.14901961" + empspacing="8" + enabled="true" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1"> + <inkscape:path-effect + effect="bspline" + id="path-effect3" + is_visible="true" + lpeversion="1.3" + weight="33.333333" + steps="2" + helper_size="0" + apply_no_weight="true" + apply_with_weight="true" + only_selected="false" + uniform="false" /> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke-width:21.7166" + id="rect22" + width="377.13037" + height="133.73126" + x="641.68304" + y="431.42764" /> + </clipPath> + </defs> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Katman 2" + style="display:inline"> + <rect + style="fill:#000000;stroke:#000000;stroke-width:133.333;stroke-opacity:1" + id="rect1" + width="891.03729" + height="890.43964" + x="66.32843" + y="67.078201" + ry="0" /> + </g> + <g + inkscape:label="Katman 1" + inkscape:groupmode="layer" + id="layer1"> + <path + style="fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="M 40.450225,165.79121 983.54979,166.09708 983.23606,41.307514 40.450225,41.001659 V 290.2749" + id="path7" /> + <path + style="fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="M 40.558073,555.82487 V 306.06476 H 983.44194 V 430.70138 H 40.558073" + id="path8" /> + <path + style="fill:#000000;fill-opacity:0;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="m 40.509663,695.21779 v -124.6233 l 942.871427,0.68852 v 123.24626 z" + id="path10" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.9446;stroke-dasharray:none;stroke-opacity:1" + d="M 22.509662,711.0539 H 1001.3811" + id="path11" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00148,712.02216 0.004,108.29039" + id="path12" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:16.73622036;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00591,820.19084 v 15.57958" + id="path13" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="m 507.00591,835.77042 -66.92359,-0.0933" + id="path14" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:252.484;stroke-dasharray:none;stroke-opacity:1" + d="m 501.04199,812.03729 h 24.02613" + id="path15" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="M 40.558073,851.34999 H 983.44194" + id="path16" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.25879383;stroke-dasharray:none;stroke-opacity:1" + d="M 506.9747,851.34999 V 975.96451" + id="path17" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714013;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path23" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714013;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path27" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714013;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path28" /> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:5.91714013;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path32" /> + <rect + style="fill:#000000;fill-opacity:0" + id="rect2" + width="25.282333" + height="25.007524" + x="968.42328" + y="535.60071" /> + <g + id="g7" + transform="matrix(0.61781835,0,0,1.1483695,389.44165,-65.489641)" + clip-path="url(#clipPath22)"> + <path + style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:36.4154;stroke-dasharray:none;stroke-opacity:1" + d="M 660.7929,428.19661 983.90794,555.72506" + id="path9" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#ffffff;fill-opacity:1;stroke-width:1.00281" + id="rect3" + width="6.2020512" + height="14.520559" + x="984.00256" + y="539.02423" /> + </g> + </g> +</svg> diff --git a/meshmc/branding/org.projecttick.MeshMC_256.png b/meshmc/branding/org.projecttick.MeshMC_256.png Binary files differnew file mode 100644 index 0000000000..e5766a31c4 --- /dev/null +++ b/meshmc/branding/org.projecttick.MeshMC_256.png diff --git a/meshmc/branding/portable.txt b/meshmc/branding/portable.txt new file mode 100644 index 0000000000..2307b77510 --- /dev/null +++ b/meshmc/branding/portable.txt @@ -0,0 +1,4 @@ +This file enables the portable mode for MeshMC. + +If this file is present in the root directory of MeshMC, it will store all data here. Otherwise it will store your data in your appdata directory. +You can safely delete this file, if you don't want MeshMC to store your data here. diff --git a/meshmc/branding/win_install.nsi.in b/meshmc/branding/win_install.nsi.in new file mode 100644 index 0000000000..481ea884c8 --- /dev/null +++ b/meshmc/branding/win_install.nsi.in @@ -0,0 +1,512 @@ +!include "FileFunc.nsh" +!include "LogicLib.nsh" +!include "MUI2.nsh" + +!include "x64.nsh" + +Unicode true + +Name "@MeshMC_DisplayName@" +InstallDir "$LOCALAPPDATA\Programs\@MeshMC_CommonName@" +InstallDirRegKey HKCU "Software\@MeshMC_CommonName@" "InstallDir" +RequestExecutionLevel user +OutFile "../@MeshMC_CommonName@-Setup.exe" + +!define MUI_ICON "@CMAKE_BINARY_DIR@/@MeshMC_Branding_ICO@" + +!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\@MeshMC_CommonName@" + +;-------------------------------- + +; Pages + +!insertmacro MUI_PAGE_WELCOME +!define MUI_COMPONENTSPAGE_NODESC +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!define MUI_FINISHPAGE_RUN "$InstDir\@MeshMC_AppBinaryName@.exe" +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- + +; Languages + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "French" +!insertmacro MUI_LANGUAGE "German" +!insertmacro MUI_LANGUAGE "Spanish" +!insertmacro MUI_LANGUAGE "SpanishInternational" +!insertmacro MUI_LANGUAGE "SimpChinese" +!insertmacro MUI_LANGUAGE "TradChinese" +!insertmacro MUI_LANGUAGE "Japanese" +!insertmacro MUI_LANGUAGE "Korean" +!insertmacro MUI_LANGUAGE "Italian" +!insertmacro MUI_LANGUAGE "Dutch" +!insertmacro MUI_LANGUAGE "Danish" +!insertmacro MUI_LANGUAGE "Swedish" +!insertmacro MUI_LANGUAGE "Norwegian" +!insertmacro MUI_LANGUAGE "NorwegianNynorsk" +!insertmacro MUI_LANGUAGE "Finnish" +!insertmacro MUI_LANGUAGE "Greek" +!insertmacro MUI_LANGUAGE "Russian" +!insertmacro MUI_LANGUAGE "Portuguese" +!insertmacro MUI_LANGUAGE "PortugueseBR" +!insertmacro MUI_LANGUAGE "Polish" +!insertmacro MUI_LANGUAGE "Ukrainian" +!insertmacro MUI_LANGUAGE "Czech" +!insertmacro MUI_LANGUAGE "Slovak" +!insertmacro MUI_LANGUAGE "Croatian" +!insertmacro MUI_LANGUAGE "Bulgarian" +!insertmacro MUI_LANGUAGE "Hungarian" +!insertmacro MUI_LANGUAGE "Thai" +!insertmacro MUI_LANGUAGE "Romanian" +!insertmacro MUI_LANGUAGE "Latvian" +!insertmacro MUI_LANGUAGE "Macedonian" +!insertmacro MUI_LANGUAGE "Estonian" +!insertmacro MUI_LANGUAGE "Turkish" +!insertmacro MUI_LANGUAGE "Lithuanian" +!insertmacro MUI_LANGUAGE "Slovenian" +!insertmacro MUI_LANGUAGE "Serbian" +!insertmacro MUI_LANGUAGE "SerbianLatin" +!insertmacro MUI_LANGUAGE "Arabic" +!insertmacro MUI_LANGUAGE "Farsi" +!insertmacro MUI_LANGUAGE "Hebrew" +!insertmacro MUI_LANGUAGE "Indonesian" +!insertmacro MUI_LANGUAGE "Mongolian" +!insertmacro MUI_LANGUAGE "Luxembourgish" +!insertmacro MUI_LANGUAGE "Albanian" +!insertmacro MUI_LANGUAGE "Breton" +!insertmacro MUI_LANGUAGE "Belarusian" +!insertmacro MUI_LANGUAGE "Icelandic" +!insertmacro MUI_LANGUAGE "Malay" +!insertmacro MUI_LANGUAGE "Bosnian" +!insertmacro MUI_LANGUAGE "Kurdish" +!insertmacro MUI_LANGUAGE "Irish" +!insertmacro MUI_LANGUAGE "Uzbek" +!insertmacro MUI_LANGUAGE "Galician" +!insertmacro MUI_LANGUAGE "Afrikaans" +!insertmacro MUI_LANGUAGE "Catalan" +!insertmacro MUI_LANGUAGE "Esperanto" +!insertmacro MUI_LANGUAGE "Asturian" +!insertmacro MUI_LANGUAGE "Basque" +!insertmacro MUI_LANGUAGE "Pashto" +!insertmacro MUI_LANGUAGE "ScotsGaelic" +!insertmacro MUI_LANGUAGE "Georgian" +!insertmacro MUI_LANGUAGE "Vietnamese" +!insertmacro MUI_LANGUAGE "Welsh" +!insertmacro MUI_LANGUAGE "Armenian" +!insertmacro MUI_LANGUAGE "Corsican" +!insertmacro MUI_LANGUAGE "Tatar" +!insertmacro MUI_LANGUAGE "Hindi" + +;-------------------------------- + +; Version info +VIProductVersion "@MeshMC_VERSION_NAME4@" +VIFileVersion "@MeshMC_VERSION_NAME4@" +VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "@MeshMC_DisplayName@" +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "@MeshMC_DisplayName@ Installer" +VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "@MeshMC_Copyright@" +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "@MeshMC_VERSION_NAME4@" +VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "@MeshMC_VERSION_NAME4@" + +;-------------------------------- +; Conditional comp with file exist + +!macro CompileTimeIfFileExist path define +!tempfile tmpinc +!system 'IF EXIST "${path}" echo !define ${define} > "${tmpinc}"' +!include "${tmpinc}" +!delfile "${tmpinc}" +!undef tmpinc +!macroend + +;-------------------------------- +; Shell Associate Macros + +!macro APP_SETUP_Def DESCRIPTION ICON APP_ID APP_NAME APP_EXE COMMANDTEXT COMMAND + + ; setup APP_ID + WriteRegStr ShCtx "Software\Classes\${APP_ID}" "" `${DESCRIPTION}` + WriteRegStr ShCtx "Software\Classes\${APP_ID}\DefaultIcon" "" `${ICON}` + ; default open verb + WriteRegStr ShCtx "Software\Classes\${APP_ID}\shell" "" "open" + WriteRegStr ShCtx "Software\Classes\${APP_ID}\shell\open" "" `${COMMANDTEXT}` + WriteRegStr ShCtx "Software\Classes\${APP_ID}\shell\open\command" "" `${COMMAND}` + + WriteRegStr ShCtx "Software\Classes\Applications\${APP_EXE}\shell\open\command" "" `${COMMAND}` + WriteRegStr ShCtx "Software\Classes\Applications\${APP_EXE}" "FriendlyAppName" `${APP_NAME}` ; [Optional] + +!macroend + +!macro APP_SETUP DESCRIPTION ICON APP_ID APP_NAME APP_EXE COMMANDTEXT COMMAND + + !insertmacro APP_SETUP_Def `${DESCRIPTION}` `${ICON}` `${APP_ID}` `${APP_NAME}` `${APP_EXE}` `${COMMANDTEXT}` `${COMMAND}` + +!macroend + +!macro APP_SETUP_DEFAULT DESCRIPTION ICON APP_ID APP_NAME APP_EXE COMMANDTEXT COMMAND + + !insertmacro APP_SETUP_Def `${DESCRIPTION}` `${ICON}` `${APP_ID}` `${APP_NAME}` `${APP_EXE}` `${COMMANDTEXT}` `${COMMAND}` + + # Register "Default Programs" + WriteRegStr ShCtx "Software\Classes\Applications\${APP_EXE}\Capabilities" "ApplicationDescription" `${DESCRIPTION}` + WriteRegStr ShCtx "Software\RegisteredApplications" `${APP_NAME}` "Software\Classes\Applications\${APP_EXE}\Capabilities" + +!macroend + +!macro APP_ASSOCIATE_Def EXT APP_ID APP_EXE OVERWIRTE + ; Backup the previously associated file class + ${If} ${OVERWIRTE} == true + ReadRegStr $R0 ShCtx "Software\Classes\${EXT}" "" + WriteRegStr ShCtx "Software\Classes\${EXT}" "${APP_ID}_backup" "$R0" + WriteRegStr ShCtx "Software\Classes\${EXT}" "" "${APP_ID}" + ${EndIf} + + WriteRegNone ShCtx "Software\Classes\${EXT}\OpenWithList" "${APP_EXE}" ; Win2000+ + WriteRegNone ShCtx "Software\Classes\${EXT}\OpenWithProgids" "${APP_ID}" ; WinXP+ + +!macroend + +!macro APP_ASSOCIATE EXT APP_ID APP_EXE OVERWIRTE + + !insertmacro APP_ASSOCIATE_Def `${EXT}` `${APP_ID}` `${APP_EXE}` `${OVERWIRTE}` + +!macroend + +!macro APP_ASSOCIATE_DEFAULT EXT APP_ID APP_EXE OVERWIRTE + + !insertmacro APP_ASSOCIATE_Def `${EXT}` `${APP_ID}` `${APP_EXE}` `${OVERWIRTE}` + + # Register "Default Programs" + WriteRegStr ShCtx "Software\Classes\Applications\${APP_EXE}\Capabilities\FileAssociations" "${EXT}" "${APP_ID}" + +!macroend + +!macro APP_UNASSOCIATE EXT APP_ID APP_EXE + + # Unregister file type + ClearErrors + ; restore backup + ReadRegStr $R1 ShCtx "Software\Classes\${EXT}" "" + ${If} $R1 == "${APP_ID}" + ReadRegStr $R0 ShCtx "Software\Classes\${EXT}" `${APP_ID}_backup` + WriteRegStr ShCtx "Software\Classes\${EXT}" "" "$R0" + ${Else} + ReadRegStr $R0 ShCtx "Software\Classes\${EXT}" "" + ${EndIf} + + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${APP_ID}" + ${IfNot} ${Errors} + ${AndIf} $R0 == "${APP_ID}" + DeleteRegValue ShCtx "Software\Classes\${EXT}" "" + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${EXT}" + ${EndIf} + + DeleteRegValue ShCtx "Software\Classes\${EXT}\OpenWithList" "${APP_EXE}" + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${EXT}\OpenWithList" + DeleteRegValue ShCtx "Software\Classes\${EXT}\OpenWithProgids" "${APP_ID}" + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${EXT}\OpenWithProgids" + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${EXT}" + + # Attempt to clean up junk left behind by the Windows shell + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts" "${APP_ID}_${EXT}" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts" "Applications\${APP_EXE}_${EXT}" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${EXT}\OpenWithProgids" "${APP_ID}" + DeleteRegKey /IfEmpty HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${EXT}\OpenWithProgids" + DeleteRegKey /IfEmpty HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${EXT}\OpenWithList" + DeleteRegKey /IfEmpty HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${EXT}" + +!macroend + +!macro APP_TEARDOWN_Def APP_ID APP_NAME APP_EXE + + # Unregister file type + ClearErrors + DeleteRegKey /IfEmpty ShCtx "Software\Classes\${APP_ID}\shell" + ${IfNot} ${Errors} + DeleteRegKey ShCtx "Software\Classes\${APP_ID}\DefaultIcon" + ${EndIf} + + # Unregister "Open With" + DeleteRegKey ShCtx "Software\Classes\Applications\${APP_EXE}" + + DeleteRegKey ShCtx `Software\Classes\${APP_ID}` + DeleteRegKey ShCtx "Software\Classes\Applications\${APP_EXE}" + + # Attempt to clean up junk left behind by the Windows shell + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Search\JumplistData" "$INSTDIR\${APP_EXE}" + DeleteRegValue HKCU "Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" "$INSTDIR\${APP_EXE}.FriendlyAppName" + DeleteRegValue HKCU "Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" "$INSTDIR\${APP_EXE}.ApplicationCompany" + DeleteRegValue HKCU "Software\Microsoft\Windows\ShellNoRoam\MUICache" "$INSTDIR\${APP_EXE}" ; WinXP + DeleteRegValue HKCU "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store" "$INSTDIR\${APP_EXE}" + +!macroend + +!macro APP_TEARDOWN APP_ID APP_NAME APP_EXE + + !insertmacro APP_TEARDOWN_Def `${APP_ID}` `${APP_NAME}` `${APP_EXE}` + +!macroend + +!macro APP_TEARDOWN_DEFAULT APP_ID APP_NAME APP_EXE + + !insertmacro APP_TEARDOWN_Def `${APP_ID}` `${APP_NAME}` `${APP_EXE}` + + # Unregister "Default Programs" + DeleteRegValue ShCtx "Software\RegisteredApplications" `${APP_NAME}` + DeleteRegKey ShCtx "Software\Classes\Applications\${APP_EXE}\Capabilities" + DeleteRegKey /IfEmpty ShCtx "Software\Classes\Applications\${APP_EXE}" + +!macroend + +; !defines for use with SHChangeNotify +!ifdef SHCNE_ASSOCCHANGED +!undef SHCNE_ASSOCCHANGED +!endif +!define SHCNE_ASSOCCHANGED 0x08000000 +!ifdef SHCNF_FLUSH +!undef SHCNF_FLUSH +!endif +!define SHCNF_FLUSH 0x1000 + + +# ensure this is called at the end of any section that changes shell keys +!macro NotifyShell_AssocChanged +; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we +; can update the shell. + System::Call "shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)" +!macroend + + +;------------------------------------------ +; Uninstall Previous install + +!macro RunUninstall exitcode uninstcommand + Push `${uninstcommand}` + Call RunUninstall + Pop ${exitcode} +!macroend + +; Checks that the uninstaller in the provided command exists and runs it. +Function RunUninstall + Exch $1 ; input uninstcommand + Push $2 ; Uninstaller + Push $3 ; Len + Push $4 ; uninstcommand + StrCpy $4 $1 ; make a copy of the command for later + StrCpy $3 "" + StrCpy $2 $1 1 ; take first char of string + StrCmp $2 '"' quoteloop stringloop + stringloop: ; get string length + StrCpy $2 $1 1 $3 ; get next char + IntOp $3 $3 + 1 ; index += 1 + StrCmp $2 "" +2 stringloop ; if empty exit loop + IntOp $3 $3 - 1 ; index -= 1 + Goto run + quoteloop: ; get string length with quotes removed + StrCmp $3 "" 0 +2 ; if index is set skip quote removal + StrCpy $1 $1 "" 1 ; Remove initial quote + IntOp $3 $3 + 1 ; index += 1 + StrCpy $2 $1 1 $3 ; get next char + StrCmp $2 "" +2 ; if empty exit loop + StrCmp $2 '"' 0 quoteloop ; if ending quote exit loop, else loop + run: + StrCpy $2 $1 $3 ; Path to uninstaller ; (copy string up to ending quote - if it exists) + StrCpy $1 161 ; ERROR_BAD_PATHNAME ; set exit code (it get's overwritten with uninstaller exit code if ExecWait call doesn't error) + GetFullPathName $3 "$2\.." ; $InstDir + IfFileExists "$2" 0 +4 + ExecWait $4 $1 ; The file exists, call the saved command + IntCmp $1 0 "" +2 +2 ; Don't delete the installer if it was aborted ; + Delete "$2" ; Delete the uninstaller + RMDir "$3" ; Try to delete $InstDir + Pop $4 + Pop $3 + Pop $2 + Exch $1 ; exitcode +FunctionEnd + +; The "" makes the section hidden. +Section "" UninstallPrevious + + ReadRegStr $0 HKCU "${UNINST_KEY}" "QuietUninstallString" + ${If} $0 == "" + ReadRegStr $0 HKCU "${UNINST_KEY}" "UninstallString" + ${EndIf} + + ${If} $0 != "" + !insertmacro RunUninstall $0 $0 + ${If} $0 <> 0 + MessageBox MB_YESNO|MB_ICONSTOP "Failed to uninstall, continue anyway?" /SD IDYES IDYES +2 + Abort + ${EndIf} + ${EndIf} + +SectionEnd + +;------------------------------------ +; include nice plugins + +; NScurl - curl in NSIS +; used for MSVS redist download +; extract to ../NSISPlugins/NScurl +; https://github.com/negrutiu/nsis-nscurl/releases/latest/download/NScurl.zip +!insertmacro CompileTimeIfFileExist "../NSISPlugins/NScurl/Plugins/" haveNScurl +!ifdef haveNScurl +!AddPluginDir /x86-unicode "../NSISPlugins/NScurl/Plugins/x86-unicode" +!AddPluginDir /x86-ansi "../NSISPlugins/NScurl/Plugins/x86-ansi" +!AddPluginDir /amd64-unicode "../NSISPlugins/NScurl/Plugins/amd64-unicode" +!endif + +;------------------------------------ + +; The stuff to install +Section "@MeshMC_DisplayName@" + + SectionIn RO + + nsExec::Exec /TIMEOUT=2000 'TaskKill /IM @MeshMC_AppBinaryName@.exe /F' + + SetOutPath $INSTDIR + + File "@MeshMC_AppBinaryName@.exe" + File "qt.conf" + File "qtlogging.ini" + File *.dll + File /r "iconengines" + File /r "imageformats" + File /r "jars" + File /r "platforms" + File /r "styles" + File /nonfatal /r "tls" + + ; Write the installation path into the registry + WriteRegStr HKCU Software\@MeshMC_CommonName@ "InstallDir" "$INSTDIR" + + ; Write the URL Handler into registry for curseforge + WriteRegStr HKCU Software\Classes\curseforge "URL Protocol" "" + WriteRegStr HKCU Software\Classes\curseforge\shell\open\command "" '"$INSTDIR\@MeshMC_AppBinaryName@.exe" "%1"' + + ; Write the URL Handler into registry for meshmc + WriteRegStr HKCU Software\Classes\@MeshMC_AppBinaryName@ "URL Protocol" "" + WriteRegStr HKCU Software\Classes\@MeshMC_AppBinaryName@\shell\open\command "" '"$INSTDIR\@MeshMC_AppBinaryName@.exe" "%1"' + + ; Write the URL Handler into registry for meshmc import + WriteRegStr HKCU Software\Classes\meshmc "URL Protocol" "" + WriteRegStr HKCU Software\Classes\meshmc\shell\open\command "" '"$INSTDIR\@MeshMC_AppBinaryName@.exe" "%1"' + + ; Write the uninstall keys for Windows + ; https://learn.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key + ${GetParameters} $R0 + ${GetOptions} $R0 "/NoUninstaller" $R1 + ${If} ${Errors} + WriteRegStr HKCU "${UNINST_KEY}" "DisplayName" "@MeshMC_DisplayName@" + WriteRegStr HKCU "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\@MeshMC_AppBinaryName@.exe" + WriteRegStr HKCU "${UNINST_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe" _?=$INSTDIR' + WriteRegStr HKCU "${UNINST_KEY}" "QuietUninstallString" '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR' + WriteRegStr HKCU "${UNINST_KEY}" "InstallLocation" "$INSTDIR" + WriteRegStr HKCU "${UNINST_KEY}" "Publisher" "@MeshMC_DisplayName@ Contributors" + WriteRegStr HKCU "${UNINST_KEY}" "Version" "@MeshMC_VERSION_NAME4@" + WriteRegStr HKCU "${UNINST_KEY}" "DisplayVersion" "@MeshMC_VERSION_NAME@" + WriteRegStr HKCU "${UNINST_KEY}" "VersionMajor" "@MeshMC_VERSION_MAJOR@" + WriteRegStr HKCU "${UNINST_KEY}" "VersionMinor" "@MeshMC_VERSION_MINOR@" + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD HKCU "${UNINST_KEY}" "EstimatedSize" "$0" + WriteRegDWORD HKCU "${UNINST_KEY}" "NoModify" 1 + WriteRegDWORD HKCU "${UNINST_KEY}" "NoRepair" 1 + WriteUninstaller "$INSTDIR\uninstall.exe" + ${EndIf} + +SectionEnd + +@MeshMC_MSVC_Redist_NSIS_Section@ + +Section "Start Menu Shortcut" SM_SHORTCUTS + + CreateShortcut "$SMPROGRAMS\@MeshMC_DisplayName@.lnk" "$INSTDIR\@MeshMC_AppBinaryName@.exe" "" "$INSTDIR\@MeshMC_AppBinaryName@.exe" 0 + +SectionEnd + +Section /o "Desktop Shortcut" DESKTOP_SHORTCUTS + + CreateShortcut "$DESKTOP\@MeshMC_DisplayName@.lnk" "$INSTDIR\@MeshMC_AppBinaryName@.exe" "" "$INSTDIR\@MeshMC_AppBinaryName@.exe" 0 + +SectionEnd + + +!define APPID "@MeshMC_CommonName@.App" +!define APPEXE "@MeshMC_AppBinaryName@.exe" +!define APPICON "$INSTDIR\${APPEXE},0" +!define APPDESCRIPTION "@MeshMC_DisplayName@" +!define APPNAME "@MeshMC_DisplayName@" +!define APPCMDTEXT "@MeshMC_DisplayName@" + +Section /o "Shell Association (Open-With dialog)" SHELL_ASSOC + + !insertmacro APP_SETUP `${APPDESCRIPTION}` `${APPICON}` `${APPID}` `${APPCMDTEXT}` `${APPEXE}` `${APPCMDTEXT}` '$INSTDIR\${APPEXE} -I "%1"' + + !insertmacro APP_ASSOCIATE_DEFAULT ".mrpack" `${APPID}` `${APPEXE}` true + !insertmacro APP_ASSOCIATE ".zip" `${APPID}` `${APPEXE}` false + + !insertmacro NotifyShell_AssocChanged +SectionEnd + + +;-------------------------------- + +; Uninstaller + +Section "Uninstall" + + nsExec::Exec /TIMEOUT=2000 'TaskKill /IM @MeshMC_AppBinaryName@.exe /F' + + DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\@MeshMC_CommonName@" + DeleteRegKey HKCU SOFTWARE\@MeshMC_CommonName@ + + Delete $INSTDIR\@MeshMC_AppBinaryName@.exe + Delete $INSTDIR\qt.conf + Delete $INSTDIR\*.dll + + Delete $INSTDIR\uninstall.exe + + RMDir /r $INSTDIR\iconengines + RMDir /r $INSTDIR\imageformats + RMDir /r $INSTDIR\jars + RMDir /r $INSTDIR\platforms + RMDir /r $INSTDIR\styles + RMDir /r $INSTDIR\tls + + Delete "$SMPROGRAMS\@MeshMC_DisplayName@.lnk" + Delete "$DESKTOP\@MeshMC_DisplayName@.lnk" + + RMDir "$INSTDIR" + +SectionEnd + +Section -un.ShellAssoc + + !insertmacro APP_TEARDOWN_DEFAULT `${APPID}` `${APPNAME}` `${APPEXE}` + + !insertmacro APP_UNASSOCIATE ".zip" `${APPID}` `${APPEXE}` + !insertmacro APP_UNASSOCIATE ".mrpack" `${APPID}` `${APPEXE}` + + !insertmacro NotifyShell_AssocChanged +SectionEnd + +;-------------------------------- + +; Extra command line parameters + +Function .onInit +${GetParameters} $R0 +${GetOptions} $R0 "/NoShortcuts" $R1 +${IfNot} ${Errors} + !insertmacro UnselectSection ${SM_SHORTCUTS} + !insertmacro UnselectSection ${DESKTOP_SHORTCUTS} +${EndIf} +FunctionEnd |
