diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b2516d8..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.gradle/ -build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..41ca2a2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,26 @@ +image: java:8-jdk + +stages: + - build + +before_script: + # - echo `pwd` # debug + # - echo "$CI_BUILD_NAME, $CI_BUILD_REF_NAME $CI_BUILD_STAGE" # debug + - export GRADLE_USER_HOME=`pwd`/.gradle + +cache: + paths: + - .gradle/wrapper + - .gradle/caches + +build: + stage: build + script: + - ./gradlew jar + - mv build/libs/*.jar build/libs/2009scape.jar + artifacts: + paths: + - build/libs/*.jar + expire_in: 1 week + only: + - master diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/AppImage/2009scape.jar b/AppImage/2009scape.jar deleted file mode 100644 index 8e0e957..0000000 Binary files a/AppImage/2009scape.jar and /dev/null differ diff --git a/AppImage/LICENSE b/AppImage/LICENSE deleted file mode 100644 index 93914fb..0000000 --- a/AppImage/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -BSD 2-Clause License - -Copyright (c) 2016, Adam -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/AppImage/appimage/2009scape.desktop b/AppImage/appimage/2009scape.desktop deleted file mode 100644 index 863c1aa..0000000 --- a/AppImage/appimage/2009scape.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=2009scape -Comment=2009scape - Your Adventure Awaits! -Exec=@finalName@ -Icon=2009scape -Terminal=false -Type=Application -Categories=Game; diff --git a/AppImage/appimage/2009scape.png b/AppImage/appimage/2009scape.png deleted file mode 100644 index b236856..0000000 Binary files a/AppImage/appimage/2009scape.png and /dev/null differ diff --git a/AppImage/build-linux.sh b/AppImage/build-linux.sh deleted file mode 100755 index 6cdae75..0000000 --- a/AppImage/build-linux.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -set -e - -PACKR_VERSION="runelite-1.0" - -rm -f 2009scape.AppImage - -# Check if there's a client jar file - If there's no file the AppImage will not work but will still be built. -if ! [ -e 2009scape.jar ] -then - echo "2009scape.jar not found, exiting" - exit 1 -fi - -if ! [ -f OpenJDK8U-jre_x64_linux_hotspot_8u275b01.tar.gz ] ; then - curl -Lo OpenJDK8U-jre_x64_linux_hotspot_8u275b01.tar.gz \ - https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jre_x64_linux_hotspot_8u275b01.tar.gz -fi - -rm -f packr.jar -curl -o packr.jar https://libgdx.badlogicgames.com/ci/packr/packr.jar - -# packr requires a "jdk" and pulls the jre from it - so we have to place it inside -# the jdk folder at jre/ -if ! [ -d linux-jdk ] ; then - tar zxf OpenJDK8U-jre_x64_linux_hotspot_8u275b01.tar.gz - mkdir linux-jdk - mv jdk8u275-b01-jre linux-jdk/jre -fi - -if ! [ -f packr_${PACKR_VERSION}.jar ] ; then - curl -Lo packr_${PACKR_VERSION}.jar \ - https://github.com/runelite/packr/releases/download/${PACKR_VERSION}/packr.jar -fi - -echo "18b7cbaab4c3f9ea556f621ca42fbd0dc745a4d11e2a08f496e2c3196580cd53 packr_${PACKR_VERSION}.jar" | sha256sum -c - -java -jar packr_${PACKR_VERSION}.jar \ - --platform \ - linux64 \ - --jdk \ - linux-jdk \ - --executable \ - 2009scape \ - --classpath \ - 2009scape.jar \ - --mainclass \ - fox.Launcher \ - --output \ - native-linux/2009scape.AppDir/ \ - --resources \ - appimage/2009scape.desktop \ - appimage/2009scape.png - -cp appimage/2009scape.png native-linux/2009scape.AppDir - -# Symlink AppRun -> 2009scape -pushd native-linux/2009scape.AppDir/ -ln -s 2009scape AppRun -popd - -curl -Lo appimagetool-x86_64.AppImage https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage -chmod 755 appimagetool-x86_64.AppImage - -./appimagetool-x86_64.AppImage \ - native-linux/2009scape.AppDir/ \ - native-linux/2009scape.AppImage - -echo "Cleaning up.." - -mv native-linux/2009scape.AppImage . -rm -rf packr packr.jar packr_runelite-1.0.jar native-linux linux-jdk OpenJDK8U-jre_x64_linux_hotspot_8u275b01.tar.gz appimagetool-x86_64.AppImage diff --git a/AppImage/build-osx.sh b/AppImage/build-osx.sh deleted file mode 100755 index 7a7f8f5..0000000 --- a/AppImage/build-osx.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -echo "NOTE: THIS DOES NOT WORK. IT HAS NEVER BEEN MODIFIED SINCE COPIED FROM https://github.com/open-osrs/launcher/blob/master/build-osx.sh" - -set -e - -JDK_VER="11.0.4" -JDK_BUILD="11" -PACKR_VERSION="runelite-1.0" - -SIGNING_IDENTITY="Developer ID Application" -ALTOOL_USER="user@icloud.com" -ALTOOL_PASS="@keychain:altool-password" - -if ! [ -f OpenJDK11U-jre_x64_mac_hotspot_${JDK_VER}_${JDK_BUILD}.tar.gz ] ; then - curl -Lo OpenJDK11U-jre_x64_mac_hotspot_${JDK_VER}_${JDK_BUILD}.tar.gz \ - https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-${JDK_VER}%2B${JDK_BUILD}/OpenJDK11U-jre_x64_mac_hotspot_${JDK_VER}_${JDK_BUILD}.tar.gz -fi - -rm -f packr.jar -curl -o packr.jar https://libgdx.badlogicgames.com/ci/packr/packr.jar - -echo "1647fded28d25e562811f7bce2092eb9c21d30608843b04250c023b40604ff26 OpenJDK11U-jre_x64_mac_hotspot_${JDK_VER}_${JDK_BUILD}.tar.gz" | shasum -c - -# packr requires a "jdk" and pulls the jre from it - so we have to place it inside -# the jdk folder at jre/ -if ! [ -d osx-jdk ] ; then - tar zxf OpenJDK11U-jre_x64_mac_hotspot_${JDK_VER}_${JDK_BUILD}.tar.gz - mkdir osx-jdk - mv jdk-11.0.4+11-jre osx-jdk/jre - - # Move JRE out of Contents/Home/ - pushd osx-jdk/jre - cp -r Contents/Home/* . - popd -fi - -if ! [ -f packr_${PACKR_VERSION}.jar ] ; then - curl -Lo packr_${PACKR_VERSION}.jar \ - https://github.com/runelite/packr/releases/download/${PACKR_VERSION}/packr.jar -fi - -echo "18b7cbaab4c3f9ea556f621ca42fbd0dc745a4d11e2a08f496e2c3196580cd53 packr_${PACKR_VERSION}.jar" | shasum -c - -java -jar packr_${PACKR_VERSION}.jar \ - --platform \ - mac \ - --icon \ - packr/openosrs.icns \ - --jdk \ - osx-jdk \ - --executable \ - OpenOSRS \ - --classpath \ - build/libs/OpenOSRS-shaded.jar \ - --mainclass \ - net.runelite.launcher.Launcher \ - --vmargs \ - Drunelite.launcher.nojvm=true \ - Xmx512m \ - Xss2m \ - XX:CompileThreshold=1500 \ - Djna.nosys=true \ - --output \ - native-osx/OpenOSRS.app - -cp build/filtered-resources/Info.plist native-osx/OpenOSRS.app/Contents - -echo Setting world execute permissions on OpenOSRS -pushd native-osx/OpenOSRS.app -chmod g+x,o+x Contents/MacOS/OpenOSRS -popd - -codesign -f -s "${SIGNING_IDENTITY}" --entitlements osx/signing.entitlements --options runtime native-osx/RuneLite.app || true - -# create-dmg exits with an error code due to no code signing, but is still okay -# note we use Adam-/create-dmg as upstream does not support UDBZ -create-dmg --format UDBZ native-osx/OpenOSRS.app.app native-osx/ || true - -mv native-osx/OpenOSRS\ *.dmg native-osx/OpenOSRS.dmg - -xcrun altool --notarize-app --username "${ALTOOL_USER}" --password "${ALTOOL_PASS}" --primary-bundle-id openosrs --file native-osx/OpenOSRS.dmg || true diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a7e6cea --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + 09launcher + Copyright (C) 2021 2009Scape + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) 2021 2009Scape + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 24fd129..f770207 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,9 @@ -# 2009scape Launcher +[![pipeline status](https://gitlab.com/2009scape/09launcher/badges/master/pipeline.svg)](https://gitlab.com/2009scape/09launcher/-/commits/master) -The official launcher for 2009scape/2009scape-compatible sources +**RS09 Launcher** -# Running +This downloads client updates and displays the latest changelogs for the live game in the launcher. -1. Start the 2009scape Management Server & Server on localhost (found [here](https://github.com/2009scape/2009scape)) -2. Run `src/com/rs09/Launcher.java` +This is intended only for players of 2009scape. -Note: To be able to download client and cache through the launcher you need to have a web server running and you need to have the cache + client jar in the web root of the web server. - -## Troubleshooting - -* No audio (Linux) - * Install Pipewire (and Pipewire-alsa) as a replacement to Pulseaudio. This is a deep Java issue that will hopefully disappear with Pulseaudio's phasing out over the 2021/2022 +If you are running a fork of the codebase do not report your bugs to me. diff --git a/build.gradle b/build.gradle index c7b00c5..fac5c14 100644 --- a/build.gradle +++ b/build.gradle @@ -1,38 +1,51 @@ plugins { - id "java" - id "application" + id 'org.jetbrains.kotlin.jvm' version '1.4.32' + id 'edu.sc.seis.launch4j' version '2.5.0' } -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - -mainClassName = 'rs09.Launcher' - +group 'org.rs09' +version '1.2' repositories { - flatDir { - dirs 'libs' - } mavenCentral() } dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib" + implementation 'org.jsoup:jsoup:1.14.1' + implementation files("libs/json-simple-1.1.1.jar") } - jar { - archiveBaseName = '2009scapeLauncher' - archiveVersion = '1.0.0' manifest { - attributes 'Main-Class': 'rs09.Launcher', - 'Class-Path': configurations.runtime.files.collect { "lib/$it.name" }.join(' ') - } - from('src') { - include 'data/**' + attributes 'Main-Class': 'MainWindow' } + from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } -sourceSets { - main.java.srcDirs = ['src/main/java'] +launch4j { + mainClassName = "MainWindow" + icon = "${projectDir}/src/main/resources/09logo.ico" + jarTask = project.tasks.jar + bundledJre64Bit = false + bundledJrePath = "jre" + downloadUrl = "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_x86-32_windows_hotspot_8u292b10.msi" + outfile = "2009scape.exe" + copyright = "2009scape" + companyName = "2009scape" } +task packageExecutableDistribution(type: Zip) { + archiveName = "2009scape.zip" + destinationDir = file("$buildDir/distExecutable") + + from "$buildDir/launch4j" +} + +task addJreToDistributable(type: Copy) { + from files("${projectDir}/launch4j") + destinationDir = file("$buildDir/launch4j") +} + +packageExecutableDistribution.dependsOn createExe +packageExecutableDistribution.dependsOn addJreToDistributable \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..29e08e8 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +kotlin.code.style=official \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..da9702f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/launch4j/jre/ASSEMBLY_EXCEPTION b/launch4j/jre/ASSEMBLY_EXCEPTION new file mode 100644 index 0000000..065b8d9 --- /dev/null +++ b/launch4j/jre/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/launch4j/jre/LICENSE b/launch4j/jre/LICENSE new file mode 100644 index 0000000..8b400c7 --- /dev/null +++ b/launch4j/jre/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/launch4j/jre/THIRD_PARTY_README b/launch4j/jre/THIRD_PARTY_README new file mode 100644 index 0000000..493b7c8 --- /dev/null +++ b/launch4j/jre/THIRD_PARTY_README @@ -0,0 +1,3282 @@ +DO NOT TRANSLATE OR LOCALIZE. +----------------------------- + +%% This notice is provided with respect to ASM Bytecode Manipulation +Framework v5.0.3, which may be included with JRE 8, and JDK 8, and +OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2000-2011 France T??l??com +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to BSDiff v4.3, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright 2003-2005 Colin Percival +All rights reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted providing that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to CodeViewer 1.0, which may be +included with JDK 8. + +--- begin of LICENSE --- + +Copyright 1999 by CoolServlets.com. + +Any errors or suggested improvements to this class can be reported as +instructed on CoolServlets.com. We hope you enjoy this program... your +comments will encourage further development! This software is distributed +under the terms of the BSD License. Redistribution and use in source and +binary forms, with or without modification, are permitted provided that the +following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +Neither name of CoolServlets.com nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Cryptix AES 3.2.0, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Cryptix General License + +Copyright (c) 1995-2005 The Cryptix Foundation Limited. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND +CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to CUP Parser Generator for +Java 0.11b, which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright 1996-2015 by Scott Hudson, Frank Flannery, C. Scott Ananian, Michael Petter + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both the +copyright notice and this permission notice and warranty disclaimer appear in +supporting documentation, and that the names of the authors or their +employers not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to +this software, including all implied warranties of merchantability and fitness. +In no event shall the authors or their employers be liable for any special, +indirect or consequential damages or any damages whatsoever resulting from +loss of use, data or profits, whether in an action of contract, negligence or +other tortious action, arising out of or in connection with the use or +performance of this software. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to DejaVu fonts v2.34, which may be +included with JRE 8, and JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + + +Bitstream Vera Fonts Copyright +------------------------------ + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute the +Font Software, including without limitation the rights to use, copy, merge, +publish, distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to the +following conditions: + +The above copyright and trademark notices and this permission notice shall +be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the fonts +are renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream +Vera" names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE +FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the Gnome Foundation or Bitstream +Inc., respectively. For further information, contact: fonts at gnome dot +org. + +Arev Fonts Copyright +------------------------------ + +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and +associated documentation files (the "Font Software"), to reproduce +and distribute the modifications to the Bitstream Vera Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to +the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Tavmjong Bah" or the word "Arev". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Tavmjong Bah Arev" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the name of Tavmjong Bah shall not +be used in advertising or otherwise to promote the sale, use or other +dealings in this Font Software without prior written authorization +from Tavmjong Bah. For further information, contact: tavmjong @ free +. fr. + +TeX Gyre DJV Math +----------------- +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. + +Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski +(on behalf of TeX users groups) are in public domain. + +Letters imported from Euler Fraktur from AMSfonts are (c) American +Mathematical Society (see below). +Bitstream Vera Fonts Copyright +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera +is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated documentation +files (the "Font Software"), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit persons +to whom the Font Software is furnished to do so, subject to the following +conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the +fonts are renamed to names not containing either the words "Bitstream" +or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts or +Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT +OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN +THE FONT SOFTWARE. +Except as contained in this notice, the names of GNOME, the GNOME +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the GNOME Foundation or +Bitstream Inc., respectively. +For further information, contact: fonts at gnome dot org. + +AMSFonts (v. 2.2) copyright + +The PostScript Type 1 implementation of the AMSFonts produced by and +previously distributed by Blue Sky Research and Y&Y, Inc. are now freely +available for general use. This has been accomplished through the +cooperation +of a consortium of scientific publishers with Blue Sky Research and Y&Y. +Members of this consortium include: + +Elsevier Science IBM Corporation Society for Industrial and Applied +Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS) + +In order to assure the authenticity of these fonts, copyright will be +held by the American Mathematical Society. This is not meant to restrict +in any way the legitimate use of the fonts, such as (but not limited to) +electronic distribution of documents containing these fonts, inclusion of +these fonts into other public domain or commercial font collections or computer +applications, use of the outline data to create derivative fonts and/or +faces, etc. However, the AMS does require that the AMS copyright notice be +removed from any derivative versions of the fonts which have been altered in +any way. In addition, to ensure the fidelity of TeX documents using Computer +Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces, +has requested that any alterations which yield different font metrics be +given a different name. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Document Object Model (DOM) Level 2 +& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +W3C SOFTWARE NOTICE AND LICENSE + +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) +agree that you have read, understood, and will comply with the following terms +and conditions. + +Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without fee +or royalty is hereby granted, provided that you include the following on ALL +copies of the software and documentation or portions thereof, including +modifications: + + 1.The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + + 2.Any pre-existing intellectual property disclaimers, notices, or terms and + conditions. If none exist, the W3C Software Short Notice should be included + (hypertext is preferred, text is permitted) within the body of any + redistributed or derivative code. + + 3.Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY +THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL +OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR +DOCUMENTATION. The name and trademarks of copyright holders may NOT be used +in advertising or publicity pertaining to the software without specific, +written prior permission. Title to copyright in this software and any +associated documentation will at all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 +2002. This version removes the copyright ownership notice such that this +license can be used with materials other than those owned by the W3C, reflects +that ERCIM is now a host of the W3C, includes references to this specific +dated version of the license, and removes the ambiguous grant of "use". +Otherwise, this version is the same as the previous version and is written so +as to preserve the Free Software Foundation's assessment of GPL compatibility +and OSI's certification under the Open Source Definition. Please see our +Copyright FAQ for common questions about using materials from our site, +including specific terms and conditions for packages like libwww, Amaya, and +Jigsaw. Other questions about this notice can be directed to +site-policy@w3.org. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Dynalink v0.5, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2009-2013, Attila Szegedi + +All rights reserved.Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met:* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. * Redistributions in +binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. * Neither the name of Attila +Szegedi nor the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Elliptic Curve Cryptography, which +may be included with JRE 8, JDK 8, and OpenJDK 8. + +You are receiving a copy of the Elliptic Curve Cryptography library in source +form with the JDK 8 and OpenJDK 8 source distributions, and as object code in +the JRE 8 & JDK 8 runtimes. + +In the case of the JRE & JDK runtimes, the terms of the Oracle license do +NOT apply to the Elliptic Curve Cryptography library; it is licensed under the +following license, separately from Oracle's JDK & JRE. If you do not wish to +install the Elliptic Curve Cryptography library, you may delete the +Elliptic Curve Cryptography library: + - On Solaris and Linux systems: delete $(JAVA_HOME)/lib/libsunec.so + - On Windows systems: delete $(JAVA_HOME)\bin\sunec.dll + - On Mac systems, delete: + for JRE: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/libsunec.dylib + for JDK: $(JAVA_HOME)/jre/lib/libsunec.dylib + +Written Offer for ECC Source Code + For third party technology that you receive from Oracle in binary form + which is licensed under an open source license that gives you the right + to receive the source code for that binary, you can obtain a copy of + the applicable source code from this page: + http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/native/sun/security/ec/impl + + If the source code for the technology was not provided to you with the + binary, you can also receive a copy of the source code on physical + media by submitting a written request to: + + Oracle America, Inc. + Attn: Associate General Counsel, + Development and Engineering Legal + 500 Oracle Parkway, 10th Floor + Redwood Shores, CA 94065 + + Or, you may send an email to Oracle using the form at: + http://www.oracle.com/goto/opensourcecode/request + + Your request should include: + - The name of the component or binary file(s) for which you are requesting + the source code + - The name and version number of the Oracle product containing the binary + - The date you received the Oracle product + - Your name + - Your company name (if applicable) + - Your return mailing address and email and + - A telephone number in the event we need to reach you. + + We may charge you a fee to cover the cost of physical media and processing. + Your request must be sent (i) within three (3) years of the date you + received the Oracle product that included the component or binary + file(s) that are the subject of your request, or (ii) in the case of + code licensed under the GPL v3, for as long as Oracle offers spare + parts or customer support for that product model. + +--- begin of LICENSE --- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to ECMAScript Language +Specification ECMA-262 Edition 5.1 which may be included with +JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright notice +Copyright ?? 2011 Ecma International +Ecma International +Rue du Rhone 114 +CH-1204 Geneva +Tel: +41 22 849 6000 +Fax: +41 22 849 6001 +Web: http://www.ecma-international.org + +This document and possible translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it or assist +in its implementation may be prepared, copied, published, and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this section are included on all such copies and derivative +works. However, this document itself may not be modified in any way, including +by removing the copyright notice or references to Ecma International, except as +needed for the purpose of developing any document or deliverable produced by +Ecma International (in which case the rules applied to copyrights must be +followed) or as required to translate it into languages other than English. The +limited permissions granted above are perpetual and will not be revoked by Ecma +International or its successors or assigns. This document and the information +contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY +WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE." Software License + +All Software contained in this document ("Software)" is protected by copyright +and is being made available under the "BSD License", included below. This +Software may be subject to third party rights (rights from parties other than +Ecma International), including patent rights, and no licenses under such third +party rights are granted under this license even if the third party concerned is +a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS +AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR +INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO +IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and +binary forms, with or without modification, are permitted provided that the +following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the authors nor Ecma International may be used to endorse +or promote products derived from this software without specific prior written +permission. + +THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to freebXML Registry 3.0 & 3.1, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +freebxml: Copyright (c) 2001 freebxml.org. All rights reserved. + +The names "The freebXML Registry Project" and "freebxml Software +Foundation" must not be used to endorse or promote products derived +from this software or be used in a product name without prior +written permission. For written permission, please contact +ebxmlrr-team@lists.sourceforge.net. + +This software consists of voluntary contributions made by many individuals +on behalf of the the freebxml Software Foundation. For more information on +the freebxml Software Foundation, please see . + +This product includes software developed by the Apache Software Foundation +(http://www.apache.org/). + +The freebxml License, Version 1.1 5 +Copyright (c) 2001 freebxml.org. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. The end-user documentation included with the redistribution, if + any, must include the following acknowlegement: + "This product includes software developed by + freebxml.org (http://www.freebxml.org/)." + Alternately, this acknowlegement may appear in the software itself, + if and wherever such third-party acknowlegements normally appear. + + 4. The names "The freebXML Registry Project", "freebxml Software + Foundation" must not be used to endorse or promote products derived + from this software without prior written permission. For written + permission, please contact ebxmlrr-team@lists.sourceforge.net. + + 5. Products derived from this software may not be called "freebxml", + "freebXML Registry" nor may freebxml" appear in their names without + prior written permission of the freebxml Group. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE freebxml SOFTWARE FOUNDATION OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to IAIK PKCS#11 Wrapper, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +IAIK PKCS#11 Wrapper License + +Copyright (c) 2002 Graz University of Technology. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, must + include the following acknowledgment: + + "This product includes software developed by IAIK of Graz University of + Technology." + + Alternately, this acknowledgment may appear in the software itself, if and + wherever such third-party acknowledgments normally appear. + +4. The names "Graz University of Technology" and "IAIK of Graz University of + Technology" must not be used to endorse or promote products derived from this + software without prior written permission. + +5. Products derived from this software may not be called "IAIK PKCS Wrapper", + nor may "IAIK" appear in their name, without prior written permission of + Graz University of Technology. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which +may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 1995-2010 International Business Machines Corporation and others + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +provided that the above copyright notice(s) and this permission notice appear +in all copies of the Software and that both the above copyright notice(s) and +this permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN +NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE +LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. +All trademarks and registered trademarks mentioned herein are the property of +their respective owners. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to IJG JPEG 6b, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +This software is copyright (C) 1991-1998, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to Jing 20030619, which may +be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2001-2003 Thai Open Source Software Center Ltd All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of the Thai Open Source Software Center Ltd nor +the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written +permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to Joni v2.1.16, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2017 JRuby Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to JOpt-Simple v3.0, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + Copyright (c) 2004-2009 Paul R. Holser, Jr. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kerberos functionality, which +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + (C) Copyright IBM Corp. 1999 All Rights Reserved. + Copyright 1997 The Open Group Research Institute. All rights reserved. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kerberos functionality from +FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + Copyright (C) 1998 by the FundsXpress, INC. + + All rights reserved. + + Export of this software from the United States of America may require + a specific license from the United States Government. It is the + responsibility of any person or organization contemplating export to + obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of FundsXpress. not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. FundsXpress makes no representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kronos OpenGL headers, which may be +included with JDK 8 and OpenJDK 8 source distributions. + +--- begin of LICENSE --- + + Copyright (c) 2007 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and/or associated documentation files (the "Materials"), to + deal in the Materials without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Materials, and to permit persons to whom the Materials are + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE + MATERIALS. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Portions Copyright Eastman Kodak Company 1991-2003 + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to libpng 1.6.37, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= + +PNG Reference Library License version 2 +--------------------------------------- + + * Copyright (c) 1995-2019 The PNG Reference Library Authors. + * Copyright (c) 2018-2019 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no event shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. + +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- + +libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. + +Some files in the "contrib" directory and some configure-generated +files that are distributed with libpng have other copyright owners, and +are released under other open source licenses. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +Some files in the "scripts" directory have other copyright owners, +but are released under this license. + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. + +TRADEMARK: + +The name "libpng" has not been registered by the Copyright owner +as a trademark in any jurisdiction. However, because libpng has +been distributed and maintained world-wide, continually since 1995, +the Copyright owner claims "common-law trademark protection" in any +jurisdiction where common-law trademark is recognized. + +OSI CERTIFICATION: + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is +a certification mark of the Open Source Initiative. OSI has not addressed +the additional disclaimers inserted at version 1.0.7. + +EXPORT CONTROL: + +The Copyright owner believes that the Export Control Classification +Number (ECCN) for libpng is EAR99, which means not subject to export +controls or International Traffic in Arms Regulations (ITAR) because +it is open source, publicly available software, that does not contain +any encryption software. See the EAR, paragraphs 734.3(b)(3) and +734.7(b). + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +July 15, 2018 + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to GIFLIB 5.2.1 & libungif 4.1.3, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Little CMS 2.11, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Little CMS +Copyright (c) 1998-2020 Marti Maria Saguer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the +U.S. and other countries. + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Mesa 3D Graphics Library v4.1, +which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions. + +--- begin of LICENSE --- + + Mesa 3-D Graphics Library v19.2.1 + + Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +Attention, Contributors + +When contributing to the Mesa project you must agree to the licensing terms +of the component to which you're contributing. +The following section lists the primary components of the Mesa distribution +and their respective licenses. +Mesa Component Licenses + + + +Component Location License +------------------------------------------------------------------ +Main Mesa code src/mesa/ MIT +Device drivers src/mesa/drivers/* MIT, generally + +Gallium code src/gallium/ MIT + +Ext headers GL/glext.h Khronos + GL/glxext.h Khronos + GL/wglext.h Khronos + KHR/khrplatform.h Khronos + +***************************************************************************** + +---- +include/GL/gl.h : + + + Mesa 3-D graphics library + + Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + Copyright (C) 2009 VMware, Inc. All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + ***************************************************************************** + +---- +include/GL/glext.h +include/GL/glxext.h +include/GL/wglxext.h : + + + Copyright (c) 2013 - 2018 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + + ***************************************************************************** + +---- +include/KHR/khrplatform.h : + + Copyright (c) 2008 - 2018 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + + ***************************************************************************** + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Mozilla Network Security +Services (NSS), which is supplied with the JDK test suite in the OpenJDK +source code repository. It is licensed under Mozilla Public License (MPL), +version 2.0. + +The NSS libraries are supplied in executable form, built from unmodified +NSS source code labeled with the "NSS_3_16_RTM" HG tag. + +The NSS source code is available in the OpenJDK source code repository at: + jdk/test/sun/security/pkcs11/nss/src + +The NSS libraries are available in the OpenJDK source code repository at: + jdk/test/sun/security/pkcs11/nss/lib + +--- begin of LICENSE --- + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to PC/SC Lite v1.8.26, +which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +--- begin of LICENSE --- + +Copyright (c) 1999-2003 David Corcoran +Copyright (c) 2001-2011 Ludovic Rousseau +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +Changes to this license can be made only by the copyright author with +explicit written consent. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to PorterStemmer v4, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +See: http://tartarus.org/~martin/PorterStemmer + +The software is completely free for any purpose, unless notes at the head of +the program text indicates otherwise (which is rare). In any case, the notes +about licensing are never more restrictive than the BSD License. + +In every case where the software is not written by me (Martin Porter), this +licensing arrangement has been endorsed by the contributor, and it is +therefore unnecessary to ask the contributor again to confirm it. + +I have not asked any contributors (or their employers, if they have them) for +proofs that they have the right to distribute their software in this way. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Relax NG Object/Parser v.20050510, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) Kohsuke Kawaguchi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: The above copyright +notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to RelaxNGCC v1.12, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, must + include the following acknowledgment: + + "This product includes software developed by Daisuke Okajima + and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." + +Alternately, this acknowledgment may appear in the software itself, if and +wherever such third-party acknowledgments normally appear. + +4. The names of the copyright holders must not be used to endorse or promote + products derived from this software without prior written permission. For + written permission, please contact the copyright holders. + +5. Products derived from this software may not be called "RELAXNGCC", nor may + "RELAXNGCC" appear in their name, without prior written permission of the + copyright holders. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE +SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Relax NG Datatype 1.0, which +may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2005, 2010 Thai Open Source Software Center Ltd +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + Neither the names of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to SoftFloat version 2b, which may be +included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM. + +--- begin of LICENSE --- + +Use of any of this software is governed by the terms of the license below: + +SoftFloat was written by me, John R. Hauser. This work was made possible in +part by the International Computer Science Institute, located at Suite 600, +1947 Center Street, Berkeley, California 94704. Funding was partially +provided by the National Science Foundation under grant MIP-9311980. The +original version of this code was written as part of a project to build +a fixed-point vector processor in collaboration with the University of +California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. + +THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort +has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT +TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO +PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL +LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO +FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER +SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, +COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE +SOFTWARE. + +Derivative works are acceptable, even for commercial purposes, provided +that the minimal documentation requirements stated in the source code are +satisfied. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Sparkle 1.5, +which may be included with JRE 8 on Mac OS X. + +--- begin of LICENSE --- + +Copyright (c) 2012 Sparkle.org and Andy Matuschak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Portions licensed from Taligent, Inc. + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Thai Dictionary, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (C) 1982 The Royal Institute, Thai Royal Government. + +Copyright (C) 1998 National Electronics and Computer Technology Center, +National Science and Technology Development Agency, +Ministry of Science Technology and Environment, +Thai Royal Government. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1 +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Unicode Terms of Use + +For the general privacy policy governing access to this site, see the Unicode +Privacy Policy. For trademark usage, see the Unicode?? Consortium Name and +Trademark Usage Policy. + +A. Unicode Copyright. + 1. Copyright ?? 1991-2013 Unicode, Inc. All rights reserved. + + 2. Certain documents and files on this website contain a legend indicating + that "Modification is permitted." Any person is hereby authorized, + without fee, to modify such documents and files to create derivative + works conforming to the Unicode?? Standard, subject to Terms and + Conditions herein. + + 3. Any person is hereby authorized, without fee, to view, use, reproduce, + and distribute all documents and files solely for informational + purposes in the creation of products supporting the Unicode Standard, + subject to the Terms and Conditions herein. + + 4. Further specifications of rights and restrictions pertaining to the use + of the particular set of data files known as the "Unicode Character + Database" can be found in Exhibit 1. + + 5. Each version of the Unicode Standard has further specifications of + rights and restrictions of use. For the book editions (Unicode 5.0 and + earlier), these are found on the back of the title page. The online + code charts carry specific restrictions. All other files, including + online documentation of the core specification for Unicode 6.0 and + later, are covered under these general Terms of Use. + + 6. No license is granted to "mirror" the Unicode website where a fee is + charged for access to the "mirror" site. + + 7. Modification is not permitted with respect to this document. All copies + of this document must be verbatim. + +B. Restricted Rights Legend. Any technical data or software which is licensed + to the United States of America, its agencies and/or instrumentalities + under this Agreement is commercial technical data or commercial computer + software developed exclusively at private expense as defined in FAR 2.101, + or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, + duplication, or disclosure by the Government is subject to restrictions as + set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov + 1995) and this Agreement. For Software, in accordance with FAR 12-212 or + DFARS 227-7202, as applicable, use, duplication or disclosure by the + Government is subject to the restrictions set forth in this Agreement. + +C. Warranties and Disclaimers. + 1. This publication and/or website may include technical or typographical + errors or other inaccuracies . Changes are periodically added to the + information herein; these changes will be incorporated in new editions + of the publication and/or website. Unicode may make improvements and/or + changes in the product(s) and/or program(s) described in this + publication and/or website at any time. + + 2. If this file has been purchased on magnetic or optical media from + Unicode, Inc. the sole and exclusive remedy for any claim will be + exchange of the defective media within ninety (90) days of original + purchase. + + 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS + PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. + UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR + OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH + ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. + +D. Waiver of Damages. In no event shall Unicode or its licensors be liable for + any special, incidental, indirect or consequential damages of any kind, or + any damages whatsoever, whether or not Unicode was advised of the + possibility of the damage, including, without limitation, those resulting + from the following: loss of use, data or profits, in connection with the + use, modification or distribution of this information or its derivatives. + +E.Trademarks & Logos. + 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, + Inc. ???The Unicode Consortium??? and ???Unicode, Inc.??? are trade names of + Unicode, Inc. Use of the information and materials found on this + website indicates your acknowledgement of Unicode, Inc.???s exclusive + worldwide rights in the Unicode Word Mark, the Unicode Logo, and the + Unicode trade names. + + 2. The Unicode Consortium Name and Trademark Usage Policy (???Trademark + Policy???) are incorporated herein by reference and you agree to abide by + the provisions of the Trademark Policy, which may be changed from time + to time in the sole discretion of Unicode, Inc. + + 3. All third party trademarks referenced herein are the property of their + respective owners. + +Miscellaneous. + 1. Jurisdiction and Venue. This server is operated from a location in the + State of California, United States of America. Unicode makes no + representation that the materials are appropriate for use in other + locations. If you access this server from other locations, you are + responsible for compliance with local laws. This Agreement, all use of + this site and any claims and damages resulting from use of this site are + governed solely by the laws of the State of California without regard to + any principles which would apply the laws of a different jurisdiction. + The user agrees that any disputes regarding this site shall be resolved + solely in the courts located in Santa Clara County, California. The user + agrees said courts have personal jurisdiction and agree to waive any + right to transfer the dispute to any other forum. + + 2. Modification by Unicode. Unicode shall have the right to modify this + Agreement at any time by posting it to this site. The user may not + assign any part of this Agreement without Unicode???s prior written + consent. + + 3. Taxes. The user agrees to pay any taxes arising from access to this + website or use of the information herein, except for those based on + Unicode???s net income. + + 4. Severability. If any provision of this Agreement is declared invalid or + unenforceable, the remaining provisions of this Agreement shall remain + in effect. + + 5. Entire Agreement. This Agreement constitutes the entire agreement + between the parties. + +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, and +http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF +online code charts under the directory http://www.unicode.org/Public/. +Software includes any source code published in the Unicode Standard or under +the directories http://www.unicode.org/Public/, +http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/. + +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, +INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA +FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO +BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT +AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR +SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright ?? 1991-2012 Unicode, Inc. All rights reserved. Distributed under the +Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and any associated documentation (the "Data Files") +or Unicode software and any associated documentation (the "Software") to deal +in the Data Files or Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, and/or +sell copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that (a) the above +copyright notice(s) and this permission notice appear with all copies of the +Data Files or Software, (b) both the above copyright notice(s) and this +permission notice appear in associated documentation, and (c) there is clear +notice in each modified Data File or in the Software as well as in the +documentation associated with the Data File(s) or Software that the data or +software has been modified. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN +THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE +DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in these Data Files or Software without prior written authorization of the +copyright holder. + +Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United +States and other countries. All third party trademarks referenced herein are +the property of their respective owners. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to UPX v3.01, which may be included +with JRE 8 on Windows. + +--- begin of LICENSE --- + +Use of any of this software is governed by the terms of the license below: + + + ooooo ooo ooooooooo. ooooooo ooooo + `888' `8' `888 `Y88. `8888 d8' + 888 8 888 .d88' Y888..8P + 888 8 888ooo88P' `8888' + 888 8 888 .8PY888. + `88. .8' 888 d8' `888b + `YbodP' o888o o888o o88888o + + + The Ultimate Packer for eXecutables + Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar + http://wildsau.idv.uni-linz.ac.at/mfx/upx.html + http://www.nexus.hu/upx + http://upx.tsx.org + + +PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN +TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. + + +ABSTRACT +======== + + UPX and UCL are copyrighted software distributed under the terms + of the GNU General Public License (hereinafter the "GPL"). + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + As a special exception we grant the free usage of UPX for all + executables, including commercial programs. + See below for details and restrictions. + + +COPYRIGHT +========= + + UPX and UCL are copyrighted software. All rights remain with the authors. + + UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + UPX is Copyright (C) 1996-2000 Laszlo Molnar + + UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + + +GNU GENERAL PUBLIC LICENSE +========================== + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + UPX and UCL are distributed in the hope that they will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + + +SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES +============================================ + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special + permission to freely use and distribute all UPX compressed programs + (including commercial ones), subject to the following restrictions: + + 1. You must compress your program with a completely unmodified UPX + version; either with our precompiled version, or (at your option) + with a self compiled version of the unmodified UPX sources as + distributed by us. + 2. This also implies that the UPX stub must be completely unmodfied, i.e. + the stub imbedded in your compressed program must be byte-identical + to the stub that is produced by the official unmodified UPX version. + 3. The decompressor and any other code from the stub must exclusively get + used by the unmodified UPX stub for decompressing your program at + program startup. No portion of the stub may get read, copied, + called or otherwise get used or accessed by your program. + + +ANNOTATIONS +=========== + + - You can use a modified UPX version or modified UPX stub only for + programs that are compatible with the GNU General Public License. + + - We grant you special permission to freely use and distribute all UPX + compressed programs. But any modification of the UPX stub (such as, + but not limited to, removing our copyright string or making your + program non-decompressible) will immediately revoke your right to + use and distribute a UPX compressed program. + + - UPX is not a software protection tool; by requiring that you use + the unmodified UPX version for your proprietary programs we + make sure that any user can decompress your program. This protects + both you and your users as nobody can hide malicious code - + any program that cannot be decompressed is highly suspicious + by definition. + + - You can integrate all or part of UPX and UCL into projects that + are compatible with the GNU GPL, but obviously you cannot grant + any special exceptions beyond the GPL for our code in your project. + + - We want to actively support manufacturers of virus scanners and + similar security software. Please contact us if you would like to + incorporate parts of UPX or UCL into such a product. + + + +Markus F.X.J. Oberhumer Laszlo Molnar +markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu + +Linz, Austria, 25 Feb 2000 + +Additional License(s) + +The UPX license file is at http://upx.sourceforge.net/upx-license.html. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Xfree86-VidMode Extension 1.0, +which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +--- begin of LICENSE --- + +Version 1.1 of XFree86 ProjectLicence. + +Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicence, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so,subject to the following conditions: + + 1. Redistributions of source code must retain the above copyright + notice,this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution, and in the same place + and form as other copyright, license and disclaimer information. + + 3. The end-user documentation included with the redistribution, if any,must + include the following acknowledgment: "This product includes + software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and + its contributors", in the same place and form as other third-party + acknowledgments. Alternately, this acknowledgment may appear in the software + itself, in the same form and location as other such third-party + acknowledgments. + + 4. Except as contained in this notice, the name of The XFree86 Project,Inc + shall not be used in advertising or otherwise to promote the sale, use + or other dealings in this Software without prior written authorization from + The XFree86 Project, Inc. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to xwd v1.0.7, which may be +included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +xwd utility + +--- begin of LICENSE --- + +Copyright 1994 Hewlett-Packard Co. +Copyright 1996, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +--- end of LICENSE --- +_____________________________ +Copyright notice for HPkeysym.h: +/* + +Copyright 1987, 1998 The Open Group + +All Rights Reserved. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, + +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Hewlett Packard +or Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD +TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. Hewlett-Packard shall not be liable for errors +contained herein or direct, indirect, special, incidental or +consequential damages in connection with the furnishing, +performance, or use of this material. + +*/ + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to zlib v1.2.11, which may be included +with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to the following which may be +included with JRE 8, JDK 8, and OpenJDK 8. + + Apache Commons Math 3.2 + Apache Derby 10.11.1.2 + Apache Jakarta BCEL 5.1 + Apache Santuario XML Security for Java 2.1.3 + Apache Xalan-Java 2.7.2 + Apache Xerces Java 2.10.0 + Apache XML Resolver 1.1 + + +--- begin of LICENSE --- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to OASIS PKCS #11 Cryptographic Token +Interface v2.40, which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) OASIS Open 2016. All Rights Reserved. + +All capitalized terms in the following text have the meanings assigned to them +in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The +full Policy may be found at the OASIS website: +[http://www.oasis-open.org/policies-guidelines/ipr] + +This document and translations of it may be copied and furnished to others, and +derivative works that comment on or otherwise explain it or assist in its +implementation may be prepared, copied, published, and distributed, in whole or +in part, without restriction of any kind, provided that the above copyright +notice and this section are included on all such copies and derivative works. +However, this document itself may not be modified in any way, including by +removing the copyright notice or references to OASIS, except as needed for the +purpose of developing any document or deliverable produced by an OASIS +Technical Committee (in which case the rules applicable to copyrights, as set +forth in the OASIS IPR Policy, must be followed) or as required to translate it +into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked by +OASIS or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT +INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR +FITNESS FOR A PARTICULAR PURPOSE. OASIS AND ITS MEMBERS WILL NOT BE LIABLE FOR +ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE +OF THIS DOCUMENT OR ANY PART THEREOF. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- diff --git a/launch4j/jre/bin/JAWTAccessBridge-32.dll b/launch4j/jre/bin/JAWTAccessBridge-32.dll new file mode 100755 index 0000000..d0054fc Binary files /dev/null and b/launch4j/jre/bin/JAWTAccessBridge-32.dll differ diff --git a/launch4j/jre/bin/JAWTAccessBridge.dll b/launch4j/jre/bin/JAWTAccessBridge.dll new file mode 100755 index 0000000..aa1f2e4 Binary files /dev/null and b/launch4j/jre/bin/JAWTAccessBridge.dll differ diff --git a/launch4j/jre/bin/JavaAccessBridge-32.dll b/launch4j/jre/bin/JavaAccessBridge-32.dll new file mode 100755 index 0000000..eb8b3f0 Binary files /dev/null and b/launch4j/jre/bin/JavaAccessBridge-32.dll differ diff --git a/launch4j/jre/bin/JavaAccessBridge.dll b/launch4j/jre/bin/JavaAccessBridge.dll new file mode 100755 index 0000000..0844f7d Binary files /dev/null and b/launch4j/jre/bin/JavaAccessBridge.dll differ diff --git a/launch4j/jre/bin/WindowsAccessBridge-32.dll b/launch4j/jre/bin/WindowsAccessBridge-32.dll new file mode 100755 index 0000000..ad4b5e8 Binary files /dev/null and b/launch4j/jre/bin/WindowsAccessBridge-32.dll differ diff --git a/launch4j/jre/bin/WindowsAccessBridge.dll b/launch4j/jre/bin/WindowsAccessBridge.dll new file mode 100755 index 0000000..0115789 Binary files /dev/null and b/launch4j/jre/bin/WindowsAccessBridge.dll differ diff --git a/launch4j/jre/bin/awt.dll b/launch4j/jre/bin/awt.dll new file mode 100755 index 0000000..efc2be2 Binary files /dev/null and b/launch4j/jre/bin/awt.dll differ diff --git a/launch4j/jre/bin/client/Xusage.txt b/launch4j/jre/bin/client/Xusage.txt new file mode 100644 index 0000000..11302aa --- /dev/null +++ b/launch4j/jre/bin/client/Xusage.txt @@ -0,0 +1,24 @@ + -Xmixed mixed mode execution (default) + -Xint interpreted mode execution only + -Xbootclasspath: + set search path for bootstrap classes and resources + -Xbootclasspath/a: + append to end of bootstrap class path + -Xbootclasspath/p: + prepend in front of bootstrap class path + -Xnoclassgc disable class garbage collection + -Xincgc enable incremental garbage collection + -Xloggc: log GC status to a file with time stamps + -Xbatch disable background compilation + -Xms set initial Java heap size + -Xmx set maximum Java heap size + -Xss set java thread stack size + -Xprof output cpu profiling data + -Xfuture enable strictest checks, anticipating future default + -Xrs reduce use of OS signals by Java/VM (see documentation) + -Xcheck:jni perform additional checks for JNI functions + -Xshare:off do not attempt to use shared class data + -Xshare:auto use shared class data if possible (default) + -Xshare:on require using shared class data, otherwise fail. + +The -X options are non-standard and subject to change without notice. diff --git a/launch4j/jre/bin/client/jvm.dll b/launch4j/jre/bin/client/jvm.dll new file mode 100755 index 0000000..a1538ba Binary files /dev/null and b/launch4j/jre/bin/client/jvm.dll differ diff --git a/launch4j/jre/bin/dt_shmem.dll b/launch4j/jre/bin/dt_shmem.dll new file mode 100755 index 0000000..e2389dd Binary files /dev/null and b/launch4j/jre/bin/dt_shmem.dll differ diff --git a/launch4j/jre/bin/dt_socket.dll b/launch4j/jre/bin/dt_socket.dll new file mode 100755 index 0000000..97057b8 Binary files /dev/null and b/launch4j/jre/bin/dt_socket.dll differ diff --git a/launch4j/jre/bin/fontmanager.dll b/launch4j/jre/bin/fontmanager.dll new file mode 100755 index 0000000..5111b45 Binary files /dev/null and b/launch4j/jre/bin/fontmanager.dll differ diff --git a/launch4j/jre/bin/freetype.dll b/launch4j/jre/bin/freetype.dll new file mode 100755 index 0000000..ef0bd7b Binary files /dev/null and b/launch4j/jre/bin/freetype.dll differ diff --git a/launch4j/jre/bin/hprof.dll b/launch4j/jre/bin/hprof.dll new file mode 100755 index 0000000..f171079 Binary files /dev/null and b/launch4j/jre/bin/hprof.dll differ diff --git a/launch4j/jre/bin/instrument.dll b/launch4j/jre/bin/instrument.dll new file mode 100755 index 0000000..3ebc978 Binary files /dev/null and b/launch4j/jre/bin/instrument.dll differ diff --git a/launch4j/jre/bin/j2pcsc.dll b/launch4j/jre/bin/j2pcsc.dll new file mode 100755 index 0000000..094f172 Binary files /dev/null and b/launch4j/jre/bin/j2pcsc.dll differ diff --git a/launch4j/jre/bin/j2pkcs11.dll b/launch4j/jre/bin/j2pkcs11.dll new file mode 100755 index 0000000..73ad0c9 Binary files /dev/null and b/launch4j/jre/bin/j2pkcs11.dll differ diff --git a/launch4j/jre/bin/jaas_nt.dll b/launch4j/jre/bin/jaas_nt.dll new file mode 100755 index 0000000..c2bb77a Binary files /dev/null and b/launch4j/jre/bin/jaas_nt.dll differ diff --git a/launch4j/jre/bin/jabswitch.exe b/launch4j/jre/bin/jabswitch.exe new file mode 100755 index 0000000..42e916a Binary files /dev/null and b/launch4j/jre/bin/jabswitch.exe differ diff --git a/launch4j/jre/bin/java-rmi.exe b/launch4j/jre/bin/java-rmi.exe new file mode 100755 index 0000000..2df4f25 Binary files /dev/null and b/launch4j/jre/bin/java-rmi.exe differ diff --git a/launch4j/jre/bin/java.dll b/launch4j/jre/bin/java.dll new file mode 100755 index 0000000..4a7cdad Binary files /dev/null and b/launch4j/jre/bin/java.dll differ diff --git a/launch4j/jre/bin/java.exe b/launch4j/jre/bin/java.exe new file mode 100755 index 0000000..ec182c1 Binary files /dev/null and b/launch4j/jre/bin/java.exe differ diff --git a/launch4j/jre/bin/java_crw_demo.dll b/launch4j/jre/bin/java_crw_demo.dll new file mode 100755 index 0000000..b1813fb Binary files /dev/null and b/launch4j/jre/bin/java_crw_demo.dll differ diff --git a/launch4j/jre/bin/javaw.exe b/launch4j/jre/bin/javaw.exe new file mode 100755 index 0000000..fd003e1 Binary files /dev/null and b/launch4j/jre/bin/javaw.exe differ diff --git a/launch4j/jre/bin/jawt.dll b/launch4j/jre/bin/jawt.dll new file mode 100755 index 0000000..78336b2 Binary files /dev/null and b/launch4j/jre/bin/jawt.dll differ diff --git a/launch4j/jre/bin/jdwp.dll b/launch4j/jre/bin/jdwp.dll new file mode 100755 index 0000000..2dee793 Binary files /dev/null and b/launch4j/jre/bin/jdwp.dll differ diff --git a/launch4j/jre/bin/jjs.exe b/launch4j/jre/bin/jjs.exe new file mode 100755 index 0000000..1c544c9 Binary files /dev/null and b/launch4j/jre/bin/jjs.exe differ diff --git a/launch4j/jre/bin/jli.dll b/launch4j/jre/bin/jli.dll new file mode 100755 index 0000000..3d73ba7 Binary files /dev/null and b/launch4j/jre/bin/jli.dll differ diff --git a/launch4j/jre/bin/jpeg.dll b/launch4j/jre/bin/jpeg.dll new file mode 100755 index 0000000..0597c0f Binary files /dev/null and b/launch4j/jre/bin/jpeg.dll differ diff --git a/launch4j/jre/bin/jsdt.dll b/launch4j/jre/bin/jsdt.dll new file mode 100755 index 0000000..abf8a18 Binary files /dev/null and b/launch4j/jre/bin/jsdt.dll differ diff --git a/launch4j/jre/bin/jsound.dll b/launch4j/jre/bin/jsound.dll new file mode 100755 index 0000000..0e3b46a Binary files /dev/null and b/launch4j/jre/bin/jsound.dll differ diff --git a/launch4j/jre/bin/jsoundds.dll b/launch4j/jre/bin/jsoundds.dll new file mode 100755 index 0000000..5ffc00d Binary files /dev/null and b/launch4j/jre/bin/jsoundds.dll differ diff --git a/launch4j/jre/bin/keytool.exe b/launch4j/jre/bin/keytool.exe new file mode 100755 index 0000000..17bbdef Binary files /dev/null and b/launch4j/jre/bin/keytool.exe differ diff --git a/launch4j/jre/bin/kinit.exe b/launch4j/jre/bin/kinit.exe new file mode 100755 index 0000000..db3fab1 Binary files /dev/null and b/launch4j/jre/bin/kinit.exe differ diff --git a/launch4j/jre/bin/klist.exe b/launch4j/jre/bin/klist.exe new file mode 100755 index 0000000..4497143 Binary files /dev/null and b/launch4j/jre/bin/klist.exe differ diff --git a/launch4j/jre/bin/ktab.exe b/launch4j/jre/bin/ktab.exe new file mode 100755 index 0000000..5813342 Binary files /dev/null and b/launch4j/jre/bin/ktab.exe differ diff --git a/launch4j/jre/bin/lcms.dll b/launch4j/jre/bin/lcms.dll new file mode 100755 index 0000000..4c32454 Binary files /dev/null and b/launch4j/jre/bin/lcms.dll differ diff --git a/launch4j/jre/bin/management.dll b/launch4j/jre/bin/management.dll new file mode 100755 index 0000000..132a202 Binary files /dev/null and b/launch4j/jre/bin/management.dll differ diff --git a/launch4j/jre/bin/mlib_image.dll b/launch4j/jre/bin/mlib_image.dll new file mode 100755 index 0000000..217c351 Binary files /dev/null and b/launch4j/jre/bin/mlib_image.dll differ diff --git a/launch4j/jre/bin/msvcp120.dll b/launch4j/jre/bin/msvcp120.dll new file mode 100755 index 0000000..4a98922 Binary files /dev/null and b/launch4j/jre/bin/msvcp120.dll differ diff --git a/launch4j/jre/bin/msvcr120.dll b/launch4j/jre/bin/msvcr120.dll new file mode 100755 index 0000000..6d57200 Binary files /dev/null and b/launch4j/jre/bin/msvcr120.dll differ diff --git a/launch4j/jre/bin/net.dll b/launch4j/jre/bin/net.dll new file mode 100755 index 0000000..3f81136 Binary files /dev/null and b/launch4j/jre/bin/net.dll differ diff --git a/launch4j/jre/bin/nio.dll b/launch4j/jre/bin/nio.dll new file mode 100755 index 0000000..0ee410c Binary files /dev/null and b/launch4j/jre/bin/nio.dll differ diff --git a/launch4j/jre/bin/npt.dll b/launch4j/jre/bin/npt.dll new file mode 100755 index 0000000..0665a6b Binary files /dev/null and b/launch4j/jre/bin/npt.dll differ diff --git a/launch4j/jre/bin/orbd.exe b/launch4j/jre/bin/orbd.exe new file mode 100755 index 0000000..f411067 Binary files /dev/null and b/launch4j/jre/bin/orbd.exe differ diff --git a/launch4j/jre/bin/pack200.exe b/launch4j/jre/bin/pack200.exe new file mode 100755 index 0000000..e51d901 Binary files /dev/null and b/launch4j/jre/bin/pack200.exe differ diff --git a/launch4j/jre/bin/policytool.exe b/launch4j/jre/bin/policytool.exe new file mode 100755 index 0000000..3d73f90 Binary files /dev/null and b/launch4j/jre/bin/policytool.exe differ diff --git a/launch4j/jre/bin/rmid.exe b/launch4j/jre/bin/rmid.exe new file mode 100755 index 0000000..94fd4cc Binary files /dev/null and b/launch4j/jre/bin/rmid.exe differ diff --git a/launch4j/jre/bin/rmiregistry.exe b/launch4j/jre/bin/rmiregistry.exe new file mode 100755 index 0000000..756648b Binary files /dev/null and b/launch4j/jre/bin/rmiregistry.exe differ diff --git a/launch4j/jre/bin/servertool.exe b/launch4j/jre/bin/servertool.exe new file mode 100755 index 0000000..06eb713 Binary files /dev/null and b/launch4j/jre/bin/servertool.exe differ diff --git a/launch4j/jre/bin/splashscreen.dll b/launch4j/jre/bin/splashscreen.dll new file mode 100755 index 0000000..0f68a72 Binary files /dev/null and b/launch4j/jre/bin/splashscreen.dll differ diff --git a/launch4j/jre/bin/sunec.dll b/launch4j/jre/bin/sunec.dll new file mode 100755 index 0000000..1c8d88c Binary files /dev/null and b/launch4j/jre/bin/sunec.dll differ diff --git a/launch4j/jre/bin/sunmscapi.dll b/launch4j/jre/bin/sunmscapi.dll new file mode 100755 index 0000000..1fa7ca3 Binary files /dev/null and b/launch4j/jre/bin/sunmscapi.dll differ diff --git a/launch4j/jre/bin/tnameserv.exe b/launch4j/jre/bin/tnameserv.exe new file mode 100755 index 0000000..1cab6a5 Binary files /dev/null and b/launch4j/jre/bin/tnameserv.exe differ diff --git a/launch4j/jre/bin/unpack.dll b/launch4j/jre/bin/unpack.dll new file mode 100755 index 0000000..38c63df Binary files /dev/null and b/launch4j/jre/bin/unpack.dll differ diff --git a/launch4j/jre/bin/unpack200.exe b/launch4j/jre/bin/unpack200.exe new file mode 100755 index 0000000..fa9ae0d Binary files /dev/null and b/launch4j/jre/bin/unpack200.exe differ diff --git a/launch4j/jre/bin/verify.dll b/launch4j/jre/bin/verify.dll new file mode 100755 index 0000000..0402500 Binary files /dev/null and b/launch4j/jre/bin/verify.dll differ diff --git a/launch4j/jre/bin/w2k_lsa_auth.dll b/launch4j/jre/bin/w2k_lsa_auth.dll new file mode 100755 index 0000000..53bca52 Binary files /dev/null and b/launch4j/jre/bin/w2k_lsa_auth.dll differ diff --git a/launch4j/jre/bin/zip.dll b/launch4j/jre/bin/zip.dll new file mode 100755 index 0000000..11238cc Binary files /dev/null and b/launch4j/jre/bin/zip.dll differ diff --git a/launch4j/jre/lib/accessibility.properties b/launch4j/jre/lib/accessibility.properties new file mode 100644 index 0000000..d9f12e3 --- /dev/null +++ b/launch4j/jre/lib/accessibility.properties @@ -0,0 +1,6 @@ +# +# Load the Java Access Bridge class into the JVM +# +#assistive_technologies=com.sun.java.accessibility.AccessBridge +#screen_magnifier_present=true + diff --git a/launch4j/jre/lib/calendars.properties b/launch4j/jre/lib/calendars.properties new file mode 100644 index 0000000..6007d7a --- /dev/null +++ b/launch4j/jre/lib/calendars.properties @@ -0,0 +1,62 @@ +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# Japanese imperial calendar +# +# Meiji since 1868-01-01 00:00:00 local time (Gregorian) +# Taisho since 1912-07-30 00:00:00 local time (Gregorian) +# Showa since 1926-12-25 00:00:00 local time (Gregorian) +# Heisei since 1989-01-08 00:00:00 local time (Gregorian) +# Reiwa since 2019-05-01 00:00:00 local time (Gregorian) +calendar.japanese.type: LocalGregorianCalendar +calendar.japanese.eras: \ + name=Meiji,abbr=M,since=-3218832000000; \ + name=Taisho,abbr=T,since=-1812153600000; \ + name=Showa,abbr=S,since=-1357603200000; \ + name=Heisei,abbr=H,since=600220800000; \ + name=Reiwa,abbr=R,since=1556668800000 + +# +# Taiwanese calendar +# Minguo since 1911-01-01 00:00:00 local time (Gregorian) +calendar.taiwanese.type: LocalGregorianCalendar +calendar.taiwanese.eras: \ + name=MinGuo,since=-1830384000000 + +# +# Thai Buddhist calendar +# Buddhist Era since -542-01-01 00:00:00 local time (Gregorian) +calendar.thai-buddhist.type: LocalGregorianCalendar +calendar.thai-buddhist.eras: \ + name=BuddhistEra,abbr=B.E.,since=-79302585600000 +calendar.thai-buddhist.year-boundary: \ + day1=4-1,since=-79302585600000; \ + day1=1-1,since=-915148800000 + +# +# Hijrah calendars +# +calendar.hijrah.Hijrah-umalqura: hijrah-config-umalqura.properties +calendar.hijrah.Hijrah-umalqura.type: islamic-umalqura diff --git a/launch4j/jre/lib/charsets.jar b/launch4j/jre/lib/charsets.jar new file mode 100755 index 0000000..40e7538 Binary files /dev/null and b/launch4j/jre/lib/charsets.jar differ diff --git a/launch4j/jre/lib/classlist b/launch4j/jre/lib/classlist new file mode 100755 index 0000000..36e8ca1 --- /dev/null +++ b/launch4j/jre/lib/classlist @@ -0,0 +1,2469 @@ +java/lang/Object +java/lang/String +java/io/Serializable +java/lang/Comparable +java/lang/CharSequence +java/lang/Class +java/lang/reflect/GenericDeclaration +java/lang/reflect/AnnotatedElement +java/lang/reflect/Type +java/lang/Cloneable +java/lang/ClassLoader +java/lang/System +java/lang/Throwable +java/lang/Error +java/lang/ThreadDeath +java/lang/Exception +java/lang/RuntimeException +java/lang/SecurityManager +java/security/ProtectionDomain +java/security/AccessControlContext +java/security/SecureClassLoader +java/lang/ClassNotFoundException +java/lang/ReflectiveOperationException +java/lang/NoClassDefFoundError +java/lang/LinkageError +java/lang/ClassCastException +java/lang/ArrayStoreException +java/lang/VirtualMachineError +java/lang/OutOfMemoryError +java/lang/StackOverflowError +java/lang/IllegalMonitorStateException +java/lang/ref/Reference +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/ref/FinalReference +java/lang/ref/PhantomReference +sun/misc/Cleaner +java/lang/ref/Finalizer +java/lang/Thread +java/lang/Runnable +java/lang/ThreadGroup +java/lang/Thread$UncaughtExceptionHandler +java/util/Properties +java/util/Hashtable +java/util/Map +java/util/Dictionary +java/lang/reflect/AccessibleObject +java/lang/reflect/Field +java/lang/reflect/Member +java/lang/reflect/Parameter +java/lang/reflect/Method +java/lang/reflect/Executable +java/lang/reflect/Constructor +sun/reflect/MagicAccessorImpl +sun/reflect/MethodAccessorImpl +sun/reflect/MethodAccessor +sun/reflect/ConstructorAccessorImpl +sun/reflect/ConstructorAccessor +sun/reflect/DelegatingClassLoader +sun/reflect/ConstantPool +sun/reflect/UnsafeStaticFieldAccessorImpl +sun/reflect/UnsafeFieldAccessorImpl +sun/reflect/FieldAccessorImpl +sun/reflect/FieldAccessor +sun/reflect/CallerSensitive +java/lang/annotation/Annotation +java/lang/invoke/DirectMethodHandle +java/lang/invoke/MethodHandle +java/lang/invoke/MemberName +java/lang/invoke/MethodHandleNatives +java/lang/invoke/LambdaForm +java/lang/invoke/MethodType +java/lang/BootstrapMethodError +java/lang/invoke/CallSite +java/lang/invoke/ConstantCallSite +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/StringBuffer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/StringBuilder +sun/misc/Unsafe +java/io/ByteArrayInputStream +java/io/InputStream +java/io/Closeable +java/lang/AutoCloseable +java/io/File +java/net/URLClassLoader +java/net/URL +java/util/jar/Manifest +sun/misc/Launcher +sun/misc/Launcher$AppClassLoader +sun/misc/Launcher$ExtClassLoader +java/security/CodeSource +java/lang/StackTraceElement +java/nio/Buffer +java/lang/Boolean +java/lang/Character +java/lang/Float +java/lang/Number +java/lang/Double +java/lang/Byte +java/lang/Short +java/lang/Integer +java/lang/Long +java/lang/NullPointerException +java/lang/ArithmeticException +java/io/ObjectStreamField +java/lang/String$CaseInsensitiveComparator +java/util/Comparator +java/lang/RuntimePermission +java/security/BasicPermission +java/security/Permission +java/security/Guard +java/security/AccessController +java/lang/reflect/ReflectPermission +sun/reflect/ReflectionFactory$GetReflectionFactoryAction +java/security/PrivilegedAction +java/security/cert/Certificate +java/util/Vector +java/util/List +java/util/Collection +java/lang/Iterable +java/util/RandomAccess +java/util/AbstractList +java/util/AbstractCollection +java/util/Stack +sun/reflect/ReflectionFactory +java/lang/ref/Reference$Lock +java/lang/ref/Reference$ReferenceHandler +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Null +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/Finalizer$FinalizerThread +sun/misc/VM +java/util/Hashtable$Entry +java/util/Map$Entry +java/lang/Math +java/util/Hashtable$EntrySet +java/util/AbstractSet +java/util/Set +java/util/Collections +java/util/Collections$EmptySet +java/util/Collections$EmptyList +java/util/Collections$EmptyMap +java/util/AbstractMap +java/util/Collections$SynchronizedSet +java/util/Collections$SynchronizedCollection +java/util/Objects +java/util/Hashtable$Enumerator +java/util/Enumeration +java/util/Iterator +java/lang/Runtime +sun/misc/Version +java/io/FileInputStream +java/io/FileDescriptor +java/io/FileDescriptor$1 +sun/misc/JavaIOFileDescriptorAccess +sun/misc/SharedSecrets +java/lang/NoSuchMethodError +java/lang/IncompatibleClassChangeError +java/util/ArrayList +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableList +java/util/Collections$UnmodifiableCollection +sun/reflect/Reflection +java/util/HashMap +java/util/HashMap$Node +java/io/FileOutputStream +java/io/OutputStream +java/io/Flushable +java/io/BufferedInputStream +java/io/FilterInputStream +java/util/concurrent/atomic/AtomicReferenceFieldUpdater +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl +java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +java/security/PrivilegedExceptionAction +java/lang/Class$3 +java/lang/Class$ReflectionData +java/lang/Class$Atomic +sun/reflect/generics/repository/ClassRepository +sun/reflect/generics/repository/GenericDeclRepository +sun/reflect/generics/repository/AbstractRepository +java/lang/Class$AnnotationData +sun/reflect/annotation/AnnotationType +java/lang/ClassValue$ClassValueMap +java/util/WeakHashMap +java/lang/reflect/Modifier +java/lang/reflect/ReflectAccess +sun/reflect/LangReflectAccess +sun/reflect/misc/ReflectUtil +java/io/PrintStream +java/io/FilterOutputStream +java/io/BufferedOutputStream +java/io/OutputStreamWriter +java/io/Writer +sun/nio/cs/StreamEncoder +java/nio/charset/Charset +sun/nio/cs/StandardCharsets +sun/nio/cs/FastCharsetProvider +java/nio/charset/spi/CharsetProvider +sun/nio/cs/StandardCharsets$Aliases +sun/util/PreHashedMap +sun/nio/cs/StandardCharsets$Classes +sun/nio/cs/StandardCharsets$Cache +java/lang/ThreadLocal +java/util/concurrent/atomic/AtomicInteger +sun/security/action/GetPropertyAction +java/util/Arrays +sun/nio/cs/MS1252 +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/SingleByte +java/lang/Class$1 +sun/reflect/ReflectionFactory$1 +sun/reflect/NativeConstructorAccessorImpl +sun/reflect/DelegatingConstructorAccessorImpl +sun/nio/cs/SingleByte$Encoder +sun/nio/cs/ArrayEncoder +java/nio/charset/CharsetEncoder +java/nio/charset/CodingErrorAction +java/nio/ByteBuffer +java/nio/HeapByteBuffer +java/nio/Bits +java/nio/ByteOrder +java/nio/Bits$1 +sun/misc/JavaNioAccess +java/io/BufferedWriter +java/io/DefaultFileSystem +java/io/WinNTFileSystem +java/io/FileSystem +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/util/LinkedHashMap +java/io/File$PathStatus +java/lang/Enum +java/nio/file/Path +java/nio/file/Watchable +java/lang/ClassLoader$3 +java/io/ExpiringCache$Entry +java/util/LinkedHashMap$Entry +java/lang/ClassLoader$NativeLibrary +java/lang/Terminator +java/lang/Terminator$1 +sun/misc/SignalHandler +sun/misc/Signal +sun/misc/NativeSignalHandler +java/lang/Integer$IntegerCache +sun/misc/OSEnvironment +sun/io/Win32ErrorMode +java/lang/System$2 +sun/misc/JavaLangAccess +java/lang/IllegalArgumentException +java/lang/Compiler +java/lang/Compiler$1 +sun/misc/Launcher$Factory +java/net/URLStreamHandlerFactory +sun/security/util/Debug +java/lang/ClassLoader$ParallelLoaders +java/util/WeakHashMap$Entry +java/util/Collections$SetFromMap +java/util/WeakHashMap$KeySet +java/net/URLClassLoader$7 +sun/misc/JavaNetAccess +java/util/StringTokenizer +sun/misc/Launcher$ExtClassLoader$1 +sun/misc/MetaIndex +java/io/BufferedReader +java/io/Reader +java/lang/Readable +java/io/FileReader +java/io/InputStreamReader +sun/nio/cs/StreamDecoder +sun/nio/cs/SingleByte$Decoder +sun/nio/cs/ArrayDecoder +java/nio/charset/CharsetDecoder +java/nio/CharBuffer +java/nio/HeapCharBuffer +java/nio/charset/CoderResult +java/nio/charset/CoderResult$1 +java/nio/charset/CoderResult$Cache +java/nio/charset/CoderResult$2 +java/lang/reflect/Array +java/util/Locale +java/util/Locale$Cache +sun/util/locale/LocaleObjectCache +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentMap +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/Lock +java/util/concurrent/ConcurrentHashMap$Node +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentHashMap$EntrySetView +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LocaleObjectCache$CacheEntry +java/util/Locale$LocaleKey +sun/util/locale/LocaleUtils +java/lang/CharacterData +java/lang/CharacterDataLatin1 +java/util/HashMap$TreeNode +java/io/FileInputStream$1 +sun/net/www/ParseUtil +java/util/BitSet +java/net/Parts +sun/net/www/protocol/file/Handler +java/net/URLStreamHandler +java/security/ProtectionDomain$JavaSecurityAccessImpl +sun/misc/JavaSecurityAccess +java/security/ProtectionDomain$2 +sun/misc/JavaSecurityProtectionDomainAccess +java/security/ProtectionDomain$Key +java/security/Principal +java/util/HashSet +sun/misc/URLClassPath +sun/net/www/protocol/jar/Handler +sun/misc/Launcher$AppClassLoader$1 +java/lang/SystemClassLoaderAction +java/lang/invoke/MethodHandleImpl +java/lang/invoke/MethodHandleImpl$1 +java/lang/invoke/MethodHandleImpl$2 +java/util/function/Function +java/lang/invoke/MethodHandleImpl$3 +java/lang/invoke/MethodHandleImpl$4 +java/lang/ClassValue +java/lang/ClassValue$Entry +java/lang/ClassValue$Identity +java/lang/ClassValue$Version +java/lang/invoke/MemberName$Factory +java/lang/invoke/MethodHandleStatics +java/lang/invoke/MethodHandleStatics$1 +sun/misc/PostVMInitHook +sun/usagetracker/UsageTrackerClient +java/util/concurrent/atomic/AtomicBoolean +sun/usagetracker/UsageTrackerClient$1 +sun/usagetracker/UsageTrackerClient$4 +sun/usagetracker/UsageTrackerClient$2 +java/lang/ProcessEnvironment +java/lang/ProcessEnvironment$NameComparator +java/lang/ProcessEnvironment$EntryComparator +java/util/Collections$UnmodifiableMap +java/util/TreeMap +java/util/NavigableMap +java/util/SortedMap +java/lang/ProcessEnvironment$CheckedEntrySet +java/util/HashMap$EntrySet +java/lang/ProcessEnvironment$CheckedEntrySet$1 +java/util/HashMap$EntryIterator +java/util/HashMap$HashIterator +java/lang/ProcessEnvironment$CheckedEntry +java/util/TreeMap$Entry +sun/usagetracker/UsageTrackerClient$3 +java/lang/StringCoding +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +sun/nio/cs/UTF_8 +sun/nio/cs/Unicode +java/lang/StringCoding$StringEncoder +sun/nio/cs/UTF_8$Encoder +java/io/FileOutputStream$1 +sun/launcher/LauncherHelper +java/lang/StringCoding$StringDecoder +java/net/URLClassLoader$1 +sun/net/util/URLUtil +sun/misc/URLClassPath$3 +sun/misc/URLClassPath$JarLoader +sun/misc/URLClassPath$Loader +java/util/zip/ZipFile +java/util/zip/ZipConstants +java/util/zip/ZipFile$1 +sun/misc/JavaUtilZipFileAccess +sun/misc/URLClassPath$JarLoader$1 +sun/misc/FileURLMapper +java/util/jar/JarFile +java/util/jar/JavaUtilJarAccessImpl +sun/misc/JavaUtilJarAccess +java/nio/charset/StandardCharsets +sun/nio/cs/US_ASCII +sun/nio/cs/ISO_8859_1 +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_16 +java/util/ArrayDeque +java/util/Deque +java/util/Queue +java/util/zip/ZipCoder +sun/misc/PerfCounter +sun/misc/Perf$GetPerfAction +sun/misc/Perf +sun/misc/PerfCounter$CoreCounters +sun/nio/ch/DirectBuffer +java/nio/DirectByteBuffer +java/nio/MappedByteBuffer +java/nio/DirectLongBufferU +java/nio/LongBuffer +sun/misc/JarIndex +sun/misc/ExtensionDependency +java/util/zip/ZipEntry +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarEntry +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/Inflater +java/util/zip/ZStreamRef +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/InflaterInputStream +sun/misc/IOUtils +sun/misc/URLClassPath$JarLoader$2 +sun/misc/Resource +sun/nio/ByteBuffered +java/security/Permissions +java/security/PermissionCollection +sun/net/www/protocol/file/FileURLConnection +sun/net/www/URLConnection +java/net/URLConnection +sun/net/www/MessageHeader +java/io/FilePermission +java/io/FilePermission$1 +java/io/FilePermissionCollection +java/security/AllPermission +java/security/UnresolvedPermission +java/security/BasicPermissionCollection +javax/swing/JLabel +javax/swing/SwingConstants +javax/accessibility/Accessible +javax/swing/JComponent +javax/swing/TransferHandler$HasGetTransferHandler +java/awt/Container +java/awt/Component +java/awt/image/ImageObserver +java/awt/MenuContainer +sun/launcher/LauncherHelper$FXHelper +java/lang/Class$MethodArray +java/lang/InterruptedException +javax/swing/JFrame +javax/swing/WindowConstants +javax/swing/RootPaneContainer +java/awt/Frame +java/awt/Window +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/awt/Graphics +java/lang/Void +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$Level +sun/util/logging/PlatformLogger$1 +sun/util/logging/PlatformLogger$DefaultLoggerProxy +sun/util/logging/PlatformLogger$LoggerProxy +sun/util/logging/PlatformLogger$JavaLoggerProxy +sun/util/logging/LoggingSupport +sun/util/logging/LoggingSupport$1 +java/util/logging/LoggingProxyImpl +sun/util/logging/LoggingProxy +sun/reflect/UnsafeFieldAccessorFactory +sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl +sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +sun/util/logging/LoggingSupport$2 +java/util/Date +sun/util/calendar/CalendarSystem +sun/util/calendar/Gregorian +sun/util/calendar/BaseCalendar +sun/util/calendar/AbstractCalendar +java/awt/Component$AWTTreeLock +java/awt/Toolkit +java/awt/Toolkit$4 +sun/awt/AWTAccessor$ToolkitAccessor +sun/awt/AWTAccessor +java/awt/Toolkit$5 +sun/util/CoreResourceBundleControl +java/util/ResourceBundle$Control +java/util/Arrays$ArrayList +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle +java/util/ResourceBundle$1 +java/util/spi/ResourceBundleControlProvider +java/util/ServiceLoader +java/util/ServiceLoader$LazyIterator +java/util/ServiceLoader$1 +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedHashIterator +sun/misc/Launcher$BootClassPathHolder +sun/misc/Launcher$BootClassPathHolder$1 +sun/misc/URLClassPath$2 +java/lang/ClassLoader$2 +sun/misc/URLClassPath$1 +java/net/URLClassLoader$3 +sun/misc/CompoundEnumeration +java/io/FileNotFoundException +java/io/IOException +java/security/PrivilegedActionException +java/net/URLClassLoader$3$1 +java/util/ResourceBundle$RBClassLoader +java/util/ResourceBundle$RBClassLoader$1 +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$LoaderReference +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$SingleFormatControl +java/util/LinkedList +java/util/AbstractSequentialList +java/util/LinkedList$Node +sun/awt/resources/awt +java/util/ListResourceBundle +java/awt/Toolkit$3 +java/awt/Toolkit$1 +java/util/Properties$LineReader +java/awt/GraphicsEnvironment +java/lang/invoke/LambdaMetafactory +java/lang/invoke/MethodHandles$Lookup +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodTypeForm +java/lang/invoke/Invokers +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodHandles +sun/invoke/util/Wrapper +sun/invoke/util/Wrapper$Format +java/lang/Byte$ByteCache +java/lang/Short$ShortCache +java/lang/Character$CharacterCache +java/lang/Long$LongCache +sun/invoke/util/VerifyAccess +sun/invoke/util/ValueConversions +java/lang/NoSuchMethodException +java/lang/invoke/LambdaForm$BasicType +java/lang/invoke/LambdaForm$Name +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/SimpleMethodHandle +java/lang/invoke/BoundMethodHandle +java/lang/invoke/BoundMethodHandle$SpeciesData +java/lang/invoke/BoundMethodHandle$Factory +java/lang/invoke/BoundMethodHandle$Species_L +java/util/HashMap$Values +java/util/HashMap$ValueIterator +sun/invoke/util/BytecodeDescriptor +java/lang/invoke/DirectMethodHandle$Lazy +java/lang/InstantiationException +java/util/Collections$UnmodifiableCollection$1 +java/util/AbstractList$Itr +java/lang/invoke/InvokerBytecodeGenerator +jdk/internal/org/objectweb/asm/ClassWriter +jdk/internal/org/objectweb/asm/ClassVisitor +jdk/internal/org/objectweb/asm/ByteVector +jdk/internal/org/objectweb/asm/Item +jdk/internal/org/objectweb/asm/MethodWriter +jdk/internal/org/objectweb/asm/MethodVisitor +jdk/internal/org/objectweb/asm/Type +jdk/internal/org/objectweb/asm/Label +jdk/internal/org/objectweb/asm/Frame +jdk/internal/org/objectweb/asm/AnnotationWriter +jdk/internal/org/objectweb/asm/AnnotationVisitor +java/lang/invoke/MethodHandleImpl$Intrinsic +java/lang/invoke/InvokerBytecodeGenerator$2 +sun/invoke/util/VerifyType +sun/invoke/empty/Empty +java/lang/NoSuchFieldException +java/lang/invoke/InvokerBytecodeGenerator$CpPatch +java/lang/invoke/DirectMethodHandle$Accessor +java/util/ArrayList$Itr +java/util/RandomAccessSubList +java/util/SubList +java/util/SubList$1 +java/util/ListIterator +java/util/AbstractList$ListItr +java/lang/invoke/MethodHandleImpl$AsVarargsCollector +java/lang/invoke/DelegatingMethodHandle +java/lang/invoke/WrongMethodTypeException +java/lang/invoke/MethodHandleImpl$Lazy +java/lang/invoke/MethodHandleImpl$IntrinsicMethodHandle +java/lang/NoSuchFieldError +java/lang/IllegalAccessException +java/lang/invoke/LambdaFormEditor +java/lang/invoke/LambdaFormEditor$Transform$Kind +java/lang/invoke/LambdaFormEditor$Transform +java/lang/invoke/LambdaFormBuffer +jdk/internal/org/objectweb/asm/FieldWriter +jdk/internal/org/objectweb/asm/FieldVisitor +java/lang/invoke/InnerClassLambdaMetafactory +java/lang/invoke/AbstractValidatingLambdaMetafactory +java/util/PropertyPermission +java/security/AccessController$1 +sun/security/util/SecurityConstants +java/net/NetPermission +java/security/SecurityPermission +java/net/SocketPermission +sun/security/action/GetBooleanAction +java/security/AllPermissionCollection +java/lang/invoke/InfoFromMemberName +java/lang/invoke/MethodHandleInfo +java/lang/invoke/InnerClassLambdaMetafactory$ForwardingMethodGenerator +java/lang/invoke/TypeConvertingMethodAdapter +java/lang/invoke/InnerClassLambdaMetafactory$1 +java/awt/Insets +java/awt/event/InputEvent +java/awt/event/ComponentEvent +java/awt/AWTEvent +java/util/EventObject +java/awt/AWTEvent$1 +sun/awt/AWTAccessor$AWTEventAccessor +java/awt/event/NativeLibLoader +java/awt/event/NativeLibLoader$1 +java/awt/event/InputEvent$1 +sun/awt/AWTAccessor$InputEventAccessor +sun/awt/windows/WComponentPeer +java/awt/peer/ComponentPeer +java/awt/dnd/peer/DropTargetPeer +sun/awt/windows/WObjectPeer +java/awt/Font +java/awt/Font$FontAccessImpl +sun/font/FontAccess +java/awt/geom/AffineTransform +sun/font/AttributeValues +sun/font/EAttribute +java/text/AttributedCharacterIterator$Attribute +java/lang/Class$4 +sun/reflect/NativeMethodAccessorImpl +sun/reflect/DelegatingMethodAccessorImpl +java/awt/font/TextAttribute +java/awt/Component$1 +sun/awt/AWTAccessor$ComponentAccessor +java/awt/Component$DummyRequestFocusController +sun/awt/RequestFocusController +java/awt/LayoutManager +java/awt/LightweightDispatcher +java/awt/event/AWTEventListener +java/util/EventListener +java/awt/Dimension +java/awt/geom/Dimension2D +java/awt/Container$1 +sun/awt/AWTAccessor$ContainerAccessor +javax/swing/JComponent$1 +java/awt/ComponentOrientation +java/awt/Component$3 +sun/awt/AppContext +java/util/IdentityHashMap +java/util/Collections$SynchronizedMap +sun/awt/AppContext$GetAppContextLock +sun/awt/AppContext$6 +sun/misc/JavaAWTAccess +sun/awt/AppContext$3 +sun/awt/AppContext$2 +sun/awt/SunToolkit +sun/awt/WindowClosingSupport +sun/awt/WindowClosingListener +sun/awt/ComponentFactory +sun/awt/InputMethodSupport +sun/awt/KeyboardFocusManagerPeerProvider +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +java/util/concurrent/locks/Condition +sun/misc/SoftCache +sun/awt/AppContext$State +sun/awt/AppContext$1 +java/awt/EventQueue +java/awt/EventQueue$1 +java/awt/EventQueue$2 +sun/awt/AWTAccessor$EventQueueAccessor +java/awt/Queue +sun/awt/MostRecentKeyValue +sun/awt/PostEventQueue +javax/swing/event/EventListenerList +javax/swing/SwingUtilities +javax/swing/RepaintManager +javax/swing/RepaintManager$DisplayChangedHandler +sun/awt/DisplayChangedListener +javax/swing/RepaintManager$1 +sun/swing/SwingAccessor$RepaintManagerAccessor +sun/swing/SwingAccessor +sun/awt/Win32GraphicsEnvironment +sun/java2d/SunGraphicsEnvironment +sun/awt/windows/WToolkit +sun/awt/windows/WToolkit$1 +sun/java2d/SurfaceData +java/awt/Transparency +sun/java2d/DisposerTarget +sun/java2d/StateTrackable +sun/java2d/Surface +sun/java2d/InvalidPipeException +java/lang/IllegalStateException +sun/java2d/NullSurfaceData +sun/java2d/StateTrackable$State +sun/java2d/loops/SurfaceType +sun/awt/image/PixelConverter +sun/awt/image/PixelConverter$Xrgb +sun/awt/image/PixelConverter$Argb +sun/awt/image/PixelConverter$ArgbPre +sun/awt/image/PixelConverter$Xbgr +sun/awt/image/PixelConverter$Rgba +sun/awt/image/PixelConverter$RgbaPre +sun/awt/image/PixelConverter$Ushort565Rgb +sun/awt/image/PixelConverter$Ushort555Rgb +sun/awt/image/PixelConverter$Ushort555Rgbx +sun/awt/image/PixelConverter$Ushort4444Argb +sun/awt/image/PixelConverter$ByteGray +sun/awt/image/PixelConverter$UshortGray +sun/awt/image/PixelConverter$Rgbx +sun/awt/image/PixelConverter$Bgrx +sun/awt/image/PixelConverter$ArgbBm +java/awt/image/ColorModel +java/awt/image/ColorModel$1 +java/awt/image/DirectColorModel +java/awt/image/PackedColorModel +java/awt/color/ColorSpace +java/awt/color/ICC_Profile +sun/java2d/cmm/ProfileDeferralInfo +sun/java2d/cmm/ProfileDeferralMgr +java/awt/color/ICC_ProfileRGB +java/awt/color/ICC_Profile$1 +sun/java2d/cmm/ProfileActivator +java/awt/color/ICC_ColorSpace +sun/java2d/StateTrackableDelegate +sun/java2d/StateTrackableDelegate$2 +sun/java2d/pipe/NullPipe +sun/java2d/pipe/PixelDrawPipe +sun/java2d/pipe/PixelFillPipe +sun/java2d/pipe/ShapeDrawPipe +sun/java2d/pipe/TextPipe +sun/java2d/pipe/DrawImagePipe +java/awt/image/IndexColorModel +sun/java2d/pipe/LoopPipe +sun/java2d/pipe/ParallelogramPipe +sun/java2d/pipe/LoopBasedPipe +sun/java2d/pipe/RenderingEngine +sun/java2d/pipe/RenderingEngine$1 +sun/dc/DuctusRenderingEngine +sun/java2d/pipe/OutlineTextRenderer +sun/java2d/pipe/SolidTextRenderer +sun/java2d/pipe/GlyphListLoopPipe +sun/java2d/pipe/GlyphListPipe +sun/java2d/pipe/AATextRenderer +sun/java2d/pipe/LCDTextRenderer +sun/java2d/pipe/AlphaColorPipe +sun/java2d/pipe/CompositePipe +sun/java2d/SurfaceData$PixelToShapeLoopConverter +sun/java2d/pipe/PixelToShapeConverter +sun/java2d/SurfaceData$PixelToPgramLoopConverter +sun/java2d/pipe/PixelToParallelogramConverter +sun/java2d/pipe/TextRenderer +sun/java2d/pipe/SpanClipRenderer +sun/java2d/pipe/Region +sun/java2d/pipe/RegionIterator +sun/java2d/pipe/Region$ImmutableRegion +sun/java2d/pipe/AAShapePipe +sun/java2d/pipe/AlphaPaintPipe +sun/java2d/pipe/SpanShapeRenderer$Composite +sun/java2d/pipe/SpanShapeRenderer +sun/java2d/pipe/GeneralCompositePipe +sun/java2d/pipe/DrawImage +sun/java2d/loops/RenderCache +sun/java2d/loops/RenderCache$Entry +sun/awt/image/SunVolatileImage +sun/java2d/DestSurfaceProvider +java/awt/image/VolatileImage +java/awt/Image +java/awt/ImageCapabilities +java/awt/Image$1 +sun/awt/image/SurfaceManager$ImageAccessor +sun/awt/image/SurfaceManager +sun/awt/image/VolatileSurfaceManager +sun/awt/windows/WToolkit$2 +sun/java2d/windows/WindowsFlags +sun/java2d/windows/WindowsFlags$1 +sun/java2d/WindowsSurfaceManagerFactory +sun/java2d/SurfaceManagerFactory +sun/awt/SunDisplayChanger +sun/java2d/SunGraphicsEnvironment$1 +sun/misc/FloatingDecimal +sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +sun/misc/FloatingDecimal$BinaryToASCIIConverter +sun/misc/FloatingDecimal$BinaryToASCIIBuffer +sun/misc/FloatingDecimal$1 +sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +sun/misc/FloatingDecimal$ASCIIToBinaryConverter +sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +java/awt/Toolkit$2 +java/awt/Toolkit$DesktopPropertyChangeSupport +java/beans/PropertyChangeSupport +java/beans/PropertyChangeSupport$PropertyChangeListenerMap +java/beans/ChangeListenerMap +java/beans/PropertyChangeListener +sun/awt/SunToolkit$ModalityListenerList +sun/awt/ModalityListener +sun/misc/PerformanceLogger +sun/misc/PerformanceLogger$TimeData +sun/awt/windows/WToolkit$ToolkitDisposer +sun/java2d/DisposerRecord +sun/java2d/Disposer +sun/java2d/Disposer$1 +sun/misc/ThreadGroupUtils +sun/awt/AWTAutoShutdown +java/lang/invoke/DirectMethodHandle$Special +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/Shutdown +java/lang/Shutdown$Lock +java/awt/Rectangle +java/awt/Shape +java/awt/geom/Rectangle2D +java/awt/geom/RectangularShape +javax/swing/RepaintManager$ProcessingRunnable +com/sun/java/swing/SwingUtilities3 +javax/swing/UIManager +javax/swing/UIManager$LookAndFeelInfo +sun/awt/OSInfo +sun/awt/OSInfo$WindowsVersion +sun/awt/OSInfo$1 +sun/awt/OSInfo$OSType +sun/awt/HeadlessToolkit +sun/awt/windows/WDesktopProperties +sun/awt/windows/ThemeReader +java/util/concurrent/locks/ReentrantReadWriteLock +java/util/concurrent/locks/ReadWriteLock +sun/nio/ch/Interruptible +java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync +java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter +java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +java/awt/Color +java/awt/Paint +sun/awt/windows/WDesktopProperties$WinPlaySound +java/awt/RenderingHints +sun/awt/SunHints +sun/awt/SunHints$Key +java/awt/RenderingHints$Key +sun/awt/SunHints$Value +sun/awt/SunHints$LCDContrastKey +java/util/HashMap$KeySet +java/util/HashMap$KeyIterator +java/util/Arrays$LegacyMergeSort +java/util/ComparableTimSort +java/beans/PropertyChangeEvent +java/awt/Toolkit$DesktopPropertyChangeSupport$1 +java/util/IdentityHashMap$Values +java/util/IdentityHashMap$ValueIterator +java/util/IdentityHashMap$IdentityHashMapIterator +sun/swing/SwingUtilities2 +java/awt/font/FontRenderContext +sun/swing/StringUIClientPropertyKey +sun/swing/UIClientPropertyKey +sun/swing/SwingUtilities2$LSBCacheEntry +javax/swing/UIManager$LAFState +javax/swing/UIDefaults +javax/swing/MultiUIDefaults +javax/swing/UIManager$1 +javax/swing/plaf/metal/MetalLookAndFeel +javax/swing/plaf/basic/BasicLookAndFeel +javax/swing/LookAndFeel +sun/swing/DefaultLookup +javax/swing/plaf/metal/OceanTheme +javax/swing/plaf/metal/DefaultMetalTheme +javax/swing/plaf/metal/MetalTheme +javax/swing/plaf/ColorUIResource +javax/swing/plaf/UIResource +sun/swing/PrintColorUIResource +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +javax/swing/plaf/FontUIResource +sun/swing/SwingLazyValue +javax/swing/UIDefaults$LazyValue +javax/swing/UIDefaults$ActiveValue +javax/swing/plaf/InsetsUIResource +javax/swing/plaf/BorderUIResource$EmptyBorderUIResource +javax/swing/border/EmptyBorder +javax/swing/border/AbstractBorder +javax/swing/border/Border +sun/swing/SwingUtilities2$2 +javax/swing/plaf/basic/BasicLookAndFeel$2 +javax/swing/plaf/DimensionUIResource +javax/swing/UIDefaults$LazyInputMap +javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +sun/swing/SwingUtilities2$AATextInfo +javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +java/beans/PropertyChangeListenerProxy +java/util/EventListenerProxy +javax/swing/plaf/metal/OceanTheme$1 +javax/swing/plaf/metal/OceanTheme$2 +javax/swing/plaf/metal/OceanTheme$3 +javax/swing/plaf/metal/OceanTheme$4 +javax/swing/plaf/metal/OceanTheme$5 +javax/swing/plaf/metal/OceanTheme$6 +javax/swing/SwingPaintEventDispatcher +sun/awt/PaintEventDispatcher +java/awt/KeyboardFocusManager +java/awt/KeyEventDispatcher +java/awt/KeyEventPostProcessor +java/awt/KeyboardFocusManager$1 +sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +java/awt/AWTKeyStroke +java/awt/AWTKeyStroke$1 +java/awt/DefaultKeyboardFocusManager +java/awt/DefaultKeyboardFocusManager$1 +sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +java/awt/DefaultFocusTraversalPolicy +java/awt/ContainerOrderFocusTraversalPolicy +java/awt/FocusTraversalPolicy +java/util/Collections$UnmodifiableSet +sun/awt/windows/WKeyboardFocusManagerPeer +sun/awt/KeyboardFocusManagerPeerImpl +java/awt/peer/KeyboardFocusManagerPeer +javax/swing/UIManager$2 +javax/swing/JRootPane +javax/swing/UIDefaults$TextAndMnemonicHashMap +com/sun/swing/internal/plaf/metal/resources/metal +sun/util/ResourceBundleEnumeration +com/sun/swing/internal/plaf/basic/resources/basic +javax/swing/plaf/metal/MetalLabelUI +javax/swing/plaf/basic/BasicLabelUI +javax/swing/plaf/LabelUI +javax/swing/plaf/ComponentUI +sun/reflect/misc/MethodUtil +sun/reflect/misc/MethodUtil$1 +sun/net/www/protocol/jar/JarURLConnection +java/net/JarURLConnection +sun/net/www/protocol/jar/JarFileFactory +sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +java/net/HttpURLConnection +sun/net/www/protocol/jar/URLJarFile +sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry +sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream +java/lang/UnsupportedOperationException +java/lang/reflect/InvocationTargetException +javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +javax/swing/plaf/basic/BasicHTML +sun/awt/util/IdentityArrayList +java/awt/Window$Type +java/awt/Window$1 +sun/awt/AWTAccessor$WindowAccessor +java/awt/Frame$1 +sun/awt/AWTAccessor$FrameAccessor +java/awt/Cursor +java/awt/Point +java/awt/geom/Point2D +java/awt/Cursor$1 +sun/awt/AWTAccessor$CursorAccessor +java/awt/GraphicsDevice +sun/java2d/d3d/D3DGraphicsDevice +sun/awt/Win32GraphicsDevice +sun/misc/PerfCounter$WindowsClientCounters +sun/java2d/d3d/D3DRenderQueue +sun/java2d/pipe/RenderQueue +sun/java2d/pipe/RenderBuffer +sun/java2d/d3d/D3DRenderQueue$1 +sun/java2d/d3d/D3DGraphicsDevice$1Result +sun/java2d/d3d/D3DGraphicsDevice$1 +sun/java2d/d3d/D3DContext$D3DContextCaps +sun/java2d/pipe/hw/ContextCapabilities +sun/awt/Win32GraphicsConfig +sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +java/awt/GraphicsConfiguration +java/awt/BorderLayout +java/awt/LayoutManager2 +java/awt/Dialog$ModalExclusionType +java/awt/Window$WindowDisposerRecord +javax/swing/JPanel +java/awt/FlowLayout +javax/swing/plaf/basic/BasicPanelUI +javax/swing/plaf/PanelUI +java/awt/Component$BaselineResizeBehavior +sun/swing/SwingLazyValue$1 +javax/swing/JLayeredPane +javax/swing/JRootPane$1 +javax/swing/ArrayTable +javax/swing/JRootPane$RootLayout +javax/swing/BufferStrategyPaintManager +javax/swing/RepaintManager$PaintManager +javax/swing/FocusManager +javax/swing/LayoutFocusTraversalPolicy +javax/swing/SortingFocusTraversalPolicy +javax/swing/InternalFrameFocusTraversalPolicy +javax/swing/SwingContainerOrderFocusTraversalPolicy +javax/swing/SortingFocusTraversalPolicy$1 +java/util/Spliterator$OfLong +java/util/Spliterator$OfPrimitive +java/util/Spliterator +java/util/Spliterator$OfInt +java/util/Spliterator$OfDouble +java/util/stream/IntStream +java/util/stream/BaseStream +java/util/stream/Stream +java/util/stream/DoubleStream +java/util/stream/LongStream +java/util/function/BinaryOperator +java/util/function/BiFunction +java/util/function/DoubleBinaryOperator +java/util/function/IntBinaryOperator +java/util/function/LongBinaryOperator +java/util/function/IntToLongFunction +java/util/function/IntFunction +java/util/function/IntToDoubleFunction +java/util/function/IntUnaryOperator +javax/swing/SwingDefaultFocusTraversalPolicy +javax/swing/LayoutComparator +javax/swing/plaf/metal/MetalRootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI +javax/swing/plaf/RootPaneUI +javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap +javax/swing/plaf/ComponentInputMapUIResource +javax/swing/ComponentInputMap +javax/swing/InputMap +javax/swing/plaf/InputMapUIResource +javax/swing/KeyStroke +java/awt/VKCollection +java/awt/event/KeyEvent +java/awt/event/KeyEvent$1 +sun/awt/AWTAccessor$KeyEventAccessor +sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl +javax/swing/plaf/basic/LazyActionMap +javax/swing/plaf/ActionMapUIResource +javax/swing/ActionMap +sun/awt/windows/WFramePeer +java/awt/peer/FramePeer +java/awt/peer/WindowPeer +java/awt/peer/ContainerPeer +sun/awt/windows/WWindowPeer +sun/awt/windows/WPanelPeer +java/awt/peer/PanelPeer +sun/awt/windows/WCanvasPeer +java/awt/peer/CanvasPeer +sun/awt/windows/WWindowPeer$ActiveWindowListener +sun/awt/windows/WWindowPeer$GuiDisposedListener +sun/awt/RepaintArea +sun/awt/ExtendedKeyCodes +sun/awt/EmbeddedFrame +sun/awt/LightweightFrame +sun/awt/im/InputMethodWindow +sun/awt/windows/WComponentPeer$2 +javax/swing/RepaintManager$2 +java/awt/event/InvocationEvent +java/awt/ActiveEvent +java/awt/event/InvocationEvent$1 +sun/awt/AWTAccessor$InvocationEventAccessor +java/awt/EventQueue$5 +java/awt/EventDispatchThread +sun/awt/PeerEvent +java/awt/EventDispatchThread$1 +sun/awt/EventQueueItem +java/awt/Conditional +java/awt/EventDispatchThread$HierarchyEventFilter +java/awt/EventFilter +java/awt/event/WindowEvent +java/awt/ModalEventFilter +sun/awt/EventQueueDelegate +java/awt/event/PaintEvent +sun/java2d/ScreenUpdateManager +java/awt/event/MouseEvent +sun/java2d/d3d/D3DScreenUpdateManager +java/awt/EventFilter$FilterAction +sun/awt/dnd/SunDragSourceContextPeer +java/awt/dnd/peer/DragSourceContextPeer +java/awt/EventQueue$3 +java/awt/MenuComponent +java/awt/TrayIcon +java/awt/event/InputMethodEvent +sun/java2d/d3d/D3DGraphicsConfig +java/awt/event/ActionEvent +sun/java2d/pipe/hw/AccelGraphicsConfig +sun/java2d/pipe/hw/BufferedContextProvider +java/util/LinkedList$ListItr +sun/java2d/windows/GDIWindowSurfaceData +javax/swing/RepaintManager$2$1 +sun/java2d/loops/XORComposite +java/awt/Composite +sun/java2d/windows/GDIBlitLoops +sun/java2d/loops/Blit +sun/java2d/loops/GraphicsPrimitive +sun/java2d/loops/GraphicsPrimitiveMgr +sun/java2d/loops/CompositeType +sun/java2d/SunGraphics2D +sun/awt/ConstrainableGraphics +java/awt/Graphics2D +java/awt/AlphaComposite +java/awt/geom/Path2D +java/awt/geom/Path2D$Float +sun/java2d/loops/BlitBg +sun/java2d/loops/ScaledBlit +sun/java2d/loops/FillRect +sun/java2d/loops/FillSpans +sun/java2d/loops/FillParallelogram +sun/java2d/loops/DrawParallelogram +sun/java2d/loops/DrawLine +sun/java2d/loops/DrawRect +sun/java2d/loops/DrawPolygons +sun/java2d/loops/DrawPath +sun/java2d/loops/FillPath +sun/java2d/loops/MaskBlit +sun/java2d/loops/MaskFill +sun/java2d/loops/DrawGlyphList +sun/java2d/loops/DrawGlyphListAA +sun/java2d/loops/DrawGlyphListLCD +sun/java2d/loops/TransformHelper +java/awt/BasicStroke +java/awt/Stroke +sun/java2d/pipe/ValidatePipe +sun/java2d/loops/CustomComponent +sun/java2d/loops/GraphicsPrimitiveProxy +sun/java2d/loops/GeneralRenderer +sun/java2d/loops/GraphicsPrimitiveMgr$1 +sun/java2d/loops/GraphicsPrimitiveMgr$2 +sun/java2d/windows/GDIRenderer +sun/java2d/loops/RenderLoops +sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +java/util/TimSort +sun/java2d/DefaultDisposerRecord +sun/java2d/SurfaceDataProxy +sun/awt/image/SurfaceManager$FlushableCacheData +sun/java2d/SurfaceDataProxy$1 +sun/java2d/StateTracker +sun/java2d/StateTracker$1 +sun/java2d/StateTracker$2 +sun/awt/windows/WColor +sun/awt/windows/WFontPeer +sun/awt/PlatformFont +java/awt/peer/FontPeer +sun/awt/NativeLibLoader +sun/awt/NativeLibLoader$1 +sun/font/SunFontManager +sun/java2d/FontSupport +sun/font/FontManagerForSGE +sun/font/FontManager +sun/font/SunFontManager$TTFilter +java/io/FilenameFilter +sun/font/SunFontManager$T1Filter +sun/font/SunFontManager$1 +sun/font/FontManagerNativeLibrary +sun/font/FontManagerNativeLibrary$1 +sun/font/FontUtilities +sun/font/FontUtilities$1 +sun/font/TrueTypeFont +sun/font/FileFont +sun/font/PhysicalFont +sun/font/Font2D +sun/font/Type1Font +java/awt/geom/Point2D$Float +sun/font/StrikeMetrics +java/awt/geom/Rectangle2D$Float +java/awt/geom/GeneralPath +sun/font/CharToGlyphMapper +sun/font/PhysicalStrike +sun/font/FontStrike +sun/font/StrikeCache +sun/font/StrikeCache$1 +sun/font/GlyphList +sun/font/FontManagerFactory +sun/font/FontManagerFactory$1 +sun/awt/Win32FontManager +sun/awt/Win32FontManager$1 +sun/font/CompositeFont +sun/font/SunFontManager$2 +sun/font/SunFontManager$FontRegistrationInfo +sun/awt/windows/WFontConfiguration +sun/awt/FontConfiguration +sun/awt/FontDescriptor +java/io/DataInputStream +java/io/DataInput +sun/font/CompositeFontDescriptor +sun/font/Font2DHandle +sun/font/FontFamily +sun/font/SunFontManager$3 +sun/awt/Win32FontManager$2 +sun/awt/FontConfiguration$2 +sun/awt/windows/WingDings +sun/awt/windows/WingDings$Encoder +sun/awt/Symbol +sun/awt/Symbol$Encoder +sun/awt/im/InputMethodManager +sun/awt/im/ExecutableInputMethodManager +sun/awt/windows/WInputMethodDescriptor +java/awt/im/spi/InputMethodDescriptor +sun/awt/im/InputMethodLocator +sun/awt/im/ExecutableInputMethodManager$3 +java/awt/peer/LightweightPeer +sun/awt/NullComponentPeer +java/awt/EventQueue$4 +java/awt/SplashScreen +sun/awt/dnd/SunDropTargetEvent +java/awt/Dialog +java/awt/event/FocusEvent +java/util/concurrent/locks/LockSupport +java/awt/Dialog$ModalityType +sun/awt/TimedWindowEvent +java/awt/SequencedEvent +java/awt/SequencedEvent$1 +sun/awt/AWTAccessor$SequencedEventAccessor +java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent +java/awt/SentEvent +sun/awt/windows/WGlobalCursorManager +sun/awt/event/IgnorePaintEvent +sun/awt/GlobalCursorManager +sun/awt/GlobalCursorManager$NativeUpdater +java/util/ArrayList$ListItr +sun/awt/CausedFocusEvent$Cause +java/awt/KeyboardFocusManager$HeavyweightFocusRequest +java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +java/awt/KeyboardFocusManager$LightweightFocusRequest +sun/awt/CausedFocusEvent +java/util/IdentityHashMap$KeySet +java/util/IdentityHashMap$KeyIterator +javax/swing/RepaintManager$4 +sun/java2d/d3d/D3DSurfaceData$D3DWindowSurfaceData +sun/java2d/d3d/D3DSurfaceData +sun/java2d/pipe/hw/AccelSurface +java/awt/GraphicsCallback$PaintCallback +java/awt/GraphicsCallback +sun/awt/SunGraphicsCallback +javax/swing/BufferStrategyPaintManager$BufferInfo +java/awt/event/WindowListener +java/awt/event/ComponentAdapter +java/awt/event/ComponentListener +java/awt/AWTEventMulticaster +java/awt/event/ContainerListener +java/awt/event/FocusListener +java/awt/event/KeyListener +java/awt/event/MouseListener +java/awt/event/MouseMotionListener +java/awt/event/WindowFocusListener +java/awt/event/WindowStateListener +java/awt/event/ActionListener +java/awt/event/ItemListener +java/awt/event/AdjustmentListener +java/awt/event/TextListener +java/awt/event/InputMethodListener +java/awt/event/HierarchyListener +java/awt/event/HierarchyBoundsListener +java/awt/event/MouseWheelListener +java/awt/BufferCapabilities +java/awt/Component$BltSubRegionBufferStrategy +sun/awt/SubRegionShowable +java/awt/Component$BltBufferStrategy +java/awt/image/BufferStrategy +sun/awt/image/BufferedImageGraphicsConfig +sun/print/PrinterGraphicsConfig +sun/java2d/opengl/WGLGraphicsConfig +sun/java2d/opengl/OGLGraphicsConfig +sun/awt/image/BufImgVolatileSurfaceManager +java/awt/image/Raster +java/awt/image/DataBufferInt +java/awt/image/DataBuffer +java/awt/image/DataBuffer$1 +sun/awt/image/SunWritableRaster$DataStealer +sun/awt/image/SunWritableRaster +java/awt/image/WritableRaster +java/awt/image/SinglePixelPackedSampleModel +java/awt/image/SampleModel +sun/awt/image/IntegerInterleavedRaster +sun/awt/image/IntegerComponentRaster +sun/awt/image/NativeLibLoader +sun/awt/image/NativeLibLoader$1 +java/awt/image/BufferedImage +java/awt/image/WritableRenderedImage +java/awt/image/RenderedImage +java/awt/image/BufferedImage$1 +sun/awt/image/BufImgSurfaceData +sun/awt/image/BufImgSurfaceData$ICMColorData +sun/font/FontDesignMetrics +java/awt/FontMetrics +sun/font/FontDesignMetrics$MetricsKey +sun/font/FontStrikeDesc +sun/font/CompositeStrike +sun/font/FontStrikeDisposer +sun/java2d/Disposer$PollDisposable +sun/font/StrikeCache$SoftDisposerRef +sun/font/StrikeCache$DisposableStrike +sun/font/TrueTypeFont$TTDisposerRecord +sun/font/TrueTypeFont$1 +java/io/RandomAccessFile +java/io/DataOutput +sun/nio/ch/FileChannelImpl +java/nio/channels/FileChannel +java/nio/channels/SeekableByteChannel +java/nio/channels/ByteChannel +java/nio/channels/ReadableByteChannel +java/nio/channels/Channel +java/nio/channels/WritableByteChannel +java/nio/channels/GatheringByteChannel +java/nio/channels/ScatteringByteChannel +java/nio/channels/spi/AbstractInterruptibleChannel +java/nio/channels/InterruptibleChannel +java/nio/file/attribute/FileAttribute +sun/nio/ch/IOUtil +sun/nio/ch/IOUtil$1 +sun/nio/ch/NativeThreadSet +sun/nio/ch/FileDispatcherImpl +sun/nio/ch/FileDispatcher +sun/nio/ch/NativeDispatcher +sun/nio/ch/FileDispatcherImpl$1 +java/nio/channels/spi/AbstractInterruptibleChannel$1 +sun/nio/ch/NativeThread +sun/nio/ch/IOStatus +sun/nio/ch/Util +sun/nio/ch/Util$1 +sun/nio/ch/Util$BufferCache +java/nio/DirectByteBuffer$Deallocator +java/nio/ByteBufferAsIntBufferB +java/nio/IntBuffer +sun/font/TrueTypeFont$DirectoryEntry +java/nio/ByteBufferAsShortBufferB +java/nio/ShortBuffer +sun/nio/cs/UTF_16$Decoder +sun/nio/cs/UnicodeDecoder +sun/font/FileFontStrike +sun/font/FontScaler +sun/font/T2KFontScaler +sun/font/T2KFontScaler$1 +sun/font/TrueTypeGlyphMapper +sun/font/CMap +sun/font/CMap$NullCMapClass +sun/font/CMap$CMapFormat4 +java/nio/ByteBufferAsCharBufferB +sun/font/FontDesignMetrics$KeyReference +sun/font/CompositeGlyphMapper +java/awt/print/PrinterGraphics +java/awt/PrintGraphics +sun/java2d/loops/FontInfo +java/util/jar/Attributes +java/util/jar/Manifest$FastInputStream +sun/nio/cs/UTF_8$Decoder +java/util/jar/Attributes$Name +sun/misc/ASCIICaseInsensitiveComparator +java/util/jar/JarVerifier +java/security/CodeSigner +java/util/jar/JarVerifier$3 +java/io/ByteArrayOutputStream +java/lang/Package +sun/security/util/SignatureFileVerifier +sun/security/util/ManifestEntryVerifier +java/util/MissingResourceException +java/io/StringWriter +javax/swing/JDialog +javax/swing/text/JTextComponent +javax/swing/Scrollable +javax/swing/JTextArea +javax/swing/JScrollPane +javax/swing/ScrollPaneConstants +javax/swing/AbstractButton +java/awt/ItemSelectable +javax/swing/JButton +java/lang/SecurityException +javax/swing/JWindow +java/lang/NumberFormatException +java/io/UnsupportedEncodingException +sun/misc/URLClassPath$FileLoader +java/lang/IndexOutOfBoundsException +java/lang/CloneNotSupportedException +java/lang/InternalError +java/net/UnknownHostException +java/net/Socket +java/net/SocketAddress +java/nio/channels/SocketChannel +java/nio/channels/NetworkChannel +java/nio/channels/spi/AbstractSelectableChannel +java/nio/channels/SelectableChannel +java/net/InetAddress +java/net/SocketException +java/net/SocketImplFactory +java/net/InetSocketAddress +java/net/InetSocketAddress$InetSocketAddressHolder +java/net/Proxy +java/net/SocketImpl +java/net/SocketOptions +java/net/SocksSocketImpl +java/net/SocksConsts +java/net/PlainSocketImpl +java/net/AbstractPlainSocketImpl +java/net/AbstractPlainSocketImpl$1 +java/net/PlainSocketImpl$1 +java/net/DualStackPlainSocketImpl +java/net/InetAddress$1 +java/net/InetAddress$InetAddressHolder +java/net/InetAddress$Cache +java/net/InetAddress$Cache$Type +java/net/InetAddressImplFactory +java/net/Inet6AddressImpl +java/net/InetAddressImpl +java/net/InetAddress$2 +sun/net/spi/nameservice/NameService +sun/net/util/IPAddressUtil +java/net/Inet4Address +java/net/SocksSocketImpl$3 +java/net/ProxySelector +sun/net/spi/DefaultProxySelector +sun/net/spi/DefaultProxySelector$1 +sun/net/NetProperties +sun/net/NetProperties$1 +java/net/Inet6Address +java/net/URI +java/net/URI$Parser +sun/net/spi/DefaultProxySelector$NonProxyInfo +sun/net/spi/DefaultProxySelector$3 +java/net/Proxy$Type +sun/net/NetHooks +java/net/Inet6Address$Inet6AddressHolder +java/net/SocketTimeoutException +java/io/InterruptedIOException +javax/swing/UnsupportedLookAndFeelException +java/net/MalformedURLException +java/lang/UnsatisfiedLinkError +sun/misc/FDBigInteger +java/util/ResourceBundle$Control$1 +java/net/URLClassLoader$2 +java/util/PropertyResourceBundle +java/util/ResourceBundle$BundleReference +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/Logger +java/util/logging/Handler +java/util/logging/Logger$LoggerBundle +java/util/concurrent/CopyOnWriteArrayList +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LogNode +java/util/logging/LoggingPermission +java/util/logging/LogManager$Cleaner +java/util/logging/LogManager$2 +java/util/logging/LogManager$3 +java/util/logging/LogManager$LoggerWeakRef +java/util/logging/LogManager$LoggerContext$1 +java/util/logging/LogManager$RootLogger +java/util/logging/LogManager$5 +java/util/logging/Logger$1 +sun/util/logging/resources/logging +javax/swing/Box +javax/swing/Box$Filler +javax/swing/Icon +javax/swing/BoxLayout +javax/swing/plaf/basic/BasicPopupMenuUI +javax/swing/plaf/PopupMenuUI +javax/swing/ImageIcon +javax/swing/ImageIcon$1 +javax/swing/ImageIcon$2 +javax/swing/ImageIcon$2$1 +java/awt/dnd/DropTarget +java/awt/dnd/DropTargetListener +javax/accessibility/AccessibleContext +sun/reflect/UnsafeObjectFieldAccessorImpl +java/awt/MediaTracker +sun/misc/SoftCache$ValueCell +sun/awt/image/URLImageSource +sun/awt/image/InputStreamImageSource +java/awt/image/ImageProducer +sun/awt/image/ImageFetchable +sun/awt/image/ToolkitImage +javax/swing/ImageIcon$3 +java/awt/ImageMediaEntry +java/awt/MediaEntry +sun/awt/image/MultiResolutionToolkitImage +sun/awt/image/MultiResolutionImage +sun/awt/image/ImageRepresentation +java/awt/image/ImageConsumer +sun/awt/image/ImageWatched +sun/awt/image/ImageWatched$Link +sun/awt/image/ImageWatched$WeakLink +sun/awt/image/ImageConsumerQueue +sun/awt/image/ImageFetcher +sun/awt/image/FetcherInfo +sun/awt/image/ImageFetcher$1 +sun/net/ProgressMonitor +sun/net/DefaultProgressMeteringPolicy +sun/net/ProgressMeteringPolicy +sun/net/www/MimeTable +java/net/FileNameMap +sun/net/www/MimeTable$1 +sun/net/www/MimeTable$DefaultInstanceHolder +sun/net/www/MimeTable$DefaultInstanceHolder$1 +sun/net/www/MimeEntry +java/net/URLConnection$1 +java/text/SimpleDateFormat +java/text/DateFormat +java/text/Format +java/text/DateFormat$Field +java/text/Format$Field +java/util/TimeZone +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/calendar/ZoneInfoFile$Checksum +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/TimeZone$1 +java/util/Calendar +sun/util/spi/CalendarProvider +java/util/spi/LocaleServiceProvider +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/provider/SPILocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter +sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/locale/provider/CalendarProviderImpl +sun/util/locale/provider/AvailableLanguageTags +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/provider/JRELocaleProviderAdapter$1 +java/util/Calendar$Builder +java/util/GregorianCalendar +sun/util/locale/provider/CalendarDataUtility +java/util/spi/CalendarDataProvider +sun/util/locale/provider/LocaleServiceProviderPool +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/TimeZoneNameProvider +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/locale/provider/SPILocaleProviderAdapter$1 +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +sun/util/locale/provider/LocaleResources +sun/util/resources/LocaleData +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataResourceBundleControl +sun/util/locale/LanguageTag +java/util/Collections$EmptyIterator +sun/util/resources/CalendarData +sun/util/resources/LocaleNamesBundle +sun/util/resources/OpenListResourceBundle +sun/util/resources/en/CalendarData_en +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/calendar/Gregorian$Date +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarUtils +java/text/DateFormatSymbols +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/text/resources/FormatData +sun/util/resources/ParallelListResourceBundle +java/util/concurrent/atomic/AtomicMarkableReference +java/util/concurrent/atomic/AtomicMarkableReference$Pair +sun/text/resources/en/FormatData_en +sun/text/resources/en/FormatData_en_US +sun/util/resources/ParallelListResourceBundle$KeySet +java/text/NumberFormat +sun/util/locale/provider/NumberFormatProviderImpl +java/text/DecimalFormatSymbols +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +java/util/Currency +java/util/Currency$1 +sun/util/locale/provider/CurrencyNameProviderImpl +java/util/Currency$CurrencyNameGetter +sun/util/resources/CurrencyNames +sun/util/resources/en/CurrencyNames_en_US +java/text/DecimalFormat +java/text/FieldPosition +java/text/DigitList +java/math/RoundingMode +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/Format$FieldDelegate +sun/awt/image/GifImageDecoder +sun/awt/image/ImageDecoder +sun/awt/image/GifFrame +java/awt/image/DataBufferByte +java/awt/image/PixelInterleavedSampleModel +java/awt/image/ComponentSampleModel +sun/awt/image/ByteInterleavedRaster +sun/awt/image/ByteComponentRaster +sun/awt/image/BytePackedRaster +javax/swing/plaf/BorderUIResource +javax/swing/BorderFactory +javax/swing/border/BevelBorder +javax/swing/border/EtchedBorder +javax/swing/plaf/metal/MetalIconFactory +javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon +javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 +java/lang/ClassLoaderHelper +java/util/zip/ZipInputStream +java/io/PushbackInputStream +java/util/zip/ZipUtils +java/io/RandomAccessFile$1 +java/lang/Thread$State +javax/swing/SwingUtilities$SharedOwnerFrame +javax/swing/border/LineBorder +javax/swing/Popup$HeavyWeightWindow +sun/awt/ModalExclude +javax/swing/SizeRequirements +com/sun/java/swing/plaf/windows/WindowsPopupWindow +java/applet/Applet +java/awt/Panel +javax/swing/JRadioButton +javax/swing/JToggleButton +java/lang/ClassFormatError +sun/awt/image/BufImgSurfaceManager +java/awt/geom/RectIterator +java/awt/geom/PathIterator +javax/swing/CellRendererPane +javax/swing/RepaintManager$3 +java/io/ObjectInputStream +java/io/ObjectInput +java/io/ObjectStreamConstants +javax/swing/JTabbedPane +javax/swing/event/MenuListener +javax/swing/event/ChangeListener +javax/swing/DefaultSingleSelectionModel +javax/swing/SingleSelectionModel +javax/swing/JTabbedPane$ModelListener +javax/swing/plaf/metal/MetalTabbedPaneUI +javax/swing/plaf/basic/BasicTabbedPaneUI +javax/swing/plaf/TabbedPaneUI +javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout +javax/swing/plaf/basic/BasicTabbedPaneUI$Handler +sun/reflect/MethodAccessorGenerator +sun/reflect/AccessorGenerator +sun/reflect/ClassFileConstants +sun/reflect/ByteVectorFactory +sun/reflect/ByteVectorImpl +sun/reflect/ByteVector +sun/reflect/ClassFileAssembler +sun/reflect/UTF8 +sun/reflect/Label +sun/reflect/Label$PatchInfo +sun/reflect/MethodAccessorGenerator$1 +sun/reflect/ClassDefiner +sun/reflect/ClassDefiner$1 +sun/reflect/BootstrapConstructorAccessorImpl +javax/swing/JTextField +javax/swing/JViewport +java/awt/CardLayout +javax/swing/text/Document +javax/swing/text/JTextComponent$1 +sun/swing/SwingAccessor$JTextComponentAccessor +javax/swing/text/JTextComponent$4 +com/sun/beans/util/Cache +com/sun/beans/util/Cache$Kind +com/sun/beans/util/Cache$Kind$1 +com/sun/beans/util/Cache$Kind$2 +com/sun/beans/util/Cache$Kind$3 +com/sun/beans/util/Cache$CacheEntry +javax/swing/Action +javax/swing/JTextField$NotifyAction +javax/swing/text/TextAction +javax/swing/AbstractAction +java/lang/ArrayIndexOutOfBoundsException +javax/swing/DropMode +javax/swing/text/JTextComponent$MutableCaretEvent +javax/swing/event/CaretEvent +javax/swing/plaf/metal/MetalTextFieldUI +javax/swing/plaf/basic/BasicTextFieldUI +javax/swing/plaf/basic/BasicTextUI +javax/swing/text/ViewFactory +javax/swing/plaf/TextUI +javax/swing/plaf/basic/BasicTextUI$BasicCursor +javax/swing/text/DefaultEditorKit +javax/swing/text/EditorKit +javax/swing/text/DefaultEditorKit$InsertContentAction +javax/swing/text/DefaultEditorKit$DeletePrevCharAction +javax/swing/text/DefaultEditorKit$DeleteNextCharAction +javax/swing/text/DefaultEditorKit$ReadOnlyAction +javax/swing/text/DefaultEditorKit$DeleteWordAction +javax/swing/text/DefaultEditorKit$WritableAction +javax/swing/text/DefaultEditorKit$CutAction +javax/swing/text/DefaultEditorKit$CopyAction +javax/swing/text/DefaultEditorKit$PasteAction +javax/swing/text/DefaultEditorKit$VerticalPageAction +javax/swing/text/DefaultEditorKit$PageAction +javax/swing/text/DefaultEditorKit$InsertBreakAction +javax/swing/text/DefaultEditorKit$BeepAction +javax/swing/text/DefaultEditorKit$NextVisualPositionAction +javax/swing/text/DefaultEditorKit$BeginWordAction +javax/swing/text/DefaultEditorKit$EndWordAction +javax/swing/text/DefaultEditorKit$PreviousWordAction +javax/swing/text/DefaultEditorKit$NextWordAction +javax/swing/text/DefaultEditorKit$BeginLineAction +javax/swing/text/DefaultEditorKit$EndLineAction +javax/swing/text/DefaultEditorKit$BeginParagraphAction +javax/swing/text/DefaultEditorKit$EndParagraphAction +javax/swing/text/DefaultEditorKit$BeginAction +javax/swing/text/DefaultEditorKit$EndAction +javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction +javax/swing/text/DefaultEditorKit$InsertTabAction +javax/swing/text/DefaultEditorKit$SelectWordAction +javax/swing/text/DefaultEditorKit$SelectLineAction +javax/swing/text/DefaultEditorKit$SelectParagraphAction +javax/swing/text/DefaultEditorKit$SelectAllAction +javax/swing/text/DefaultEditorKit$UnselectAction +javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction +javax/swing/text/DefaultEditorKit$DumpModelAction +javax/swing/plaf/basic/BasicTextUI$TextTransferHandler +javax/swing/TransferHandler +javax/swing/TransferHandler$TransferAction +sun/swing/UIAction +javax/swing/text/Position$Bias +javax/swing/plaf/basic/BasicTextUI$RootView +javax/swing/text/View +javax/swing/plaf/basic/BasicTextUI$UpdateHandler +javax/swing/event/DocumentListener +javax/swing/plaf/basic/BasicTextUI$DragListener +javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag +javax/swing/event/MouseInputAdapter +javax/swing/event/MouseInputListener +java/awt/event/MouseAdapter +javax/swing/plaf/metal/MetalBorders +javax/swing/plaf/BorderUIResource$CompoundBorderUIResource +javax/swing/border/CompoundBorder +javax/swing/plaf/metal/MetalBorders$TextFieldBorder +javax/swing/plaf/metal/MetalBorders$Flush3DBorder +javax/swing/plaf/basic/BasicBorders$MarginBorder +javax/swing/plaf/basic/BasicTextUI$BasicCaret +javax/swing/text/DefaultCaret +javax/swing/text/Caret +javax/swing/text/DefaultCaret$Handler +java/awt/datatransfer/ClipboardOwner +javax/swing/Timer +javax/swing/Timer$DoPostEvent +javax/swing/plaf/basic/BasicTextUI$BasicHighlighter +javax/swing/text/DefaultHighlighter +javax/swing/text/LayeredHighlighter +javax/swing/text/Highlighter +javax/swing/text/Highlighter$Highlight +javax/swing/text/DefaultHighlighter$DefaultHighlightPainter +javax/swing/text/LayeredHighlighter$LayerPainter +javax/swing/text/Highlighter$HighlightPainter +javax/swing/text/DefaultHighlighter$SafeDamager +javax/swing/ClientPropertyKey +javax/swing/ClientPropertyKey$1 +sun/awt/AWTAccessor$ClientPropertyKeyAccessor +javax/swing/TransferHandler$SwingDropTarget +java/awt/dnd/DropTargetContext +java/awt/datatransfer/SystemFlavorMap +java/awt/datatransfer/FlavorMap +java/awt/datatransfer/FlavorTable +java/awt/datatransfer/SystemFlavorMap$SoftCache +javax/swing/TransferHandler$DropHandler +javax/swing/TransferHandler$TransferSupport +javax/swing/text/PlainDocument +javax/swing/text/AbstractDocument +javax/swing/text/GapContent +javax/swing/text/AbstractDocument$Content +javax/swing/text/GapVector +javax/swing/text/GapContent$MarkVector +javax/swing/text/GapContent$MarkData +javax/swing/text/StyleContext +javax/swing/text/AbstractDocument$AttributeContext +javax/swing/text/StyleConstants +javax/swing/text/StyleConstants$CharacterConstants +javax/swing/text/AttributeSet$CharacterAttribute +javax/swing/text/StyleConstants$FontConstants +javax/swing/text/AttributeSet$FontAttribute +javax/swing/text/StyleConstants$ColorConstants +javax/swing/text/AttributeSet$ColorAttribute +javax/swing/text/StyleConstants$ParagraphConstants +javax/swing/text/AttributeSet$ParagraphAttribute +javax/swing/text/StyleContext$FontKey +javax/swing/text/SimpleAttributeSet +javax/swing/text/MutableAttributeSet +javax/swing/text/AttributeSet +javax/swing/text/SimpleAttributeSet$EmptyAttributeSet +javax/swing/text/StyleContext$NamedStyle +javax/swing/text/Style +java/util/Collections$EmptyEnumeration +javax/swing/text/StyleContext$SmallAttributeSet +java/util/LinkedHashMap$LinkedKeySet +java/util/Collections$3 +java/util/LinkedHashMap$LinkedKeyIterator +javax/swing/text/AbstractDocument$BidiRootElement +javax/swing/text/AbstractDocument$BranchElement +javax/swing/text/AbstractDocument$AbstractElement +javax/swing/text/Element +javax/swing/tree/TreeNode +javax/swing/text/AbstractDocument$1 +javax/swing/text/AbstractDocument$BidiElement +javax/swing/text/AbstractDocument$LeafElement +javax/swing/text/GapContent$StickyPosition +javax/swing/text/Position +javax/swing/text/StyleContext$KeyEnumeration +javax/swing/text/FieldView +javax/swing/text/PlainView +javax/swing/text/TabExpander +javax/swing/text/JTextComponent$DefaultKeymap +javax/swing/text/Keymap +javax/swing/text/JTextComponent$KeymapWrapper +javax/swing/text/JTextComponent$KeymapActionMap +javax/swing/plaf/basic/BasicTextUI$FocusAction +javax/swing/plaf/basic/BasicTextUI$TextActionWrapper +javax/swing/plaf/synth/SynthUI +javax/swing/plaf/synth/SynthConstants +javax/swing/JEditorPane +javax/swing/DefaultBoundedRangeModel +javax/swing/BoundedRangeModel +javax/swing/JTextField$ScrollRepainter +javax/swing/DefaultButtonModel +javax/swing/ButtonModel +javax/swing/AbstractButton$Handler +javax/swing/plaf/basic/BasicButtonUI +javax/swing/plaf/ButtonUI +javax/swing/plaf/metal/MetalBorders$ButtonBorder +javax/swing/plaf/basic/BasicButtonListener +javax/swing/event/AncestorListener +java/beans/VetoableChangeListener +javax/swing/plaf/metal/MetalComboBoxButton +javax/swing/plaf/basic/BasicArrowButton +javax/swing/plaf/metal/MetalScrollButton +sun/swing/ImageIconUIResource +javax/swing/GrayFilter +java/awt/image/RGBImageFilter +java/awt/image/ImageFilter +java/awt/image/FilteredImageSource +javax/swing/plaf/basic/BasicGraphicsUtils +javax/swing/ButtonGroup +org/xml/sax/SAXException +javax/xml/parsers/ParserConfigurationException +org/xml/sax/EntityResolver +org/w3c/dom/Node +java/io/StringReader +java/security/NoSuchAlgorithmException +java/security/GeneralSecurityException +java/util/zip/DeflaterOutputStream +java/util/zip/GZIPInputStream +org/xml/sax/InputSource +javax/xml/parsers/DocumentBuilderFactory +javax/xml/parsers/FactoryFinder +javax/xml/parsers/SecuritySupport +javax/xml/parsers/SecuritySupport$2 +javax/xml/parsers/SecuritySupport$5 +javax/xml/parsers/FactoryFinder$1 +javax/xml/parsers/DocumentBuilder +org/w3c/dom/Document +org/xml/sax/helpers/DefaultHandler +org/xml/sax/DTDHandler +org/xml/sax/ContentHandler +org/xml/sax/ErrorHandler +org/xml/sax/SAXNotSupportedException +org/xml/sax/Locator +org/xml/sax/SAXNotRecognizedException +org/xml/sax/SAXParseException +org/w3c/dom/NodeList +org/w3c/dom/events/EventTarget +org/w3c/dom/traversal/DocumentTraversal +org/w3c/dom/events/DocumentEvent +org/w3c/dom/ranges/DocumentRange +org/w3c/dom/Entity +org/w3c/dom/Element +org/w3c/dom/CharacterData +org/w3c/dom/CDATASection +org/w3c/dom/Text +org/xml/sax/AttributeList +org/w3c/dom/DOMException +org/w3c/dom/DocumentType +org/w3c/dom/Notation +org/w3c/dom/Attr +org/w3c/dom/EntityReference +org/w3c/dom/ProcessingInstruction +org/w3c/dom/Comment +org/w3c/dom/DocumentFragment +org/w3c/dom/traversal/TreeWalker +org/w3c/dom/ranges/Range +org/w3c/dom/events/Event +org/w3c/dom/events/MutationEvent +org/w3c/dom/traversal/NodeIterator +org/w3c/dom/events/EventException +java/lang/StringIndexOutOfBoundsException +org/w3c/dom/NamedNodeMap +java/awt/GridLayout +javax/swing/JToggleButton$ToggleButtonModel +javax/swing/plaf/metal/MetalRadioButtonUI +javax/swing/plaf/basic/BasicRadioButtonUI +javax/swing/plaf/basic/BasicToggleButtonUI +javax/swing/plaf/basic/BasicBorders +javax/swing/plaf/basic/BasicBorders$RadioButtonBorder +javax/swing/plaf/basic/BasicBorders$ButtonBorder +javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +javax/swing/plaf/basic/BasicRadioButtonUI$KeyHandler +javax/swing/plaf/basic/BasicRadioButtonUI$SelectPreviousBtn +javax/swing/plaf/basic/BasicRadioButtonUI$SelectNextBtn +javax/swing/event/ChangeEvent +java/awt/event/ItemEvent +javax/swing/ToolTipManager +javax/swing/ToolTipManager$insideTimerAction +javax/swing/ToolTipManager$outsideTimerAction +javax/swing/ToolTipManager$stillInsideTimerAction +javax/swing/ToolTipManager$MoveBeforeEnterListener +java/awt/event/MouseMotionAdapter +javax/swing/ToolTipManager$AccessibilityKeyListener +java/awt/event/KeyAdapter +java/awt/CardLayout$Card +javax/swing/JComboBox +javax/swing/event/ListDataListener +javax/swing/JCheckBox +javax/swing/JPopupMenu +javax/swing/MenuElement +javax/swing/DefaultComboBoxModel +javax/swing/MutableComboBoxModel +javax/swing/ComboBoxModel +javax/swing/ListModel +javax/swing/AbstractListModel +javax/swing/JComboBox$1 +javax/swing/AncestorNotifier +javax/swing/plaf/metal/MetalComboBoxUI +javax/swing/plaf/basic/BasicComboBoxUI +javax/swing/plaf/ComboBoxUI +javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager +javax/swing/plaf/basic/BasicComboPopup +javax/swing/plaf/basic/ComboPopup +javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass +javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +java/awt/event/AWTEventListenerProxy +java/awt/Toolkit$SelectiveAWTEventListener +java/awt/Toolkit$ToolkitEventMulticaster +javax/swing/plaf/basic/BasicLookAndFeel$1 +javax/swing/plaf/basic/DefaultMenuLayout +javax/swing/plaf/metal/MetalBorders$PopupMenuBorder +javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +javax/swing/event/PopupMenuListener +javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +javax/swing/event/MenuKeyListener +javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +javax/swing/MenuSelectionManager +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 +java/awt/event/FocusAdapter +javax/swing/plaf/basic/BasicComboPopup$1 +javax/swing/JList +javax/swing/DefaultListSelectionModel +javax/swing/ListSelectionModel +javax/swing/plaf/basic/BasicListUI +javax/swing/plaf/ListUI +javax/swing/plaf/basic/BasicListUI$ListTransferHandler +javax/swing/DefaultListCellRenderer$UIResource +javax/swing/DefaultListCellRenderer +javax/swing/ListCellRenderer +javax/swing/plaf/basic/BasicListUI$Handler +javax/swing/event/ListSelectionListener +javax/swing/JMenu +javax/swing/JMenuItem +javax/swing/event/ListSelectionEvent +javax/swing/plaf/basic/BasicComboPopup$Handler +javax/swing/ScrollPaneLayout$UIResource +javax/swing/ScrollPaneLayout +javax/swing/ViewportLayout +javax/swing/plaf/basic/BasicViewportUI +javax/swing/plaf/ViewportUI +javax/swing/JScrollPane$ScrollBar +javax/swing/JScrollBar +java/awt/Adjustable +javax/swing/JScrollBar$ModelListener +javax/swing/plaf/metal/MetalScrollBarUI +javax/swing/plaf/basic/BasicScrollBarUI +javax/swing/plaf/ScrollBarUI +javax/swing/plaf/metal/MetalBumps +javax/swing/plaf/basic/BasicScrollBarUI$TrackListener +javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener +javax/swing/plaf/basic/BasicScrollBarUI$ModelListener +javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener +javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicScrollBarUI$Handler +javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener +javax/swing/JViewport$ViewListener +javax/swing/plaf/metal/MetalScrollPaneUI +javax/swing/plaf/basic/BasicScrollPaneUI +javax/swing/plaf/ScrollPaneUI +javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder +javax/swing/plaf/basic/BasicScrollPaneUI$Handler +javax/swing/plaf/metal/MetalScrollPaneUI$1 +javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource +javax/swing/plaf/basic/BasicComboBoxRenderer +javax/swing/plaf/metal/MetalComboBoxEditor$UIResource +javax/swing/plaf/metal/MetalComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor +javax/swing/ComboBoxEditor +javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField +javax/swing/plaf/basic/BasicComboBoxEditor$UIResource +javax/swing/text/Segment +java/text/CharacterIterator +javax/swing/plaf/metal/MetalComboBoxEditor$1 +javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder +javax/swing/JToolBar +javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener +javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler +javax/swing/plaf/basic/BasicComboBoxUI$Handler +javax/swing/plaf/metal/MetalComboBoxIcon +javax/swing/plaf/metal/MetalComboBoxButton$1 +javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager +javax/swing/JComboBox$KeySelectionManager +javax/swing/plaf/metal/MetalCheckBoxUI +javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +java/lang/ExceptionInInitializerError +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI +javax/swing/JProgressBar +javax/swing/JProgressBar$ModelListener +javax/swing/plaf/metal/MetalProgressBarUI +javax/swing/plaf/basic/BasicProgressBarUI +javax/swing/plaf/ProgressBarUI +javax/swing/plaf/BorderUIResource$LineBorderUIResource +javax/swing/plaf/basic/BasicProgressBarUI$Handler +javax/swing/JTable +javax/swing/event/TableModelListener +javax/swing/event/TableColumnModelListener +javax/swing/event/CellEditorListener +javax/swing/event/RowSorterListener +javax/swing/tree/TreeModel +javax/swing/table/TableCellRenderer +javax/swing/table/JTableHeader +javax/swing/event/TreeExpansionListener +javax/swing/table/AbstractTableModel +javax/swing/table/TableModel +javax/swing/table/DefaultTableCellRenderer +javax/swing/JCheckBoxMenuItem +javax/swing/JTree +javax/swing/tree/TreeSelectionModel +javax/swing/tree/DefaultTreeCellRenderer +javax/swing/tree/TreeCellRenderer +javax/swing/table/TableCellEditor +javax/swing/CellEditor +javax/swing/JToolTip +javax/swing/table/TableColumn +javax/swing/table/DefaultTableColumnModel +javax/swing/table/TableColumnModel +javax/swing/table/DefaultTableModel +javax/swing/event/TableModelEvent +sun/swing/table/DefaultTableCellHeaderRenderer +sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon +javax/swing/plaf/basic/BasicTableHeaderUI +javax/swing/plaf/TableHeaderUI +javax/swing/plaf/basic/BasicTableHeaderUI$1 +javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler +javax/swing/DefaultCellEditor +javax/swing/tree/TreeCellEditor +javax/swing/AbstractCellEditor +javax/swing/plaf/basic/BasicTableUI +javax/swing/plaf/TableUI +javax/swing/plaf/basic/BasicTableUI$TableTransferHandler +javax/swing/plaf/basic/BasicTableUI$Handler +javax/swing/tree/DefaultTreeSelectionModel +javax/swing/tree/TreePath +javax/swing/plaf/metal/MetalTreeUI +javax/swing/plaf/basic/BasicTreeUI +javax/swing/plaf/TreeUI +javax/swing/plaf/basic/BasicTreeUI$Actions +javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler +javax/swing/plaf/metal/MetalTreeUI$LineListener +javax/swing/plaf/basic/BasicTreeUI$Handler +javax/swing/event/TreeModelListener +javax/swing/event/TreeSelectionListener +javax/swing/event/SwingPropertyChangeSupport +javax/swing/tree/VariableHeightLayoutCache +javax/swing/tree/AbstractLayoutCache +javax/swing/tree/RowMapper +javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler +javax/swing/tree/AbstractLayoutCache$NodeDimensions +javax/swing/JTree$TreeModelHandler +javax/swing/tree/VariableHeightLayoutCache$TreeStateNode +javax/swing/tree/DefaultMutableTreeNode +javax/swing/tree/MutableTreeNode +javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration +java/util/Vector$1 +javax/swing/event/TableColumnModelEvent +javax/swing/JPopupMenu$Separator +javax/swing/JSeparator +java/text/ParseException +java/text/NumberFormat$Field +javax/swing/text/GapContent$InsertUndo +javax/swing/undo/AbstractUndoableEdit +javax/swing/undo/UndoableEdit +javax/swing/text/AbstractDocument$DefaultDocumentEvent +javax/swing/event/DocumentEvent +javax/swing/undo/CompoundEdit +javax/swing/event/DocumentEvent$EventType +javax/swing/text/Utilities +javax/swing/text/SegmentCache +javax/swing/text/SegmentCache$CachedSegment +javax/swing/event/DocumentEvent$ElementChange +javax/swing/event/UndoableEditEvent +javax/swing/event/UndoableEditListener +java/awt/Canvas +java/util/Locale$Category +java/util/Locale$1 +javax/swing/filechooser/FileFilter +java/io/FileWriter +javax/swing/tree/DefaultTreeModel +javax/swing/tree/DefaultTreeCellEditor +javax/swing/tree/DefaultTreeCellEditor$1 +javax/swing/tree/DefaultTreeCellEditor$DefaultTextField +javax/swing/DefaultCellEditor$1 +javax/swing/DefaultCellEditor$EditorDelegate +javax/swing/tree/DefaultTreeCellEditor$EditorContainer +javax/swing/JTree$TreeSelectionRedirector +javax/swing/JMenuItem$MenuItemFocusListener +javax/swing/plaf/basic/BasicMenuItemUI +javax/swing/plaf/MenuItemUI +javax/swing/plaf/metal/MetalBorders$MenuItemBorder +javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon +sun/swing/MenuItemLayoutHelper +javax/swing/plaf/basic/BasicMenuItemUI$Handler +javax/swing/event/MenuDragMouseListener +javax/swing/event/TreeModelEvent +javax/swing/JSplitPane +javax/swing/plaf/metal/MetalSplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneUI +javax/swing/plaf/SplitPaneUI +javax/swing/plaf/basic/BasicSplitPaneDivider +javax/swing/plaf/basic/BasicBorders$SplitPaneBorder +javax/swing/plaf/metal/MetalSplitPaneDivider +javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout +javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler +javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder +javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager +javax/swing/plaf/basic/BasicSplitPaneUI$1 +javax/swing/plaf/basic/BasicSplitPaneUI$Handler +javax/swing/plaf/metal/MetalSplitPaneDivider$1 +javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler +javax/swing/plaf/metal/MetalSplitPaneDivider$2 +javax/swing/border/TitledBorder +javax/swing/plaf/basic/BasicTextAreaUI +javax/swing/text/AbstractDocument$ElementEdit +java/util/Random +java/util/concurrent/atomic/AtomicLong +java/net/NoRouteToHostException +java/net/BindException +javax/swing/tree/PathPlaceHolder +javax/swing/event/TreeSelectionEvent +javax/swing/JList$3 +javax/swing/JList$ListSelectionHandler +javax/swing/JSlider +javax/swing/JSlider$ModelListener +javax/swing/plaf/metal/MetalSliderUI +javax/swing/plaf/basic/BasicSliderUI +javax/swing/plaf/SliderUI +javax/swing/plaf/basic/BasicSliderUI$Actions +javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon +javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon +javax/swing/plaf/basic/BasicSliderUI$TrackListener +javax/swing/plaf/basic/BasicSliderUI$Handler +javax/swing/plaf/basic/BasicSliderUI$ScrollListener +javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener +javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +sun/font/SunFontManager$FamilyDescription +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$Traverser +sun/font/SunFontManager$10 +sun/font/SunFontManager$11 +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/lang/CharacterData00 +javax/swing/DefaultListModel +javax/swing/event/ListDataEvent +javax/sound/sampled/DataLine +javax/sound/sampled/Line +javax/sound/sampled/Line$Info +javax/sound/sampled/DataLine$Info +javax/sound/sampled/Control$Type +javax/sound/sampled/FloatControl$Type +javax/sound/sampled/LineUnavailableException +javax/sound/sampled/UnsupportedAudioFileException +javax/swing/JMenuBar +javax/swing/plaf/basic/BasicMenuBarUI +javax/swing/plaf/MenuBarUI +javax/swing/plaf/metal/MetalBorders$MenuBarBorder +javax/swing/plaf/basic/BasicMenuBarUI$Handler +javax/swing/KeyboardManager +javax/swing/JRadioButtonMenuItem +javax/swing/JMenu$MenuChangeListener +javax/swing/plaf/basic/BasicMenuUI +javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +javax/swing/plaf/basic/BasicMenuUI$Handler +javax/swing/JMenuItem$AccessibleJMenuItem +javax/swing/AbstractButton$AccessibleAbstractButton +javax/accessibility/AccessibleAction +javax/accessibility/AccessibleValue +javax/accessibility/AccessibleText +javax/accessibility/AccessibleExtendedComponent +javax/accessibility/AccessibleComponent +javax/swing/JComponent$AccessibleJComponent +java/awt/Container$AccessibleAWTContainer +java/awt/Component$AccessibleAWTComponent +javax/accessibility/AccessibleContext$1 +sun/awt/AWTAccessor$AccessibleContextAccessor +javax/accessibility/AccessibleRelationSet +javax/swing/JMenu$WinListener +java/awt/event/WindowAdapter +javax/swing/plaf/metal/MetalPopupMenuSeparatorUI +javax/swing/plaf/metal/MetalSeparatorUI +javax/swing/plaf/basic/BasicSeparatorUI +javax/swing/plaf/SeparatorUI +javax/accessibility/AccessibleState +javax/accessibility/AccessibleBundle +javax/swing/plaf/basic/BasicCheckBoxMenuItemUI +javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon +javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem +javax/swing/plaf/basic/BasicRadioButtonMenuItemUI +javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon +java/awt/event/ContainerEvent +sun/awt/image/ImageDecoder$1 +java/awt/im/InputContext +sun/awt/im/InputMethodContext +java/awt/im/spi/InputMethodContext +java/awt/im/InputMethodRequests +sun/awt/im/InputContext +sun/awt/windows/WInputMethod +sun/awt/im/InputMethodAdapter +java/awt/im/spi/InputMethod +sun/util/locale/ParseStatus +sun/util/locale/StringTokenIterator +sun/util/locale/InternalLocaleBuilder +sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +javax/swing/JTabbedPane$Page +java/net/DatagramSocket +java/net/MulticastSocket +java/net/DatagramPacket +java/net/DatagramPacket$1 +java/net/Inet4AddressImpl +sun/net/InetAddressCachePolicy +sun/net/InetAddressCachePolicy$1 +java/security/Security +java/security/Security$1 +sun/net/InetAddressCachePolicy$2 +java/net/InetAddress$CacheEntry +java/text/Collator +java/net/DefaultDatagramSocketImplFactory +sun/util/locale/provider/CollatorProviderImpl +java/net/DefaultDatagramSocketImplFactory$1 +java/net/DualStackPlainDatagramSocketImpl +java/util/Collections$UnmodifiableList$1 +java/net/AbstractPlainDatagramSocketImpl +java/net/DatagramSocketImpl +sun/text/resources/CollationData +java/net/AbstractPlainDatagramSocketImpl$1 +java/text/RuleBasedCollator +java/net/TwoStacksPlainDatagramSocketImpl +java/text/RBCollationTables +java/net/DatagramSocket$1 +java/text/RBTableBuilder +java/net/NetworkInterface +java/text/RBCollationTables$BuildAPI +sun/text/IntHashtable +sun/net/ResourceManager +sun/text/UCompactIntArray +sun/text/normalizer/NormalizerImpl +sun/text/normalizer/ICUData +java/net/NetworkInterface$1 +java/net/InterfaceAddress +java/net/DefaultInterface +java/net/ServerSocket +sun/text/normalizer/NormalizerDataReader +sun/text/normalizer/ICUBinary$Authenticate +sun/text/normalizer/ICUBinary +sun/text/normalizer/NormalizerImpl$FCDTrieImpl +sun/text/normalizer/Trie$DataManipulate +sun/text/normalizer/NormalizerImpl$NormTrieImpl +sun/text/normalizer/NormalizerImpl$AuxTrieImpl +sun/text/normalizer/IntTrie +sun/text/normalizer/Trie +sun/text/normalizer/CharTrie +sun/text/normalizer/CharTrie$FriendAgent +sun/text/normalizer/UnicodeSet +sun/text/normalizer/UnicodeMatcher +sun/text/normalizer/NormalizerImpl$DecomposeArgs +java/text/MergeCollation +java/text/PatternEntry$Parser +java/text/PatternEntry +java/text/EntryPair +sun/text/ComposedCharIter +sun/text/normalizer/UTF16 +sun/net/www/protocol/http/Handler +java/security/SignatureException +java/security/InvalidKeyException +java/security/KeyException +java/security/Signature +java/security/SignatureSpi +java/io/ObjectInputStream$BlockDataInputStream +java/io/ObjectInputStream$PeekInputStream +java/io/ObjectInputStream$HandleTable +java/io/ObjectInputStream$HandleTable$HandleList +java/io/ObjectInputStream$ValidationList +java/io/Bits +java/io/ObjectStreamClass +sun/security/provider/DSAPublicKey +java/security/interfaces/DSAPublicKey +java/security/interfaces/DSAKey +java/security/PublicKey +java/security/Key +sun/security/x509/X509Key +java/io/ObjectStreamClass$Caches +java/io/ObjectStreamClass$WeakClassKey +java/io/ObjectStreamClass$EntryFuture +java/io/ObjectOutputStream +java/io/ObjectOutput +java/lang/reflect/Proxy +java/lang/reflect/InvocationHandler +java/lang/reflect/WeakCache +java/lang/reflect/Proxy$KeyFactory +java/lang/reflect/Proxy$ProxyClassFactory +java/io/Externalizable +java/io/ObjectStreamClass$2 +sun/security/x509/AlgorithmId +sun/security/util/DerEncoder +sun/security/util/BitArray +sun/reflect/SerializationConstructorAccessorImpl +sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl +java/io/ObjectStreamClass$FieldReflectorKey +sun/security/util/DerOutputStream +java/io/ObjectStreamClass$FieldReflector +sun/security/util/DerValue +java/io/ObjectStreamClass$1 +java/io/DataOutputStream +java/io/ObjectStreamClass$MemberSignature +java/math/BigInteger +java/io/ObjectStreamClass$3 +java/io/ObjectStreamClass$4 +java/security/interfaces/DSAParams +java/io/ObjectStreamClass$5 +java/io/ObjectStreamClass$ClassDataSlot +java/io/SerialCallbackContext +java/security/MessageDigest +java/security/MessageDigestSpi +sun/security/util/DerInputStream +sun/security/jca/GetInstance +sun/security/util/DerInputBuffer +sun/security/jca/Providers +java/lang/InheritableThreadLocal +sun/security/util/ObjectIdentifier +sun/security/jca/ProviderList +sun/security/jca/ProviderConfig +java/security/Provider +sun/security/jca/ProviderList$3 +sun/security/jca/ProviderList$1 +java/security/Provider$ServiceKey +java/security/Provider$EngineDescription +java/security/AlgorithmParameters +java/security/AlgorithmParametersSpi +sun/security/jca/ProviderList$2 +sun/security/jca/ProviderConfig$2 +sun/security/provider/Sun +sun/security/provider/SunEntries +sun/security/provider/SunEntries$1 +sun/security/provider/NativePRNG +sun/security/provider/NativePRNG$Blocking +sun/security/provider/NativePRNG$NonBlocking +java/security/Provider$Service +java/security/Provider$UString +sun/security/provider/SHA +sun/security/provider/DSAParameters +sun/security/provider/DigestBase +sun/security/jca/GetInstance$Instance +java/security/MessageDigest$Delegate +sun/security/util/ByteArrayLexOrder +sun/security/util/ByteArrayTagOrder +sun/security/provider/ByteArrayAccess +sun/security/util/DerIndefLenConverter +java/io/ObjectOutputStream$BlockDataOutputStream +java/io/ObjectOutputStream$HandleTable +java/io/ObjectOutputStream$ReplaceTable +java/io/ObjectStreamClass$ExceptionInfo +java/io/ObjectInputStream$GetFieldImpl +java/io/ObjectInputStream$GetField +java/math/BigInteger$UnsafeHolder +sun/security/jca/ServiceId +sun/security/jca/ProviderList$ServiceList +sun/security/jca/ProviderList$ServiceList$1 +java/security/Signature$Delegate +java/util/ArrayList$SubList +java/util/ArrayList$SubList$1 +java/security/interfaces/DSAPrivateKey +java/security/PrivateKey +javax/security/auth/Destroyable +sun/security/provider/DSA$SHA1withDSA +sun/security/provider/DSA$LegacyDSA +sun/security/provider/DSA +java/security/spec/DSAParameterSpec +java/security/spec/AlgorithmParameterSpec +java/math/MutableBigInteger +java/math/SignedMutableBigInteger +javax/swing/TimerQueue +java/util/concurrent/DelayQueue +java/util/concurrent/BlockingQueue +java/util/AbstractQueue +java/util/PriorityQueue +javax/swing/TimerQueue$1 +javax/swing/TimerQueue$DelayedTimer +java/util/concurrent/Delayed +java/util/concurrent/TimeUnit +java/util/concurrent/TimeUnit$1 +java/util/concurrent/TimeUnit$2 +java/util/concurrent/TimeUnit$3 +java/util/concurrent/TimeUnit$4 +java/util/concurrent/TimeUnit$5 +java/util/concurrent/TimeUnit$6 +java/util/concurrent/TimeUnit$7 +java/awt/Window$1DisposeAction +java/awt/EventQueue$1AWTInvocationLock +java/awt/LightweightDispatcher$2 +java/awt/Component$FlipBufferStrategy +java/lang/StrictMath +javax/swing/JLayer +javax/swing/JInternalFrame +javax/swing/KeyboardManager$ComponentKeyStrokePair +sun/swing/MenuItemLayoutHelper$RectSize +javax/swing/JTable$2 +javax/swing/JTable$Resizable3 +javax/swing/JTable$Resizable2 +javax/swing/JTable$5 +java/awt/Label +sun/awt/windows/WLabelPeer +java/awt/peer/LabelPeer +java/awt/Event +sun/awt/PlatformFont$PlatformFontCache +sun/nio/cs/UTF_16LE$Encoder +sun/nio/cs/UnicodeEncoder +sun/nio/cs/UTF_16LE$Decoder +sun/nio/cs/Surrogate$Parser +sun/nio/cs/Surrogate +java/awt/KeyboardFocusManager$3 +java/net/Authenticator +sun/awt/AppContext$PostShutdownEventRunnable +sun/awt/AWTAutoShutdown$1 +java/net/ConnectException +java/lang/Throwable$WrappedPrintStream +java/lang/Throwable$PrintStreamOrWriter +sun/awt/image/PNGImageDecoder +sun/awt/image/PNGFilterInputStream +sun/awt/image/OffScreenImage +sun/util/locale/provider/TimeZoneNameUtility +sun/util/locale/provider/TimeZoneNameProviderImpl +sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +sun/util/resources/TimeZoneNames +sun/util/resources/TimeZoneNamesBundle +sun/util/resources/en/TimeZoneNames_en +java/io/FilterReader +java/io/EOFException +javax/swing/filechooser/FileSystemView +javax/swing/filechooser/WindowsFileSystemView +javax/swing/filechooser/FileSystemView$1 +java/util/jar/JarFile$JarEntryIterator +java/util/zip/ZipFile$ZipEntryIterator +java/lang/IllegalAccessError +java/text/MessageFormat +java/text/MessageFormat$Field +java/util/Hashtable$ValueCollection +javax/swing/event/CaretListener +javax/swing/plaf/metal/MetalButtonUI +javax/swing/plaf/metal/MetalToggleButtonUI +javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder +javax/swing/event/MenuEvent +javax/swing/border/MatteBorder +sun/font/StandardGlyphVector +java/awt/font/GlyphVector +sun/font/StandardGlyphVector$GlyphStrike +sun/font/CoreMetrics +sun/font/FontLineMetrics +java/awt/font/LineMetrics +javax/swing/JToolBar$DefaultToolBarLayout +javax/swing/plaf/metal/MetalToolBarUI +javax/swing/plaf/basic/BasicToolBarUI +javax/swing/plaf/ToolBarUI +javax/swing/plaf/metal/MetalBorders$ToolBarBorder +javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder +javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder +javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder +javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener +javax/swing/plaf/basic/BasicToolBarUI$DockingListener +javax/swing/plaf/basic/BasicToolBarUI$Handler +javax/swing/JToolBar$Separator +javax/swing/plaf/basic/BasicToolBarSeparatorUI +java/awt/event/AdjustmentEvent +java/awt/MenuBar +# 7b979133406b8b9a diff --git a/launch4j/jre/lib/cmm/CIEXYZ.pf b/launch4j/jre/lib/cmm/CIEXYZ.pf new file mode 100644 index 0000000..48c9dd8 Binary files /dev/null and b/launch4j/jre/lib/cmm/CIEXYZ.pf differ diff --git a/launch4j/jre/lib/cmm/GRAY.pf b/launch4j/jre/lib/cmm/GRAY.pf new file mode 100644 index 0000000..8af309c Binary files /dev/null and b/launch4j/jre/lib/cmm/GRAY.pf differ diff --git a/launch4j/jre/lib/cmm/LINEAR_RGB.pf b/launch4j/jre/lib/cmm/LINEAR_RGB.pf new file mode 100644 index 0000000..3e0b177 Binary files /dev/null and b/launch4j/jre/lib/cmm/LINEAR_RGB.pf differ diff --git a/launch4j/jre/lib/cmm/PYCC.pf b/launch4j/jre/lib/cmm/PYCC.pf new file mode 100644 index 0000000..0cee015 Binary files /dev/null and b/launch4j/jre/lib/cmm/PYCC.pf differ diff --git a/launch4j/jre/lib/cmm/sRGB.pf b/launch4j/jre/lib/cmm/sRGB.pf new file mode 100644 index 0000000..7b552ad Binary files /dev/null and b/launch4j/jre/lib/cmm/sRGB.pf differ diff --git a/launch4j/jre/lib/content-types.properties b/launch4j/jre/lib/content-types.properties new file mode 100644 index 0000000..8949352 --- /dev/null +++ b/launch4j/jre/lib/content-types.properties @@ -0,0 +1,276 @@ +#sun.net.www MIME content-types table +# +# Property fields: +# +# ::= 'description' '=' +# ::= 'file_extensions' '=' +# ::= 'icon' '=' +# ::= 'browser' | 'application' | 'save' | 'unknown' +# ::= 'application' '=' +# + +# +# The "we don't know anything about this data" type(s). +# Used internally to mark unrecognized types. +# +content/unknown: description=Unknown Content +unknown/unknown: description=Unknown Data Type + +# +# The template we should use for temporary files when launching an application +# to view a document of given type. +# +temp.file.template: c:\\temp\\%s + +# +# The "real" types. +# +application/octet-stream: \ + description=Generic Binary Stream;\ + file_extensions=.saveme,.dump,.hqx,.arc,.obj,.lib,.bin,.exe,.zip,.gz + +application/oda: \ + description=ODA Document;\ + file_extensions=.oda + +application/pdf: \ + description=Adobe PDF Format;\ + file_extensions=.pdf + +application/postscript: \ + description=Postscript File;\ + file_extensions=.eps,.ai,.ps;\ + icon=ps + +application/rtf: \ + description=Wordpad Document;\ + file_extensions=.rtf;\ + action=application;\ + application=wordpad.exe %s + +application/x-dvi: \ + description=TeX DVI File;\ + file_extensions=.dvi + +application/x-hdf: \ + description=Hierarchical Data Format;\ + file_extensions=.hdf;\ + action=save + +application/x-latex: \ + description=LaTeX Source;\ + file_extensions=.latex + +application/x-netcdf: \ + description=Unidata netCDF Data Format;\ + file_extensions=.nc,.cdf;\ + action=save + +application/x-tex: \ + description=TeX Source;\ + file_extensions=.tex + +application/x-texinfo: \ + description=Gnu Texinfo;\ + file_extensions=.texinfo,.texi + +application/x-troff: \ + description=Troff Source;\ + file_extensions=.t,.tr,.roff + +application/x-troff-man: \ + description=Troff Manpage Source;\ + file_extensions=.man + +application/x-troff-me: \ + description=Troff ME Macros;\ + file_extensions=.me + +application/x-troff-ms: \ + description=Troff MS Macros;\ + file_extensions=.ms + +application/x-wais-source: \ + description=Wais Source;\ + file_extensions=.src,.wsrc + +application/zip: \ + description=Zip File;\ + file_extensions=.zip;\ + icon=zip;\ + action=save + +application/x-bcpio: \ + description=Old Binary CPIO Archive;\ + file_extensions=.bcpio;\ + action=save + +application/x-cpio: \ + description=Unix CPIO Archive;\ + file_extensions=.cpio;\ + action=save + +application/x-gtar: \ + description=Gnu Tar Archive;\ + file_extensions=.gtar;\ + icon=tar;\ + action=save + +application/x-shar: \ + description=Shell Archive;\ + file_extensions=.sh,.shar;\ + action=save + +application/x-sv4cpio: \ + description=SVR4 CPIO Archive;\ + file_extensions=.sv4cpio;\ + action=save + +application/x-sv4crc: \ + description=SVR4 CPIO with CRC;\ + file_extensions=.sv4crc;\ + action=save + +application/x-tar: \ + description=Tar Archive;\ + file_extensions=.tar;\ + icon=tar;\ + action=save + +application/x-ustar: \ + description=US Tar Archive;\ + file_extensions=.ustar;\ + action=save + +audio/basic: \ + description=Basic Audio;\ + file_extensions=.snd,.au;\ + icon=audio + +audio/x-aiff: \ + description=Audio Interchange Format File;\ + file_extensions=.aifc,.aif,.aiff;\ + icon=aiff + +audio/x-wav: \ + description=Wav Audio;\ + file_extensions=.wav;\ + icon=wav;\ + action=application;\ + application=mplayer.exe %s + +image/gif: \ + description=GIF Image;\ + file_extensions=.gif;\ + icon=gif;\ + action=browser + +image/ief: \ + description=Image Exchange Format;\ + file_extensions=.ief + +image/jpeg: \ + description=JPEG Image;\ + file_extensions=.jfif,.jfif-tbnl,.jpe,.jpg,.jpeg;\ + icon=jpeg;\ + action=browser + +image/tiff: \ + description=TIFF Image;\ + file_extensions=.tif,.tiff;\ + icon=tiff + +image/vnd.fpx: \ + description=FlashPix Image;\ + file_extensions=.fpx,.fpix + +image/x-cmu-rast: \ + description=CMU Raster Image;\ + file_extensions=.ras + +image/x-portable-anymap: \ + description=PBM Anymap Image;\ + file_extensions=.pnm + +image/x-portable-bitmap: \ + description=PBM Bitmap Image;\ + file_extensions=.pbm + +image/x-portable-graymap: \ + description=PBM Graymap Image;\ + file_extensions=.pgm + +image/x-portable-pixmap: \ + description=PBM Pixmap Image;\ + file_extensions=.ppm + +image/x-rgb: \ + description=RGB Image;\ + file_extensions=.rgb + +image/x-xbitmap: \ + description=X Bitmap Image;\ + file_extensions=.xbm,.xpm + +image/x-xwindowdump: \ + description=X Window Dump Image;\ + file_extensions=.xwd + +image/png: \ + description=PNG Image;\ + file_extensions=.png;\ + icon=png;\ + action=browser + +image/bmp: \ + description=Bitmap Image;\ + file_extensions=.bmp; + +text/html: \ + description=HTML Document;\ + file_extensions=.htm,.html;\ + icon=html + +text/plain: \ + description=Plain Text;\ + file_extensions=.text,.c,.cc,.c++,.h,.pl,.txt,.java,.el;\ + icon=text;\ + action=browser + +text/tab-separated-values: \ + description=Tab Separated Values Text;\ + file_extensions=.tsv + +text/x-setext: \ + description=Structure Enhanced Text;\ + file_extensions=.etx + +video/mpeg: \ + description=MPEG Video Clip;\ + file_extensions=.mpg,.mpe,.mpeg;\ + icon=mpeg + +video/quicktime: \ + description=QuickTime Video Clip;\ + file_extensions=.mov,.qt + +application/x-troff-msvideo: \ + description=AVI Video;\ + file_extensions=.avi;\ + icon=avi;\ + action=application;\ + application=mplayer.exe %s + +video/x-sgi-movie: \ + description=SGI Movie;\ + file_extensions=.movie,.mv + +message/rfc822: \ + description=Internet Email Message;\ + file_extensions=.mime + +application/xml: \ + description=XML document;\ + file_extensions=.xml + + diff --git a/launch4j/jre/lib/currency.data b/launch4j/jre/lib/currency.data new file mode 100644 index 0000000..6be2222 Binary files /dev/null and b/launch4j/jre/lib/currency.data differ diff --git a/launch4j/jre/lib/ext/access-bridge-32.jar b/launch4j/jre/lib/ext/access-bridge-32.jar new file mode 100755 index 0000000..8adb2fa Binary files /dev/null and b/launch4j/jre/lib/ext/access-bridge-32.jar differ diff --git a/launch4j/jre/lib/ext/access-bridge.jar b/launch4j/jre/lib/ext/access-bridge.jar new file mode 100755 index 0000000..e9cb343 Binary files /dev/null and b/launch4j/jre/lib/ext/access-bridge.jar differ diff --git a/launch4j/jre/lib/ext/cldrdata.jar b/launch4j/jre/lib/ext/cldrdata.jar new file mode 100755 index 0000000..1e97daa Binary files /dev/null and b/launch4j/jre/lib/ext/cldrdata.jar differ diff --git a/launch4j/jre/lib/ext/dnsns.jar b/launch4j/jre/lib/ext/dnsns.jar new file mode 100755 index 0000000..6716f27 Binary files /dev/null and b/launch4j/jre/lib/ext/dnsns.jar differ diff --git a/launch4j/jre/lib/ext/jaccess.jar b/launch4j/jre/lib/ext/jaccess.jar new file mode 100755 index 0000000..aa6c090 Binary files /dev/null and b/launch4j/jre/lib/ext/jaccess.jar differ diff --git a/launch4j/jre/lib/ext/localedata.jar b/launch4j/jre/lib/ext/localedata.jar new file mode 100755 index 0000000..60ece30 Binary files /dev/null and b/launch4j/jre/lib/ext/localedata.jar differ diff --git a/launch4j/jre/lib/ext/meta-index b/launch4j/jre/lib/ext/meta-index new file mode 100755 index 0000000..d4eece5 --- /dev/null +++ b/launch4j/jre/lib/ext/meta-index @@ -0,0 +1,34 @@ +% VERSION 2 +% WARNING: this file is auto-generated; do not edit +% UNSUPPORTED: this file and its format may change and/or +% may be removed in a future release +! access-bridge-32.jar +com/sun/java/accessibility/ +! access-bridge.jar +com/sun/java/accessibility/ +! cldrdata.jar +sun/text +sun/util +# dnsns.jar +META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor +sun/net +! jaccess.jar +com/sun/java/accessibility/ +# localedata.jar +sun/text +sun/util +# nashorn.jar +jdk/nashorn +META-INF/services/javax.script.ScriptEngineFactory +jdk/internal +! sunec.jar +sun/security +! sunjce_provider.jar +com/sun/crypto/ +! sunmscapi.jar +sun/security +! sunpkcs11.jar +sun/security +# zipfs.jar +META-INF/services/java.nio.file.spi.FileSystemProvider +com/sun/nio/ diff --git a/launch4j/jre/lib/ext/nashorn.jar b/launch4j/jre/lib/ext/nashorn.jar new file mode 100755 index 0000000..a88eb69 Binary files /dev/null and b/launch4j/jre/lib/ext/nashorn.jar differ diff --git a/launch4j/jre/lib/ext/sunec.jar b/launch4j/jre/lib/ext/sunec.jar new file mode 100755 index 0000000..33e7f0b Binary files /dev/null and b/launch4j/jre/lib/ext/sunec.jar differ diff --git a/launch4j/jre/lib/ext/sunjce_provider.jar b/launch4j/jre/lib/ext/sunjce_provider.jar new file mode 100755 index 0000000..bd824f7 Binary files /dev/null and b/launch4j/jre/lib/ext/sunjce_provider.jar differ diff --git a/launch4j/jre/lib/ext/sunmscapi.jar b/launch4j/jre/lib/ext/sunmscapi.jar new file mode 100755 index 0000000..5a119d8 Binary files /dev/null and b/launch4j/jre/lib/ext/sunmscapi.jar differ diff --git a/launch4j/jre/lib/ext/sunpkcs11.jar b/launch4j/jre/lib/ext/sunpkcs11.jar new file mode 100755 index 0000000..28c939d Binary files /dev/null and b/launch4j/jre/lib/ext/sunpkcs11.jar differ diff --git a/launch4j/jre/lib/ext/zipfs.jar b/launch4j/jre/lib/ext/zipfs.jar new file mode 100755 index 0000000..ee0b679 Binary files /dev/null and b/launch4j/jre/lib/ext/zipfs.jar differ diff --git a/launch4j/jre/lib/flavormap.properties b/launch4j/jre/lib/flavormap.properties new file mode 100644 index 0000000..c80f1cf --- /dev/null +++ b/launch4j/jre/lib/flavormap.properties @@ -0,0 +1,77 @@ +# +# This properties file is used to initialize the default +# java.awt.datatransfer.SystemFlavorMap. It contains the Win32 platform- +# specific, default mappings between common Win32 Clipboard atoms and platform- +# independent MIME type strings, which will be converted into +# java.awt.datatransfer.DataFlavors. +# +# These default mappings may be augmented by specifying the +# +# AWT.DnD.flavorMapFileURL +# +# property in the appropriate awt.properties file. The specified properties URL +# will be loaded into the SystemFlavorMap. +# +# The standard format is: +# +# = +# +# should be a string identifier that the native platform will +# recognize as a valid data format. should specify both a MIME +# primary type and a MIME subtype separated by a '/'. The MIME type may include +# parameters, where each parameter is a key/value pair separated by '=', and +# where each parameter to the MIME type is separated by a ';'. +# +# Because SystemFlavorMap implements FlavorTable, developers are free to +# duplicate both native keys and DataFlavor values. If a mapping contains a +# duplicate key or value, earlier mappings which included this key or value +# will be preferred. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", and which support the charset parameter, should specify the exact +# format in which the native platform expects the data. The "charset" +# parameter specifies the char to byte encoding, the "eoln" parameter +# specifies the end-of-line marker, and the "terminators" parameter specifies +# the number of terminating NUL bytes. Note that "eoln" and "terminators" +# are not standardized MIME type parameters. They are specific to this file +# format ONLY. They will not appear in any of the DataFlavors returned by the +# SystemFlavorMap at the Java level. +# +# If the "charset" parameter is omitted, or has zero length, the platform +# default encoding is assumed. If the "eoln" parameter is omitted, or has +# zero length, "\n" is assumed. If the "terminators" parameter is omitted, +# or has a value less than zero, zero is assumed. +# +# Upon initialization, the data transfer subsystem will record the specified +# details of the native text format, but the default SystemFlavorMap will +# present a large set of synthesized DataFlavors which map, in both +# directions, to the native. After receiving data from the application in one +# of the synthetic DataFlavors, the data transfer subsystem will transform +# the data stream into the format specified in this file before passing the +# transformed stream to the native system. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", but which do not support the charset parameter, will be treated as +# opaque, 8-bit data. They will not undergo any transformation process, and +# any "charset", "eoln", or "terminators" parameters specified in this file +# will be ignored. +# +# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of +# text flavors which support the charset parameter. + +UNICODE\ TEXT=text/plain;charset=utf-16le;eoln="\r\n";terminators=2 +TEXT=text/plain;eoln="\r\n";terminators=1 +HTML\ Format=text/html;charset=utf-8;eoln="\r\n";terminators=1 +Rich\ Text\ Format=text/rtf +HDROP=application/x-java-file-list;class=java.util.List +PNG=image/x-java-image;class=java.awt.Image +JFIF=image/x-java-image;class=java.awt.Image +DIB=image/x-java-image;class=java.awt.Image +ENHMETAFILE=image/x-java-image;class=java.awt.Image +METAFILEPICT=image/x-java-image;class=java.awt.Image +LOCALE=application/x-java-text-encoding;class="[B" +UniformResourceLocator=application/x-java-url;class=java.net.URL +UniformResourceLocator=text/uri-list;eoln="\r\n";terminators=1 +UniformResourceLocator=text/plain;eoln="\r\n";terminators=1 +FileGroupDescriptorW=application/x-java-file-list;class=java.util.List +FileGroupDescriptor=application/x-java-file-list;class=java.util.List diff --git a/launch4j/jre/lib/fontconfig.bfc b/launch4j/jre/lib/fontconfig.bfc new file mode 100644 index 0000000..f04d529 Binary files /dev/null and b/launch4j/jre/lib/fontconfig.bfc differ diff --git a/launch4j/jre/lib/fontconfig.properties.src b/launch4j/jre/lib/fontconfig.properties.src new file mode 100644 index 0000000..5c8883f --- /dev/null +++ b/launch4j/jre/lib/fontconfig.properties.src @@ -0,0 +1,302 @@ +# +# +# Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# Version + +version=1 + +# Component Font Mappings + +allfonts.chinese-ms936=SimSun +allfonts.chinese-ms936-extb=SimSun-ExtB +allfonts.chinese-gb18030=SimSun-18030 +allfonts.chinese-gb18030-extb=SimSun-ExtB +allfonts.chinese-hkscs=MingLiU_HKSCS +allfonts.chinese-ms950-extb=MingLiU-ExtB +allfonts.devanagari=Mangal +allfonts.dingbats=Wingdings +allfonts.lucida=Lucida Sans Regular +allfonts.symbol=Symbol +allfonts.symbols=Segoe UI Symbol +allfonts.thai=Lucida Sans Regular +allfonts.georgian=Sylfaen + +serif.plain.alphabetic=Times New Roman +serif.plain.chinese-ms950=MingLiU +serif.plain.chinese-ms950-extb=MingLiU-ExtB +serif.plain.hebrew=David +serif.plain.japanese=MS Mincho +serif.plain.korean=Batang + +serif.bold.alphabetic=Times New Roman Bold +serif.bold.chinese-ms950=PMingLiU +serif.bold.chinese-ms950-extb=PMingLiU-ExtB +serif.bold.hebrew=David Bold +serif.bold.japanese=MS Mincho +serif.bold.korean=Batang + +serif.italic.alphabetic=Times New Roman Italic +serif.italic.chinese-ms950=PMingLiU +serif.italic.chinese-ms950-extb=PMingLiU-ExtB +serif.italic.hebrew=David +serif.italic.japanese=MS Mincho +serif.italic.korean=Batang + +serif.bolditalic.alphabetic=Times New Roman Bold Italic +serif.bolditalic.chinese-ms950=PMingLiU +serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB +serif.bolditalic.hebrew=David Bold +serif.bolditalic.japanese=MS Mincho +serif.bolditalic.korean=Batang + +sansserif.plain.alphabetic=Arial +sansserif.plain.chinese-ms950=MingLiU +sansserif.plain.chinese-ms950-extb=MingLiU-ExtB +sansserif.plain.hebrew=David +sansserif.plain.japanese=MS Gothic +sansserif.plain.korean=Gulim + +sansserif.bold.alphabetic=Arial Bold +sansserif.bold.chinese-ms950=PMingLiU +sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB +sansserif.bold.hebrew=David Bold +sansserif.bold.japanese=MS Gothic +sansserif.bold.korean=Gulim + +sansserif.italic.alphabetic=Arial Italic +sansserif.italic.chinese-ms950=PMingLiU +sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB +sansserif.italic.hebrew=David +sansserif.italic.japanese=MS Gothic +sansserif.italic.korean=Gulim + +sansserif.bolditalic.alphabetic=Arial Bold Italic +sansserif.bolditalic.chinese-ms950=PMingLiU +sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB +sansserif.bolditalic.hebrew=David Bold +sansserif.bolditalic.japanese=MS Gothic +sansserif.bolditalic.korean=Gulim + +monospaced.plain.alphabetic=Courier New +monospaced.plain.chinese-ms950=MingLiU +monospaced.plain.chinese-ms950-extb=MingLiU-ExtB +monospaced.plain.hebrew=Courier New +monospaced.plain.japanese=MS Gothic +monospaced.plain.korean=GulimChe + +monospaced.bold.alphabetic=Courier New Bold +monospaced.bold.chinese-ms950=PMingLiU +monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB +monospaced.bold.hebrew=Courier New Bold +monospaced.bold.japanese=MS Gothic +monospaced.bold.korean=GulimChe + +monospaced.italic.alphabetic=Courier New Italic +monospaced.italic.chinese-ms950=PMingLiU +monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB +monospaced.italic.hebrew=Courier New +monospaced.italic.japanese=MS Gothic +monospaced.italic.korean=GulimChe + +monospaced.bolditalic.alphabetic=Courier New Bold Italic +monospaced.bolditalic.chinese-ms950=PMingLiU +monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB +monospaced.bolditalic.hebrew=Courier New Bold +monospaced.bolditalic.japanese=MS Gothic +monospaced.bolditalic.korean=GulimChe + +dialog.plain.alphabetic=Arial +dialog.plain.chinese-ms950=MingLiU +dialog.plain.chinese-ms950-extb=MingLiU-ExtB +dialog.plain.hebrew=David +dialog.plain.japanese=MS Gothic +dialog.plain.korean=Gulim + +dialog.bold.alphabetic=Arial Bold +dialog.bold.chinese-ms950=PMingLiU +dialog.bold.chinese-ms950-extb=PMingLiU-ExtB +dialog.bold.hebrew=David Bold +dialog.bold.japanese=MS Gothic +dialog.bold.korean=Gulim + +dialog.italic.alphabetic=Arial Italic +dialog.italic.chinese-ms950=PMingLiU +dialog.italic.chinese-ms950-extb=PMingLiU-ExtB +dialog.italic.hebrew=David +dialog.italic.japanese=MS Gothic +dialog.italic.korean=Gulim + +dialog.bolditalic.alphabetic=Arial Bold Italic +dialog.bolditalic.chinese-ms950=PMingLiU +dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB +dialog.bolditalic.hebrew=David Bold +dialog.bolditalic.japanese=MS Gothic +dialog.bolditalic.korean=Gulim + +dialoginput.plain.alphabetic=Courier New +dialoginput.plain.chinese-ms950=MingLiU +dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB +dialoginput.plain.hebrew=David +dialoginput.plain.japanese=MS Gothic +dialoginput.plain.korean=Gulim + +dialoginput.bold.alphabetic=Courier New Bold +dialoginput.bold.chinese-ms950=PMingLiU +dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB +dialoginput.bold.hebrew=David Bold +dialoginput.bold.japanese=MS Gothic +dialoginput.bold.korean=Gulim + +dialoginput.italic.alphabetic=Courier New Italic +dialoginput.italic.chinese-ms950=PMingLiU +dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB +dialoginput.italic.hebrew=David +dialoginput.italic.japanese=MS Gothic +dialoginput.italic.korean=Gulim + +dialoginput.bolditalic.alphabetic=Courier New Bold Italic +dialoginput.bolditalic.chinese-ms950=PMingLiU +dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB +dialoginput.bolditalic.hebrew=David Bold +dialoginput.bolditalic.japanese=MS Gothic +dialoginput.bolditalic.korean=Gulim + +# Search Sequences + +sequence.allfonts=alphabetic/default,dingbats,symbol + +sequence.serif.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb +sequence.sansserif.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb +sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol,chinese-ms936-extb +sequence.dialog.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb +sequence.dialoginput.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb + +sequence.serif.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb +sequence.sansserif.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb +sequence.monospaced.GB18030=chinese-gb18030,alphabetic,dingbats,symbol,chinese-gb18030-extb +sequence.dialog.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb +sequence.dialoginput.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb + +sequence.serif.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb +sequence.sansserif.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb +sequence.monospaced.x-windows-950=chinese-ms950,alphabetic,dingbats,symbol,chinese-ms950-extb +sequence.dialog.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb +sequence.dialoginput.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb + +sequence.serif.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.sansserif.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.monospaced.x-MS950-HKSCS=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.dialog.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.dialoginput.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb + +sequence.serif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.sansserif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.monospaced.x-MS950-HKSCS-XP=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.dialog.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb +sequence.dialoginput.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb + +sequence.allfonts.UTF-8.hi=alphabetic/1252,devanagari,dingbats,symbol +sequence.allfonts.UTF-8.ja=alphabetic,japanese,devanagari,dingbats,symbol + +sequence.allfonts.windows-1255=hebrew,alphabetic/1252,dingbats,symbol + +sequence.serif.windows-31j=alphabetic,japanese,dingbats,symbol +sequence.sansserif.windows-31j=alphabetic,japanese,dingbats,symbol +sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol +sequence.dialog.windows-31j=alphabetic,japanese,dingbats,symbol +sequence.dialoginput.windows-31j=alphabetic,japanese,dingbats,symbol + +sequence.serif.x-windows-949=alphabetic,korean,dingbats,symbol +sequence.sansserif.x-windows-949=alphabetic,korean,dingbats,symbol +sequence.monospaced.x-windows-949=korean,alphabetic,dingbats,symbol +sequence.dialog.x-windows-949=alphabetic,korean,dingbats,symbol +sequence.dialoginput.x-windows-949=alphabetic,korean,dingbats,symbol + +sequence.allfonts.x-windows-874=alphabetic,thai,dingbats,symbol + +sequence.fallback=lucida,symbols,\ + chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\ + japanese,korean,chinese-ms950-extb,chinese-ms936-extb,georgian + +# Exclusion Ranges + +exclusion.alphabetic=0700-1cff,1d80-1e9f,1f00-2017,2020-20ab,20ad-f8ff +exclusion.chinese-gb18030=0390-03d6,2200-22ef,2701-27be +exclusion.hebrew=0041-005a,0060-007a,007f-00ff,20ac-20ac + +# Monospaced to Proportional width variant mapping +# (Experimental private syntax) +proportional.MS_Gothic=MS PGothic +proportional.MS_Mincho=MS PMincho +proportional.MingLiU=PMingLiU +proportional.MingLiU-ExtB=PMingLiU-ExtB + +# Font File Names + +filename.Arial=ARIAL.TTF +filename.Arial_Bold=ARIALBD.TTF +filename.Arial_Italic=ARIALI.TTF +filename.Arial_Bold_Italic=ARIALBI.TTF + +filename.Courier_New=COUR.TTF +filename.Courier_New_Bold=COURBD.TTF +filename.Courier_New_Italic=COURI.TTF +filename.Courier_New_Bold_Italic=COURBI.TTF + +filename.Times_New_Roman=TIMES.TTF +filename.Times_New_Roman_Bold=TIMESBD.TTF +filename.Times_New_Roman_Italic=TIMESI.TTF +filename.Times_New_Roman_Bold_Italic=TIMESBI.TTF + +filename.SimSun=SIMSUN.TTC +filename.SimSun-18030=SIMSUN18030.TTC +filename.SimSun-ExtB=SIMSUNB.TTF + +filename.MingLiU=MINGLIU.TTC +filename.MingLiU-ExtB=MINGLIUB.TTC +filename.PMingLiU=MINGLIU.TTC +filename.PMingLiU-ExtB=MINGLIUB.TTC +filename.MingLiU_HKSCS=hkscsm3u.ttf + +filename.David=DAVID.TTF +filename.David_Bold=DAVIDBD.TTF + +filename.MS_Mincho=MSMINCHO.TTC +filename.MS_PMincho=MSMINCHO.TTC +filename.MS_Gothic=MSGOTHIC.TTC +filename.MS_PGothic=MSGOTHIC.TTC + +filename.Gulim=gulim.TTC +filename.Batang=batang.TTC +filename.GulimChe=gulim.TTC + +filename.Lucida_Sans_Regular=LucidaSansRegular.ttf +filename.Mangal=MANGAL.TTF +filename.Symbol=SYMBOL.TTF +filename.Wingdings=WINGDING.TTF + +filename.Sylfaen=sylfaen.ttf +filename.Segoe_UI_Symbol=SEGUISYM.TTF diff --git a/launch4j/jre/lib/hijrah-config-umalqura.properties b/launch4j/jre/lib/hijrah-config-umalqura.properties new file mode 100644 index 0000000..1786c14 --- /dev/null +++ b/launch4j/jre/lib/hijrah-config-umalqura.properties @@ -0,0 +1,369 @@ +# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# This properties file defines a Hijrah calendar variant. +# +# Fields: +# +# ::= 'version' '=' +# ::= 'id' '=' +# ::= 'type' '=' +# ::= 'iso-start' '=' +# ::= '=' +# +# version ... (Required) +# +# id ... (Required) +# Identifies the Java Chronology +# +# type ... (Required) +# Identifies the type of calendar in the standard calendar ID scheme +# iso-start ... (Required) +# Specifies the corresponding ISO date to the first Hijrah day +# in the defined range of dates +# +# year ... (Required) +# Number of days for each month of a Hijrah year +# * Each line defines a year. The years must be in chronological +# order and no gap is allowed. +# * Each line is in the form indicated above. is a Hijrah year and +# nn is the number of days for a month listed in the order of the months. +# * Each year must have 12 months. +# * Each month should be 29 or 30 days long. +# * There must be one or more space characters between the months. +# + +# Version of this definition +version=1.8.0_1 + +# Java chronology ID +id=Hijrah-umalqura + +# Standard calendar type specification +type=islamic-umalqura + +# defines the corresponding ISO date to the earliest Hijrah date +iso-start=1882-11-12 + +# 1 2 3 4 5 6 7 8 9 10 11 12 +1300=30 29 30 29 30 29 30 29 30 29 30 29 +1301=30 30 29 30 29 30 29 30 29 30 29 29 +1302=30 30 30 29 30 30 29 29 30 29 29 30 +1303=29 30 30 29 30 30 29 30 29 30 29 29 +1304=29 30 30 29 30 30 30 29 30 29 30 29 +1305=29 29 30 30 29 30 30 29 30 30 29 29 +1306=30 29 30 29 30 29 30 29 30 30 29 30 +1307=29 30 29 30 29 30 29 30 29 30 29 30 +1308=29 30 30 29 30 29 30 29 30 29 29 30 +1309=29 30 30 30 30 29 29 30 29 29 30 29 +1310=30 29 30 30 30 29 30 29 30 29 29 30 +1311=29 30 29 30 30 30 29 30 29 30 29 29 +1312=30 29 30 29 30 30 29 30 30 29 30 29 +1313=29 30 29 30 29 30 29 30 30 30 29 29 +1314=30 30 29 30 29 29 30 29 30 30 29 30 +1315=29 30 30 29 30 29 29 30 29 30 29 30 +1316=29 30 30 30 29 30 29 29 30 29 30 29 +1317=30 29 30 30 29 30 29 30 29 30 29 29 +1318=30 29 30 30 29 30 30 29 30 29 30 29 +1319=29 30 29 30 30 29 30 29 30 30 29 30 +1320=29 30 29 29 30 29 30 29 30 30 30 29 +1321=30 29 30 29 29 30 29 29 30 30 30 30 +1322=29 30 29 30 29 29 29 30 29 30 30 30 +1323=29 30 30 29 30 29 29 29 30 29 30 30 +1324=29 30 30 29 30 29 30 29 29 30 29 30 +1325=30 29 30 29 30 30 29 30 29 30 29 30 +1326=29 29 30 29 30 30 29 30 29 30 30 29 +1327=30 29 29 30 29 30 29 30 30 29 30 30 +1328=29 30 29 29 30 29 29 30 30 30 29 30 +1329=30 29 30 29 29 30 29 29 30 30 29 30 +1330=30 30 29 30 29 29 30 29 29 30 30 29 +1331=30 30 29 30 30 29 29 30 29 30 29 30 +1332=29 30 29 30 30 29 30 29 30 30 29 29 +1333=30 29 29 30 30 29 30 30 29 30 30 29 +1334=29 29 30 29 30 29 30 30 30 29 30 29 +1335=30 29 30 29 29 30 29 30 30 29 30 30 +1336=29 30 29 30 29 29 30 29 30 29 30 30 +1337=30 29 30 29 30 29 29 30 29 30 29 30 +1338=29 30 30 29 30 30 29 29 30 29 30 29 +1339=30 29 30 29 30 30 30 29 30 29 29 30 +1340=29 29 30 29 30 30 30 30 29 30 29 29 +1341=30 29 29 30 29 30 30 30 29 30 30 29 +1342=29 29 30 29 30 29 30 30 29 30 30 29 +1343=30 29 29 30 29 30 29 30 29 30 30 29 +1344=30 29 30 29 30 30 29 29 30 29 30 29 +1345=30 29 30 30 30 29 30 29 29 30 29 29 +1346=30 29 30 30 30 30 29 30 29 29 30 29 +1347=29 30 29 30 30 30 29 30 30 29 29 30 +1348=29 29 30 29 30 30 29 30 30 30 29 29 +1349=30 29 29 30 29 30 30 29 30 30 29 30 +1350=29 30 29 30 29 30 29 29 30 30 29 30 +1351=30 29 30 29 30 29 30 29 29 30 29 30 +1352=30 29 30 30 29 30 29 30 29 29 30 29 +1353=30 29 30 30 30 29 30 29 29 30 29 30 +1354=29 30 29 30 30 29 30 30 29 30 29 29 +1355=30 29 29 30 30 29 30 30 29 30 30 29 +1356=29 30 29 30 29 30 29 30 29 30 30 30 +1357=29 29 30 29 30 29 29 30 29 30 30 30 +1358=29 30 29 30 29 30 29 29 30 29 30 30 +1359=29 30 30 29 30 29 30 29 29 29 30 30 +1360=29 30 30 30 29 30 29 30 29 29 30 29 +1361=30 29 30 30 29 30 30 29 29 30 29 30 +1362=29 30 29 30 29 30 30 29 30 29 30 29 +1363=30 29 30 29 30 29 30 29 30 29 30 30 +1364=29 30 29 30 29 29 30 29 30 29 30 30 +1365=30 30 29 29 30 29 29 30 29 30 29 30 +1366=30 30 29 30 29 30 29 29 30 29 30 29 +1367=30 30 29 30 30 29 30 29 29 30 29 30 +1368=29 30 29 30 30 30 29 29 30 29 30 29 +1369=30 29 30 29 30 30 29 30 29 30 30 29 +1370=30 29 29 30 29 30 29 30 29 30 30 30 +1371=29 30 29 29 30 29 30 29 30 29 30 30 +1372=30 29 29 30 29 30 29 29 30 29 30 30 +1373=30 29 30 29 30 29 30 29 29 30 29 30 +1374=30 29 30 30 29 30 29 30 29 29 30 29 +1375=30 29 30 30 29 30 30 29 30 29 30 29 +1376=29 30 29 30 29 30 30 30 29 30 29 30 +1377=29 29 30 29 29 30 30 30 29 30 30 29 +1378=30 29 29 29 30 29 30 30 29 30 30 30 +1379=29 30 29 29 29 30 29 30 30 29 30 30 +1380=29 30 29 30 29 30 29 30 29 30 29 30 +1381=29 30 29 30 30 29 30 29 30 29 29 30 +1382=29 30 29 30 30 29 30 30 29 30 29 29 +1383=30 29 29 30 30 30 29 30 30 29 30 29 +1384=29 30 29 29 30 30 29 30 30 30 29 30 +1385=29 29 30 29 29 30 30 29 30 30 30 29 +1386=30 29 29 30 29 29 30 30 29 30 30 29 +1387=30 29 30 29 30 29 30 29 30 29 30 29 +1388=30 30 29 30 29 30 29 30 29 30 29 29 +1389=30 30 29 30 30 29 30 30 29 29 30 29 +1390=29 30 29 30 30 30 29 30 29 30 29 30 +1391=29 29 30 29 30 30 29 30 30 29 30 29 +1392=30 29 29 30 29 30 29 30 30 29 30 30 +1393=29 30 29 29 30 29 30 29 30 29 30 30 +1394=30 29 30 29 29 30 29 30 29 30 29 30 +1395=30 29 30 30 29 30 29 29 30 29 29 30 +1396=30 29 30 30 29 30 30 29 29 30 29 29 +1397=30 29 30 30 29 30 30 30 29 29 29 30 +1398=29 30 29 30 30 29 30 30 29 30 29 29 +1399=30 29 30 29 30 29 30 30 29 30 29 30 +1400=30 29 30 29 29 30 29 30 29 30 29 30 +1401=30 30 29 30 29 29 30 29 29 30 29 30 +1402=30 30 30 29 30 29 29 30 29 29 30 29 +1403=30 30 30 29 30 30 29 29 30 29 29 30 +1404=29 30 30 29 30 30 29 30 29 30 29 29 +1405=30 29 30 29 30 30 30 29 30 29 29 30 +1406=30 29 29 30 29 30 30 29 30 29 30 30 +1407=29 30 29 29 30 29 30 29 30 29 30 30 +1408=30 29 30 29 30 29 29 30 29 29 30 30 +1409=30 30 29 30 29 30 29 29 30 29 29 30 +1410=30 30 29 30 30 29 30 29 29 30 29 29 +1411=30 30 29 30 30 29 30 30 29 29 30 29 +1412=30 29 30 29 30 29 30 30 30 29 29 30 +1413=29 30 29 29 30 29 30 30 30 29 30 29 +1414=30 29 30 29 29 30 29 30 30 29 30 30 +1415=29 30 29 30 29 29 30 29 30 29 30 30 +1416=30 29 30 29 30 29 29 30 29 30 29 30 +1417=30 29 30 30 29 29 30 29 30 29 30 29 +1418=30 29 30 30 29 30 29 30 29 30 29 30 +1419=29 30 29 30 29 30 29 30 30 30 29 29 +1420=29 30 29 29 30 29 30 30 30 30 29 30 +1421=29 29 30 29 29 29 30 30 30 30 29 30 +1422=30 29 29 30 29 29 29 30 30 30 29 30 +1423=30 29 30 29 30 29 29 30 29 30 29 30 +1424=30 29 30 30 29 30 29 29 30 29 30 29 +1425=30 29 30 30 29 30 29 30 30 29 30 29 +1426=29 30 29 30 29 30 30 29 30 30 29 30 +1427=29 29 30 29 30 29 30 30 29 30 30 29 +1428=30 29 29 30 29 29 30 30 30 29 30 30 +1429=29 30 29 29 30 29 29 30 30 29 30 30 +1430=29 30 30 29 29 30 29 30 29 30 29 30 +1431=29 30 30 29 30 29 30 29 30 29 29 30 +1432=29 30 30 30 29 30 29 30 29 30 29 29 +1433=30 29 30 30 29 30 30 29 30 29 30 29 +1434=29 30 29 30 29 30 30 29 30 30 29 29 +1435=30 29 30 29 30 29 30 29 30 30 29 30 +1436=29 30 29 30 29 30 29 30 29 30 29 30 +1437=30 29 30 30 29 29 30 29 30 29 29 30 +1438=30 29 30 30 30 29 29 30 29 29 30 29 +1439=30 29 30 30 30 29 30 29 30 29 29 30 +1440=29 30 29 30 30 30 29 30 29 30 29 29 +1441=30 29 30 29 30 30 29 30 30 29 30 29 +1442=29 30 29 30 29 30 29 30 30 29 30 29 +1443=30 29 30 29 30 29 30 29 30 29 30 30 +1444=29 30 29 30 30 29 29 30 29 30 29 30 +1445=29 30 30 30 29 30 29 29 30 29 29 30 +1446=29 30 30 30 29 30 30 29 29 30 29 29 +1447=30 29 30 30 30 29 30 29 30 29 30 29 +1448=29 30 29 30 30 29 30 30 29 30 29 30 +1449=29 29 30 29 30 29 30 30 29 30 30 29 +1450=30 29 30 29 29 30 29 30 29 30 30 29 +1451=30 30 30 29 29 30 29 29 30 30 29 30 +1452=30 29 30 30 29 29 30 29 29 30 29 30 +1453=30 29 30 30 29 30 29 30 29 29 30 29 +1454=30 29 30 30 29 30 30 29 30 29 30 29 +1455=29 30 29 30 30 29 30 29 30 30 29 30 +1456=29 29 30 29 30 29 30 29 30 30 30 29 +1457=30 29 29 30 29 29 30 29 30 30 30 30 +1458=29 30 29 29 30 29 29 30 29 30 30 30 +1459=29 30 30 29 29 30 29 29 30 29 30 30 +1460=29 30 30 29 30 29 30 29 29 30 29 30 +1461=29 30 30 29 30 29 30 29 30 30 29 29 +1462=30 29 30 29 30 30 29 30 29 30 30 29 +1463=29 30 29 30 29 30 29 30 30 30 29 30 +1464=29 30 29 29 30 29 29 30 30 30 29 30 +1465=30 29 30 29 29 30 29 29 30 30 29 30 +1466=30 30 29 30 29 29 29 30 29 30 30 29 +1467=30 30 29 30 30 29 29 30 29 30 29 30 +1468=29 30 29 30 30 29 30 29 30 29 30 29 +1469=29 30 29 30 30 29 30 30 29 30 29 30 +1470=29 29 30 29 30 30 29 30 30 29 30 29 +1471=30 29 29 30 29 30 29 30 30 29 30 30 +1472=29 30 29 29 30 29 30 29 30 30 29 30 +1473=29 30 29 30 30 29 29 30 29 30 29 30 +1474=29 30 30 29 30 30 29 29 30 29 30 29 +1475=29 30 30 29 30 30 30 29 29 30 29 29 +1476=30 29 30 29 30 30 30 29 30 29 30 29 +1477=29 30 29 29 30 30 30 30 29 30 29 30 +1478=29 29 30 29 30 29 30 30 29 30 30 29 +1479=30 29 29 30 29 30 29 30 29 30 30 29 +1480=30 29 30 29 30 29 30 29 30 29 30 29 +1481=30 29 30 30 29 30 29 30 29 30 29 29 +1482=30 29 30 30 30 30 29 30 29 29 30 29 +1483=29 30 29 30 30 30 29 30 30 29 29 30 +1484=29 29 30 29 30 30 30 29 30 29 30 29 +1485=30 29 29 30 29 30 30 29 30 30 29 30 +1486=29 30 29 29 30 29 30 29 30 30 29 30 +1487=30 29 30 29 30 29 29 30 29 30 29 30 +1488=30 29 30 30 29 30 29 29 30 29 30 29 +1489=30 29 30 30 30 29 30 29 29 30 29 30 +1490=29 30 29 30 30 29 30 30 29 29 30 29 +1491=30 29 29 30 30 29 30 30 29 30 29 30 +1492=29 30 29 29 30 30 29 30 29 30 30 29 +1493=30 29 30 29 30 29 29 30 29 30 30 30 +1494=29 30 29 30 29 30 29 29 29 30 30 30 +1495=29 30 30 29 30 29 29 30 29 29 30 30 +1496=29 30 30 30 29 30 29 29 30 29 29 30 +1497=30 29 30 30 29 30 29 30 29 30 29 30 +1498=29 30 29 30 29 30 30 29 30 29 30 29 +1499=30 29 30 29 29 30 30 29 30 29 30 30 +1500=29 30 29 30 29 29 30 29 30 29 30 30 +1501=30 29 30 29 30 29 29 29 30 29 30 30 +1502=30 30 29 30 29 30 29 29 29 30 30 29 +1503=30 30 29 30 30 29 30 29 29 29 30 30 +1504=29 30 29 30 30 30 29 29 30 29 30 29 +1505=30 29 30 29 30 30 29 30 29 30 30 29 +1506=29 30 29 29 30 30 29 30 30 29 30 30 +1507=29 29 30 29 29 30 30 29 30 29 30 30 +1508=30 29 29 30 29 30 29 29 30 29 30 30 +1509=30 29 30 29 30 29 30 29 29 30 29 30 +1510=30 29 30 30 29 30 29 30 29 29 30 29 +1511=30 29 30 30 29 30 30 29 30 29 29 30 +1512=29 30 29 30 29 30 30 30 29 30 29 30 +1513=29 29 29 30 29 30 30 30 29 30 30 29 +1514=30 29 29 29 30 29 30 30 29 30 30 30 +1515=29 29 30 29 29 30 29 30 30 29 30 30 +1516=29 30 29 30 29 29 30 29 30 29 30 30 +1517=29 30 29 30 29 30 30 29 29 30 29 30 +1518=29 30 29 30 30 29 30 30 29 30 29 29 +1519=30 29 29 30 30 30 29 30 30 29 30 29 +1520=29 30 29 29 30 30 30 29 30 30 29 30 +1521=29 29 29 30 29 30 30 29 30 30 29 30 +1522=30 29 29 29 30 29 30 30 29 30 30 29 +1523=30 29 30 29 30 29 30 29 29 30 30 29 +1524=30 30 29 30 29 30 29 30 29 29 30 29 +1525=30 30 29 30 30 29 30 29 30 29 29 30 +1526=29 30 29 30 30 30 29 30 29 30 29 29 +1527=30 29 30 29 30 30 29 30 30 29 30 29 +1528=30 29 29 30 29 30 29 30 30 29 30 30 +1529=29 30 29 29 30 29 30 29 30 29 30 30 +1530=29 30 30 29 29 30 29 30 29 29 30 30 +1531=29 30 30 30 29 29 30 29 30 29 29 30 +1532=29 30 30 30 29 30 30 29 29 29 30 29 +1533=30 29 30 30 30 29 30 29 30 29 29 30 +1534=29 30 29 30 30 29 30 30 29 29 30 29 +1535=30 29 30 29 30 29 30 30 29 30 29 30 +1536=29 30 29 30 29 30 29 30 29 30 29 30 +1537=30 29 30 30 29 29 30 29 29 30 29 30 +1538=30 30 29 30 30 29 29 30 29 29 30 29 +1539=30 30 30 29 30 30 29 29 30 29 29 30 +1540=29 30 30 29 30 30 29 30 29 29 30 29 +1541=30 29 30 29 30 30 30 29 30 29 29 30 +1542=29 30 29 30 29 30 30 29 30 29 30 30 +1543=29 30 29 29 30 29 30 29 30 29 30 30 +1544=30 29 30 29 29 30 29 30 29 30 29 30 +1545=30 30 29 30 29 29 30 29 30 29 29 30 +1546=30 30 29 30 29 30 29 30 29 30 29 29 +1547=30 30 29 30 30 29 30 29 30 29 30 29 +1548=30 29 29 30 30 29 30 30 29 30 29 30 +1549=29 30 29 29 30 29 30 30 30 29 30 29 +1550=30 29 30 29 29 29 30 30 30 29 30 30 +1551=29 30 29 29 30 29 29 30 30 29 30 30 +1552=30 29 30 29 29 30 29 29 30 30 29 30 +1553=30 29 30 29 30 29 30 29 30 29 30 29 +1554=30 29 30 29 30 30 29 30 29 30 29 30 +1555=29 29 30 29 30 30 29 30 30 29 30 29 +1556=30 29 29 30 29 30 29 30 30 30 29 30 +1557=29 30 29 29 29 30 29 30 30 30 30 29 +1558=30 29 30 29 29 29 30 29 30 30 30 29 +1559=30 30 29 29 30 29 29 30 30 29 30 29 +1560=30 30 29 30 29 30 29 30 29 30 29 30 +1561=29 30 30 29 30 29 30 30 29 29 30 29 +1562=29 30 30 29 30 29 30 30 30 29 29 30 +1563=29 30 29 29 30 29 30 30 30 29 30 29 +1564=30 29 30 29 29 30 29 30 30 30 29 30 +1565=29 30 29 30 29 29 30 29 30 30 29 30 +1566=30 29 30 29 30 29 29 30 29 30 29 30 +1567=30 29 30 30 29 30 29 30 29 29 30 29 +1568=30 29 30 30 30 29 30 29 30 29 29 29 +1569=30 29 30 30 30 29 30 30 29 30 29 29 +1570=29 30 29 30 30 29 30 30 30 29 29 30 +1571=29 29 30 29 30 30 29 30 30 29 30 29 +1572=30 29 29 30 29 30 29 30 30 29 30 29 +1573=30 29 30 30 29 30 29 29 30 29 30 29 +1574=30 30 29 30 30 29 30 29 29 30 29 29 +1575=30 30 30 29 30 30 29 30 29 29 29 30 +1576=29 30 30 29 30 30 30 29 30 29 29 29 +1577=30 29 30 30 29 30 30 29 30 29 30 29 +1578=29 30 29 30 29 30 30 29 30 30 29 30 +1579=29 30 29 30 29 29 30 30 29 30 29 30 +1580=29 30 30 29 30 29 29 30 29 30 29 30 +1581=30 30 29 30 29 30 29 29 30 29 30 29 +1582=30 30 29 30 30 29 30 29 30 29 29 29 +1583=30 30 29 30 30 30 29 30 29 30 29 29 +1584=29 30 30 29 30 30 29 30 30 29 30 29 +1585=29 30 29 30 29 30 29 30 30 29 30 30 +1586=29 29 30 29 30 29 29 30 30 30 29 30 +1587=29 30 30 29 29 29 30 29 30 29 30 30 +1588=30 29 30 30 29 29 29 30 29 30 29 30 +1589=30 29 30 30 29 30 29 29 30 29 30 29 +1590=30 29 30 30 30 29 29 30 29 30 29 30 +1591=29 30 29 30 30 29 30 29 30 29 30 29 +1592=30 29 30 29 30 29 30 29 30 30 30 29 +1593=30 29 29 30 29 29 30 29 30 30 30 29 +1594=30 30 29 29 30 29 29 29 30 30 30 30 +1595=29 30 29 30 29 29 30 29 29 30 30 30 +1596=29 30 30 29 30 29 29 30 29 30 29 30 +1597=29 30 30 29 30 29 30 29 30 29 30 29 +1598=30 29 30 29 30 30 29 30 29 30 30 29 +1599=29 30 29 30 29 30 29 30 30 30 29 30 +1600=29 29 30 29 30 29 29 30 30 30 29 30 diff --git a/launch4j/jre/lib/i386/jvm.cfg b/launch4j/jre/lib/i386/jvm.cfg new file mode 100644 index 0000000..2bacbb6 --- /dev/null +++ b/launch4j/jre/lib/i386/jvm.cfg @@ -0,0 +1,34 @@ +# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# List of JVMs that can be used as an option to java, javac, etc. +# Order is important -- first in this list is the default JVM. +# NOTE that this both this file and its format are UNSUPPORTED and +# WILL GO AWAY in a future release. +# +# You may also select a JVM in an arbitrary location with the +# "-XXaltjvm=" option, but that too is unsupported +# and may not be available in a future release. +# +-client KNOWN +-server KNOWN diff --git a/launch4j/jre/lib/images/cursors/cursors.properties b/launch4j/jre/lib/images/cursors/cursors.properties new file mode 100644 index 0000000..77ce925 --- /dev/null +++ b/launch4j/jre/lib/images/cursors/cursors.properties @@ -0,0 +1,40 @@ +# +# +# Cursors Properties file +# +# Names GIF89 sources for Custom Cursors and their associated HotSpots +# +# Note: the syntax of the property name is significant and is parsed +# by java.awt.Cursor +# +# The syntax is: Cursor...File=win32_ +# Cursor...HotSpot=, +# Cursor...Name= +# +Cursor.CopyDrop.32x32.File=win32_CopyDrop32x32.gif +Cursor.CopyDrop.32x32.HotSpot=0,0 +Cursor.CopyDrop.32x32.Name=CopyDrop32x32 +# +Cursor.MoveDrop.32x32.File=win32_MoveDrop32x32.gif +Cursor.MoveDrop.32x32.HotSpot=0,0 +Cursor.MoveDrop.32x32.Name=MoveDrop32x32 +# +Cursor.LinkDrop.32x32.File=win32_LinkDrop32x32.gif +Cursor.LinkDrop.32x32.HotSpot=0,0 +Cursor.LinkDrop.32x32.Name=LinkDrop32x32 +# +Cursor.CopyNoDrop.32x32.File=win32_CopyNoDrop32x32.gif +Cursor.CopyNoDrop.32x32.HotSpot=6,2 +Cursor.CopyNoDrop.32x32.Name=CopyNoDrop32x32 +# +Cursor.MoveNoDrop.32x32.File=win32_MoveNoDrop32x32.gif +Cursor.MoveNoDrop.32x32.HotSpot=6,2 +Cursor.MoveNoDrop.32x32.Name=MoveNoDrop32x32 +# +Cursor.LinkNoDrop.32x32.File=win32_LinkNoDrop32x32.gif +Cursor.LinkNoDrop.32x32.HotSpot=6,2 +Cursor.LinkNoDrop.32x32.Name=LinkNoDrop32x32 +# +Cursor.Invalid.32x32.File=invalid32x32.gif +Cursor.Invalid.32x32.HotSpot=6,2 +Cursor.Invalid.32x32.Name=Invalid32x32 diff --git a/launch4j/jre/lib/images/cursors/invalid32x32.gif b/launch4j/jre/lib/images/cursors/invalid32x32.gif new file mode 100644 index 0000000..64c265d Binary files /dev/null and b/launch4j/jre/lib/images/cursors/invalid32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_CopyDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_CopyDrop32x32.gif new file mode 100644 index 0000000..8a47b47 Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_CopyDrop32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_CopyNoDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_CopyNoDrop32x32.gif new file mode 100644 index 0000000..64c265d Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_CopyNoDrop32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_LinkDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_LinkDrop32x32.gif new file mode 100644 index 0000000..be3628f Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_LinkDrop32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_LinkNoDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_LinkNoDrop32x32.gif new file mode 100644 index 0000000..64c265d Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_LinkNoDrop32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_MoveDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_MoveDrop32x32.gif new file mode 100644 index 0000000..a2d986b Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_MoveDrop32x32.gif differ diff --git a/launch4j/jre/lib/images/cursors/win32_MoveNoDrop32x32.gif b/launch4j/jre/lib/images/cursors/win32_MoveNoDrop32x32.gif new file mode 100644 index 0000000..64c265d Binary files /dev/null and b/launch4j/jre/lib/images/cursors/win32_MoveNoDrop32x32.gif differ diff --git a/launch4j/jre/lib/jce.jar b/launch4j/jre/lib/jce.jar new file mode 100755 index 0000000..76beb62 Binary files /dev/null and b/launch4j/jre/lib/jce.jar differ diff --git a/launch4j/jre/lib/jfr.jar b/launch4j/jre/lib/jfr.jar new file mode 100755 index 0000000..6583f64 Binary files /dev/null and b/launch4j/jre/lib/jfr.jar differ diff --git a/launch4j/jre/lib/jfr/default.jfc b/launch4j/jre/lib/jfr/default.jfc new file mode 100644 index 0000000..92b302f --- /dev/null +++ b/launch4j/jre/lib/jfr/default.jfc @@ -0,0 +1,845 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + + + + true + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + 20 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 20 ms + + + + true + 20 ms + + + + true + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + true + 10 ms + + + + true + true + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + + + + false + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + true + false + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 1000 ms + + + + true + 60 s + + + + false + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + false + true + + + + false + true + + + + true + everyChunk + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + true + 10 ms + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 ms + + 20 ms + + 20 ms + + false + + + + diff --git a/launch4j/jre/lib/jfr/profile.jfc b/launch4j/jre/lib/jfr/profile.jfc new file mode 100644 index 0000000..1070a45 --- /dev/null +++ b/launch4j/jre/lib/jfr/profile.jfc @@ -0,0 +1,846 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + + + + true + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 ms + + + + true + 20 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + true + + + + true + 60 s + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + true + true + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 100 ms + + + + true + 10 s + + + + true + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + true + true + + + + true + true + + + + true + everyChunk + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + 10 ms + true + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 ms + + 10 ms + + 10 ms + + false + + + + diff --git a/launch4j/jre/lib/jsse.jar b/launch4j/jre/lib/jsse.jar new file mode 100755 index 0000000..2a0743d Binary files /dev/null and b/launch4j/jre/lib/jsse.jar differ diff --git a/launch4j/jre/lib/jvm.hprof.txt b/launch4j/jre/lib/jvm.hprof.txt new file mode 100644 index 0000000..3c8e5fc --- /dev/null +++ b/launch4j/jre/lib/jvm.hprof.txt @@ -0,0 +1,86 @@ +Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + - Neither the name of Oracle nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (JDK 5.0 JVMTI based) + +WARNING! This file format is under development, and is subject to +change without notice. + +This file contains the following types of records: + +THREAD START +THREAD END mark the lifetime of Java threads + +TRACE represents a Java stack trace. Each trace consists + of a series of stack frames. Other records refer to + TRACEs to identify (1) where object allocations have + taken place, (2) the frames in which GC roots were + found, and (3) frequently executed methods. + +HEAP DUMP is a complete snapshot of all live objects in the Java + heap. Following distinctions are made: + + ROOT root set as determined by GC + CLS classes + OBJ instances + ARR arrays + +SITES is a sorted list of allocation sites. This identifies + the most heavily allocated object types, and the TRACE + at which those allocations occurred. + +CPU SAMPLES is a statistical profile of program execution. The VM + periodically samples all running threads, and assigns + a quantum to active TRACEs in those threads. Entries + in this record are TRACEs ranked by the percentage of + total quanta they consumed; top-ranked TRACEs are + typically hot spots in the program. + +CPU TIME is a profile of program execution obtained by measuring + the time spent in individual methods (excluding the time + spent in callees), as well as by counting the number of + times each method is called. Entries in this record are + TRACEs ranked by the percentage of total CPU time. The + "count" field indicates the number of times each TRACE + is invoked. + +MONITOR TIME is a profile of monitor contention obtained by measuring + the time spent by a thread waiting to enter a monitor. + Entries in this record are TRACEs ranked by the percentage + of total monitor contention time and a brief description + of the monitor. The "count" field indicates the number of + times the monitor was contended at that TRACE. + +MONITOR DUMP is a complete snapshot of all the monitors and threads in + the System. + +HEAP DUMP, SITES, CPU SAMPLES|TIME and MONITOR DUMP|TIME records are generated +at program exit. They can also be obtained during program execution by typing +Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32). diff --git a/launch4j/jre/lib/logging.properties b/launch4j/jre/lib/logging.properties new file mode 100644 index 0000000..65cf1b1 --- /dev/null +++ b/launch4j/jre/lib/logging.properties @@ -0,0 +1,59 @@ +############################################################ +# Default Logging Configuration File +# +# You can use a different file by specifying a filename +# with the java.util.logging.config.file system property. +# For example java -Djava.util.logging.config.file=myfile +############################################################ + +############################################################ +# Global properties +############################################################ + +# "handlers" specifies a comma separated list of log Handler +# classes. These handlers will be installed during VM startup. +# Note that these classes must be on the system classpath. +# By default we only configure a ConsoleHandler, which will only +# show messages at the INFO and above levels. +handlers= java.util.logging.ConsoleHandler + +# To also add the FileHandler, use the following line instead. +#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +# Default global logging level. +# This specifies which kinds of events are logged across +# all loggers. For any given facility this global level +# can be overriden by a facility specific level +# Note that the ConsoleHandler also has a separate level +# setting to limit messages printed to the console. +.level= INFO + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# default file output is in user's home directory. +java.util.logging.FileHandler.pattern = %h/java%u.log +java.util.logging.FileHandler.limit = 50000 +java.util.logging.FileHandler.count = 1 +java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter + +# Limit the message that are printed on the console to INFO and above. +java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# Example to customize the SimpleFormatter output format +# to print one-line log message like this: +# : [] +# +# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +# For example, set the com.xyz.foo logger to only log SEVERE +# messages: +com.xyz.foo.level = SEVERE diff --git a/launch4j/jre/lib/management-agent.jar b/launch4j/jre/lib/management-agent.jar new file mode 100755 index 0000000..dcb335a Binary files /dev/null and b/launch4j/jre/lib/management-agent.jar differ diff --git a/launch4j/jre/lib/management/jmxremote.access b/launch4j/jre/lib/management/jmxremote.access new file mode 100644 index 0000000..ce80b47 --- /dev/null +++ b/launch4j/jre/lib/management/jmxremote.access @@ -0,0 +1,79 @@ +###################################################################### +# Default Access Control File for Remote JMX(TM) Monitoring +###################################################################### +# +# Access control file for Remote JMX API access to monitoring. +# This file defines the allowed access for different roles. The +# password file (jmxremote.password by default) defines the roles and their +# passwords. To be functional, a role must have an entry in +# both the password and the access files. +# +# The default location of this file is $JRE/lib/management/jmxremote.access +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# (See that file for details) +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# A typical access file has multiple lines, where each line is blank, +# a comment (like this one), or an access control entry. +# +# An access control entry consists of a role name, and an +# associated access level. The role name is any string that does not +# itself contain spaces or tabs. It corresponds to an entry in the +# password file (jmxremote.password). The access level is one of the +# following: +# "readonly" grants access to read attributes of MBeans. +# For monitoring, this means that a remote client in this +# role can read measurements but cannot perform any action +# that changes the environment of the running program. +# "readwrite" grants access to read and write attributes of MBeans, +# to invoke operations on them, and optionally +# to create or remove them. This access should be granted +# only to trusted clients, since they can potentially +# interfere with the smooth operation of a running program. +# +# The "readwrite" access level can optionally be followed by the "create" and/or +# "unregister" keywords. The "unregister" keyword grants access to unregister +# (delete) MBeans. The "create" keyword grants access to create MBeans of a +# particular class or of any class matching a particular pattern. Access +# should only be granted to create MBeans of known and trusted classes. +# +# For example, the following entry would grant readwrite access +# to "controlRole", as well as access to create MBeans of the class +# javax.management.monitor.CounterMonitor and to unregister any MBean: +# controlRole readwrite \ +# create javax.management.monitor.CounterMonitorMBean \ +# unregister +# or equivalently: +# controlRole readwrite unregister create javax.management.monitor.CounterMBean +# +# The following entry would grant readwrite access as well as access to create +# MBeans of any class in the packages javax.management.monitor and +# javax.management.timer: +# controlRole readwrite \ +# create javax.management.monitor.*,javax.management.timer.* \ +# unregister +# +# The \ character is defined in the Properties file syntax to allow continuation +# lines as shown here. A * in a class pattern matches a sequence of characters +# other than dot (.), so javax.management.monitor.* matches +# javax.management.monitor.CounterMonitor but not +# javax.management.monitor.foo.Bar. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last +# access entry is used. +# +# +# Default access control entries: +# o The "monitorRole" role has readonly access. +# o The "controlRole" role has readwrite access and can create the standard +# Timer and Monitor MBeans defined by the JMX API. + +monitorRole readonly +controlRole readwrite \ + create javax.management.monitor.*,javax.management.timer.* \ + unregister diff --git a/launch4j/jre/lib/management/jmxremote.password.template b/launch4j/jre/lib/management/jmxremote.password.template new file mode 100644 index 0000000..a7e7daa --- /dev/null +++ b/launch4j/jre/lib/management/jmxremote.password.template @@ -0,0 +1,64 @@ +# ---------------------------------------------------------------------- +# Template for jmxremote.password +# +# o Copy this template to jmxremote.password +# o Set the user/password entries in jmxremote.password +# o Change the permission of jmxremote.password to read-only +# by the owner. +# +# See below for the location of jmxremote.password file. +# ---------------------------------------------------------------------- + +############################################################## +# Password File for Remote JMX Monitoring +############################################################## +# +# Password file for Remote JMX API access to monitoring. This +# file defines the different roles and their passwords. The access +# control file (jmxremote.access by default) defines the allowed +# access for each role. To be functional, a role must have an entry +# in both the password and the access files. +# +# Default location of this file is $JRE/lib/management/jmxremote.password +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# or by specifying a system property (See that file for details). + + +############################################################## +# File permissions of the jmxremote.password file +############################################################## +# Since there are cleartext passwords stored in this file, +# this file must be readable by ONLY the owner, +# otherwise the program will exit with an error. +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# Typical password file has multiple lines, where each line is blank, +# a comment (like this one), or a password entry. +# +# +# A password entry consists of a role name and an associated +# password. The role name is any string that does not itself contain +# spaces or tabs. The password is again any string that does not +# contain spaces or tabs. Note that passwords appear in the clear in +# this file, so it is a good idea not to use valuable passwords. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last one +# is used. +# +# In a typical installation, this file can be read by anybody on the +# local machine, and possibly by people on other machines. +# For # security, you should either restrict the access to this file, +# or specify another, less accessible file in the management config file +# as described above. +# +# Following are two commented-out entries. The "measureRole" role has +# password "QED". The "controlRole" role has password "R&D". +# +# monitorRole QED +# controlRole R&D + diff --git a/launch4j/jre/lib/management/management.properties b/launch4j/jre/lib/management/management.properties new file mode 100644 index 0000000..70efa2e --- /dev/null +++ b/launch4j/jre/lib/management/management.properties @@ -0,0 +1,331 @@ +##################################################################### +# Default Configuration File for Java Platform Management +##################################################################### +# +# The Management Configuration file (in java.util.Properties format) +# will be read if one of the following system properties is set: +# -Dcom.sun.management.jmxremote.port= +# or -Dcom.sun.management.snmp.port= +# or -Dcom.sun.management.config.file= +# +# The default Management Configuration file is: +# +# $JRE/lib/management/management.properties +# +# Another location for the Management Configuration File can be specified +# by the following property on the Java command line: +# +# -Dcom.sun.management.config.file= +# +# If -Dcom.sun.management.config.file= is set, the port +# number for the management agent can be specified in the config file +# using the following lines: +# +# ################ Management Agent Port ######################### +# +# For setting the JMX RMI agent port use the following line +# com.sun.management.jmxremote.port= +# +# For setting the SNMP agent port use the following line +# com.sun.management.snmp.port= + +##################################################################### +# Optional Instrumentation +##################################################################### +# +# By default only the basic instrumentation with low overhead is on. +# The following properties allow to selectively turn on optional +# instrumentation which are off by default and may have some +# additional overhead. +# +# com.sun.management.enableThreadContentionMonitoring +# +# This option enables thread contention monitoring if the +# Java virtual machine supports such instrumentation. +# Refer to the specification for the java.lang.management.ThreadMBean +# interface - see isThreadContentionMonitoringSupported() method. +# + +# To enable thread contention monitoring, uncomment the following line +# com.sun.management.enableThreadContentionMonitoring + +##################################################################### +# SNMP Management Properties +##################################################################### +# +# If the system property -Dcom.sun.management.snmp.port= +# is set then +# - The SNMP agent (with the Java virtual machine MIB) is started +# that listens on the specified port for incoming SNMP requests. +# - the following properties for read for SNMP management. +# +# The configuration can be specified only at startup time. +# Later changes to the above system property (e.g. via setProperty method), this +# config file, or the ACL file has no effect to the running SNMP agent. +# + +# +# ##################### SNMP Trap Port ######################### +# +# com.sun.management.snmp.trap= +# Specifies the remote port number at which managers are expected +# to listen for trap. For each host defined in the ACL file, +# the SNMP agent will send traps at : +# Default for this property is 162. +# + +# To set port for sending traps to a different port use the following line +# com.sun.management.snmp.trap= + +# +# ################ SNMP listen interface ######################### +# +# com.sun.management.snmp.interface= +# Specifies the local interface on which the SNMP agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# Default for this property is "localhost". +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# + +# For restricting the port on which SNMP agent listens use the following line +# com.sun.management.snmp.interface= + +# +# #################### SNMP ACL file ######################### +# +# com.sun.management.snmp.acl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then the ACL file +# is not checked: all manager hosts are allowed all access. +# + +# For SNMP without checking ACL file uncomment the following line +# com.sun.management.snmp.acl=false + +# +# com.sun.management.snmp.acl.file=filepath +# Specifies location for ACL file +# This is optional - default location is +# $JRE/lib/management/snmp.acl +# +# If the property "com.sun.management.snmp.acl" is set to false, +# then this property and the ACL file are ignored. +# Otherwise the ACL file must exist and be in the valid format. +# If the ACL file is empty or non existent then no access is allowed. +# +# The SNMP agent will read the ACL file at startup time. +# Modification to the ACL file has no effect to any running SNMP +# agents which read that ACL file at startup. +# + +# For a non-default acl file location use the following line +# com.sun.management.snmp.acl.file=filepath + +##################################################################### +# RMI Management Properties +##################################################################### +# +# If system property -Dcom.sun.management.jmxremote.port= +# is set then +# - A MBean server is started +# - JRE Platform MBeans are registered in the MBean server +# - RMI connector is published in a private readonly registry at +# specified port using a well known name, "jmxrmi" +# - the following properties are read for JMX remote management. +# +# The configuration can be specified only at startup time. +# Later changes to above system property (e.g. via setProperty method), +# this config file, the password file, or the access file have no effect to the +# running MBean server, the connector, or the registry. +# + +# +# ########## RMI connector settings for local management ########## +# +# com.sun.management.jmxremote.local.only=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as true then the local JMX RMI connector +# server will only accept connection requests from clients running on +# the host where the out-of-the-box JMX management agent is running. +# In order to ensure backwards compatibility this property could be +# set to false. However, deploying the local management agent in this +# way is discouraged because the local JMX RMI connector server will +# accept connection requests from any client either local or remote. +# For remote management the remote JMX RMI connector server should +# be used instead with authentication and SSL/TLS encryption enabled. +# + +# For allowing the local management agent accept local +# and remote connection requests use the following line +# com.sun.management.jmxremote.local.only=false + +# +# ###################### RMI SSL ############################# +# +# com.sun.management.jmxremote.ssl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then SSL is not used. +# + +# For RMI monitoring without SSL use the following line +# com.sun.management.jmxremote.ssl=false + +# com.sun.management.jmxremote.ssl.config.file=filepath +# Specifies the location of the SSL configuration file. A properties +# file can be used to supply the keystore and truststore location and +# password settings thus avoiding to pass them as cleartext in the +# command-line. +# +# The current implementation of the out-of-the-box management agent will +# look up and use the properties specified below to configure the SSL +# keystore and truststore, if present: +# javax.net.ssl.keyStore= +# javax.net.ssl.keyStorePassword= +# javax.net.ssl.trustStore= +# javax.net.ssl.trustStorePassword= +# Any other properties in the file will be ignored. This will allow us +# to extend the property set in the future if required by the default +# SSL implementation. +# +# If the property "com.sun.management.jmxremote.ssl" is set to false, +# then this property is ignored. +# + +# For supplying the keystore settings in a file use the following line +# com.sun.management.jmxremote.ssl.config.file=filepath + +# com.sun.management.jmxremote.ssl.enabled.cipher.suites= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS cipher suites to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS cipher suites are enabled +# for use by accepted connections. If this property is not specified then +# the SSL/TLS RMI Server Socket Factory uses the SSL/TLS cipher suites that +# are enabled by default. +# + +# com.sun.management.jmxremote.ssl.enabled.protocols= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS protocol versions to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS protocol versions are +# enabled for use by accepted connections. If this property is not +# specified then the SSL/TLS RMI Server Socket Factory uses the SSL/TLS +# protocol versions that are enabled by default. +# + +# com.sun.management.jmxremote.ssl.need.client.auth=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true in conjunction with the previous +# property "com.sun.management.jmxremote.ssl" then the SSL/TLS RMI Server +# Socket Factory will require client authentication. +# + +# For RMI monitoring with SSL client authentication use the following line +# com.sun.management.jmxremote.ssl.need.client.auth=true + +# com.sun.management.jmxremote.registry.ssl=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true then the RMI registry used +# to bind the RMIServer remote object is protected with SSL/TLS +# RMI Socket Factories that can be configured with the properties: +# com.sun.management.jmxremote.ssl.config.file +# com.sun.management.jmxremote.ssl.enabled.cipher.suites +# com.sun.management.jmxremote.ssl.enabled.protocols +# com.sun.management.jmxremote.ssl.need.client.auth +# If the two properties below are true at the same time, i.e. +# com.sun.management.jmxremote.ssl=true +# com.sun.management.jmxremote.registry.ssl=true +# then the RMIServer remote object and the RMI registry are +# both exported with the same SSL/TLS RMI Socket Factories. +# + +# For using an SSL/TLS protected RMI registry use the following line +# com.sun.management.jmxremote.registry.ssl=true + +# +# ################ RMI User authentication ################ +# +# com.sun.management.jmxremote.authenticate=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then no authentication is +# performed and all users are allowed all access. +# + +# For RMI monitoring without any checking use the following line +# com.sun.management.jmxremote.authenticate=false + +# +# ################ RMI Login configuration ################### +# +# com.sun.management.jmxremote.login.config= +# Specifies the name of a JAAS login configuration entry to use when +# authenticating users of RMI monitoring. +# +# Setting this property is optional - the default login configuration +# specifies a file-based authentication that uses the password file. +# +# When using this property to override the default login configuration +# then the named configuration entry must be in a file that gets loaded +# by JAAS. In addition, the login module(s) specified in the configuration +# should use the name and/or password callbacks to acquire the user's +# credentials. See the NameCallback and PasswordCallback classes in the +# javax.security.auth.callback package for more details. +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# + +# For a non-default login configuration use the following line +# com.sun.management.jmxremote.login.config= + +# +# ################ RMI Password file location ################## +# +# com.sun.management.jmxremote.password.file=filepath +# Specifies location for password file +# This is optional - default location is +# $JRE/lib/management/jmxremote.password +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise the password file must exist and be in the valid format. +# If the password file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.password.file=filepath + +# +# ################ RMI Access file location ##################### +# +# com.sun.management.jmxremote.access.file=filepath +# Specifies location for access file +# This is optional - default location is +# $JRE/lib/management/jmxremote.access +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise, the access file must exist and be in the valid format. +# If the access file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.access.file=filepath +# + +# ################ Management agent listen interface ######################### +# +# com.sun.management.jmxremote.host= +# Specifies the local interface on which the JMX RMI agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# diff --git a/launch4j/jre/lib/management/snmp.acl.template b/launch4j/jre/lib/management/snmp.acl.template new file mode 100644 index 0000000..0e76676 --- /dev/null +++ b/launch4j/jre/lib/management/snmp.acl.template @@ -0,0 +1,110 @@ +# ---------------------------------------------------------------------- +# Template for SNMP Access Control List File +# +# o Copy this template to snmp.acl +# o Set access control for SNMP support +# o Change the permission of snmp.acl to be read-only +# by the owner. +# +# See below for the location of snmp.acl file. +# ---------------------------------------------------------------------- + +############################################################ +# SNMP Access Control List File +############################################################ +# +# Default location of this file is $JRE/lib/management/snmp.acl. +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# or by specifying a system property (See that file for details). +# + + +############################################################## +# File permissions of the snmp.acl file +############################################################## +# +# Since there are cleartext community strings stored in this file, +# this ACL file must be readable by ONLY the owner, +# otherwise the program will exit with an error. +# +############################################################## +# Format of the acl group +############################################################## +# +# communities: a list of SNMP community strings to which the +# access control applies separated by commas. +# +# access: either "read-only" or "read-write". +# +# managers: a list of hosts to be granted the access rights. +# Each can be expressed as any one of the following: +# - hostname: hubble +# - ip v4 and v6 addresses: 123.456.789.12 , fe80::a00:20ff:fe9b:ea82 +# - ip v4 and v6 netmask prefix notation: 123.456.789.0/24, +# fe80::a00:20ff:fe9b:ea82/64 +# see RFC 2373 (http://www.ietf.org/rfc/rfc2373.txt) +# +# An example of two community groups for multiple hosts: +# acl = { +# { +# communities = public, private +# access = read-only +# managers = hubble, snowbell, nanak +# } +# { +# communities = jerry +# access = read-write +# managers = hubble, telescope +# } +# } +# +############################################################## +# Format of the trap group +############################################################## +# +# trap-community: a single SNMP community string that will be included +# in the traps sent to the hosts. +# +# hosts: a list of hosts to which the SNMP agent will send traps. +# +# An example of two trap community definitions for multiple hosts: +# trap = { +# { +# trap-community = public +# hosts = hubble, snowbell +# } +# { +# trap-community = private +# hosts = telescope +# } +# } +# +############################################################ +# +# Update the community strings (public and private) below +# before copying this template file +# +# Common SNMP ACL Example +# ------------------------ +# +# o Only localhost can connect, and access rights +# are limited to read-only +# o Traps are sent to localhost only +# +# +# acl = { +# { +# communities = public, private +# access = read-only +# managers = localhost +# } +# } +# +# +# trap = { +# { +# trap-community = public +# hosts = localhost +# } +# } diff --git a/launch4j/jre/lib/meta-index b/launch4j/jre/lib/meta-index new file mode 100755 index 0000000..3a10c81 --- /dev/null +++ b/launch4j/jre/lib/meta-index @@ -0,0 +1,88 @@ +% VERSION 2 +% WARNING: this file is auto-generated; do not edit +% UNSUPPORTED: this file and its format may change and/or +% may be removed in a future release +# charsets.jar +sun/nio +sun/awt +! jce.jar +javax/crypto +sun/security +# jfr.jar +jdk/jfr +jdk/management +! jsse.jar +sun/security +com/sun/net/ +! management-agent.jar +@ resources.jar +com/sun/java/util/jar/pack/ +META-INF/services/sun.util.spi.XmlPropertiesProvider +META-INF/services/javax.print.PrintServiceLookup +com/sun/corba/ +META-INF/services/javax.sound.midi.spi.SoundbankReader +sun/print +META-INF/services/javax.sound.midi.spi.MidiFileReader +META-INF/services/sun.java2d.cmm.CMMServiceProvider +javax/swing +META-INF/services/javax.sound.sampled.spi.AudioFileReader +META-INF/services/javax.sound.midi.spi.MidiDeviceProvider +sun/net +META-INF/services/javax.sound.sampled.spi.AudioFileWriter +com/sun/imageio/ +META-INF/services/sun.java2d.pipe.RenderingEngine +META-INF/mimetypes.default +META-INF/services/javax.sound.midi.spi.MidiFileWriter +sun/rmi +javax/sql +META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin +com/sun/rowset/ +META-INF/services/javax.print.StreamPrintServiceFactory +META-INF/mailcap.default +java/lang +sun/text +javax/xml +META-INF/services/javax.sound.sampled.spi.MixerProvider +com/sun/xml/ +META-INF/services/com.sun.tools.internal.xjc.Plugin +com/sun/java/swing/ +com/sun/jndi/ +com/sun/org/ +META-INF/services/javax.sound.sampled.spi.FormatConversionProvider +! rt.jar +com/sun/java/util/jar/pack/ +java/ +org/ietf/ +com/sun/beans/ +com/sun/tracing/ +com/sun/java/browser/ +com/sun/corba/ +com/sun/media/ +com/sun/awt/ +com/sun/management/ +sun/ +com/sun/jmx/ +com/sun/demo/ +com/sun/imageio/ +com/sun/net/ +com/sun/rmi/ +org/w3c/ +com/sun/swing/ +com/sun/activation/ +com/sun/nio/ +com/sun/rowset/ +org/jcp/ +com/sun/istack/ +jdk/ +com/sun/naming/ +org/xml/ +org/omg/ +com/sun/security/ +com/sun/xml/ +com/sun/java/swing/ +com/oracle/ +com/sun/java_cup/ +com/sun/jndi/ +com/sun/accessibility/ +com/sun/org/ +javax/ diff --git a/launch4j/jre/lib/net.properties b/launch4j/jre/lib/net.properties new file mode 100644 index 0000000..a541eef --- /dev/null +++ b/launch4j/jre/lib/net.properties @@ -0,0 +1,121 @@ +############################################################ +# Default Networking Configuration File +# +# This file may contain default values for the networking system properties. +# These values are only used when the system properties are not specified +# on the command line or set programatically. +# For now, only the various proxy settings can be configured here. +############################################################ + +# Whether or not the DefaultProxySelector will default to System Proxy +# settings when they do exist. +# Set it to 'true' to enable this feature and check for platform +# specific proxy settings +# Note that the system properties that do explicitely set proxies +# (like http.proxyHost) do take precedence over the system settings +# even if java.net.useSystemProxies is set to true. + +java.net.useSystemProxies=false + +#------------------------------------------------------------------------ +# Proxy configuration for the various protocol handlers. +# DO NOT uncomment these lines if you have set java.net.useSystemProxies +# to true as the protocol specific properties will take precedence over +# system settings. +#------------------------------------------------------------------------ + +# HTTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# http.proxyHost= +# http.proxyPort=80 +http.nonProxyHosts=localhost|127.*|[::1] +# +# HTTPS Proxy Settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. +# +# https.proxyHost= +# https.proxyPort=443 +# +# FTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# ftp.proxyHost= +# ftp.proxyPort=80 +ftp.nonProxyHosts=localhost|127.*|[::1] +# +# Gopher Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) +# +# gopher.proxyHost= +# gopher.proxyPort=80 +# +# Socks proxy settings. socksProxyHost is the name of the proxy server +# (e.g. socks.domain.com), socksProxyPort is the port number to use +# (default value is 1080) +# +# socksProxyHost= +# socksProxyPort=1080 +# +# HTTP Keep Alive settings. remainingData is the maximum amount of data +# in kilobytes that will be cleaned off the underlying socket so that it +# can be reused (default value is 512K), queuedConnections is the maximum +# number of Keep Alive connections to be on the queue for clean up (default +# value is 10). +# http.KeepAlive.remainingData=512 +# http.KeepAlive.queuedConnections=10 + +# Authentication Scheme restrictions for HTTP and HTTPS. +# +# In some environments certain authentication schemes may be undesirable +# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the +# cleartext transmission of the user's password over the physical network. +# This section describes the mechanism for disabling authentication schemes +# based on the scheme name. Disabled schemes will be treated as if they are not +# supported by the implementation. +# +# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication +# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. +# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication +# schemes that will be disabled when proxying HTTP. +# +# In both cases the property is a comma-separated list of, case-insensitive, +# authentication scheme names, as defined by their relevant RFCs. An +# implementation may, but is not required to, support common schemes whose names +# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that +# is not known, or not supported, by the implementation is ignored. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +#jdk.http.auth.proxying.disabledSchemes= +jdk.http.auth.tunneling.disabledSchemes=Basic + +# +# Transparent NTLM HTTP authentication mode on Windows. Transparent authentication +# can be used for the NTLM scheme, where the security credentials based on the +# currently logged in user's name and password can be obtained directly from the +# operating system, without prompting the user. This property has three possible +# values which regulate the behavior as shown below. Other unrecognized values +# are handled the same as 'disabled'. Note, that NTLM is not considered to be a +# strongly secure authentication scheme and care should be taken before enabling +# this mechanism. +# +# Transparent authentication never used. +#jdk.http.ntlm.transparentAuth=disabled +# +# Enabled for all hosts. +#jdk.http.ntlm.transparentAuth=allHosts +# +# Enabled for hosts that are trusted in Windows Internet settings +#jdk.http.ntlm.transparentAuth=trustedHosts +# +jdk.http.ntlm.transparentAuth=disabled diff --git a/launch4j/jre/lib/psfont.properties.ja b/launch4j/jre/lib/psfont.properties.ja new file mode 100644 index 0000000..d17cf40 --- /dev/null +++ b/launch4j/jre/lib/psfont.properties.ja @@ -0,0 +1,119 @@ +# +# +# Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# Japanese PostScript printer property file +# +font.num=16 +# +serif=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +monospaced=monospaced +courier=monospaced +dialog=sansserif +dialoginput=monospaced +# +serif.latin1.plain=Times-Roman +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.latin1.bold=Times-Bold +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.latin1.bold=Helvetica-Bold +# +monospaced.latin1.plain=Courier +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.latin1.bold=Courier-Bold +# +serif.x11jis0208.plain=Ryumin-Light-H +serif.x11jis0208.italic=Ryumin-Light-H +serif.x11jis0208.bolditalic=Ryumin-Light-H +serif.x11jis0208.bold=Ryumin-Light-H +# +sansserif.x11jis0208.plain=GothicBBB-Medium-H +sansserif.x11jis0208.italic=GothicBBB-Medium-H +sansserif.x11jis0208.bolditalic=GothicBBB-Medium-H +sansserif.x11jis0208.bold=GothicBBB-Medium-H +# +monospaced.x11jis0208.plain=GothicBBB-Medium-H +monospaced.x11jis0208.italic=GothicBBB-Medium-H +monospaced.x11jis0208.bolditalic=GothicBBB-Medium-H +monospaced.x11jis0208.bold=GothicBBB-Medium-H +# +serif.x11jis0201.plain=Ryumin-Light.Hankaku +serif.x11jis0201.italic=Ryumin-Light.Hankaku +serif.x11jis0201.bolditalic=Ryumin-Light.Hankaku +serif.x11jis0201.bold=Ryumin-Light.Hankaku +# +sansserif.x11jis0201.plain=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.italic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +monospaced.x11jis0201.plain=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.italic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +Helvetica=0 +Helvetica-Bold=1 +Helvetica-Oblique=2 +Helvetica-BoldOblique=3 +Times-Roman=4 +Times-Bold=5 +Times-Italic=6 +Times-BoldItalic=7 +Courier=8 +Courier-Bold=9 +Courier-Oblique=10 +Courier-BoldOblique=11 +GothicBBB-Medium-H=12 +Ryumin-Light-H=13 +GothicBBB-Medium.Hankaku=14 +Ryumin-Light.Hankaku=15 +# +font.0=Helvetica ISOF +font.1=Helvetica-Bold ISOF +font.2=Helvetica-Oblique ISOF +font.3=Helvetica-BoldOblique ISOF +font.4=Times-Roman ISOF +font.5=Times-Bold ISOF +font.6=Times-Italic ISOF +font.7=Times-BoldItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-Oblique ISOF +font.11=Courier-BoldOblique ISOF +font.12=GothicBBB-Medium-H findfont +font.13=Ryumin-Light-H findfont +font.14=GothicBBB-Medium.Hankaku findfont +font.15=Ryumin-Light.Hankaku findfont +# diff --git a/launch4j/jre/lib/psfontj2d.properties b/launch4j/jre/lib/psfontj2d.properties new file mode 100644 index 0000000..5eb2c4b --- /dev/null +++ b/launch4j/jre/lib/psfontj2d.properties @@ -0,0 +1,323 @@ +# +# +# Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. + +# +# PostScript printer property file for Java 2D printing. +# +# WARNING: This is an internal implementation file, not a public file. +# Any customisation or reliance on the existence of this file and its +# contents or syntax is discouraged and unsupported. +# It may be incompatibly changed or removed without any notice. +# +# +font.num=35 +# +# Legacy logical font family names and logical font aliases should all +# map to the primary logical font names. +# +serif=serif +times=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +dialog=sansserif +dialoginput=monospaced +monospaced=monospaced +courier=monospaced +# +# Next, physical fonts which can be safely mapped to standard postscript fonts +# These keys generally map to a value which is the same as the key, so +# the key/value is just a way to say the font has a mapping. +# Sometimes however we map more than one screen font to the same PS font. +# +avantgarde=avantgarde_book +avantgarde_book=avantgarde_book +avantgarde_demi=avantgarde_demi +avantgarde_book_oblique=avantgarde_book_oblique +avantgarde_demi_oblique=avantgarde_demi_oblique +# +itcavantgarde=avantgarde_book +itcavantgarde=avantgarde_book +itcavantgarde_demi=avantgarde_demi +itcavantgarde_oblique=avantgarde_book_oblique +itcavantgarde_demi_oblique=avantgarde_demi_oblique +# +bookman=bookman_light +bookman_light=bookman_light +bookman_demi=bookman_demi +bookman_light_italic=bookman_light_italic +bookman_demi_italic=bookman_demi_italic +# +# Exclude "helvetica" on its own as that's a legacy name for a logical font +helvetica_bold=helvetica_bold +helvetica_oblique=helvetica_oblique +helvetica_bold_oblique=helvetica_bold_oblique +# +itcbookman_light=bookman_light +itcbookman_demi=bookman_demi +itcbookman_light_italic=bookman_light_italic +itcbookman_demi_italic=bookman_demi_italic +# +# Exclude "courier" on its own as that's a legacy name for a logical font +courier_bold=courier_bold +courier_oblique=courier_oblique +courier_bold_oblique=courier_bold_oblique +# +courier_new=courier +courier_new_bold=courier_bold +# +monotype_century_schoolbook=newcenturyschoolbook +monotype_century_schoolbook_bold=newcenturyschoolbook_bold +monotype_century_schoolbook_italic=newcenturyschoolbook_italic +monotype_century_schoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +newcenturyschoolbook=newcenturyschoolbook +newcenturyschoolbook_bold=newcenturyschoolbook_bold +newcenturyschoolbook_italic=newcenturyschoolbook_italic +newcenturyschoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +palatino=palatino +palatino_bold=palatino_bold +palatino_italic=palatino_italic +palatino_bold_italic=palatino_bold_italic +# +# Exclude "times" on its own as that's a legacy name for a logical font +times_bold=times_roman_bold +times_italic=times_roman_italic +times_bold_italic=times_roman_bold_italic +# +times_roman=times_roman +times_roman_bold=times_roman_bold +times_roman_italic=times_roman_italic +times_roman_bold_italic=times_roman_bold_italic +# +times_new_roman=times_roman +times_new_roman_bold=times_roman_bold +times_new_roman_italic=times_roman_italic +times_new_roman_bold_italic=times_roman_bold_italic +# +zapfchancery_italic=zapfchancery_italic +itczapfchancery_italic=zapfchancery_italic +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the logical fonts. +# +serif.latin1.plain=Times-Roman +serif.latin1.bold=Times-Bold +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.symbol.plain=Symbol +serif.dingbats.plain=ZapfDingbats +serif.symbol.bold=Symbol +serif.dingbats.bold=ZapfDingbats +serif.symbol.italic=Symbol +serif.dingbats.italic=ZapfDingbats +serif.symbol.bolditalic=Symbol +serif.dingbats.bolditalic=ZapfDingbats +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.bold=Helvetica-Bold +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.symbol.plain=Symbol +sansserif.dingbats.plain=ZapfDingbats +sansserif.symbol.bold=Symbol +sansserif.dingbats.bold=ZapfDingbats +sansserif.symbol.italic=Symbol +sansserif.dingbats.italic=ZapfDingbats +sansserif.symbol.bolditalic=Symbol +sansserif.dingbats.bolditalic=ZapfDingbats +# +monospaced.latin1.plain=Courier +monospaced.latin1.bold=Courier-Bold +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.symbol.plain=Symbol +monospaced.dingbats.plain=ZapfDingbats +monospaced.symbol.bold=Symbol +monospaced.dingbats.bold=ZapfDingbats +monospaced.symbol.italic=Symbol +monospaced.dingbats.italic=ZapfDingbats +monospaced.symbol.bolditalic=Symbol +monospaced.dingbats.bolditalic=ZapfDingbats +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the physical fonts. Since these always report style as plain, the +# style key is always plain. So we map using the face name to the correct +# style for the postscript font. This is possible since the face names can +# be replied upon to be different for each style. +# However an application may try to create a Font applying a style to an +# physical name. We want to map to the correct Postscript font there too +# if possible but we do not map cases where the application tries to +# augment a style (eg ask for a bold version of a bold font) +# Defer to the 2D package to attempt create an artificially styled version +# +avantgarde_book.latin1.plain=AvantGarde-Book +avantgarde_demi.latin1.plain=AvantGarde-Demi +avantgarde_book_oblique.latin1.plain=AvantGarde-BookOblique +avantgarde_demi_oblique.latin1.plain=AvantGarde-DemiOblique +# +avantgarde_book.latin1.bold=AvantGarde-Demi +avantgarde_book.latin1.italic=AvantGarde-BookOblique +avantgarde_book.latin1.bolditalic=AvantGarde-DemiOblique +avantgarde_demi.latin1.italic=AvantGarde-DemiOblique +avantgarde_book_oblique.latin1.bold=AvantGarde-DemiOblique +# +bookman_light.latin1.plain=Bookman-Light +bookman_demi.latin1.plain=Bookman-Demi +bookman_light_italic.latin1.plain=Bookman-LightItalic +bookman_demi_italic.latin1.plain=Bookman-DemiItalic +# +bookman_light.latin1.bold=Bookman-Demi +bookman_light.latin1.italic=Bookman-LightItalic +bookman_light.latin1.bolditalic=Bookman-DemiItalic +bookman_light_bold.latin1.italic=Bookman-DemiItalic +bookman_light_italic.latin1.bold=Bookman-DemiItalic +# +courier.latin1.plain=Courier +courier_bold.latin1.plain=Courier-Bold +courier_oblique.latin1.plain=Courier-Oblique +courier_bold_oblique.latin1.plain=Courier-BoldOblique +courier.latin1.bold=Courier-Bold +courier.latin1.italic=Courier-Oblique +courier.latin1.bolditalic=Courier-BoldOblique +courier_bold.latin1.italic=Courier-BoldOblique +courier_italic.latin1.bold=Courier-BoldOblique +# +helvetica_bold.latin1.plain=Helvetica-Bold +helvetica_oblique.latin1.plain=Helvetica-Oblique +helvetica_bold_oblique.latin1.plain=Helvetica-BoldOblique +helvetica.latin1.bold=Helvetica-Bold +helvetica.latin1.italic=Helvetica-Oblique +helvetica.latin1.bolditalic=Helvetica-BoldOblique +helvetica_bold.latin1.italic=Helvetica-BoldOblique +helvetica_italic.latin1.bold=Helvetica-BoldOblique +# +newcenturyschoolbook.latin1.plain=NewCenturySchlbk-Roman +newcenturyschoolbook_bold.latin1.plain=NewCenturySchlbk-Bold +newcenturyschoolbook_italic.latin1.plain=NewCenturySchlbk-Italic +newcenturyschoolbook_bold_italic.latin1.plain=NewCenturySchlbk-BoldItalic +newcenturyschoolbook.latin1.bold=NewCenturySchlbk-Bold +newcenturyschoolbook.latin1.italic=NewCenturySchlbk-Italic +newcenturyschoolbook.latin1.bolditalic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_bold.latin1.italic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_italic.latin1.bold=NewCenturySchlbk-BoldItalic +# +palatino.latin1.plain=Palatino-Roman +palatino_bold.latin1.plain=Palatino-Bold +palatino_italic.latin1.plain=Palatino-Italic +palatino_bold_italic.latin1.plain=Palatino-BoldItalic +palatino.latin1.bold=Palatino-Bold +palatino.latin1.italic=Palatino-Italic +palatino.latin1.bolditalic=Palatino-BoldItalic +palatino_bold.latin1.italic=Palatino-BoldItalic +palatino_italic.latin1.bold=Palatino-BoldItalic +# +times_roman.latin1.plain=Times-Roman +times_roman_bold.latin1.plain=Times-Bold +times_roman_italic.latin1.plain=Times-Italic +times_roman_bold_italic.latin1.plain=Times-BoldItalic +times_roman.latin1.bold=Times-Bold +times_roman.latin1.italic=Times-Italic +times_roman.latin1.bolditalic=Times-BoldItalic +times_roman_bold.latin1.italic=Times-BoldItalic +times_roman_italic.latin1.bold=Times-BoldItalic +# +zapfchancery_italic.latin1.plain=ZapfChancery-MediumItalic +# +# Finally the mappings of PS font names to indexes. +# +AvantGarde-Book=0 +AvantGarde-BookOblique=1 +AvantGarde-Demi=2 +AvantGarde-DemiOblique=3 +Bookman-Demi=4 +Bookman-DemiItalic=5 +Bookman-Light=6 +Bookman-LightItalic=7 +Courier=8 +Courier-Bold=9 +Courier-BoldOblique=10 +Courier-Oblique=11 +Helvetica=12 +Helvetica-Bold=13 +Helvetica-BoldOblique=14 +Helvetica-Narrow=15 +Helvetica-Narrow-Bold=16 +Helvetica-Narrow-BoldOblique=17 +Helvetica-Narrow-Oblique=18 +Helvetica-Oblique=19 +NewCenturySchlbk-Bold=20 +NewCenturySchlbk-BoldItalic=21 +NewCenturySchlbk-Italic=22 +NewCenturySchlbk-Roman=23 +Palatino-Bold=24 +Palatino-BoldItalic=25 +Palatino-Italic=26 +Palatino-Roman=27 +Symbol=28 +Times-Bold=29 +Times-BoldItalic=30 +Times-Italic=31 +Times-Roman=32 +ZapfDingbats=33 +ZapfChancery-MediumItalic=34 +# +font.0=AvantGarde-Book ISOF +font.1=AvantGarde-BookOblique ISOF +font.2=AvantGarde-Demi ISOF +font.3=AvantGarde-DemiOblique ISOF +font.4=Bookman-Demi ISOF +font.5=Bookman-DemiItalic ISOF +font.6=Bookman-Light ISOF +font.7=Bookman-LightItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-BoldOblique ISOF +font.11=Courier-Oblique ISOF +font.12=Helvetica ISOF +font.13=Helvetica-Bold ISOF +font.14=Helvetica-BoldOblique ISOF +font.15=Helvetica-Narrow ISOF +font.16=Helvetica-Narrow-Bold ISOF +font.17=Helvetica-Narrow-BoldOblique ISOF +font.18=Helvetica-Narrow-Oblique ISOF +font.19=Helvetica-Oblique ISOF +font.20=NewCenturySchlbk-Bold ISOF +font.21=NewCenturySchlbk-BoldItalic ISOF +font.22=NewCenturySchlbk-Italic ISOF +font.23=NewCenturySchlbk-Roman ISOF +font.24=Palatino-Bold ISOF +font.25=Palatino-BoldItalic ISOF +font.26=Palatino-Italic ISOF +font.27=Palatino-Roman ISOF +font.28=Symbol findfont +font.29=Times-Bold ISOF +font.30=Times-BoldItalic ISOF +font.31=Times-Italic ISOF +font.32=Times-Roman ISOF +font.33=ZapfDingbats findfont +font.34=ZapfChancery-MediumItalic ISOF +# diff --git a/launch4j/jre/lib/resources.jar b/launch4j/jre/lib/resources.jar new file mode 100755 index 0000000..4e40520 Binary files /dev/null and b/launch4j/jre/lib/resources.jar differ diff --git a/AppImage/2009scape.AppImage b/launch4j/jre/lib/rt.jar similarity index 62% rename from AppImage/2009scape.AppImage rename to launch4j/jre/lib/rt.jar index 44e82e8..aad6cfa 100755 Binary files a/AppImage/2009scape.AppImage and b/launch4j/jre/lib/rt.jar differ diff --git a/launch4j/jre/lib/security/blacklisted.certs b/launch4j/jre/lib/security/blacklisted.certs new file mode 100644 index 0000000..beded9e --- /dev/null +++ b/launch4j/jre/lib/security/blacklisted.certs @@ -0,0 +1,39 @@ +Algorithm=SHA-256 +03DB9E5E79FE6117177F81C11595AF598CB176AF766290DBCEB2C318B32E39A2 +08C396C006A21055D00826A5781A5CCFCE2C8D053AB3C197637A4A7A5BB9A650 +14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD +1C5E6985ACC09221DBD1A4B7BBC6D3A8C3F8540D19F20763A9537FDD42B4FFE7 +1F6BF8A3F2399AF7FD04516C2719C566CBAD51F412738F66D0457E1E6BDE6F2D +2A464E4113141352C7962FBD1706ED4B88533EF24D7BBA6CCC5D797FD202F1C4 +31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133 +3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66 +3E11CF90719F6FB44D94EAC9A156B89BEBE7B8598F28EC58913F2BFCAF91D0C0 +423279423B9FC8CB06F1BB7C3B247522B948D5F18939F378ECC901126DE40BFB +450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2 +4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE +4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176 +535D04DFCE027C70BD5F8A9E0AD4F218E9AFDCF5BBCF9B6DE0D81E148E2E3172 +568FAF38D9F155F624838E2181B1CEB4D8459305EE652B0F810C97C3611BFE19 +585CFE6B7436CBD4E732763A2137D7F49599BA9B1790E688FCEC799C58EB84A6 +5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B +71CB00749B9130FB2707A2664BFF958D0FCC8E161D9674C7450BA0FC2BEAF9D3 +76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645 +8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF +9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC +9FADCE80D62A959F9930D748488C1E22E821F4E1E4A43584B848C2FC11E04D77 +A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083 +A90132CEA1D4F7185E4F688EFFD16F6AC14DFD78356A807599A5DABBEEF3333E +B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD +C0D1F42B9F4BF7ACC045B7BB5D4805E10737F67B6310CE505248D543D0D5FE07 +D0156949F1381943442C6974E9B5B49EF441BB799EF20477B90A89C3F33620CE +D151962D954970501C60079258EBCFA38502E0A9F03CD640322B08C0A3117FE5 +D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F +D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967 +D6CEAE5D9E047FAF7D797858D229AC991AD44316D1E2A37A21926D763153593A +DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE +E0E740E4B0F8B3548181FF75B5372FAF4C70B99EC995D694ED0FB91B03FF8D21 +EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C +F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7 +FBB12938ABD86C125796EDF4162D291028890A7D6C0C1CCA75FD4B95EBFA7A1A +FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD +FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B diff --git a/launch4j/jre/lib/security/cacerts b/launch4j/jre/lib/security/cacerts new file mode 100755 index 0000000..14323e5 Binary files /dev/null and b/launch4j/jre/lib/security/cacerts differ diff --git a/launch4j/jre/lib/security/java.policy b/launch4j/jre/lib/security/java.policy new file mode 100644 index 0000000..59d99a9 --- /dev/null +++ b/launch4j/jre/lib/security/java.policy @@ -0,0 +1,51 @@ + +// Standard extensions get all permissions by default + +grant codeBase "file:${{java.ext.dirs}}/*" { + permission java.security.AllPermission; +}; + +// default permissions granted to all domains + +grant { + // Allows any thread to stop itself using the java.lang.Thread.stop() + // method that takes no argument. + // Note that this permission is granted by default only to remain + // backwards compatible. + // It is strongly recommended that you either remove this permission + // from this policy file or further restrict it to code sources + // that you specify, because Thread.stop() is potentially unsafe. + // See the API specification of java.lang.Thread.stop() for more + // information. + permission java.lang.RuntimePermission "stopThread"; + + // allows anyone to listen on dynamic ports + permission java.net.SocketPermission "localhost:0", "listen"; + + // "standard" properies that can be read by anyone + + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + + permission java.util.PropertyPermission "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + + permission java.util.PropertyPermission "java.vm.specification.version", "read"; + permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; + + permission java.util.PropertyPermission "sun.security.pkcs11.disableKeyExtraction", "read"; +}; + diff --git a/launch4j/jre/lib/security/java.security b/launch4j/jre/lib/security/java.security new file mode 100644 index 0000000..3951655 --- /dev/null +++ b/launch4j/jre/lib/security/java.security @@ -0,0 +1,1220 @@ +# +# This is the "master security properties file". +# +# An alternate java.security properties file may be specified +# from the command line via the system property +# +# -Djava.security.properties= +# +# This properties file appends to the master security properties file. +# If both properties files specify values for the same key, the value +# from the command-line properties file is selected, as it is the last +# one loaded. +# +# Also, if you specify +# +# -Djava.security.properties== (2 equals), +# +# then that properties file completely overrides the master security +# properties file. +# +# To disable the ability to specify an additional properties file from +# the command line, set the key security.overridePropertiesFile +# to false in the master security properties file. It is set to true +# by default. + +# In this file, various security properties are set for use by +# java.security classes. This is where users can statically register +# Cryptography Package Providers ("providers" for short). The term +# "provider" refers to a package or set of packages that supply a +# concrete implementation of a subset of the cryptography aspects of +# the Java Security API. A provider may, for example, implement one or +# more digital signature algorithms or message digest algorithms. +# +# Each provider must implement a subclass of the Provider class. +# To register a provider in this master security properties file, +# specify the Provider subclass name and priority in the format +# +# security.provider.= +# +# This declares a provider, and specifies its preference +# order n. The preference order is the order in which providers are +# searched for requested algorithms (when no specific provider is +# requested). The order is 1-based; 1 is the most preferred, followed +# by 2, and so on. +# +# must specify the subclass of the Provider class whose +# constructor sets the values of various properties that are required +# for the Java Security API to look up the algorithms or other +# facilities implemented by the provider. +# +# There must be at least one provider specification in java.security. +# There is a default provider that comes standard with the JDK. It +# is called the "SUN" provider, and its Provider subclass +# named Sun appears in the sun.security.provider package. Thus, the +# "SUN" provider is registered via the following: +# +# security.provider.1=sun.security.provider.Sun +# +# (The number 1 is used for the default provider.) +# +# Note: Providers can be dynamically registered instead by calls to +# either the addProvider or insertProviderAt method in the Security +# class. + +# +# List of providers and their preference orders (see above): +# +security.provider.1=sun.security.provider.Sun +security.provider.2=sun.security.rsa.SunRsaSign +security.provider.3=sun.security.ec.SunEC +security.provider.4=com.sun.net.ssl.internal.ssl.Provider +security.provider.5=com.sun.crypto.provider.SunJCE +security.provider.6=sun.security.jgss.SunProvider +security.provider.7=com.sun.security.sasl.Provider +security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI +security.provider.9=sun.security.smartcardio.SunPCSC +security.provider.10=sun.security.mscapi.SunMSCAPI + +# +# Sun Provider SecureRandom seed source. +# +# Select the primary source of seed data for the "SHA1PRNG" and +# "NativePRNG" SecureRandom implementations in the "Sun" provider. +# (Other SecureRandom implementations might also use this property.) +# +# On Unix-like systems (for example, Solaris/Linux/MacOS), the +# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from +# special device files such as file:/dev/random. +# +# On Windows systems, specifying the URLs "file:/dev/random" or +# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding +# mechanism for SHA1PRNG. +# +# By default, an attempt is made to use the entropy gathering device +# specified by the "securerandom.source" Security property. If an +# exception occurs while accessing the specified URL: +# +# SHA1PRNG: +# the traditional system/thread activity algorithm will be used. +# +# NativePRNG: +# a default value of /dev/random will be used. If neither +# are available, the implementation will be disabled. +# "file" is the only currently supported protocol type. +# +# The entropy gathering device can also be specified with the System +# property "java.security.egd". For example: +# +# % java -Djava.security.egd=file:/dev/random MainClass +# +# Specifying this System property will override the +# "securerandom.source" Security property. +# +# In addition, if "file:/dev/random" or "file:/dev/urandom" is +# specified, the "NativePRNG" implementation will be more preferred than +# SHA1PRNG in the Sun provider. +# +securerandom.source=file:/dev/random + +# +# A list of known strong SecureRandom implementations. +# +# To help guide applications in selecting a suitable strong +# java.security.SecureRandom implementation, Java distributions should +# indicate a list of known strong implementations using the property. +# +# This is a comma-separated list of algorithm and/or algorithm:provider +# entries. +# +securerandom.strongAlgorithms=Windows-PRNG:SunMSCAPI,SHA1PRNG:SUN + +# +# Class to instantiate as the javax.security.auth.login.Configuration +# provider. +# +login.configuration.provider=sun.security.provider.ConfigFile + +# +# Default login configuration file +# +#login.config.url.1=file:${user.home}/.java.login.config + +# +# Class to instantiate as the system Policy. This is the name of the class +# that will be used as the Policy object. +# +policy.provider=sun.security.provider.PolicyFile + +# The default is to have a single system-wide policy file, +# and a policy file in the user's home directory. +policy.url.1=file:${java.home}/lib/security/java.policy +policy.url.2=file:${user.home}/.java.policy + +# whether or not we expand properties in the policy file +# if this is set to false, properties (${...}) will not be expanded in policy +# files. +policy.expandProperties=true + +# whether or not we allow an extra policy to be passed on the command line +# with -Djava.security.policy=somefile. Comment out this line to disable +# this feature. +policy.allowSystemProperty=true + +# whether or not we look into the IdentityScope for trusted Identities +# when encountering a 1.1 signed JAR file. If the identity is found +# and is trusted, we grant it AllPermission. +policy.ignoreIdentityScope=false + +# +# Default keystore type. +# +keystore.type=jks + +# +# Controls compatibility mode for the JKS keystore type. +# +# When set to 'true', the JKS keystore type supports loading +# keystore files in either JKS or PKCS12 format. When set to 'false' +# it supports loading only JKS keystore files. +# +keystore.type.compat=true + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageAccess unless the +# corresponding RuntimePermission ("accessClassInPackage."+package) has +# been granted. +package.access=sun.,\ + com.sun.xml.internal.,\ + com.sun.imageio.,\ + com.sun.istack.internal.,\ + com.sun.jmx.,\ + com.sun.media.sound.,\ + com.sun.naming.internal.,\ + com.sun.proxy.,\ + com.sun.corba.se.,\ + com.sun.org.apache.bcel.internal.,\ + com.sun.org.apache.regexp.internal.,\ + com.sun.org.apache.xerces.internal.,\ + com.sun.org.apache.xpath.internal.,\ + com.sun.org.apache.xalan.internal.extensions.,\ + com.sun.org.apache.xalan.internal.lib.,\ + com.sun.org.apache.xalan.internal.res.,\ + com.sun.org.apache.xalan.internal.templates.,\ + com.sun.org.apache.xalan.internal.utils.,\ + com.sun.org.apache.xalan.internal.xslt.,\ + com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ + com.sun.org.apache.xalan.internal.xsltc.compiler.,\ + com.sun.org.apache.xalan.internal.xsltc.trax.,\ + com.sun.org.apache.xalan.internal.xsltc.util.,\ + com.sun.org.apache.xml.internal.res.,\ + com.sun.org.apache.xml.internal.resolver.helpers.,\ + com.sun.org.apache.xml.internal.resolver.readers.,\ + com.sun.org.apache.xml.internal.security.,\ + com.sun.org.apache.xml.internal.serializer.utils.,\ + com.sun.org.apache.xml.internal.utils.,\ + com.sun.org.glassfish.,\ + com.oracle.xmlns.internal.,\ + com.oracle.webservices.internal.,\ + oracle.jrockit.jfr.,\ + org.jcp.xml.dsig.internal.,\ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ + jdk.xml.internal.,\ + com.sun.activation.registries.,\ + com.sun.java.accessibility.,\ + jdk.jfr.events.,\ + jdk.jfr.internal.,\ + jdk.management.jfr.internal. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageDefinition unless the +# corresponding RuntimePermission ("defineClassInPackage."+package) has +# been granted. +# +# by default, none of the class loaders supplied with the JDK call +# checkPackageDefinition. +# +package.definition=sun.,\ + com.sun.xml.internal.,\ + com.sun.imageio.,\ + com.sun.istack.internal.,\ + com.sun.jmx.,\ + com.sun.media.sound.,\ + com.sun.naming.internal.,\ + com.sun.proxy.,\ + com.sun.corba.se.,\ + com.sun.org.apache.bcel.internal.,\ + com.sun.org.apache.regexp.internal.,\ + com.sun.org.apache.xerces.internal.,\ + com.sun.org.apache.xpath.internal.,\ + com.sun.org.apache.xalan.internal.extensions.,\ + com.sun.org.apache.xalan.internal.lib.,\ + com.sun.org.apache.xalan.internal.res.,\ + com.sun.org.apache.xalan.internal.templates.,\ + com.sun.org.apache.xalan.internal.utils.,\ + com.sun.org.apache.xalan.internal.xslt.,\ + com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ + com.sun.org.apache.xalan.internal.xsltc.compiler.,\ + com.sun.org.apache.xalan.internal.xsltc.trax.,\ + com.sun.org.apache.xalan.internal.xsltc.util.,\ + com.sun.org.apache.xml.internal.res.,\ + com.sun.org.apache.xml.internal.resolver.helpers.,\ + com.sun.org.apache.xml.internal.resolver.readers.,\ + com.sun.org.apache.xml.internal.security.,\ + com.sun.org.apache.xml.internal.serializer.utils.,\ + com.sun.org.apache.xml.internal.utils.,\ + com.sun.org.glassfish.,\ + com.oracle.xmlns.internal.,\ + com.oracle.webservices.internal.,\ + oracle.jrockit.jfr.,\ + org.jcp.xml.dsig.internal.,\ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ + jdk.xml.internal.,\ + com.sun.activation.registries.,\ + com.sun.java.accessibility.,\ + jdk.jfr.events.,\ + jdk.jfr.internal.,\ + jdk.management.jfr.internal. + +# +# Determines whether this properties file can be appended to +# or overridden on the command line via -Djava.security.properties +# +security.overridePropertiesFile=true + +# +# Determines the default key and trust manager factory algorithms for +# the javax.net.ssl package. +# +ssl.KeyManagerFactory.algorithm=SunX509 +ssl.TrustManagerFactory.algorithm=PKIX + +# +# The Java-level namelookup cache policy for successful lookups: +# +# any negative value: caching forever +# any positive value: the number of seconds to cache an address for +# zero: do not cache +# +# default value is forever (FOREVER). For security reasons, this +# caching is made forever when a security manager is set. When a security +# manager is not set, the default behavior in this implementation +# is to cache for 30 seconds. +# +# NOTE: setting this to anything other than the default value can have +# serious security implications. Do not set it unless +# you are sure you are not exposed to DNS spoofing attack. +# +#networkaddress.cache.ttl=-1 + +# The Java-level namelookup cache policy for failed lookups: +# +# any negative value: cache forever +# any positive value: the number of seconds to cache negative lookup results +# zero: do not cache +# +# In some Microsoft Windows networking environments that employ +# the WINS name service in addition to DNS, name service lookups +# that fail may take a noticeably long time to return (approx. 5 seconds). +# For this reason the default caching policy is to maintain these +# results for 10 seconds. +# +# +networkaddress.cache.negative.ttl=10 + +# +# Properties to configure OCSP for certificate revocation checking +# + +# Enable OCSP +# +# By default, OCSP is not used for certificate revocation checking. +# This property enables the use of OCSP when set to the value "true". +# +# NOTE: SocketPermission is required to connect to an OCSP responder. +# +# Example, +# ocsp.enable=true + +# +# Location of the OCSP responder +# +# By default, the location of the OCSP responder is determined implicitly +# from the certificate being validated. This property explicitly specifies +# the location of the OCSP responder. The property is used when the +# Authority Information Access extension (defined in RFC 5280) is absent +# from the certificate or when it requires overriding. +# +# Example, +# ocsp.responderURL=http://ocsp.example.net:80 + +# +# Subject name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. In cases where +# the subject name alone is not sufficient to uniquely identify the certificate +# then both the "ocsp.responderCertIssuerName" and +# "ocsp.responderCertSerialNumber" properties must be used instead. When this +# property is set then those two properties are ignored. +# +# Example, +# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" + +# +# Issuer name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. When this +# property is set then the "ocsp.responderCertSerialNumber" property must also +# be set. When the "ocsp.responderCertSubjectName" property is set then this +# property is ignored. +# +# Example, +# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" + +# +# Serial number of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# of hexadecimal digits (colon or space separators may be present) which +# identifies a certificate in the set of certificates supplied during cert path +# validation. When this property is set then the "ocsp.responderCertIssuerName" +# property must also be set. When the "ocsp.responderCertSubjectName" property +# is set then this property is ignored. +# +# Example, +# ocsp.responderCertSerialNumber=2A:FF:00 + +# +# Policy for failed Kerberos KDC lookups: +# +# When a KDC is unavailable (network error, service failure, etc), it is +# put inside a blacklist and accessed less often for future requests. The +# value (case-insensitive) for this policy can be: +# +# tryLast +# KDCs in the blacklist are always tried after those not on the list. +# +# tryLess[:max_retries,timeout] +# KDCs in the blacklist are still tried by their order in the configuration, +# but with smaller max_retries and timeout values. max_retries and timeout +# are optional numerical parameters (default 1 and 5000, which means once +# and 5 seconds). Please notes that if any of the values defined here is +# more than what is defined in krb5.conf, it will be ignored. +# +# Whenever a KDC is detected as available, it is removed from the blacklist. +# The blacklist is reset when krb5.conf is reloaded. You can add +# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is +# reloaded whenever a JAAS authentication is attempted. +# +# Example, +# krb5.kdc.bad.policy = tryLast +# krb5.kdc.bad.policy = tryLess:2,2000 +krb5.kdc.bad.policy = tryLast + +# +# Kerberos cross-realm referrals (RFC 6806) +# +# OpenJDK's Kerberos client supports cross-realm referrals as defined in +# RFC 6806. This allows to setup more dynamic environments in which clients +# do not need to know in advance how to reach the realm of a target principal +# (either a user or service). +# +# When a client issues an AS or a TGS request, the "canonicalize" option +# is set to announce support of this feature. A KDC server may fulfill the +# request or reply referring the client to a different one. If referred, +# the client will issue a new request and the cycle repeats. +# +# In addition to referrals, the "canonicalize" option allows the KDC server +# to change the client name in response to an AS request. For security reasons, +# RFC 6806 (section 11) FAST scheme is enforced. +# +# Disable Kerberos cross-realm referrals. Value may be overwritten with a +# System property (-Dsun.security.krb5.disableReferrals). +sun.security.krb5.disableReferrals=false + +# Maximum number of AS or TGS referrals to avoid infinite loops. Value may +# be overwritten with a System property (-Dsun.security.krb5.maxReferrals). +sun.security.krb5.maxReferrals=5 + +# +# This property contains a list of disabled EC Named Curves that can be included +# in the jdk.[tls|certpath|jar].disabledAlgorithms properties. To include this +# list in any of the disabledAlgorithms properties, add the property name as +# an entry. +jdk.disabled.namedCurves = secp112r1, secp112r2, secp128r1, secp128r2, \ + secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, \ + secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, \ + sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, \ + sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, \ + sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, \ + X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, \ + X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, \ + X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, \ + brainpoolP320r1, brainpoolP384r1, brainpoolP512r1 + +# +# Algorithm restrictions for certification path (CertPath) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# for certification path building and validation. For example, "MD2" is +# generally no longer considered to be a secure hash algorithm. This section +# describes the mechanism for disabling algorithms based on algorithm name +# and/or key length. This includes algorithms used in certificates, as well +# as revocation information such as CRLs and signed OCSP Responses. +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } | IncludeProperty +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | CAConstraint | DenyAfterConstraint | +# UsageConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# CAConstraint: +# jdkCA +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# +# IncludeProperty: +# include +# +# The "AlgorithmName" is the standard algorithm name of the disabled +# algorithm. See "Java Cryptography Architecture Standard Algorithm Name +# Documentation" for information about Standard Algorithm Names. Matching +# is performed using a case-insensitive sub-element matching rule. (For +# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and +# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a +# sub-element of the certificate algorithm name, the algorithm will be +# rejected during certification path building and validation. For example, +# the assertion algorithm name "DSA" will disable all certificate algorithms +# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion +# will not disable algorithms related to "ECDSA". +# +# The "IncludeProperty" allows a implementation-defined security property that +# can be included in the disabledAlgorithms properties. These properties are +# to help manage common actions easier across multiple disabledAlgorithm +# properties. +# There is one defined security property: jdk.disabled.NamedCurves +# See the property for more specific details. +# +# +# A "Constraint" defines restrictions on the keys and/or certificates for +# a specified AlgorithmName: +# +# KeySizeConstraint: +# keySize Operator KeyLength +# The constraint requires a key of a valid size range if the +# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates +# the key size specified in number of bits. For example, +# "RSA keySize <= 1024" indicates that any RSA key with key size less +# than or equal to 1024 bits should be disabled, and +# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key +# with key size less than 1024 or greater than 2048 should be disabled. +# This constraint is only used on algorithms that have a key size. +# +# CAConstraint: +# jdkCA +# This constraint prohibits the specified algorithm only if the +# algorithm is used in a certificate chain that terminates at a marked +# trust anchor in the lib/security/cacerts keystore. If the jdkCA +# constraint is not set, then all chains using the specified algorithm +# are restricted. jdkCA may only be used once in a DisabledAlgorithm +# expression. +# Example: To apply this constraint to SHA-1 certificates, include +# the following: "SHA1 jdkCA" +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# This constraint prohibits a certificate with the specified algorithm +# from being used after the date regardless of the certificate's +# validity. JAR files that are signed and timestamped before the +# constraint date with certificates containing the disabled algorithm +# will not be restricted. The date is processed in the UTC timezone. +# This constraint can only be used once in a DisabledAlgorithm +# expression. +# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, +# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# This constraint prohibits the specified algorithm for +# a specified usage. This should be used when disabling an algorithm +# for all usages is not practical. 'TLSServer' restricts the algorithm +# in TLS server certificate chains when server authentication is +# performed. 'TLSClient' restricts the algorithm in TLS client +# certificate chains when client authentication is performed. +# 'SignedJAR' constrains use of certificates in signed jar files. +# The usage type follows the keyword and more than one usage type can +# be specified with a whitespace delimiter. +# Example: "SHA1 usage TLSServer TLSClient" +# +# When an algorithm must satisfy more than one constraint, it must be +# delimited by an ampersand '&'. For example, to restrict certificates in a +# chain that terminate at a distribution provided trust anchor and contain +# RSA keys that are less than or equal to 1024 bits, add the following +# constraint: "RSA keySize <= 1024 & jdkCA". +# +# All DisabledAlgorithms expressions are processed in the order defined in the +# property. This requires lower keysize constraints to be specified +# before larger keysize constraints of the same algorithm. For example: +# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by Oracle's PKIX implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 +# +# +jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ + RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \ + include jdk.disabled.namedCurves + +# +# Legacy algorithms for certification path (CertPath) processing and +# signed JAR files. +# +# In some environments, a certain algorithm or key length may be undesirable +# but is not yet disabled. +# +# Tools such as keytool and jarsigner may emit warnings when these legacy +# algorithms are used. See the man pages for those tools for more information. +# +# The syntax is the same as the "jdk.certpath.disabledAlgorithms" and +# "jdk.jar.disabledAlgorithms" security properties. +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. + +jdk.security.legacyAlgorithms=SHA1, \ + RSA keySize < 2048, DSA keySize < 2048 + +# +# Algorithm restrictions for signed JAR files +# +# In some environments, certain algorithms or key lengths may be undesirable +# for signed JAR validation. For example, "MD2" is generally no longer +# considered to be a secure hash algorithm. This section describes the +# mechanism for disabling algorithms based on algorithm name and/or key length. +# JARs signed with any of the disabled algorithms or key sizes will be treated +# as unsigned. +# +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | DenyAfterConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. +# +# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. +# +jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ + DSA keySize < 1024, include jdk.disabled.namedCurves + +# +# Algorithm restrictions for Secure Socket Layer/Transport Layer Security +# (SSL/TLS) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# when using SSL/TLS. This section describes the mechanism for disabling +# algorithms during SSL/TLS security parameters negotiation, including +# protocol version negotiation, cipher suites selection, peer authentication +# and key exchange mechanisms. +# +# Disabled algorithms will not be negotiated for SSL/TLS connections, even +# if they are enabled explicitly in an application. +# +# For PKI-based peer authentication and key exchange mechanisms, this list +# of disabled algorithms will also be checked during certification path +# building and validation, including algorithms used in certificates, as +# well as revocation information such as CRLs and signed OCSP Responses. +# This is in addition to the jdk.certpath.disabledAlgorithms property above. +# +# See the specification of "jdk.certpath.disabledAlgorithms" for the +# syntax of the disabled algorithm string. +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 +jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ + DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ + include jdk.disabled.namedCurves + +# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) +# processing in JSSE implementation. +# +# In some environments, a certain algorithm may be undesirable but it +# cannot be disabled because of its use in legacy applications. Legacy +# algorithms may still be supported, but applications should not use them +# as the security strength of legacy algorithms are usually not strong enough +# in practice. +# +# During SSL/TLS security parameters negotiation, legacy algorithms will +# not be negotiated unless there are no other candidates. +# +# The syntax of the legacy algorithms string is described as this Java +# BNF-style: +# LegacyAlgorithms: +# " LegacyAlgorithm { , LegacyAlgorithm } " +# +# LegacyAlgorithm: +# AlgorithmName (standard JSSE algorithm name) +# +# See the specification of security property "jdk.certpath.disabledAlgorithms" +# for the syntax and description of the "AlgorithmName" notation. +# +# Per SSL/TLS specifications, cipher suites have the form: +# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# or +# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# +# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the +# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC +# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest +# algorithm for HMAC. +# +# The LegacyAlgorithm can be one of the following standard algorithm names: +# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA +# 2. JSSE key exchange algorithm name, e.g., RSA +# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC +# 4. JSSE message digest algorithm name, e.g., SHA +# +# See SSL/TLS specifications and "Java Cryptography Architecture Standard +# Algorithm Name Documentation" for information about the algorithm names. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# There is no guarantee the property will continue to exist or be of the +# same syntax in future releases. +# +# Example: +# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 +# +jdk.tls.legacyAlgorithms= \ + K_NULL, C_NULL, M_NULL, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC, \ + 3DES_EDE_CBC + +# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) +# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. +# +# In traditional SSL/TLS/DTLS connections where finite field DHE parameters +# negotiation mechanism is not used, the server offers the client group +# parameters, base generator g and prime modulus p, for DHE key exchange. +# It is recommended to use dynamic group parameters. This property defines +# a mechanism that allows you to specify custom group parameters. +# +# The syntax of this property string is described as this Java BNF-style: +# DefaultDHEParameters: +# DefinedDHEParameters { , DefinedDHEParameters } +# +# DefinedDHEParameters: +# "{" DHEPrimeModulus , DHEBaseGenerator "}" +# +# DHEPrimeModulus: +# HexadecimalDigits +# +# DHEBaseGenerator: +# HexadecimalDigits +# +# HexadecimalDigits: +# HexadecimalDigit { HexadecimalDigit } +# +# HexadecimalDigit: one of +# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f +# +# Whitespace characters are ignored. +# +# The "DefinedDHEParameters" defines the custom group parameters, prime +# modulus p and base generator g, for a particular size of prime modulus p. +# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the +# "DHEBaseGenerator" defines the hexadecimal base generator g of a group +# parameter. It is recommended to use safe primes for the custom group +# parameters. +# +# If this property is not defined or the value is empty, the underlying JSSE +# provider's default group parameter is used for each connection. +# +# If the property value does not follow the grammar, or a particular group +# parameter is not valid, the connection will fall back and use the +# underlying JSSE provider's default group parameter. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.server.defaultDHEParameters= +# { \ +# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ +# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ +# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ +# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ +# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ +# FFFFFFFF FFFFFFFF, 2} + +# +# TLS key limits on symmetric cryptographic algorithms +# +# This security property sets limits on algorithms key usage in TLS 1.3. +# When the amount of data encrypted exceeds the algorithm value listed below, +# a KeyUpdate message will trigger a key change. This is for symmetric ciphers +# with TLS 1.3 only. +# +# The syntax for the property is described below: +# KeyLimits: +# " KeyLimit { , KeyLimit } " +# +# WeakKeyLimit: +# AlgorithmName Action Length +# +# AlgorithmName: +# A full algorithm transformation. +# +# Action: +# KeyUpdate +# +# Length: +# The amount of encrypted data in a session before the Action occurs +# This value may be an integer value in bytes, or as a power of two, 2^29. +# +# KeyUpdate: +# The TLS 1.3 KeyUpdate handshake process begins when the Length amount +# is fulfilled. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37 + +# Cryptographic Jurisdiction Policy defaults +# +# Import and export control rules on cryptographic software vary from +# country to country. By default, the JDK provides two different sets of +# cryptographic policy files: +# +# unlimited: These policy files contain no restrictions on cryptographic +# strengths or algorithms. +# +# limited: These policy files contain more restricted cryptographic +# strengths, and are still available if your country or +# usage requires the traditional restrictive policy. +# +# The JDK JCE framework uses the unlimited policy files by default. +# However the user may explicitly choose a set either by defining the +# "crypto.policy" Security property or by installing valid JCE policy +# jar files into the traditional JDK installation location. To better +# support older JDK Update releases, the "crypto.policy" property is not +# defined by default. See below for more information. +# +# The following logic determines which policy files are used: +# +# refers to the directory where the JRE was +# installed and may be determined using the "java.home" +# System property. +# +# 1. If the Security property "crypto.policy" has been defined, +# then the following mechanism is used: +# +# The policy files are stored as jar files in subdirectories of +# /lib/security/policy. Each directory contains a complete +# set of policy files. +# +# The "crypto.policy" Security property controls the directory +# selection, and thus the effective cryptographic policy. +# +# The default set of directories is: +# +# limited | unlimited +# +# 2. If the "crypto.policy" property is not set and the traditional +# US_export_policy.jar and local_policy.jar files +# (e.g. limited/unlimited) are found in the legacy +# /lib/security directory, then the rules embedded within +# those jar files will be used. This helps preserve compatibility +# for users upgrading from an older installation. +# +# 3. If the jar files are not present in the legacy location +# and the "crypto.policy" Security property is not defined, +# then the JDK will use the unlimited settings (equivalent to +# crypto.policy=unlimited) +# +# Please see the JCA documentation for additional information on these +# files and formats. +# +# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +# TO DETERMINE THE EXACT REQUIREMENTS. +# +# Please note that the JCE for Java SE, including the JCE framework, +# cryptographic policy files, and standard JCE providers provided with +# the Java SE, have been reviewed and approved for export as mass market +# encryption item by the US Bureau of Industry and Security. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +#crypto.policy=unlimited + +# +# The policy for the XML Signature secure validation mode. The mode is +# enabled by setting the property "org.jcp.xml.dsig.secureValidation" to +# true with the javax.xml.crypto.XMLCryptoContext.setProperty() method, +# or by running the code with a SecurityManager. +# +# Policy: +# Constraint {"," Constraint } +# Constraint: +# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | +# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint +# AlgConstraint +# "disallowAlg" Uri +# MaxTransformsConstraint: +# "maxTransforms" Integer +# MaxReferencesConstraint: +# "maxReferences" Integer +# ReferenceUriSchemeConstraint: +# "disallowReferenceUriSchemes" String { String } +# KeySizeConstraint: +# "minKeySize" KeyAlg Integer +# OtherConstraint: +# "noDuplicateIds" | "noRetrievalMethodLoops" +# +# For AlgConstraint, Uri is the algorithm URI String that is not allowed. +# See the XML Signature Recommendation for more information on algorithm +# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm +# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, +# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is +# specified more than once, only the last entry is enforced. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.xml.dsig.secureValidationPolicy=\ + disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ + maxTransforms 5,\ + maxReferences 30,\ + disallowReferenceUriSchemes file http https,\ + minKeySize RSA 1024,\ + minKeySize DSA 1024,\ + minKeySize EC 224,\ + noDuplicateIds,\ + noRetrievalMethodLoops + +# +# Serialization process-wide filter +# +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization to check the contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If the system property jdk.serialFilter is also specified on the command +# line, it supersedes the security property value defined here. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining pattern +# is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern ends with ".**" it matches any class in the package and all subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. +# +#jdk.serialFilter=pattern;pattern + +# +# RMI Registry Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI Registry or to decrease limits but not +# to increase limits. +# If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected. +# +# Each non-array type is allowed or rejected if it matches one of the patterns, +# evaluated from left to right, and is otherwise allowed. Arrays of any +# component type, including subarrays and arrays of primitives, are allowed. +# +# Array construction of any component type, including subarrays and arrays of +# primitives, are allowed unless the length is greater than the maxarray limit. +# The filter is applied to each array element. +# +# The built-in filter allows subclasses of allowed classes and +# can approximately be represented as the pattern: +# +#sun.rmi.registry.registryFilter=\ +# maxarray=1000000;\ +# maxdepth=20;\ +# java.lang.String;\ +# java.lang.Number;\ +# java.lang.reflect.Proxy;\ +# java.rmi.Remote;\ +# sun.rmi.server.UnicastRef;\ +# sun.rmi.server.RMIClientSocketFactory;\ +# sun.rmi.server.RMIServerSocketFactory;\ +# java.rmi.activation.ActivationID;\ +# java.rmi.server.UID +# +# RMI Distributed Garbage Collector (DGC) Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI DGC. +# +# The builtin DGC filter can approximately be represented as the filter pattern: +# +#sun.rmi.transport.dgcFilter=\ +# java.rmi.server.ObjID;\ +# java.rmi.server.UID;\ +# java.rmi.dgc.VMID;\ +# java.rmi.dgc.Lease;\ +# maxdepth=5;maxarray=10000 + +# CORBA ORBIorTypeCheckRegistryFilter +# Type check enhancement for ORB::string_to_object processing +# +# An IOR type check filter, if configured, is used by an ORB during +# an ORB::string_to_object invocation to check the veracity of the type encoded +# in the ior string. +# +# The filter pattern consists of a semi-colon separated list of class names. +# The configured list contains the binary class names of the IDL interface types +# corresponding to the IDL stub class to be instantiated. +# As such, a filter specifies a list of IDL stub classes that will be +# allowed by an ORB when an ORB::string_to_object is invoked. +# It is used to specify a white list configuration of acceptable +# IDL stub types which may be contained in a stringified IOR +# parameter passed as input to an ORB::string_to_object method. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +#com.sun.CORBA.ORBIorTypeCheckRegistryFilter=binary_class_name;binary_class_name + +# +# JCEKS Encrypted Key Serial Filter +# +# This filter, if configured, is used by the JCEKS KeyStore during the +# deserialization of the encrypted Key object stored inside a key entry. +# If not configured or the filter result is UNDECIDED (i.e. none of the patterns +# matches), the filter configured by jdk.serialFilter will be consulted. +# +# If the system property jceks.key.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# The filter pattern uses the same format as jdk.serialFilter. The default +# pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type, +# and javax.crypto.spec.SecretKeySpec and rejects all the others. +jceks.key.serialFilter = java.lang.Enum;java.security.KeyRep;\ + java.security.KeyRep$Type;javax.crypto.spec.SecretKeySpec;!* + +# The iteration count used for password-based encryption (PBE) in JCEKS +# keystores. Values in the range 10000 to 5000000 are considered valid. +# If the value is out of this range, or is not a number, or is unspecified; +# a default of 200000 is used. +# +# If the system property jdk.jceks.iterationCount is also specified, it +# supersedes the security property value defined here. +# +#jdk.jceks.iterationCount = 200000 + +# +# Disabled mechanisms for the Simple Authentication and Security Layer (SASL) +# +# Disabled mechanisms will not be negotiated by both SASL clients and servers. +# These mechanisms will be ignored if they are specified in the "mechanisms" +# argument of "Sasl.createSaslClient" or the "mechanism" argument of +# "Sasl.createSaslServer". +# +# The value of this property is a comma-separated list of SASL mechanisms. +# The mechanisms are case-sensitive. Whitespaces around the commas are ignored. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.sasl.disabledMechanisms=PLAIN, CRAM-MD5, DIGEST-MD5 +jdk.sasl.disabledMechanisms= + +# +# Policies for distrusting Certificate Authorities (CAs). +# +# This is a comma separated value of one or more case-sensitive strings, each +# of which represents a policy for determining if a CA should be distrusted. +# The supported values are: +# +# +# SYMANTEC_TLS : Distrust TLS Server certificates anchored by a Symantec +# root CA and issued after April 16, 2019 unless issued by one of the +# following subordinate CAs which have a later distrust date: +# 1. Apple IST CA 2 - G1, SHA-256 fingerprint: +# AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B +# Distrust after December 31, 2019. +# 2. Apple IST CA 8 - G1, SHA-256 fingerprint: +# A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED +# Distrust after December 31, 2019. +# Leading and trailing whitespace surrounding each value are ignored. +# Unknown values are ignored. If the property is commented out or set to the +# empty String, no policies are enforced. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be supported by other SE implementations. Also, this +# property does not override other security properties which can restrict +# certificates such as jdk.tls.disabledAlgorithms or +# jdk.certpath.disabledAlgorithms; those restrictions are still enforced even +# if this property is not enabled. +# +jdk.security.caDistrustPolicies=SYMANTEC_TLS + +# +# Policies for the proxy_impersonator Kerberos ccache configuration entry +# +# The proxy_impersonator ccache configuration entry indicates that the ccache +# is a synthetic delegated credential for use with S4U2Proxy by an intermediate +# server. The ccache file should also contain the TGT of this server and +# an evidence ticket from the default principal of the ccache to this server. +# +# This security property determines how Java uses this configuration entry. +# There are 3 possible values: +# +# no-impersonate - Ignore this configuration entry, and always act as +# the owner of the TGT (if it exists). +# +# try-impersonate - Try impersonation when this configuration entry exists. +# If no matching TGT or evidence ticket is found, +# fallback to no-impersonate. +# +# always-impersonate - Always impersonate when this configuration entry exists. +# If no matching TGT or evidence ticket is found, +# no initial credential is read from the ccache. +# +# The default value is "always-impersonate". +# +# If a system property of the same name is also specified, it supersedes the +# security property value defined here. +# +#jdk.security.krb5.default.initiate.credential=always-impersonate + +# +# Trust Anchor Certificates - CA Basic Constraint check +# +# X.509 v3 certificates used as Trust Anchors (to validate signed code or TLS +# connections) must have the cA Basic Constraint field set to 'true'. Also, if +# they include a Key Usage extension, the keyCertSign bit must be set. These +# checks, enabled by default, can be disabled for backward-compatibility +# purposes with the jdk.security.allowNonCaAnchor System and Security +# properties. In the case that both properties are simultaneously set, the +# System value prevails. The default value of the property is "false". +# +#jdk.security.allowNonCaAnchor=true + +# +# JNDI Object Factories Filter +# +# This filter is used by the JNDI runtime to control the set of object factory classes +# which will be allowed to instantiate objects from object references returned by +# naming/directory systems. The factory class named by the reference instance will be +# matched against this filter. The filter property supports pattern-based filter syntax +# with the same format as jdk.serialFilter. +# +# Each pattern is matched against the factory class name to allow or disallow it's +# instantiation. The access to a factory class is allowed unless the filter returns +# REJECTED. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# If the system property jdk.jndi.object.factoriesFilter is also specified, it supersedes +# the security property value defined here. The default value of the property is "*". +# +# The default pattern value allows any object factory class specified by the reference +# instance to recreate the referenced object. +#jdk.jndi.object.factoriesFilter=* \ No newline at end of file diff --git a/launch4j/jre/lib/security/policy/limited/US_export_policy.jar b/launch4j/jre/lib/security/policy/limited/US_export_policy.jar new file mode 100755 index 0000000..1ba0364 Binary files /dev/null and b/launch4j/jre/lib/security/policy/limited/US_export_policy.jar differ diff --git a/launch4j/jre/lib/security/policy/limited/local_policy.jar b/launch4j/jre/lib/security/policy/limited/local_policy.jar new file mode 100755 index 0000000..f4e9756 Binary files /dev/null and b/launch4j/jre/lib/security/policy/limited/local_policy.jar differ diff --git a/launch4j/jre/lib/security/policy/unlimited/US_export_policy.jar b/launch4j/jre/lib/security/policy/unlimited/US_export_policy.jar new file mode 100755 index 0000000..1ba0364 Binary files /dev/null and b/launch4j/jre/lib/security/policy/unlimited/US_export_policy.jar differ diff --git a/launch4j/jre/lib/security/policy/unlimited/local_policy.jar b/launch4j/jre/lib/security/policy/unlimited/local_policy.jar new file mode 100755 index 0000000..a54e327 Binary files /dev/null and b/launch4j/jre/lib/security/policy/unlimited/local_policy.jar differ diff --git a/launch4j/jre/lib/sound.properties b/launch4j/jre/lib/sound.properties new file mode 100644 index 0000000..68309d1 --- /dev/null +++ b/launch4j/jre/lib/sound.properties @@ -0,0 +1,39 @@ +############################################################ +# Sound Configuration File +############################################################ +# +# This properties file is used to specify default service +# providers for javax.sound.midi.MidiSystem and +# javax.sound.sampled.AudioSystem. +# +# The following keys are recognized by MidiSystem methods: +# +# javax.sound.midi.Receiver +# javax.sound.midi.Sequencer +# javax.sound.midi.Synthesizer +# javax.sound.midi.Transmitter +# +# The following keys are recognized by AudioSystem methods: +# +# javax.sound.sampled.Clip +# javax.sound.sampled.Port +# javax.sound.sampled.SourceDataLine +# javax.sound.sampled.TargetDataLine +# +# The values specify the full class name of the service +# provider, or the device name. +# +# See the class descriptions for details. +# +# Example 1: +# Use MyDeviceProvider as default for SourceDataLines: +# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider +# +# Example 2: +# Specify the default Synthesizer by its name "InternalSynth". +# javax.sound.midi.Synthesizer=#InternalSynth +# +# Example 3: +# Specify the default Receiver by provider and name: +# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 +# diff --git a/launch4j/jre/lib/tzdb.dat b/launch4j/jre/lib/tzdb.dat new file mode 100755 index 0000000..d070e45 Binary files /dev/null and b/launch4j/jre/lib/tzdb.dat differ diff --git a/launch4j/jre/lib/tzmappings b/launch4j/jre/lib/tzmappings new file mode 100644 index 0000000..28917ae --- /dev/null +++ b/launch4j/jre/lib/tzmappings @@ -0,0 +1,226 @@ +# +# This file describes mapping information between Windows and Java +# time zones. +# Format: Each line should include a colon separated fields of Windows +# time zone registry key, time zone mapID, locale (which is most +# likely used in the time zone), and Java time zone ID. Blank lines +# and lines that start with '#' are ignored. Data lines must be sorted +# by mapID (ASCII order). +# +# NOTE +# This table format is not a public interface of any Java +# platforms. No applications should depend on this file in any form. +# +# This table has been generated by a program and should not be edited +# manually. +# +Romance:-1,64::Europe/Paris: +Romance Standard Time:-1,64::Europe/Paris: +Warsaw:-1,65::Europe/Warsaw: +Central Europe:-1,66::Europe/Prague: +Central Europe Standard Time:-1,66::Europe/Prague: +Prague Bratislava:-1,66::Europe/Prague: +W. Central Africa Standard Time:-1,66:AO:Africa/Luanda: +FLE:-1,67:FI:Europe/Helsinki: +FLE Standard Time:-1,67:FI:Europe/Helsinki: +GFT:-1,67::Europe/Athens: +GFT Standard Time:-1,67::Europe/Athens: +GTB:-1,67::Europe/Athens: +GTB Standard Time:-1,67::Europe/Athens: +Israel:-1,70::Asia/Jerusalem: +Israel Standard Time:-1,70::Asia/Jerusalem: +Arab:-1,71::Asia/Riyadh: +Arab Standard Time:-1,71::Asia/Riyadh: +Arabic Standard Time:-1,71:IQ:Asia/Baghdad: +E. Africa:-1,71:KE:Africa/Nairobi: +E. Africa Standard Time:-1,71:KE:Africa/Nairobi: +Saudi Arabia:-1,71::Asia/Riyadh: +Saudi Arabia Standard Time:-1,71::Asia/Riyadh: +Iran:-1,72::Asia/Tehran: +Iran Standard Time:-1,72::Asia/Tehran: +Afghanistan:-1,73::Asia/Kabul: +Afghanistan Standard Time:-1,73::Asia/Kabul: +India:-1,74::Asia/Calcutta: +India Standard Time:-1,74::Asia/Calcutta: +Myanmar Standard Time:-1,74::Asia/Rangoon: +Nepal Standard Time:-1,74::Asia/Katmandu: +Sri Lanka:-1,74:LK:Asia/Colombo: +Sri Lanka Standard Time:-1,74:LK:Asia/Colombo: +Beijing:-1,75::Asia/Shanghai: +China:-1,75::Asia/Shanghai: +China Standard Time:-1,75::Asia/Shanghai: +AUS Central:-1,76::Australia/Darwin: +AUS Central Standard Time:-1,76::Australia/Darwin: +Cen. Australia:-1,76::Australia/Adelaide: +Cen. Australia Standard Time:-1,76::Australia/Adelaide: +Vladivostok:-1,77::Asia/Vladivostok: +Vladivostok Standard Time:-1,77::Asia/Vladivostok: +West Pacific:-1,77:GU:Pacific/Guam: +West Pacific Standard Time:-1,77:GU:Pacific/Guam: +E. South America:-1,80::America/Sao_Paulo: +E. South America Standard Time:-1,80::America/Sao_Paulo: +Greenland Standard Time:-1,80:GL:America/Godthab: +Newfoundland:-1,81::America/St_Johns: +Newfoundland Standard Time:-1,81::America/St_Johns: +Pacific SA:-1,82::America/Santiago: +Pacific SA Standard Time:-1,82::America/Santiago: +SA Western:-1,82:BO:America/La_Paz: +SA Western Standard Time:-1,82:BO:America/La_Paz: +SA Pacific:-1,83::America/Bogota: +SA Pacific Standard Time:-1,83::America/Bogota: +US Eastern:-1,84::America/Indianapolis: +US Eastern Standard Time:-1,84::America/Indianapolis: +Central America Standard Time:-1,85::America/Regina: +Mexico:-1,85::America/Mexico_City: +Mexico Standard Time:-1,85::America/Mexico_City: +Canada Central:-1,86::America/Regina: +Canada Central Standard Time:-1,86::America/Regina: +US Mountain:-1,87::America/Phoenix: +US Mountain Standard Time:-1,87::America/Phoenix: +GMT:0,1::Europe/London: +GMT Standard Time:0,1::Europe/London: +Ekaterinburg:10,11::Asia/Yekaterinburg: +Ekaterinburg Standard Time:10,11::Asia/Yekaterinburg: +West Asia:10,11:UZ:Asia/Tashkent: +West Asia Standard Time:10,11:UZ:Asia/Tashkent: +Central Asia:12,13::Asia/Almaty: +Central Asia Standard Time:12,13::Asia/Almaty: +N. Central Asia Standard Time:12,13::Asia/Novosibirsk: +Bangkok:14,15::Asia/Bangkok: +Bangkok Standard Time:14,15::Asia/Bangkok: +North Asia Standard Time:14,15::Asia/Krasnoyarsk: +SE Asia:14,15::Asia/Bangkok: +SE Asia Standard Time:14,15::Asia/Bangkok: +North Asia East Standard Time:16,17:RU:Asia/Irkutsk: +Singapore:16,17:SG:Asia/Singapore: +Singapore Standard Time:16,17:SG:Asia/Singapore: +Taipei:16,17::Asia/Taipei: +Taipei Standard Time:16,17::Asia/Taipei: +W. Australia:16,17:AU:Australia/Perth: +W. Australia Standard Time:16,17:AU:Australia/Perth: +Korea:18,19:KR:Asia/Seoul: +Korea Standard Time:18,19:KR:Asia/Seoul: +Tokyo:18,19::Asia/Tokyo: +Tokyo Standard Time:18,19::Asia/Tokyo: +Yakutsk:18,19:RU:Asia/Yakutsk: +Yakutsk Standard Time:18,19:RU:Asia/Yakutsk: +Central European:2,3:CS:Europe/Belgrade: +Central European Standard Time:2,3:CS:Europe/Belgrade: +W. Europe:2,3::Europe/Berlin: +W. Europe Standard Time:2,3::Europe/Berlin: +Tasmania:20,-1::Australia/Hobart: +Tasmania Standard Time:20,-1::Australia/Hobart: +AUS Eastern:20,21::Australia/Sydney: +AUS Eastern Standard Time:20,21::Australia/Sydney: +E. Australia:20,21::Australia/Brisbane: +E. Australia Standard Time:20,21::Australia/Brisbane: +Sydney Standard Time:20,21::Australia/Sydney: +Tasmania Standard Time:20,65::Australia/Hobart: +Central Pacific:22,23::Pacific/Guadalcanal: +Central Pacific Standard Time:22,23::Pacific/Guadalcanal: +Dateline:24,25::GMT-1200: +Dateline Standard Time:24,25::GMT-1200: +Fiji:24,25::Pacific/Fiji: +Fiji Standard Time:24,25::Pacific/Fiji: +Samoa:26,27::Pacific/Apia: +Samoa Standard Time:26,27::Pacific/Apia: +Hawaiian:28,29::Pacific/Honolulu: +Hawaiian Standard Time:28,29::Pacific/Honolulu: +Alaskan:30,31::America/Anchorage: +Alaskan Standard Time:30,31::America/Anchorage: +Pacific:32,33::America/Los_Angeles: +Pacific Standard Time:32,33::America/Los_Angeles: +Mexico Standard Time 2:34,35:MX:America/Chihuahua: +Mountain:34,35::America/Denver: +Mountain Standard Time:34,35::America/Denver: +Central:36,37::America/Chicago: +Central Standard Time:36,37::America/Chicago: +Eastern:38,39::America/New_York: +Eastern Standard Time:38,39::America/New_York: +E. Europe:4,5::EET: +E. Europe Standard Time:4,5::EET: +Egypt:4,68::Africa/Cairo: +Egypt Standard Time:4,68::Africa/Cairo: +South Africa:4,69::Africa/Harare: +South Africa Standard Time:4,69::Africa/Harare: +Atlantic:40,41::America/Halifax: +Atlantic Standard Time:40,41::America/Halifax: +SA Eastern:42,43:GF:America/Cayenne: +SA Eastern Standard Time:42,43:GF:America/Cayenne: +Mid-Atlantic:44,45::Atlantic/South_Georgia: +Mid-Atlantic Standard Time:44,45::Atlantic/South_Georgia: +Azores:46,47::Atlantic/Azores: +Azores Standard Time:46,47::Atlantic/Azores: +Cape Verde Standard Time:46,47::Atlantic/Cape_Verde: +Russian:6,7::Europe/Moscow: +Russian Standard Time:6,7::Europe/Moscow: +New Zealand:78,79::Pacific/Auckland: +New Zealand Standard Time:78,79::Pacific/Auckland: +Tonga Standard Time:78,79::Pacific/Tongatapu: +Arabian:8,9::Asia/Muscat: +Arabian Standard Time:8,9::Asia/Muscat: +Caucasus:8,9:AM:Asia/Yerevan: +Caucasus Standard Time:8,9:AM:Asia/Yerevan: +GMT Standard Time:88,89::GMT: +Greenwich:88,89::GMT: +Greenwich Standard Time:88,89::GMT: +Aleutian Standard Time:900,900:US:America/Adak: +Altai Standard Time:901,901::Asia/Barnaul: +Argentina Standard Time:902,902::America/Buenos_Aires: +Armenian Standard Time:903,903:AM:Asia/Yerevan: +Astrakhan Standard Time:904,904::Europe/Astrakhan: +Aus Central W. Standard Time:905,905::Australia/Eucla: +Azerbaijan Standard Time:906,906:AZ:Asia/Baku: +Bahia Standard Time:907,907::America/Bahia: +Bangladesh Standard Time:908,908::Asia/Dhaka: +Belarus Standard Time:909,909:BY:Europe/Minsk: +Bougainville Standard Time:910,910::Pacific/Bougainville: +Central Brazilian Standard Time:911,911:BR:America/Cuiaba: +Central Standard Time (Mexico):912,912::America/Mexico_City: +Chatham Islands Standard Time:913,913::Pacific/Chatham: +Cuba Standard Time:914,914:CU:America/Havana: +Easter Island Standard Time:915,915:CL:Pacific/Easter: +Eastern Standard Time (Mexico):916,916::America/Cancun: +Georgian Standard Time:917,917:GE:Asia/Tbilisi: +Haiti Standard Time:918,918:HT:America/Port-au-Prince: +Jordan Standard Time:919,919:JO:Asia/Amman: +Kaliningrad Standard Time:920,920:RU:Europe/Kaliningrad: +Kamchatka Standard Time:921,921:RU:Asia/Kamchatka: +Libya Standard Time:922,922:LY:Africa/Tripoli: +Line Islands Standard Time:923,923::Pacific/Kiritimati: +Lord Howe Standard Time:924,924::Australia/Lord_Howe: +Magadan Standard Time:925,925::Asia/Magadan: +Marquesas Standard Time:926,926::Pacific/Marquesas: +Mauritius Standard Time:927,927:MU:Indian/Mauritius: +Middle East Standard Time:928,928:LB:Asia/Beirut: +Montevideo Standard Time:929,929:UY:America/Montevideo: +Morocco Standard Time:930,930:MA:Africa/Casablanca: +Mountain Standard Time (Mexico):931,931:MX:America/Chihuahua: +Namibia Standard Time:932,932:NA:Africa/Windhoek: +Norfolk Standard Time:933,933::Pacific/Norfolk: +North Korea Standard Time:934,934:KP:Asia/Pyongyang: +Pacific Standard Time (Mexico):935,935:MX:America/Tijuana: +Pakistan Standard Time:936,936::Asia/Karachi: +Paraguay Standard Time:937,937:PY:America/Asuncion: +Russia Time Zone 10:938,938::Asia/Srednekolymsk: +Russia Time Zone 11:939,939::Asia/Anadyr: +Russia Time Zone 3:940,940::Europe/Samara: +Saint Pierre Standard Time:941,941:PM:America/Miquelon: +Sakhalin Standard Time:942,942::Asia/Sakhalin: +Syria Standard Time:943,943:SY:Asia/Damascus: +Tocantins Standard Time:944,944::America/Araguaina: +Tomsk Standard Time:945,945::Asia/Tomsk: +Transbaikal Standard Time:946,946::Asia/Chita: +Turkey Standard Time:947,947::Asia/Istanbul: +Turks And Caicos Standard Time:948,948:TC:America/Grand_Turk: +UTC+12:949,949::GMT+1200: +UTC-02:950,950::GMT-0200: +UTC-08:951,951::GMT-0800: +UTC-09:952,952::GMT-0900: +UTC-11:953,953::GMT-1100: +UTC:954,954::UTC: +Ulaanbaatar Standard Time:955,955::Asia/Ulaanbaatar: +Venezuela Standard Time:956,956::America/Caracas: +W. Mongolia Standard Time:957,957::Asia/Hovd: +West Bank Standard Time:958,958::Asia/Gaza: +Western Brazilian Standard Time:959,959:BR:America/Rio_Branco: diff --git a/launch4j/jre/release b/launch4j/jre/release new file mode 100644 index 0000000..70daa88 --- /dev/null +++ b/launch4j/jre/release @@ -0,0 +1,13 @@ +JAVA_VERSION="1.8.0_292" +OS_NAME="Windows" +OS_VERSION="5.1" +OS_ARCH="i586" +SOURCE=" .:OpenJDK: 008caa03f0:" +IMPLEMENTOR="AdoptOpenJDK" +BUILD_SOURCE="git:4ad15fd" +FULL_VERSION="1.8.0_292-b10" +SEMANTIC_VERSION="8.0.292+1" +BUILD_INFO="OS: Windows Server 2012 R2 Version: 6.3" +JVM_VARIANT="Hotspot" +JVM_VERSION="25.292-b10" +IMAGE_TYPE="JRE" diff --git a/libs/json-simple-1.1.1.jar b/libs/json-simple-1.1.1.jar new file mode 100644 index 0000000..dfd5856 Binary files /dev/null and b/libs/json-simple-1.1.1.jar differ diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b8d02f1 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'rs09launcher' + diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF deleted file mode 100644 index 3605492..0000000 --- a/src/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Main-Class: rs09.Launcher - diff --git a/src/main/java/rs09/Launcher.java b/src/main/java/rs09/Launcher.java deleted file mode 100644 index 1639134..0000000 --- a/src/main/java/rs09/Launcher.java +++ /dev/null @@ -1,30 +0,0 @@ -package rs09; - -import java.awt.Color; - -import javax.swing.UIManager; - -import rs09.audio.Audio; -import rs09.components.AppFrame; -//import fox.threads.ServerTime; - -public class Launcher { - - public static Audio audio = new Audio("/data/audio/welcomehome.mid"); - public static AppFrame app; - - public static void main(String[] main) { - UIManager.put("Button.select", new Color(1.0f,1.0f, 1.0f, 0.05f)); - System.setProperty("awt.useSystemAAFontSettings","on"); - System.setProperty("swing.aatext", "true"); - - app = new AppFrame(); - app.setVisible(true); - app.setLocationRelativeTo(null); - if (Settings.enableMusicPlayer) - audio.playAudio(); - //new Thread(new ServerTime()).start(); - } - - -} \ No newline at end of file diff --git a/src/main/java/rs09/Settings.java b/src/main/java/rs09/Settings.java deleted file mode 100644 index 28d2f4a..0000000 --- a/src/main/java/rs09/Settings.java +++ /dev/null @@ -1,43 +0,0 @@ -package rs09; - -import java.awt.Color; -import java.awt.Dimension; -import java.io.File; - -public class Settings { - - public static final String SERVER_NAME = "2009scape"; - public static final String DOWNLOAD_URL = "http://play.2009scape.org/2009scape.jar"; - public static final String CACHE_URL = "http://play.2009scape.org/"; - - public static final String SAVE_NAME = "2009scape.jar"; - public static final String SAVE_DIR = System.getProperty("user.home") + File.separator; - public static final String CACHE_DIR = System.getProperty("user.home") + File.separator + ".runite_rs" + File.separator + "runescape" + File.separator; - - public static final String SERVER_IP = "play.2009scape.org"; - public static final int SERVER_PORT = 43595; - - public static final boolean enableMusicPlayer = false; - - // Frame Settings - public static final Dimension frameSize = new Dimension(600, 300); - public static final Color borderColor = new Color(0, 0, 0); - public static final Color backgroundColor = new Color(158,134,94); - public static final Color primaryColor = new Color(255,204,54); - public static final Color iconShadow = new Color(0, 0, 0); - public static final Color buttonDefaultColor = new Color( - 97,76,35 - ); - - // link settings - //public static final String youtube = ""; - //public static final String twitter = ""; - //public static final String facebook = ""; - - public static final String community = "https://discord.gg/UVtqkDhxVD"; - public static final String leaders = "https://2009scape.org/services/m%3dhiscore/hiscores.html"; - //public static final String store = ""; - //public static final String vote = ""; - public static final String bugs = "https://gitlab.com/2009scape/2009scape/-/issues"; - -} diff --git a/src/main/java/rs09/audio/Audio.java b/src/main/java/rs09/audio/Audio.java deleted file mode 100644 index 9aae3ae..0000000 --- a/src/main/java/rs09/audio/Audio.java +++ /dev/null @@ -1,42 +0,0 @@ -package rs09.audio; - -import javax.sound.midi.*; - -public class Audio { - - private static Sequencer player; - private String midiFile; - - public Audio(String file) { - this.midiFile = file; - try { - player = MidiSystem.getSequencer(); - player.open(); - } catch (MidiUnavailableException e) { - e.printStackTrace(); - } - } - - public void playAudio() { - if (player == null || !player.isOpen() || player.isRunning()) - return; - try { - player.setSequence(getClass().getResourceAsStream(midiFile)); - player.setLoopCount(3); - player.start(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void stopAudio() { - if (player == null) - return; - player.stop(); - } - - public static void main(String[] args) { - Audio audio = new Audio("/data/audio/welcomehome.mid"); - audio.playAudio(); - } -} \ No newline at end of file diff --git a/src/main/java/rs09/components/AppFrame.java b/src/main/java/rs09/components/AppFrame.java deleted file mode 100644 index 3d62537..0000000 --- a/src/main/java/rs09/components/AppFrame.java +++ /dev/null @@ -1,318 +0,0 @@ -package rs09.components; - -import java.awt.Color; -import java.awt.Point; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionAdapter; - -import javax.swing.*; -import javax.swing.border.EmptyBorder; -import javax.swing.border.LineBorder; -import javax.swing.plaf.basic.BasicProgressBarUI; - -import rs09.Settings; -import rs09.listeners.ButtonListener; -import rs09.utils.Utils; - -public class AppFrame extends JFrame { - private static final long serialVersionUID = -3130053101521666537L; - private static Point initialClick; - - public static int appWidth, appHeight; - - public AppFrame() { - setPreferredSize(Settings.frameSize); - - appWidth = (int) getPreferredSize().getWidth(); - appHeight = (int) getPreferredSize().getHeight(); - - setUndecorated(true); - setResizable(false); - setTitle(Settings.SERVER_NAME); - setLayout(null); - getRootPane().setBorder(new LineBorder(Color.BLACK)); - getContentPane().setBackground(Settings.backgroundColor); - - //addMenuBar(); - addNewsBox(); - //addWorldSelect(); - addLinks(); - addHeader(); - addPlayButton(); - addProgressBar(); - addCloseButton(); - - setIconImage(Utils.getImage("favicon_large.png").getImage()); - addMouseListener(); - pack(); - } - - public static JProgressBar pbar; - - private void addProgressBar() { - pbar = new JProgressBar(); - - pbar.setUI(new BasicProgressBarUI() { - protected Color getSelectionBackground() { - return Settings.primaryColor; - } - protected Color getSelectionForeground() { - return Settings.primaryColor; - } - }); - - pbar.setBounds(0, appHeight - 35, appWidth, 35); - pbar.setBackground(Settings.backgroundColor.darker()); - pbar.setBorderPainted(false); - pbar.setStringPainted(true); - pbar.setString("Click Launch to play "+Settings.SERVER_NAME+"!"); - pbar.setBorder(new EmptyBorder(0, 0, 0, 0)); - pbar.setForeground(new Color(25, 25, 25)); - Utils.setFont(pbar, "OpenSans-Regular.ttf", 13); - add(pbar); - } - - - public static Control playButton = new Control("Play"); - private void addPlayButton() { - - playButton.setActionCommand("play2"); - playButton.setBackground(Settings.primaryColor); - playButton.addActionListener(new ButtonListener()); - //(appWidth / 2) - (167 / 2) - playButton.setBounds(0, appHeight - 35, 100, 35); - Utils.setFont(playButton, "OpenSans-Regular.ttf", 16); - add(playButton); - } - - public static Control playButton2 = new Control("Play"); - private void addPlayButton2() { - playButton2.setActionCommand("play2"); - playButton2.setBackground(Settings.primaryColor); - playButton2.addActionListener(new ButtonListener()); - //(appWidth / 2) - (167 / 2) - playButton2.setBounds(appWidth - 254, appHeight - 88, 100, 35); - Utils.setFont(playButton2, "OpenSans-Regular.ttf", 16); - playButton2.setEnabled(true); - add(playButton2); - } - - private void addWorldSelect() { - /*JLabel world1box = new JLabel(""); - JLabel world1text = new JLabel("World 1 - Authentic"); - world1text.setBounds(20, appHeight - 80, 145,20); - world1text.setForeground(Color.WHITE); - Utils.setFont(world1text,"OpenSans-Regular.ttf",12); - world1box.setBounds(5, appHeight - 90,250,40); - world1box.setOpaque(true); - world1box.setBackground(new Color(0.0f,0.0f,0.0f,0.2f)); - add(world1box); - add(world1text); -*/ - IconLabel globeIcon = new IconLabel("\uf0ac",50); - globeIcon.setBounds(275,appHeight - 98,64,64); - add(globeIcon); - - JLabel world2box = new JLabel(""); - JLabel world2Text = new JLabel("World 2 - Custom/QoL"); - world2Text.setBounds(appWidth - 145,appHeight - 80,145,20); - world2Text.setForeground(Color.WHITE); - Utils.setFont(world2Text,"OpenSans-Regular.ttf",12); - world2box.setBounds(appWidth - 258,appHeight - 90, 250, 40); - world2box.setOpaque(true); - world2box.setBackground(new Color(0.0f,0.0f,0.0f,0.2f)); - add(world2box); - add(world2Text); - addPlayButton2(); - } - - public static JLabel tooltip; - public static IconLabel serverTime; - public static IconLabel playerCount; - - private void addLinks() { - tooltip = new JLabel(""); - tooltip.setBounds(135, appHeight - 90, 335, 35); - tooltip.setHorizontalAlignment(SwingConstants.CENTER); - Utils.setFont(tooltip, "OpenSans-Light.ttf", 30); - tooltip.setForeground(Color.white); - add(tooltip); - - IconLabel forum = new IconLabel("\uf086", "Community", 50); - forum.setBounds(275, 150, 64, 64);//forum.setBounds(135, 170, 64, 64); - add(forum); - - IconLabel hs = new IconLabel("\uf080", "Leaderboards", 50); - hs.setBounds(205, 150, 64, 64); - add(hs); - - /*IconLabel shop = new IconLabel("\uf07a", "Shopping Center", 50); - shop.setBounds(275, 170, 64, 64); - add(shop);*/ - - /*IconLabel vote = new IconLabel("\uf046", "Vote for Us", 50); - vote.setBounds(345, 172, 64, 64); - add(vote);*/ - - IconLabel web = new IconLabel("\uf188", "Report an Issue", 50); - web.setBounds(345, 152, 64, 64);//web.setBounds(415, 172, 64, 64); - add(web); - - if (Settings.enableMusicPlayer) { - IconLabel music = new IconLabel("\uf205", "Music", "FontAwesome.ttf", 16); - music.setBounds(appWidth - 32, appHeight - 60, 24, 18); - add(music); - - IconLabel musicLabel = new IconLabel("Music", 12); - musicLabel.setBounds(appWidth - 75, appHeight - 60, 36, 18); - add(musicLabel); - } - -// //serverTime = new IconLabel("Server Time: 1:50 PM", 12); -// serverTime.setBounds(15, appHeight - 60, 175, 18); -// add(serverTime); - - /*playerCount = new IconLabel("There are 10 player(s) Online!", 12); - playerCount.setForeground(Color.white); - playerCount.setBounds(65, 105, 200, 18); - add(playerCount);*/ - - /*JButton player = new JButton("Stop Music"); - player.setBounds(520, 378, 75, 16); - add(player);*/ - } - - String serverStatus = "..."; - - - private void addNewsBox() { - - -// IconLabel facebook = new IconLabel("\uf082", "Facebook", 32); -// facebook.setBounds(appWidth - 35, 30, 36, 36); - -// if (Settings.facebook.length() > 1) { -// add(facebook); -// } -// -// IconLabel twitter = new IconLabel("\uf099", "Twitter", 32); -// twitter.setBounds(appWidth - 35, 65, 36, 36); -// -// if (Settings.twitter.length() > 1) { -// add(twitter); -// } -// -// IconLabel youtube = new IconLabel("\uf167", "Youtube", 32); -// youtube.setBounds(appWidth - 35, 100, 36, 36); -// -// if (Settings.youtube.length() > 1) { -// add(youtube); -// } - - final int red = Settings.primaryColor.getRed(); - final int green = Settings.primaryColor.getGreen(); - final int blue = Settings.primaryColor.getBlue(); - - JLabel status1 = new JLabel("Welcome to "+Settings.SERVER_NAME+"!"); - status1.setForeground(Settings.primaryColor); - status1.setHorizontalAlignment(SwingConstants.CENTER); - status1.setBounds(0, 75, appWidth, 95); - Utils.setFont(status1, "OpenSans-Light.ttf", 40); - //add(status1); - - /*final JLabel status2 = new JLabel("We are currently "+serverStatus+"!"); - - new Thread() { - public void run() { - serverStatus = Utils.hostAvailabilityCheck() ? - "Online" : - "Offline"; - status2.setText("We are currently "+serverStatus+"!"); - } - }.start(); - - status2.setForeground(Color.WHITE); - status2.setHorizontalAlignment(SwingConstants.CENTER); - status2.setBounds(0, 25, appWidth, 25); - Utils.setFont(status2, "OpenSans-Light.ttf", 14); - add(status2);*/ - } - - private void addMenuBar() { - MenuBar bar = new MenuBar(this); - bar.setBounds(0, 0, appWidth, 25); - add(bar); - } - - @SuppressWarnings("unused") - private void addHeader() { - JLabel logo = new JLabel(Utils.getImage("logo.png")); - logo.setBounds(125, 55, 350, 60); - add(logo); - -// JLabel head = new JLabel(" "); -// head.setOpaque(true); -// head.setBackground(new Color(0.0f, 0.0f, 0.0f, 0.2f)); -// head.setBounds(-1, 25, appWidth, 114); -// add(head); - } - - private void addMouseListener() { - addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent e) { - initialClick = e.getPoint(); - getComponentAt(initialClick); - } - }); - - addMouseMotionListener(new MouseMotionAdapter() { - @Override - public void mouseDragged(MouseEvent e) { - - int iX = initialClick.x; - int iY = initialClick.y; - - if (iX >= 0 && iX <= getPreferredSize().getWidth() && iY >= 0 && iY <= 25) { - int thisX = getLocation().x; - int thisY = getLocation().y; - - int xMoved = (thisX + e.getX()) - (thisX + initialClick.x); - int yMoved = (thisY + e.getY()) - (thisY + initialClick.y); - - int X = thisX + xMoved; - int Y = thisY + yMoved; - setLocation(X, Y); - } - } - }); - } - - private void addCloseButton() { - ImageIcon close_dark = new ImageIcon(getClass().getResource("/data/img/close.png")); - ImageIcon close_hi = new ImageIcon(getClass().getResource("/data/img/close_hi.png")); - JLabel button = new JLabel(close_hi); - button.setDisabledIcon(close_dark); - button.setEnabled(false); - button.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent mouseEvent) { - System.exit(0); - } - - @Override - public void mouseEntered(MouseEvent mouseEvent) { - button.setEnabled(true); - } - - @Override - public void mouseExited(MouseEvent mouseEvent) { - button.setEnabled(false); - } - }); - - button.setBounds(appWidth - 40, 0, 40, 40); - add(button); - } - -} diff --git a/src/main/java/rs09/components/Control.java b/src/main/java/rs09/components/Control.java deleted file mode 100644 index e9eef19..0000000 --- a/src/main/java/rs09/components/Control.java +++ /dev/null @@ -1,58 +0,0 @@ -package rs09.components; - -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; - -import javax.swing.Icon; -import javax.swing.JButton; - -import rs09.Settings; - -@SuppressWarnings("serial") -public class Control extends JButton implements MouseListener { - - public Control(Icon image) { - super(image); - - setBorderPainted(false); - setFocusable(false); - addMouseListener(this); - } - - public Control(String name) { - super(name); - setForeground(Settings.buttonDefaultColor); - setBorderPainted(false); - setFocusable(false); - addMouseListener(this); - } - - @Override - public void mouseClicked(MouseEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseEntered(MouseEvent me) { - setBackground(this.getBackground().darker()); - } - - @Override - public void mouseExited(MouseEvent me) { - setBackground(this.getBackground().brighter()); - - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - - } -} diff --git a/src/main/java/rs09/components/Header.java b/src/main/java/rs09/components/Header.java deleted file mode 100644 index 7bd1922..0000000 --- a/src/main/java/rs09/components/Header.java +++ /dev/null @@ -1,20 +0,0 @@ -package rs09.components; - -import java.awt.Color; - -import javax.swing.JLabel; -import javax.swing.SwingConstants; - -import rs09.utils.Utils; - -@SuppressWarnings("serial") -public class Header extends JLabel { - - public Header(String text) { - super(text); - setForeground(Color.WHITE); - setHorizontalAlignment(SwingConstants.CENTER); - Utils.setFont(this, "OpenSans-Light.ttf", 32); - } - -} diff --git a/src/main/java/rs09/components/IconLabel.java b/src/main/java/rs09/components/IconLabel.java deleted file mode 100644 index 624fe7a..0000000 --- a/src/main/java/rs09/components/IconLabel.java +++ /dev/null @@ -1,180 +0,0 @@ -package rs09.components; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.font.LineMetrics; - -import javax.swing.JLabel; - -import rs09.Launcher; -import rs09.Settings; -import rs09.utils.Utils; - -@SuppressWarnings("serial") -public class IconLabel extends JLabel implements MouseListener { - - private int tracking; - private String action; - - public IconLabel(String text, int fontSize) { - super(text); - this.tracking = 1; - setForeground(Settings.primaryColor); - this.setRightShadow(1, 1, Settings.iconShadow); - Utils.setFont(this, "FontAwesome.ttf", fontSize); - } - - public IconLabel(String text, String action, int fontSize) { - super(text); - this.tracking = 1; - this.action = action; - setForeground(Settings.primaryColor); - addMouseListener(this); - this.setRightShadow(1, 1, Settings.iconShadow); - Utils.setFont(this, "FontAwesome.ttf", fontSize); - } - - public IconLabel(String text, String action, String font, int fontSize) { - super(text); - this.tracking = 1; - this.action = action; - setForeground(Settings.primaryColor); - addMouseListener(this); - this.setRightShadow(1, 1, Settings.iconShadow); - Utils.setFont(this, font, fontSize); - } - - private int left_x, left_y, right_x, right_y; - private Color left_color, right_color; - public void setLeftShadow(int x, int y, Color color) { - left_x = x; - left_y = y; - left_color = color; - } - - public void setRightShadow(int x, int y, Color color) { - right_x = x; - right_y = y; - right_color = color; - } - - public Dimension getPreferredSize() { - String text = getText(); - FontMetrics fm = this.getFontMetrics(getFont()); - - int w = fm.stringWidth(text); - w += (text.length()-1)*tracking; - w += left_x + right_x; - - int h = fm.getHeight(); - h += left_y + right_y; - - return new Dimension(w,h); - } - - public void paintComponent(Graphics g) { - ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - - char[] chars = getText().toCharArray(); - - FontMetrics fm = this.getFontMetrics(getFont()); - int h = fm.getAscent(); - @SuppressWarnings("unused") - LineMetrics lm = fm.getLineMetrics(getText(),g); - g.setFont(getFont()); - - int x = 0; - - for(int i=0; i MAX_BUFFER_SIZE) { - buffer = new byte[MAX_BUFFER_SIZE]; - } else { - buffer = new byte[size - downloaded]; - } - - int read = stream.read(buffer); - - if (read == -1) - break; - - int progress = (int) getProgress(); - - if (progress > lastNum) { - AppFrame.pbar.setValue(progress); - lastNum = progress; - AppFrame.pbar.setString("Downloading Update: "+progress+"%"); - } - - file.write(buffer, 0, read); - downloaded += read; - if(contentLength == downloaded){ - status = COMPLETE; - } - } - } catch (Exception e) { - error(); - } finally { - if (file != null) - try { file.close(); } catch (Exception e) { } - if (stream != null) - try { stream.close(); } catch (Exception e) { } - } - } - private void stateChanged() { - setChanged(); - notifyObservers(); - } -} diff --git a/src/main/java/rs09/net/Checksum.java b/src/main/java/rs09/net/Checksum.java deleted file mode 100644 index 9346f8c..0000000 --- a/src/main/java/rs09/net/Checksum.java +++ /dev/null @@ -1,105 +0,0 @@ -package rs09.net; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import rs09.Settings; -import rs09.components.AppFrame; - -public class Checksum { - - public static String getLocalChecksum() { - File local = new File(Settings.SAVE_DIR + Settings.SAVE_NAME); - try (FileInputStream fis = new FileInputStream(local)) { - return Checksum.calculateMd5(fis); - } catch (Exception e) { - e.printStackTrace(); - AppFrame.pbar.setString(e.getMessage()); - } - return null; - } - - public static String getLocalChecksum(String file) { - File local = new File(file); - try (FileInputStream fis = new FileInputStream(local)) { - return Checksum.calculateMd5(fis); - } catch (Exception e) { - e.printStackTrace(); - AppFrame.pbar.setString(e.getMessage()); - } - return null; - } - - public static String getRemoteChecksum() { - try (InputStream stream = new URL(Settings.DOWNLOAD_URL).openStream()) { - return Checksum.calculateMd5(stream); - } catch (Exception e) { - e.printStackTrace(); - AppFrame.pbar.setString(e.getMessage()); - return null; - } - } - - public static String getRemoteChecksum(String url) { - try (InputStream stream = new URL(url).openStream()) { - return Checksum.calculateMd5(stream); - } catch (Exception e) { - e.printStackTrace(); - AppFrame.pbar.setString(e.getMessage()); - return null; - } - } - - public static String calculateMd5(final InputStream instream) { - return calculateDigest(instream, "MD5"); - } - - private static String calculateDigest(final InputStream instream, final String algorithm) { - final byte[] buffer = new byte[4096]; - final MessageDigest messageDigest = getMessageDigest(algorithm); - messageDigest.reset(); - int bytesRead; - try { - while ((bytesRead = instream.read(buffer)) != -1) { - messageDigest.update(buffer, 0, bytesRead); - } - } catch (IOException e) { - System.err.println("Error making a '" + algorithm + "' digest on the inputstream"); - } - return toHex(messageDigest.digest()); - } - - public static String toHex(final byte[] ba) { - int baLen = ba.length; - char[] hexchars = new char[baLen * 2]; - int cIdx = 0; - for (int i = 0; i < baLen; ++i) { - hexchars[cIdx++] = hexdigit[(ba[i] >> 4) & 0x0F]; - hexchars[cIdx++] = hexdigit[ba[i] & 0x0F]; - } - return new String(hexchars); - } - - public static MessageDigest getMessageDigest(final String algorithm) { - MessageDigest messageDigest = null; - try { - messageDigest = MessageDigest.getInstance(algorithm); - } catch (NoSuchAlgorithmException e) { - System.err.println("The '" + algorithm + "' algorithm is not available"); - } - return messageDigest; - } - - private static final char[] hexdigit = { - '0', '1', '2', '3', '4', '5', - '6', '7', '8', '9', 'a', 'b', - 'c', 'd', 'e', 'f' - }; - - -} diff --git a/src/main/java/rs09/net/Download.java b/src/main/java/rs09/net/Download.java deleted file mode 100644 index 7a08509..0000000 --- a/src/main/java/rs09/net/Download.java +++ /dev/null @@ -1,182 +0,0 @@ -package rs09.net; -import java.io.File; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Observable; - -import rs09.Settings; -import rs09.components.AppFrame; -import rs09.listeners.ButtonListener; - -public class Download extends Observable implements Runnable { - - private static final int MAX_BUFFER_SIZE = 1024; - public static final String STATUSES[] = { "Downloading", "Paused", "Complete", "Cancelled", "Error" }; - - public static final int DOWNLOADING = 0; - public static final int PAUSED = 1; - public static final int COMPLETE = 2; - public static final int CANCELLED = 3; - public static final int ERROR = 4; - - private URL url; - private int size; - private int downloaded; - private int status; - - public Download(String url) { - try { - this.url = new URL(url); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - size = -1; - downloaded = 0; - status = DOWNLOADING; - } - - public String getUrl() { - return url.toString(); - } - - public int getSize() { - return size; - } - - public float getProgress() { - return ((float) downloaded / size) * 100; - } - - public int getStatus() { - return status; - } - - public void pause() { - status = PAUSED; - stateChanged(); - } - - public void resume() { - status = DOWNLOADING; - stateChanged(); - download(); - } - - public void cancel() { - status = CANCELLED; - stateChanged(); - } - - private void error() { - status = ERROR; - stateChanged(); - } - - public void download() { - Thread thread = new Thread(this); - thread.start(); - } - - @SuppressWarnings("unused") - private String getFileName(URL url) { - String fileName = url.getFile(); - return fileName.substring(fileName.lastIndexOf('/') + 1); - } - - public void run() { - AppFrame.playButton.setEnabled(false); - RandomAccessFile file = null; - InputStream stream = null; - - try { - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestProperty("Range", "bytes=" + downloaded + "-"); - connection.connect(); - - if (connection.getResponseCode() / 100 != 2) { - error(); - } - - int contentLength = connection.getContentLength(); - - if (contentLength < 1) { - error(); - } - - if (size == -1) { - size = contentLength; - stateChanged(); - } - - System.out.println("Trying to create file " + Settings.SAVE_DIR + Settings.SAVE_NAME); - if(!new File(Settings.SAVE_DIR).exists()){ - new File(Settings.SAVE_DIR).mkdir(); - } - if (new File(Settings.SAVE_DIR + Settings.SAVE_NAME).exists()) { - new File(Settings.SAVE_DIR + Settings.SAVE_NAME).delete(); - } - new File(Settings.SAVE_DIR + Settings.SAVE_NAME).createNewFile(); - file = new RandomAccessFile(Settings.SAVE_DIR + Settings.SAVE_NAME, "rw"); - file.seek(downloaded); - - stream = connection.getInputStream(); - - int lastNum = 0; - - while (status == DOWNLOADING) { - byte buffer[]; - - if (size - downloaded > MAX_BUFFER_SIZE) { - buffer = new byte[MAX_BUFFER_SIZE]; - } else { - buffer = new byte[size - downloaded]; - } - - int read = stream.read(buffer); - - if (read == -1) - break; - - int progress = (int) getProgress(); - - if (progress > lastNum) { - AppFrame.pbar.setValue(progress); - lastNum = progress; - AppFrame.pbar.setString("Downloading Update: "+progress+"%"); - } - - file.write(buffer, 0, read); - downloaded += read; - if(downloaded == contentLength){ - if(ButtonListener.checkRun()){ - AppFrame.playButton.setEnabled(true); - AppFrame.playButton2.setEnabled(true); - AppFrame.pbar.setValue(0); - AppFrame.pbar.setString("Click Launch to play "+Settings.SERVER_NAME+"!"); - stateChanged(); - } - status = COMPLETE; - } - } - - if (status == COMPLETE) { - } - } catch (Exception e) { - error(); - } finally { - if (file != null) - try { file.close(); } catch (Exception e) { } - if (stream != null) - try { stream.close(); } catch (Exception e) { } - } - } - - private void stateChanged() { - setChanged(); - notifyObservers(); - } - -} \ No newline at end of file diff --git a/src/main/java/rs09/net/Update.java b/src/main/java/rs09/net/Update.java deleted file mode 100644 index 0770b10..0000000 --- a/src/main/java/rs09/net/Update.java +++ /dev/null @@ -1,46 +0,0 @@ -package rs09.net; - -import java.io.File; - -import rs09.Settings; - -public class Update { - - public static byte updateExists(int type, String filename) { - if(type == 0) { - File file = new File(Settings.SAVE_DIR + Settings.SAVE_NAME); - if (!file.exists()) - return 1; - - String localCheck = Checksum.getLocalChecksum(); - String remoteCheck = Checksum.getRemoteChecksum(); - - if (remoteCheck == null || localCheck == null) - return 2; - - if (!remoteCheck.equalsIgnoreCase(localCheck)) - return 3; - - return 0; - } else if (type == 1){ - System.out.println("Type 1 detected, filename " + filename); - File file = new File(Settings.CACHE_DIR + filename); - System.out.println("Checking in " + Settings.CACHE_DIR); - if (!file.exists()) - return 1; - - String localCheck = Checksum.getLocalChecksum(Settings.CACHE_DIR + filename); - String remoteCheck = Checksum.getRemoteChecksum(Settings.CACHE_URL + filename); - - if (remoteCheck == null || localCheck == null) - return 2; - - if (!remoteCheck.equalsIgnoreCase(localCheck)) - return 3; - - return 0; - } - return 0; - } - -} diff --git a/src/main/java/rs09/threads/PlayersOnline.java b/src/main/java/rs09/threads/PlayersOnline.java deleted file mode 100644 index fd051ad..0000000 --- a/src/main/java/rs09/threads/PlayersOnline.java +++ /dev/null @@ -1,37 +0,0 @@ -package rs09.threads; - -import java.net.URL; -import java.util.Scanner; - -import rs09.components.AppFrame; - -public class PlayersOnline implements Runnable { - - @Override - public void run() { - while(true) { - try { - readPlayersOnline(); - System.gc(); - Thread.sleep(30000L); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - public void readPlayersOnline() { - try (Scanner scanner = new Scanner(new URL("http://as-pk.net/players.txt").openStream())) { - scanner.useDelimiter("/r/n"); - if (!scanner.hasNextInt()) { - AppFrame.playerCount.setText("Error fetching Players Online"); - return; - } - int count = scanner.nextInt(); - AppFrame.playerCount.setText("There are " + count + " player(s) Online!"); - } catch (Exception e) { - AppFrame.playerCount.setText("Error fetching Players Online"); - } - } - -} diff --git a/src/main/java/rs09/threads/ServerTime.java b/src/main/java/rs09/threads/ServerTime.java deleted file mode 100644 index 646e83c..0000000 --- a/src/main/java/rs09/threads/ServerTime.java +++ /dev/null @@ -1,23 +0,0 @@ -//package fox.threads; -// -//import fox.components.AppFrame; -//import fox.utils.Utils; -// -//public class ServerTime implements Runnable { -// -// @Override -// public void run() { -// -// while (true) { -// AppFrame.serverTime.setText("Server Time: "+Utils.getServerTime()); -// try { -// Thread.sleep(1000L); -// } catch (InterruptedException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } -// -// } -// -//} diff --git a/src/main/java/rs09/utils/ProcessTest.java b/src/main/java/rs09/utils/ProcessTest.java deleted file mode 100644 index 65ee2c5..0000000 --- a/src/main/java/rs09/utils/ProcessTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package rs09.utils; - -import rs09.Settings; -import rs09.components.AppFrame; - -public class ProcessTest { - - private Process proc; - - public ProcessTest(Process proc) { - this.proc = proc; - } - - public void startTesting() { - new Thread() { - @Override - public void run() { - while(true) { - try { - proc.exitValue(); - AppFrame.pbar.setString("Click Launch to play "+Settings.SERVER_NAME+"!"); - AppFrame.playButton.setEnabled(true); - break; - } catch (Exception e) { - try { - AppFrame.pbar.setString(""+Settings.SERVER_NAME+" is currently running."); - Thread.sleep(600L); - } catch (InterruptedException ex) { - e.printStackTrace(); - } - } - } - } - }.start(); - } -} diff --git a/src/main/java/rs09/utils/Utils.java b/src/main/java/rs09/utils/Utils.java deleted file mode 100644 index a25d729..0000000 --- a/src/main/java/rs09/utils/Utils.java +++ /dev/null @@ -1,116 +0,0 @@ -package rs09.utils; - -import java.awt.Component; -import java.awt.Desktop; -import java.awt.Font; -import java.awt.FontFormatException; -import java.awt.GraphicsEnvironment; -import java.io.File; -import java.io.IOException; -import java.net.Socket; -import java.net.URL; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; - -import javax.swing.ImageIcon; - -import rs09.Settings; -import rs09.components.AppFrame; - -public class Utils { - - public static void main(String[] args) { - System.out.println(getServerTime()); - } - - public static DateFormat df; - - public static String getServerTime() { - if (df == null) { - df = new SimpleDateFormat("h:mm:ss a"); - df.setTimeZone(TimeZone.getTimeZone("Australia/Brisbane")); - } - return df.format(new Date()); - } - - /** - * Uses the ProcessBuilder class to launch the client.jar from the specified - * folder - */ - public static void launchClient(int which) { - AppFrame.playButton.setEnabled(true); - try { - Runtime.getRuntime().exec("java -jar " + Settings.SAVE_DIR + Settings.SAVE_NAME + (which == 1 ? " world=2" : ""),null, new File(System.getProperty("user.home"))); - System.exit(0); - } catch (Exception e) { - System.out.println("Failed to launch client! " + e); - } - } - - /** - * Checks if the server is online or offline by attempting to make a TCP - * connection - * - * @return true if it connects (ie. it is online) - */ - public static boolean hostAvailabilityCheck() { - try (Socket s = new Socket(Settings.SERVER_IP, Settings.SERVER_PORT)) { - s.setTcpNoDelay(true); - return true; - } catch (IOException ex) { - /* ignore */ - } - return false; - } - - /** - * Loads a custom font from the data/font folder. Font must be either otf or - * ttf. - * - * @param fontName - * @param size - */ - public static void setFont(Component c, String fontName, float size) { - try { - Font font = Font.createFont(0, Utils.class.getResource("/data/fonts/" + fontName).openStream()); - GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment(); - genv.registerFont(font); - font = font.deriveFont(size); - c.setFont(font); - } catch (FontFormatException | IOException e) { - e.printStackTrace(); - } - } - - /** - * Opens the users browser and goes to the specified URL - * @param url - */ - public static void openWebpage(String url) { - Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; - if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { - try { - desktop.browse(new URL(url).toURI()); - } catch (Exception e) { - // e.printStackTrace(); - } - } - } - - private static long timeCorrection; - private static long lastTimeUpdate; - - public static synchronized long currentTimeMillis() { - long l = System.currentTimeMillis(); - if (l < lastTimeUpdate) - timeCorrection += lastTimeUpdate - l; - lastTimeUpdate = l; - return l + timeCorrection; - } - - public static ImageIcon getImage(String name) { - return new ImageIcon(Utils.class.getResource("/data/img/" + name)); - } -} diff --git a/src/main/java/rs09/utils/encrypt/MD5.java b/src/main/java/rs09/utils/encrypt/MD5.java deleted file mode 100644 index 8fba98a..0000000 --- a/src/main/java/rs09/utils/encrypt/MD5.java +++ /dev/null @@ -1,34 +0,0 @@ -package rs09.utils.encrypt; - -import java.io.UnsupportedEncodingException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -public class MD5 { - - private static String convertToHex(byte[] data) { - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < data.length; i++) { - int halfbyte = (data[i] >>> 4) & 0x0F; - int two_halfs = 0; - do { - if ((0 <= halfbyte) && (halfbyte <= 9)) - buf.append((char) ('0' + halfbyte)); - else - buf.append((char) ('a' + (halfbyte - 10))); - halfbyte = data[i] & 0x0F; - } while (two_halfs++ < 1); - } - return buf.toString(); - } - - public static String encrypt(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { - MessageDigest md; - md = MessageDigest.getInstance("MD5"); - byte[] md5hash = new byte[32]; - md.update(text.getBytes("iso-8859-1"), 0, text.length()); - md5hash = md.digest(); - return convertToHex(md5hash); - } - -} diff --git a/src/main/kotlin/BackgroundLabel.kt b/src/main/kotlin/BackgroundLabel.kt new file mode 100644 index 0000000..555ddb8 --- /dev/null +++ b/src/main/kotlin/BackgroundLabel.kt @@ -0,0 +1,15 @@ +import java.awt.BorderLayout +import java.awt.Color +import java.awt.GridBagLayout +import javax.swing.JLabel + +class BackgroundLabel(url: String, text: String) : BackgroundPanel(url) { + val textLabel = JLabel("
$text
return calculateMd5(fis) } + } + + fun getRemoteChecksum(url: String?, checksumFile: Boolean = false): String? { + try { + if (checksumFile) { + URL(url).openStream().use { stream -> return stream.bufferedReader().use { it.readText().trim() } } + } + else { + URL(url).openStream().use { stream -> return calculateMd5(stream) } + } + } catch (e: Exception) { + e.printStackTrace() + MainWindow.loadingLabel.text = e.message + MainWindow.loadingLabel.repaint() + return null + } + } + + fun calculateMd5(instream: InputStream): String { + return calculateDigest(instream, "MD5") + } + + private fun calculateDigest(instream: InputStream, algorithm: String): String { + val buffer = ByteArray(4096) + val messageDigest = getMessageDigest(algorithm) + messageDigest!!.reset() + var bytesRead: Int + try { + while (instream.read(buffer).also { bytesRead = it } != -1) { + messageDigest.update(buffer, 0, bytesRead) + } + } catch (e: IOException) { + System.err.println("Error making a '$algorithm' digest on the inputstream") + } + return toHex(messageDigest.digest()) + } + + fun toHex(ba: ByteArray): String { + val baLen = ba.size + val hexchars = CharArray(baLen * 2) + var cIdx = 0 + for (i in 0 until baLen) { + hexchars[cIdx++] = hexdigit[(ba[i].toInt() shr 4) and 0x0F] + hexchars[cIdx++] = hexdigit[(ba[i] and 0x0F).toInt()] + } + return String(hexchars) + } + + fun getMessageDigest(algorithm: String): MessageDigest? { + var messageDigest: MessageDigest? = null + try { + messageDigest = MessageDigest.getInstance(algorithm) + } catch (e: NoSuchAlgorithmException) { + System.err.println("The '$algorithm' algorithm is not available") + } + return messageDigest + } + + private val hexdigit = charArrayOf( + '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', 'a', 'b', + 'c', 'd', 'e', 'f' + ) +} \ No newline at end of file diff --git a/src/main/kotlin/Globals.kt b/src/main/kotlin/Globals.kt new file mode 100644 index 0000000..40e9e4f --- /dev/null +++ b/src/main/kotlin/Globals.kt @@ -0,0 +1,19 @@ +import settingseditor.SettingsWindow +import java.awt.Component +import java.io.File +import kotlin.system.exitProcess + +fun Component.placeAt(x: Int, y: Int, width: Int, height: Int){ + this.setBounds(x,y,width,height) + if(this is ImgButton) this.scale(width,height) +} + +fun launchClient() { + println("Launching client now.") + var proc = Runtime.getRuntime().exec("java -jar " + Settings.SAVE_NAME, null, File(Settings.SAVE_DIR)) + if(proc.isAlive && SettingsWindow.closeLauncherOnLaunch.isToggled){ + exitProcess(0) + } else if(SettingsWindow.closeLauncherOnLaunch.isToggled) { + MainWindow.loadingLabel.text = "Error starting the client." + } +} diff --git a/src/main/kotlin/ImgButton.kt b/src/main/kotlin/ImgButton.kt new file mode 100644 index 0000000..d0ea171 --- /dev/null +++ b/src/main/kotlin/ImgButton.kt @@ -0,0 +1,55 @@ +import java.awt.Image +import java.awt.event.MouseEvent +import java.awt.event.MouseListener +import javax.swing.Icon +import javax.swing.ImageIcon +import javax.swing.JLabel + +open class ImgButton(enabledURL: String, disabledURL: String = enabledURL, val autoHandleMouse: Boolean = true) : JLabel() { + + private var hoverMethod: (MouseEvent) -> Unit = {} + private var mouseLeaveMethod: (MouseEvent) -> Unit = {} + private var onClickMethod: (MouseEvent) -> Unit = {} + + init { + isEnabled = false + icon = ImageIcon(javaClass.getResource(enabledURL)) + disabledIcon = ImageIcon(javaClass.getResource(disabledURL)) + addMouseListener(object : MouseListener { + override fun mouseClicked(p0: MouseEvent) { + onClickMethod.invoke(p0) + } + + override fun mousePressed(p0: MouseEvent?) {} + + override fun mouseReleased(p0: MouseEvent?) {} + + override fun mouseEntered(p0: MouseEvent) { + if(autoHandleMouse) isEnabled = true + hoverMethod.invoke(p0) + } + + override fun mouseExited(p0: MouseEvent) { + if(autoHandleMouse) isEnabled = false + mouseLeaveMethod.invoke(p0) + } + }) + } + + fun onClick(handler: (event: MouseEvent) -> Unit){ + onClickMethod = handler + } + + fun onMouseEnter(handler: (event: MouseEvent) -> Unit){ + hoverMethod = handler + } + + fun onMouseExit(handler: (event: MouseEvent) -> Unit){ + mouseLeaveMethod = handler + } + + fun scale(width: Int, height: Int){ + icon = ImageIcon((icon as ImageIcon).image.getScaledInstance(width,height, Image.SCALE_SMOOTH)) + disabledIcon = ImageIcon((disabledIcon as ImageIcon).image.getScaledInstance(width, height, Image.SCALE_SMOOTH)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/LatestUpdatePane.kt b/src/main/kotlin/LatestUpdatePane.kt new file mode 100644 index 0000000..2c2ba71 --- /dev/null +++ b/src/main/kotlin/LatestUpdatePane.kt @@ -0,0 +1,72 @@ +import org.jsoup.Jsoup +import org.jsoup.nodes.Element +import org.jsoup.nodes.Node +import java.awt.Color +import java.awt.Dimension +import java.awt.Graphics +import java.awt.Rectangle +import javax.swing.JButton +import javax.swing.JComponent +import javax.swing.JScrollPane +import javax.swing.JTextPane +import javax.swing.plaf.basic.BasicScrollBarUI + +class LatestUpdatePane(url: String) : JScrollPane() { + val texPane = JTextPane() + init { + texPane.contentType = "text/html" + + texPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, true) + border = null + + val doc = Jsoup.connect(url).get() + doc.getElementsByTag("img").remove() + removeComments(doc) + val postBody = doc.select(".rightpanel").select(".msgcontents") + texPane.text = postBody.toString() + setViewportView(texPane) + texPane.isEditable = false + + getViewport().background = Color(153,132,104) + texPane.background = Color(153,132,104) + background = Color(153,132,104) + + getVerticalScrollBar().ui = object : BasicScrollBarUI() { + override fun configureScrollBarColors() { + this.thumbColor = Color(75,69,53) + } + + override fun paintTrack(p0: Graphics?, p1: JComponent?, p2: Rectangle?) {} + + override fun createDecreaseButton(p0: Int): JButton { + return object : JButton() { + override fun getPreferredSize(): Dimension { + return Dimension() + } + } + } + + override fun createIncreaseButton(p0: Int): JButton { + return object : JButton() { + override fun getPreferredSize(): Dimension { + return Dimension() + } + } + } + } + + getVerticalScrollBar().background = Color(49,45,37) + } + + private fun removeComments(node: Node) { + var i = 0 + while (i < node.childNodeSize()) { + val child = node.childNode(i) + if (child.nodeName() == "#comment") child.remove() + else { + removeComments(child) + i++ + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/MainWindow.kt b/src/main/kotlin/MainWindow.kt new file mode 100644 index 0000000..3ee6daf --- /dev/null +++ b/src/main/kotlin/MainWindow.kt @@ -0,0 +1,250 @@ +import com.sun.java.accessibility.util.AWTEventMonitor +import jvmwarn.JVMVersionWarning +import launcherupdate.LauncherUpdateNotification +import settingseditor.Json +import settingseditor.SettingsWindow +import java.awt.* +import java.awt.event.MouseAdapter +import java.awt.event.MouseEvent +import java.awt.event.MouseMotionAdapter +import java.net.URI +import javax.imageio.ImageIO +import javax.swing.* +import kotlin.system.exitProcess + + +object MainWindow : JFrame("2009scape Launcher") { + + val loadingLabel = JLabel("Press Launch to play 2009scape!") + val loadingBar = JLabel(ImageIcon(javaClass.getResource("/loadingBar.png"))) + val playButton = ImgButton("/playButton.png","/playButtonDisabled.png", false) + + + init { + this.iconImage = ImageIO.read(javaClass.getResource("/09logo.png")) + defaultCloseOperation = EXIT_ON_CLOSE + preferredSize = Dimension(800,500) + size = Dimension(800,500) + val tileBG = BackgroundPanel(ImageIO.read(javaClass.getResource("/tile.png"))) + contentPane = tileBG + layout = null + + constructTopBar() + val updatePane = LatestUpdatePane("https://2009scape.org/services/m=news/archives/latest.html") + updatePane.placeAt(4, 45, MainWindow.width - 8, MainWindow.height - 85) + add(updatePane) + addPlayButton() + + setLocationRelativeTo(null) + isUndecorated = true + isVisible = true + isEnabled = true + pack() + //SettingsWindow //<-- initialize all this shit haha hacks go weeee + } + + private fun constructTopBar(){ + val panel = object : BackgroundPanel(ImageIO.read(javaClass.getResource("/topBar.png"))){ + var initialClick: Point = Point() + var parent = MainWindow + init { + addMouseListener(object : MouseAdapter() { + override fun mousePressed(e: MouseEvent) { + initialClick = e.point + getComponentAt(initialClick) + } + }) + + addMouseMotionListener(object : MouseMotionAdapter() { + override fun mouseDragged(e: MouseEvent) { + + // get location of Window + val thisX = parent.location.x + val thisY = parent.location.y + + // Determine how much the mouse moved since the initial click + val xMoved: Int = e.getX() - initialClick.x + val yMoved: Int = e.getY() - initialClick.y + + // Move window to this position + val X = thisX + xMoved + val Y = thisY + yMoved + parent.setLocation(X, Y) + } + }) + } + } + panel.placeAt(0,0,MainWindow.width, 40) + addCloseButton(panel) + addNewsButton(panel) + addBugReportButton(panel) + addHighscoreButton(panel) + addDiscordButton(panel) + addSettingsbutton(panel) + addLogo(panel) + add(panel) + } + + private fun addPlayButton(){ + val loadingFrame = JLabel(ImageIcon(javaClass.getResource("/loadingFrame.png"))) + playButton.isEnabled = true + playButton.onClick { + if(!Settings.HAS_UPDATED) { + val t = Thread { + val oldText = loadingLabel.text + loadingLabel.text = "Checking for updates" + playButton.isEnabled = false + var counter = 0 + var dotCounter = 0 + while (Updater.status == Updater.UpdateStatus.CHECKING) { + if (counter++ % 5 == 0) { + dotCounter++ + loadingLabel.text = "Checking for updates${".".repeat((dotCounter % 4) + 1)}" + } + Thread.sleep(50L) + } + Settings.HAS_UPDATED = true + if (Updater.remoteMD5 != Updater.localMD5) { + println("Update required, running update...") + loadingLabel.text = oldText + Updater.runUpdate() + } else { + loadingLabel.text = oldText + playButton.isEnabled = true + launchClient() + } + }.start() + Thread { Updater.checkUpdate() }.start() + } else launchClient() + } + loadingFrame.placeAt(96,MainWindow.height - 35, 704, 35) + loadingBar.placeAt(103, MainWindow.height - 33, 695, 31) + playButton.placeAt(0,MainWindow.height - 35,100,35) + loadingLabel.placeAt(300, MainWindow.height - 24, 300, 15) + add(loadingLabel) + add(loadingBar) + add(loadingFrame) + add(playButton) + } + + private fun addNewsButton(panel: JPanel){ + val label = BackgroundLabel("/messageBox.png", "Latest
Update") + label.placeAt(0, 40, 90, 56) + add(label) + + val button = ImgButton("/news.png") + button.onMouseEnter { label.isVisible = true } + button.onMouseExit { label.isVisible = false } + button.onClick { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI("https://2009scape.org/services/m=news/archives/latest.html")); + } + } + button.placeAt(5,4,35,35) + panel.add(button) + } + + private fun addBugReportButton(panel: JPanel){ + val label = BackgroundLabel("/messageBox.png", "Report
Bug") + label.placeAt(25, 40, 90, 56) + add(label) + + val button = ImgButton("/reportBug.png") + button.onMouseEnter { label.isVisible = true } + button.onMouseExit { label.isVisible = false } + button.onClick { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI("https://gitlab.com/2009scape/2009scape/-/issues")); + } + } + button.placeAt(50, 4, 35, 35) + panel.add(button) + } + + private fun addHighscoreButton(panel: JPanel){ + val label = BackgroundLabel("/messageBox.png", "Leader
Boards") + label.placeAt(70, 40, 90, 56) + add(label) + + val button = ImgButton("/highScores.png") + button.onMouseEnter { label.isVisible = true } + button.onMouseExit { label.isVisible = false } + button.onClick { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI("https://2009scape.org/services/m=hiscore/hiscores.html?world=2")); + } + } + button.placeAt(90, 2, 38, 38) + panel.add(button) + } + + private fun addDiscordButton(panel: JPanel){ + val label = BackgroundLabel("/messageBox.png", "Join
Discord") + label.placeAt(110, 40, 90, 56) + add(label) + + val button = ImgButton("/joinDiscord.png") + button.onMouseEnter { label.isVisible = true } + button.onMouseExit { label.isVisible = false } + button.onClick { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI("https://discord.gg/YY7WSttN7H")); + } + } + button.placeAt(135, 4, 35, 35) + panel.add(button) + } + + private fun addSettingsbutton(panel: BackgroundPanel){ + val button = ImgButton("/settings.png") + val label = BackgroundLabel("/messageBox.png", "Client
Settings") + add(label) + + label.placeAt(panel.width - 100, 40, 90, 56) + button.onMouseEnter { label.isVisible = true } + button.onMouseExit { label.isVisible = false } + button.onClick { + SettingsWindow.open() + } + button.placeAt(panel.width - 80, 1, 40, 40) + panel.add(button) + } + + private fun addCloseButton(panel: BackgroundPanel){ + val button = ImgButton("/close_hi.png","/close_dark.png") + button.onClick { exitProcess(0) } + button.placeAt(panel.width - 35, 7, 25, 25) + button.isOpaque = false + panel.add(button) + } + + private fun addLogo(panel: JPanel){ + val logo = JLabel(ImageIcon(javaClass.getResource("/logo.png"))) + logo.icon = ImageIcon((logo.icon as ImageIcon).image.getScaledInstance(179,40, Image.SCALE_SMOOTH)) + logo.placeAt(311, 0, 179, 40) + panel.add(logo) + } + + @JvmStatic + fun main(args: Array) { + Json.parse() + val t = Thread { + if(Settings.CHECK_FOR_UPDATES) { + val javaVersion = System.getProperty("java.specification.version") + if (!javaVersion.startsWith("1.8") && !javaVersion.startsWith("11")) + { + JVMVersionWarning.open() + return@Thread + } + Updater.checkLauncherUpdate() + while (Updater.launcherStatus == Updater.UpdateStatus.CHECKING) { + Thread.sleep(100L) + } + if (Updater.launcherLocalMD5 != Updater.launcherRemoteMD5) { + println("Trying to open") + LauncherUpdateNotification.open() + } + } + }.start() + } +} \ No newline at end of file diff --git a/src/main/kotlin/Settings.kt b/src/main/kotlin/Settings.kt new file mode 100644 index 0000000..587c275 --- /dev/null +++ b/src/main/kotlin/Settings.kt @@ -0,0 +1,17 @@ +object Settings { + val os = System.getProperty("os.name").toLowerCase() + var SAVE_DIR = when(os.contains("nix") || os.contains("nux") || os.contains("aix")) { + true -> System.getProperty("user.home") + "/.local/share/2009scape" + false -> System.getProperty("user.home") + } + val SAVE_NAME = "2009scape.jar" + val DOWNLOAD_URL = "https://cdn.2009scape.org/2009scape.jar" + val DOWNLOAD_MD5_URL = "https://cdn.2009scape.org/2009scape.md5sum" + val LAUNCHER_URL = "https://gitlab.com/2009scape/09launcher/-/jobs/artifacts/master/raw/build/libs/2009scape.jar?job=build" + var HAS_UPDATED = false + var CHECK_FOR_UPDATES = true + set(value) { + field = value + println(value) + } +} diff --git a/src/main/kotlin/Updater.kt b/src/main/kotlin/Updater.kt new file mode 100644 index 0000000..a3c123f --- /dev/null +++ b/src/main/kotlin/Updater.kt @@ -0,0 +1,110 @@ +import settingseditor.Json +import java.awt.Image +import java.io.File +import java.io.RandomAccessFile +import java.net.URI +import java.net.URL +import java.util.concurrent.Executors +import javax.swing.ImageIcon + +object Updater { + + var status = UpdateStatus.CHECKING + var localMD5 = "-1" + var remoteMD5 = "-1" + var launcherRemoteMD5 = "-1" + var launcherLocalMD5 = "-1" + var launcherStatus = UpdateStatus.CHECKING + + fun checkUpdate(){ + val fileUri = File(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME).toURI() + status = UpdateStatus.CHECKING + localMD5 = Checksum.getLocalChecksum(fileUri) + remoteMD5 = Checksum.getRemoteChecksum(Settings.DOWNLOAD_MD5_URL, checksumFile = true) ?: "-1" + println("Local: $localMD5 || Remote: $remoteMD5") + status = UpdateStatus.COMPLETE + } + + fun checkLauncherUpdate(){ + launcherStatus = UpdateStatus.CHECKING + launcherLocalMD5 = Checksum.getLocalChecksum(javaClass.protectionDomain.codeSource.location.toURI()) + launcherRemoteMD5 = Checksum.getRemoteChecksum(Settings.LAUNCHER_URL) ?: "-1" + println("Launcher Local: $launcherLocalMD5 || Launcher Remote: $launcherRemoteMD5") + launcherStatus = UpdateStatus.COMPLETE + Json.save() + } + + fun runUpdate(){ + val t = Thread() { + var oldText = MainWindow.loadingLabel.text + MainWindow.loadingLabel.text = "Updating client..." + MainWindow.playButton.isEnabled = false + var downloaded = 0 + var lastBarUpdate = 0 + + val connection = URL(Settings.DOWNLOAD_URL).openConnection() + connection.connect() + + val length = connection.contentLength + + if (!File(Settings.SAVE_DIR).exists()) { + File(Settings.SAVE_DIR).mkdir() + } + if (File(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME).exists()) { + File(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME).delete() + } + + File(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME).createNewFile() + + val file = RandomAccessFile(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME, "rw") + + val stream = connection.getInputStream() + + status = UpdateStatus.DOWNLOADING + var start = System.currentTimeMillis() + + while(status == UpdateStatus.DOWNLOADING){ + val buffer = if(length - downloaded > 4096){ + ByteArray(4096) + } else { + ByteArray(length - downloaded) + } + + val read = stream.read(buffer) + + if(read == -1) break + + val progress = ((downloaded / length.toFloat()) * 100).toInt() + val barLength = 1 + ((progress / 100.0) * 695.0).toInt() + + MainWindow.loadingLabel.text = "Updating client... $progress%" + + if(barLength - lastBarUpdate > 5){ + MainWindow.loadingBar.icon = ImageIcon((MainWindow.loadingBar.icon as ImageIcon).image.getScaledInstance(barLength, 31, Image.SCALE_FAST)) + MainWindow.loadingBar.placeAt(103, MainWindow.height - 33, barLength, 31) + lastBarUpdate = barLength + } + + file.write(buffer, 0, read) + downloaded += read + + if(downloaded >= length){ + MainWindow.loadingLabel.text = oldText + MainWindow.playButton.isEnabled = true + file.close() + status = UpdateStatus.COMPLETE + } + } + println("Time taken: ${System.currentTimeMillis() - start}ms") + MainWindow.loadingBar.icon = ImageIcon((MainWindow.loadingBar.icon as ImageIcon).image.getScaledInstance(695, 31, Image.SCALE_FAST)) + MainWindow.loadingBar.placeAt(103, MainWindow.height - 33, 695, 31) + launchClient() + }.start() + } + + enum class UpdateStatus{ + CHECKING, + DOWNLOADING, + COMPLETE + } +} \ No newline at end of file diff --git a/src/main/kotlin/jvmwarn/JVMVersionWarning.kt b/src/main/kotlin/jvmwarn/JVMVersionWarning.kt new file mode 100644 index 0000000..5a7d48d --- /dev/null +++ b/src/main/kotlin/jvmwarn/JVMVersionWarning.kt @@ -0,0 +1,96 @@ +package jvmwarn + +import Checkbox +import ImgButton +import settingseditor.Json +import java.awt.* +import java.net.URI +import javax.swing.JFrame +import javax.swing.JLabel +import javax.swing.JPanel +import javax.swing.JSeparator +import kotlin.system.exitProcess + +object JVMVersionWarning : JFrame() { + init { + isUndecorated = true + isVisible = false + isResizable = false + defaultCloseOperation = HIDE_ON_CLOSE + isAutoRequestFocus = true + isAlwaysOnTop = true + preferredSize = Dimension(250,150) + size = Dimension(250,150) + layout = BorderLayout() + setLocationRelativeTo(null) + + val textArea = getDarkPanel(BorderLayout()) + val label = getLabel("

Unsupported Java version!
Requires: Java 8 or 11.

Would you like to be taken to the download page for OpenJDK 11?
") + textArea.add(label, BorderLayout.NORTH) + add(textArea, BorderLayout.CENTER) + + + val buttons = getThemedPanel(BorderLayout()) + val yesButton = ImgButton("/save_hi.png") + yesButton.onClick { + val osName = System.getProperty("os.name").toLowerCase() + val url = if(osName.contains("win")) + { + "https://api.adoptium.net/v3/installer/latest/11/ga/windows/x64/jre/hotspot/normal/eclipse?project=jdk" + } + else if(osName.contains("lin")) + { + "https://api.adoptium.net/v3/binary/latest/11/ga/linux/x64/jre/hotspot/normal/eclipse?project=jdk" + } + else "https://adoptium.net/temurin/releases" + + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI(url)); + } + + exitProcess(0) + } + + val noButton = ImgButton("/update_no.png") + noButton.onClick { + isVisible = false + MainWindow.isEnabled = true + } + + buttons.add(getSeparator(), BorderLayout.NORTH) + buttons.add(yesButton, BorderLayout.WEST) + buttons.add(noButton, BorderLayout.EAST) + add(buttons, BorderLayout.SOUTH) + pack() + } + + fun getThemedPanel(layout: LayoutManager? = null): JPanel { + val panel = if(layout == null) JPanel() else JPanel(layout) + panel.background = Color(102,90,69) + return panel + } + + fun getDarkPanel(layout: LayoutManager? = null): JPanel { + val panel = if(layout == null) JPanel() else JPanel(layout) + panel.background = Color(82,73,51) + return panel + } + + fun getSeparator(): JSeparator { + val sep = JSeparator(JSeparator.HORIZONTAL) + sep.background = Color(57,49,39) + sep.foreground = Color(57,49,39) + return sep + } + + fun getLabel(text: String): JLabel { + val label = JLabel(text) + label.foreground = Color(227,208,179) + return label + } + + fun open() { + isVisible = true + MainWindow.isEnabled = false + } +} \ No newline at end of file diff --git a/src/main/kotlin/launcherupdate/LauncherUpdateNotification.kt b/src/main/kotlin/launcherupdate/LauncherUpdateNotification.kt new file mode 100644 index 0000000..1891b0a --- /dev/null +++ b/src/main/kotlin/launcherupdate/LauncherUpdateNotification.kt @@ -0,0 +1,104 @@ +package launcherupdate + +import BackgroundPanel +import Checkbox +import ImgButton +import placeAt +import settingseditor.Json +import settingseditor.SettingsWindow +import java.awt.* +import java.net.URI +import javax.imageio.ImageIO +import javax.swing.JFrame +import javax.swing.JLabel +import javax.swing.JPanel +import javax.swing.JSeparator +import javax.swing.border.Border +import kotlin.system.exitProcess + +object LauncherUpdateNotification : JFrame() { + init { + isUndecorated = true + isVisible = false + isResizable = false + defaultCloseOperation = HIDE_ON_CLOSE + isAutoRequestFocus = true + isAlwaysOnTop = true + preferredSize = Dimension(250,150) + size = Dimension(250,150) + layout = BorderLayout() + setLocationRelativeTo(null) + + val textArea = getDarkPanel(BorderLayout()) + val label = getLabel("
A new launcher update is available!
Would you like to download it now?
") + textArea.add(label, BorderLayout.NORTH) + + val interiorPanel = getDarkPanel(BorderLayout()) + val checkBoxLabel = getLabel("Notify me of future updates") + val checkBox = Checkbox() + checkBox.isToggled = Settings.CHECK_FOR_UPDATES + checkBox.onClick { + checkBox.isToggled = !checkBox.isToggled + Settings.CHECK_FOR_UPDATES = checkBox.isToggled + } + interiorPanel.add(checkBoxLabel, BorderLayout.WEST) + interiorPanel.add(checkBox, BorderLayout.EAST) + textArea.add(interiorPanel,BorderLayout.SOUTH) + add(textArea, BorderLayout.CENTER) + + + + val buttons = getThemedPanel(BorderLayout()) + val yesButton = ImgButton("/save_hi.png") + yesButton.onClick { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI(Settings.LAUNCHER_URL)); + } + Json.save() + exitProcess(0) + } + + val noButton = ImgButton("/update_no.png") + noButton.onClick { + Json.save() + isVisible = false + MainWindow.isEnabled = true + } + + buttons.add(getSeparator(), BorderLayout.NORTH) + buttons.add(yesButton,BorderLayout.WEST) + buttons.add(noButton,BorderLayout.EAST) + add(buttons, BorderLayout.SOUTH) + pack() + } + + fun getThemedPanel(layout: LayoutManager? = null): JPanel { + val panel = if(layout == null) JPanel() else JPanel(layout) + panel.background = Color(102,90,69) + return panel + } + + fun getDarkPanel(layout: LayoutManager? = null): JPanel { + val panel = if(layout == null) JPanel() else JPanel(layout) + panel.background = Color(82,73,51) + return panel + } + + fun getSeparator(): JSeparator { + val sep = JSeparator(JSeparator.HORIZONTAL) + sep.background = Color(57,49,39) + sep.foreground = Color(57,49,39) + return sep + } + + fun getLabel(text: String): JLabel { + val label = JLabel(text) + label.foreground = Color(227,208,179) + return label + } + + fun open() { + isVisible = true + MainWindow.isEnabled = false + } +} \ No newline at end of file diff --git a/src/main/kotlin/settingseditor/Json.kt b/src/main/kotlin/settingseditor/Json.kt new file mode 100644 index 0000000..bfee9bf --- /dev/null +++ b/src/main/kotlin/settingseditor/Json.kt @@ -0,0 +1,170 @@ +package settingseditor + +import org.json.simple.JSONObject +import org.json.simple.parser.JSONParser +import java.io.File +import java.io.FileReader +import java.io.FileWriter + +object Json { + + val os = System.getProperty("os.name").toLowerCase() + var HOME = when(os.contains("nix") || os.contains("nux") || os.contains("aix")) { + true -> System.getProperty("user.home") + "/.local/share/2009scape" + false -> System.getProperty("user.home") + } + val CONF = HOME + File.separator + "config.json" + + var data: JSONObject = JSONObject() + + init { + val dir = File(HOME) + if (!dir.exists()) { + dir.mkdirs() + } + } + + fun save(){ + val osName = System.getProperty("os.name").toLowerCase() + val customization = data["customization"] as JSONObject + val xpDrops = customization["xpdrops"] as JSONObject + val slayer = customization["slayer"] as JSONObject + val rcm = customization["right_click_menu"] as JSONObject + val styles = rcm["styles"] as JSONObject + val launcher = customization.getOrPut("launcher") { JSONObject() } as JSONObject + + val background = rcm["background"] as JSONObject + val title_bar = rcm["title_bar"] as JSONObject + val border = rcm["border"] as JSONObject + val debug = data["debug"] as JSONObject + + data["js5_port"] = 43595 + data["wl_port"] = 43595 + background["color"] = SettingsWindow.bgColorField.text + background["opacity"] = SettingsWindow.bgOpacityField.text + title_bar["color"] = SettingsWindow.titleColorField.text + title_bar["opacity"] = SettingsWindow.titleOpacityField.text + title_bar["font_color"] = SettingsWindow.titleFontColor.text + border["color"] = SettingsWindow.borderColor.text + border["opacity"] = SettingsWindow.borderOpacity.text + styles["rs3border"] = SettingsWindow.rs3Border.isToggled + debug["item_debug"] = SettingsWindow.itemDebugCheckbox.isToggled + debug["object_debug"] = SettingsWindow.objectDebugCheckbox.isToggled + debug["npc_debug"] = SettingsWindow.npcDebugCheckbox.isToggled + xpDrops["enabled"] = SettingsWindow.xpDropsEnabled.isToggled + xpDrops["drop_mode"] = SettingsWindow.xpDropMode.selectedIndex + xpDrops["track_mode"] = SettingsWindow.xpTrackMode.selectedIndex + slayer["enabled"] = SettingsWindow.slayerEnabled.isToggled + slayer["color"] = SettingsWindow.slayerColor.text + slayer["opacity"] = SettingsWindow.slayerOpacity.text + customization["login_theme"] = SettingsWindow.loginTheme.text + customization["december_snow"] = SettingsWindow.enableSnowDecember.isToggled + rcm["left_click_attack"] = SettingsWindow.enableLeftClickAttack.isToggled + launcher["closeOnClientLaunch"] = SettingsWindow.closeLauncherOnLaunch.isToggled + launcher["notifyUpdates"] = Settings.CHECK_FOR_UPDATES + customization["minimap_filter"] = SettingsWindow.minimapFilter.isToggled + customization["aa_samples"] = when(SettingsWindow.aaSamples.selectedIndex) + { + 0 -> 0 + 1 -> 8 + else -> 16 + } + + val ip = when(SettingsWindow.profileMode.selectedIndex) + { + 0 -> "play.2009scape.org" + 1 -> "test.2009scape.org" + else -> "localhost" + } + + data["ip_management"] = ip + data["ip_address"] = ip + + FileWriter(CONF).use { writer -> + writer.write(data.toJSONString()) + writer.flush() + } + } + + fun parse(){ + try { + if(!File(CONF).exists()){ + val reader = javaClass.getResourceAsStream("/config.json")!! + val writer = File(CONF).outputStream() + reader.copyTo(writer, 1024) + writer.flush() + writer.close() + } + data = FileReader(CONF).use { reader -> + val parser = JSONParser() + parser.parse(reader) as JSONObject + } + + val customization = data["customization"] as JSONObject + val launcher = customization.getOrPut("launcher") {JSONObject()} as JSONObject + val xpDrops = customization["xpdrops"] as JSONObject + val slayer = customization["slayer"] as JSONObject + val rcm = customization["right_click_menu"] as JSONObject + val styles = rcm["styles"] as JSONObject + + val background = rcm["background"] as JSONObject + val title_bar = rcm["title_bar"] as JSONObject + val border = rcm["border"] as JSONObject + val debug = data["debug"] as JSONObject + + SettingsWindow.itemDebugCheckbox.isToggled = debug["item_debug"] as Boolean + SettingsWindow.objectDebugCheckbox.isToggled = debug["object_debug"] as Boolean + SettingsWindow.npcDebugCheckbox.isToggled = debug["npc_debug"] as Boolean + + SettingsWindow.rs3Border.isToggled = styles["rs3border"] as Boolean + SettingsWindow.bgColorField.text = background["color"].toString() + SettingsWindow.bgOpacityField.text = background["opacity"].toString() + SettingsWindow.titleColorField.text = title_bar["color"].toString() + SettingsWindow.titleOpacityField.text = title_bar["opacity"].toString() + SettingsWindow.titleFontColor.text = title_bar["font_color"].toString() + SettingsWindow.borderColor.text = border["color"].toString() + SettingsWindow.borderOpacity.text = border["opacity"].toString() + + SettingsWindow.xpDropsEnabled.isToggled = xpDrops.getOrDefault("enabled",true) as Boolean + SettingsWindow.xpDropMode.selectedIndex = xpDrops.getOrDefault("drop_mode",0).toString().toInt() + SettingsWindow.xpTrackMode.selectedIndex = xpDrops.getOrDefault("track_mode",0).toString().toInt() + + SettingsWindow.slayerEnabled.isToggled = slayer.getOrDefault("enabled",true) as Boolean + SettingsWindow.slayerColor.text = slayer.getOrDefault("color", "#635a38").toString() + SettingsWindow.slayerOpacity.text = slayer.getOrDefault("opacity","180").toString() + SettingsWindow.loginTheme.text = customization.getOrDefault("login_theme","scape main").toString() + SettingsWindow.enableSnowDecember.isToggled = customization.getOrDefault("december_snow", true) as Boolean + SettingsWindow.enableLeftClickAttack.isToggled = rcm.getOrDefault("left_click_attack", false) as Boolean + SettingsWindow.minimapFilter.isToggled = customization.getOrDefault("minimap_filter",true) as Boolean + SettingsWindow.aaSamples.selectedIndex = when(customization.getOrDefault("aa_samples",0).toString().toInt()) + { + 0 -> 0 + 8 -> 1 + 16 -> 2 + else -> 0 + } + + SettingsWindow.closeLauncherOnLaunch.isToggled = launcher.getOrDefault("closeOnClientLaunch", true) as Boolean + Settings.CHECK_FOR_UPDATES = launcher.getOrDefault("notifyUpdates", true) as Boolean + + SettingsWindow.profileMode.selectedIndex = when(data["ip_management"]) + { + "play.2009scape.org" -> 0 + "test.2009scape.org" -> 1 + "localhost" -> 2 + else -> 0 //live + } + } catch (e: Exception) { + println("error parsing settings, replacing with defaults...") + e.printStackTrace() + File(CONF).delete() + FileReader(javaClass.getResource("/config.json")!!.file).use { reader -> + val writer = FileWriter(CONF) + reader.copyTo(writer, 1024) + writer.flush() + writer.close() + } + parse() + } + } +} diff --git a/src/main/kotlin/settingseditor/RCMPreview.kt b/src/main/kotlin/settingseditor/RCMPreview.kt new file mode 100644 index 0000000..e93cd32 --- /dev/null +++ b/src/main/kotlin/settingseditor/RCMPreview.kt @@ -0,0 +1,98 @@ +package settingseditor + +import java.awt.BorderLayout +import java.awt.Color +import java.lang.Exception +import javax.swing.* + +object RCMPreview : JFrame("RCM Preview") { + + val chooseLabel = JLabel("Choose Option") + val mainPanel = JPanel(BorderLayout()) + val choosePanel = JPanel(BorderLayout()) + val optionsPanel = JPanel() + val abyssalWhipLabel = JLabel(" Abyssal whip") + val abyssalWhipLabel2 = JLabel(" Abyssal whip") + val takePanel = JPanel(BorderLayout()) + val examinePanel = JPanel(BorderLayout()) + val walkPanel = JPanel(BorderLayout()) + val cancelPanel = JPanel(BorderLayout()) + var border = BorderFactory.createLineBorder(Color(255,255,255)) + + init { + isUndecorated = true + isResizable = false + layout = BorderLayout() + setLocation(SettingsWindow.location.x + SettingsWindow.width + 10, SettingsWindow.location.y) + + isVisible = false + updateComponents() + choosePanel.add(chooseLabel, BorderLayout.WEST) + mainPanel.add(choosePanel, BorderLayout.NORTH) + optionsPanel.layout = BoxLayout(optionsPanel, BoxLayout.PAGE_AXIS) + + takePanel.add(getLabel("Take"), BorderLayout.WEST) + takePanel.add(abyssalWhipLabel, BorderLayout.EAST) + optionsPanel.add(takePanel) + + examinePanel.add(getLabel("Examine"), BorderLayout.WEST) + examinePanel.add(abyssalWhipLabel2, BorderLayout.EAST) + + walkPanel.add(getLabel("Walk here"), BorderLayout.WEST) + + cancelPanel.add(getLabel("Cancel"), BorderLayout.WEST) + + optionsPanel.add(walkPanel) + optionsPanel.add(examinePanel) + optionsPanel.add(cancelPanel) + + mainPanel.add(optionsPanel, BorderLayout.SOUTH) + + add(mainPanel, BorderLayout.CENTER) + background = Color(0,0,0,0) + mainPanel.background = Color(0,0,0,0) + pack() + SettingsWindow.RCMPreviewInitialized = true + } + + private fun updateComponents(){ + val bgColor = Color.decode(SettingsWindow.bgColorField.text) + val titleColor = Color.decode(SettingsWindow.titleColorField.text) + val fontColor = Color.decode(SettingsWindow.titleFontColor.text) + val borderColor = Color.decode(SettingsWindow.borderColor.text) + val bgOpacity = SettingsWindow.bgOpacityField.text.toInt() + val titleOpacity = SettingsWindow.titleOpacityField.text.toInt() + val borderOpacity = SettingsWindow.borderOpacity.text.toInt() + chooseLabel.foreground = Color(fontColor.red, fontColor.green, fontColor.blue) + choosePanel.background = Color(titleColor.red, titleColor.green, titleColor.blue, titleOpacity) + optionsPanel.background = Color(bgColor.red, bgColor.green, bgColor.blue, bgOpacity) + abyssalWhipLabel.foreground = Color(174,98,47) + abyssalWhipLabel2.foreground = Color(174,98,47) + takePanel.background = Color(bgColor.red, bgColor.green, bgColor.blue, bgOpacity) + examinePanel.background = Color(bgColor.red, bgColor.green, bgColor.blue, bgOpacity) + walkPanel.background = Color(bgColor.red, bgColor.green, bgColor.blue, bgOpacity) + cancelPanel.background = Color(bgColor.red, bgColor.green, bgColor.blue, bgOpacity) + border = BorderFactory.createLineBorder(Color(borderColor.red, borderColor.green, borderColor.blue, borderOpacity)) + if(SettingsWindow.rs3Border.isToggled){ + mainPanel.border = border + optionsPanel.border = null + } else { + mainPanel.border = null + optionsPanel.border = border + } + } + + fun getLabel(text: String): JLabel { + val l = JLabel(text) + l.foreground = Color(203,203,203) + return l + } + + fun redraw(){ + try { + updateComponents() + revalidate() + repaint() + } catch (ignored: Exception){} + } +} \ No newline at end of file diff --git a/src/main/kotlin/settingseditor/SettingsWindow.kt b/src/main/kotlin/settingseditor/SettingsWindow.kt new file mode 100644 index 0000000..eeb18bf --- /dev/null +++ b/src/main/kotlin/settingseditor/SettingsWindow.kt @@ -0,0 +1,392 @@ +package settingseditor + +import BackgroundLabel +import BackgroundPanel +import Checkbox +import ImgButton +import placeAt +import java.awt.BorderLayout +import java.awt.Color +import java.awt.Dimension +import java.awt.LayoutManager +import javax.imageio.ImageIO +import javax.swing.* +import javax.swing.event.DocumentEvent +import javax.swing.event.DocumentListener + +object SettingsWindow : JFrame("Client Settings") { + + val xpDropModeOptions = arrayOf("instant","incremental") + val xpTrackModeOptions = arrayOf("total xp","recent skill") + val profileOptions = arrayOf("Live","Testing","Local") + val aaOptions = arrayOf("0", "8", "16") + + var tabs = ArrayList() + var buttons = ArrayList() + var tabNotes = ArrayList() + var activeTab = 0 + var buttonSpacer = 0 + val itemDebugCheckbox = Checkbox() + val objectDebugCheckbox = Checkbox() + val npcDebugCheckbox = Checkbox() + val rs3Border = Checkbox() + val bgColorField = JTextField() + val bgOpacityField = JTextField() + val titleColorField = JTextField() + val titleOpacityField = JTextField() + val titleFontColor = JTextField() + val borderColor = JTextField() + val borderOpacity = JTextField() + val loginTheme = JTextField() + val enableSnowDecember = Checkbox() + val enableLeftClickAttack = Checkbox() + val xpDropsEnabled = Checkbox() + val xpDropMode = JComboBox(xpDropModeOptions) + val xpTrackMode = JComboBox(xpTrackModeOptions) + val slayerColor = JTextField() + val slayerOpacity = JTextField() + val slayerEnabled = Checkbox() + val closeLauncherOnLaunch = Checkbox() + val checkForLauncherUpdates = Checkbox() + var RCMPreviewInitialized = false + val profileMode = JComboBox(profileOptions) + val minimapFilter = Checkbox() + val aaSamples = JComboBox(aaOptions) + + init { + isUndecorated = true + isVisible = false + isResizable = false + defaultCloseOperation = HIDE_ON_CLOSE + preferredSize = Dimension(400,300) + size = Dimension(400,300) + val tileBG = BackgroundPanel(ImageIO.read(javaClass.getResource("/topBar.png"))) + contentPane = tileBG + layout = null + setLocationRelativeTo(null) + + addDebugTab() + addRightClickTab() + addMiscTab() + addLauncherSettingsTab() + + val saveButton = ImgButton("/save_hi.png","/save_lo.png") + saveButton.onClick { + Json.save() + RCMPreview.isVisible = false + isVisible = false + } + saveButton.placeAt(width - 30, height - 30, 30, 30) + add(saveButton) + + val closeButton = ImgButton("/close_hi.png", "/close_dark.png") + closeButton.onClick { + isVisible = false + RCMPreview.isVisible = false + Json.parse() + } + closeButton.placeAt(width - 25, 5, 20, 20) + add(closeButton) + } + + fun addMiscTab() { + val pane = getThemedPanel() + pane.layout = BoxLayout(pane, BoxLayout.PAGE_AXIS) + val button = ImgButton("/misc.png", "/misc.png", false) + + val xpTogglePanel = getThemedPanel(BorderLayout()) + val xpDropPanel = getThemedPanel(BorderLayout()) + val xpTrackPanel = getThemedPanel(BorderLayout()) + val slayerTogglePanel = getThemedPanel(BorderLayout()) + val slayerColorPanel = getThemedPanel(BorderLayout()) + val slayerOpacityPanel = getThemedPanel(BorderLayout()) + val loginThemePanel = getThemedPanel(BorderLayout()) + val enableSnowDecemberPanel = getThemedPanel(BorderLayout()) + val enableLeftClickAttackPanel = getThemedPanel(BorderLayout()) + val minimapFilterPanel = getThemedPanel(BorderLayout()) + val aaSamplesPanel = getThemedPanel(BorderLayout()) + + val xpToggleLabel = getLabel("XP Drops Enabled") + val xpDropLabel = getLabel("XP Drop Mode") + val xpTrackLabel = getLabel("XP Track Mode") + val slayerToggleLabel = getLabel("Slayer Tracker Enabled") + val slayerColorLabel = getLabel("Slayer Tracker Color") + val slayerOpacityLabel = getLabel("Slayer Tracker Opacity") + val loginThemeLabel = getLabel("Login Theme") + val enableSnowDecemberLabel = getLabel("Enable Snow During December") + val enableLeftClickAttackLabel = getLabel("Enable Left Click Attack") + val minimapFilterLabel = getLabel("Smoother Minimap") + val aaSamplesLabel = getLabel("Override HD Anti-Aliasing Level") + + for(field in arrayOf(loginTheme, xpDropMode, xpTrackMode, slayerColor, slayerOpacity)) + { + field.size = Dimension(200,10) + field.minimumSize = Dimension(200,10) + field.maximumSize = Dimension(200,10) + field.preferredSize = Dimension(200,10) + } + + loginThemePanel.add(loginThemeLabel, BorderLayout.WEST) + loginThemePanel.add(loginTheme, BorderLayout.EAST) + pane.add(loginThemePanel) + pane.add(getSeparator()) + + enableSnowDecemberPanel.add(enableSnowDecemberLabel, BorderLayout.WEST) + enableSnowDecemberPanel.add(enableSnowDecember, BorderLayout.EAST) + pane.add(enableSnowDecemberPanel) + pane.add(getSeparator()) + + xpTogglePanel.add(xpToggleLabel, BorderLayout.WEST) + xpTogglePanel.add(xpDropsEnabled, BorderLayout.EAST) + pane.add(xpTogglePanel) + + xpDropPanel.add(xpDropLabel, BorderLayout.WEST) + xpDropPanel.add(xpDropMode, BorderLayout.EAST) + pane.add(xpDropPanel) + + xpTrackPanel.add(xpTrackLabel, BorderLayout.WEST) + xpTrackPanel.add(xpTrackMode, BorderLayout.EAST) + pane.add(xpTrackPanel) + pane.add(getSeparator()) + + slayerTogglePanel.add(slayerToggleLabel, BorderLayout.WEST) + slayerTogglePanel.add(slayerEnabled, BorderLayout.EAST) + pane.add(slayerTogglePanel) + + slayerColorPanel.add(slayerColorLabel, BorderLayout.WEST) + slayerColorPanel.add(slayerColor, BorderLayout.EAST) + pane.add(slayerColorPanel) + + slayerOpacityPanel.add(slayerOpacityLabel, BorderLayout.WEST) + slayerOpacityPanel.add(slayerOpacity, BorderLayout.EAST) + pane.add(slayerOpacityPanel) + pane.add(getSeparator()) + + enableLeftClickAttackPanel.add(enableLeftClickAttackLabel, BorderLayout.WEST) + enableLeftClickAttackPanel.add(enableLeftClickAttack, BorderLayout.EAST) + pane.add(enableLeftClickAttackPanel) + pane.add(getSeparator()) + + minimapFilterPanel.add(minimapFilterLabel, BorderLayout.WEST) + minimapFilterPanel.add(minimapFilter, BorderLayout.EAST) + pane.add(minimapFilterPanel) + + aaSamplesPanel.add(aaSamplesLabel, BorderLayout.WEST) + aaSamplesPanel.add(aaSamples, BorderLayout.EAST) + pane.add(aaSamplesPanel) + + addTab(pane, button, getLabel("Misc Settings")) + } + + fun addDebugTab(){ + val pane = getThemedPanel() + pane.layout = BoxLayout(pane, BoxLayout.PAGE_AXIS) + val button = ImgButton("/debug_settings.png", "/debug_settings.png", false) + + val itemDebug = getThemedPanel(BorderLayout()) + val itemDebugLabel = getLabel("Item IDs Visible") + itemDebug.add(itemDebugLabel, BorderLayout.WEST) + itemDebug.add(itemDebugCheckbox, BorderLayout.EAST) + pane.add(itemDebug) + pane.add(getSeparator()) + + val objectDebug = getThemedPanel(BorderLayout()) + val objectDebugLabel = getLabel("Object IDs Visible") + objectDebug.add(objectDebugLabel, BorderLayout.WEST) + objectDebug.add(objectDebugCheckbox, BorderLayout.EAST) + pane.add(objectDebug) + pane.add(getSeparator()) + + val npcDebug = getThemedPanel(BorderLayout()) + val npcDebugLabel = getLabel("NPC IDs Visible") + npcDebug.add(npcDebugLabel, BorderLayout.WEST) + npcDebug.add(npcDebugCheckbox, BorderLayout.EAST) + pane.add(npcDebug) + + addTab(pane, button, getLabel("Debug Settings")) + } + + fun addRightClickTab() { + val pane = getThemedPanel() + pane.layout = BoxLayout(pane, BoxLayout.PAGE_AXIS) + val button = ImgButton("/rightClick.png", "/rightClick.png", false) + + val rs3BorderPanel = getThemedPanel(BorderLayout()) + val bgColorPanel = getThemedPanel(BorderLayout()) + val bgOpacityPanel = getThemedPanel(BorderLayout()) + val titleColorPanel = getThemedPanel(BorderLayout()) + val titleOpacityPanel = getThemedPanel(BorderLayout()) + val titleFontPanel = getThemedPanel(BorderLayout()) + val borderColorPanel = getThemedPanel(BorderLayout()) + val borderOpacityPanel = getThemedPanel(BorderLayout()) + val rs3BorderLabel = getLabel("Use RS3-Style Menu Border") + val bgColorLabel = getLabel("Background Color") + val bgOpacityLabel = getLabel("Background Opacity") + val titleColorLabel = getLabel("Title Bar Color") + val titleOpacityLabel = getLabel("Title Bar Opacity") + val titleFontLabel = getLabel("Title Bar Font Color") + val borderColorLabel = getLabel("Border Color") + val borderOpacityLabel = getLabel("Border Opacity") + + for(field in arrayOf(bgColorField, bgOpacityField, titleColorField, titleOpacityField, titleFontColor, borderColor, borderOpacity)) + { + field.size = Dimension(100,10) + field.minimumSize = Dimension(100,10) + field.maximumSize = Dimension(100,10) + field.preferredSize = Dimension(100,10) + field.document.addDocumentListener(object : DocumentListener { + override fun insertUpdate(p0: DocumentEvent?) { + if(RCMPreviewInitialized) + RCMPreview.redraw() + } + override fun removeUpdate(p0: DocumentEvent?) { + if(RCMPreviewInitialized) + RCMPreview.redraw() + } + override fun changedUpdate(p0: DocumentEvent?) { + if(RCMPreviewInitialized) + RCMPreview.redraw() + } + }) + } + + rs3BorderPanel.add(rs3BorderLabel, BorderLayout.WEST) + rs3BorderPanel.add(rs3Border, BorderLayout.EAST) + pane.add(rs3BorderPanel) + pane.add(getSeparator()) + + bgColorPanel.add(bgColorLabel, BorderLayout.WEST) + bgColorPanel.add(bgColorField, BorderLayout.EAST) + pane.add(bgColorPanel) + + bgOpacityPanel.add(bgOpacityLabel, BorderLayout.WEST) + bgOpacityPanel.add(bgOpacityField, BorderLayout.EAST) + pane.add(bgOpacityPanel) + pane.add(getSeparator()) + + titleColorPanel.add(titleColorLabel, BorderLayout.WEST) + titleColorPanel.add(titleColorField, BorderLayout.EAST) + pane.add(titleColorPanel) + + titleFontPanel.add(titleFontLabel, BorderLayout.WEST) + titleFontPanel.add(titleFontColor, BorderLayout.EAST) + pane.add(titleFontPanel) + + titleOpacityPanel.add(titleOpacityLabel, BorderLayout.WEST) + titleOpacityPanel.add(titleOpacityField, BorderLayout.EAST) + pane.add(titleOpacityPanel) + pane.add(getSeparator()) + + borderColorPanel.add(borderColorLabel, BorderLayout.WEST) + borderColorPanel.add(borderColor, BorderLayout.EAST) + pane.add(borderColorPanel) + + borderOpacityPanel.add(borderOpacityLabel, BorderLayout.WEST) + borderOpacityPanel.add(borderOpacity, BorderLayout.EAST) + pane.add(borderOpacityPanel) + + rs3Border.onClick { + rs3Border.isToggled = !rs3Border.isToggled + RCMPreview.redraw() + } + + addTab(pane, button, getLabel("Rightclick Settings")) + } + + fun addLauncherSettingsTab(){ + val pane = getThemedPanel() + pane.layout = BoxLayout(pane, BoxLayout.PAGE_AXIS) + val button = ImgButton("/launcher_settings.png", "/launcher_settings.png", false) + + val closeLauncherOnLaunchPanel = getThemedPanel(BorderLayout()) + val closeLauncherOnLaunchLabel = getLabel("Close launcher when client starts") + val checkForUpdatePanel = getThemedPanel(BorderLayout()) + val checkForUpdateLabel = getLabel("Notify me of launcher updates") + val profilePanel = getThemedPanel(BorderLayout()) + val profileLabel = getLabel("Profile") + + checkForLauncherUpdates.onClick { + checkForLauncherUpdates.isToggled = !checkForLauncherUpdates.isToggled + Settings.CHECK_FOR_UPDATES = checkForLauncherUpdates.isToggled + } + + closeLauncherOnLaunchPanel.add(closeLauncherOnLaunchLabel, BorderLayout.WEST) + closeLauncherOnLaunchPanel.add(closeLauncherOnLaunch, BorderLayout.EAST) + pane.add(closeLauncherOnLaunchPanel) + pane.add(getSeparator()) + + checkForUpdatePanel.add(checkForUpdateLabel, BorderLayout.WEST) + checkForUpdatePanel.add(checkForLauncherUpdates, BorderLayout.EAST) + pane.add(checkForUpdatePanel) + pane.add(getSeparator()) + + profileMode.size = Dimension(200,10) + profileMode.minimumSize = Dimension(200,10) + profileMode.maximumSize = Dimension(200,10) + profileMode.preferredSize = Dimension(200,10) + profilePanel.add(profileLabel, BorderLayout.WEST) + profilePanel.add(profileMode, BorderLayout.EAST) + pane.add(profilePanel) + + addTab(pane, button, getLabel("Launcher Settings")) + } + + fun addTab(content: JPanel, button: ImgButton, tabNote: JLabel = getLabel("")){ + content.placeAt(0,30,width,height - 60) + add(content) + tabs.add(content) + content.isVisible = false + button.placeAt(buttonSpacer, 0, 30, 30) + button.onClick { activeTab = buttons.indexOf(button); updateVisibleTab() } + buttonSpacer += 40 + add(button) + button.isEnabled = false + buttons.add(button) + tabNote.placeAt(5, 275, width / 2, 20) + tabNote.isVisible = true + add(tabNote) + tabNotes.add(tabNote) + } + + fun open(){ + activeTab = 0 + updateVisibleTab() + Json.parse() + checkForLauncherUpdates.isToggled = Settings.CHECK_FOR_UPDATES + isVisible = true + } + + fun updateVisibleTab(){ + for(i in 0 until tabs.size){ + if(i != activeTab){ + tabs[i].isVisible = false + tabNotes[i].isVisible = false + } + else { + tabs[i].isVisible = true + tabNotes[i].isVisible = true + RCMPreview.isVisible = i == 1 + } + } + repaint() + } + + fun getThemedPanel(layout: LayoutManager? = null): JPanel{ + val panel = if(layout == null) JPanel() else JPanel(layout) + panel.background = Color(102,90,69) + return panel + } + + fun getSeparator(): JSeparator{ + val sep = JSeparator(JSeparator.HORIZONTAL) + sep.background = Color(57,49,39) + sep.foreground = Color(57,49,39) + return sep + } + + fun getLabel(text: String): JLabel{ + val label = JLabel(text) + label.foreground = Color(227,208,179) + return label + } +} diff --git a/src/main/resources/09logo.png b/src/main/resources/09logo.png new file mode 100644 index 0000000..c512e2a Binary files /dev/null and b/src/main/resources/09logo.png differ diff --git a/src/main/resources/data/img/close.png b/src/main/resources/close_dark.png similarity index 100% rename from src/main/resources/data/img/close.png rename to src/main/resources/close_dark.png diff --git a/src/main/resources/data/img/close_hi.png b/src/main/resources/close_hi.png similarity index 100% rename from src/main/resources/data/img/close_hi.png rename to src/main/resources/close_hi.png diff --git a/src/main/resources/config.json b/src/main/resources/config.json new file mode 100644 index 0000000..19c0684 --- /dev/null +++ b/src/main/resources/config.json @@ -0,0 +1,61 @@ +{ + "ip_address": "play.2009scape.org", + "ip_management" : "play.2009scape.org", + "server_port": 43594, + "wl_port": 5555, + "js5_port": 43593, + "world": 1, + + "customization": { + "login_theme": "scape main", + + "right_click_menu": { + "background": { + "color": "#5D5447", + "opacity": "255" + }, + "title_bar": { + "color": "#000000", + "opacity": "255", + "font_color": "#FFFFFF" + }, + "border": { + "color": "#FFFFFF", + "opacity": "255" + }, + "styles": { + "Presets provide default customizations.": "rs3, classic, or custom. custom allows you to define your own values above. Classic is standard 2009.", + "presets": "custom", + "rs3border": false + } + }, + "xpdrops": { + "enabled": true, + "drop_mode": 0, + "track_mode": 0 + }, + "slayer": { + "enabled": true, + "color": "#635a38", + "opacity": "180" + }, + "rendering_options": { + "technical": { + "render_distance_increase": true + }, + "skybox": { + "skybox_color" : "Coming in a future update..." + } + } + }, + + "debug": { + "item_debug": false, + "object_debug": false, + "npc_debug": false, + "hd_login_region_debug": false, + "hd_login_region_debug_verbose": false, + "cache_debug": false, + "world_map_debug": false + } +} diff --git a/src/main/resources/data/audio/welcomehome.mid b/src/main/resources/data/audio/welcomehome.mid deleted file mode 100644 index 60c7c43..0000000 Binary files a/src/main/resources/data/audio/welcomehome.mid and /dev/null differ diff --git a/src/main/resources/data/fonts/FontAwesome.ttf b/src/main/resources/data/fonts/FontAwesome.ttf deleted file mode 100644 index 96a3639..0000000 Binary files a/src/main/resources/data/fonts/FontAwesome.ttf and /dev/null differ diff --git a/src/main/resources/data/fonts/OpenSans-Light.ttf b/src/main/resources/data/fonts/OpenSans-Light.ttf deleted file mode 100644 index 0d38189..0000000 Binary files a/src/main/resources/data/fonts/OpenSans-Light.ttf and /dev/null differ diff --git a/src/main/resources/data/fonts/OpenSans-Regular.ttf b/src/main/resources/data/fonts/OpenSans-Regular.ttf deleted file mode 100644 index db43334..0000000 Binary files a/src/main/resources/data/fonts/OpenSans-Regular.ttf and /dev/null differ diff --git a/src/main/resources/data/img/favicon.png b/src/main/resources/data/img/favicon.png deleted file mode 100644 index 6551680..0000000 Binary files a/src/main/resources/data/img/favicon.png and /dev/null differ diff --git a/src/main/resources/data/img/favicon_large.png b/src/main/resources/data/img/favicon_large.png deleted file mode 100644 index 21b2eba..0000000 Binary files a/src/main/resources/data/img/favicon_large.png and /dev/null differ diff --git a/src/main/resources/debug_settings.png b/src/main/resources/debug_settings.png new file mode 100644 index 0000000..5b9f947 Binary files /dev/null and b/src/main/resources/debug_settings.png differ diff --git a/src/main/resources/highScores.png b/src/main/resources/highScores.png new file mode 100644 index 0000000..13333fe Binary files /dev/null and b/src/main/resources/highScores.png differ diff --git a/src/main/resources/joinDiscord.png b/src/main/resources/joinDiscord.png new file mode 100644 index 0000000..7db79ea Binary files /dev/null and b/src/main/resources/joinDiscord.png differ diff --git a/src/main/resources/launcher_settings.png b/src/main/resources/launcher_settings.png new file mode 100644 index 0000000..989ed51 Binary files /dev/null and b/src/main/resources/launcher_settings.png differ diff --git a/src/main/resources/loadingBar.png b/src/main/resources/loadingBar.png new file mode 100644 index 0000000..c2f0b90 Binary files /dev/null and b/src/main/resources/loadingBar.png differ diff --git a/src/main/resources/loadingFrame.png b/src/main/resources/loadingFrame.png new file mode 100644 index 0000000..c11f1ea Binary files /dev/null and b/src/main/resources/loadingFrame.png differ diff --git a/src/main/resources/data/img/logo.png b/src/main/resources/logo.png similarity index 100% rename from src/main/resources/data/img/logo.png rename to src/main/resources/logo.png diff --git a/src/main/resources/messageBox.png b/src/main/resources/messageBox.png new file mode 100644 index 0000000..17e6869 Binary files /dev/null and b/src/main/resources/messageBox.png differ diff --git a/src/main/resources/misc.png b/src/main/resources/misc.png new file mode 100644 index 0000000..92ffdd0 Binary files /dev/null and b/src/main/resources/misc.png differ diff --git a/src/main/resources/news.png b/src/main/resources/news.png new file mode 100644 index 0000000..f7cd39e Binary files /dev/null and b/src/main/resources/news.png differ diff --git a/src/main/resources/playButton.png b/src/main/resources/playButton.png new file mode 100644 index 0000000..a4bdc29 Binary files /dev/null and b/src/main/resources/playButton.png differ diff --git a/src/main/resources/playButtonDisabled.png b/src/main/resources/playButtonDisabled.png new file mode 100644 index 0000000..f50b960 Binary files /dev/null and b/src/main/resources/playButtonDisabled.png differ diff --git a/src/main/resources/reportBug.png b/src/main/resources/reportBug.png new file mode 100644 index 0000000..d4fae6c Binary files /dev/null and b/src/main/resources/reportBug.png differ diff --git a/src/main/resources/rightClick.png b/src/main/resources/rightClick.png new file mode 100644 index 0000000..8020708 Binary files /dev/null and b/src/main/resources/rightClick.png differ diff --git a/src/main/resources/save_hi.png b/src/main/resources/save_hi.png new file mode 100644 index 0000000..4c42bc1 Binary files /dev/null and b/src/main/resources/save_hi.png differ diff --git a/src/main/resources/save_lo.png b/src/main/resources/save_lo.png new file mode 100644 index 0000000..c3587e9 Binary files /dev/null and b/src/main/resources/save_lo.png differ diff --git a/src/main/resources/settings.png b/src/main/resources/settings.png new file mode 100644 index 0000000..b8800b6 Binary files /dev/null and b/src/main/resources/settings.png differ diff --git a/src/main/resources/tile.png b/src/main/resources/tile.png new file mode 100644 index 0000000..97d621c Binary files /dev/null and b/src/main/resources/tile.png differ diff --git a/src/main/resources/toggleOff.png b/src/main/resources/toggleOff.png new file mode 100644 index 0000000..51158f5 Binary files /dev/null and b/src/main/resources/toggleOff.png differ diff --git a/src/main/resources/toggleOn.png b/src/main/resources/toggleOn.png new file mode 100644 index 0000000..5042fd4 Binary files /dev/null and b/src/main/resources/toggleOn.png differ diff --git a/src/main/resources/topBar.png b/src/main/resources/topBar.png new file mode 100644 index 0000000..6d88295 Binary files /dev/null and b/src/main/resources/topBar.png differ diff --git a/src/main/resources/update_no.png b/src/main/resources/update_no.png new file mode 100644 index 0000000..9737aeb Binary files /dev/null and b/src/main/resources/update_no.png differ