diff --git a/.gitignore b/.gitignore
index b49260ecd5..6d9594aa4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1 @@
-/build/
-/dist/
/logs/
-/MapleIdRetriever/nbproject/private/
-/MapleIdRetriever/dist/
-/MapleIdRetriever/build/
-/MobBookUpdate/nbproject/private/
-/MobBookUpdate/dist/
-/MobBookUpdate/build/
\ No newline at end of file
diff --git a/MapleCouponInstaller/0521.img.xml b/MapleCouponInstaller/0521.img.xml
new file mode 100644
index 0000000000..099f15ff14
--- /dev/null
+++ b/MapleCouponInstaller/0521.img.xml
@@ -0,0 +1,609 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/0536.img.xml b/MapleCouponInstaller/0536.img.xml
new file mode 100644
index 0000000000..de8fc45878
--- /dev/null
+++ b/MapleCouponInstaller/0536.img.xml
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/build.xml b/MapleCouponInstaller/build.xml
new file mode 100644
index 0000000000..37baa51d87
--- /dev/null
+++ b/MapleCouponInstaller/build.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+ Builds, tests, and runs the project MapleCouponInstaller.
+
+
+
diff --git a/MapleCouponInstaller/build/built-jar.properties b/MapleCouponInstaller/build/built-jar.properties
new file mode 100644
index 0000000000..9389cc86ff
--- /dev/null
+++ b/MapleCouponInstaller/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Tue, 30 May 2017 01:30:51 -0300
+
+
+C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2\\MapleCouponInstaller=
diff --git a/MapleCouponInstaller/build/classes/.netbeans_automatic_build b/MapleCouponInstaller/build/classes/.netbeans_automatic_build
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MapleCouponInstaller/build/classes/.netbeans_update_resources b/MapleCouponInstaller/build/classes/.netbeans_update_resources
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MapleCouponInstaller/build/classes/maplecouponinstaller/MapleCouponInstaller.class b/MapleCouponInstaller/build/classes/maplecouponinstaller/MapleCouponInstaller.class
new file mode 100644
index 0000000000..69eb2e3be5
Binary files /dev/null and b/MapleCouponInstaller/build/classes/maplecouponinstaller/MapleCouponInstaller.class differ
diff --git a/MapleCouponInstaller/dist/MapleCouponInstaller.jar b/MapleCouponInstaller/dist/MapleCouponInstaller.jar
new file mode 100644
index 0000000000..1833765e4d
Binary files /dev/null and b/MapleCouponInstaller/dist/MapleCouponInstaller.jar differ
diff --git a/MapleCouponInstaller/dist/README.TXT b/MapleCouponInstaller/dist/README.TXT
new file mode 100644
index 0000000000..6b7bfd0ba7
--- /dev/null
+++ b/MapleCouponInstaller/dist/README.TXT
@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "MapleCouponInstaller.jar"
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.
diff --git a/MapleCouponInstaller/dist/lib/mysql-connector-java-bin.jar b/MapleCouponInstaller/dist/lib/mysql-connector-java-bin.jar
new file mode 100644
index 0000000000..0539039f71
Binary files /dev/null and b/MapleCouponInstaller/dist/lib/mysql-connector-java-bin.jar differ
diff --git a/MapleCouponInstaller/lib/0521.img.xml b/MapleCouponInstaller/lib/0521.img.xml
new file mode 100644
index 0000000000..099f15ff14
--- /dev/null
+++ b/MapleCouponInstaller/lib/0521.img.xml
@@ -0,0 +1,609 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/lib/0536.img.xml b/MapleCouponInstaller/lib/0536.img.xml
new file mode 100644
index 0000000000..de8fc45878
--- /dev/null
+++ b/MapleCouponInstaller/lib/0536.img.xml
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/lib/mysql-connector-java-bin.jar b/MapleCouponInstaller/lib/mysql-connector-java-bin.jar
new file mode 100644
index 0000000000..0539039f71
Binary files /dev/null and b/MapleCouponInstaller/lib/mysql-connector-java-bin.jar differ
diff --git a/MapleCouponInstaller/manifest.mf b/MapleCouponInstaller/manifest.mf
new file mode 100644
index 0000000000..328e8e5bc3
--- /dev/null
+++ b/MapleCouponInstaller/manifest.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/MapleCouponInstaller/nbproject/build-impl.xml b/MapleCouponInstaller/nbproject/build-impl.xml
new file mode 100644
index 0000000000..31f558ed79
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/build-impl.xml
@@ -0,0 +1,1413 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set src.dir
+ Must set test.src.dir
+ Must set build.dir
+ Must set dist.dir
+ Must set build.classes.dir
+ Must set dist.javadoc.dir
+ Must set build.test.classes.dir
+ Must set build.test.results.dir
+ Must set build.classes.excludes
+ Must set dist.jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No tests executed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set JVM to use for profiling in profiler.info.jvm
+ Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ To run this application from the command line without Ant, try:
+
+ java -jar "${dist.jar.resolved}"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must set fix.includes
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set profile.class
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+ Some tests failed; see details above.
+
+
+
+ Must select some files in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+ Must select one file in the IDE or set test.class
+
+
+
+ Must select one file in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/nbproject/genfiles.properties b/MapleCouponInstaller/nbproject/genfiles.properties
new file mode 100644
index 0000000000..e86bb55f96
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=326ebba1
+build.xml.script.CRC32=c1a68ce0
+build.xml.stylesheet.CRC32=8064a381@1.75.2.48
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=326ebba1
+nbproject/build-impl.xml.script.CRC32=be2dc134
+nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
diff --git a/MapleCouponInstaller/nbproject/private/config.properties b/MapleCouponInstaller/nbproject/private/config.properties
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MapleCouponInstaller/nbproject/private/private.properties b/MapleCouponInstaller/nbproject/private/private.properties
new file mode 100644
index 0000000000..67c9c27960
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/private/private.properties
@@ -0,0 +1,6 @@
+compile.on.save=true
+do.depend=false
+do.jar=true
+javac.debug=true
+javadoc.preview=true
+user.properties.file=C:\\Users\\RonanLana\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties
diff --git a/MapleCouponInstaller/nbproject/private/private.xml b/MapleCouponInstaller/nbproject/private/private.xml
new file mode 100644
index 0000000000..6807a2ba19
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/private/private.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/nbproject/project.properties b/MapleCouponInstaller/nbproject/project.properties
new file mode 100644
index 0000000000..bcdee47bdd
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/project.properties
@@ -0,0 +1,77 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=MapleCouponInstaller
+application.vendor=RonanLana
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# Files in build.classes.dir which should be excluded from distribution jar
+dist.archive.excludes=
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/MapleCouponInstaller.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+file.reference.mysql-connector-java-bin.jar=lib/mysql-connector-java-bin.jar
+includes=**
+jar.compress=false
+javac.classpath=\
+ ${file.reference.mysql-connector-java-bin.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.7
+javac.target=1.7
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+main.class=maplecouponinstaller.MapleCouponInstaller
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/MapleCouponInstaller/nbproject/project.xml b/MapleCouponInstaller/nbproject/project.xml
new file mode 100644
index 0000000000..11e9bd6dca
--- /dev/null
+++ b/MapleCouponInstaller/nbproject/project.xml
@@ -0,0 +1,15 @@
+
+
+ org.netbeans.modules.java.j2seproject
+
+
+ MapleCouponInstaller
+
+
+
+
+
+
+
+
+
diff --git a/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java b/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java
new file mode 100644
index 0000000000..a39523e4d4
--- /dev/null
+++ b/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java
@@ -0,0 +1,300 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package maplecouponinstaller;
+
+import java.io.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+/**
+ *
+ * @author RonanLana
+ *
+ * This application gathers information about the Cash Shop EXP & DROP coupons, such
+ * as applied rates, active times of day and days of week and dumps them in a SQL
+ * table, in which will be used by the server.
+ *
+ */
+public class MapleCouponInstaller {
+ static String host = "jdbc:mysql://localhost:3306/maplesolaxia";
+ static String driver = "com.mysql.jdbc.Driver";
+ static String username = "root";
+ static String password = "";
+
+ static Connection con = null;
+ static InputStreamReader fileReader = null;
+ static BufferedReader bufferedReader = null;
+ static byte status = 0;
+ static int itemId = -1, itemMultiplier = 1, startHour = -1, endHour = -1, activeDay = 0;
+
+ private static String getName(String token) {
+ int i, j;
+ char[] dest;
+ String d;
+
+ i = token.lastIndexOf("name");
+ if(i < 0) return "";
+
+ i = token.indexOf("\"", i) + 1; //lower bound of the string
+ j = token.indexOf("\"", i); //upper bound
+
+ dest = new char[8];
+ token.getChars(i, j, dest, 0);
+
+ d = new String(dest);
+ return(d);
+ }
+
+ private static String getNodeValue(String token) {
+ int i, j;
+ char[] dest;
+ String d;
+
+ i = token.lastIndexOf("value=");
+ i = token.indexOf("\"", i) + 1; //lower bound of the string
+ j = token.indexOf("\"", i); //upper bound
+
+ if(j - i < 1) return "";
+
+ dest = new char[j - i];
+ token.getChars(i, j, dest, 0);
+
+ d = new String(dest);
+ return(d);
+ }
+
+ private static void forwardCursor(int st) {
+ String line = null;
+
+ try {
+ while(status >= st && (line = bufferedReader.readLine()) != null) {
+ simpleToken(line);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void simpleToken(String token) {
+ if(token.contains("/imgdir")) {
+ status -= 1;
+ }
+ else if(token.contains("imgdir")) {
+ status += 1;
+ }
+ }
+
+ private static int getDayOfWeek(String day) {
+ switch(day) {
+ case "SUN":
+ return 1;
+
+ case "MON":
+ return 2;
+
+ case "TUE":
+ return 3;
+
+ case "WED":
+ return 4;
+
+ case "THU":
+ return 5;
+
+ case "FRI":
+ return 6;
+
+ case "SAT":
+ return 7;
+
+ default:
+ return 0;
+ }
+ }
+
+ private static void processHourTimeString(String time) {
+ startHour = Integer.parseInt(time.substring(4, 6));
+ endHour = Integer.parseInt(time.substring(7, 9));
+ }
+
+ private static void processDayTimeString(String time) {
+ String day = time.substring(0, 2);
+ int d = getDayOfWeek(day);
+
+ activeDay |= (1 << d);
+ }
+
+ private static void loadTimeFromCoupon(int st) {
+ System.out.println("Loading coupon id " + itemId + ". Rate: " + itemMultiplier + "x.");
+
+ String line = null;
+ try {
+ startHour = -1;
+ endHour = -1;
+ activeDay = 0;
+
+ String time = null;
+ while((line = bufferedReader.readLine()) != null) {
+ simpleToken(line);
+ if(status < st) break;
+
+ time = getNodeValue(line);
+ processDayTimeString(time);
+
+ simpleToken(line);
+ }
+
+ if(time != null) {
+ processHourTimeString(time);
+
+ PreparedStatement ps = con.prepareStatement("INSERT INTO nxcoupons (couponid, rate, activeday, starthour, endhour) VALUES (?, ?, ?, ?, ?)");
+ ps.setInt(1, itemId);
+ ps.setInt(2, itemMultiplier);
+ ps.setInt(3, activeDay);
+ ps.setInt(4, startHour);
+ ps.setInt(5, endHour);
+ ps.execute();
+
+ ps.close();
+ }
+ }
+ catch(SQLException | IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void translateToken(String token) {
+ String d;
+
+ if(token.contains("/imgdir")) {
+ status -= 1;
+ }
+ else if(token.contains("imgdir")) {
+ if(status == 1) { //getting ItemId
+ d = getName(token);
+ itemId = Integer.parseInt(d);
+ }
+ else if(status == 2) {
+ d = getName(token);
+
+ if(!d.contains("info")) {
+ forwardCursor(status);
+ }
+ }
+ else if(status == 3) {
+ d = getName(token);
+
+ if(!d.contains("time")) {
+ forwardCursor(status);
+ }
+ else {
+ loadTimeFromCoupon(status);
+ }
+ }
+
+ status += 1;
+ }
+ else {
+ if(status == 3) {
+ d = getName(token);
+
+ if(d.contains("rate")) {
+ String r = getNodeValue(token);
+
+ Double db = Double.parseDouble(r);
+ itemMultiplier = db.intValue();
+ }
+ }
+ }
+ }
+
+ private static void installRateCoupons(String fileName) {
+ // This will reference one line at a time
+ String line = null;
+
+ try {
+ fileReader = new InputStreamReader(new FileInputStream(fileName), "UTF-8");
+ bufferedReader = new BufferedReader(fileReader);
+
+ while((line = bufferedReader.readLine()) != null) {
+ translateToken(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+ }
+
+ catch(FileNotFoundException ex) {
+ System.out.println("Unable to open file '" + fileName + "'");
+ }
+ catch(IOException ex) {
+ System.out.println("Error reading file '" + fileName + "'");
+ }
+
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void installCouponsTable() {
+ try {
+ Class.forName(driver).newInstance();
+ con = DriverManager.getConnection(host, username, password);
+
+ PreparedStatement ps = con.prepareStatement("DROP TABLE IF EXISTS `nxcoupons`;");
+ ps.execute();
+ ps.close();
+
+ ps = con.prepareStatement(
+ "CREATE TABLE IF NOT EXISTS `nxcoupons` (\n" +
+ " `id` int(11) NOT NULL AUTO_INCREMENT,\n" +
+ " `couponid` int(11) NOT NULL DEFAULT '0',\n" +
+ " `rate` int(11) NOT NULL DEFAULT '0',\n" +
+ " `activeday` int(11) NOT NULL DEFAULT '0',\n" +
+ " `starthour` int(11) NOT NULL DEFAULT '0',\n" +
+ " `endhour` int(11) NOT NULL DEFAULT '0',\n" +
+ " PRIMARY KEY (`id`)\n" +
+ ") ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
+
+ ps.execute();
+ ps.close();
+
+ installRateCoupons("lib/0521.img.xml");
+ installRateCoupons("lib/0536.img.xml");
+
+ con.close();
+ }
+
+ catch(SQLException e) {
+ System.out.println("Warning: Could not establish connection to database to change card chance rate.");
+ System.out.println(e.getMessage());
+ }
+
+ catch(ClassNotFoundException e) {
+ System.out.println("Error: could not find class");
+ System.out.println(e.getMessage());
+ }
+
+ catch(InstantiationException e) {
+ System.out.println("Error: instantiation failure");
+ System.out.println(e.getMessage());
+ }
+
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String[] args) {
+ installCouponsTable();
+ }
+}
diff --git a/MapleIdRetriever/build/built-jar.properties b/MapleIdRetriever/build/built-jar.properties
new file mode 100644
index 0000000000..1065d03f17
--- /dev/null
+++ b/MapleIdRetriever/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Tue, 30 May 2017 01:29:33 -0300
+
+
+C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2\\MapleIdRetriever=
diff --git a/MapleIdRetriever/build/classes/.netbeans_automatic_build b/MapleIdRetriever/build/classes/.netbeans_automatic_build
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MapleIdRetriever/build/classes/.netbeans_update_resources b/MapleIdRetriever/build/classes/.netbeans_update_resources
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MapleIdRetriever/build/classes/mapleidretriever/MapleIdRetriever.class b/MapleIdRetriever/build/classes/mapleidretriever/MapleIdRetriever.class
new file mode 100644
index 0000000000..8a204beabc
Binary files /dev/null and b/MapleIdRetriever/build/classes/mapleidretriever/MapleIdRetriever.class differ
diff --git a/MapleIdRetriever/dist/MapleIdRetriever.jar b/MapleIdRetriever/dist/MapleIdRetriever.jar
new file mode 100644
index 0000000000..62c293bf47
Binary files /dev/null and b/MapleIdRetriever/dist/MapleIdRetriever.jar differ
diff --git a/MapleIdRetriever/dist/README.TXT b/MapleIdRetriever/dist/README.TXT
new file mode 100644
index 0000000000..b3bf59e8c2
--- /dev/null
+++ b/MapleIdRetriever/dist/README.TXT
@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "MapleIdRetriever.jar"
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.
diff --git a/MapleIdRetriever/dist/lib/mysql-connector-java-bin.jar b/MapleIdRetriever/dist/lib/mysql-connector-java-bin.jar
new file mode 100644
index 0000000000..0539039f71
Binary files /dev/null and b/MapleIdRetriever/dist/lib/mysql-connector-java-bin.jar differ
diff --git a/MapleIdRetriever/lib/MonsterBook.img.xml b/MapleIdRetriever/lib/MonsterBook.img.xml
deleted file mode 100644
index 60a79cafaa..0000000000
--- a/MapleIdRetriever/lib/MonsterBook.img.xml
+++ /dev/null
@@ -1,12882 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MapleIdRetriever/fetch.txt b/MapleIdRetriever/lib/fetch.txt
similarity index 97%
rename from MapleIdRetriever/fetch.txt
rename to MapleIdRetriever/lib/fetch.txt
index 2ad49cec14..6989d4b708 100644
--- a/MapleIdRetriever/fetch.txt
+++ b/MapleIdRetriever/lib/fetch.txt
@@ -1,3 +1,5 @@
+Heaven's Hammer
+
Blue Potion
White Potion
Elixir
diff --git a/MapleIdRetriever/result.txt b/MapleIdRetriever/lib/result.txt
similarity index 98%
rename from MapleIdRetriever/result.txt
rename to MapleIdRetriever/lib/result.txt
index 42520b805c..8aa3145534 100644
--- a/MapleIdRetriever/result.txt
+++ b/MapleIdRetriever/lib/result.txt
@@ -1,3 +1,5 @@
+1221011
+
2000003 2000017
2000002 2000016 2022174
2000004 2000012 2002012 2022175 2022456
diff --git a/MapleIdRetriever/nbproject/private/private.properties b/MapleIdRetriever/nbproject/private/private.properties
new file mode 100644
index 0000000000..646b670577
--- /dev/null
+++ b/MapleIdRetriever/nbproject/private/private.properties
@@ -0,0 +1,2 @@
+compile.on.save=true
+user.properties.file=C:\\Users\\RonanLana\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties
diff --git a/MapleIdRetriever/nbproject/private/private.xml b/MapleIdRetriever/nbproject/private/private.xml
new file mode 100644
index 0000000000..6807a2ba19
--- /dev/null
+++ b/MapleIdRetriever/nbproject/private/private.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java b/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java
index 03cc6ccd6d..e4b56564ba 100644
--- a/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java
+++ b/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java
@@ -48,8 +48,8 @@ public class MapleIdRetriever {
// ------- SEARCH section arguments --------
- static String inputName = "fetch.txt";
- static String outputName = "result.txt";
+ static String inputName = "lib/fetch.txt";
+ static String outputName = "lib/result.txt";
/**
* @param args the command line arguments
diff --git a/MobBookUpdate/build/built-jar.properties b/MobBookUpdate/build/built-jar.properties
index ca380ffe33..fe045ec6f5 100644
--- a/MobBookUpdate/build/built-jar.properties
+++ b/MobBookUpdate/build/built-jar.properties
@@ -1,4 +1,4 @@
-#Sun, 02 Apr 2017 20:43:09 -0300
+#Tue, 30 May 2017 01:30:16 -0300
-C\:\\Nexon\\MapleSolaxia\\MobBookUpdate=
+C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2\\MobBookUpdate=
diff --git a/MobBookUpdate/build/classes/.netbeans_automatic_build b/MobBookUpdate/build/classes/.netbeans_automatic_build
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MobBookUpdate/build/classes/.netbeans_update_resources b/MobBookUpdate/build/classes/.netbeans_update_resources
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class b/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class
index d4de6b675b..45dc15e916 100644
Binary files a/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class and b/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class differ
diff --git a/MobBookUpdate/dist/MobBookUpdate.jar b/MobBookUpdate/dist/MobBookUpdate.jar
index dff2cc24c3..1d6af9e10f 100644
Binary files a/MobBookUpdate/dist/MobBookUpdate.jar and b/MobBookUpdate/dist/MobBookUpdate.jar differ
diff --git a/MobBookUpdate/dist/MonsterBook.img.xml b/MobBookUpdate/lib/MonsterBook_updated.img.xml
similarity index 97%
rename from MobBookUpdate/dist/MonsterBook.img.xml
rename to MobBookUpdate/lib/MonsterBook_updated.img.xml
index 48ad28f150..b3207248ce 100644
--- a/MobBookUpdate/dist/MonsterBook.img.xml
+++ b/MobBookUpdate/lib/MonsterBook_updated.img.xml
@@ -166,33 +166,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2995,62 +2994,61 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5946,26 +5944,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6445,26 +6442,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6484,32 +6480,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7517,68 +7512,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8276,25 +8270,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8315,31 +8308,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9423,27 +9415,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10381,68 +10372,66 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -11735,22 +11724,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -13241,10 +13229,9 @@
-
-
-
-
+
+
+
@@ -13490,28 +13477,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java b/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java
index bed562183b..ce61d19569 100644
--- a/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java
+++ b/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java
@@ -21,7 +21,7 @@ import java.io.*;
* the Maplestory database specified by the URL below.
*
* In other words all items drops from monsters listed inside the Mob Book feature will be patched to match exactly like the item
- * drop list specified by the URL's Maplestory database .
+ * drop list specified by the URL's Maplestory database.
*
* The original file "MonsterBook.img.xml" from String.wz must be copied to the directory of this application and only then
* executed. This program will generate another file that must replace the original server file to make the effects take place
@@ -37,8 +37,8 @@ public class MobBookUpdate {
static String username = "root";
static String password = "";
- static String fileName = "MonsterBook.img.xml";
- static String newFile = "MonsterBook_updated.img.xml";
+ static String fileName = "lib/MonsterBook.img.xml";
+ static String newFile = "lib/MonsterBook_updated.img.xml";
static Connection con = null;
static PrintWriter printWriter = null;
@@ -113,6 +113,9 @@ public class MobBookUpdate {
printWriter.println(toPrint);
cont++;
}
+
+ rs.close();
+ ps.close();
}
catch(SQLException e) {
e.printStackTrace();
diff --git a/build/built-jar.properties b/build/built-jar.properties
new file mode 100644
index 0000000000..fc472b7710
--- /dev/null
+++ b/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Tue, 30 May 2017 13:12:05 -0300
+
+
+C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2=
diff --git a/build/classes/client/BuddyList$BuddyAddResult.class b/build/classes/client/BuddyList$BuddyAddResult.class
new file mode 100644
index 0000000000..da3b3bb45b
Binary files /dev/null and b/build/classes/client/BuddyList$BuddyAddResult.class differ
diff --git a/build/classes/client/BuddyList$BuddyOperation.class b/build/classes/client/BuddyList$BuddyOperation.class
new file mode 100644
index 0000000000..59ea13c416
Binary files /dev/null and b/build/classes/client/BuddyList$BuddyOperation.class differ
diff --git a/build/classes/client/BuddyList.class b/build/classes/client/BuddyList.class
new file mode 100644
index 0000000000..4e24467222
Binary files /dev/null and b/build/classes/client/BuddyList.class differ
diff --git a/build/classes/client/BuddylistEntry.class b/build/classes/client/BuddylistEntry.class
new file mode 100644
index 0000000000..8c9056b3c9
Binary files /dev/null and b/build/classes/client/BuddylistEntry.class differ
diff --git a/build/classes/client/CharacterNameAndId.class b/build/classes/client/CharacterNameAndId.class
new file mode 100644
index 0000000000..c7b3c17f7a
Binary files /dev/null and b/build/classes/client/CharacterNameAndId.class differ
diff --git a/build/classes/client/DiseaseValueHolder.class b/build/classes/client/DiseaseValueHolder.class
new file mode 100644
index 0000000000..4465347595
Binary files /dev/null and b/build/classes/client/DiseaseValueHolder.class differ
diff --git a/build/classes/client/MapleBuffStat.class b/build/classes/client/MapleBuffStat.class
new file mode 100644
index 0000000000..5e650b4824
Binary files /dev/null and b/build/classes/client/MapleBuffStat.class differ
diff --git a/build/classes/client/MapleCharacter$1.class b/build/classes/client/MapleCharacter$1.class
new file mode 100644
index 0000000000..8dd0daea51
Binary files /dev/null and b/build/classes/client/MapleCharacter$1.class differ
diff --git a/build/classes/client/MapleCharacter$10.class b/build/classes/client/MapleCharacter$10.class
new file mode 100644
index 0000000000..79ced3a9c8
Binary files /dev/null and b/build/classes/client/MapleCharacter$10.class differ
diff --git a/build/classes/client/MapleCharacter$11.class b/build/classes/client/MapleCharacter$11.class
new file mode 100644
index 0000000000..ad408f6cff
Binary files /dev/null and b/build/classes/client/MapleCharacter$11.class differ
diff --git a/build/classes/client/MapleCharacter$12.class b/build/classes/client/MapleCharacter$12.class
new file mode 100644
index 0000000000..b3cbc21de2
Binary files /dev/null and b/build/classes/client/MapleCharacter$12.class differ
diff --git a/build/classes/client/MapleCharacter$13.class b/build/classes/client/MapleCharacter$13.class
new file mode 100644
index 0000000000..ab905ab41b
Binary files /dev/null and b/build/classes/client/MapleCharacter$13.class differ
diff --git a/build/classes/client/MapleCharacter$14.class b/build/classes/client/MapleCharacter$14.class
new file mode 100644
index 0000000000..b624705fd1
Binary files /dev/null and b/build/classes/client/MapleCharacter$14.class differ
diff --git a/build/classes/client/MapleCharacter$15.class b/build/classes/client/MapleCharacter$15.class
new file mode 100644
index 0000000000..44da913a15
Binary files /dev/null and b/build/classes/client/MapleCharacter$15.class differ
diff --git a/build/classes/client/MapleCharacter$16.class b/build/classes/client/MapleCharacter$16.class
new file mode 100644
index 0000000000..227c3e4c1a
Binary files /dev/null and b/build/classes/client/MapleCharacter$16.class differ
diff --git a/build/classes/client/MapleCharacter$17.class b/build/classes/client/MapleCharacter$17.class
new file mode 100644
index 0000000000..8a012795a4
Binary files /dev/null and b/build/classes/client/MapleCharacter$17.class differ
diff --git a/build/classes/client/MapleCharacter$18.class b/build/classes/client/MapleCharacter$18.class
new file mode 100644
index 0000000000..f018d28a07
Binary files /dev/null and b/build/classes/client/MapleCharacter$18.class differ
diff --git a/build/classes/client/MapleCharacter$2.class b/build/classes/client/MapleCharacter$2.class
new file mode 100644
index 0000000000..bc56b0bd68
Binary files /dev/null and b/build/classes/client/MapleCharacter$2.class differ
diff --git a/build/classes/client/MapleCharacter$3.class b/build/classes/client/MapleCharacter$3.class
new file mode 100644
index 0000000000..d990d38ca9
Binary files /dev/null and b/build/classes/client/MapleCharacter$3.class differ
diff --git a/build/classes/client/MapleCharacter$4.class b/build/classes/client/MapleCharacter$4.class
new file mode 100644
index 0000000000..e0d9c55a08
Binary files /dev/null and b/build/classes/client/MapleCharacter$4.class differ
diff --git a/build/classes/client/MapleCharacter$5.class b/build/classes/client/MapleCharacter$5.class
new file mode 100644
index 0000000000..a2a473b0f9
Binary files /dev/null and b/build/classes/client/MapleCharacter$5.class differ
diff --git a/build/classes/client/MapleCharacter$6.class b/build/classes/client/MapleCharacter$6.class
new file mode 100644
index 0000000000..b4c523fbcf
Binary files /dev/null and b/build/classes/client/MapleCharacter$6.class differ
diff --git a/build/classes/client/MapleCharacter$7.class b/build/classes/client/MapleCharacter$7.class
new file mode 100644
index 0000000000..3fcfea8690
Binary files /dev/null and b/build/classes/client/MapleCharacter$7.class differ
diff --git a/build/classes/client/MapleCharacter$8.class b/build/classes/client/MapleCharacter$8.class
new file mode 100644
index 0000000000..8f3ed9d94f
Binary files /dev/null and b/build/classes/client/MapleCharacter$8.class differ
diff --git a/build/classes/client/MapleCharacter$9.class b/build/classes/client/MapleCharacter$9.class
new file mode 100644
index 0000000000..d5793fb3a6
Binary files /dev/null and b/build/classes/client/MapleCharacter$9.class differ
diff --git a/build/classes/client/MapleCharacter$CancelCooldownAction.class b/build/classes/client/MapleCharacter$CancelCooldownAction.class
new file mode 100644
index 0000000000..42d625d2bd
Binary files /dev/null and b/build/classes/client/MapleCharacter$CancelCooldownAction.class differ
diff --git a/build/classes/client/MapleCharacter$FameStatus.class b/build/classes/client/MapleCharacter$FameStatus.class
new file mode 100644
index 0000000000..d08db8edce
Binary files /dev/null and b/build/classes/client/MapleCharacter$FameStatus.class differ
diff --git a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class
new file mode 100644
index 0000000000..f8c90a4ade
Binary files /dev/null and b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class differ
diff --git a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class
new file mode 100644
index 0000000000..ac67f53919
Binary files /dev/null and b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class differ
diff --git a/build/classes/client/MapleCharacter$SkillEntry.class b/build/classes/client/MapleCharacter$SkillEntry.class
new file mode 100644
index 0000000000..03766be4f3
Binary files /dev/null and b/build/classes/client/MapleCharacter$SkillEntry.class differ
diff --git a/build/classes/client/MapleCharacter.class b/build/classes/client/MapleCharacter.class
new file mode 100644
index 0000000000..017109f143
Binary files /dev/null and b/build/classes/client/MapleCharacter.class differ
diff --git a/build/classes/client/MapleClient$1.class b/build/classes/client/MapleClient$1.class
new file mode 100644
index 0000000000..300f774338
Binary files /dev/null and b/build/classes/client/MapleClient$1.class differ
diff --git a/build/classes/client/MapleClient$CharNameAndId.class b/build/classes/client/MapleClient$CharNameAndId.class
new file mode 100644
index 0000000000..9998feaa36
Binary files /dev/null and b/build/classes/client/MapleClient$CharNameAndId.class differ
diff --git a/build/classes/client/MapleClient.class b/build/classes/client/MapleClient.class
new file mode 100644
index 0000000000..5fba824711
Binary files /dev/null and b/build/classes/client/MapleClient.class differ
diff --git a/build/classes/client/MapleDisease.class b/build/classes/client/MapleDisease.class
new file mode 100644
index 0000000000..304df51819
Binary files /dev/null and b/build/classes/client/MapleDisease.class differ
diff --git a/build/classes/client/MapleFamily.class b/build/classes/client/MapleFamily.class
new file mode 100644
index 0000000000..7375bb9ab6
Binary files /dev/null and b/build/classes/client/MapleFamily.class differ
diff --git a/build/classes/client/MapleFamilyEntry.class b/build/classes/client/MapleFamilyEntry.class
new file mode 100644
index 0000000000..a69452fa24
Binary files /dev/null and b/build/classes/client/MapleFamilyEntry.class differ
diff --git a/build/classes/client/MapleJob.class b/build/classes/client/MapleJob.class
new file mode 100644
index 0000000000..7f822f3faf
Binary files /dev/null and b/build/classes/client/MapleJob.class differ
diff --git a/build/classes/client/MapleKeyBinding.class b/build/classes/client/MapleKeyBinding.class
new file mode 100644
index 0000000000..51d1ac7458
Binary files /dev/null and b/build/classes/client/MapleKeyBinding.class differ
diff --git a/build/classes/client/MapleMount$1.class b/build/classes/client/MapleMount$1.class
new file mode 100644
index 0000000000..105dc0c068
Binary files /dev/null and b/build/classes/client/MapleMount$1.class differ
diff --git a/build/classes/client/MapleMount.class b/build/classes/client/MapleMount.class
new file mode 100644
index 0000000000..7486418cbe
Binary files /dev/null and b/build/classes/client/MapleMount.class differ
diff --git a/build/classes/client/MapleQuestStatus$Status.class b/build/classes/client/MapleQuestStatus$Status.class
new file mode 100644
index 0000000000..0e9308db09
Binary files /dev/null and b/build/classes/client/MapleQuestStatus$Status.class differ
diff --git a/build/classes/client/MapleQuestStatus.class b/build/classes/client/MapleQuestStatus.class
new file mode 100644
index 0000000000..d6e2a2cc2e
Binary files /dev/null and b/build/classes/client/MapleQuestStatus.class differ
diff --git a/build/classes/client/MapleRing.class b/build/classes/client/MapleRing.class
new file mode 100644
index 0000000000..1fc16f3493
Binary files /dev/null and b/build/classes/client/MapleRing.class differ
diff --git a/build/classes/client/MapleSkinColor.class b/build/classes/client/MapleSkinColor.class
new file mode 100644
index 0000000000..b4e7122de1
Binary files /dev/null and b/build/classes/client/MapleSkinColor.class differ
diff --git a/build/classes/client/MapleStat.class b/build/classes/client/MapleStat.class
new file mode 100644
index 0000000000..8b8261e24a
Binary files /dev/null and b/build/classes/client/MapleStat.class differ
diff --git a/build/classes/client/MonsterBook.class b/build/classes/client/MonsterBook.class
new file mode 100644
index 0000000000..998f3b66ad
Binary files /dev/null and b/build/classes/client/MonsterBook.class differ
diff --git a/build/classes/client/Skill.class b/build/classes/client/Skill.class
new file mode 100644
index 0000000000..5ef9db504d
Binary files /dev/null and b/build/classes/client/Skill.class differ
diff --git a/build/classes/client/SkillFactory.class b/build/classes/client/SkillFactory.class
new file mode 100644
index 0000000000..c0bd7e5598
Binary files /dev/null and b/build/classes/client/SkillFactory.class differ
diff --git a/build/classes/client/SkillMacro.class b/build/classes/client/SkillMacro.class
new file mode 100644
index 0000000000..8c70786ae1
Binary files /dev/null and b/build/classes/client/SkillMacro.class differ
diff --git a/build/classes/client/autoban/AutobanFactory.class b/build/classes/client/autoban/AutobanFactory.class
new file mode 100644
index 0000000000..2340c68d00
Binary files /dev/null and b/build/classes/client/autoban/AutobanFactory.class differ
diff --git a/build/classes/client/autoban/AutobanManager.class b/build/classes/client/autoban/AutobanManager.class
new file mode 100644
index 0000000000..19fb6ebf78
Binary files /dev/null and b/build/classes/client/autoban/AutobanManager.class differ
diff --git a/build/classes/client/command/Commands$1.class b/build/classes/client/command/Commands$1.class
new file mode 100644
index 0000000000..183fc6517a
Binary files /dev/null and b/build/classes/client/command/Commands$1.class differ
diff --git a/build/classes/client/command/Commands.class b/build/classes/client/command/Commands.class
new file mode 100644
index 0000000000..8b918c5d2d
Binary files /dev/null and b/build/classes/client/command/Commands.class differ
diff --git a/build/classes/client/inventory/Equip$ScrollResult.class b/build/classes/client/inventory/Equip$ScrollResult.class
new file mode 100644
index 0000000000..5c0f679b30
Binary files /dev/null and b/build/classes/client/inventory/Equip$ScrollResult.class differ
diff --git a/build/classes/client/inventory/Equip.class b/build/classes/client/inventory/Equip.class
new file mode 100644
index 0000000000..90b891f785
Binary files /dev/null and b/build/classes/client/inventory/Equip.class differ
diff --git a/build/classes/client/inventory/Item.class b/build/classes/client/inventory/Item.class
new file mode 100644
index 0000000000..e4b5af4e11
Binary files /dev/null and b/build/classes/client/inventory/Item.class differ
diff --git a/build/classes/client/inventory/ItemFactory.class b/build/classes/client/inventory/ItemFactory.class
new file mode 100644
index 0000000000..790f63a05a
Binary files /dev/null and b/build/classes/client/inventory/ItemFactory.class differ
diff --git a/build/classes/client/inventory/MapleInventory.class b/build/classes/client/inventory/MapleInventory.class
new file mode 100644
index 0000000000..fcf4bfd314
Binary files /dev/null and b/build/classes/client/inventory/MapleInventory.class differ
diff --git a/build/classes/client/inventory/MapleInventoryType.class b/build/classes/client/inventory/MapleInventoryType.class
new file mode 100644
index 0000000000..01b2fe20e0
Binary files /dev/null and b/build/classes/client/inventory/MapleInventoryType.class differ
diff --git a/build/classes/client/inventory/MaplePet.class b/build/classes/client/inventory/MaplePet.class
new file mode 100644
index 0000000000..1af0996bf5
Binary files /dev/null and b/build/classes/client/inventory/MaplePet.class differ
diff --git a/build/classes/client/inventory/MapleWeaponType.class b/build/classes/client/inventory/MapleWeaponType.class
new file mode 100644
index 0000000000..2ec1ad672d
Binary files /dev/null and b/build/classes/client/inventory/MapleWeaponType.class differ
diff --git a/build/classes/client/inventory/ModifyInventory.class b/build/classes/client/inventory/ModifyInventory.class
new file mode 100644
index 0000000000..e6c1c74916
Binary files /dev/null and b/build/classes/client/inventory/ModifyInventory.class differ
diff --git a/build/classes/client/inventory/PetCommand.class b/build/classes/client/inventory/PetCommand.class
new file mode 100644
index 0000000000..70d3fc0673
Binary files /dev/null and b/build/classes/client/inventory/PetCommand.class differ
diff --git a/build/classes/client/inventory/PetDataFactory.class b/build/classes/client/inventory/PetDataFactory.class
new file mode 100644
index 0000000000..e1983db86c
Binary files /dev/null and b/build/classes/client/inventory/PetDataFactory.class differ
diff --git a/build/classes/client/status/MonsterStatus.class b/build/classes/client/status/MonsterStatus.class
new file mode 100644
index 0000000000..7a2486e81f
Binary files /dev/null and b/build/classes/client/status/MonsterStatus.class differ
diff --git a/build/classes/client/status/MonsterStatusEffect.class b/build/classes/client/status/MonsterStatusEffect.class
new file mode 100644
index 0000000000..0450178c66
Binary files /dev/null and b/build/classes/client/status/MonsterStatusEffect.class differ
diff --git a/build/classes/constants/EquipSlot.class b/build/classes/constants/EquipSlot.class
new file mode 100644
index 0000000000..64f790f8fb
Binary files /dev/null and b/build/classes/constants/EquipSlot.class differ
diff --git a/build/classes/constants/ExpTable.class b/build/classes/constants/ExpTable.class
new file mode 100644
index 0000000000..f3d0d8b99b
Binary files /dev/null and b/build/classes/constants/ExpTable.class differ
diff --git a/build/classes/constants/GameConstants$1.class b/build/classes/constants/GameConstants$1.class
new file mode 100644
index 0000000000..8c5cbe8005
Binary files /dev/null and b/build/classes/constants/GameConstants$1.class differ
diff --git a/build/classes/constants/GameConstants.class b/build/classes/constants/GameConstants.class
new file mode 100644
index 0000000000..5dcfdcb639
Binary files /dev/null and b/build/classes/constants/GameConstants.class differ
diff --git a/build/classes/constants/ItemConstants.class b/build/classes/constants/ItemConstants.class
new file mode 100644
index 0000000000..396a35dbeb
Binary files /dev/null and b/build/classes/constants/ItemConstants.class differ
diff --git a/build/classes/constants/ServerConstants.class b/build/classes/constants/ServerConstants.class
new file mode 100644
index 0000000000..83803a1020
Binary files /dev/null and b/build/classes/constants/ServerConstants.class differ
diff --git a/build/classes/constants/skills/Aran.class b/build/classes/constants/skills/Aran.class
new file mode 100644
index 0000000000..7af6cb8350
Binary files /dev/null and b/build/classes/constants/skills/Aran.class differ
diff --git a/build/classes/constants/skills/Archer.class b/build/classes/constants/skills/Archer.class
new file mode 100644
index 0000000000..abfbdb096f
Binary files /dev/null and b/build/classes/constants/skills/Archer.class differ
diff --git a/build/classes/constants/skills/Assassin.class b/build/classes/constants/skills/Assassin.class
new file mode 100644
index 0000000000..bb1cc08aba
Binary files /dev/null and b/build/classes/constants/skills/Assassin.class differ
diff --git a/build/classes/constants/skills/Bandit.class b/build/classes/constants/skills/Bandit.class
new file mode 100644
index 0000000000..08a2f1f225
Binary files /dev/null and b/build/classes/constants/skills/Bandit.class differ
diff --git a/build/classes/constants/skills/Beginner.class b/build/classes/constants/skills/Beginner.class
new file mode 100644
index 0000000000..f20cca1f6c
Binary files /dev/null and b/build/classes/constants/skills/Beginner.class differ
diff --git a/build/classes/constants/skills/Bishop.class b/build/classes/constants/skills/Bishop.class
new file mode 100644
index 0000000000..d26528a713
Binary files /dev/null and b/build/classes/constants/skills/Bishop.class differ
diff --git a/build/classes/constants/skills/BlazeWizard.class b/build/classes/constants/skills/BlazeWizard.class
new file mode 100644
index 0000000000..b871f3d52c
Binary files /dev/null and b/build/classes/constants/skills/BlazeWizard.class differ
diff --git a/build/classes/constants/skills/Bowmaster.class b/build/classes/constants/skills/Bowmaster.class
new file mode 100644
index 0000000000..60ddb62e73
Binary files /dev/null and b/build/classes/constants/skills/Bowmaster.class differ
diff --git a/build/classes/constants/skills/Brawler.class b/build/classes/constants/skills/Brawler.class
new file mode 100644
index 0000000000..b97cfea69d
Binary files /dev/null and b/build/classes/constants/skills/Brawler.class differ
diff --git a/build/classes/constants/skills/Buccaneer.class b/build/classes/constants/skills/Buccaneer.class
new file mode 100644
index 0000000000..01bba496d5
Binary files /dev/null and b/build/classes/constants/skills/Buccaneer.class differ
diff --git a/build/classes/constants/skills/ChiefBandit.class b/build/classes/constants/skills/ChiefBandit.class
new file mode 100644
index 0000000000..ff38ebb12f
Binary files /dev/null and b/build/classes/constants/skills/ChiefBandit.class differ
diff --git a/build/classes/constants/skills/Cleric.class b/build/classes/constants/skills/Cleric.class
new file mode 100644
index 0000000000..6e0aff05ec
Binary files /dev/null and b/build/classes/constants/skills/Cleric.class differ
diff --git a/build/classes/constants/skills/Corsair.class b/build/classes/constants/skills/Corsair.class
new file mode 100644
index 0000000000..777980bb08
Binary files /dev/null and b/build/classes/constants/skills/Corsair.class differ
diff --git a/build/classes/constants/skills/Crossbowman.class b/build/classes/constants/skills/Crossbowman.class
new file mode 100644
index 0000000000..e21d77c0b4
Binary files /dev/null and b/build/classes/constants/skills/Crossbowman.class differ
diff --git a/build/classes/constants/skills/Crusader.class b/build/classes/constants/skills/Crusader.class
new file mode 100644
index 0000000000..8a6bf6e701
Binary files /dev/null and b/build/classes/constants/skills/Crusader.class differ
diff --git a/build/classes/constants/skills/DarkKnight.class b/build/classes/constants/skills/DarkKnight.class
new file mode 100644
index 0000000000..50f8e676e2
Binary files /dev/null and b/build/classes/constants/skills/DarkKnight.class differ
diff --git a/build/classes/constants/skills/DawnWarrior.class b/build/classes/constants/skills/DawnWarrior.class
new file mode 100644
index 0000000000..076880d57d
Binary files /dev/null and b/build/classes/constants/skills/DawnWarrior.class differ
diff --git a/build/classes/constants/skills/DragonKnight.class b/build/classes/constants/skills/DragonKnight.class
new file mode 100644
index 0000000000..0dd1cfedae
Binary files /dev/null and b/build/classes/constants/skills/DragonKnight.class differ
diff --git a/build/classes/constants/skills/Evan.class b/build/classes/constants/skills/Evan.class
new file mode 100644
index 0000000000..b54aa15317
Binary files /dev/null and b/build/classes/constants/skills/Evan.class differ
diff --git a/build/classes/constants/skills/FPArchMage.class b/build/classes/constants/skills/FPArchMage.class
new file mode 100644
index 0000000000..d5903f8039
Binary files /dev/null and b/build/classes/constants/skills/FPArchMage.class differ
diff --git a/build/classes/constants/skills/FPMage.class b/build/classes/constants/skills/FPMage.class
new file mode 100644
index 0000000000..71921fa728
Binary files /dev/null and b/build/classes/constants/skills/FPMage.class differ
diff --git a/build/classes/constants/skills/FPWizard.class b/build/classes/constants/skills/FPWizard.class
new file mode 100644
index 0000000000..a4dcb8d900
Binary files /dev/null and b/build/classes/constants/skills/FPWizard.class differ
diff --git a/build/classes/constants/skills/Fighter.class b/build/classes/constants/skills/Fighter.class
new file mode 100644
index 0000000000..08144a00ab
Binary files /dev/null and b/build/classes/constants/skills/Fighter.class differ
diff --git a/build/classes/constants/skills/GM.class b/build/classes/constants/skills/GM.class
new file mode 100644
index 0000000000..ee6a4e795e
Binary files /dev/null and b/build/classes/constants/skills/GM.class differ
diff --git a/build/classes/constants/skills/Gunslinger.class b/build/classes/constants/skills/Gunslinger.class
new file mode 100644
index 0000000000..f2acfea0e2
Binary files /dev/null and b/build/classes/constants/skills/Gunslinger.class differ
diff --git a/build/classes/constants/skills/Hermit.class b/build/classes/constants/skills/Hermit.class
new file mode 100644
index 0000000000..d081caf490
Binary files /dev/null and b/build/classes/constants/skills/Hermit.class differ
diff --git a/build/classes/constants/skills/Hero.class b/build/classes/constants/skills/Hero.class
new file mode 100644
index 0000000000..f17749bcf1
Binary files /dev/null and b/build/classes/constants/skills/Hero.class differ
diff --git a/build/classes/constants/skills/Hunter.class b/build/classes/constants/skills/Hunter.class
new file mode 100644
index 0000000000..6eeb502991
Binary files /dev/null and b/build/classes/constants/skills/Hunter.class differ
diff --git a/build/classes/constants/skills/ILArchMage.class b/build/classes/constants/skills/ILArchMage.class
new file mode 100644
index 0000000000..9264a07e97
Binary files /dev/null and b/build/classes/constants/skills/ILArchMage.class differ
diff --git a/build/classes/constants/skills/ILMage.class b/build/classes/constants/skills/ILMage.class
new file mode 100644
index 0000000000..21de325228
Binary files /dev/null and b/build/classes/constants/skills/ILMage.class differ
diff --git a/build/classes/constants/skills/ILWizard.class b/build/classes/constants/skills/ILWizard.class
new file mode 100644
index 0000000000..b416c9846a
Binary files /dev/null and b/build/classes/constants/skills/ILWizard.class differ
diff --git a/build/classes/constants/skills/Legend.class b/build/classes/constants/skills/Legend.class
new file mode 100644
index 0000000000..3068b47e57
Binary files /dev/null and b/build/classes/constants/skills/Legend.class differ
diff --git a/build/classes/constants/skills/Magician.class b/build/classes/constants/skills/Magician.class
new file mode 100644
index 0000000000..e15f09513a
Binary files /dev/null and b/build/classes/constants/skills/Magician.class differ
diff --git a/build/classes/constants/skills/Marauder.class b/build/classes/constants/skills/Marauder.class
new file mode 100644
index 0000000000..4e45389e4c
Binary files /dev/null and b/build/classes/constants/skills/Marauder.class differ
diff --git a/build/classes/constants/skills/Marksman.class b/build/classes/constants/skills/Marksman.class
new file mode 100644
index 0000000000..8a2af30adf
Binary files /dev/null and b/build/classes/constants/skills/Marksman.class differ
diff --git a/build/classes/constants/skills/NightLord.class b/build/classes/constants/skills/NightLord.class
new file mode 100644
index 0000000000..5129736d83
Binary files /dev/null and b/build/classes/constants/skills/NightLord.class differ
diff --git a/build/classes/constants/skills/NightWalker.class b/build/classes/constants/skills/NightWalker.class
new file mode 100644
index 0000000000..4ca7d42b61
Binary files /dev/null and b/build/classes/constants/skills/NightWalker.class differ
diff --git a/build/classes/constants/skills/Noblesse.class b/build/classes/constants/skills/Noblesse.class
new file mode 100644
index 0000000000..89da94ba7f
Binary files /dev/null and b/build/classes/constants/skills/Noblesse.class differ
diff --git a/build/classes/constants/skills/Outlaw.class b/build/classes/constants/skills/Outlaw.class
new file mode 100644
index 0000000000..1ae1bc62a6
Binary files /dev/null and b/build/classes/constants/skills/Outlaw.class differ
diff --git a/build/classes/constants/skills/Page.class b/build/classes/constants/skills/Page.class
new file mode 100644
index 0000000000..7a9635ca88
Binary files /dev/null and b/build/classes/constants/skills/Page.class differ
diff --git a/build/classes/constants/skills/Paladin.class b/build/classes/constants/skills/Paladin.class
new file mode 100644
index 0000000000..8fe8315105
Binary files /dev/null and b/build/classes/constants/skills/Paladin.class differ
diff --git a/build/classes/constants/skills/Pirate.class b/build/classes/constants/skills/Pirate.class
new file mode 100644
index 0000000000..e7c94c81b4
Binary files /dev/null and b/build/classes/constants/skills/Pirate.class differ
diff --git a/build/classes/constants/skills/Priest.class b/build/classes/constants/skills/Priest.class
new file mode 100644
index 0000000000..8ccafe0414
Binary files /dev/null and b/build/classes/constants/skills/Priest.class differ
diff --git a/build/classes/constants/skills/Ranger.class b/build/classes/constants/skills/Ranger.class
new file mode 100644
index 0000000000..6a7581def5
Binary files /dev/null and b/build/classes/constants/skills/Ranger.class differ
diff --git a/build/classes/constants/skills/Rogue.class b/build/classes/constants/skills/Rogue.class
new file mode 100644
index 0000000000..2ec7f75142
Binary files /dev/null and b/build/classes/constants/skills/Rogue.class differ
diff --git a/build/classes/constants/skills/Shadower.class b/build/classes/constants/skills/Shadower.class
new file mode 100644
index 0000000000..1f33c25ce9
Binary files /dev/null and b/build/classes/constants/skills/Shadower.class differ
diff --git a/build/classes/constants/skills/Sniper.class b/build/classes/constants/skills/Sniper.class
new file mode 100644
index 0000000000..c00661e3fc
Binary files /dev/null and b/build/classes/constants/skills/Sniper.class differ
diff --git a/build/classes/constants/skills/Spearman.class b/build/classes/constants/skills/Spearman.class
new file mode 100644
index 0000000000..ecf22cf7da
Binary files /dev/null and b/build/classes/constants/skills/Spearman.class differ
diff --git a/build/classes/constants/skills/SuperGM.class b/build/classes/constants/skills/SuperGM.class
new file mode 100644
index 0000000000..d5c7f9bea0
Binary files /dev/null and b/build/classes/constants/skills/SuperGM.class differ
diff --git a/build/classes/constants/skills/Swordsman.class b/build/classes/constants/skills/Swordsman.class
new file mode 100644
index 0000000000..720ea82590
Binary files /dev/null and b/build/classes/constants/skills/Swordsman.class differ
diff --git a/build/classes/constants/skills/ThunderBreaker.class b/build/classes/constants/skills/ThunderBreaker.class
new file mode 100644
index 0000000000..2de0985093
Binary files /dev/null and b/build/classes/constants/skills/ThunderBreaker.class differ
diff --git a/build/classes/constants/skills/Warrior.class b/build/classes/constants/skills/Warrior.class
new file mode 100644
index 0000000000..b1bf3c040b
Binary files /dev/null and b/build/classes/constants/skills/Warrior.class differ
diff --git a/build/classes/constants/skills/WhiteKnight.class b/build/classes/constants/skills/WhiteKnight.class
new file mode 100644
index 0000000000..3496bd9b89
Binary files /dev/null and b/build/classes/constants/skills/WhiteKnight.class differ
diff --git a/build/classes/constants/skills/WindArcher.class b/build/classes/constants/skills/WindArcher.class
new file mode 100644
index 0000000000..49daa106a0
Binary files /dev/null and b/build/classes/constants/skills/WindArcher.class differ
diff --git a/build/classes/dropspider/DataTool.class b/build/classes/dropspider/DataTool.class
new file mode 100644
index 0000000000..1ccd265044
Binary files /dev/null and b/build/classes/dropspider/DataTool.class differ
diff --git a/build/classes/dropspider/DropEntry$1.class b/build/classes/dropspider/DropEntry$1.class
new file mode 100644
index 0000000000..18f408570b
Binary files /dev/null and b/build/classes/dropspider/DropEntry$1.class differ
diff --git a/build/classes/dropspider/DropEntry.class b/build/classes/dropspider/DropEntry.class
new file mode 100644
index 0000000000..d697c84824
Binary files /dev/null and b/build/classes/dropspider/DropEntry.class differ
diff --git a/build/classes/dropspider/Errors.class b/build/classes/dropspider/Errors.class
new file mode 100644
index 0000000000..300ee69b1a
Binary files /dev/null and b/build/classes/dropspider/Errors.class differ
diff --git a/build/classes/dropspider/Main.class b/build/classes/dropspider/Main.class
new file mode 100644
index 0000000000..e6c6416cd9
Binary files /dev/null and b/build/classes/dropspider/Main.class differ
diff --git a/build/classes/net/AbstractMaplePacketHandler.class b/build/classes/net/AbstractMaplePacketHandler.class
new file mode 100644
index 0000000000..d6ed6e258b
Binary files /dev/null and b/build/classes/net/AbstractMaplePacketHandler.class differ
diff --git a/build/classes/net/MaplePacketHandler.class b/build/classes/net/MaplePacketHandler.class
new file mode 100644
index 0000000000..68441c02c5
Binary files /dev/null and b/build/classes/net/MaplePacketHandler.class differ
diff --git a/build/classes/net/MapleServerHandler.class b/build/classes/net/MapleServerHandler.class
new file mode 100644
index 0000000000..071e4b98f9
Binary files /dev/null and b/build/classes/net/MapleServerHandler.class differ
diff --git a/build/classes/net/PacketProcessor.class b/build/classes/net/PacketProcessor.class
new file mode 100644
index 0000000000..79104552cb
Binary files /dev/null and b/build/classes/net/PacketProcessor.class differ
diff --git a/build/classes/net/RecvOpcode.class b/build/classes/net/RecvOpcode.class
new file mode 100644
index 0000000000..1c01a6c05b
Binary files /dev/null and b/build/classes/net/RecvOpcode.class differ
diff --git a/build/classes/net/SendOpcode.class b/build/classes/net/SendOpcode.class
new file mode 100644
index 0000000000..fab48e0294
Binary files /dev/null and b/build/classes/net/SendOpcode.class differ
diff --git a/build/classes/net/mina/MapleCodecFactory.class b/build/classes/net/mina/MapleCodecFactory.class
new file mode 100644
index 0000000000..0d526cbdb4
Binary files /dev/null and b/build/classes/net/mina/MapleCodecFactory.class differ
diff --git a/build/classes/net/mina/MapleCustomEncryption.class b/build/classes/net/mina/MapleCustomEncryption.class
new file mode 100644
index 0000000000..23c3605e12
Binary files /dev/null and b/build/classes/net/mina/MapleCustomEncryption.class differ
diff --git a/build/classes/net/mina/MaplePacketDecoder$1.class b/build/classes/net/mina/MaplePacketDecoder$1.class
new file mode 100644
index 0000000000..1b92d59120
Binary files /dev/null and b/build/classes/net/mina/MaplePacketDecoder$1.class differ
diff --git a/build/classes/net/mina/MaplePacketDecoder$DecoderState.class b/build/classes/net/mina/MaplePacketDecoder$DecoderState.class
new file mode 100644
index 0000000000..d9d45607ce
Binary files /dev/null and b/build/classes/net/mina/MaplePacketDecoder$DecoderState.class differ
diff --git a/build/classes/net/mina/MaplePacketDecoder.class b/build/classes/net/mina/MaplePacketDecoder.class
new file mode 100644
index 0000000000..552028c078
Binary files /dev/null and b/build/classes/net/mina/MaplePacketDecoder.class differ
diff --git a/build/classes/net/mina/MaplePacketEncoder.class b/build/classes/net/mina/MaplePacketEncoder.class
new file mode 100644
index 0000000000..7c7770456d
Binary files /dev/null and b/build/classes/net/mina/MaplePacketEncoder.class differ
diff --git a/build/classes/net/server/CouponWorker.class b/build/classes/net/server/CouponWorker.class
new file mode 100644
index 0000000000..d97420ae14
Binary files /dev/null and b/build/classes/net/server/CouponWorker.class differ
diff --git a/build/classes/net/server/CreateINI.class b/build/classes/net/server/CreateINI.class
new file mode 100644
index 0000000000..b81a666ec6
Binary files /dev/null and b/build/classes/net/server/CreateINI.class differ
diff --git a/build/classes/net/server/PlayerBuffStorage.class b/build/classes/net/server/PlayerBuffStorage.class
new file mode 100644
index 0000000000..5fce7cb3b1
Binary files /dev/null and b/build/classes/net/server/PlayerBuffStorage.class differ
diff --git a/build/classes/net/server/PlayerBuffValueHolder.class b/build/classes/net/server/PlayerBuffValueHolder.class
new file mode 100644
index 0000000000..b01b5f3f30
Binary files /dev/null and b/build/classes/net/server/PlayerBuffValueHolder.class differ
diff --git a/build/classes/net/server/PlayerCoolDownValueHolder.class b/build/classes/net/server/PlayerCoolDownValueHolder.class
new file mode 100644
index 0000000000..2640ade6a5
Binary files /dev/null and b/build/classes/net/server/PlayerCoolDownValueHolder.class differ
diff --git a/build/classes/net/server/PlayerDiseaseValueHolder.class b/build/classes/net/server/PlayerDiseaseValueHolder.class
new file mode 100644
index 0000000000..854a686dfd
Binary files /dev/null and b/build/classes/net/server/PlayerDiseaseValueHolder.class differ
diff --git a/build/classes/net/server/PlayerStorage.class b/build/classes/net/server/PlayerStorage.class
new file mode 100644
index 0000000000..c6788ef578
Binary files /dev/null and b/build/classes/net/server/PlayerStorage.class differ
diff --git a/build/classes/net/server/RankingWorker.class b/build/classes/net/server/RankingWorker.class
new file mode 100644
index 0000000000..c59bbe54d5
Binary files /dev/null and b/build/classes/net/server/RankingWorker.class differ
diff --git a/build/classes/net/server/Server$1.class b/build/classes/net/server/Server$1.class
new file mode 100644
index 0000000000..f933d5ed48
Binary files /dev/null and b/build/classes/net/server/Server$1.class differ
diff --git a/build/classes/net/server/Server.class b/build/classes/net/server/Server.class
new file mode 100644
index 0000000000..ee0a828229
Binary files /dev/null and b/build/classes/net/server/Server.class differ
diff --git a/build/classes/net/server/channel/Channel$respawnMaps.class b/build/classes/net/server/channel/Channel$respawnMaps.class
new file mode 100644
index 0000000000..314120eea4
Binary files /dev/null and b/build/classes/net/server/channel/Channel$respawnMaps.class differ
diff --git a/build/classes/net/server/channel/Channel.class b/build/classes/net/server/channel/Channel.class
new file mode 100644
index 0000000000..10c408c17d
Binary files /dev/null and b/build/classes/net/server/channel/Channel.class differ
diff --git a/build/classes/net/server/channel/CharacterIdChannelPair.class b/build/classes/net/server/channel/CharacterIdChannelPair.class
new file mode 100644
index 0000000000..d7f11948bc
Binary files /dev/null and b/build/classes/net/server/channel/CharacterIdChannelPair.class differ
diff --git a/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$1.class b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$1.class
new file mode 100644
index 0000000000..5e2908e2c2
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$1.class differ
diff --git a/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$2.class b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$2.class
new file mode 100644
index 0000000000..43c49f3aef
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$2.class differ
diff --git a/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$AttackInfo.class b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$AttackInfo.class
new file mode 100644
index 0000000000..c0d1e423ae
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler$AttackInfo.class differ
diff --git a/build/classes/net/server/channel/handlers/AbstractDealDamageHandler.class b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler.class
new file mode 100644
index 0000000000..d6f74b8c88
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AbstractDealDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AbstractMovementPacketHandler.class b/build/classes/net/server/channel/handlers/AbstractMovementPacketHandler.class
new file mode 100644
index 0000000000..1f30899cae
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AbstractMovementPacketHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AcceptFamilyHandler.class b/build/classes/net/server/channel/handlers/AcceptFamilyHandler.class
new file mode 100644
index 0000000000..04407ad4b5
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AcceptFamilyHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AdminChatHandler.class b/build/classes/net/server/channel/handlers/AdminChatHandler.class
new file mode 100644
index 0000000000..d770fa1224
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AdminChatHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AdminCommandHandler.class b/build/classes/net/server/channel/handlers/AdminCommandHandler.class
new file mode 100644
index 0000000000..7afb3c4b44
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AdminCommandHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AdminLogHandler.class b/build/classes/net/server/channel/handlers/AdminLogHandler.class
new file mode 100644
index 0000000000..e40dae7eea
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AdminLogHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AllianceOperationHandler.class b/build/classes/net/server/channel/handlers/AllianceOperationHandler.class
new file mode 100644
index 0000000000..3f80e50a81
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AllianceOperationHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AranComboHandler.class b/build/classes/net/server/channel/handlers/AranComboHandler.class
new file mode 100644
index 0000000000..0c82a77c47
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AranComboHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AutoAggroHandler.class b/build/classes/net/server/channel/handlers/AutoAggroHandler.class
new file mode 100644
index 0000000000..e9231c142e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AutoAggroHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/AutoAssignHandler$1.class b/build/classes/net/server/channel/handlers/AutoAssignHandler$1.class
new file mode 100644
index 0000000000..b153eae337
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AutoAssignHandler$1.class differ
diff --git a/build/classes/net/server/channel/handlers/AutoAssignHandler.class b/build/classes/net/server/channel/handlers/AutoAssignHandler.class
new file mode 100644
index 0000000000..12223babe7
Binary files /dev/null and b/build/classes/net/server/channel/handlers/AutoAssignHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/BBSOperationHandler.class b/build/classes/net/server/channel/handlers/BBSOperationHandler.class
new file mode 100644
index 0000000000..6d589a651e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/BBSOperationHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/BeholderHandler.class b/build/classes/net/server/channel/handlers/BeholderHandler.class
new file mode 100644
index 0000000000..a1adeeba9f
Binary files /dev/null and b/build/classes/net/server/channel/handlers/BeholderHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/BuddylistModifyHandler$CharacterIdNameBuddyCapacity.class b/build/classes/net/server/channel/handlers/BuddylistModifyHandler$CharacterIdNameBuddyCapacity.class
new file mode 100644
index 0000000000..2ceffe04f6
Binary files /dev/null and b/build/classes/net/server/channel/handlers/BuddylistModifyHandler$CharacterIdNameBuddyCapacity.class differ
diff --git a/build/classes/net/server/channel/handlers/BuddylistModifyHandler.class b/build/classes/net/server/channel/handlers/BuddylistModifyHandler.class
new file mode 100644
index 0000000000..fcbce51119
Binary files /dev/null and b/build/classes/net/server/channel/handlers/BuddylistModifyHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CancelBuffHandler.class b/build/classes/net/server/channel/handlers/CancelBuffHandler.class
new file mode 100644
index 0000000000..f44249945f
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CancelBuffHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CancelChairHandler.class b/build/classes/net/server/channel/handlers/CancelChairHandler.class
new file mode 100644
index 0000000000..9efdfbe404
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CancelChairHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CancelDebuffHandler.class b/build/classes/net/server/channel/handlers/CancelDebuffHandler.class
new file mode 100644
index 0000000000..1a91c188bc
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CancelDebuffHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CancelItemEffectHandler.class b/build/classes/net/server/channel/handlers/CancelItemEffectHandler.class
new file mode 100644
index 0000000000..06b473ca5b
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CancelItemEffectHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CashOperationHandler.class b/build/classes/net/server/channel/handlers/CashOperationHandler.class
new file mode 100644
index 0000000000..e451e18cdb
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CashOperationHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ChangeChannelHandler.class b/build/classes/net/server/channel/handlers/ChangeChannelHandler.class
new file mode 100644
index 0000000000..b38373d172
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ChangeChannelHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ChangeMapHandler.class b/build/classes/net/server/channel/handlers/ChangeMapHandler.class
new file mode 100644
index 0000000000..49fc83152b
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ChangeMapHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ChangeMapSpecialHandler.class b/build/classes/net/server/channel/handlers/ChangeMapSpecialHandler.class
new file mode 100644
index 0000000000..d56428d5c0
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ChangeMapSpecialHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CharInfoRequestHandler.class b/build/classes/net/server/channel/handlers/CharInfoRequestHandler.class
new file mode 100644
index 0000000000..9cec7b3b1a
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CharInfoRequestHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ClickGuideHandler.class b/build/classes/net/server/channel/handlers/ClickGuideHandler.class
new file mode 100644
index 0000000000..5c91466689
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ClickGuideHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CloseChalkboardHandler.class b/build/classes/net/server/channel/handlers/CloseChalkboardHandler.class
new file mode 100644
index 0000000000..510f594c14
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CloseChalkboardHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CloseRangeDamageHandler.class b/build/classes/net/server/channel/handlers/CloseRangeDamageHandler.class
new file mode 100644
index 0000000000..600d376907
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CloseRangeDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CoconutHandler.class b/build/classes/net/server/channel/handlers/CoconutHandler.class
new file mode 100644
index 0000000000..8978f33cea
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CoconutHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/CouponCodeHandler.class b/build/classes/net/server/channel/handlers/CouponCodeHandler.class
new file mode 100644
index 0000000000..0a757825b3
Binary files /dev/null and b/build/classes/net/server/channel/handlers/CouponCodeHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DamageSummonHandler.class b/build/classes/net/server/channel/handlers/DamageSummonHandler.class
new file mode 100644
index 0000000000..c2e59c5acd
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DamageSummonHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DenyGuildRequestHandler.class b/build/classes/net/server/channel/handlers/DenyGuildRequestHandler.class
new file mode 100644
index 0000000000..ec9a241d62
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DenyGuildRequestHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DenyPartyRequestHandler.class b/build/classes/net/server/channel/handlers/DenyPartyRequestHandler.class
new file mode 100644
index 0000000000..88e3077158
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DenyPartyRequestHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DistributeAPHandler.class b/build/classes/net/server/channel/handlers/DistributeAPHandler.class
new file mode 100644
index 0000000000..f11244c3e8
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DistributeAPHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DistributeSPHandler.class b/build/classes/net/server/channel/handlers/DistributeSPHandler.class
new file mode 100644
index 0000000000..d0286dbf6c
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DistributeSPHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DoorHandler.class b/build/classes/net/server/channel/handlers/DoorHandler.class
new file mode 100644
index 0000000000..c22d47e4e7
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DoorHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/DueyHandler$Actions.class b/build/classes/net/server/channel/handlers/DueyHandler$Actions.class
new file mode 100644
index 0000000000..4869ae457a
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DueyHandler$Actions.class differ
diff --git a/build/classes/net/server/channel/handlers/DueyHandler.class b/build/classes/net/server/channel/handlers/DueyHandler.class
new file mode 100644
index 0000000000..814567d104
Binary files /dev/null and b/build/classes/net/server/channel/handlers/DueyHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/EnterCashShopHandler.class b/build/classes/net/server/channel/handlers/EnterCashShopHandler.class
new file mode 100644
index 0000000000..70c7566155
Binary files /dev/null and b/build/classes/net/server/channel/handlers/EnterCashShopHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/EnterMTSHandler.class b/build/classes/net/server/channel/handlers/EnterMTSHandler.class
new file mode 100644
index 0000000000..8ae0c1cd15
Binary files /dev/null and b/build/classes/net/server/channel/handlers/EnterMTSHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/FaceExpressionHandler.class b/build/classes/net/server/channel/handlers/FaceExpressionHandler.class
new file mode 100644
index 0000000000..796bb9efc9
Binary files /dev/null and b/build/classes/net/server/channel/handlers/FaceExpressionHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/FamilyAddHandler.class b/build/classes/net/server/channel/handlers/FamilyAddHandler.class
new file mode 100644
index 0000000000..609bfac5d0
Binary files /dev/null and b/build/classes/net/server/channel/handlers/FamilyAddHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/FamilyUseHandler.class b/build/classes/net/server/channel/handlers/FamilyUseHandler.class
new file mode 100644
index 0000000000..9aaa67be70
Binary files /dev/null and b/build/classes/net/server/channel/handlers/FamilyUseHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/FredrickHandler.class b/build/classes/net/server/channel/handlers/FredrickHandler.class
new file mode 100644
index 0000000000..6127559957
Binary files /dev/null and b/build/classes/net/server/channel/handlers/FredrickHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/GeneralChatHandler.class b/build/classes/net/server/channel/handlers/GeneralChatHandler.class
new file mode 100644
index 0000000000..eabb3b1eea
Binary files /dev/null and b/build/classes/net/server/channel/handlers/GeneralChatHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/GiveFameHandler.class b/build/classes/net/server/channel/handlers/GiveFameHandler.class
new file mode 100644
index 0000000000..f43c320108
Binary files /dev/null and b/build/classes/net/server/channel/handlers/GiveFameHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/GuildOperationHandler$Invited.class b/build/classes/net/server/channel/handlers/GuildOperationHandler$Invited.class
new file mode 100644
index 0000000000..dd1e4b6e7d
Binary files /dev/null and b/build/classes/net/server/channel/handlers/GuildOperationHandler$Invited.class differ
diff --git a/build/classes/net/server/channel/handlers/GuildOperationHandler.class b/build/classes/net/server/channel/handlers/GuildOperationHandler.class
new file mode 100644
index 0000000000..80b724b9e6
Binary files /dev/null and b/build/classes/net/server/channel/handlers/GuildOperationHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/HealOvertimeHandler.class b/build/classes/net/server/channel/handlers/HealOvertimeHandler.class
new file mode 100644
index 0000000000..547953ea53
Binary files /dev/null and b/build/classes/net/server/channel/handlers/HealOvertimeHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/HiredMerchantRequest.class b/build/classes/net/server/channel/handlers/HiredMerchantRequest.class
new file mode 100644
index 0000000000..f1273bf4fb
Binary files /dev/null and b/build/classes/net/server/channel/handlers/HiredMerchantRequest.class differ
diff --git a/build/classes/net/server/channel/handlers/InnerPortalHandler.class b/build/classes/net/server/channel/handlers/InnerPortalHandler.class
new file mode 100644
index 0000000000..1be4457052
Binary files /dev/null and b/build/classes/net/server/channel/handlers/InnerPortalHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ItemIdSortHandler.class b/build/classes/net/server/channel/handlers/ItemIdSortHandler.class
new file mode 100644
index 0000000000..f167359b5b
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ItemIdSortHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ItemMoveHandler.class b/build/classes/net/server/channel/handlers/ItemMoveHandler.class
new file mode 100644
index 0000000000..99e92eade1
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ItemMoveHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ItemPickupHandler.class b/build/classes/net/server/channel/handlers/ItemPickupHandler.class
new file mode 100644
index 0000000000..10e6edd005
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ItemPickupHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ItemRewardHandler.class b/build/classes/net/server/channel/handlers/ItemRewardHandler.class
new file mode 100644
index 0000000000..4db33b261a
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ItemRewardHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ItemSortHandler.class b/build/classes/net/server/channel/handlers/ItemSortHandler.class
new file mode 100644
index 0000000000..144a666097
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ItemSortHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/KeymapChangeHandler.class b/build/classes/net/server/channel/handlers/KeymapChangeHandler.class
new file mode 100644
index 0000000000..19bb404775
Binary files /dev/null and b/build/classes/net/server/channel/handlers/KeymapChangeHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/LeftKnockbackHandler.class b/build/classes/net/server/channel/handlers/LeftKnockbackHandler.class
new file mode 100644
index 0000000000..f0211869b5
Binary files /dev/null and b/build/classes/net/server/channel/handlers/LeftKnockbackHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MTSHandler.class b/build/classes/net/server/channel/handlers/MTSHandler.class
new file mode 100644
index 0000000000..62b0587eab
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MTSHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MagicDamageHandler.class b/build/classes/net/server/channel/handlers/MagicDamageHandler.class
new file mode 100644
index 0000000000..687c8e7d17
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MagicDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MakerSkillHandler.class b/build/classes/net/server/channel/handlers/MakerSkillHandler.class
new file mode 100644
index 0000000000..37cba144f9
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MakerSkillHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MesoDropHandler.class b/build/classes/net/server/channel/handlers/MesoDropHandler.class
new file mode 100644
index 0000000000..3abd94ba9f
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MesoDropHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MessengerHandler.class b/build/classes/net/server/channel/handlers/MessengerHandler.class
new file mode 100644
index 0000000000..ac836d63fa
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MessengerHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MobDamageMobFriendlyHandler.class b/build/classes/net/server/channel/handlers/MobDamageMobFriendlyHandler.class
new file mode 100644
index 0000000000..f0ae9a8a40
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MobDamageMobFriendlyHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MobDamageMobHandler.class b/build/classes/net/server/channel/handlers/MobDamageMobHandler.class
new file mode 100644
index 0000000000..336a5acfed
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MobDamageMobHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MonsterBombHandler.class b/build/classes/net/server/channel/handlers/MonsterBombHandler.class
new file mode 100644
index 0000000000..bf8889f8fc
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MonsterBombHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MonsterBookCoverHandler.class b/build/classes/net/server/channel/handlers/MonsterBookCoverHandler.class
new file mode 100644
index 0000000000..9d7583b3d1
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MonsterBookCoverHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MonsterCarnivalHandler.class b/build/classes/net/server/channel/handlers/MonsterCarnivalHandler.class
new file mode 100644
index 0000000000..b05931252a
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MonsterCarnivalHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MoveDragonHandler.class b/build/classes/net/server/channel/handlers/MoveDragonHandler.class
new file mode 100644
index 0000000000..67bb25d83b
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MoveDragonHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MoveLifeHandler.class b/build/classes/net/server/channel/handlers/MoveLifeHandler.class
new file mode 100644
index 0000000000..d20610c800
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MoveLifeHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MovePetHandler.class b/build/classes/net/server/channel/handlers/MovePetHandler.class
new file mode 100644
index 0000000000..6426289595
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MovePetHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MovePlayerHandler.class b/build/classes/net/server/channel/handlers/MovePlayerHandler.class
new file mode 100644
index 0000000000..7dbaa06dc3
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MovePlayerHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/MoveSummonHandler.class b/build/classes/net/server/channel/handlers/MoveSummonHandler.class
new file mode 100644
index 0000000000..c549659f0c
Binary files /dev/null and b/build/classes/net/server/channel/handlers/MoveSummonHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/NPCAnimation.class b/build/classes/net/server/channel/handlers/NPCAnimation.class
new file mode 100644
index 0000000000..41ca82048f
Binary files /dev/null and b/build/classes/net/server/channel/handlers/NPCAnimation.class differ
diff --git a/build/classes/net/server/channel/handlers/NPCMoreTalkHandler.class b/build/classes/net/server/channel/handlers/NPCMoreTalkHandler.class
new file mode 100644
index 0000000000..5a2f10ccf7
Binary files /dev/null and b/build/classes/net/server/channel/handlers/NPCMoreTalkHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/NPCShopHandler.class b/build/classes/net/server/channel/handlers/NPCShopHandler.class
new file mode 100644
index 0000000000..1c0919ee04
Binary files /dev/null and b/build/classes/net/server/channel/handlers/NPCShopHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/NPCTalkHandler.class b/build/classes/net/server/channel/handlers/NPCTalkHandler.class
new file mode 100644
index 0000000000..8004865152
Binary files /dev/null and b/build/classes/net/server/channel/handlers/NPCTalkHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/NoteActionHandler.class b/build/classes/net/server/channel/handlers/NoteActionHandler.class
new file mode 100644
index 0000000000..61f90e2a0e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/NoteActionHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PairedQuicksort.class b/build/classes/net/server/channel/handlers/PairedQuicksort.class
new file mode 100644
index 0000000000..80e6f467cd
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PairedQuicksort.class differ
diff --git a/build/classes/net/server/channel/handlers/PartyChatHandler.class b/build/classes/net/server/channel/handlers/PartyChatHandler.class
new file mode 100644
index 0000000000..a60a0853bc
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PartyChatHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PartyOperationHandler.class b/build/classes/net/server/channel/handlers/PartyOperationHandler.class
new file mode 100644
index 0000000000..a4fdd26446
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PartyOperationHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PartySearchRegisterHandler.class b/build/classes/net/server/channel/handlers/PartySearchRegisterHandler.class
new file mode 100644
index 0000000000..14004f3895
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PartySearchRegisterHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PartySearchStartHandler.class b/build/classes/net/server/channel/handlers/PartySearchStartHandler.class
new file mode 100644
index 0000000000..12c4722bc2
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PartySearchStartHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetAutoPotHandler.class b/build/classes/net/server/channel/handlers/PetAutoPotHandler.class
new file mode 100644
index 0000000000..531dbd1bcb
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetAutoPotHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetChatHandler.class b/build/classes/net/server/channel/handlers/PetChatHandler.class
new file mode 100644
index 0000000000..bd92f7bae3
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetChatHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetCommandHandler.class b/build/classes/net/server/channel/handlers/PetCommandHandler.class
new file mode 100644
index 0000000000..e068f98676
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetCommandHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetExcludeItemsHandler.class b/build/classes/net/server/channel/handlers/PetExcludeItemsHandler.class
new file mode 100644
index 0000000000..bfdb4cabfa
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetExcludeItemsHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetFoodHandler.class b/build/classes/net/server/channel/handlers/PetFoodHandler.class
new file mode 100644
index 0000000000..354d3d90d0
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetFoodHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PetLootHandler.class b/build/classes/net/server/channel/handlers/PetLootHandler.class
new file mode 100644
index 0000000000..0fffe1f80e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PetLootHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PlayerInteractionHandler$Action.class b/build/classes/net/server/channel/handlers/PlayerInteractionHandler$Action.class
new file mode 100644
index 0000000000..d2a21fd807
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PlayerInteractionHandler$Action.class differ
diff --git a/build/classes/net/server/channel/handlers/PlayerInteractionHandler.class b/build/classes/net/server/channel/handlers/PlayerInteractionHandler.class
new file mode 100644
index 0000000000..e94e3ffd41
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PlayerInteractionHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/PlayerLoggedinHandler$1.class b/build/classes/net/server/channel/handlers/PlayerLoggedinHandler$1.class
new file mode 100644
index 0000000000..65f2787a50
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PlayerLoggedinHandler$1.class differ
diff --git a/build/classes/net/server/channel/handlers/PlayerLoggedinHandler.class b/build/classes/net/server/channel/handlers/PlayerLoggedinHandler.class
new file mode 100644
index 0000000000..7653a270d3
Binary files /dev/null and b/build/classes/net/server/channel/handlers/PlayerLoggedinHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/QuestActionHandler.class b/build/classes/net/server/channel/handlers/QuestActionHandler.class
new file mode 100644
index 0000000000..db24d00896
Binary files /dev/null and b/build/classes/net/server/channel/handlers/QuestActionHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/RangedAttackHandler.class b/build/classes/net/server/channel/handlers/RangedAttackHandler.class
new file mode 100644
index 0000000000..ea8f04528e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/RangedAttackHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ReactorHitHandler.class b/build/classes/net/server/channel/handlers/ReactorHitHandler.class
new file mode 100644
index 0000000000..1bcf040bbc
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ReactorHitHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/RemoteGachaponHandler.class b/build/classes/net/server/channel/handlers/RemoteGachaponHandler.class
new file mode 100644
index 0000000000..7d3e23e579
Binary files /dev/null and b/build/classes/net/server/channel/handlers/RemoteGachaponHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/RemoteStoreHandler.class b/build/classes/net/server/channel/handlers/RemoteStoreHandler.class
new file mode 100644
index 0000000000..5e0c2610c0
Binary files /dev/null and b/build/classes/net/server/channel/handlers/RemoteStoreHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ReportHandler.class b/build/classes/net/server/channel/handlers/ReportHandler.class
new file mode 100644
index 0000000000..6e518873b7
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ReportHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/RingActionHandler.class b/build/classes/net/server/channel/handlers/RingActionHandler.class
new file mode 100644
index 0000000000..da9dcca963
Binary files /dev/null and b/build/classes/net/server/channel/handlers/RingActionHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ScriptedItemHandler.class b/build/classes/net/server/channel/handlers/ScriptedItemHandler.class
new file mode 100644
index 0000000000..ca0a0b2984
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ScriptedItemHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/ScrollHandler.class b/build/classes/net/server/channel/handlers/ScrollHandler.class
new file mode 100644
index 0000000000..1cb4b41be5
Binary files /dev/null and b/build/classes/net/server/channel/handlers/ScrollHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SkillBookHandler.class b/build/classes/net/server/channel/handlers/SkillBookHandler.class
new file mode 100644
index 0000000000..bfb742cc44
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SkillBookHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SkillEffectHandler.class b/build/classes/net/server/channel/handlers/SkillEffectHandler.class
new file mode 100644
index 0000000000..ee095681d3
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SkillEffectHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SkillMacroHandler.class b/build/classes/net/server/channel/handlers/SkillMacroHandler.class
new file mode 100644
index 0000000000..1fd7a982ba
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SkillMacroHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SnowballHandler.class b/build/classes/net/server/channel/handlers/SnowballHandler.class
new file mode 100644
index 0000000000..620f1267bf
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SnowballHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SpawnPetHandler.class b/build/classes/net/server/channel/handlers/SpawnPetHandler.class
new file mode 100644
index 0000000000..69282f1923
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SpawnPetHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SpecialMoveHandler.class b/build/classes/net/server/channel/handlers/SpecialMoveHandler.class
new file mode 100644
index 0000000000..b0e36d9e0f
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SpecialMoveHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SpouseChatHandler.class b/build/classes/net/server/channel/handlers/SpouseChatHandler.class
new file mode 100644
index 0000000000..3c92973bc1
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SpouseChatHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/StorageHandler.class b/build/classes/net/server/channel/handlers/StorageHandler.class
new file mode 100644
index 0000000000..f2c95a8c77
Binary files /dev/null and b/build/classes/net/server/channel/handlers/StorageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/SummonDamageHandler$SummonAttackEntry.class b/build/classes/net/server/channel/handlers/SummonDamageHandler$SummonAttackEntry.class
new file mode 100644
index 0000000000..ea902bc032
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SummonDamageHandler$SummonAttackEntry.class differ
diff --git a/build/classes/net/server/channel/handlers/SummonDamageHandler.class b/build/classes/net/server/channel/handlers/SummonDamageHandler.class
new file mode 100644
index 0000000000..4f5cd12c7e
Binary files /dev/null and b/build/classes/net/server/channel/handlers/SummonDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/TakeDamageHandler.class b/build/classes/net/server/channel/handlers/TakeDamageHandler.class
new file mode 100644
index 0000000000..e6190e97a4
Binary files /dev/null and b/build/classes/net/server/channel/handlers/TakeDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/TouchMonsterDamageHandler.class b/build/classes/net/server/channel/handlers/TouchMonsterDamageHandler.class
new file mode 100644
index 0000000000..128d4a2b0c
Binary files /dev/null and b/build/classes/net/server/channel/handlers/TouchMonsterDamageHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/TouchReactorHandler.class b/build/classes/net/server/channel/handlers/TouchReactorHandler.class
new file mode 100644
index 0000000000..8e546ad327
Binary files /dev/null and b/build/classes/net/server/channel/handlers/TouchReactorHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/TouchingCashShopHandler.class b/build/classes/net/server/channel/handlers/TouchingCashShopHandler.class
new file mode 100644
index 0000000000..065f5625a8
Binary files /dev/null and b/build/classes/net/server/channel/handlers/TouchingCashShopHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/TrockAddMapHandler.class b/build/classes/net/server/channel/handlers/TrockAddMapHandler.class
new file mode 100644
index 0000000000..77620f8236
Binary files /dev/null and b/build/classes/net/server/channel/handlers/TrockAddMapHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseCashItemHandler$1.class b/build/classes/net/server/channel/handlers/UseCashItemHandler$1.class
new file mode 100644
index 0000000000..3141274444
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseCashItemHandler$1.class differ
diff --git a/build/classes/net/server/channel/handlers/UseCashItemHandler.class b/build/classes/net/server/channel/handlers/UseCashItemHandler.class
new file mode 100644
index 0000000000..3412f1c724
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseCashItemHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseCatchItemHandler.class b/build/classes/net/server/channel/handlers/UseCatchItemHandler.class
new file mode 100644
index 0000000000..771c54ffee
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseCatchItemHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseChairHandler.class b/build/classes/net/server/channel/handlers/UseChairHandler.class
new file mode 100644
index 0000000000..f7e0212729
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseChairHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseDeathItemHandler.class b/build/classes/net/server/channel/handlers/UseDeathItemHandler.class
new file mode 100644
index 0000000000..1b87b0f4ec
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseDeathItemHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseGachaExpHandler.class b/build/classes/net/server/channel/handlers/UseGachaExpHandler.class
new file mode 100644
index 0000000000..95dfcce270
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseGachaExpHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseHammerHandler.class b/build/classes/net/server/channel/handlers/UseHammerHandler.class
new file mode 100644
index 0000000000..036fcbd294
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseHammerHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseItemEffectHandler.class b/build/classes/net/server/channel/handlers/UseItemEffectHandler.class
new file mode 100644
index 0000000000..63a8fd41c5
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseItemEffectHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseItemHandler.class b/build/classes/net/server/channel/handlers/UseItemHandler.class
new file mode 100644
index 0000000000..d4fc478e1d
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseItemHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseMapleLifeHandler.class b/build/classes/net/server/channel/handlers/UseMapleLifeHandler.class
new file mode 100644
index 0000000000..98ccdb0148
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseMapleLifeHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseMountFoodHandler.class b/build/classes/net/server/channel/handlers/UseMountFoodHandler.class
new file mode 100644
index 0000000000..cf56909fdd
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseMountFoodHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseSolomonHandler.class b/build/classes/net/server/channel/handlers/UseSolomonHandler.class
new file mode 100644
index 0000000000..f6c23aae28
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseSolomonHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/UseSummonBag.class b/build/classes/net/server/channel/handlers/UseSummonBag.class
new file mode 100644
index 0000000000..0fced9f3d8
Binary files /dev/null and b/build/classes/net/server/channel/handlers/UseSummonBag.class differ
diff --git a/build/classes/net/server/channel/handlers/WeddingHandler.class b/build/classes/net/server/channel/handlers/WeddingHandler.class
new file mode 100644
index 0000000000..aed98af28b
Binary files /dev/null and b/build/classes/net/server/channel/handlers/WeddingHandler.class differ
diff --git a/build/classes/net/server/channel/handlers/WhisperHandler.class b/build/classes/net/server/channel/handlers/WhisperHandler.class
new file mode 100644
index 0000000000..2ca3e31d59
Binary files /dev/null and b/build/classes/net/server/channel/handlers/WhisperHandler.class differ
diff --git a/build/classes/net/server/guild/MapleAlliance.class b/build/classes/net/server/guild/MapleAlliance.class
new file mode 100644
index 0000000000..0fba8a5851
Binary files /dev/null and b/build/classes/net/server/guild/MapleAlliance.class differ
diff --git a/build/classes/net/server/guild/MapleGuild$BCOp.class b/build/classes/net/server/guild/MapleGuild$BCOp.class
new file mode 100644
index 0000000000..59aef5a9a5
Binary files /dev/null and b/build/classes/net/server/guild/MapleGuild$BCOp.class differ
diff --git a/build/classes/net/server/guild/MapleGuild.class b/build/classes/net/server/guild/MapleGuild.class
new file mode 100644
index 0000000000..f216704ce2
Binary files /dev/null and b/build/classes/net/server/guild/MapleGuild.class differ
diff --git a/build/classes/net/server/guild/MapleGuildCharacter.class b/build/classes/net/server/guild/MapleGuildCharacter.class
new file mode 100644
index 0000000000..159f9f587e
Binary files /dev/null and b/build/classes/net/server/guild/MapleGuildCharacter.class differ
diff --git a/build/classes/net/server/guild/MapleGuildResponse.class b/build/classes/net/server/guild/MapleGuildResponse.class
new file mode 100644
index 0000000000..a43ef61dcd
Binary files /dev/null and b/build/classes/net/server/guild/MapleGuildResponse.class differ
diff --git a/build/classes/net/server/guild/MapleGuildSummary.class b/build/classes/net/server/guild/MapleGuildSummary.class
new file mode 100644
index 0000000000..75d9adf3e9
Binary files /dev/null and b/build/classes/net/server/guild/MapleGuildSummary.class differ
diff --git a/build/classes/net/server/handlers/CustomPacketHandler.class b/build/classes/net/server/handlers/CustomPacketHandler.class
new file mode 100644
index 0000000000..e62f27358a
Binary files /dev/null and b/build/classes/net/server/handlers/CustomPacketHandler.class differ
diff --git a/build/classes/net/server/handlers/KeepAliveHandler.class b/build/classes/net/server/handlers/KeepAliveHandler.class
new file mode 100644
index 0000000000..983c394baa
Binary files /dev/null and b/build/classes/net/server/handlers/KeepAliveHandler.class differ
diff --git a/build/classes/net/server/handlers/LoginRequiringNoOpHandler.class b/build/classes/net/server/handlers/LoginRequiringNoOpHandler.class
new file mode 100644
index 0000000000..0d51b0b757
Binary files /dev/null and b/build/classes/net/server/handlers/LoginRequiringNoOpHandler.class differ
diff --git a/build/classes/net/server/handlers/login/AcceptToSHandler.class b/build/classes/net/server/handlers/login/AcceptToSHandler.class
new file mode 100644
index 0000000000..91ed29a724
Binary files /dev/null and b/build/classes/net/server/handlers/login/AcceptToSHandler.class differ
diff --git a/build/classes/net/server/handlers/login/AfterLoginHandler.class b/build/classes/net/server/handlers/login/AfterLoginHandler.class
new file mode 100644
index 0000000000..60888ff864
Binary files /dev/null and b/build/classes/net/server/handlers/login/AfterLoginHandler.class differ
diff --git a/build/classes/net/server/handlers/login/CharSelectedHandler.class b/build/classes/net/server/handlers/login/CharSelectedHandler.class
new file mode 100644
index 0000000000..5b1e5fc25b
Binary files /dev/null and b/build/classes/net/server/handlers/login/CharSelectedHandler.class differ
diff --git a/build/classes/net/server/handlers/login/CharSelectedWithPicHandler.class b/build/classes/net/server/handlers/login/CharSelectedWithPicHandler.class
new file mode 100644
index 0000000000..3aceda8c2a
Binary files /dev/null and b/build/classes/net/server/handlers/login/CharSelectedWithPicHandler.class differ
diff --git a/build/classes/net/server/handlers/login/CharlistRequestHandler.class b/build/classes/net/server/handlers/login/CharlistRequestHandler.class
new file mode 100644
index 0000000000..a5e2c3733d
Binary files /dev/null and b/build/classes/net/server/handlers/login/CharlistRequestHandler.class differ
diff --git a/build/classes/net/server/handlers/login/CheckCharNameHandler.class b/build/classes/net/server/handlers/login/CheckCharNameHandler.class
new file mode 100644
index 0000000000..11954455ce
Binary files /dev/null and b/build/classes/net/server/handlers/login/CheckCharNameHandler.class differ
diff --git a/build/classes/net/server/handlers/login/CreateCharHandler.class b/build/classes/net/server/handlers/login/CreateCharHandler.class
new file mode 100644
index 0000000000..02130ba3f5
Binary files /dev/null and b/build/classes/net/server/handlers/login/CreateCharHandler.class differ
diff --git a/build/classes/net/server/handlers/login/DeleteCharHandler.class b/build/classes/net/server/handlers/login/DeleteCharHandler.class
new file mode 100644
index 0000000000..55b00dba1c
Binary files /dev/null and b/build/classes/net/server/handlers/login/DeleteCharHandler.class differ
diff --git a/build/classes/net/server/handlers/login/GuestLoginHandler.class b/build/classes/net/server/handlers/login/GuestLoginHandler.class
new file mode 100644
index 0000000000..2b45fbbf44
Binary files /dev/null and b/build/classes/net/server/handlers/login/GuestLoginHandler.class differ
diff --git a/build/classes/net/server/handlers/login/LoginPasswordHandler$1.class b/build/classes/net/server/handlers/login/LoginPasswordHandler$1.class
new file mode 100644
index 0000000000..b024095a70
Binary files /dev/null and b/build/classes/net/server/handlers/login/LoginPasswordHandler$1.class differ
diff --git a/build/classes/net/server/handlers/login/LoginPasswordHandler.class b/build/classes/net/server/handlers/login/LoginPasswordHandler.class
new file mode 100644
index 0000000000..23f4f7ab06
Binary files /dev/null and b/build/classes/net/server/handlers/login/LoginPasswordHandler.class differ
diff --git a/build/classes/net/server/handlers/login/PickCharHandler.class b/build/classes/net/server/handlers/login/PickCharHandler.class
new file mode 100644
index 0000000000..6b8c5c671a
Binary files /dev/null and b/build/classes/net/server/handlers/login/PickCharHandler.class differ
diff --git a/build/classes/net/server/handlers/login/RegisterPicHandler.class b/build/classes/net/server/handlers/login/RegisterPicHandler.class
new file mode 100644
index 0000000000..b60d06565f
Binary files /dev/null and b/build/classes/net/server/handlers/login/RegisterPicHandler.class differ
diff --git a/build/classes/net/server/handlers/login/RegisterPinHandler.class b/build/classes/net/server/handlers/login/RegisterPinHandler.class
new file mode 100644
index 0000000000..e9a12fffb2
Binary files /dev/null and b/build/classes/net/server/handlers/login/RegisterPinHandler.class differ
diff --git a/build/classes/net/server/handlers/login/RelogRequestHandler.class b/build/classes/net/server/handlers/login/RelogRequestHandler.class
new file mode 100644
index 0000000000..3aee84f562
Binary files /dev/null and b/build/classes/net/server/handlers/login/RelogRequestHandler.class differ
diff --git a/build/classes/net/server/handlers/login/ServerStatusRequestHandler.class b/build/classes/net/server/handlers/login/ServerStatusRequestHandler.class
new file mode 100644
index 0000000000..c4da12aa6e
Binary files /dev/null and b/build/classes/net/server/handlers/login/ServerStatusRequestHandler.class differ
diff --git a/build/classes/net/server/handlers/login/ServerlistRequestHandler.class b/build/classes/net/server/handlers/login/ServerlistRequestHandler.class
new file mode 100644
index 0000000000..ca9cba948d
Binary files /dev/null and b/build/classes/net/server/handlers/login/ServerlistRequestHandler.class differ
diff --git a/build/classes/net/server/handlers/login/SetGenderHandler$1.class b/build/classes/net/server/handlers/login/SetGenderHandler$1.class
new file mode 100644
index 0000000000..9f3cd60fdd
Binary files /dev/null and b/build/classes/net/server/handlers/login/SetGenderHandler$1.class differ
diff --git a/build/classes/net/server/handlers/login/SetGenderHandler.class b/build/classes/net/server/handlers/login/SetGenderHandler.class
new file mode 100644
index 0000000000..0c51aa4ead
Binary files /dev/null and b/build/classes/net/server/handlers/login/SetGenderHandler.class differ
diff --git a/build/classes/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.class b/build/classes/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.class
new file mode 100644
index 0000000000..77c072f59b
Binary files /dev/null and b/build/classes/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.class differ
diff --git a/build/classes/net/server/handlers/login/ViewAllPicRegisterHandler.class b/build/classes/net/server/handlers/login/ViewAllPicRegisterHandler.class
new file mode 100644
index 0000000000..ada40a4e2f
Binary files /dev/null and b/build/classes/net/server/handlers/login/ViewAllPicRegisterHandler.class differ
diff --git a/build/classes/net/server/handlers/login/ViewCharHandler.class b/build/classes/net/server/handlers/login/ViewCharHandler.class
new file mode 100644
index 0000000000..e7301e5095
Binary files /dev/null and b/build/classes/net/server/handlers/login/ViewCharHandler.class differ
diff --git a/build/classes/net/server/world/MapleMessenger.class b/build/classes/net/server/world/MapleMessenger.class
new file mode 100644
index 0000000000..f17e43682c
Binary files /dev/null and b/build/classes/net/server/world/MapleMessenger.class differ
diff --git a/build/classes/net/server/world/MapleMessengerCharacter.class b/build/classes/net/server/world/MapleMessengerCharacter.class
new file mode 100644
index 0000000000..fcf85720cd
Binary files /dev/null and b/build/classes/net/server/world/MapleMessengerCharacter.class differ
diff --git a/build/classes/net/server/world/MapleParty.class b/build/classes/net/server/world/MapleParty.class
new file mode 100644
index 0000000000..878b354cb1
Binary files /dev/null and b/build/classes/net/server/world/MapleParty.class differ
diff --git a/build/classes/net/server/world/MaplePartyCharacter.class b/build/classes/net/server/world/MaplePartyCharacter.class
new file mode 100644
index 0000000000..27bd0915c4
Binary files /dev/null and b/build/classes/net/server/world/MaplePartyCharacter.class differ
diff --git a/build/classes/net/server/world/PartyOperation.class b/build/classes/net/server/world/PartyOperation.class
new file mode 100644
index 0000000000..fdd0c6e2ab
Binary files /dev/null and b/build/classes/net/server/world/PartyOperation.class differ
diff --git a/build/classes/net/server/world/World$1.class b/build/classes/net/server/world/World$1.class
new file mode 100644
index 0000000000..7f55db4019
Binary files /dev/null and b/build/classes/net/server/world/World$1.class differ
diff --git a/build/classes/net/server/world/World.class b/build/classes/net/server/world/World.class
new file mode 100644
index 0000000000..4abf3be6fa
Binary files /dev/null and b/build/classes/net/server/world/World.class differ
diff --git a/build/classes/provider/MapleCanvas.class b/build/classes/provider/MapleCanvas.class
new file mode 100644
index 0000000000..d7092ffce4
Binary files /dev/null and b/build/classes/provider/MapleCanvas.class differ
diff --git a/build/classes/provider/MapleData.class b/build/classes/provider/MapleData.class
new file mode 100644
index 0000000000..c5a792da01
Binary files /dev/null and b/build/classes/provider/MapleData.class differ
diff --git a/build/classes/provider/MapleDataDirectoryEntry.class b/build/classes/provider/MapleDataDirectoryEntry.class
new file mode 100644
index 0000000000..19e0ae7962
Binary files /dev/null and b/build/classes/provider/MapleDataDirectoryEntry.class differ
diff --git a/build/classes/provider/MapleDataEntity.class b/build/classes/provider/MapleDataEntity.class
new file mode 100644
index 0000000000..5bf1ae264a
Binary files /dev/null and b/build/classes/provider/MapleDataEntity.class differ
diff --git a/build/classes/provider/MapleDataEntry.class b/build/classes/provider/MapleDataEntry.class
new file mode 100644
index 0000000000..5f01a8445d
Binary files /dev/null and b/build/classes/provider/MapleDataEntry.class differ
diff --git a/build/classes/provider/MapleDataFileEntry.class b/build/classes/provider/MapleDataFileEntry.class
new file mode 100644
index 0000000000..faa78f20ba
Binary files /dev/null and b/build/classes/provider/MapleDataFileEntry.class differ
diff --git a/build/classes/provider/MapleDataProvider.class b/build/classes/provider/MapleDataProvider.class
new file mode 100644
index 0000000000..57a50ce4d6
Binary files /dev/null and b/build/classes/provider/MapleDataProvider.class differ
diff --git a/build/classes/provider/MapleDataProviderFactory.class b/build/classes/provider/MapleDataProviderFactory.class
new file mode 100644
index 0000000000..59bc45f5d7
Binary files /dev/null and b/build/classes/provider/MapleDataProviderFactory.class differ
diff --git a/build/classes/provider/MapleDataTool.class b/build/classes/provider/MapleDataTool.class
new file mode 100644
index 0000000000..dd985b14f0
Binary files /dev/null and b/build/classes/provider/MapleDataTool.class differ
diff --git a/build/classes/provider/wz/FileStoredPngMapleCanvas.class b/build/classes/provider/wz/FileStoredPngMapleCanvas.class
new file mode 100644
index 0000000000..ef78c1756c
Binary files /dev/null and b/build/classes/provider/wz/FileStoredPngMapleCanvas.class differ
diff --git a/build/classes/provider/wz/ImgMapleSound.class b/build/classes/provider/wz/ImgMapleSound.class
new file mode 100644
index 0000000000..9d13e82bb5
Binary files /dev/null and b/build/classes/provider/wz/ImgMapleSound.class differ
diff --git a/build/classes/provider/wz/ListWZFile.class b/build/classes/provider/wz/ListWZFile.class
new file mode 100644
index 0000000000..9822dd6620
Binary files /dev/null and b/build/classes/provider/wz/ListWZFile.class differ
diff --git a/build/classes/provider/wz/MapleDataType.class b/build/classes/provider/wz/MapleDataType.class
new file mode 100644
index 0000000000..3f64817af3
Binary files /dev/null and b/build/classes/provider/wz/MapleDataType.class differ
diff --git a/build/classes/provider/wz/PNGMapleCanvas.class b/build/classes/provider/wz/PNGMapleCanvas.class
new file mode 100644
index 0000000000..f3b1c1c2f4
Binary files /dev/null and b/build/classes/provider/wz/PNGMapleCanvas.class differ
diff --git a/build/classes/provider/wz/WZDirectoryEntry.class b/build/classes/provider/wz/WZDirectoryEntry.class
new file mode 100644
index 0000000000..94871c9f10
Binary files /dev/null and b/build/classes/provider/wz/WZDirectoryEntry.class differ
diff --git a/build/classes/provider/wz/WZEntry.class b/build/classes/provider/wz/WZEntry.class
new file mode 100644
index 0000000000..3ccb7a03eb
Binary files /dev/null and b/build/classes/provider/wz/WZEntry.class differ
diff --git a/build/classes/provider/wz/WZFile.class b/build/classes/provider/wz/WZFile.class
new file mode 100644
index 0000000000..e0f768366c
Binary files /dev/null and b/build/classes/provider/wz/WZFile.class differ
diff --git a/build/classes/provider/wz/WZFileEntry.class b/build/classes/provider/wz/WZFileEntry.class
new file mode 100644
index 0000000000..9aed925d55
Binary files /dev/null and b/build/classes/provider/wz/WZFileEntry.class differ
diff --git a/build/classes/provider/wz/WZIMGEntry.class b/build/classes/provider/wz/WZIMGEntry.class
new file mode 100644
index 0000000000..b5f4d2c741
Binary files /dev/null and b/build/classes/provider/wz/WZIMGEntry.class differ
diff --git a/build/classes/provider/wz/WZIMGFile.class b/build/classes/provider/wz/WZIMGFile.class
new file mode 100644
index 0000000000..37159ddda1
Binary files /dev/null and b/build/classes/provider/wz/WZIMGFile.class differ
diff --git a/build/classes/provider/wz/WZTool.class b/build/classes/provider/wz/WZTool.class
new file mode 100644
index 0000000000..01619af699
Binary files /dev/null and b/build/classes/provider/wz/WZTool.class differ
diff --git a/build/classes/provider/wz/XMLDomMapleData$1.class b/build/classes/provider/wz/XMLDomMapleData$1.class
new file mode 100644
index 0000000000..32dab43725
Binary files /dev/null and b/build/classes/provider/wz/XMLDomMapleData$1.class differ
diff --git a/build/classes/provider/wz/XMLDomMapleData.class b/build/classes/provider/wz/XMLDomMapleData.class
new file mode 100644
index 0000000000..e0b9d3c233
Binary files /dev/null and b/build/classes/provider/wz/XMLDomMapleData.class differ
diff --git a/build/classes/provider/wz/XMLWZFile.class b/build/classes/provider/wz/XMLWZFile.class
new file mode 100644
index 0000000000..3c1ef8ac4d
Binary files /dev/null and b/build/classes/provider/wz/XMLWZFile.class differ
diff --git a/build/classes/scripting/AbstractPlayerInteraction.class b/build/classes/scripting/AbstractPlayerInteraction.class
new file mode 100644
index 0000000000..6555782e56
Binary files /dev/null and b/build/classes/scripting/AbstractPlayerInteraction.class differ
diff --git a/build/classes/scripting/AbstractScriptManager.class b/build/classes/scripting/AbstractScriptManager.class
new file mode 100644
index 0000000000..01ee7c855a
Binary files /dev/null and b/build/classes/scripting/AbstractScriptManager.class differ
diff --git a/build/classes/scripting/event/EventInstanceManager$1.class b/build/classes/scripting/event/EventInstanceManager$1.class
new file mode 100644
index 0000000000..435c687831
Binary files /dev/null and b/build/classes/scripting/event/EventInstanceManager$1.class differ
diff --git a/build/classes/scripting/event/EventInstanceManager$2.class b/build/classes/scripting/event/EventInstanceManager$2.class
new file mode 100644
index 0000000000..d57db27050
Binary files /dev/null and b/build/classes/scripting/event/EventInstanceManager$2.class differ
diff --git a/build/classes/scripting/event/EventInstanceManager$3.class b/build/classes/scripting/event/EventInstanceManager$3.class
new file mode 100644
index 0000000000..33d650348d
Binary files /dev/null and b/build/classes/scripting/event/EventInstanceManager$3.class differ
diff --git a/build/classes/scripting/event/EventInstanceManager.class b/build/classes/scripting/event/EventInstanceManager.class
new file mode 100644
index 0000000000..06aa2b793c
Binary files /dev/null and b/build/classes/scripting/event/EventInstanceManager.class differ
diff --git a/build/classes/scripting/event/EventManager$1.class b/build/classes/scripting/event/EventManager$1.class
new file mode 100644
index 0000000000..1fbcd7c95d
Binary files /dev/null and b/build/classes/scripting/event/EventManager$1.class differ
diff --git a/build/classes/scripting/event/EventManager$2.class b/build/classes/scripting/event/EventManager$2.class
new file mode 100644
index 0000000000..70168bca2d
Binary files /dev/null and b/build/classes/scripting/event/EventManager$2.class differ
diff --git a/build/classes/scripting/event/EventManager$3.class b/build/classes/scripting/event/EventManager$3.class
new file mode 100644
index 0000000000..c96c54c2d8
Binary files /dev/null and b/build/classes/scripting/event/EventManager$3.class differ
diff --git a/build/classes/scripting/event/EventManager.class b/build/classes/scripting/event/EventManager.class
new file mode 100644
index 0000000000..2ec2add60e
Binary files /dev/null and b/build/classes/scripting/event/EventManager.class differ
diff --git a/build/classes/scripting/event/EventScriptManager$EventEntry.class b/build/classes/scripting/event/EventScriptManager$EventEntry.class
new file mode 100644
index 0000000000..8a41fea326
Binary files /dev/null and b/build/classes/scripting/event/EventScriptManager$EventEntry.class differ
diff --git a/build/classes/scripting/event/EventScriptManager.class b/build/classes/scripting/event/EventScriptManager.class
new file mode 100644
index 0000000000..649e8ff0a6
Binary files /dev/null and b/build/classes/scripting/event/EventScriptManager.class differ
diff --git a/build/classes/scripting/item/ItemScriptManager.class b/build/classes/scripting/item/ItemScriptManager.class
new file mode 100644
index 0000000000..f15d153b38
Binary files /dev/null and b/build/classes/scripting/item/ItemScriptManager.class differ
diff --git a/build/classes/scripting/item/ItemScriptMethods.class b/build/classes/scripting/item/ItemScriptMethods.class
new file mode 100644
index 0000000000..6baea7bef1
Binary files /dev/null and b/build/classes/scripting/item/ItemScriptMethods.class differ
diff --git a/build/classes/scripting/map/MapScriptManager.class b/build/classes/scripting/map/MapScriptManager.class
new file mode 100644
index 0000000000..ed90e6b1f9
Binary files /dev/null and b/build/classes/scripting/map/MapScriptManager.class differ
diff --git a/build/classes/scripting/map/MapScriptMethods.class b/build/classes/scripting/map/MapScriptMethods.class
new file mode 100644
index 0000000000..a2fbf903ad
Binary files /dev/null and b/build/classes/scripting/map/MapScriptMethods.class differ
diff --git a/build/classes/scripting/npc/NPCConversationManager.class b/build/classes/scripting/npc/NPCConversationManager.class
new file mode 100644
index 0000000000..55ad1a9684
Binary files /dev/null and b/build/classes/scripting/npc/NPCConversationManager.class differ
diff --git a/build/classes/scripting/npc/NPCScriptManager.class b/build/classes/scripting/npc/NPCScriptManager.class
new file mode 100644
index 0000000000..42ff0a8d4c
Binary files /dev/null and b/build/classes/scripting/npc/NPCScriptManager.class differ
diff --git a/build/classes/scripting/portal/PortalPlayerInteraction.class b/build/classes/scripting/portal/PortalPlayerInteraction.class
new file mode 100644
index 0000000000..7374d3574b
Binary files /dev/null and b/build/classes/scripting/portal/PortalPlayerInteraction.class differ
diff --git a/build/classes/scripting/portal/PortalScript.class b/build/classes/scripting/portal/PortalScript.class
new file mode 100644
index 0000000000..10a2827f99
Binary files /dev/null and b/build/classes/scripting/portal/PortalScript.class differ
diff --git a/build/classes/scripting/portal/PortalScriptManager.class b/build/classes/scripting/portal/PortalScriptManager.class
new file mode 100644
index 0000000000..919e837898
Binary files /dev/null and b/build/classes/scripting/portal/PortalScriptManager.class differ
diff --git a/build/classes/scripting/quest/QuestActionManager.class b/build/classes/scripting/quest/QuestActionManager.class
new file mode 100644
index 0000000000..ae058624fe
Binary files /dev/null and b/build/classes/scripting/quest/QuestActionManager.class differ
diff --git a/build/classes/scripting/quest/QuestScriptManager.class b/build/classes/scripting/quest/QuestScriptManager.class
new file mode 100644
index 0000000000..19802a4a27
Binary files /dev/null and b/build/classes/scripting/quest/QuestScriptManager.class differ
diff --git a/build/classes/scripting/reactor/ReactorActionManager.class b/build/classes/scripting/reactor/ReactorActionManager.class
new file mode 100644
index 0000000000..fd85c69a9a
Binary files /dev/null and b/build/classes/scripting/reactor/ReactorActionManager.class differ
diff --git a/build/classes/scripting/reactor/ReactorScriptManager.class b/build/classes/scripting/reactor/ReactorScriptManager.class
new file mode 100644
index 0000000000..dd3c82bc34
Binary files /dev/null and b/build/classes/scripting/reactor/ReactorScriptManager.class differ
diff --git a/build/classes/server/CashShop$1.class b/build/classes/server/CashShop$1.class
new file mode 100644
index 0000000000..371a6f7fa9
Binary files /dev/null and b/build/classes/server/CashShop$1.class differ
diff --git a/build/classes/server/CashShop$CashItem.class b/build/classes/server/CashShop$CashItem.class
new file mode 100644
index 0000000000..ebd945202e
Binary files /dev/null and b/build/classes/server/CashShop$CashItem.class differ
diff --git a/build/classes/server/CashShop$CashItemFactory.class b/build/classes/server/CashShop$CashItemFactory.class
new file mode 100644
index 0000000000..5e8c210d89
Binary files /dev/null and b/build/classes/server/CashShop$CashItemFactory.class differ
diff --git a/build/classes/server/CashShop$SpecialCashItem.class b/build/classes/server/CashShop$SpecialCashItem.class
new file mode 100644
index 0000000000..8edc06c686
Binary files /dev/null and b/build/classes/server/CashShop$SpecialCashItem.class differ
diff --git a/build/classes/server/CashShop.class b/build/classes/server/CashShop.class
new file mode 100644
index 0000000000..69a7ed91a4
Binary files /dev/null and b/build/classes/server/CashShop.class differ
diff --git a/build/classes/server/DueyPackages.class b/build/classes/server/DueyPackages.class
new file mode 100644
index 0000000000..6cb753d8a1
Binary files /dev/null and b/build/classes/server/DueyPackages.class differ
diff --git a/build/classes/server/MTSItemInfo.class b/build/classes/server/MTSItemInfo.class
new file mode 100644
index 0000000000..f2f3098ffe
Binary files /dev/null and b/build/classes/server/MTSItemInfo.class differ
diff --git a/build/classes/server/MakerItemFactory$1.class b/build/classes/server/MakerItemFactory$1.class
new file mode 100644
index 0000000000..a14b53068e
Binary files /dev/null and b/build/classes/server/MakerItemFactory$1.class differ
diff --git a/build/classes/server/MakerItemFactory$MakerItemCreateEntry.class b/build/classes/server/MakerItemFactory$MakerItemCreateEntry.class
new file mode 100644
index 0000000000..e3b05ef732
Binary files /dev/null and b/build/classes/server/MakerItemFactory$MakerItemCreateEntry.class differ
diff --git a/build/classes/server/MakerItemFactory.class b/build/classes/server/MakerItemFactory.class
new file mode 100644
index 0000000000..d20dec477b
Binary files /dev/null and b/build/classes/server/MakerItemFactory.class differ
diff --git a/build/classes/server/MapleInventoryManipulator.class b/build/classes/server/MapleInventoryManipulator.class
new file mode 100644
index 0000000000..da33036fae
Binary files /dev/null and b/build/classes/server/MapleInventoryManipulator.class differ
diff --git a/build/classes/server/MapleItemInformationProvider$1.class b/build/classes/server/MapleItemInformationProvider$1.class
new file mode 100644
index 0000000000..78b1e2e6e9
Binary files /dev/null and b/build/classes/server/MapleItemInformationProvider$1.class differ
diff --git a/build/classes/server/MapleItemInformationProvider$RewardItem.class b/build/classes/server/MapleItemInformationProvider$RewardItem.class
new file mode 100644
index 0000000000..e5eb2c33e7
Binary files /dev/null and b/build/classes/server/MapleItemInformationProvider$RewardItem.class differ
diff --git a/build/classes/server/MapleItemInformationProvider$scriptedItem.class b/build/classes/server/MapleItemInformationProvider$scriptedItem.class
new file mode 100644
index 0000000000..cb9a96e5fd
Binary files /dev/null and b/build/classes/server/MapleItemInformationProvider$scriptedItem.class differ
diff --git a/build/classes/server/MapleItemInformationProvider.class b/build/classes/server/MapleItemInformationProvider.class
new file mode 100644
index 0000000000..338d0dbaf1
Binary files /dev/null and b/build/classes/server/MapleItemInformationProvider.class differ
diff --git a/build/classes/server/MapleMiniGame.class b/build/classes/server/MapleMiniGame.class
new file mode 100644
index 0000000000..69e137062d
Binary files /dev/null and b/build/classes/server/MapleMiniGame.class differ
diff --git a/build/classes/server/MaplePlayerShop.class b/build/classes/server/MaplePlayerShop.class
new file mode 100644
index 0000000000..3e8d7ef58f
Binary files /dev/null and b/build/classes/server/MaplePlayerShop.class differ
diff --git a/build/classes/server/MaplePlayerShopItem.class b/build/classes/server/MaplePlayerShopItem.class
new file mode 100644
index 0000000000..42772dfa4f
Binary files /dev/null and b/build/classes/server/MaplePlayerShopItem.class differ
diff --git a/build/classes/server/MaplePortal.class b/build/classes/server/MaplePortal.class
new file mode 100644
index 0000000000..c74c236338
Binary files /dev/null and b/build/classes/server/MaplePortal.class differ
diff --git a/build/classes/server/MapleShop.class b/build/classes/server/MapleShop.class
new file mode 100644
index 0000000000..f7350cb27d
Binary files /dev/null and b/build/classes/server/MapleShop.class differ
diff --git a/build/classes/server/MapleShopFactory.class b/build/classes/server/MapleShopFactory.class
new file mode 100644
index 0000000000..c3b3153130
Binary files /dev/null and b/build/classes/server/MapleShopFactory.class differ
diff --git a/build/classes/server/MapleShopItem.class b/build/classes/server/MapleShopItem.class
new file mode 100644
index 0000000000..b28eac1bb0
Binary files /dev/null and b/build/classes/server/MapleShopItem.class differ
diff --git a/build/classes/server/MapleStatEffect$CancelEffectAction.class b/build/classes/server/MapleStatEffect$CancelEffectAction.class
new file mode 100644
index 0000000000..afff570c99
Binary files /dev/null and b/build/classes/server/MapleStatEffect$CancelEffectAction.class differ
diff --git a/build/classes/server/MapleStatEffect.class b/build/classes/server/MapleStatEffect.class
new file mode 100644
index 0000000000..a85a9d691a
Binary files /dev/null and b/build/classes/server/MapleStatEffect.class differ
diff --git a/build/classes/server/MapleStorage$1.class b/build/classes/server/MapleStorage$1.class
new file mode 100644
index 0000000000..7b9bc75800
Binary files /dev/null and b/build/classes/server/MapleStorage$1.class differ
diff --git a/build/classes/server/MapleStorage.class b/build/classes/server/MapleStorage.class
new file mode 100644
index 0000000000..dd3e186371
Binary files /dev/null and b/build/classes/server/MapleStorage.class differ
diff --git a/build/classes/server/MapleTrade.class b/build/classes/server/MapleTrade.class
new file mode 100644
index 0000000000..5b6481ce26
Binary files /dev/null and b/build/classes/server/MapleTrade.class differ
diff --git a/build/classes/server/PortalFactory.class b/build/classes/server/PortalFactory.class
new file mode 100644
index 0000000000..345ae755f0
Binary files /dev/null and b/build/classes/server/PortalFactory.class differ
diff --git a/build/classes/server/TimerManager$1.class b/build/classes/server/TimerManager$1.class
new file mode 100644
index 0000000000..af917a4fd9
Binary files /dev/null and b/build/classes/server/TimerManager$1.class differ
diff --git a/build/classes/server/TimerManager$2.class b/build/classes/server/TimerManager$2.class
new file mode 100644
index 0000000000..e9683dd013
Binary files /dev/null and b/build/classes/server/TimerManager$2.class differ
diff --git a/build/classes/server/TimerManager$LoggingSaveRunnable.class b/build/classes/server/TimerManager$LoggingSaveRunnable.class
new file mode 100644
index 0000000000..79167790f2
Binary files /dev/null and b/build/classes/server/TimerManager$LoggingSaveRunnable.class differ
diff --git a/build/classes/server/TimerManager.class b/build/classes/server/TimerManager.class
new file mode 100644
index 0000000000..2aa3bcfaa8
Binary files /dev/null and b/build/classes/server/TimerManager.class differ
diff --git a/build/classes/server/TimerManagerMBean.class b/build/classes/server/TimerManagerMBean.class
new file mode 100644
index 0000000000..5e7ff8c2f1
Binary files /dev/null and b/build/classes/server/TimerManagerMBean.class differ
diff --git a/build/classes/server/events/BalrogPQ$1.class b/build/classes/server/events/BalrogPQ$1.class
new file mode 100644
index 0000000000..6206972d48
Binary files /dev/null and b/build/classes/server/events/BalrogPQ$1.class differ
diff --git a/build/classes/server/events/BalrogPQ$2.class b/build/classes/server/events/BalrogPQ$2.class
new file mode 100644
index 0000000000..d1746ea974
Binary files /dev/null and b/build/classes/server/events/BalrogPQ$2.class differ
diff --git a/build/classes/server/events/BalrogPQ.class b/build/classes/server/events/BalrogPQ.class
new file mode 100644
index 0000000000..c6170c67f9
Binary files /dev/null and b/build/classes/server/events/BalrogPQ.class differ
diff --git a/build/classes/server/events/MapleEvents.class b/build/classes/server/events/MapleEvents.class
new file mode 100644
index 0000000000..f668a2c2ec
Binary files /dev/null and b/build/classes/server/events/MapleEvents.class differ
diff --git a/build/classes/server/events/RescueGaga.class b/build/classes/server/events/RescueGaga.class
new file mode 100644
index 0000000000..f6a9040c34
Binary files /dev/null and b/build/classes/server/events/RescueGaga.class differ
diff --git a/build/classes/server/events/gm/MapleCoconut$1.class b/build/classes/server/events/gm/MapleCoconut$1.class
new file mode 100644
index 0000000000..b81c135cdf
Binary files /dev/null and b/build/classes/server/events/gm/MapleCoconut$1.class differ
diff --git a/build/classes/server/events/gm/MapleCoconut$2.class b/build/classes/server/events/gm/MapleCoconut$2.class
new file mode 100644
index 0000000000..838315a05c
Binary files /dev/null and b/build/classes/server/events/gm/MapleCoconut$2.class differ
diff --git a/build/classes/server/events/gm/MapleCoconut$3.class b/build/classes/server/events/gm/MapleCoconut$3.class
new file mode 100644
index 0000000000..224dc472c8
Binary files /dev/null and b/build/classes/server/events/gm/MapleCoconut$3.class differ
diff --git a/build/classes/server/events/gm/MapleCoconut.class b/build/classes/server/events/gm/MapleCoconut.class
new file mode 100644
index 0000000000..2d9e409529
Binary files /dev/null and b/build/classes/server/events/gm/MapleCoconut.class differ
diff --git a/build/classes/server/events/gm/MapleCoconuts.class b/build/classes/server/events/gm/MapleCoconuts.class
new file mode 100644
index 0000000000..ebc84c5a45
Binary files /dev/null and b/build/classes/server/events/gm/MapleCoconuts.class differ
diff --git a/build/classes/server/events/gm/MapleEvent.class b/build/classes/server/events/gm/MapleEvent.class
new file mode 100644
index 0000000000..ea9a3d620b
Binary files /dev/null and b/build/classes/server/events/gm/MapleEvent.class differ
diff --git a/build/classes/server/events/gm/MapleFitness$1.class b/build/classes/server/events/gm/MapleFitness$1.class
new file mode 100644
index 0000000000..5a10f11835
Binary files /dev/null and b/build/classes/server/events/gm/MapleFitness$1.class differ
diff --git a/build/classes/server/events/gm/MapleFitness$2.class b/build/classes/server/events/gm/MapleFitness$2.class
new file mode 100644
index 0000000000..b8e474f807
Binary files /dev/null and b/build/classes/server/events/gm/MapleFitness$2.class differ
diff --git a/build/classes/server/events/gm/MapleFitness.class b/build/classes/server/events/gm/MapleFitness.class
new file mode 100644
index 0000000000..c8bde834ee
Binary files /dev/null and b/build/classes/server/events/gm/MapleFitness.class differ
diff --git a/build/classes/server/events/gm/MapleOla$1.class b/build/classes/server/events/gm/MapleOla$1.class
new file mode 100644
index 0000000000..264c138cf2
Binary files /dev/null and b/build/classes/server/events/gm/MapleOla$1.class differ
diff --git a/build/classes/server/events/gm/MapleOla.class b/build/classes/server/events/gm/MapleOla.class
new file mode 100644
index 0000000000..8ea663132f
Binary files /dev/null and b/build/classes/server/events/gm/MapleOla.class differ
diff --git a/build/classes/server/events/gm/MapleOxQuiz$1.class b/build/classes/server/events/gm/MapleOxQuiz$1.class
new file mode 100644
index 0000000000..96dea40ce2
Binary files /dev/null and b/build/classes/server/events/gm/MapleOxQuiz$1.class differ
diff --git a/build/classes/server/events/gm/MapleOxQuiz.class b/build/classes/server/events/gm/MapleOxQuiz.class
new file mode 100644
index 0000000000..0dbee82509
Binary files /dev/null and b/build/classes/server/events/gm/MapleOxQuiz.class differ
diff --git a/build/classes/server/events/gm/MapleSnowball$1.class b/build/classes/server/events/gm/MapleSnowball$1.class
new file mode 100644
index 0000000000..30359079a7
Binary files /dev/null and b/build/classes/server/events/gm/MapleSnowball$1.class differ
diff --git a/build/classes/server/events/gm/MapleSnowball$2.class b/build/classes/server/events/gm/MapleSnowball$2.class
new file mode 100644
index 0000000000..c5c2ead7a5
Binary files /dev/null and b/build/classes/server/events/gm/MapleSnowball$2.class differ
diff --git a/build/classes/server/events/gm/MapleSnowball$3.class b/build/classes/server/events/gm/MapleSnowball$3.class
new file mode 100644
index 0000000000..5408bb6cd2
Binary files /dev/null and b/build/classes/server/events/gm/MapleSnowball$3.class differ
diff --git a/build/classes/server/events/gm/MapleSnowball.class b/build/classes/server/events/gm/MapleSnowball.class
new file mode 100644
index 0000000000..8dad769c85
Binary files /dev/null and b/build/classes/server/events/gm/MapleSnowball.class differ
diff --git a/build/classes/server/expeditions/MapleExpedition$1.class b/build/classes/server/expeditions/MapleExpedition$1.class
new file mode 100644
index 0000000000..cafc02c22f
Binary files /dev/null and b/build/classes/server/expeditions/MapleExpedition$1.class differ
diff --git a/build/classes/server/expeditions/MapleExpedition.class b/build/classes/server/expeditions/MapleExpedition.class
new file mode 100644
index 0000000000..5614dff290
Binary files /dev/null and b/build/classes/server/expeditions/MapleExpedition.class differ
diff --git a/build/classes/server/expeditions/MapleExpeditionType.class b/build/classes/server/expeditions/MapleExpeditionType.class
new file mode 100644
index 0000000000..ea4bf85e74
Binary files /dev/null and b/build/classes/server/expeditions/MapleExpeditionType.class differ
diff --git a/build/classes/server/gachapon/Ellinia.class b/build/classes/server/gachapon/Ellinia.class
new file mode 100644
index 0000000000..9d72a50c34
Binary files /dev/null and b/build/classes/server/gachapon/Ellinia.class differ
diff --git a/build/classes/server/gachapon/GachaponItems.class b/build/classes/server/gachapon/GachaponItems.class
new file mode 100644
index 0000000000..ff481fc659
Binary files /dev/null and b/build/classes/server/gachapon/GachaponItems.class differ
diff --git a/build/classes/server/gachapon/Global.class b/build/classes/server/gachapon/Global.class
new file mode 100644
index 0000000000..2d35668482
Binary files /dev/null and b/build/classes/server/gachapon/Global.class differ
diff --git a/build/classes/server/gachapon/Henesys.class b/build/classes/server/gachapon/Henesys.class
new file mode 100644
index 0000000000..12aa3a6a34
Binary files /dev/null and b/build/classes/server/gachapon/Henesys.class differ
diff --git a/build/classes/server/gachapon/KerningCity.class b/build/classes/server/gachapon/KerningCity.class
new file mode 100644
index 0000000000..ac9ff378d0
Binary files /dev/null and b/build/classes/server/gachapon/KerningCity.class differ
diff --git a/build/classes/server/gachapon/MapleGachapon$Gachapon.class b/build/classes/server/gachapon/MapleGachapon$Gachapon.class
new file mode 100644
index 0000000000..29a13ce945
Binary files /dev/null and b/build/classes/server/gachapon/MapleGachapon$Gachapon.class differ
diff --git a/build/classes/server/gachapon/MapleGachapon$MapleGachaponItem.class b/build/classes/server/gachapon/MapleGachapon$MapleGachaponItem.class
new file mode 100644
index 0000000000..2c31dd61dc
Binary files /dev/null and b/build/classes/server/gachapon/MapleGachapon$MapleGachaponItem.class differ
diff --git a/build/classes/server/gachapon/MapleGachapon.class b/build/classes/server/gachapon/MapleGachapon.class
new file mode 100644
index 0000000000..987018eea5
Binary files /dev/null and b/build/classes/server/gachapon/MapleGachapon.class differ
diff --git a/build/classes/server/gachapon/MushroomShrine.class b/build/classes/server/gachapon/MushroomShrine.class
new file mode 100644
index 0000000000..6bbe7e569b
Binary files /dev/null and b/build/classes/server/gachapon/MushroomShrine.class differ
diff --git a/build/classes/server/gachapon/NautilusHarbor.class b/build/classes/server/gachapon/NautilusHarbor.class
new file mode 100644
index 0000000000..08efdacff4
Binary files /dev/null and b/build/classes/server/gachapon/NautilusHarbor.class differ
diff --git a/build/classes/server/gachapon/NewLeafCity.class b/build/classes/server/gachapon/NewLeafCity.class
new file mode 100644
index 0000000000..a6803e46a1
Binary files /dev/null and b/build/classes/server/gachapon/NewLeafCity.class differ
diff --git a/build/classes/server/gachapon/Perion.class b/build/classes/server/gachapon/Perion.class
new file mode 100644
index 0000000000..bd3d65eb6a
Binary files /dev/null and b/build/classes/server/gachapon/Perion.class differ
diff --git a/build/classes/server/gachapon/ShowaSpaFemale.class b/build/classes/server/gachapon/ShowaSpaFemale.class
new file mode 100644
index 0000000000..a96a2f904a
Binary files /dev/null and b/build/classes/server/gachapon/ShowaSpaFemale.class differ
diff --git a/build/classes/server/gachapon/ShowaSpaMale.class b/build/classes/server/gachapon/ShowaSpaMale.class
new file mode 100644
index 0000000000..21e62f1c57
Binary files /dev/null and b/build/classes/server/gachapon/ShowaSpaMale.class differ
diff --git a/build/classes/server/gachapon/Sleepywood.class b/build/classes/server/gachapon/Sleepywood.class
new file mode 100644
index 0000000000..411e166a9b
Binary files /dev/null and b/build/classes/server/gachapon/Sleepywood.class differ
diff --git a/build/classes/server/life/AbstractLoadedMapleLife.class b/build/classes/server/life/AbstractLoadedMapleLife.class
new file mode 100644
index 0000000000..8b66b73891
Binary files /dev/null and b/build/classes/server/life/AbstractLoadedMapleLife.class differ
diff --git a/build/classes/server/life/ChangeableStats.class b/build/classes/server/life/ChangeableStats.class
new file mode 100644
index 0000000000..c932038940
Binary files /dev/null and b/build/classes/server/life/ChangeableStats.class differ
diff --git a/build/classes/server/life/Element.class b/build/classes/server/life/Element.class
new file mode 100644
index 0000000000..d8a53b38e8
Binary files /dev/null and b/build/classes/server/life/Element.class differ
diff --git a/build/classes/server/life/ElementalEffectiveness.class b/build/classes/server/life/ElementalEffectiveness.class
new file mode 100644
index 0000000000..aa50eb15e8
Binary files /dev/null and b/build/classes/server/life/ElementalEffectiveness.class differ
diff --git a/build/classes/server/life/MapleLifeFactory$1.class b/build/classes/server/life/MapleLifeFactory$1.class
new file mode 100644
index 0000000000..a8b1bee62c
Binary files /dev/null and b/build/classes/server/life/MapleLifeFactory$1.class differ
diff --git a/build/classes/server/life/MapleLifeFactory$BanishInfo.class b/build/classes/server/life/MapleLifeFactory$BanishInfo.class
new file mode 100644
index 0000000000..da99b5b0b7
Binary files /dev/null and b/build/classes/server/life/MapleLifeFactory$BanishInfo.class differ
diff --git a/build/classes/server/life/MapleLifeFactory$loseItem.class b/build/classes/server/life/MapleLifeFactory$loseItem.class
new file mode 100644
index 0000000000..90cb92865f
Binary files /dev/null and b/build/classes/server/life/MapleLifeFactory$loseItem.class differ
diff --git a/build/classes/server/life/MapleLifeFactory$selfDestruction.class b/build/classes/server/life/MapleLifeFactory$selfDestruction.class
new file mode 100644
index 0000000000..7d342cf72e
Binary files /dev/null and b/build/classes/server/life/MapleLifeFactory$selfDestruction.class differ
diff --git a/build/classes/server/life/MapleLifeFactory.class b/build/classes/server/life/MapleLifeFactory.class
new file mode 100644
index 0000000000..d02c73679b
Binary files /dev/null and b/build/classes/server/life/MapleLifeFactory.class differ
diff --git a/build/classes/server/life/MapleMonster$1.class b/build/classes/server/life/MapleMonster$1.class
new file mode 100644
index 0000000000..dde1cb8422
Binary files /dev/null and b/build/classes/server/life/MapleMonster$1.class differ
diff --git a/build/classes/server/life/MapleMonster$2.class b/build/classes/server/life/MapleMonster$2.class
new file mode 100644
index 0000000000..375c34b4d8
Binary files /dev/null and b/build/classes/server/life/MapleMonster$2.class differ
diff --git a/build/classes/server/life/MapleMonster$3.class b/build/classes/server/life/MapleMonster$3.class
new file mode 100644
index 0000000000..9073f15ffc
Binary files /dev/null and b/build/classes/server/life/MapleMonster$3.class differ
diff --git a/build/classes/server/life/MapleMonster$4.class b/build/classes/server/life/MapleMonster$4.class
new file mode 100644
index 0000000000..75c442b914
Binary files /dev/null and b/build/classes/server/life/MapleMonster$4.class differ
diff --git a/build/classes/server/life/MapleMonster$5.class b/build/classes/server/life/MapleMonster$5.class
new file mode 100644
index 0000000000..e18feb1c74
Binary files /dev/null and b/build/classes/server/life/MapleMonster$5.class differ
diff --git a/build/classes/server/life/MapleMonster$6.class b/build/classes/server/life/MapleMonster$6.class
new file mode 100644
index 0000000000..a23534add4
Binary files /dev/null and b/build/classes/server/life/MapleMonster$6.class differ
diff --git a/build/classes/server/life/MapleMonster$DamageTask.class b/build/classes/server/life/MapleMonster$DamageTask.class
new file mode 100644
index 0000000000..123400de1a
Binary files /dev/null and b/build/classes/server/life/MapleMonster$DamageTask.class differ
diff --git a/build/classes/server/life/MapleMonster.class b/build/classes/server/life/MapleMonster.class
new file mode 100644
index 0000000000..9ec2fb43fc
Binary files /dev/null and b/build/classes/server/life/MapleMonster.class differ
diff --git a/build/classes/server/life/MapleMonsterInformationProvider.class b/build/classes/server/life/MapleMonsterInformationProvider.class
new file mode 100644
index 0000000000..3cb432d520
Binary files /dev/null and b/build/classes/server/life/MapleMonsterInformationProvider.class differ
diff --git a/build/classes/server/life/MapleMonsterStats.class b/build/classes/server/life/MapleMonsterStats.class
new file mode 100644
index 0000000000..f714c91007
Binary files /dev/null and b/build/classes/server/life/MapleMonsterStats.class differ
diff --git a/build/classes/server/life/MapleNPC.class b/build/classes/server/life/MapleNPC.class
new file mode 100644
index 0000000000..3f178a32ad
Binary files /dev/null and b/build/classes/server/life/MapleNPC.class differ
diff --git a/build/classes/server/life/MapleNPCStats.class b/build/classes/server/life/MapleNPCStats.class
new file mode 100644
index 0000000000..482fa06fc9
Binary files /dev/null and b/build/classes/server/life/MapleNPCStats.class differ
diff --git a/build/classes/server/life/MobAttackInfo.class b/build/classes/server/life/MobAttackInfo.class
new file mode 100644
index 0000000000..28d62a31f9
Binary files /dev/null and b/build/classes/server/life/MobAttackInfo.class differ
diff --git a/build/classes/server/life/MobAttackInfoFactory.class b/build/classes/server/life/MobAttackInfoFactory.class
new file mode 100644
index 0000000000..89b70d7f7e
Binary files /dev/null and b/build/classes/server/life/MobAttackInfoFactory.class differ
diff --git a/build/classes/server/life/MobSkill.class b/build/classes/server/life/MobSkill.class
new file mode 100644
index 0000000000..a5236c1fea
Binary files /dev/null and b/build/classes/server/life/MobSkill.class differ
diff --git a/build/classes/server/life/MobSkillFactory.class b/build/classes/server/life/MobSkillFactory.class
new file mode 100644
index 0000000000..c20e7edede
Binary files /dev/null and b/build/classes/server/life/MobSkillFactory.class differ
diff --git a/build/classes/server/life/MonsterDropEntry.class b/build/classes/server/life/MonsterDropEntry.class
new file mode 100644
index 0000000000..8afd0a5bad
Binary files /dev/null and b/build/classes/server/life/MonsterDropEntry.class differ
diff --git a/build/classes/server/life/MonsterGlobalDropEntry.class b/build/classes/server/life/MonsterGlobalDropEntry.class
new file mode 100644
index 0000000000..47aab082a8
Binary files /dev/null and b/build/classes/server/life/MonsterGlobalDropEntry.class differ
diff --git a/build/classes/server/life/MonsterListener.class b/build/classes/server/life/MonsterListener.class
new file mode 100644
index 0000000000..991837122b
Binary files /dev/null and b/build/classes/server/life/MonsterListener.class differ
diff --git a/build/classes/server/life/OverrideMonsterStats.class b/build/classes/server/life/OverrideMonsterStats.class
new file mode 100644
index 0000000000..1525bc636a
Binary files /dev/null and b/build/classes/server/life/OverrideMonsterStats.class differ
diff --git a/build/classes/server/life/SpawnPoint$1.class b/build/classes/server/life/SpawnPoint$1.class
new file mode 100644
index 0000000000..3d16cd228f
Binary files /dev/null and b/build/classes/server/life/SpawnPoint$1.class differ
diff --git a/build/classes/server/life/SpawnPoint.class b/build/classes/server/life/SpawnPoint.class
new file mode 100644
index 0000000000..148af2ab11
Binary files /dev/null and b/build/classes/server/life/SpawnPoint.class differ
diff --git a/build/classes/server/maps/AbstractAnimatedMapleMapObject.class b/build/classes/server/maps/AbstractAnimatedMapleMapObject.class
new file mode 100644
index 0000000000..ab199aea0e
Binary files /dev/null and b/build/classes/server/maps/AbstractAnimatedMapleMapObject.class differ
diff --git a/build/classes/server/maps/AbstractMapleMapObject.class b/build/classes/server/maps/AbstractMapleMapObject.class
new file mode 100644
index 0000000000..4ed88ca78b
Binary files /dev/null and b/build/classes/server/maps/AbstractMapleMapObject.class differ
diff --git a/build/classes/server/maps/AnimatedMapleMapObject.class b/build/classes/server/maps/AnimatedMapleMapObject.class
new file mode 100644
index 0000000000..28782cdde9
Binary files /dev/null and b/build/classes/server/maps/AnimatedMapleMapObject.class differ
diff --git a/build/classes/server/maps/FieldLimit.class b/build/classes/server/maps/FieldLimit.class
new file mode 100644
index 0000000000..94f446fcb5
Binary files /dev/null and b/build/classes/server/maps/FieldLimit.class differ
diff --git a/build/classes/server/maps/HiredMerchant$1.class b/build/classes/server/maps/HiredMerchant$1.class
new file mode 100644
index 0000000000..7674d57d27
Binary files /dev/null and b/build/classes/server/maps/HiredMerchant$1.class differ
diff --git a/build/classes/server/maps/HiredMerchant$SoldItem.class b/build/classes/server/maps/HiredMerchant$SoldItem.class
new file mode 100644
index 0000000000..7c12f01051
Binary files /dev/null and b/build/classes/server/maps/HiredMerchant$SoldItem.class differ
diff --git a/build/classes/server/maps/HiredMerchant.class b/build/classes/server/maps/HiredMerchant.class
new file mode 100644
index 0000000000..fc6d7aa910
Binary files /dev/null and b/build/classes/server/maps/HiredMerchant.class differ
diff --git a/build/classes/server/maps/MapMonitor$1.class b/build/classes/server/maps/MapMonitor$1.class
new file mode 100644
index 0000000000..64867042c0
Binary files /dev/null and b/build/classes/server/maps/MapMonitor$1.class differ
diff --git a/build/classes/server/maps/MapMonitor.class b/build/classes/server/maps/MapMonitor.class
new file mode 100644
index 0000000000..4aba8aa818
Binary files /dev/null and b/build/classes/server/maps/MapMonitor.class differ
diff --git a/build/classes/server/maps/MapleDoor$1.class b/build/classes/server/maps/MapleDoor$1.class
new file mode 100644
index 0000000000..5d7bb1d02d
Binary files /dev/null and b/build/classes/server/maps/MapleDoor$1.class differ
diff --git a/build/classes/server/maps/MapleDoor.class b/build/classes/server/maps/MapleDoor.class
new file mode 100644
index 0000000000..53e1c89a60
Binary files /dev/null and b/build/classes/server/maps/MapleDoor.class differ
diff --git a/build/classes/server/maps/MapleDragon.class b/build/classes/server/maps/MapleDragon.class
new file mode 100644
index 0000000000..7e660fb942
Binary files /dev/null and b/build/classes/server/maps/MapleDragon.class differ
diff --git a/build/classes/server/maps/MapleFoothold.class b/build/classes/server/maps/MapleFoothold.class
new file mode 100644
index 0000000000..3d48216caa
Binary files /dev/null and b/build/classes/server/maps/MapleFoothold.class differ
diff --git a/build/classes/server/maps/MapleFootholdTree.class b/build/classes/server/maps/MapleFootholdTree.class
new file mode 100644
index 0000000000..fcc96ebab0
Binary files /dev/null and b/build/classes/server/maps/MapleFootholdTree.class differ
diff --git a/build/classes/server/maps/MapleGenericPortal.class b/build/classes/server/maps/MapleGenericPortal.class
new file mode 100644
index 0000000000..dde9c02451
Binary files /dev/null and b/build/classes/server/maps/MapleGenericPortal.class differ
diff --git a/build/classes/server/maps/MapleMap$1.class b/build/classes/server/maps/MapleMap$1.class
new file mode 100644
index 0000000000..a4366d4984
Binary files /dev/null and b/build/classes/server/maps/MapleMap$1.class differ
diff --git a/build/classes/server/maps/MapleMap$10.class b/build/classes/server/maps/MapleMap$10.class
new file mode 100644
index 0000000000..3ded41b7ec
Binary files /dev/null and b/build/classes/server/maps/MapleMap$10.class differ
diff --git a/build/classes/server/maps/MapleMap$11.class b/build/classes/server/maps/MapleMap$11.class
new file mode 100644
index 0000000000..74d2cdb6f2
Binary files /dev/null and b/build/classes/server/maps/MapleMap$11.class differ
diff --git a/build/classes/server/maps/MapleMap$12.class b/build/classes/server/maps/MapleMap$12.class
new file mode 100644
index 0000000000..3d9fbfd830
Binary files /dev/null and b/build/classes/server/maps/MapleMap$12.class differ
diff --git a/build/classes/server/maps/MapleMap$13.class b/build/classes/server/maps/MapleMap$13.class
new file mode 100644
index 0000000000..5bbd57c0a7
Binary files /dev/null and b/build/classes/server/maps/MapleMap$13.class differ
diff --git a/build/classes/server/maps/MapleMap$14.class b/build/classes/server/maps/MapleMap$14.class
new file mode 100644
index 0000000000..c679003891
Binary files /dev/null and b/build/classes/server/maps/MapleMap$14.class differ
diff --git a/build/classes/server/maps/MapleMap$15.class b/build/classes/server/maps/MapleMap$15.class
new file mode 100644
index 0000000000..42d843f6dc
Binary files /dev/null and b/build/classes/server/maps/MapleMap$15.class differ
diff --git a/build/classes/server/maps/MapleMap$16.class b/build/classes/server/maps/MapleMap$16.class
new file mode 100644
index 0000000000..3ae4e07fed
Binary files /dev/null and b/build/classes/server/maps/MapleMap$16.class differ
diff --git a/build/classes/server/maps/MapleMap$17.class b/build/classes/server/maps/MapleMap$17.class
new file mode 100644
index 0000000000..381f1e80de
Binary files /dev/null and b/build/classes/server/maps/MapleMap$17.class differ
diff --git a/build/classes/server/maps/MapleMap$18.class b/build/classes/server/maps/MapleMap$18.class
new file mode 100644
index 0000000000..37d9583577
Binary files /dev/null and b/build/classes/server/maps/MapleMap$18.class differ
diff --git a/build/classes/server/maps/MapleMap$19.class b/build/classes/server/maps/MapleMap$19.class
new file mode 100644
index 0000000000..f3a51a2047
Binary files /dev/null and b/build/classes/server/maps/MapleMap$19.class differ
diff --git a/build/classes/server/maps/MapleMap$2.class b/build/classes/server/maps/MapleMap$2.class
new file mode 100644
index 0000000000..83acdbddb0
Binary files /dev/null and b/build/classes/server/maps/MapleMap$2.class differ
diff --git a/build/classes/server/maps/MapleMap$20.class b/build/classes/server/maps/MapleMap$20.class
new file mode 100644
index 0000000000..5880184393
Binary files /dev/null and b/build/classes/server/maps/MapleMap$20.class differ
diff --git a/build/classes/server/maps/MapleMap$21.class b/build/classes/server/maps/MapleMap$21.class
new file mode 100644
index 0000000000..0cc3b2ba08
Binary files /dev/null and b/build/classes/server/maps/MapleMap$21.class differ
diff --git a/build/classes/server/maps/MapleMap$22.class b/build/classes/server/maps/MapleMap$22.class
new file mode 100644
index 0000000000..84de93a8b5
Binary files /dev/null and b/build/classes/server/maps/MapleMap$22.class differ
diff --git a/build/classes/server/maps/MapleMap$23.class b/build/classes/server/maps/MapleMap$23.class
new file mode 100644
index 0000000000..2d69d9c14a
Binary files /dev/null and b/build/classes/server/maps/MapleMap$23.class differ
diff --git a/build/classes/server/maps/MapleMap$24.class b/build/classes/server/maps/MapleMap$24.class
new file mode 100644
index 0000000000..d6e509f7c9
Binary files /dev/null and b/build/classes/server/maps/MapleMap$24.class differ
diff --git a/build/classes/server/maps/MapleMap$25.class b/build/classes/server/maps/MapleMap$25.class
new file mode 100644
index 0000000000..92b9d9cc3d
Binary files /dev/null and b/build/classes/server/maps/MapleMap$25.class differ
diff --git a/build/classes/server/maps/MapleMap$26.class b/build/classes/server/maps/MapleMap$26.class
new file mode 100644
index 0000000000..5af5c209db
Binary files /dev/null and b/build/classes/server/maps/MapleMap$26.class differ
diff --git a/build/classes/server/maps/MapleMap$27.class b/build/classes/server/maps/MapleMap$27.class
new file mode 100644
index 0000000000..1356e7ae01
Binary files /dev/null and b/build/classes/server/maps/MapleMap$27.class differ
diff --git a/build/classes/server/maps/MapleMap$28$1.class b/build/classes/server/maps/MapleMap$28$1.class
new file mode 100644
index 0000000000..dbef0c488e
Binary files /dev/null and b/build/classes/server/maps/MapleMap$28$1.class differ
diff --git a/build/classes/server/maps/MapleMap$28.class b/build/classes/server/maps/MapleMap$28.class
new file mode 100644
index 0000000000..63ecb08deb
Binary files /dev/null and b/build/classes/server/maps/MapleMap$28.class differ
diff --git a/build/classes/server/maps/MapleMap$29.class b/build/classes/server/maps/MapleMap$29.class
new file mode 100644
index 0000000000..5964cd80e3
Binary files /dev/null and b/build/classes/server/maps/MapleMap$29.class differ
diff --git a/build/classes/server/maps/MapleMap$3.class b/build/classes/server/maps/MapleMap$3.class
new file mode 100644
index 0000000000..7e55973d7e
Binary files /dev/null and b/build/classes/server/maps/MapleMap$3.class differ
diff --git a/build/classes/server/maps/MapleMap$4.class b/build/classes/server/maps/MapleMap$4.class
new file mode 100644
index 0000000000..4a6621f176
Binary files /dev/null and b/build/classes/server/maps/MapleMap$4.class differ
diff --git a/build/classes/server/maps/MapleMap$5.class b/build/classes/server/maps/MapleMap$5.class
new file mode 100644
index 0000000000..e35981ebbf
Binary files /dev/null and b/build/classes/server/maps/MapleMap$5.class differ
diff --git a/build/classes/server/maps/MapleMap$6.class b/build/classes/server/maps/MapleMap$6.class
new file mode 100644
index 0000000000..f84022349d
Binary files /dev/null and b/build/classes/server/maps/MapleMap$6.class differ
diff --git a/build/classes/server/maps/MapleMap$7.class b/build/classes/server/maps/MapleMap$7.class
new file mode 100644
index 0000000000..ce47bb222a
Binary files /dev/null and b/build/classes/server/maps/MapleMap$7.class differ
diff --git a/build/classes/server/maps/MapleMap$8.class b/build/classes/server/maps/MapleMap$8.class
new file mode 100644
index 0000000000..55527d4aee
Binary files /dev/null and b/build/classes/server/maps/MapleMap$8.class differ
diff --git a/build/classes/server/maps/MapleMap$9.class b/build/classes/server/maps/MapleMap$9.class
new file mode 100644
index 0000000000..a0f7294e98
Binary files /dev/null and b/build/classes/server/maps/MapleMap$9.class differ
diff --git a/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class b/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class
new file mode 100644
index 0000000000..3ead24de8f
Binary files /dev/null and b/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class differ
diff --git a/build/classes/server/maps/MapleMap$ActivateItemReactor.class b/build/classes/server/maps/MapleMap$ActivateItemReactor.class
new file mode 100644
index 0000000000..9e18d04e41
Binary files /dev/null and b/build/classes/server/maps/MapleMap$ActivateItemReactor.class differ
diff --git a/build/classes/server/maps/MapleMap$DelayedPacketCreation.class b/build/classes/server/maps/MapleMap$DelayedPacketCreation.class
new file mode 100644
index 0000000000..0e1a4c166e
Binary files /dev/null and b/build/classes/server/maps/MapleMap$DelayedPacketCreation.class differ
diff --git a/build/classes/server/maps/MapleMap$ExpireMapItemJob.class b/build/classes/server/maps/MapleMap$ExpireMapItemJob.class
new file mode 100644
index 0000000000..65d53d84ec
Binary files /dev/null and b/build/classes/server/maps/MapleMap$ExpireMapItemJob.class differ
diff --git a/build/classes/server/maps/MapleMap$SpawnCondition.class b/build/classes/server/maps/MapleMap$SpawnCondition.class
new file mode 100644
index 0000000000..086c4e21e1
Binary files /dev/null and b/build/classes/server/maps/MapleMap$SpawnCondition.class differ
diff --git a/build/classes/server/maps/MapleMap.class b/build/classes/server/maps/MapleMap.class
new file mode 100644
index 0000000000..70e4236d0b
Binary files /dev/null and b/build/classes/server/maps/MapleMap.class differ
diff --git a/build/classes/server/maps/MapleMapEffect.class b/build/classes/server/maps/MapleMapEffect.class
new file mode 100644
index 0000000000..d9f30600ab
Binary files /dev/null and b/build/classes/server/maps/MapleMapEffect.class differ
diff --git a/build/classes/server/maps/MapleMapFactory.class b/build/classes/server/maps/MapleMapFactory.class
new file mode 100644
index 0000000000..5ef9f8f18b
Binary files /dev/null and b/build/classes/server/maps/MapleMapFactory.class differ
diff --git a/build/classes/server/maps/MapleMapItem.class b/build/classes/server/maps/MapleMapItem.class
new file mode 100644
index 0000000000..0ea1fdf518
Binary files /dev/null and b/build/classes/server/maps/MapleMapItem.class differ
diff --git a/build/classes/server/maps/MapleMapObject.class b/build/classes/server/maps/MapleMapObject.class
new file mode 100644
index 0000000000..1109dd2e9b
Binary files /dev/null and b/build/classes/server/maps/MapleMapObject.class differ
diff --git a/build/classes/server/maps/MapleMapObjectType.class b/build/classes/server/maps/MapleMapObjectType.class
new file mode 100644
index 0000000000..26a0664979
Binary files /dev/null and b/build/classes/server/maps/MapleMapObjectType.class differ
diff --git a/build/classes/server/maps/MapleMapPortal.class b/build/classes/server/maps/MapleMapPortal.class
new file mode 100644
index 0000000000..7d44317a9f
Binary files /dev/null and b/build/classes/server/maps/MapleMapPortal.class differ
diff --git a/build/classes/server/maps/MapleMiniDungeon.class b/build/classes/server/maps/MapleMiniDungeon.class
new file mode 100644
index 0000000000..9c0c975bd7
Binary files /dev/null and b/build/classes/server/maps/MapleMiniDungeon.class differ
diff --git a/build/classes/server/maps/MapleMist.class b/build/classes/server/maps/MapleMist.class
new file mode 100644
index 0000000000..0ea094ec47
Binary files /dev/null and b/build/classes/server/maps/MapleMist.class differ
diff --git a/build/classes/server/maps/MapleReactor$1.class b/build/classes/server/maps/MapleReactor$1.class
new file mode 100644
index 0000000000..68d931a332
Binary files /dev/null and b/build/classes/server/maps/MapleReactor$1.class differ
diff --git a/build/classes/server/maps/MapleReactor.class b/build/classes/server/maps/MapleReactor.class
new file mode 100644
index 0000000000..ca45d6c4fb
Binary files /dev/null and b/build/classes/server/maps/MapleReactor.class differ
diff --git a/build/classes/server/maps/MapleReactorFactory.class b/build/classes/server/maps/MapleReactorFactory.class
new file mode 100644
index 0000000000..5c62ae8049
Binary files /dev/null and b/build/classes/server/maps/MapleReactorFactory.class differ
diff --git a/build/classes/server/maps/MapleReactorStats$StateData.class b/build/classes/server/maps/MapleReactorStats$StateData.class
new file mode 100644
index 0000000000..234e884c42
Binary files /dev/null and b/build/classes/server/maps/MapleReactorStats$StateData.class differ
diff --git a/build/classes/server/maps/MapleReactorStats.class b/build/classes/server/maps/MapleReactorStats.class
new file mode 100644
index 0000000000..f3c26b364f
Binary files /dev/null and b/build/classes/server/maps/MapleReactorStats.class differ
diff --git a/build/classes/server/maps/MapleSummon.class b/build/classes/server/maps/MapleSummon.class
new file mode 100644
index 0000000000..3f20a19e18
Binary files /dev/null and b/build/classes/server/maps/MapleSummon.class differ
diff --git a/build/classes/server/maps/MapleTVEffect$1.class b/build/classes/server/maps/MapleTVEffect$1.class
new file mode 100644
index 0000000000..7afdbe4e5f
Binary files /dev/null and b/build/classes/server/maps/MapleTVEffect$1.class differ
diff --git a/build/classes/server/maps/MapleTVEffect.class b/build/classes/server/maps/MapleTVEffect.class
new file mode 100644
index 0000000000..2df098222a
Binary files /dev/null and b/build/classes/server/maps/MapleTVEffect.class differ
diff --git a/build/classes/server/maps/PlayerNPCs.class b/build/classes/server/maps/PlayerNPCs.class
new file mode 100644
index 0000000000..69c7179517
Binary files /dev/null and b/build/classes/server/maps/PlayerNPCs.class differ
diff --git a/build/classes/server/maps/ReactorDropEntry.class b/build/classes/server/maps/ReactorDropEntry.class
new file mode 100644
index 0000000000..38fe65e0a5
Binary files /dev/null and b/build/classes/server/maps/ReactorDropEntry.class differ
diff --git a/build/classes/server/maps/SavedLocation.class b/build/classes/server/maps/SavedLocation.class
new file mode 100644
index 0000000000..25033c7f95
Binary files /dev/null and b/build/classes/server/maps/SavedLocation.class differ
diff --git a/build/classes/server/maps/SavedLocationType.class b/build/classes/server/maps/SavedLocationType.class
new file mode 100644
index 0000000000..4eebfed5aa
Binary files /dev/null and b/build/classes/server/maps/SavedLocationType.class differ
diff --git a/build/classes/server/maps/SummonMovementType.class b/build/classes/server/maps/SummonMovementType.class
new file mode 100644
index 0000000000..cd5a434b8b
Binary files /dev/null and b/build/classes/server/maps/SummonMovementType.class differ
diff --git a/build/classes/server/movement/AbsoluteLifeMovement.class b/build/classes/server/movement/AbsoluteLifeMovement.class
new file mode 100644
index 0000000000..ad89a009da
Binary files /dev/null and b/build/classes/server/movement/AbsoluteLifeMovement.class differ
diff --git a/build/classes/server/movement/AbstractLifeMovement.class b/build/classes/server/movement/AbstractLifeMovement.class
new file mode 100644
index 0000000000..8ade2ecc5f
Binary files /dev/null and b/build/classes/server/movement/AbstractLifeMovement.class differ
diff --git a/build/classes/server/movement/ChairMovement.class b/build/classes/server/movement/ChairMovement.class
new file mode 100644
index 0000000000..0f7ad43104
Binary files /dev/null and b/build/classes/server/movement/ChairMovement.class differ
diff --git a/build/classes/server/movement/ChangeEquip.class b/build/classes/server/movement/ChangeEquip.class
new file mode 100644
index 0000000000..17403b9337
Binary files /dev/null and b/build/classes/server/movement/ChangeEquip.class differ
diff --git a/build/classes/server/movement/JumpDownMovement.class b/build/classes/server/movement/JumpDownMovement.class
new file mode 100644
index 0000000000..e976258414
Binary files /dev/null and b/build/classes/server/movement/JumpDownMovement.class differ
diff --git a/build/classes/server/movement/LifeMovement.class b/build/classes/server/movement/LifeMovement.class
new file mode 100644
index 0000000000..6f33e9270e
Binary files /dev/null and b/build/classes/server/movement/LifeMovement.class differ
diff --git a/build/classes/server/movement/LifeMovementFragment.class b/build/classes/server/movement/LifeMovementFragment.class
new file mode 100644
index 0000000000..09db822f7e
Binary files /dev/null and b/build/classes/server/movement/LifeMovementFragment.class differ
diff --git a/build/classes/server/movement/RelativeLifeMovement.class b/build/classes/server/movement/RelativeLifeMovement.class
new file mode 100644
index 0000000000..03cacc38f8
Binary files /dev/null and b/build/classes/server/movement/RelativeLifeMovement.class differ
diff --git a/build/classes/server/movement/TeleportMovement.class b/build/classes/server/movement/TeleportMovement.class
new file mode 100644
index 0000000000..a9718ad0ea
Binary files /dev/null and b/build/classes/server/movement/TeleportMovement.class differ
diff --git a/build/classes/server/partyquest/MonsterCarnival$1.class b/build/classes/server/partyquest/MonsterCarnival$1.class
new file mode 100644
index 0000000000..96240b3690
Binary files /dev/null and b/build/classes/server/partyquest/MonsterCarnival$1.class differ
diff --git a/build/classes/server/partyquest/MonsterCarnival$2.class b/build/classes/server/partyquest/MonsterCarnival$2.class
new file mode 100644
index 0000000000..c53e30dd62
Binary files /dev/null and b/build/classes/server/partyquest/MonsterCarnival$2.class differ
diff --git a/build/classes/server/partyquest/MonsterCarnival.class b/build/classes/server/partyquest/MonsterCarnival.class
new file mode 100644
index 0000000000..984ddd6505
Binary files /dev/null and b/build/classes/server/partyquest/MonsterCarnival.class differ
diff --git a/build/classes/server/partyquest/MonsterCarnivalParty.class b/build/classes/server/partyquest/MonsterCarnivalParty.class
new file mode 100644
index 0000000000..baf7567027
Binary files /dev/null and b/build/classes/server/partyquest/MonsterCarnivalParty.class differ
diff --git a/build/classes/server/partyquest/PartyQuest.class b/build/classes/server/partyquest/PartyQuest.class
new file mode 100644
index 0000000000..6cc34813ba
Binary files /dev/null and b/build/classes/server/partyquest/PartyQuest.class differ
diff --git a/build/classes/server/partyquest/Pyramid$1.class b/build/classes/server/partyquest/Pyramid$1.class
new file mode 100644
index 0000000000..d3c43cad92
Binary files /dev/null and b/build/classes/server/partyquest/Pyramid$1.class differ
diff --git a/build/classes/server/partyquest/Pyramid$2.class b/build/classes/server/partyquest/Pyramid$2.class
new file mode 100644
index 0000000000..e6b73045e2
Binary files /dev/null and b/build/classes/server/partyquest/Pyramid$2.class differ
diff --git a/build/classes/server/partyquest/Pyramid$PyramidMode.class b/build/classes/server/partyquest/Pyramid$PyramidMode.class
new file mode 100644
index 0000000000..be8c327a0d
Binary files /dev/null and b/build/classes/server/partyquest/Pyramid$PyramidMode.class differ
diff --git a/build/classes/server/partyquest/Pyramid.class b/build/classes/server/partyquest/Pyramid.class
new file mode 100644
index 0000000000..35b7654d90
Binary files /dev/null and b/build/classes/server/partyquest/Pyramid.class differ
diff --git a/build/classes/server/quest/MapleQuest$1.class b/build/classes/server/quest/MapleQuest$1.class
new file mode 100644
index 0000000000..05c17c80c1
Binary files /dev/null and b/build/classes/server/quest/MapleQuest$1.class differ
diff --git a/build/classes/server/quest/MapleQuest.class b/build/classes/server/quest/MapleQuest.class
new file mode 100644
index 0000000000..50abf8bc1e
Binary files /dev/null and b/build/classes/server/quest/MapleQuest.class differ
diff --git a/build/classes/server/quest/MapleQuestActionType.class b/build/classes/server/quest/MapleQuestActionType.class
new file mode 100644
index 0000000000..bd1003bea5
Binary files /dev/null and b/build/classes/server/quest/MapleQuestActionType.class differ
diff --git a/build/classes/server/quest/MapleQuestRequirementType.class b/build/classes/server/quest/MapleQuestRequirementType.class
new file mode 100644
index 0000000000..66bcfb12e8
Binary files /dev/null and b/build/classes/server/quest/MapleQuestRequirementType.class differ
diff --git a/build/classes/server/quest/actions/BuffAction.class b/build/classes/server/quest/actions/BuffAction.class
new file mode 100644
index 0000000000..43fd7d50f1
Binary files /dev/null and b/build/classes/server/quest/actions/BuffAction.class differ
diff --git a/build/classes/server/quest/actions/ExpAction.class b/build/classes/server/quest/actions/ExpAction.class
new file mode 100644
index 0000000000..eddbed122c
Binary files /dev/null and b/build/classes/server/quest/actions/ExpAction.class differ
diff --git a/build/classes/server/quest/actions/FameAction.class b/build/classes/server/quest/actions/FameAction.class
new file mode 100644
index 0000000000..a105c84cd8
Binary files /dev/null and b/build/classes/server/quest/actions/FameAction.class differ
diff --git a/build/classes/server/quest/actions/ItemAction$ItemData.class b/build/classes/server/quest/actions/ItemAction$ItemData.class
new file mode 100644
index 0000000000..eeed57fcb4
Binary files /dev/null and b/build/classes/server/quest/actions/ItemAction$ItemData.class differ
diff --git a/build/classes/server/quest/actions/ItemAction.class b/build/classes/server/quest/actions/ItemAction.class
new file mode 100644
index 0000000000..ac918006d8
Binary files /dev/null and b/build/classes/server/quest/actions/ItemAction.class differ
diff --git a/build/classes/server/quest/actions/MapleQuestAction.class b/build/classes/server/quest/actions/MapleQuestAction.class
new file mode 100644
index 0000000000..657a1ab585
Binary files /dev/null and b/build/classes/server/quest/actions/MapleQuestAction.class differ
diff --git a/build/classes/server/quest/actions/MesoAction.class b/build/classes/server/quest/actions/MesoAction.class
new file mode 100644
index 0000000000..45ed5bfc70
Binary files /dev/null and b/build/classes/server/quest/actions/MesoAction.class differ
diff --git a/build/classes/server/quest/actions/NextQuestAction.class b/build/classes/server/quest/actions/NextQuestAction.class
new file mode 100644
index 0000000000..eab7384678
Binary files /dev/null and b/build/classes/server/quest/actions/NextQuestAction.class differ
diff --git a/build/classes/server/quest/actions/PetSkillAction.class b/build/classes/server/quest/actions/PetSkillAction.class
new file mode 100644
index 0000000000..af28a05c28
Binary files /dev/null and b/build/classes/server/quest/actions/PetSkillAction.class differ
diff --git a/build/classes/server/quest/actions/QuestAction.class b/build/classes/server/quest/actions/QuestAction.class
new file mode 100644
index 0000000000..941cab536e
Binary files /dev/null and b/build/classes/server/quest/actions/QuestAction.class differ
diff --git a/build/classes/server/quest/actions/SkillAction$SkillData.class b/build/classes/server/quest/actions/SkillAction$SkillData.class
new file mode 100644
index 0000000000..12725f2d35
Binary files /dev/null and b/build/classes/server/quest/actions/SkillAction$SkillData.class differ
diff --git a/build/classes/server/quest/actions/SkillAction.class b/build/classes/server/quest/actions/SkillAction.class
new file mode 100644
index 0000000000..9281ee15d3
Binary files /dev/null and b/build/classes/server/quest/actions/SkillAction.class differ
diff --git a/build/classes/server/quest/requirements/CompletedQuestRequirement.class b/build/classes/server/quest/requirements/CompletedQuestRequirement.class
new file mode 100644
index 0000000000..65d347ba2d
Binary files /dev/null and b/build/classes/server/quest/requirements/CompletedQuestRequirement.class differ
diff --git a/build/classes/server/quest/requirements/EndDateRequirement.class b/build/classes/server/quest/requirements/EndDateRequirement.class
new file mode 100644
index 0000000000..d4c18343d2
Binary files /dev/null and b/build/classes/server/quest/requirements/EndDateRequirement.class differ
diff --git a/build/classes/server/quest/requirements/FieldEnterRequirement.class b/build/classes/server/quest/requirements/FieldEnterRequirement.class
new file mode 100644
index 0000000000..4127f00612
Binary files /dev/null and b/build/classes/server/quest/requirements/FieldEnterRequirement.class differ
diff --git a/build/classes/server/quest/requirements/InfoExRequirement.class b/build/classes/server/quest/requirements/InfoExRequirement.class
new file mode 100644
index 0000000000..54e728e769
Binary files /dev/null and b/build/classes/server/quest/requirements/InfoExRequirement.class differ
diff --git a/build/classes/server/quest/requirements/IntervalRequirement.class b/build/classes/server/quest/requirements/IntervalRequirement.class
new file mode 100644
index 0000000000..a3d085fd0a
Binary files /dev/null and b/build/classes/server/quest/requirements/IntervalRequirement.class differ
diff --git a/build/classes/server/quest/requirements/ItemRequirement.class b/build/classes/server/quest/requirements/ItemRequirement.class
new file mode 100644
index 0000000000..4f481f5c22
Binary files /dev/null and b/build/classes/server/quest/requirements/ItemRequirement.class differ
diff --git a/build/classes/server/quest/requirements/JobRequirement.class b/build/classes/server/quest/requirements/JobRequirement.class
new file mode 100644
index 0000000000..b847589f05
Binary files /dev/null and b/build/classes/server/quest/requirements/JobRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MapleQuestRequirement.class b/build/classes/server/quest/requirements/MapleQuestRequirement.class
new file mode 100644
index 0000000000..dfdfdaca12
Binary files /dev/null and b/build/classes/server/quest/requirements/MapleQuestRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MaxLevelRequirement.class b/build/classes/server/quest/requirements/MaxLevelRequirement.class
new file mode 100644
index 0000000000..6b8249e932
Binary files /dev/null and b/build/classes/server/quest/requirements/MaxLevelRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MinLevelRequirement.class b/build/classes/server/quest/requirements/MinLevelRequirement.class
new file mode 100644
index 0000000000..a5484b2796
Binary files /dev/null and b/build/classes/server/quest/requirements/MinLevelRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MinTamenessRequirement.class b/build/classes/server/quest/requirements/MinTamenessRequirement.class
new file mode 100644
index 0000000000..ec2646d86f
Binary files /dev/null and b/build/classes/server/quest/requirements/MinTamenessRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MobRequirement.class b/build/classes/server/quest/requirements/MobRequirement.class
new file mode 100644
index 0000000000..b412874829
Binary files /dev/null and b/build/classes/server/quest/requirements/MobRequirement.class differ
diff --git a/build/classes/server/quest/requirements/MonsterBookCountRequirement.class b/build/classes/server/quest/requirements/MonsterBookCountRequirement.class
new file mode 100644
index 0000000000..a0154bd389
Binary files /dev/null and b/build/classes/server/quest/requirements/MonsterBookCountRequirement.class differ
diff --git a/build/classes/server/quest/requirements/NpcRequirement.class b/build/classes/server/quest/requirements/NpcRequirement.class
new file mode 100644
index 0000000000..22a4baa451
Binary files /dev/null and b/build/classes/server/quest/requirements/NpcRequirement.class differ
diff --git a/build/classes/server/quest/requirements/PetRequirement.class b/build/classes/server/quest/requirements/PetRequirement.class
new file mode 100644
index 0000000000..828834440e
Binary files /dev/null and b/build/classes/server/quest/requirements/PetRequirement.class differ
diff --git a/build/classes/server/quest/requirements/QuestRequirement.class b/build/classes/server/quest/requirements/QuestRequirement.class
new file mode 100644
index 0000000000..cd81f85280
Binary files /dev/null and b/build/classes/server/quest/requirements/QuestRequirement.class differ
diff --git a/build/classes/tools/ArrayMap$1.class b/build/classes/tools/ArrayMap$1.class
new file mode 100644
index 0000000000..edde4792ad
Binary files /dev/null and b/build/classes/tools/ArrayMap$1.class differ
diff --git a/build/classes/tools/ArrayMap$Entry.class b/build/classes/tools/ArrayMap$Entry.class
new file mode 100644
index 0000000000..f0a97e1f14
Binary files /dev/null and b/build/classes/tools/ArrayMap$Entry.class differ
diff --git a/build/classes/tools/ArrayMap.class b/build/classes/tools/ArrayMap.class
new file mode 100644
index 0000000000..4f38505abf
Binary files /dev/null and b/build/classes/tools/ArrayMap.class differ
diff --git a/build/classes/tools/DatabaseConnection$1.class b/build/classes/tools/DatabaseConnection$1.class
new file mode 100644
index 0000000000..833f132974
Binary files /dev/null and b/build/classes/tools/DatabaseConnection$1.class differ
diff --git a/build/classes/tools/DatabaseConnection$ThreadLocalConnection.class b/build/classes/tools/DatabaseConnection$ThreadLocalConnection.class
new file mode 100644
index 0000000000..7a18839058
Binary files /dev/null and b/build/classes/tools/DatabaseConnection$ThreadLocalConnection.class differ
diff --git a/build/classes/tools/DatabaseConnection.class b/build/classes/tools/DatabaseConnection.class
new file mode 100644
index 0000000000..e69bc82c64
Binary files /dev/null and b/build/classes/tools/DatabaseConnection.class differ
diff --git a/build/classes/tools/FilePrinter.class b/build/classes/tools/FilePrinter.class
new file mode 100644
index 0000000000..65c6c85bf8
Binary files /dev/null and b/build/classes/tools/FilePrinter.class differ
diff --git a/build/classes/tools/HexTool.class b/build/classes/tools/HexTool.class
new file mode 100644
index 0000000000..2bf65aa246
Binary files /dev/null and b/build/classes/tools/HexTool.class differ
diff --git a/build/classes/tools/LogHelper.class b/build/classes/tools/LogHelper.class
new file mode 100644
index 0000000000..17bf7d7fb1
Binary files /dev/null and b/build/classes/tools/LogHelper.class differ
diff --git a/build/classes/tools/MapleAESOFB.class b/build/classes/tools/MapleAESOFB.class
new file mode 100644
index 0000000000..55a7c73a79
Binary files /dev/null and b/build/classes/tools/MapleAESOFB.class differ
diff --git a/build/classes/tools/MapleLogger$1.class b/build/classes/tools/MapleLogger$1.class
new file mode 100644
index 0000000000..e87a58b40b
Binary files /dev/null and b/build/classes/tools/MapleLogger$1.class differ
diff --git a/build/classes/tools/MapleLogger.class b/build/classes/tools/MapleLogger.class
new file mode 100644
index 0000000000..8327f7ede1
Binary files /dev/null and b/build/classes/tools/MapleLogger.class differ
diff --git a/build/classes/tools/MaplePacketCreator$1.class b/build/classes/tools/MaplePacketCreator$1.class
new file mode 100644
index 0000000000..bc0b9cf05a
Binary files /dev/null and b/build/classes/tools/MaplePacketCreator$1.class differ
diff --git a/build/classes/tools/MaplePacketCreator$2.class b/build/classes/tools/MaplePacketCreator$2.class
new file mode 100644
index 0000000000..249b09c5e8
Binary files /dev/null and b/build/classes/tools/MaplePacketCreator$2.class differ
diff --git a/build/classes/tools/MaplePacketCreator.class b/build/classes/tools/MaplePacketCreator.class
new file mode 100644
index 0000000000..fdc6c8e9cd
Binary files /dev/null and b/build/classes/tools/MaplePacketCreator.class differ
diff --git a/build/classes/tools/Pair.class b/build/classes/tools/Pair.class
new file mode 100644
index 0000000000..a7d4105f89
Binary files /dev/null and b/build/classes/tools/Pair.class differ
diff --git a/build/classes/tools/Randomizer.class b/build/classes/tools/Randomizer.class
new file mode 100644
index 0000000000..ae33e62010
Binary files /dev/null and b/build/classes/tools/Randomizer.class differ
diff --git a/build/classes/tools/StringUtil.class b/build/classes/tools/StringUtil.class
new file mode 100644
index 0000000000..8cb1bb4c06
Binary files /dev/null and b/build/classes/tools/StringUtil.class differ
diff --git a/build/classes/tools/data/input/ByteArrayByteStream.class b/build/classes/tools/data/input/ByteArrayByteStream.class
new file mode 100644
index 0000000000..3fa4e15b94
Binary files /dev/null and b/build/classes/tools/data/input/ByteArrayByteStream.class differ
diff --git a/build/classes/tools/data/input/ByteInputStream.class b/build/classes/tools/data/input/ByteInputStream.class
new file mode 100644
index 0000000000..8b8b6b6070
Binary files /dev/null and b/build/classes/tools/data/input/ByteInputStream.class differ
diff --git a/build/classes/tools/data/input/GenericLittleEndianAccessor.class b/build/classes/tools/data/input/GenericLittleEndianAccessor.class
new file mode 100644
index 0000000000..947a023cb5
Binary files /dev/null and b/build/classes/tools/data/input/GenericLittleEndianAccessor.class differ
diff --git a/build/classes/tools/data/input/GenericSeekableLittleEndianAccessor.class b/build/classes/tools/data/input/GenericSeekableLittleEndianAccessor.class
new file mode 100644
index 0000000000..84c6938165
Binary files /dev/null and b/build/classes/tools/data/input/GenericSeekableLittleEndianAccessor.class differ
diff --git a/build/classes/tools/data/input/InputStreamByteStream.class b/build/classes/tools/data/input/InputStreamByteStream.class
new file mode 100644
index 0000000000..23ce24b7e1
Binary files /dev/null and b/build/classes/tools/data/input/InputStreamByteStream.class differ
diff --git a/build/classes/tools/data/input/LittleEndianAccessor.class b/build/classes/tools/data/input/LittleEndianAccessor.class
new file mode 100644
index 0000000000..5f3647694d
Binary files /dev/null and b/build/classes/tools/data/input/LittleEndianAccessor.class differ
diff --git a/build/classes/tools/data/input/RandomAccessByteStream.class b/build/classes/tools/data/input/RandomAccessByteStream.class
new file mode 100644
index 0000000000..cb8a153c8d
Binary files /dev/null and b/build/classes/tools/data/input/RandomAccessByteStream.class differ
diff --git a/build/classes/tools/data/input/SeekableInputStreamBytestream.class b/build/classes/tools/data/input/SeekableInputStreamBytestream.class
new file mode 100644
index 0000000000..796b071b89
Binary files /dev/null and b/build/classes/tools/data/input/SeekableInputStreamBytestream.class differ
diff --git a/build/classes/tools/data/input/SeekableLittleEndianAccessor.class b/build/classes/tools/data/input/SeekableLittleEndianAccessor.class
new file mode 100644
index 0000000000..3c5adb2aee
Binary files /dev/null and b/build/classes/tools/data/input/SeekableLittleEndianAccessor.class differ
diff --git a/build/classes/tools/data/output/BAOSByteOutputStream.class b/build/classes/tools/data/output/BAOSByteOutputStream.class
new file mode 100644
index 0000000000..ff616741e4
Binary files /dev/null and b/build/classes/tools/data/output/BAOSByteOutputStream.class differ
diff --git a/build/classes/tools/data/output/ByteOutputStream.class b/build/classes/tools/data/output/ByteOutputStream.class
new file mode 100644
index 0000000000..7686291f08
Binary files /dev/null and b/build/classes/tools/data/output/ByteOutputStream.class differ
diff --git a/build/classes/tools/data/output/GenericLittleEndianWriter.class b/build/classes/tools/data/output/GenericLittleEndianWriter.class
new file mode 100644
index 0000000000..fb08c6b2e5
Binary files /dev/null and b/build/classes/tools/data/output/GenericLittleEndianWriter.class differ
diff --git a/build/classes/tools/data/output/LittleEndianWriter.class b/build/classes/tools/data/output/LittleEndianWriter.class
new file mode 100644
index 0000000000..745290fe66
Binary files /dev/null and b/build/classes/tools/data/output/LittleEndianWriter.class differ
diff --git a/build/classes/tools/data/output/MaplePacketLittleEndianWriter.class b/build/classes/tools/data/output/MaplePacketLittleEndianWriter.class
new file mode 100644
index 0000000000..3d69e07ea5
Binary files /dev/null and b/build/classes/tools/data/output/MaplePacketLittleEndianWriter.class differ
diff --git a/dist/MapleSolaxia.jar b/dist/MapleSolaxia.jar
new file mode 100644
index 0000000000..c5bdad9f41
Binary files /dev/null and b/dist/MapleSolaxia.jar differ
diff --git a/dist/README.TXT b/dist/README.TXT
new file mode 100644
index 0000000000..06d133b0cb
--- /dev/null
+++ b/dist/README.TXT
@@ -0,0 +1,32 @@
+========================
+BUILD OUTPUT DESCRIPTION
+========================
+
+When you build an Java application project that has a main class, the IDE
+automatically copies all of the JAR
+files on the projects classpath to your projects dist/lib folder. The IDE
+also adds each of the JAR files to the Class-Path element in the application
+JAR files manifest file (MANIFEST.MF).
+
+To run the project from the command line, go to the dist folder and
+type the following:
+
+java -jar "MapleSolaxia.jar"
+
+To distribute this project, zip up the dist folder (including the lib folder)
+and distribute the ZIP file.
+
+Notes:
+
+* If two JAR files on the project classpath have the same name, only the first
+JAR file is copied to the lib folder.
+* Only JAR files are copied to the lib folder.
+If the classpath contains other types of files or folders, these files (folders)
+are not copied.
+* If a library on the projects classpath also has a Class-Path element
+specified in the manifest,the content of the Class-Path element has to be on
+the projects runtime path.
+* To set a main class in a standard Java project, right-click the project node
+in the Projects window and choose Properties. Then click Run and enter the
+class name in the Main Class field. Alternatively, you can manually type the
+class name in the manifest Main-Class element.
diff --git a/dist/lib/mina-core-2.0.7.jar b/dist/lib/mina-core-2.0.7.jar
new file mode 100644
index 0000000000..c5f384c2c6
Binary files /dev/null and b/dist/lib/mina-core-2.0.7.jar differ
diff --git a/dist/lib/mysql-connector-java-bin.jar b/dist/lib/mysql-connector-java-bin.jar
new file mode 100644
index 0000000000..0539039f71
Binary files /dev/null and b/dist/lib/mysql-connector-java-bin.jar differ
diff --git a/dist/lib/slf4j-api-1.6.6.jar b/dist/lib/slf4j-api-1.6.6.jar
new file mode 100644
index 0000000000..4c03fa6bb2
Binary files /dev/null and b/dist/lib/slf4j-api-1.6.6.jar differ
diff --git a/dist/lib/slf4j-jdk14-1.7.5.jar b/dist/lib/slf4j-jdk14-1.7.5.jar
new file mode 100644
index 0000000000..184c8c4109
Binary files /dev/null and b/dist/lib/slf4j-jdk14-1.7.5.jar differ
diff --git a/mychanges_ptbr.txt b/mychanges_ptbr.txt
index 36a94961c3..6f592858d5 100644
--- a/mychanges_ptbr.txt
+++ b/mychanges_ptbr.txt
@@ -263,4 +263,8 @@ Reajuste de diret
Consertado casos onde jogador tenta acessar o Cash Shop, enquanto abertas janelas/abas interativas, ocasionando crash no jogo.
Resolvido alguns problemas com Player Shops, não retornado todos os itens ao jogador ao sair da loja.
Refatoração de código referente às diversas naturezas de fechamento das janelas interativas (minigames, messenger, npc/player shops, etc), agora utilizando um mesmo código.
-Adição de restrição de acesso ao Cash Shop pelos jogadores presentes nas salas da Free Market (evitando assim fechamento de lojas de jogadores que tentem acessar o CS).
\ No newline at end of file
+Adição de restrição de acesso ao Cash Shop pelos jogadores presentes nas salas da Free Market (evitando assim fechamento de lojas de jogadores que tentem acessar o CS).
+
+29 - 30 Maio 2017,
+Implementação da estrutura referente aos cupons de UP EXP & drop.
+MapleCouponInstaller: ferramenta desenvolvida para coleta de informações referentes ao rate e faixa de tempo que os cupons se ativam.
\ No newline at end of file
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
index 9018321ab6..c71af36319 100644
--- a/nbproject/private/private.xml
+++ b/nbproject/private/private.xml
@@ -11,6 +11,12 @@
-
+
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/Server.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/CouponWorker.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleClient.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/inventory/MapleInventory.java
+
diff --git a/sql/db_database.sql b/sql/db_database.sql
index 69176c2346..8bf839cd64 100644
--- a/sql/db_database.sql
+++ b/sql/db_database.sql
@@ -184,7 +184,7 @@ CREATE TABLE IF NOT EXISTS `characters` (
KEY `party` (`party`),
KEY `ranking1` (`level`,`exp`),
KEY `ranking2` (`gm`,`job`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=30000 ;
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `cooldowns` (
`id` int(11) NOT NULL AUTO_INCREMENT,
@@ -15929,9 +15929,6 @@ CREATE TABLE IF NOT EXISTS `monsterbook` (
`level` int(1) DEFAULT '1'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-INSERT INTO `monsterbook` (`charid`, `cardid`, `level`) VALUES
-(30000, 2380011, 1);
-
CREATE TABLE IF NOT EXISTS `monstercarddata` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cardid` int(11) NOT NULL DEFAULT '0',
@@ -16316,6 +16313,59 @@ CREATE TABLE IF NOT EXISTS `nxcode` (
PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+CREATE TABLE IF NOT EXISTS `nxcoupons` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `couponid` int(11) NOT NULL DEFAULT '0',
+ `rate` int(11) NOT NULL DEFAULT '0',
+ `activeday` int(11) NOT NULL DEFAULT '0',
+ `starthour` int(11) NOT NULL DEFAULT '0',
+ `endhour` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=41 ;
+
+INSERT INTO `nxcoupons` (`id`, `couponid`, `rate`, `activeday`, `starthour`, `endhour`) VALUES
+(1,5211000,2,1,18,20),
+(2,5211004,2,1,7,11),
+(3,5211005,2,1,10,14),
+(4,5211006,2,1,13,17),
+(5,5211007,2,1,16,20),
+(6,5211008,2,1,19,23),
+(7,5211009,2,1,7,11),
+(8,5211010,2,1,10,14),
+(9,5211011,2,1,13,17),
+(10,5211012,2,1,16,20),
+(11,5211013,2,1,19,23),
+(12,5211014,2,1,7,11),
+(13,5211015,2,1,10,14),
+(14,5211016,2,1,13,17),
+(15,5211017,2,1,16,20),
+(16,5211018,2,1,19,23),
+(17,5211037,2,1,0,4),
+(18,5211038,2,1,0,4),
+(19,5211039,2,1,0,4),
+(20,5211040,2,1,3,7),
+(21,5211041,2,1,3,7),
+(22,5211042,2,1,3,7),
+(23,5211043,2,1,6,10),
+(24,5211044,2,1,6,10),
+(25,5211045,2,1,6,10),
+(26,5211046,2,1,0,24),
+(27,5211048,2,1,0,24),
+(28,5211049,2,1,0,24),
+(29,5211052,3,1,0,24),
+(30,5211060,3,1,0,24),
+(31,5360000,2,1,0,24),
+(32,5360001,2,1,7,11),
+(33,5360002,2,1,10,14),
+(34,5360003,2,1,13,17),
+(35,5360004,2,1,16,20),
+(36,5360005,2,1,19,23),
+(37,5360006,2,1,0,4),
+(38,5360007,2,1,3,7),
+(39,5360008,2,1,6,10),
+(40,5360042,2,1,0,24);
+
+
CREATE TABLE IF NOT EXISTS `pets` (
`petid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(13) DEFAULT NULL,
diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java
index 0e460e32f8..548fa90eca 100644
--- a/src/client/MapleCharacter.java
+++ b/src/client/MapleCharacter.java
@@ -201,7 +201,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
private int possibleReports = 10;
private int dojoPoints, vanquisherStage, dojoStage, dojoEnergy, vanquisherKills;
private int warpToId;
- private int expRate = 1, mesoRate = 1, dropRate = 1;
+ private int expRate = 1, mesoRate = 1, dropRate = 1, expCoupon = 1, mesoCoupon = 1, dropCoupon = 1;
private int omokwins, omokties, omoklosses, matchcardwins, matchcardties, matchcardlosses;
private int married;
private long dojoFinish, lastfametime, lastUsedCashItem, lastHealed, lastMesoDrop = -1, jailExpiration = -1;
@@ -245,6 +245,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
private Map entered = new LinkedHashMap<>();
private Set visibleMapObjects = new LinkedHashSet<>();
private Map skills = new LinkedHashMap<>();
+ private Map activeCoupons = new LinkedHashMap<>();
+ private Map activeCouponRates = new LinkedHashMap<>();
private EnumMap effects = new EnumMap<>(MapleBuffStat.class);
private Map keymap = new LinkedHashMap<>();
private Map summons = new LinkedHashMap<>();
@@ -301,7 +303,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
if (type == MapleInventoryType.CASH) {
b = 96;
}
- inventory[type.ordinal()] = new MapleInventory(type, (byte) b);
+ inventory[type.ordinal()] = new MapleInventory(this, type, (byte) b);
}
for (int i = 0; i < SavedLocationType.values().length; i++) {
savedLocations[i] = null;
@@ -3269,9 +3271,9 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
this.yellowMessage("We see you reached level " + level + ". Congratulations! As a token of your success, your inventory has been expanded a little bit.");
}
- if (level % 20 == 0 && ServerConstants.USE_ADD_RATES_BY_LEVEL == true) { //For the drop + meso rate
- revertRates(true);
- addRates();
+ if (level % 20 == 0 && ServerConstants.USE_ADD_RATES_BY_LEVEL == true) { //For the drop & meso rate
+ revertPlayerRates();
+ setPlayerRates();
this.yellowMessage("You managed to get level " + level + "! Getting experience and items seems a little easier now, huh?");
}
@@ -3380,34 +3382,118 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
}
}
- public void addRates() {
+ public void setPlayerRates() {
this.expRate *= EXP_RATE_GAIN[this.level / 20];
this.mesoRate *= MESO_RATE_GAIN[this.level / 20];
this.dropRate *= DROP_RATE_GAIN[this.level / 20];
}
- public void revertRates(boolean lvlup) {
- if(lvlup == true) {
- this.expRate /= EXP_RATE_GAIN[(this.level - 1) / 20];
- this.mesoRate /= MESO_RATE_GAIN[(this.level - 1) / 20];
- this.dropRate /= DROP_RATE_GAIN[(this.level - 1) / 20];
- }
- else {
- World worldz = Server.getInstance().getWorld(world);
-
- this.expRate /= worldz.getExpRate();
- this.mesoRate /= worldz.getMesoRate();
- this.dropRate /= worldz.getDropRate();
- }
+ public void revertPlayerRates() {
+ this.expRate /= EXP_RATE_GAIN[(this.level - 1) / 20];
+ this.mesoRate /= MESO_RATE_GAIN[(this.level - 1) / 20];
+ this.dropRate /= DROP_RATE_GAIN[(this.level - 1) / 20];
}
- public void setRates() {
+ public void revertWorldRates() {
+ World worldz = Server.getInstance().getWorld(world);
+
+ this.expRate /= worldz.getExpRate();
+ this.mesoRate /= worldz.getMesoRate();
+ this.dropRate /= worldz.getDropRate();
+ }
+
+ public void setWorldRates() {
World worldz = Server.getInstance().getWorld(world);
-
this.expRate *= worldz.getExpRate();
this.mesoRate *= worldz.getMesoRate();
this.dropRate *= worldz.getDropRate();
}
+
+ public void revertCouponRates() {
+ revertCouponsEffects();
+ }
+
+ public void setCouponRates() {
+ setActiveCoupons();
+ activateCouponsEffects();
+ }
+
+ private boolean isExpCoupon(int couponId) {
+ return couponId / 1000 == 5211;
+ }
+
+ private int getCouponMultiplier(int couponId) {
+ return activeCouponRates.get(couponId);
+ }
+
+ private void setExpCouponRate(int couponId, int couponQty) {
+ this.expCoupon *= (getCouponMultiplier(couponId) * couponQty);
+ }
+
+ private void setDropCouponRate(int couponId, int couponQty) {
+ this.dropCoupon *= (getCouponMultiplier(couponId) * couponQty);
+ this.mesoCoupon *= (getCouponMultiplier(couponId) * couponQty);
+ }
+
+ private void revertCouponsEffects() {
+ this.expRate /= this.expCoupon;
+ this.dropRate /= this.dropCoupon;
+ this.mesoRate /= this.mesoCoupon;
+
+ this.expCoupon = 1;
+ this.dropCoupon = 1;
+ this.mesoCoupon = 1;
+ }
+
+ private void activateCouponsEffects() {
+ if(ServerConstants.USE_STACK_COUPON_RATES) {
+ for(Entry coupon: activeCoupons.entrySet()) {
+ int couponId = coupon.getKey();
+ int couponQty = coupon.getValue();
+
+ if(isExpCoupon(couponId)) setExpCouponRate(couponId, couponQty);
+ else setDropCouponRate(couponId, couponQty);
+ }
+ }
+ else {
+ int maxExpRate = 1, maxDropRate = 1;
+
+ for(Entry coupon: activeCoupons.entrySet()) {
+ int couponId = coupon.getKey();
+
+ if(isExpCoupon(couponId)) maxExpRate = Math.max(maxExpRate, getCouponMultiplier(couponId));
+ else maxDropRate = Math.max(maxDropRate, getCouponMultiplier(couponId));
+ }
+
+ this.expCoupon = maxExpRate;
+ this.dropCoupon = maxDropRate;
+ this.mesoCoupon = maxDropRate;
+ }
+
+ this.expRate *= this.expCoupon;
+ this.dropRate *= this.dropCoupon;
+ this.mesoRate *= this.mesoCoupon;
+ }
+
+ private void setActiveCoupons() {
+ activeCoupons.clear();
+ activeCouponRates.clear();
+
+ Map coupons = Server.getInstance().getCouponRates();
+ List active = Server.getInstance().getActiveCoupons();
+
+ for(Item it: this.getInventory(MapleInventoryType.CASH).list()) {
+ if(MapleItemInformationProvider.getInstance().isRateCoupon(it.getItemId()) && active.contains(it.getItemId())) {
+ Integer count = activeCoupons.get(it.getItemId());
+
+ if(count != null) activeCoupons.put(it.getItemId(), count + 1);
+ else {
+ activeCoupons.put(it.getItemId(), 1);
+ activeCouponRates.put(it.getItemId(), coupons.get(it.getItemId()));
+ }
+ }
+ }
+ }
public static MapleCharacter loadCharFromDB(int charid, MapleClient client, boolean channelserver) throws SQLException {
try {
@@ -3732,10 +3818,12 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
ret.maplemount.setActive(false);
if(ServerConstants.USE_ADD_RATES_BY_LEVEL == true) {
- ret.addRates();
+ ret.setPlayerRates();
}
- ret.setRates();
-
+
+ ret.setWorldRates();
+ ret.setCouponRates();
+
return ret;
} catch (SQLException | RuntimeException e) {
e.printStackTrace();
diff --git a/src/client/command/Commands.java b/src/client/command/Commands.java
index 620b483e58..836dfc91f8 100644
--- a/src/client/command/Commands.java
+++ b/src/client/command/Commands.java
@@ -673,6 +673,29 @@ public class Commands {
}
}
break;
+
+ case "debugservercoupons":
+ case "debugcoupons":
+ if(ServerConstants.USE_DEBUG) {
+ String s = "Currently active SERVER coupons: ";
+ for(Integer i : Server.getInstance().getActiveCoupons()) {
+ s += (i + " ");
+ }
+
+ player.dropMessage(s);
+ }
+ break;
+
+ case "debugplayercoupons":
+ if(ServerConstants.USE_DEBUG) {
+ String s = "Currently active PLAYER coupons: ";
+ for(Integer i : Server.getInstance().getActiveCoupons()) {
+ s += (i + " ");
+ }
+
+ player.dropMessage(s);
+ }
+ break;
default:
if (player.gmLevel() == 0) {
@@ -958,6 +981,12 @@ public class Commands {
victim = player;
}
victim.getClient().disconnect(false, false);
+ } else if (sub[0].equals("togglecoupon")) {
+ if (sub.length < 2){
+ player.yellowMessage("Syntax: !togglecoupon ");
+ return true;
+ }
+ Server.getInstance().toggleCoupon(Integer.parseInt(sub[1]));
} else if (sub[0].equals("exprate")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !exprate ");
diff --git a/src/client/inventory/Item.java b/src/client/inventory/Item.java
index f5398529f2..73846aba33 100644
--- a/src/client/inventory/Item.java
+++ b/src/client/inventory/Item.java
@@ -168,5 +168,5 @@ public class Item implements Comparable- {
public MaplePet getPet() {
return pet;
- }
+ }
}
diff --git a/src/client/inventory/MapleInventory.java b/src/client/inventory/MapleInventory.java
index ec42469942..8a9ec89c86 100644
--- a/src/client/inventory/MapleInventory.java
+++ b/src/client/inventory/MapleInventory.java
@@ -39,12 +39,14 @@ import server.MapleItemInformationProvider;
* @author Matze
*/
public class MapleInventory implements Iterable
- {
+ private MapleCharacter owner;
private Map inventory = new LinkedHashMap<>();
private byte slotLimit;
private MapleInventoryType type;
private boolean checked = false;
- public MapleInventory(MapleInventoryType type, byte slotLimit) {
+ public MapleInventory(MapleCharacter mc, MapleInventoryType type, byte slotLimit) {
+ this.owner = mc;
this.inventory = new LinkedHashMap<>();
this.type = type;
this.slotLimit = slotLimit;
@@ -91,13 +93,13 @@ public class MapleInventory implements Iterable
- {
}
public int countById(int itemId) {
- int possesed = 0;
+ int qty = 0;
for (Item item : inventory.values()) {
if (item.getItemId() == itemId) {
- possesed += item.getQuantity();
+ qty += item.getQuantity();
}
}
- return possesed;
+ return qty;
}
public List
- listById(int itemId) {
@@ -122,7 +124,7 @@ public class MapleInventory implements Iterable
- {
if (slotId < 0 || item == null) {
return -1;
}
- inventory.put(slotId, item);
+ addSlot(slotId, item);
item.setPosition(slotId);
return slotId;
}
@@ -131,7 +133,7 @@ public class MapleInventory implements Iterable
- {
if (item.getPosition() < 0 && !type.equals(MapleInventoryType.EQUIPPED)) {
return;
}
- inventory.put(item.getPosition(), item);
+ addSlot(item.getPosition(), item);
}
public void move(short sSlot, short dSlot, short slotMax) {
@@ -193,8 +195,24 @@ public class MapleInventory implements Iterable
- {
}
}
+ public void addSlot(short slot, Item item) {
+ inventory.put(slot, item);
+
+ if(MapleItemInformationProvider.getInstance().isRateCoupon(item.getItemId())) {
+ System.out.println("reformulating");
+ owner.revertCouponRates();
+ owner.setCouponRates();
+ }
+ }
+
public void removeSlot(short slot) {
- inventory.remove(slot);
+ Item item = inventory.remove(slot);
+
+ if(item != null && MapleItemInformationProvider.getInstance().isRateCoupon(item.getItemId())) {
+ System.out.println("reformulating");
+ owner.revertCouponRates();
+ owner.setCouponRates();
+ }
}
public boolean isFull() {
diff --git a/src/constants/GameConstants.java b/src/constants/GameConstants.java
index f399d8ebb0..ade74a43bf 100644
--- a/src/constants/GameConstants.java
+++ b/src/constants/GameConstants.java
@@ -89,9 +89,9 @@ public class GameConstants {
return skillId > 1111002 && skillId < 1111007 || skillId == 11111002 || skillId == 11111003;
}
- public static boolean hasSPTable(MapleJob job) {
+ public static boolean hasSPTable(MapleJob job) {
switch (job) {
- case EVAN:
+ case EVAN:
case EVAN1:
case EVAN2:
case EVAN3:
diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java
index 402b344bfc..af2b10e7b5 100644
--- a/src/constants/ServerConstants.java
+++ b/src/constants/ServerConstants.java
@@ -10,9 +10,12 @@ public class ServerConstants {
public static String[] WORLD_NAMES = {"Scania", "Bera", "Broa", "Windia", "Khaini", "Bellocan", "Mardia", "Kradia", "Yellonde", "Demethos", "Galicia", "El Nido", "Zenith", "Arcenia", "Kastia", "Judis", "Plana", "Kalluna", "Stius", "Croa", "Medere"};
//Login Configuration
- public static final int CHANNEL_LOAD = 100; //Players per channel.
+ public static final int CHANNEL_LOAD = 100; //Max players per channel.
+
+ public static final long PURGING_INTERVAL = 5 * 60 * 1000;
public static final long RANKING_INTERVAL = 60 * 60 * 1000; //60 minutes, 3600000.
- public static final boolean ENABLE_PIC = false; //Escolha true/false para ativar ou desativar o Pic.
+ public static final long COUPON_INTERVAL = 60 * 60 * 1000; //60 minutes, 3600000.
+ public static final boolean ENABLE_PIC = false; //Pick true/false to enable or disable Pic.
//Ip Configuration
public static String HOST;
@@ -54,6 +57,7 @@ public class ServerConstants {
//Public static final boolean USE_ULTRA_THREE_SNAILS = true;
public static final boolean USE_ADD_SLOTS_BY_LEVEL = true; //Slots are added each 20 levels.
public static final boolean USE_ADD_RATES_BY_LEVEL = true; //Rates are added each 20 levels.
+ public static final boolean USE_STACK_COUPON_RATES = true; //Multiple coupons effects builds up together.
public static final int USE_EQUIPMNT_LVLUP = 7; //Nope, not working yet. //all equips lvlup at max level as N, set 0 to disable.
public static final int FAME_GAIN_BY_QUEST = 4; //Fame gain each N quest completes, set 0 to disable.
public static final int SCROLL_CHANCE_RATE = 10; //Number of tries for success on a scroll, set 0 for default.
@@ -63,7 +67,7 @@ public class ServerConstants {
public static final double PET_AUTOMP_RATIO = 0.99;
//Dojo Configuration
- public static final boolean USE_DEADLY_DOJO = false; //Should bosses really use 1HP,1MP attacks in dojo?.
+ public static final boolean USE_DEADLY_DOJO = false; //Should bosses really use 1HP,1MP attacks in dojo?
//Pet Hungry Configuration
public static final boolean PETS_NEVER_HUNGRY = false; //If true, pets will never grow hungry.
diff --git a/src/net/server/CouponWorker.java b/src/net/server/CouponWorker.java
new file mode 100644
index 0000000000..5e0a41c97b
--- /dev/null
+++ b/src/net/server/CouponWorker.java
@@ -0,0 +1,52 @@
+/*
+ This file is part of the OdinMS Maple Story Server
+ Copyright (C) 2008 Patrick Huy
+ Matthias Butz
+ Jan Christian Meyer
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation version 3 as published by
+ the Free Software Foundation. You may not use, modify or distribute
+ this program under any other version of the GNU Affero General Public
+ License.
+
+ 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 Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+package net.server;
+
+import java.util.Calendar;
+import java.util.LinkedList;
+import java.util.List;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import constants.ServerConstants;
+import tools.DatabaseConnection;
+
+import net.server.world.World;
+import client.MapleCharacter;
+
+/**
+ * @author Ronan
+ * @info Thread responsible for maintaining coupons EXP & DROP effects active
+ */
+public class CouponWorker implements Runnable {
+ @Override
+ public void run() {
+ try {
+ Server.getInstance().updateActiveCoupons();
+ Server.getInstance().commitActiveCoupons();
+ } catch(SQLException sqle) {
+ sqle.printStackTrace();
+ }
+ }
+}
diff --git a/src/net/server/Server.java b/src/net/server/Server.java
index 730809938e..cb73c53753 100644
--- a/src/net/server/Server.java
+++ b/src/net/server/Server.java
@@ -26,6 +26,7 @@ import java.io.IOException;
import java.net.InetSocketAddress;
import java.sql.Connection;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashSet;
@@ -62,10 +63,13 @@ import tools.Pair;
import client.MapleCharacter;
import client.SkillFactory;
import constants.ServerConstants;
+import java.util.Calendar;
import server.quest.MapleQuest;
public class Server implements Runnable {
-
+ private final Map couponRates = new LinkedHashMap<>();
+ private final List activeCoupons = new LinkedList<>();
+
private IoAcceptor acceptor;
private List