From a64670492e22a214927377b6166ba726e0191a72 Mon Sep 17 00:00:00 2001
From: ziuee
Date: Tue, 13 Jun 2023 00:19:35 +0200
Subject: [PATCH] update loads of shit
---
pom.xml | 18 +
.../fr/litarvan/openauth/Authenticator.java | 176 +-
.../openauth/microsoft/HttpClient.java | 105 +-
.../openauth/microsoft/LoginFrame.java | 92 +
.../microsoft/MicrosoftAuthResult.java | 24 +-
.../microsoft/MicrosoftAuthenticator.java | 171 +-
.../MicrosoftPatchedHttpURLConnection.java | 150 -
.../java/net/minecraft/client/Minecraft.java | 8 +-
.../renderer/ThreadDownloadImageData.java | 27 +-
.../renderer/entity/RenderEntityItem.java | 9 +
.../client/renderer/texture/TextureMap.java | 7 +
.../TileEntityMobSpawnerRenderer.java | 5 +
.../minecraft/world/storage/WorldInfo.java | 8 +-
src/main/java/rip/athena/client/Athena.java | 12 +-
.../client/cosmetics/CosmeticsController.java | 7 +
.../types/client/SwitchTextureEvent.java | 11 +
.../components/mods/CategoryButton.java | 24 +-
.../menu/altmanager/GuiAccountManager.java | 2 +-
.../menu/altmanager/panels/LoginPanel.java | 34 +-
.../impl/fpssettings/OptimizerMod.java | 43 -
.../impl/fpssettings/impl/EntityCulling.java | 2 +-
.../impl/ThreadDownloadImageDataHook.java | 36 +
.../client/modules/impl/mods/ItemPhysics.java | 16 +
.../client/modules/impl/render/FPSMod.java | 2 +-
.../modules/impl/render/MotionBlur.java | 41 +-
.../modules/impl/render/PackDisplay.java | 190 +
.../modules/impl/render/ReachDisplay.java | 153 +
.../modules/impl/render/TimeChanger.java | 20 +
.../athena/client/server/CosmeticsClient.java | 60 +
.../athena/client/socket/SocketClient.java | 4 +-
.../minecraft/Athena/gui/mods/reach.png | Bin 0 -> 2147 bytes
.../minecraft/Athena/gui/mods/timechanger.png | Bin 0 -> 1491 bytes
src/main/resources/assets/minecraft/pack.png | Bin 0 -> 27217 bytes
...99998e199613431428c64661b9c81a2a2277d00a60 | Bin 0 -> 1534 bytes
...e0d0e0e89726d167d06f5d5d78ab31f58c4d4d277b | Bin 0 -> 1128 bytes
...6bde5d5200d5294088d0c1cf21651927644115b120 | Bin 0 -> 1347 bytes
...d61b3d2997adb106e36a6741b9f05e3828b7c30b68 | Bin 0 -> 1302 bytes
...e05e7e4852fa3ab43aa8367d62b555a8e1456f8333 | Bin 0 -> 1390 bytes
...57ac0737ea97ff44014229ada4d6f75c655126aae0 | Bin 0 -> 848 bytes
...8cf606db51da3ea73f924894eceb92ef8d60f5a517 | Bin 0 -> 1681 bytes
...ff81d9e56165048ff25045a54d4dcc67b20c1914e2 | Bin 0 -> 1068 bytes
...272de281783ab881832bb847d7355ae282a2648a4f | Bin 0 -> 1277 bytes
...ae406e1fd193b659355a490e2f14dc11748ff8d953 | Bin 0 -> 1332 bytes
...059fe8a121be9f461952f2ab8d6c13aec0562d6d44 | Bin 0 -> 1549 bytes
...16d8cb6e2dfb88bb572dd04d6274cc14fa0574d8cc | Bin 0 -> 1195 bytes
...1704cadfd875975edf0d6e5fe19b6d52547b519af5 | Bin 0 -> 2544 bytes
...2d3f5ddf8c82d8338361ef22ccbd57fa1b688c21c1 | Bin 0 -> 2514 bytes
...9b6f9c83912e89553433b323f5f6a19039d0eafd5d | Bin 0 -> 1232 bytes
...6b0e4b38068077093a0103d233d0d79c7937ce180a | Bin 0 -> 1756 bytes
...256ed0efd0c47e0d1378906e742e596d5a74a56445 | Bin 0 -> 1571 bytes
...efb31cda35fd47baa1a34b87e1b9b4a7486f06c6ea | Bin 0 -> 1315 bytes
...b42bdae344421e1bce968df46639be4c4f3b979d0c | Bin 0 -> 571 bytes
...8aafdeadcda5e73fc88a2e1fae7b18a8a06c9f04fd | Bin 0 -> 765 bytes
...5d3742814b7a6059805d459f4b3005782a4cead34f | Bin 0 -> 732 bytes
...763fd8daa6dd770f307e8c484d6af035a357609630 | Bin 0 -> 1543 bytes
...0906fcd1337c062e62f66f8beb8f38ff2e22f82b00 | Bin 0 -> 1094 bytes
...7b56987e9fea55cf70282154960f116b14fb6aa582 | Bin 0 -> 780 bytes
...c7b302a53c3ebc53af9a846f6e0c6244f7e74da05e | Bin 0 -> 864 bytes
...b31771274515b9dd21991af3dcb192e80e549296e9 | Bin 0 -> 1704 bytes
...cb243ac8dd8cf1c5c15a81b44436b9fc4fe37820e6 | Bin 0 -> 956 bytes
...f4b017126869a91d1ec6227b865d70fe847d449d52 | Bin 0 -> 1292 bytes
...53369d6fec8c3b4e2fe57aca852475716152fc9f1c | Bin 0 -> 1836 bytes
...55a7dab6f83bd68531db0872c46e30fd9bbf38ad09 | Bin 0 -> 2474 bytes
...2c503c0039b4b4ac08b454a3bfeabef24af456a2f7 | Bin 0 -> 576 bytes
...b2246a8f42a97d35f5769a2459f64a4962dad946b8 | Bin 0 -> 1263 bytes
...96c2f84de8a626c2afe12d4eebaa44a4d3a719c6fc | Bin 0 -> 1042 bytes
...5ca86930f695acd08e560033132e591e8f0f3c8822 | Bin 0 -> 933 bytes
...b52d2a1a96fa9b7aa9a6717d5930dc739642bcab83 | Bin 0 -> 1017 bytes
...8849f4ad1e2a2d0770741d5024ac3f99f6bf95ea78 | Bin 0 -> 1358 bytes
...ee7f054f85d4b8ad07faab70ef25ed66a89754e5e5 | Bin 0 -> 425 bytes
...dd8bd2829c69a7fb8287740c157db74d932513249e | Bin 0 -> 569 bytes
...7bf056a6fc0bc972b0294da20cd700921c0b31c411 | Bin 0 -> 2465 bytes
...76130f2672084c1ea6e6a1a90f86aa9c4a9bf8e8d0 | Bin 0 -> 1418 bytes
...3194d92303a3cc3de5bf16d853750687004f7d69cf | Bin 0 -> 1304 bytes
...de53ddff45eb2d864056e30fa54c496eac0c0f8e9b | Bin 0 -> 2509 bytes
...63944cea07231718b8deb4f83267335bfabe448950 | Bin 0 -> 1365 bytes
...01ae6ecd4533b7232728117ae1d8d085361e7c4859 | Bin 0 -> 2514 bytes
...68f547f50dcc14963b46e1ffcaaf8fa57331723240 | Bin 0 -> 638 bytes
...6a17d1b8c14e19df39630c5e389cec55e6ab27da05 | Bin 0 -> 2516 bytes
...62e78b560814620a39ddf8930f5ee976daa6fc6559 | Bin 0 -> 479 bytes
...b8d0a49dc0ee84d616cf7ebcd77aedcd49edddf2d8 | Bin 0 -> 1836 bytes
...76f41035cf7ae52f3bf7bc15581f2e8511703458bf | Bin 0 -> 1548 bytes
...df03a72d30f93560c5b79f7e98996b88d61c9fea8d | Bin 0 -> 1359 bytes
...81b714aaaa11f0747d059cd152a2f8bc8d9606d3af | Bin 0 -> 3869 bytes
...9d96cd14773f78fb9f8b5ffc3726061cd94592ad17 | Bin 0 -> 1486 bytes
...22e9f7e6ca041244b88d042df7d858980a63438d38 | Bin 0 -> 2267 bytes
...c6b59e7e9953451ec32b2fad21a41ba779bfdb15f7 | Bin 0 -> 2741 bytes
...b6ad8b94d9287eddae241c6f90b02c7f75c60e78ec | Bin 0 -> 1286 bytes
...6c45fec3636793ea9b37907cc37840afd702f54c35 | Bin 0 -> 985 bytes
...2b47aab0cd064cc3147b356290cc8563f37b65c271 | Bin 0 -> 1479 bytes
...84d5de4cf39b7983a4056f3dfc310a1a06ba270567 | Bin 0 -> 2310 bytes
...9ba7fa80bed14929cf3b52caabdaa56eb7c04c7304 | Bin 0 -> 2456 bytes
...6a830c0394e8a87aee09610dfb4866cdee3cd5dfb0 | Bin 0 -> 1267 bytes
...c8e0fb2026024ff07381f8dbe26d59a8c2aaf10f0f | Bin 0 -> 1222 bytes
...d55fed684cf6e711d09f68a3333b207acab5c3a1b1 | Bin 0 -> 1470 bytes
...bf05c8f3048bc8fe77ffc95adca4c48d5e135006c4 | Bin 0 -> 817 bytes
...8385ad322d110a706aab5c60a8e0c034e5a27b3d36 | Bin 0 -> 1242 bytes
...8345b049aab8786d4aa6b29914ebcd7da1e0c9fd7f | Bin 0 -> 1935 bytes
...e284018999ee322066f0d8d2122fe79555273dd91e | Bin 0 -> 1089 bytes
...8572f4965e1d2751bca861a1d5913fec9d39b9b6bc | Bin 0 -> 1008 bytes
...f24e9e26011dc959ff74768c3f1a9a2a48a420aaf7 | Bin 0 -> 405 bytes
...769ede9cb8fd0220600aaddf36e11cfbdb7751127a | Bin 0 -> 1043 bytes
...a65cd96d60171b08f7b879af1b299b77a05af8426f | Bin 0 -> 1627 bytes
...64ada1077ee5558495652d1e7e7992ef963d6f8bb6 | Bin 0 -> 1445 bytes
...f3819be9b2e3ffaff33b63911404636ed37f0dcfad | Bin 0 -> 3035 bytes
...a88458cf1b4e2f8581a2843faf5c4fecbc9258febc | Bin 0 -> 770 bytes
...b3dc42aa5f7a093f93fc42c6ce28ace72594744fce | Bin 0 -> 576 bytes
...95f9362c93ad69bc38ea2c165cfdef94fe8af651bd | Bin 0 -> 2145 bytes
...5c140d57750049558007643d69f55fec9bf6170ad3 | Bin 0 -> 1259 bytes
...409eccf7afbaecc4876004717d6e8d5a7366df5c6a | Bin 0 -> 1524 bytes
...80597ab9acc54a5e1c92455a59180a3e96f51b824f | Bin 0 -> 567 bytes
...b491cb46531cda2975c0cac65246a1d0ed743fa919 | Bin 0 -> 4296 bytes
...97e6f963520dc405339351fdcf88e7c0c2b1c32a09 | Bin 0 -> 1781 bytes
...5d014164a74beb385837a6e0faba1748761429785f | Bin 0 -> 1669 bytes
...5d0988625b3c02a76b4d761efa08bf39c4e5645ba8 | Bin 0 -> 736 bytes
...fb5bf12c3d52393220e97ce7c43735c6fd950c01bf | Bin 0 -> 1844 bytes
...ed7af54dc5032367928f2b4c28163f722e819d0486 | Bin 0 -> 3461 bytes
...81086bca7f238ade939e49f30121acc31861ef6bac | Bin 0 -> 1151 bytes
...de428cf83bcc6f07e30fa9826289fc8ee2750bf21f | Bin 0 -> 2041 bytes
...6aa94c6971c01f0ec72b1fe171861b13a75d2ea832 | Bin 0 -> 2214 bytes
...76b09e250c890f61d1943ecdecc9a10653cb82b9b9 | Bin 0 -> 1642 bytes
...7bdda279fa4857e1413720d7638a8f64075c54e578 | Bin 0 -> 961 bytes
...926ccc5e4e875c15924638eef8ed4b0344867570ce | Bin 0 -> 1421 bytes
...17bce982568dc481f71f59f1abf49f53cfaf2ce113 | Bin 0 -> 1097 bytes
...3084057893939f35b1daf59d635006029292c8a528 | Bin 0 -> 1520 bytes
...efc8551b99182056071615c6749ac825a0be876e80 | Bin 0 -> 1084 bytes
...9521cda8abae134dd4644aa9afc3887ba07f46f225 | Bin 0 -> 1400 bytes
...12986f36b727434d26ab48519f9cb99e43f28eb4f1 | Bin 0 -> 743 bytes
...55ebb1e5b886737edebd0024c207f397c575514741 | Bin 0 -> 2703 bytes
...84de98f5671943b52ba30a0b112c85ec402ac7c48d | Bin 0 -> 1330 bytes
...a4a40a439a70a2ea8544475a069ec2606f5eedfef5 | Bin 0 -> 2487 bytes
...f8333d0c17069d1f385266462f344b3fe280892cf3 | Bin 0 -> 1934 bytes
...0bdd9ada32bc401a238ac5b28c0efaab111d77200f | Bin 0 -> 1823 bytes
...eed6b215a8c65f86bd07ac6f5dab96179535040cf2 | Bin 0 -> 2630 bytes
...ecaa13da084011cd5773e7afe4274416adb9d2e75a | Bin 0 -> 1126 bytes
...a4e6f99a0b73c0748da6eb4d90b9bc8da9934ee6a7 | Bin 0 -> 1165 bytes
...0c111562c8dc66cd3503c1fdac91a956dc37ef3954 | Bin 0 -> 1286 bytes
...94df20447707254fcba383c64aaea0834e609eaf93 | Bin 0 -> 2067 bytes
...f052dc800b90592a3b5c726bdabe34a104fa9cf692 | Bin 0 -> 2425 bytes
...523ce82a09b8d748c93f10cf0d007b78e248dd6b57 | Bin 0 -> 1432 bytes
...d0b935f226fb7dca7fc555560d2b44e8a478e34576 | Bin 0 -> 1520 bytes
...59ee689884c43df36398078386ee312faf9c01110c | Bin 0 -> 598 bytes
...af2b6609af6a84cd355db4f3afe7e030e97fce592c | Bin 0 -> 742 bytes
...104b445c1e824dc52e7aaabe88fb72203890679f13 | Bin 0 -> 1338 bytes
...d5224040dc9148ebb7c7fc30f93b06e5aa9cece252 | Bin 0 -> 1508 bytes
...38c01a2add2b5b8849eddcba3d86cd9e1393fb2da8 | Bin 0 -> 1089 bytes
...a090d6c07d434b444f80a1a01840b65663ff86de7c | Bin 0 -> 985 bytes
...db86de31631c8248b029267eafe73a87fc60f3e53f | Bin 0 -> 2577 bytes
...d7ef7cb04d59a51b891a786777b0e7bf3acfeabf22 | Bin 0 -> 1560 bytes
...58780d13626d7e64ea8d9d4e6677d2271d63a79d6a | Bin 0 -> 1164 bytes
...ce6ff620e43a001f30b0ed75b7f42b0a5c67dc7ed0 | Bin 0 -> 2089 bytes
...eedcb730eed1b4581123b4240277b95d1f7057e146 | Bin 0 -> 1692 bytes
...d361e20723b510f7b4af53c91faa1885fc029fd4f4 | Bin 0 -> 3336 bytes
...c97a0492cbf6fdc517b9adfe8b41340cad7a0ff74a | Bin 0 -> 1184 bytes
...09a5e3e15d1533112c23ff46ff8d019f3413cf0599 | Bin 0 -> 3443 bytes
...956d4d6626517d47ab923dc0575ea39eb17b54cd41 | Bin 0 -> 750 bytes
...774114dcfb47765fdebcd96f22d21fa952f86bb2c5 | Bin 0 -> 2014 bytes
...94bd4b5d53364c4dcf91a68232cf67b0bae17d2158 | Bin 0 -> 1398 bytes
...8878388decfc3ab3e180442cd182578a8ed4136bfe | Bin 0 -> 849 bytes
...b6f0c2784ad1fe4e508ce7cff96735c661daeee260 | Bin 0 -> 1812 bytes
...b4107f6f92e3cd6095dfa6cbc55ecf3aff1d33c123 | Bin 0 -> 2175 bytes
...5fad78884232870c7ff1e6f462b13231cceec78150 | Bin 0 -> 1169 bytes
...b3c91c2c4eb08896d6744df8ba7e9deba147b07c48 | Bin 0 -> 1390 bytes
...1d6d78fd2e397542fd6b1c7fd96ebceb2aa47eaccf | Bin 0 -> 1716 bytes
...0625ba269f4d882413ea89d90e51ba4bd0554c35b8 | Bin 0 -> 1453 bytes
...3f1f76ac1a6a1c7293523123ed768dcfaffef2f097 | Bin 0 -> 1363 bytes
...6d2767b8d69ba01024c28e16ba183cc201e887756a | Bin 0 -> 671 bytes
...fc345eade0fdf2950734196754e4ec947aa403bb78 | Bin 0 -> 1533 bytes
...67f0f3b890fa1afcb01388eec8261c726256be6c22 | Bin 0 -> 855 bytes
...f948cccc7ecf676374cb8948dda2a0c85bfbd30179 | Bin 0 -> 760 bytes
...61ae7f3dc750662df7d7aff6e332f24d22fc084e0f | Bin 0 -> 580 bytes
...f71352dacc484ae92441e27934010a85f6cc8062f1 | Bin 0 -> 1655 bytes
...e5f6085094fc1dee1dd4f480228e45408a237e8859 | Bin 0 -> 1015 bytes
...5ca2e0e7cae9536455983c7fb5b0e752fb38168734 | Bin 0 -> 965 bytes
...ac61d94957003c8dd2aa33209b7f56575fafd02b04 | Bin 0 -> 1096 bytes
...a8c9f318bf8a4ff24114ade5aa416ffbdd72d90128 | Bin 0 -> 1357 bytes
...b916a893adb2599ec40739917ea5483953089b80d1 | Bin 0 -> 1809 bytes
...0eb3d3ad2c973b96acf957b73b7861a0e4e66a9c40 | Bin 0 -> 2730 bytes
...f43044f3187495318e023dd1d753ee2ec9bb813004 | Bin 0 -> 1271 bytes
...ebfd402533472d908a667e9d77abf4ebf2aafd1c58 | Bin 0 -> 2301 bytes
...9a6634208c5a684f5dc1b0d7aab86cd2e277877bf6 | Bin 0 -> 1595 bytes
...23d51105af61e80f298c20b4ec4c26f2e89769171c | Bin 0 -> 1325 bytes
...e55880102f46eaf82d98ec732d9abcd09538ad6fe1 | Bin 0 -> 629 bytes
...1b0a0893cb3a08de3dfd9e8175c69e49e681cf6f67 | Bin 0 -> 1978 bytes
...55adb4276290bbf25f6c5ae19237c594002a6a5c43 | Bin 0 -> 1492 bytes
...81e0977224c1a6307c919cc34a7dc65a4627564fa2 | Bin 0 -> 1485 bytes
...a46c647d76de6b3ae1723c7da37c2ae36a557183e8 | Bin 0 -> 2007 bytes
...8293f79da852bf606b46ec1f3d66ca900bbf91f008 | Bin 0 -> 1423 bytes
...7a8dfed1af30cc399417ffda83bf453b8977e94507 | Bin 0 -> 2009 bytes
...823bea2b3d72ca5481fc19bfd3f7c73a273dd55e90 | Bin 0 -> 1442 bytes
...3143c145142b93cf6737328bc4b1c22c3de81fcf66 | Bin 0 -> 1212 bytes
...9871813f1a80e30d155a96bc0817e53269a9040a81 | Bin 0 -> 966 bytes
...3c20be86cfc5121f761167eeae38de8278a1922615 | Bin 0 -> 1618 bytes
...45db54feb7b5a0bfc915963820d0d27fd775183d55 | Bin 0 -> 1022 bytes
...eb0f1d5f8cec54c5ebffdde157d441970effb35151 | Bin 0 -> 1426 bytes
...17894e4dcc9c9157c94bed6ffc5723eb406034da41 | Bin 0 -> 2220 bytes
...6c7194a9cc31d764ed52135ee2502212d9c2412a96 | Bin 0 -> 1708 bytes
...44880c929ccf5259aca82d496ebb2fae926509c457 | Bin 0 -> 1111 bytes
...6cd85073af7bad0c174279668f8976b840ca242015 | Bin 0 -> 1094 bytes
...0cb324a2e7788c8c17dbe181f42f0d215517aa928e | Bin 0 -> 1161 bytes
...8443e3b2df0cac2b021f75d7305f68e3c2f8f0609e | Bin 0 -> 1037 bytes
...bf8f3190b0bd0e0976d1b5f614be2940af188c7273 | Bin 0 -> 1579 bytes
...c596cc3cf530de744d224c136144716b9c6e4b6ccf | Bin 0 -> 646 bytes
...456e45d555f9e88316f1506c711ccad6b73219c086 | Bin 0 -> 2789 bytes
...909bacde2eea5eabf8b787ac965baa16ed4671352b | Bin 0 -> 621 bytes
...fa602fbea5e690954db6f02376809af25418cfd454 | Bin 0 -> 875 bytes
...07c4199169b908d3e6a346a924515103194ad61ecb | Bin 0 -> 1909 bytes
...4b3c633c64a626eddcda83635c99b5b1b4f65d1801 | Bin 0 -> 883 bytes
...aa710f11d1194ef4c1732e77981a4b70af29390ff7 | Bin 0 -> 782 bytes
...74831fc11c7ef3a1e06e8b2fc53d7cf6201dd5fa53 | Bin 0 -> 964 bytes
...e530049ee3d846f58eccce9bf577f7f63b37a084bf | Bin 0 -> 929 bytes
...8f9bddb10968356dd843c0c309ca69b828ccb5dfac | Bin 0 -> 1517 bytes
...a15ead323bf0f53391f39640fab30eabd78b589937 | Bin 0 -> 1914 bytes
...d346232736f72e07b0e3c167b81f969e9500df1466 | Bin 0 -> 1710 bytes
...d8ec22d02cd6f7433225ebefbd9d638d25cf8bdfe8 | Bin 0 -> 1251 bytes
...41cc28d735f2204dcb14b314a6519d964f83d11ffc | Bin 0 -> 2031 bytes
...89863232e5cf51b961f3cc821140bd306952de50cf | Bin 0 -> 1949 bytes
...2743edcf4efdbfdfaed4ac641ffd413a4265706478 | Bin 0 -> 2183 bytes
...f3be68e78f21c7f366957919c03116f9bdf182b91a | Bin 0 -> 1163 bytes
...3b45b33cdb3f556f9174bea4bb82257b561caab1d6 | Bin 0 -> 1329 bytes
...2b189c55dba75341466083c2ef43f30bcc334b7923 | Bin 0 -> 1350 bytes
...6dca5f3c5b6a1c5d55d8c4a30c00bc07174ef7fa65 | Bin 0 -> 2363 bytes
...c4353446db7c709da3b98d0f25c43a5bf2cca05522 | Bin 0 -> 1854 bytes
...25bd6330b2a1f319b2798de529b5b1ba51ce975c39 | Bin 0 -> 1761 bytes
...d0c8e67d531276cf421b42addc9944ab09f8b2e787 | Bin 0 -> 1792 bytes
...d1968b520b288c0b68242c126998f85c907849bdd5 | Bin 0 -> 2039 bytes
...ca881b513e863b9d45efba8923527382dfe6070466 | Bin 0 -> 3095 bytes
...cc459580d68a5996f106b6b56b24ec046c801c00ac | Bin 0 -> 1115 bytes
...5924cf1c3f09d597ae68e359670e8068ee864fbab1 | Bin 0 -> 1825 bytes
...ed1a9d5f6171017b6550d86b957d510112dc604e8b | Bin 0 -> 1548 bytes
...12136428565eaf8cfdfbd9e4a1f2573b67e5b86a95 | Bin 0 -> 551 bytes
...8b2139076d2ee0f85d0b8635ad3c3727484c7d50e7 | Bin 0 -> 1851 bytes
...d090a9dcdceb2a62233b5368fe56c5b63d7ef79043 | Bin 0 -> 1420 bytes
...dc5d257e8de69c221e48b8e592a28d1d69bdf7e0c0 | Bin 0 -> 1193 bytes
...71760d43239c4f9c391ca71c63069c5d70a09a66e9 | Bin 0 -> 1845 bytes
...64e8ee5e98fe659d44c4311ebf78d2f74705dc0a78 | Bin 0 -> 649 bytes
...843479ff9696e50f742a7d40884e8b100c431bc683 | Bin 0 -> 1988 bytes
...63c8865185f18e48090c564453455e6daaf58ed88d | Bin 0 -> 2762 bytes
...6d49ac20f4d7122e068c89c639e7bc1212a33a8799 | Bin 0 -> 2277 bytes
...ee0c672924dc2abfbef0ab3f871fd6e8b445bcf8d2 | Bin 0 -> 1750 bytes
...3e51094d4c856d3501bca58783add8ba1584fae99a | Bin 0 -> 3124 bytes
...602b6b0fd0f7e4ce28c46c8631d7864a237ace04c0 | Bin 0 -> 1719 bytes
...09ba90e2e15c68a19f7d9a7dc05ec4a57170784cce | Bin 0 -> 1435 bytes
...ee53633bcbf422983223bc4a7ecb4f56340d575c1d | Bin 0 -> 1935 bytes
...39ec042b3cbdab5da57eb3e156f05104c68615afc3 | Bin 0 -> 2793 bytes
...458124958f17a897703a23d87eba3d3471a5854544 | Bin 0 -> 1634 bytes
...3a7f4cf10cf5e790b01c9d889de6fff969a2c1ab8c | Bin 0 -> 1068 bytes
...aa48b4b3d029866940e6d1a0a7384d3efc8f5563dc | Bin 0 -> 1472 bytes
...8789e76c4926923418bf1041c5fdcac9ca7790974d | Bin 0 -> 1783 bytes
...c43c4a441479a808590b214e3f9815a332b581a20a | Bin 0 -> 1497 bytes
...7d3bcb369d06b24a316149d8650624f84522d3aa28 | Bin 0 -> 1156 bytes
...9217a8fcfd599a00856032d75d991c798f402d7442 | Bin 0 -> 1168 bytes
...178c763582a0aa42fd11b795a7fc1f2067fdad6d6c | Bin 0 -> 2755 bytes
...d62952d28b330070d1d3043a41750cefb5b080a5bd | Bin 0 -> 1770 bytes
...fcf46abb3cfd0b6b6c450f7b189e8d129ea800f3c9 | Bin 0 -> 928 bytes
...1e8be3e4a8cebc21ea1bfbde2fc5ca0388981eefa7 | Bin 0 -> 2988 bytes
...6682fe3a0c0b0657d26ce96110943da016f732b6c6 | Bin 0 -> 3719 bytes
...43c43ab6a8e14af9deb9b60f29cb33ef320a02677a | Bin 0 -> 1386 bytes
...69455e014d573f6801dc096632a0c278392c4764c1 | Bin 0 -> 671 bytes
...240f0df486bc55e0c9c3bdf199d31ab25d604eddc1 | Bin 0 -> 1842 bytes
...a32188d9429acc68ecf71408dca04aaab53ad8bea0 | Bin 0 -> 1046 bytes
...71d24167ff13b60a152787e7c69323162a812b2863 | Bin 0 -> 743 bytes
...423e28dac7580fd7195752f9f00a7277d7d50fc425 | Bin 0 -> 1322 bytes
...35cf8b5c0719d5b5aa460836afe2c9d31737af616d | Bin 0 -> 771 bytes
...88f07572edec37eac90fce873374b9c796bb10045d | Bin 0 -> 1143 bytes
...bc4c3464df782213ee0c87e72b9cef64af9130f6fd | Bin 0 -> 1626 bytes
...bd0830c8c9bdb63ac8b1719ca52986820b44fc2b36 | Bin 0 -> 2051 bytes
...539f545ebad6f296ada9d505bf29b32e6c4ad0fad7 | Bin 0 -> 739 bytes
...5071b06bccc264f87172aa7e4969540c857fd83a11 | Bin 0 -> 863 bytes
...abb9e109436108bed6dad554a7bcc8b66e8762b340 | Bin 0 -> 386 bytes
...55328119b272b82b15ccf30a80eae7736b526887cd | Bin 0 -> 849 bytes
...483cd34843012770b4b768a8c874278994c37831a6 | Bin 0 -> 1108 bytes
...7a5fe0a5befaf63ea326e00b0480c4a9b722836909 | Bin 0 -> 1434 bytes
...b2b83e5bd4b3307c583612d92ebb51b0b5aefc6d57 | Bin 0 -> 1902 bytes
...fd8da14c6fa08f71e164d33e794cb3c2bf135fbd90 | Bin 0 -> 1195 bytes
...9b2ffe025456eb694c7471d71f301e839e599e94fb | Bin 0 -> 2779 bytes
...33cf20cc763fe2d48c429e3190975a627e8e50dbde | Bin 0 -> 1682 bytes
...3aa683327961102ab7d0a30f5e2bc182455856c7db | Bin 0 -> 1434 bytes
...16bcc67beed7a68a71d29972b5400d91eb47bfd3ad | Bin 0 -> 1200 bytes
...7958e1d79af2d70ef2d3193caef332e08b2f634992 | Bin 0 -> 1483 bytes
...c6e3c4eb87da5a0ba30f0d1d65e5fde3ad509f5f7e | Bin 0 -> 1557 bytes
...1e97638667497dc9edc695c95f6e32ead8c508d7f1 | Bin 0 -> 1404 bytes
...3871881fd8a298a19e1bcb81fa7b5de39328963f2f | Bin 0 -> 1187 bytes
...26ccf1a8430edf2d5f99e0f2dca9ff283c0c8926b9 | Bin 0 -> 1486 bytes
...3cfbb273b51e7275ca53faf0579637218be494a334 | Bin 0 -> 422 bytes
...2b2a8d76005b6ee9fb9a69825eae4aa9eaa5879178 | Bin 0 -> 1185 bytes
...65a2d69ea3f41309e663d705c0dcadab95d1ef7df2 | Bin 0 -> 2126 bytes
...8c47c2054aca68f63cbe1380ec58b0241718805a7a | Bin 0 -> 1074 bytes
...c5ccc756c502b65870ef9dcd79ad657801ffb88b07 | Bin 0 -> 1270 bytes
...5914095ce6ff80297e9a1c8b61457f0e55aa1bc6b6 | Bin 0 -> 1415 bytes
...924e878926bbf3fa1e7e7d7dfdff0a9b9ba669ce28 | Bin 0 -> 1507 bytes
...29fb9ddb3f3736306e80543c95dd0a0d650cb7cf5f | Bin 0 -> 1468 bytes
...d1fa7a40c2c9d3186c15e2cfe1a711c31f1845d46b | Bin 0 -> 1308 bytes
...4a283f433e22a2bf819bcc0ca8c8b2ce644abb3697 | Bin 0 -> 1790 bytes
...bca62376856e8271fd436ac8e4d293b76315cabffc | Bin 0 -> 1224 bytes
...2277f2cc40509b06a1864e0d30f8aa92ef7d4dcf1c | Bin 0 -> 4454 bytes
...b3a8931efb04214d106f51d47084db43bc9f91cb5c | Bin 0 -> 1512 bytes
...9b1da5dec8ad1814676c7e2d58643b0ec355fcf59d | Bin 0 -> 2598 bytes
...05e57cd1c9352bd45e2f0d502d0f780e8236586688 | Bin 0 -> 450 bytes
...4d473e7c297d830223a067f51aaaf16fcc5dd5d7eb | Bin 0 -> 2711 bytes
...510623187707360b37b1833c72f8d71b89063dea2b | Bin 0 -> 3648 bytes
...ba4ab206aeee41dd4af9ecbf37f7d6113f4d193b57 | Bin 0 -> 1415 bytes
...7ac8913836c6ed16dac3a46992e1ed313b9371b5ea | Bin 0 -> 1675 bytes
...b93b361acf2ffd0caa26f72829302c707c0b5a196f | Bin 0 -> 1146 bytes
...f55eb8a58645042adcd554350ab9801c70dee908b0 | Bin 0 -> 1817 bytes
...feb1858b75b8dd5abb4d3c350dfc2f6a54f430c2fa | Bin 0 -> 1031 bytes
...97fc076f636620e4854b5ae24afc44e26cdb165df0 | Bin 0 -> 2472 bytes
...fe79585e13a1d7b4a20361dcd3181a373cf75c0cf4 | Bin 0 -> 2011 bytes
...ad1ad75a5ddf0d5bcb539b5987f80f1c29eff93301 | Bin 0 -> 1034 bytes
...f44594869e7f30e2ce9c42503a3108a980b4007f13 | Bin 0 -> 1013 bytes
...9ca6220fd176561eb012db52aa9a4feb81da6c561a | Bin 0 -> 1920 bytes
...e27e902c064c84d66245ed7f79f5f44344d09197dc | Bin 0 -> 1238 bytes
...f9b60db775a03bb02887c63a21df620131ec913cdb | Bin 0 -> 1536 bytes
...b253ee8584a8b444d3335deb1c729f934af9f2aa47 | Bin 0 -> 2068 bytes
...fdeaca553bd37e0c0afc729597904f56efcb2838d6 | Bin 0 -> 751 bytes
...64737b5ca32801d77657ee574b0a209a87ac12ea65 | Bin 0 -> 1456 bytes
...49208425f52f02d04b5427a7cb8b108389d9edfd6d | Bin 0 -> 778 bytes
...e1ca97e5f0feaa42226a1d736c2ecc0282dc2516fa | Bin 0 -> 1217 bytes
...a24addd10d599ca388d67e9da39e8139f3a96579cb | Bin 0 -> 1264 bytes
...02b31a0bf737e55797aa866d7e56013443043ba4fe | Bin 0 -> 1311 bytes
...425c147acffa1797833d3071595c651da78476eb48 | Bin 0 -> 1269 bytes
...72ce109928527cdf9f2281f66e1fee5aa45bfe5d2e | Bin 0 -> 378 bytes
...5cd117d3f8a2b6173f7d10b7e96c39aaa665390dd9 | Bin 0 -> 801 bytes
...44141a41f078c2d6433b2d515b08552bd4821841db | Bin 0 -> 1336 bytes
...9024c43270f0b20d6e5b3394dcf718b7da9c49c403 | Bin 0 -> 825 bytes
...de2fc9640fc1dee91662fdc48fa83e8cef9298f89d | Bin 0 -> 1266 bytes
...8244b87f9c6035385b9dca9c956e747aabe54af00f | Bin 0 -> 2183 bytes
...ff20d8b184b75dd090fea35dcef03309bfedd6725c | Bin 0 -> 1606 bytes
...a3fed700e427b31e5890c00439f76489e0ae878f98 | Bin 0 -> 657 bytes
...78af238332ccd8cc7b3c34636a7338ee31b0c19845 | Bin 0 -> 670 bytes
...cbe88704dbd6ccbd2efbc07d437aff03f7538160bc | Bin 0 -> 1980 bytes
...75edc07786ca17ec0fe673c5aa08f75c61dbd10ed5 | Bin 0 -> 836 bytes
...6cca4e3a200f1ab9d45d0687aa0a18ceccddeefdee | Bin 0 -> 1799 bytes
...15a5d232cb38a0cfab237715728c725c1f277635a2 | Bin 0 -> 1283 bytes
...e86f7517f7b20d72c1b07efadfcdc31cef63c1280d | Bin 0 -> 2921 bytes
...cfe9710435cd4355c94b2138b7f5bdc1754ff53dfe | Bin 0 -> 2990 bytes
...5c8a01ef89925e3cd44f06be90e1c03432cdd2677b | Bin 0 -> 977 bytes
...2bba63f8e568743bf93a98d55e54af34cf3016f35c | Bin 0 -> 1083 bytes
...064c4ddbd6063ff9315eb77fba0246a908593dd17b | Bin 0 -> 2891 bytes
...20572eda9430612bdaf3e5fd5a3e492b702a961edf | Bin 0 -> 1059 bytes
...48cf2b3cfe86dfa557714828dc10e0f234106705e4 | Bin 0 -> 1494 bytes
...8a834d90ac4014a1f34ccd681ebade28986167beb2 | Bin 0 -> 1029 bytes
...7b27d69590190c1ccc72cbf60ea65bb056b24bc282 | Bin 0 -> 1466 bytes
...8a2f73270f394e303723d8a1a54f5c1a7ac6e71989 | Bin 0 -> 1940 bytes
...230e337e48be526615e30f78aeccec6f7b4adfa908 | Bin 0 -> 1342 bytes
...350e8dd527cbbb649390d3ba3e69641bc8fb853e7d | Bin 0 -> 929 bytes
...c1c97ddcdc2dce09a9acdd20cdaa398de00931d187 | Bin 0 -> 1114 bytes
...50308141703d9540004ce0650a9e6d3df2c95a7987 | Bin 0 -> 2170 bytes
...48d3c75076ed49d0661a8e2d40a4e0f6726192aea4 | Bin 0 -> 650 bytes
...dd80633160336f09be8d1d9131a795dec8ed9804f7 | Bin 0 -> 1507 bytes
...a5891978f9ba7d959115909fed8682cfea56066979 | Bin 0 -> 1229 bytes
...2c81750950962d9d508328566308a37725a4b91a46 | Bin 0 -> 4043 bytes
...53dde9d8770825f9356fb09c4d1b843f6494e22c47 | Bin 0 -> 1505 bytes
...a84070fe397bd8c51b42fe986df8bf727a32819fe1 | Bin 0 -> 3036 bytes
...8bee58012eca03e70c26d065c4c2e33a0fdf14acc2 | Bin 0 -> 1477 bytes
...ef2521ea1cc6d6bb91b65412062c9688395f943b40 | Bin 0 -> 1005 bytes
...25635e7d3cf1f77ad7863c1b579729dc7be49e2862 | Bin 0 -> 1877 bytes
...01df7aa836fddc12902f5ab80f55cd7b9f92f7a40e | Bin 0 -> 1390 bytes
...568b433f571910760402057a916dfe7bc972a349aa | Bin 0 -> 1406 bytes
...df82e99d3d7da057803f93411928538c37aacb7108 | Bin 0 -> 910 bytes
...d8929a42f7dfd1ca55656b3327aeb7dd7377506c13 | Bin 0 -> 1138 bytes
...6bb73313f171882c267ed1abfdfa5e148e80008e64 | Bin 0 -> 2309 bytes
...6f3795717ed95cb7665b85fadb069ccc57850bcf19 | Bin 0 -> 1043 bytes
...08899c1b6b824db349edda68bf93a92d03ee5ed3c7 | Bin 0 -> 1324 bytes
...5f23f557660b8b5ecf2ac2591ecfa6c408afc965e6 | Bin 0 -> 4139 bytes
...c0e39f77ace85aa74e17265c372233f913cd3fb447 | Bin 0 -> 1584 bytes
...8d33ca3fa5afa6ec1fb6166cc33f56654c2528b126 | Bin 0 -> 1045 bytes
...dcfa7547c4621c1bab6320306449500e4d16314bf2 | Bin 0 -> 1262 bytes
...d508072eb762f7ba416a9ced0ffdb62f9eb7117210 | Bin 0 -> 1373 bytes
...78e46d2f453ba336575bf1d75c3d34f320bda6ca29 | Bin 0 -> 1462 bytes
...0a9562c42996760b662343777a70844b6cc9a19a21 | Bin 0 -> 998 bytes
...67ab834607728b14016f72f9b225f5ea2a81869c53 | Bin 0 -> 3511 bytes
...ebefd7061890953186e7d0f1202e709e0b67d0cc67 | Bin 0 -> 1341 bytes
...044e3dce7e44871456909b322f35bc57a0bd5b4799 | Bin 0 -> 1137 bytes
...894ca6b221d6c44bf979b6f43eb9455c8983084a34 | Bin 0 -> 2170 bytes
...e1e31fdfc931da484f21e11d661d7840152d466e64 | Bin 0 -> 1621 bytes
...c3c0def2d28c7ef34b6004906195cb0309b7aea392 | Bin 0 -> 1827 bytes
...28a5d169df8fff2380a17f91f569511d0931844aa8 | Bin 0 -> 1999 bytes
...6dd84dee64218e97735e271f39c57ebdab05d79eaa | Bin 0 -> 694 bytes
...a4fedfb1800f5451861487bc7a995749fc7cbef83f | Bin 0 -> 1325 bytes
...42a3942ca2421257df7fb8ca858ecceafc667c5ae3 | Bin 0 -> 951 bytes
...c1af53fa2dcebab5709a3402c30b1a94a1bcacc009 | Bin 0 -> 770 bytes
...00299db67bf12c4fef07cdb0a6ecfdca43a5066726 | Bin 0 -> 1398 bytes
...a6a2090ddaea91fe1b0121a9eb2a978868e63e4e52 | Bin 0 -> 1625 bytes
...6ea81991c0a72186053c96a216cef604b5ec5df461 | Bin 0 -> 747 bytes
...1c79ca6b9743219751ffedb9940e5a8a93b09fd9d4 | Bin 0 -> 1868 bytes
...c2ede2755bf7af3ba7c3c6fd80e77e013c31d4de9c | Bin 0 -> 809 bytes
...00f962441d87f7efb3ffdd1ba522bf82a40ad65378 | Bin 0 -> 1341 bytes
...f06ff5e4f4e57f6a15769e9c53ac261cc7f25d6bb2 | Bin 0 -> 1484 bytes
...d7c4fd97bf04c3ae40c154f81468a2cae40d2fd80b | Bin 0 -> 1105 bytes
...35d69112e03124ee3147035e94a5327f7253cc0d67 | Bin 0 -> 821 bytes
...f744ed506507da183403bde54624ee3e36dfa8a61b | Bin 0 -> 1169 bytes
...1d289e38c4d63621bfcac639a209e762a93a2329a5 | Bin 0 -> 1541 bytes
...3daea7ccc48a37a2a8129c52f0de07f72964ae47b4 | Bin 0 -> 2514 bytes
...9b5c4d33aa0b178220f7cf42b6b8d0d4ac3f431932 | Bin 0 -> 775 bytes
...55f5287f90347d48b0dfb69c03011bcd767f237558 | Bin 0 -> 1521 bytes
...461f0b8d7762a3dd28d621f378b4a60e32958c9a1d | Bin 0 -> 3778 bytes
...0c6edccbefefba5c72ad8889dfb5b7770ed87813f9 | Bin 0 -> 1797 bytes
...37a0a7783c2413cb17fa55440559e65696510d5184 | Bin 0 -> 2337 bytes
...f42f8d6e8f496d07008a49d5c372644e65fbd4f02d | Bin 0 -> 1038 bytes
...9fb0f776033beef82f8155dfce557a44bc328f7a25 | Bin 0 -> 2094 bytes
...6b4f5b57d1e2cf6a2d82c778becf958cdea6070840 | Bin 0 -> 1977 bytes
...11c0f7d8003ea90da3e807cb7ed0850ac1f3941fa7 | Bin 0 -> 1174 bytes
...29d1da1a1e945e2da8153085074a183e3e93793e74 | Bin 0 -> 2687 bytes
...d8ef30d591bc44ae134446841a1375b3914acf9e4f | Bin 0 -> 983 bytes
...e4c705d1182bdc0c9c011d7577faae5d3683d24546 | Bin 0 -> 1108 bytes
...8b6c93aea34055af3cd0a986a3e703298b435bae43 | Bin 0 -> 884 bytes
...5028b9084ac4d9e8e96d62c971f5f2a85a716294ca | Bin 0 -> 755 bytes
...c14b2046aedb62366362840dc8a29b2f5693a47e24 | Bin 0 -> 1238 bytes
...da40be6fa6fa66c2770046528390ed191f9c2a8420 | Bin 0 -> 2251 bytes
...1d24499dad37f7a7274991662ef31c128fa1bd823c | Bin 0 -> 1463 bytes
...efc249252b1c28e51d71ace22628436509879fd90f | Bin 0 -> 2349 bytes
...5bc2af870d3db93f6ce89163a3d971655b84c5c550 | Bin 0 -> 1905 bytes
...299a912446cf181999cf2230f7e41b6d2316a5b1d9 | Bin 0 -> 1456 bytes
...f664eb7f7b76cff91a98cdc2e56baa5e20d9bbc77f | Bin 0 -> 2544 bytes
...f6d95e00da7b19ca3e990cb0c6243f59cc6e375d67 | Bin 0 -> 2277 bytes
...1e3491d897c801da3b764d6c3869ad8db3b9f845fb | Bin 0 -> 994 bytes
...20c34dcfa509cf9f03e21483cde6ae13c48d79cdd3 | Bin 0 -> 1318 bytes
...6a790dd9862bb787f05f31df4a6c5e87f7834a457f | Bin 0 -> 859 bytes
...598adeeacd34570b85f9504f7b786bf2ac3e30ead7 | Bin 0 -> 2847 bytes
...caa696951efd1a907feac3bacba03e9e85f671a2e8 | Bin 0 -> 1742 bytes
...6dd2bcc2602651d50b4a9ab90aa126b599c2708f84 | Bin 0 -> 1343 bytes
...d510d96db5b54f6475e158a1ebf20639f92f1a1347 | Bin 0 -> 1475 bytes
...1f2f0c80027dcf5cc5ccb715e88b0c01126b3b66bd | Bin 0 -> 965 bytes
...3671b4406c3bb5346b4a0a179d7d4404913c71c1e4 | Bin 0 -> 1823 bytes
...f102736ee5635f90ba08c7e999adfff91c92340476 | Bin 0 -> 2577 bytes
...739cf0069a06fbf2571908fd3b69a7a47ab0eba635 | Bin 0 -> 3218 bytes
...8e3ebb33a355b392579b59161ae0fb8cd542965f02 | Bin 0 -> 570 bytes
...5b9dc2d21dd7aab7d49516d7354428ea385ff65d90 | Bin 0 -> 221 bytes
...32cc41e7d21ce8ea8119e5b0f9a2b3c6b84ebef36c | Bin 0 -> 2940 bytes
...85770d0aba445deb728c022fe5ed5b552038d8ee6e | Bin 0 -> 1295 bytes
...55b24e9c5d0200153aebac6a5490e78df7d02afbb8 | Bin 0 -> 1229 bytes
...c8d51c05e850f46860d2217eb49e2f51ec46eca4da | Bin 0 -> 1420 bytes
...a0021f24522ee1d05ab36f4bd14a68dd63c770ad67 | Bin 0 -> 947 bytes
...5df4af8a3716b5253df78d2f99fff95e625808bc5d | Bin 0 -> 2790 bytes
...593697f8e2926f4770f92f0464117997350340eb46 | Bin 0 -> 1099 bytes
...7a6dae391a6975cb29fc90f8389ebbadd511401420 | Bin 0 -> 2024 bytes
...6b99665bf488b431ea386e46c20e71cfc7e16e99f9 | Bin 0 -> 1229 bytes
...824d1b71245f57256c1752a936f665e741d0faf09f | Bin 0 -> 1574 bytes
...65e725b434a8f1f194fdb410c711650eec168bccf1 | Bin 0 -> 1016 bytes
...2af413b00b945dfc6ffa86248544a56eb6bfc3f6b8 | Bin 0 -> 1517 bytes
...b4abc9d47b475295488292e5d3c31b26ca26e1a163 | Bin 0 -> 1391 bytes
...cfb3249b545e05d4633cfd27714b204a5533d00a5c | Bin 0 -> 1490 bytes
...661dfc87131a2668eb3d1ce40dd5faafb56c8f3540 | Bin 0 -> 1540 bytes
...8b360b5cbc570d78ced2dcdbeb8fcfbe35aa5083dd | Bin 0 -> 1687 bytes
...ea814b805627589436216f4a86cc1b671327bbf857 | Bin 0 -> 1191 bytes
...745ab0a48f21e88530e761a273aea4a2260818eacf | Bin 0 -> 2447 bytes
...653042335586f01b5ecd5893096d209546a7604c5c | Bin 0 -> 1091 bytes
...239120e34a755e5ab044161e394c23110b312a26f3 | Bin 0 -> 2438 bytes
...ce9b4c345a0238a6db6bf6e02385b1c6f28b7fde8f | Bin 0 -> 1530 bytes
...1756b654b7db90ed5e3e9933779acb2c432dadddcf | Bin 0 -> 1188 bytes
...c6fc982b0283d768c8a2ba7d366eccd46e5c228369 | Bin 0 -> 2752 bytes
...7b81d7ca403334d29e1cb354850acdcbd8c5aa110e | Bin 0 -> 935 bytes
...3bf8515db3eed89aa617e59ffbcc102e114aa14b3b | Bin 0 -> 1178 bytes
...132d24f8b875ee33cae4f616d3cacb3b3433214f75 | Bin 0 -> 1481 bytes
...f67f1006ca9acf67dc3d93d350202d873a77b8c85d | Bin 0 -> 964 bytes
...006333ba4056587cc46fd9a9e501ee19fec8c2a5b5 | Bin 0 -> 1342 bytes
...181a18184b371116dfffad0deb445d372bb4aa9586 | Bin 0 -> 645 bytes
...22f17dfc8301fa219a123922cb5d0ccef5ff242609 | Bin 0 -> 3199 bytes
...e36647e00228a23836942044dad7102d26a1b9d71a | Bin 0 -> 3673 bytes
...532ab3f1e5d9f991dc8bc2617eae0d5af1bc9b82cf | Bin 0 -> 1826 bytes
...8410f44e9acdfd2c01935b1135b0bc0bca182c5e2b | Bin 0 -> 2720 bytes
...7754a82c644b1a0400d56bc4bdd7e28b85653ae7f1 | Bin 0 -> 1301 bytes
...57ede4cd4e7f7acb5970e6640c167058af63aa80b5 | Bin 0 -> 863 bytes
...1746ac15d489055f11a8236a1baa91875a98cdcc7c | Bin 0 -> 1937 bytes
...97b63f17840a69be7884eade8675cfbb700eff2085 | Bin 0 -> 1317 bytes
...4b6f06ea6c69ae981e4666333599fb0d2c999ecbd5 | Bin 0 -> 1848 bytes
...39467c02c028bb53683dc419a4e78663d489e51e90 | Bin 0 -> 1046 bytes
...8053e5e22f63babc89e9c31b17d2bd6265a2a77032 | Bin 0 -> 1484 bytes
...272ada76a9c6339ae786e60e62a62cd34b8a869c76 | Bin 0 -> 1500 bytes
...ce894e0517b2d64a94d9e69c41d90501a705d34526 | Bin 0 -> 1474 bytes
...47384dc1e108e12ea830f7ecc19e4825b7b6cd825f | Bin 0 -> 529 bytes
...52c23c93e0298acdd86b0eefc5c79e527f5cf20c66 | Bin 0 -> 1086 bytes
...a5cc20f4b816343796d318fc4fb372c1a6bcc787a2 | Bin 0 -> 1684 bytes
...3b62c34a2e8b20e4b57e94106a90ed17261764f842 | Bin 0 -> 1093 bytes
...020b6a218fadacbaa5e30c08bab0f572ae4168caa8 | Bin 0 -> 1405 bytes
...c7d9cc685a6685b406a48d72e9b0ef630d1756949a | Bin 0 -> 1832 bytes
...53f297f98ff78e0f00ff56eeb85e86d67db3a56b7a | Bin 0 -> 511 bytes
...10c06630eceaaed47c19847c6dad550912d8d2cc32 | Bin 0 -> 1017 bytes
...0dec05a5f98f1eabf7968a3a48894dff3fdd2b15c4 | Bin 0 -> 453 bytes
...9852a847407c0aed94d2fc22a49c598d72e743b853 | Bin 0 -> 1615 bytes
...d3647af25113e9de557d0a033353be3d41d6805a7c | Bin 0 -> 861 bytes
...1bd77c21f2579dc036d1b9036d4ce175ab4ec4b084 | Bin 0 -> 1161 bytes
...eabf28fb5c7e2a506ca96b812b53381637a75c0f41 | Bin 0 -> 2308 bytes
...94950b192445f23a63fb1daf33dcb76a392ec9472a | Bin 0 -> 727 bytes
...e262813e6b4dea9910fbafca9b3159091927b56dc4 | Bin 0 -> 1416 bytes
...8ebad30c2775c5a5afb46258b07a81cb7d57ad751d | Bin 0 -> 1174 bytes
...65fd2b7f230cca0531d97f7926127d752785a865ba | Bin 0 -> 717 bytes
...015ee31562f32371a175ca5f560786970e66604cb5 | Bin 0 -> 2888 bytes
...d9227c4e2cf03c6724c3f9593b4bb2420bc78ad6fb | Bin 0 -> 1069 bytes
...443648e848c3e703d3d4305fbec48ea55d224ad6a5 | Bin 0 -> 1814 bytes
...e9610e30effac7150af0407b7e9b761fa80ab7eb9f | Bin 0 -> 3430 bytes
...a45cc02eb9b1bb23d39f5f93c7061bacb9e08a9e3b | Bin 0 -> 1361 bytes
...b10f04a146e958f6ee0838d87d6d3ebc893ac03039 | Bin 0 -> 1128 bytes
...26c9658139f43399936aae9468d60dd796514af0e6 | Bin 0 -> 1397 bytes
...342f90e3209f73a632bb7bf72aa12e60bd3058289a | Bin 0 -> 1180 bytes
...6d4eacceeebcb949c3559e1eb905ffda6d4a09fd3b | Bin 0 -> 1202 bytes
...47dda21237bdc47d9cae453f69f8d0ee1a0c9c091b | Bin 0 -> 561 bytes
...f37942e20284b067ad21e8529ca17fc6430423ed0f | Bin 0 -> 1471 bytes
...9b826c5a5d68dcf6ad901832ae0637c0429c3993ea | Bin 0 -> 2783 bytes
...d20d738de790f14bac0ad5f5da12ad45ed18504eb3 | Bin 0 -> 1163 bytes
...e63e824cc04d07cc86db56252c9368683777a579f4 | Bin 0 -> 2033 bytes
...d2f66af9b7b4c221b26fe3c46ae6c347a662dc62e9 | Bin 0 -> 544 bytes
...10562ef99ea1c8360986da8a6ca38cb89fd3aa0dc1 | Bin 0 -> 1165 bytes
...871fe3e9aa9129213e04a6eab4e5701e50435bf343 | Bin 0 -> 1036 bytes
...c06a161f317a8c70cc5bae7a77edf3b377bf9ec4e5 | Bin 0 -> 1909 bytes
...ada372eb93301b7ecb6b7a6a148b33ce4329c980a5 | Bin 0 -> 1140 bytes
...a44851e4d50c68b8515088aa03363313b6e827c9f9 | Bin 0 -> 1215 bytes
...77eb14166c03a92608be63b693d823dd402cb334dc | Bin 0 -> 1185 bytes
...52102ca290d820f3ef5970f85a511ec79b35c99bc5 | Bin 0 -> 1832 bytes
...8b999a6514058ee16863d63783c5a020eaa611f13c | Bin 0 -> 2782 bytes
...4814c4a8931650ea6a64a1cb2468ef980fc99c7225 | Bin 0 -> 1535 bytes
...a0115c6c7e21f1cc492f019426b6237e743886a712 | Bin 0 -> 3895 bytes
...0ea9109f71cb30e4f0a211d2fcbbdfc5d9c5d7037d | Bin 0 -> 3261 bytes
...6214535463a97414b51e7431bd48806f94e8d8a46d | Bin 0 -> 1111 bytes
...d49b25efc00ae476a721cdf55b05527439cf1644c5 | Bin 0 -> 1161 bytes
...5ca38636c370eade0231b52d3b211501e30a79613d | Bin 0 -> 5697 bytes
...641d698c6453b71e45425466dcb1db7587bfce993b | Bin 0 -> 463 bytes
...007788eb5ea256fe9422c82092b71e7c12db972b4e | Bin 0 -> 524 bytes
...bdbbc2a5d532fc7f5a26f843a5f9b38d79224aa774 | Bin 0 -> 3013 bytes
...e72a958c9accce4a3055f12b175d391fbbd8535527 | Bin 0 -> 1314 bytes
...66b0245e76b26594026344747d095eae8af4ff403f | Bin 0 -> 807 bytes
...18ac5246a570059fcef41a1cd8b79258d98927f179 | Bin 0 -> 2160 bytes
...b1845900e8e4b3fe833dc662356bd40475f35c35a1 | Bin 0 -> 685 bytes
...50df2d8d20fc6f36d2dbd812818e4da73c23501d85 | Bin 0 -> 1545 bytes
...f206e4ac1fcd991161b873ea1b1b06f7aed84c1df5 | Bin 0 -> 2631 bytes
...15a90399b44014e61f2c76c6ea91923631e6a5c361 | Bin 0 -> 1348 bytes
...80b961d6b063416221119f7ead756ea252e9ea42d6 | Bin 0 -> 1216 bytes
...f0950e4a3190ebed72cf0e10939dbb61220037da35 | Bin 0 -> 1540 bytes
...ef0c8bb131dd063d14a27d37f8cd8473f6f80eaef5 | Bin 0 -> 1388 bytes
...bab3c8dd474d8689e6c833202008cedc7aa4d443c9 | Bin 0 -> 1875 bytes
...075137f1ed2cd654f62a2cbc708062a8af180b890d | Bin 0 -> 1534 bytes
...fd20941d31e95c7cdd5ad23744000117c3ef96411c | Bin 0 -> 1472 bytes
...0abb1c1c7aaac354c237a47a38e00605f76379e771 | Bin 0 -> 1163 bytes
...2e027a244c3b7387a630237a615bcf013be83abe2a | Bin 0 -> 1804 bytes
...af14c21b8c266ae45237fc134b97f74630c6d9677a | Bin 0 -> 1431 bytes
...3a2f082c941568d9b99a5acf0861bc67fcf0dbe580 | Bin 0 -> 3257 bytes
...cb5bfe921cb132c1670e29bf2ffb257011189a010c | Bin 0 -> 1475 bytes
...0dc9b77e88c9720d8df6727ed89261f029f8d389ad | Bin 0 -> 1365 bytes
...6353ea7e27a2282279576087e2de0abb87bf37add3 | Bin 0 -> 1477 bytes
...212d2f94ef9a82e61836d40245c8b149c30ffccfd4 | Bin 0 -> 819 bytes
...2b06f73b55b53e1d40cd88891a5bff1445264710e7 | Bin 0 -> 3044 bytes
...f5f1eb210673a4274b69bf6c753d1cfcb5d34225fa | Bin 0 -> 1931 bytes
...49ab7c39380144218b762d4b9dae6071428e1f7baf | Bin 0 -> 2676 bytes
...f0d5d989b107c2ffc8833681179126d9c908a0aa89 | Bin 0 -> 1199 bytes
...330789b4a27800fa4afc0346052febb1024a879459 | Bin 0 -> 2108 bytes
...cc14e63adeadd68191cfcb8da5c9fec30601feac0c | Bin 0 -> 2030 bytes
...ae940235254b3b24818ca980d3ebb605c1d479e33d | Bin 0 -> 1862 bytes
...46c3129bd439b3caa6c43e22b9431bd668d764775b | Bin 0 -> 1926 bytes
...d4124740719bb18c4a4fc452c3404cc18889e2fbc6 | Bin 0 -> 1459 bytes
...39a9912aa447fdd2d419f39e52393bcbbc7f0db113 | Bin 0 -> 1503 bytes
...dd0bc2651b237d53168fd34673a67eb188b535755f | Bin 0 -> 1195 bytes
...af70133eebb0de896db33d3470b8f1ffd1c7005d13 | Bin 0 -> 2055 bytes
...af4ee6fdb8dbb541ba4cd6d0ee8ee35bf6cfc7c7fb | Bin 0 -> 570 bytes
...202923bd0c815b6f80baceb4144e0af9ffe773c8d0 | Bin 0 -> 704 bytes
...84fabf19a0bbeaf25345e25b9679ed10b69c96f685 | Bin 0 -> 1202 bytes
...72bc1b272d4a78d75b9c3c43a895216155a3634c2d | Bin 0 -> 1262 bytes
...9c5e207b0482e3b38cefd38da0d1f410703bf9695a | Bin 0 -> 742 bytes
...3ab248748cbacf7a15d8aa568f5c199537f11a2e25 | Bin 0 -> 3181 bytes
...ba32d6a75f8cf606fb1f30231b2a42c82b72c8962d | Bin 0 -> 2901 bytes
...fec1bc6c6a182e451167d80bb80c3c4d3712c75908 | Bin 0 -> 1909 bytes
...16ad20ba80ab283fe14882aa3413f087e0dfbd91ce | Bin 0 -> 665 bytes
...4aa1f71c307b2fcc2d1b460e1072fbedf58dc091dd | Bin 0 -> 1106 bytes
...135a5cba00976a00501fc613349ce8ba15c191f340 | Bin 0 -> 3475 bytes
...4370c2ca33cbcaccb57512355dfba83631b85b47ed | Bin 0 -> 1050 bytes
...98fab8d3791cb9add7671b6c4c31d62875e99b18ca | Bin 0 -> 1774 bytes
...83f5fe00b579951628e18d238752106868915af75a | Bin 0 -> 1317 bytes
...24cac8f0054d867d9b8cb0a2e2a2eeb3f60722d696 | Bin 0 -> 1275 bytes
...f6ea1769bf1252183cd90893100963bcc77f3c03d4 | Bin 0 -> 396 bytes
...646527a17fb708075c7359257095649c0df51fbbb6 | Bin 0 -> 1161 bytes
...20cca70f465350b4e1f4d5b1cc0cf6b36911ebf0b5 | Bin 0 -> 1111 bytes
...2c8327814d5437fde4b5aaa974063dc6e9e92da7ef | Bin 0 -> 1874 bytes
...ae69785ef7ae0dd27cffc72163872d4dc8693be146 | Bin 0 -> 552 bytes
...71096dc43367e7240a002859f45df7cf00460b95fe | Bin 0 -> 1567 bytes
...d4fa1d21c158517f8af562c308947104a73429eb73 | Bin 0 -> 2015 bytes
...b403cb5879ee8b7fa2e526af863046f726db94f679 | Bin 0 -> 1007 bytes
...8aee8de712ae603bfb700c9a12a4848cf230f40a18 | Bin 0 -> 1135 bytes
...0715481d41cb5eb3fb5dd4c3687697c0e0c735c6d2 | Bin 0 -> 1871 bytes
...f1e569732c4897aa0245c8756ebc6c9da8669372c2 | Bin 0 -> 1306 bytes
...df1b8a4b1ca0ca29b9a8109f0ffaa4f3c518340c28 | Bin 0 -> 924 bytes
...91e712e303596a97b16594b9d754f15eda43c7b736 | Bin 0 -> 464 bytes
...87843f62898b71343a2b6240aa8d44aa1cce6a8945 | Bin 0 -> 1060 bytes
...302dc14e34a2cb7ef4f8300dd1c36d383434bf141a | Bin 0 -> 1721 bytes
...b0a11a13902bf5b6f24149d72bad6d6d7525d0c067 | Bin 0 -> 875 bytes
...108c56552f5aa8fd869085b08452ce1af441f23ccf | Bin 0 -> 586 bytes
...3357f7d89db8756bd460611c48f983f740869eca7d | Bin 0 -> 1232 bytes
...d96bcf4eda6e2ea73a58f4e747e2b644c975c87fad | Bin 0 -> 1000 bytes
...96f9f2e28572f6a66d58dd88a82f56b7e83f923fd9 | Bin 0 -> 1840 bytes
...3d3deab97b500e224f7456dbc9a65faabd978b1038 | Bin 0 -> 1126 bytes
...04fc0951392568b6d92f07f4667b40c9e4cc4e944f | Bin 0 -> 2184 bytes
...5ece44b32f9babb41213d15e0d5f5362aa034ff3f8 | Bin 0 -> 980 bytes
...c6dc74c884cc788e9f2bf504c6395ff5285ff2a234 | Bin 0 -> 1484 bytes
...98cd9599fc67b8f67c97d81fa95b56b19002857569 | Bin 0 -> 1591 bytes
...ea25076d51355013e68ca04ea9f01295b8a4ca5a3c | Bin 0 -> 2887 bytes
...3a7a0e9489e77722ba8d947129d519c64b265876fa | Bin 0 -> 1103 bytes
...c3b4307e450f139c701705a6fbbf9ad56f77b65d00 | Bin 0 -> 734 bytes
...1f55bdce83c8fea3f7b153e9623a79b53fc74f282b | Bin 0 -> 1471 bytes
...cccb57e4bc803500ee95a15495171ca327eb9fcd3c | Bin 0 -> 1309 bytes
...456f7e511fbdd5f788b8d11761762ec4972616ec35 | Bin 0 -> 879 bytes
...0713e501809ec8c56231a133b44ad621a765b64e8c | Bin 0 -> 1355 bytes
...2364de248604f8c4f4b506483286406921e6e8ef47 | Bin 0 -> 1143 bytes
...a7b61d102c94b31c33f91a44cf404936c47440075b | Bin 0 -> 1040 bytes
...0091511df1f7b072f15d054732015ba05c3c17cf02 | Bin 0 -> 1260 bytes
...ce67b6eda619f38a0fbdd37ac6bf8d2d347bf26831 | Bin 0 -> 1411 bytes
...239201e3a4df19961b7ac42e749b6846526c9be2e9 | Bin 0 -> 1040 bytes
...096b1d7b1e76251884516bb621410e6afb5297d445 | Bin 0 -> 2302 bytes
...ca06f87556790cb2802094826179af565727f3b559 | Bin 0 -> 2544 bytes
...cbcd205758a9debdd4e30373c8bfbc73c7599beae9 | Bin 0 -> 797 bytes
...b6f709b79a5f231d6b38f1cff7dda25fe8e356d9e0 | Bin 0 -> 2113 bytes
...1571b28b36b86338e729558f710aa0a7466da045a8 | Bin 0 -> 1062 bytes
...b89baeb033019c9e26246e2798093670b9e186affe | Bin 0 -> 724 bytes
...df0a8d9c2354d3c37dafe8f129f7e8bf05ffdf46d2 | Bin 0 -> 2193 bytes
...b2c624e2f6c24bdf75e1ec6a22e11ec49807f0807c | Bin 0 -> 1055 bytes
...a8684ca2345e64f329704e43b7f50abdcb83f03bd5 | Bin 0 -> 1794 bytes
...b9ebcd9ac8cc6b018f1a11b15a7df4aae01a01a9dd | Bin 0 -> 1351 bytes
...633479964b6c37e0fcafb596cc8b4bd2fa3385ed8e | Bin 0 -> 1789 bytes
...ae4d17099f78974c33c43fb0515b759a226c110c36 | Bin 0 -> 1288 bytes
...ff6cb1310970616194dda32f7e117b06ecbe4e5664 | Bin 0 -> 1781 bytes
...e71343b0599a9a3d29f966ca70c0e9418eefd772b7 | Bin 0 -> 525 bytes
...c117e22b63603293d3050240351b0b2aab6db5d2ef | Bin 0 -> 2446 bytes
...77318be0c5983a36e818907e8e555af785231a4dbd | Bin 0 -> 1673 bytes
...2a57ab322e4792fb142dd23d36672f2d88f8f025d8 | Bin 0 -> 1541 bytes
...2d4ead5246c219915c7cb5eb3e1682d06c07502c43 | Bin 0 -> 1113 bytes
...a344c7b73717ccfada623eb7d7b14ff54e4f2c9fc7 | Bin 0 -> 1003 bytes
...6634272d2ed28f16f730ec06dc9d0b256cb0d4c2dc | Bin 0 -> 614 bytes
...55a5febdea72a7790e1bfcbe850360ca80e089c6e0 | Bin 0 -> 1377 bytes
...99b0e7073afe37a940596eb9078a41fa5980608d10 | Bin 0 -> 1580 bytes
...86d9b04534e5e73b62aec6457a84b57654d6819262 | Bin 0 -> 896 bytes
...6742aa133b9fb534ae4373840f0a1e2ac519da94af | Bin 0 -> 768 bytes
...145a7eb2181cd6fdb495f8ee1596afbada0c8d8064 | Bin 0 -> 1091 bytes
...a7844d0af5fb4355833d8c488c590c90467e7d5a3a | Bin 0 -> 1313 bytes
...b6d5125eda25fdd1e1d81318b4f2776e4ef8791f0a | Bin 0 -> 1090 bytes
...a0fbe96e1a79eddfd0368b534f2772ee96e7b66138 | Bin 0 -> 1663 bytes
...2d0bccbe7482213bf878c01e352802ef8129b9e554 | Bin 0 -> 2995 bytes
...222fa2fc5fffab8d322ef10db073e2a34f84e02e02 | Bin 0 -> 2188 bytes
...8ed6ae2401f056818e5f829cb28745036883745127 | Bin 0 -> 508 bytes
...db80234b5704ad314bd9edc5cd3aac520d305b26f0 | Bin 0 -> 1245 bytes
...e4eb3eaebba9c03945c4a07e37ccb196d382006478 | Bin 0 -> 603 bytes
...b9b4d60465b88cea130fb21aafcb0b57a65aa10d79 | Bin 0 -> 1188 bytes
...020ba5e3cf5d11debfe3315991a165cd73f8c178da | Bin 0 -> 1308 bytes
...06211691650693012492faff96a10321d81efe47e1 | Bin 0 -> 2352 bytes
...caa975c0add94f756c0aa311987568e037c0473b19 | Bin 0 -> 825 bytes
...25f54ada734248a360cc85c9f7e5d3f0ba15836d94 | Bin 0 -> 975 bytes
...8cb254e5a541cd4a48270f56eec58fa931caf423e4 | Bin 0 -> 1847 bytes
...d379ae9e8c0ca2d481a4f41e70b441dba74602de43 | Bin 0 -> 514 bytes
...851b7b98b734548ec615c3fc9c4d7e3325e6bdcc2f | Bin 0 -> 1646 bytes
...0ee099fec0628f602fff12b695de54aef11d923ad7 | Bin 0 -> 3431 bytes
...43ff6ce465c5c883a83cf2c1dc6b20fae0a4619c75 | Bin 0 -> 2890 bytes
...f5bdb54e4c86b4850c62dcb3701f931034788091a3 | Bin 0 -> 842 bytes
...d89602e4e541d385d5935491e83e64c54aa750ff63 | Bin 0 -> 1331 bytes
...ea1fc4e7f0c13c3b5020a03aff63cbff72c5a19e70 | Bin 0 -> 3703 bytes
...43f1d4a210facc0400e0daa897162ad38de2954085 | Bin 0 -> 1635 bytes
...df7f38986c6fd3152f60caefdda59a9a74e5f5546e | Bin 0 -> 716 bytes
...be3f8b7ccf3bc9293f676a79744c7f5e31f42b093c | Bin 0 -> 1820 bytes
...3745b26a8a45817d89ee2f1e5b4e03c6bf1b483bfe | Bin 0 -> 1719 bytes
...ee6eeb4acfc7c84be82d7a4f86fc189733e61dfa4e | Bin 0 -> 1257 bytes
...d7e8c327db01cc181bf4cbb5ba25930fb1f65654c0 | Bin 0 -> 4618 bytes
...9731e4d35c448d9a15c43abd518eec3bd2fca2d8c9 | Bin 0 -> 1109 bytes
...fe7fa5a55b5cd0e03b03f04eef1d4e1e8b1b7470cc | Bin 0 -> 1132 bytes
...1080186f537fc592766fe1aee3c08564e38ae3dbc9 | Bin 0 -> 1454 bytes
...5dc79fddc35174f356356e383d2c742526278df97a | Bin 0 -> 1263 bytes
...a1688fe3399c72029e2ccf440697901e9bd67752e0 | Bin 0 -> 470 bytes
...d807a10951c0ac9444fc363b1e4278207cb88fd0b5 | Bin 0 -> 1534 bytes
...605ed264be881c92d30b5d14280a4f82fefc4dc18b | Bin 0 -> 1749 bytes
...eb2cfc19acee9fa2fbebfd995060991aa230da2427 | Bin 0 -> 4309 bytes
...7ab202e84cdf58cef4f693a728010fb65cde339f50 | Bin 0 -> 1211 bytes
...b3ccfaf5602329141f776de533148eb7a0419027eb | Bin 0 -> 1739 bytes
...7b70faf3a1f3797ad0df1348174730cefb1fa38652 | Bin 0 -> 2422 bytes
...53bbe82fefe564cecc5d225458b41ed533051513fa | Bin 0 -> 3204 bytes
...a48ae444c19f117bb81b236ded557851e8ca24dac6 | Bin 0 -> 884 bytes
...57480ab4236d8962d90538182bd4143b5be8b1aba7 | Bin 0 -> 2240 bytes
...c905b3645c9ebe57b37ba478457ae9676145e85663 | Bin 0 -> 2063 bytes
...c0c334bfdad85a729bc4ee0b734d5095a55768919c | Bin 0 -> 1883 bytes
...7d2971000f098b7fcf31a8107162832ab040d68bb4 | Bin 0 -> 1379 bytes
...c88b5c08daa981526241ee7a06b879683d5cf7aead | Bin 0 -> 683 bytes
...27590d3ff4e0d254cdc9597077f41bc02d20907779 | Bin 0 -> 1806 bytes
...e4de886b80485cc928a2e5c7ba8826f468348dc766 | Bin 0 -> 998 bytes
...2b9628725ce316f7bc8bdb17b176614433a016b425 | Bin 0 -> 1177 bytes
...8d3568305748b815da268c2b6659e49d45ff63a616 | Bin 0 -> 1146 bytes
...7a8ea01aa0a373847a5083984285c73516c26515f9 | Bin 0 -> 377 bytes
...4abcc22f919247d50c8d58eb1a28122674ab1c1eb9 | Bin 0 -> 1247 bytes
...351a3bbacf3743403f7deeafcc7cdfa8c73d35e15a | Bin 0 -> 2137 bytes
...0aedfd9b12e8b8a2ae5e930a479073f64f4233910f | Bin 0 -> 1087 bytes
...02b9d041d6b2bdf0ce914b1b82c0c0653e40deaacc | Bin 0 -> 526 bytes
...1b95551c2abc7f7f2401bbb0f086028349450a9164 | Bin 0 -> 3457 bytes
...531e5509230e7da5648fb07d7637c6e59b2801ec4e | Bin 0 -> 2964 bytes
...c917b082bb2f1d32f4176b5fdc0d803e678455edd2 | Bin 0 -> 1209 bytes
...72799b5377c87e341be46167fea72b740c29a39e38 | Bin 0 -> 1250 bytes
...9a57bb12ea2e8ba8dd333238a19869ccc217dc33de | Bin 0 -> 579 bytes
...37f765ff5682c815a8ccf5a046b1e291042bf6138d | Bin 0 -> 857 bytes
...6980afa97a69cc3bba5d084ed00d039e7c11984338 | Bin 0 -> 3327 bytes
...1e466b255c92674e351b1a5b0202f4c1e94c6f2b2a | Bin 0 -> 875 bytes
...1de297b2d0e86dd7e3cdcd6e0b583a5daf2babd1ec | Bin 0 -> 1345 bytes
...4c9447f4c72c134cd620e172362255843d64d2c79e | Bin 0 -> 1668 bytes
...6fee20da46fb2caa139ccaec5a757f3dcbb57b94e6 | Bin 0 -> 1771 bytes
...e7da7c152253f03bef4f3dce1c7a7c884731f4ec2b | Bin 0 -> 1410 bytes
...e742a50d37eaf4fb22fbb8088a921bb6b41383513b | Bin 0 -> 1205 bytes
...b8ab418925c192e0625c9394bbe180029141625410 | Bin 0 -> 1402 bytes
...1137576bcb145820e95f6043394c00f8cdc0e07363 | Bin 0 -> 1703 bytes
...151fea6a08697cea212e8f8ffa7c1ee4caba2b7b88 | Bin 0 -> 887 bytes
...87005f723915d34d117817eb64be108dc0cc8d5431 | Bin 0 -> 1410 bytes
...225c6347ddbf57c38c8b8bc24100760bd8ecd02eab | Bin 0 -> 801 bytes
...aec5144fb6265cd538480ca1e72f410a530f1946e5 | Bin 0 -> 776 bytes
...5a9df7778298fd45ed284c04500a502efc68ff8c8f | Bin 0 -> 1750 bytes
...a792bf7fad50c972996aebf9e1bf13b0b050f34f53 | Bin 0 -> 1294 bytes
...b9095231a102ce29185a73d9cb3ae1663349959f7d | Bin 0 -> 2740 bytes
...6fc34d6540cc58807382eb5cef57ee02a7ddb4d0eb | Bin 0 -> 2820 bytes
...72b615732a7ea9f3a028bd5dead39876f6dd7fc04b | Bin 0 -> 2955 bytes
...206b4308a83d07ff3909f13f05d92fd06fcb1cf235 | Bin 0 -> 785 bytes
...68869e2a0148db8681e278f7213e65c1f4168cdbbe | Bin 0 -> 1383 bytes
...6af2879b5a233cdcf8ee2b74e6b551dd176fa4392a | Bin 0 -> 1146 bytes
...4dce792ef175171004fbfa0fe3ffbe9d46a818eea4 | Bin 0 -> 873 bytes
...231236aad0937d3b24247831d4f12b9665b0dd336f | Bin 0 -> 352 bytes
...6678c39fd7b50a730aee93a4f61fd2d8873a38241d | Bin 0 -> 707 bytes
...7d953d046d43ef297fcef7230266ef84f7173cfd55 | Bin 0 -> 705 bytes
...8adb4e8991264da8675ea86c335921b4e7146a3dcf | Bin 0 -> 1189 bytes
...0d9afac0d9789664ab77aebd3af0f2e0d2f4dc4cb4 | Bin 0 -> 1234 bytes
...1cda17881885c9188373afe580ec3a32a374f46a40 | Bin 0 -> 1920 bytes
...8bb0a998f31d31af2aa5e9d0eb1783c53fc78bd125 | Bin 0 -> 1418 bytes
...ef1a5ee3c9ce0d6e4f3917fab6be7c28f414be98fa | Bin 0 -> 1735 bytes
...b82cf84c2f3f9e076b042f2c42b823ab384684fd71 | Bin 0 -> 1034 bytes
...0ad483376729ce5cafbb4b336b76842f82fbac1ee9 | Bin 0 -> 978 bytes
...695edb15d8293b405ef269ed70bf9c8b77a553d79f | Bin 0 -> 1529 bytes
...52c3907de3494c20e24474f6b816b6a42716912f29 | Bin 0 -> 1278 bytes
...aec8634931dd9f36aaf59ac706b3f98db397a06d80 | Bin 0 -> 2194 bytes
...56fb5bf978eb908c917b32f44a1a1397c9931a2d24 | Bin 0 -> 3955 bytes
...eed35cfa58c7d78a5cf19dfa7488cefa9c67818172 | Bin 0 -> 2288 bytes
...eb92e7dd924438235632258d3b01f3e84682471e7a | Bin 0 -> 1274 bytes
...0adbc00f56268c02747ecb3f59b02bd72673705ddf | Bin 0 -> 1392 bytes
...927902b36dfbfd75c56513d6ad80209ca25c047fc2 | Bin 0 -> 1272 bytes
...e1cc3e00035519039e8cd0b182c92f5f5a3ce70ba7 | Bin 0 -> 1428 bytes
...5a0879c4f22ee490d030d3438a787ebb0135665cb0 | Bin 0 -> 1451 bytes
...cba7ff2fc5bf348b7be3c0f94b99bb9c2856918b84 | Bin 0 -> 1173 bytes
...c4bd33cdde45c75cf3ada209310867ede6c5e41108 | Bin 0 -> 1184 bytes
...b9bb85cd9817c5e64bfffe1288e0fc7658ba529296 | Bin 0 -> 763 bytes
...9a8f6847a1db526592b0660d7a28ecd777b8a04f07 | Bin 0 -> 1230 bytes
...b5dcf6f12baf01ff46a65dcefdc655f2874c31ced0 | Bin 0 -> 3710 bytes
...9dcf76df8c520b40ab5a8ad33fb03bb18a685e275e | Bin 0 -> 1286 bytes
...2c3f2e6867147d47ba56d32028cab6db828e7e87ac | Bin 0 -> 702 bytes
...e51f6348e65b1551940b83307b4ca246218902eef3 | Bin 0 -> 1166 bytes
...65099d218205a7a5266e6f6df8b795bf3a465d0ee0 | Bin 0 -> 895 bytes
...72d0682857f0d9a70e4d43cf3f6d26df4e56706766 | Bin 0 -> 932 bytes
...19e43fa36d02230eab5cfbce4dd1d568ea78ab1c83 | Bin 0 -> 293 bytes
...9e44652ec5b7533368074fc14c44c2cf01e20de323 | Bin 0 -> 1586 bytes
...e8957af7afaa4f96bd0bf1fee59fb3db32b2e4c32e | Bin 0 -> 1288 bytes
...76964865e0962dcbe455beeb5e12771572f56cd616 | Bin 0 -> 1107 bytes
...88e4c8d7142f5fd6752e69df47f441c2942117f604 | Bin 0 -> 1855 bytes
...4b236f842d2f53c22914cffe1cc5426cb1c078c6e9 | Bin 0 -> 1215 bytes
...78526eb349ca5632716f992a1ca0a7b469636d722f | Bin 0 -> 1424 bytes
...5adb3d90da4d08e7b2034b2892f565b509c12b6946 | Bin 0 -> 2189 bytes
...7021ce81f08ea1fada1a8c4fcc1a63b7e83620b687 | Bin 0 -> 2328 bytes
...98351e61737de973b8bf7a3409d96dac23b1973101 | Bin 0 -> 1445 bytes
...325a042c0c44359fbab08226d2e87359d02d9ae00e | Bin 0 -> 1000 bytes
...4ec05b437da76f38a103d9b9e1c5300c3d312ebbdb | Bin 0 -> 1738 bytes
...01ccb348b60045851517e939504548173706e980d2 | Bin 0 -> 1497 bytes
...4bfa3bc660b019bf58c2af636d4563e536e61f9d42 | Bin 0 -> 1336 bytes
...0efa48ca33496e7f1f14a292323dea99bdcab12015 | Bin 0 -> 1320 bytes
...ef2a0d8c3106fb2f257b7d3024c1df675db901b0c4 | Bin 0 -> 1441 bytes
...e4b598764893f771a781b29b365e9d7d480e25a1b6 | Bin 0 -> 3545 bytes
...41734a52d8bec0f6059cb3d9a48e9539559485ea94 | Bin 0 -> 4149 bytes
...a500c25223935c38a560991ca4a437adce222dc0f6 | Bin 0 -> 929 bytes
...cf43f3b05c2fe683ca2dc4357644306ddbf5710948 | Bin 0 -> 1166 bytes
...f9f8cfd67c77576ce4dfd930248617842f80cff0ba | Bin 0 -> 1123 bytes
...4465165f3dae9c5e008da7d8b9b8712f709ad6b01b | Bin 0 -> 652 bytes
...c65e02168df6dcfd9936a1e935d890963a63a7429d | Bin 0 -> 1287 bytes
...30fcdcfc0080c4060fb3ccfbb1b1db7a38c3a7c3ff | Bin 0 -> 1436 bytes
...a06630cbf4fcfc8e713ec130e3035d380483348d20 | Bin 0 -> 2621 bytes
...75f560d91bfb56ead91fb0a9cc03631f5e9e12d7c1 | Bin 0 -> 1111 bytes
...0e626da271226c46fb4effead386f120f051d6ff35 | Bin 0 -> 1026 bytes
...70f64e48026cec73772d882c8681b394dcd58df21a | Bin 0 -> 2860 bytes
...42bc02d1205cbe48e4fe01aa5f70cac4bb00a96ef6 | Bin 0 -> 1786 bytes
...265768f41229a828c42e579897dd6275f65e3ca9ba | Bin 0 -> 1291 bytes
...9aa7ae031bcd9d5d11ed07f421c669cfb3c2682884 | Bin 0 -> 1204 bytes
...58975e095189592607d746504b79b95d0ef6239945 | Bin 0 -> 1122 bytes
...e8bed4d7e8a9fa18052fcc6ddd0203a0df5da9556e | Bin 0 -> 1152 bytes
...c0f0f0385b9a3a47d5bce461132a8a166338aaa8e3 | Bin 0 -> 1323 bytes
...6b33313449a9a187c0feef7f8d9581322e430468e3 | Bin 0 -> 1778 bytes
...47ddf4d426e65304800d882116ac2bd03e5e9ceec9 | Bin 0 -> 1483 bytes
...24439a47c70a5c0f7a7dcee8a0e4a3449668ffd4ad | Bin 0 -> 2790 bytes
...a6d5407b2b76b2fab2c66205a98d959dee6b501f57 | Bin 0 -> 1182 bytes
...cf7959dc006ae2c4db91471d8578fcfa8c3922baf0 | Bin 0 -> 943 bytes
...77f5c663b59ce39841db9cc6b9f4842af44fc19c7a | Bin 0 -> 395 bytes
...e07ee9dfe10eb8549f3821d03e1b517d2cc4dfd3be | Bin 0 -> 1578 bytes
...2d42afdc2e699bafd77f22d8bae8c859bb5b5d0c24 | Bin 0 -> 1277 bytes
...88682eb2f74ecd662307727bc97e3209ffab313d53 | Bin 0 -> 1654 bytes
...158dbab972daf06eb9448d114fe19a76e239320636 | Bin 0 -> 2323 bytes
...29b62fb360c4d342c7dd723a3b7a6982cf9caddc86 | Bin 0 -> 2385 bytes
...33c6b5120a03ec7e7b2ac7d759b8f0bc21350a348f | Bin 0 -> 1494 bytes
...ced76146412f61a518390016624ee1d24b243a3ca0 | Bin 0 -> 958 bytes
...d34e45db422b9bbed7d34c12ea1cd674c005f38e38 | Bin 0 -> 1639 bytes
...5ed7c0d45f59b2e88b6f38a9af1062af7193250ee9 | Bin 0 -> 1140 bytes
...891e2f194cc9a33acfaf859e6230f282e6166101c8 | Bin 0 -> 1372 bytes
...04329028202be08c6a45ed2a5334abce09eb45cf94 | Bin 0 -> 1432 bytes
...866ca73575489432378bd76d43b682190e3ada892f | Bin 0 -> 1195 bytes
...284f1f07d791438f039a35212a435ce167e5704e68 | Bin 0 -> 703 bytes
...4683d366899b63736ad3752715485507d9bb0396f5 | Bin 0 -> 1254 bytes
...4cb71ca19c40f37cf2994be219bf89309932cfa755 | Bin 0 -> 856 bytes
...13db8277b305ff527f4e873e46ebcb1d4bec6502b8 | Bin 0 -> 471 bytes
...f292f6cc46eb96d21ddc33670e847153411b24a97f | Bin 0 -> 2041 bytes
...be8bce1e9bb4dd63e2100739dad3e32db4df3fb00c | Bin 0 -> 4145 bytes
...443bfaf78b5b296b894f9c3a38c766f2a0b971319e | Bin 0 -> 947 bytes
...81c5ea6041150500ec95083313ee5bb8867ef64963 | Bin 0 -> 1914 bytes
...8289b686afe76c671aba0e01f28ee4b616f782d22c | Bin 0 -> 1552 bytes
...b7426356166a26dcb5ad84bc089ea418e28e08e218 | Bin 0 -> 1096 bytes
...26d3e6b906fdfc9bccd4e80ea30192ee701e75fdaf | Bin 0 -> 989 bytes
...1c3268429a6bc1e8ed2944aa7b0ead0c6ca7ea1fc9 | Bin 0 -> 1176 bytes
...11250da306a74909a24fc123ea91d61efe87084cae | Bin 0 -> 373 bytes
...a397e380fed3538d167c310cf30c1b59a71ccbc1e8 | Bin 0 -> 1137 bytes
...ab9fef43da49b08af9405f6a313e861a09ed0b645b | Bin 0 -> 3033 bytes
...35dccbb4892642089c0dc647ceea8c539361f5dff1 | Bin 0 -> 1492 bytes
...35c399eee7935ec33850aba578da6c2c60669f5a90 | Bin 0 -> 1711 bytes
...e4ea487790ef7e160c6176464187a3dcef6740d1bf | Bin 0 -> 2391 bytes
...cc21ceaf3b31e8818747430f25c4f964dd3b1a77b6 | Bin 0 -> 2075 bytes
...b7de48d383ac3251b681abfbefec29be97959d4f5e | Bin 0 -> 454 bytes
...3d4d6ecc8e76f2ddda2fd5ca71970450620e5449b5 | Bin 0 -> 3637 bytes
...308c2661e48fe90577b25ac3988c52635dcc2dbd76 | Bin 0 -> 1315 bytes
...2f3b95a3c127e9e88714663711a85ee2af05b009fa | Bin 0 -> 1206 bytes
...d5e28b3aef81b4e44898e87a01c9eb755e0c5911d0 | Bin 0 -> 2331 bytes
...2c7d5a76a3925ac2fac5f57f8f268b433b164df8fd | Bin 0 -> 1230 bytes
...b4ccdb280c67ef3021521ce008a62e1a53d39b9a78 | Bin 0 -> 1480 bytes
...d74bb586e2096478c9d6e593c13bfa193f6dba567e | Bin 0 -> 1225 bytes
...fa4628da0911727a72f7e9ac8bac77666005081661 | Bin 0 -> 2351 bytes
...3bf1da8b794794d1402a0e9083b6b850b385c0bc54 | Bin 0 -> 777 bytes
...ab75bd7e2c744d63da767962bc80b82a68abdfa375 | Bin 0 -> 724 bytes
...2d41dfe9104866ff282f115e8cb03320861caeb94e | Bin 0 -> 1407 bytes
...899ae6625b8b299f6fb7cc39c47c2808a13dbb818e | Bin 0 -> 936 bytes
...e5835be44216687439c175d4bf39d45045cdf1d28b | Bin 0 -> 1485 bytes
...5386dff629394c384776b44e2bb54f1e3a4b5360a4 | Bin 0 -> 2054 bytes
...09df1a522e0f1425c7220b22d33b81fe40f34b8c1f | Bin 0 -> 4716 bytes
...c091223071b87260291402e70734995232648ea94d | Bin 0 -> 1230 bytes
...4aa8a657acdc20af1cb962959f46d752b412793e4c | Bin 0 -> 957 bytes
...f6ec30d826b8988628afcb1f0d63dfbd0bf120b779 | Bin 0 -> 1477 bytes
...0e28790030bda00f7c302a9f32e7c420d58f9aa8bd | Bin 0 -> 677 bytes
...ec3456159759be4ea98f255a12004d75b03f69271e | Bin 0 -> 877 bytes
...b3a9cde5d826749d32c6e9d7853f9f4b7087e39399 | Bin 0 -> 516 bytes
...538e4db546db934e45f5213aa6bcfbc50f4b765589 | Bin 0 -> 1335 bytes
...975aff861a7365193837a6d6f94bb56bd01a204408 | Bin 0 -> 869 bytes
...9b9b67fbd776f266970e541118678dccbdc8719fcc | Bin 0 -> 1162 bytes
...46de78ee33bac5327aef2cd3c2db68d0232da802ba | Bin 0 -> 1406 bytes
...10b3b5b62fa1f471419b7f0784150bef1e4f4d4c8e | Bin 0 -> 1453 bytes
...383888ed90a42f0afcdfffa2d332ec13ebccce82c1 | Bin 0 -> 4611 bytes
...0f23a1be3be2927751a60a23ded1e33cf8cbc3a99e | Bin 0 -> 1107 bytes
...dd0b6e5b1cb648a720efd52db48598eba04250b12c | Bin 0 -> 1744 bytes
...bd179ba38b8635135057abcaa076fcc0731f9fa786 | Bin 0 -> 2067 bytes
...6acd8f02e1f75274919c0706c30e27aef028ce8c45 | Bin 0 -> 1020 bytes
...a87de97bde966555ff9d43dab16a8367d27308bf68 | Bin 0 -> 1692 bytes
...6ec0750203fb43e9c2453f83e1501b97bdce7eb94e | Bin 0 -> 1387 bytes
...71b973ea1d7c0ac299ec73fe0e7c3742aab6a82b3b | Bin 0 -> 684 bytes
...7a509387a4cf77764052758b1f3d783b826752e861 | Bin 0 -> 1284 bytes
...358b8e83ce32e7efc246885bc7ccd74ef29a59ef61 | Bin 0 -> 1087 bytes
...6a4bd7e457955a8158992e03acdba9fbfa558ade5b | Bin 0 -> 915 bytes
...7ec6ffbe1c15fe8ee736cf6682a5d7f223b13bc2d1 | Bin 0 -> 1465 bytes
...2c3f50f6d0954162e9267a47f002e832fb89c52531 | Bin 0 -> 1607 bytes
...6013b1b293ffbab562056363959285bb395d181b60 | Bin 0 -> 1911 bytes
...5324fae55050f9c143015ef8fd519a59d6d2471a9c | Bin 0 -> 1237 bytes
...ce1b5a6be57b7ac995de74f2a2cff18d111a87fc3e | Bin 0 -> 919 bytes
...93fa286c5fed16e8d6576ddca7289772ea299150a3 | Bin 0 -> 1624 bytes
...a2f79970abd0d3492161eddcd3ac831d26eb7c06cb | Bin 0 -> 1568 bytes
...d574557fc1b1c5f54531fa38ac8d80c1a074ceb353 | Bin 0 -> 2513 bytes
...b64891af368a36dcc573f88025a5cc70540845c258 | Bin 0 -> 664 bytes
...010f6f3dbcbad149b6ed278b4b0e3777518f4554a1 | Bin 0 -> 1334 bytes
...ee2630a70238784fd517609b7b93d4df320114ce5f | Bin 0 -> 1040 bytes
...a5ea66352b2a028e106150c0277c4849368ffbe0d8 | Bin 0 -> 957 bytes
...0e3ed11830ee9980bb188eb8888c617967efd49f3a | Bin 0 -> 2081 bytes
...9698c182af76e991a6143714324979851bfb030a38 | Bin 0 -> 1258 bytes
...78a92268ebea52a7bb2400c52f4f62d126f0b5e164 | Bin 0 -> 2021 bytes
.../crash-2023-06-11_14.38.42-client.txt | 100 +
.../crash-2023-06-11_22.06.03-client.txt | 73 +
.../crash-2023-06-11_22.10.15-client.txt | 65 +
.../crash-2023-06-12_14.08.45-client.txt | 150 +
.../crash-2023-06-12_14.36.58-client.txt | 75 +
.../crash-2023-06-12_14.39.05-client.txt | 75 +
.../crash-2023-06-12_14.39.59-client.txt | 75 +
.../crash-2023-06-12_14.42.27-client.txt | 75 +
.../crash-2023-06-12_14.43.20-client.txt | 75 +
.../crash-2023-06-12_14.44.09-client.txt | 75 +
.../crash-2023-06-12_14.45.27-client.txt | 75 +
.../crash-2023-06-12_14.45.53-client.txt | 75 +
.../crash-2023-06-12_14.59.01-client.txt | 84 +
.../crash-2023-06-12_15.00.07-client.txt | 84 +
.../crash-2023-06-12_15.09.00-client.txt | 83 +
workspace/logs/2023-06-10-1.log.gz | Bin 2599 -> 2298 bytes
workspace/logs/2023-06-10-2.log.gz | Bin 2298 -> 2606 bytes
workspace/logs/2023-06-10-3.log.gz | Bin 2606 -> 2274 bytes
workspace/logs/2023-06-10-4.log.gz | Bin 2274 -> 5713 bytes
workspace/logs/2023-06-10-5.log.gz | Bin 5713 -> 4649 bytes
workspace/logs/2023-06-10-6.log.gz | Bin 4649 -> 12350 bytes
workspace/logs/2023-06-10-7.log.gz | Bin 12350 -> 13007 bytes
workspace/logs/2023-06-11-1.log.gz | Bin 0 -> 2580 bytes
workspace/logs/2023-06-11-2.log.gz | Bin 0 -> 2586 bytes
workspace/logs/2023-06-11-3.log.gz | Bin 0 -> 2580 bytes
workspace/logs/2023-06-11-4.log.gz | Bin 0 -> 2576 bytes
workspace/logs/2023-06-11-5.log.gz | Bin 0 -> 2637 bytes
workspace/logs/2023-06-11-6.log.gz | Bin 0 -> 1263 bytes
workspace/logs/2023-06-11-7.log.gz | Bin 0 -> 15760 bytes
workspace/logs/2023-06-12-1.log.gz | Bin 0 -> 1265 bytes
workspace/logs/2023-06-12-2.log.gz | Bin 0 -> 2169 bytes
workspace/logs/2023-06-12-3.log.gz | Bin 0 -> 1266 bytes
workspace/logs/2023-06-12-4.log.gz | Bin 0 -> 1266 bytes
workspace/logs/2023-06-12-5.log.gz | Bin 0 -> 1263 bytes
workspace/logs/2023-06-12-6.log.gz | Bin 0 -> 3456 bytes
workspace/logs/2023-06-12-7.log.gz | Bin 0 -> 15083 bytes
workspace/logs/2023-06-13-1.log.gz | Bin 0 -> 2800 bytes
workspace/logs/latest.log | 9838 ++++++++++++++---
workspace/options.txt | 4 +-
workspace/optionsof.txt | 8 +-
.../Copy of mcpworldpp/data/Mineshaft.dat | Bin 21876 -> 25068 bytes
.../Copy of mcpworldpp/data/villages.dat | Bin 56 -> 56 bytes
.../Copy of mcpworldpp/data/villages_end.dat | Bin 56 -> 56 bytes
.../data/villages_nether.dat | Bin 56 -> 56 bytes
workspace/saves/Copy of mcpworldpp/level.dat | Bin 1174 -> 1294 bytes
.../saves/Copy of mcpworldpp/level.dat_old | Bin 1172 -> 1280 bytes
.../3ab608c1-368b-3111-9725-7a01f0b8ec9e.dat | Bin 0 -> 738 bytes
.../74e89738-6c9e-4f59-83ef-d365849e6049.dat | Bin 622 -> 789 bytes
.../ae330cf9-3749-3ca0-ba31-8447e2a2786f.dat | Bin 0 -> 656 bytes
.../Copy of mcpworldpp/region/r.-1.0.mca | Bin 585728 -> 585728 bytes
.../Copy of mcpworldpp/region/r.-1.1.mca | Bin 2670592 -> 2670592 bytes
.../saves/Copy of mcpworldpp/region/r.0.0.mca | Bin 720896 -> 720896 bytes
.../saves/Copy of mcpworldpp/region/r.0.1.mca | Bin 3170304 -> 3170304 bytes
.../saves/Copy of mcpworldpp/region/r.0.2.mca | Bin 2740224 -> 3301376 bytes
.../saves/Copy of mcpworldpp/session.lock | Bin 8 -> 8 bytes
.../3ab608c1-368b-3111-9725-7a01f0b8ec9e.json | 1 +
.../74e89738-6c9e-4f59-83ef-d365849e6049.json | 2 +-
.../ae330cf9-3749-3ca0-ba31-8447e2a2786f.json | 1 +
workspace/screenshots/2023-06-11_12.25.34.png | Bin 0 -> 1818744 bytes
workspace/servers.dat | Bin 6505 -> 41152 bytes
workspace/settings/accounts.json | 6 +-
workspace/settings/configs/default.json | 250 +-
workspace/usercache.json | 2 +-
929 files changed, 10839 insertions(+), 1969 deletions(-)
create mode 100644 src/main/java/fr/litarvan/openauth/microsoft/LoginFrame.java
delete mode 100644 src/main/java/fr/litarvan/openauth/microsoft/MicrosoftPatchedHttpURLConnection.java
create mode 100644 src/main/java/rip/athena/client/cosmetics/CosmeticsController.java
create mode 100644 src/main/java/rip/athena/client/events/types/client/SwitchTextureEvent.java
create mode 100644 src/main/java/rip/athena/client/modules/impl/fpssettings/impl/ThreadDownloadImageDataHook.java
create mode 100644 src/main/java/rip/athena/client/modules/impl/mods/ItemPhysics.java
create mode 100644 src/main/java/rip/athena/client/modules/impl/render/PackDisplay.java
create mode 100644 src/main/java/rip/athena/client/modules/impl/render/ReachDisplay.java
create mode 100644 src/main/java/rip/athena/client/modules/impl/render/TimeChanger.java
create mode 100644 src/main/java/rip/athena/client/server/CosmeticsClient.java
create mode 100644 src/main/resources/assets/minecraft/Athena/gui/mods/reach.png
create mode 100644 src/main/resources/assets/minecraft/Athena/gui/mods/timechanger.png
create mode 100644 src/main/resources/assets/minecraft/pack.png
create mode 100644 workspace/assets/skins/10/10120fe0a9baef94f9d63199998e199613431428c64661b9c81a2a2277d00a60
create mode 100644 workspace/assets/skins/10/104db06da43b47ab2cd08be0d0e0e89726d167d06f5d5d78ab31f58c4d4d277b
create mode 100644 workspace/assets/skins/10/106033483f61737f033d946bde5d5200d5294088d0c1cf21651927644115b120
create mode 100644 workspace/assets/skins/10/107b7bebb1402dbb2b5df0d61b3d2997adb106e36a6741b9f05e3828b7c30b68
create mode 100644 workspace/assets/skins/10/10d9c3830a51c9d781f1e7e05e7e4852fa3ab43aa8367d62b555a8e1456f8333
create mode 100644 workspace/assets/skins/11/1178c7ba944cbafa1fd3ec57ac0737ea97ff44014229ada4d6f75c655126aae0
create mode 100644 workspace/assets/skins/11/11cf67efaa8ea89d1d8ff38cf606db51da3ea73f924894eceb92ef8d60f5a517
create mode 100644 workspace/assets/skins/11/11d6555fef1609a535c455ff81d9e56165048ff25045a54d4dcc67b20c1914e2
create mode 100644 workspace/assets/skins/11/11dcd6ce266c51c3991d99272de281783ab881832bb847d7355ae282a2648a4f
create mode 100644 workspace/assets/skins/11/11e526bee21d1f7fcb865ae406e1fd193b659355a490e2f14dc11748ff8d953
create mode 100644 workspace/assets/skins/11/11f24a0cbf710481aa79f0059fe8a121be9f461952f2ab8d6c13aec0562d6d44
create mode 100644 workspace/assets/skins/12/1225be00472f558de079a616d8cb6e2dfb88bb572dd04d6274cc14fa0574d8cc
create mode 100644 workspace/assets/skins/12/1234d3fb1bf61b32001fb71704cadfd875975edf0d6e5fe19b6d52547b519af5
create mode 100644 workspace/assets/skins/12/129dee5d296dc5e7fc94d92d3f5ddf8c82d8338361ef22ccbd57fa1b688c21c1
create mode 100644 workspace/assets/skins/12/12b350aa98002be4ff864d9b6f9c83912e89553433b323f5f6a19039d0eafd5d
create mode 100644 workspace/assets/skins/13/131e12adddc7ff674cb8af6b0e4b38068077093a0103d233d0d79c7937ce180a
create mode 100644 workspace/assets/skins/13/139d34ff77398e6214de50256ed0efd0c47e0d1378906e742e596d5a74a56445
create mode 100644 workspace/assets/skins/13/13d47da18f70aa8c241dd5efb31cda35fd47baa1a34b87e1b9b4a7486f06c6ea
create mode 100644 workspace/assets/skins/14/14285482e752921a324644b42bdae344421e1bce968df46639be4c4f3b979d0c
create mode 100644 workspace/assets/skins/14/1437bf454f4862275bc6e48aafdeadcda5e73fc88a2e1fae7b18a8a06c9f04fd
create mode 100644 workspace/assets/skins/14/1441181e01b171f6f5905d5d3742814b7a6059805d459f4b3005782a4cead34f
create mode 100644 workspace/assets/skins/14/145131e4bfb1ed3be052f8763fd8daa6dd770f307e8c484d6af035a357609630
create mode 100644 workspace/assets/skins/15/152fd56b3955d1a8814b0906fcd1337c062e62f66f8beb8f38ff2e22f82b00
create mode 100644 workspace/assets/skins/15/156b79e38f33dd42df1cfb7b56987e9fea55cf70282154960f116b14fb6aa582
create mode 100644 workspace/assets/skins/15/156d48f1b7f089b2234905c7b302a53c3ebc53af9a846f6e0c6244f7e74da05e
create mode 100644 workspace/assets/skins/15/15bdcd73508f5234acf698b31771274515b9dd21991af3dcb192e80e549296e9
create mode 100644 workspace/assets/skins/15/15dc60c809a9fe79abaafcb243ac8dd8cf1c5c15a81b44436b9fc4fe37820e6
create mode 100644 workspace/assets/skins/15/15e4d6385f05705c841af0f4b017126869a91d1ec6227b865d70fe847d449d52
create mode 100644 workspace/assets/skins/16/168af4244eb46b7ce51f53369d6fec8c3b4e2fe57aca852475716152fc9f1c
create mode 100644 workspace/assets/skins/16/1698afc6490db4e01b9bad55a7dab6f83bd68531db0872c46e30fd9bbf38ad09
create mode 100644 workspace/assets/skins/16/16b3f63ec185d4853cb5532c503c0039b4b4ac08b454a3bfeabef24af456a2f7
create mode 100644 workspace/assets/skins/16/16bf1f4251efcddca33fdcb2246a8f42a97d35f5769a2459f64a4962dad946b8
create mode 100644 workspace/assets/skins/16/16c39603b03d898656f6c996c2f84de8a626c2afe12d4eebaa44a4d3a719c6fc
create mode 100644 workspace/assets/skins/17/171d713103c5ed2eeffbd75ca86930f695acd08e560033132e591e8f0f3c8822
create mode 100644 workspace/assets/skins/17/178d177318de7547314516b52d2a1a96fa9b7aa9a6717d5930dc739642bcab83
create mode 100644 workspace/assets/skins/17/17fbbfa90ddb550ec33fb8849f4ad1e2a2d0770741d5024ac3f99f6bf95ea78
create mode 100644 workspace/assets/skins/18/18ea577d3349b760619af2ee7f054f85d4b8ad07faab70ef25ed66a89754e5e5
create mode 100644 workspace/assets/skins/19/190148b9571079c7826099dd8bd2829c69a7fb8287740c157db74d932513249e
create mode 100644 workspace/assets/skins/19/1920ddd84db94ad04bc33c7bf056a6fc0bc972b0294da20cd700921c0b31c411
create mode 100644 workspace/assets/skins/19/19a36ad567d354bb22cc4876130f2672084c1ea6e6a1a90f86aa9c4a9bf8e8d0
create mode 100644 workspace/assets/skins/1a/1a018edc72efb0647049253194d92303a3cc3de5bf16d853750687004f7d69cf
create mode 100644 workspace/assets/skins/1a/1a10dfd932ee36ee1da3fbde53ddff45eb2d864056e30fa54c496eac0c0f8e9b
create mode 100644 workspace/assets/skins/1a/1a55b0876bd429f566654c63944cea07231718b8deb4f83267335bfabe448950
create mode 100644 workspace/assets/skins/1a/1a7ae2514311ec1ca60d6301ae6ecd4533b7232728117ae1d8d085361e7c4859
create mode 100644 workspace/assets/skins/1b/1b293d14e4b4c0ffc96e4168f547f50dcc14963b46e1ffcaaf8fa57331723240
create mode 100644 workspace/assets/skins/1b/1bc5693800751abdb80ede6a17d1b8c14e19df39630c5e389cec55e6ab27da05
create mode 100644 workspace/assets/skins/1c/1c2419d9ef788a00a44a2262e78b560814620a39ddf8930f5ee976daa6fc6559
create mode 100644 workspace/assets/skins/1c/1c37fa198f9288116feb85b8d0a49dc0ee84d616cf7ebcd77aedcd49edddf2d8
create mode 100644 workspace/assets/skins/1c/1cd4a54870fdf8631e7c2e76f41035cf7ae52f3bf7bc15581f2e8511703458bf
create mode 100644 workspace/assets/skins/1c/1cf5e6b24bffa9874de512df03a72d30f93560c5b79f7e98996b88d61c9fea8d
create mode 100644 workspace/assets/skins/1d/1d7d982ae7f5384a0107b181b714aaaa11f0747d059cd152a2f8bc8d9606d3af
create mode 100644 workspace/assets/skins/1d/1dc2d14dcf1c472185ef759d96cd14773f78fb9f8b5ffc3726061cd94592ad17
create mode 100644 workspace/assets/skins/1d/1dcd2981575993006ab06a22e9f7e6ca041244b88d042df7d858980a63438d38
create mode 100644 workspace/assets/skins/1d/1df690c50a82e551a28118c6b59e7e9953451ec32b2fad21a41ba779bfdb15f7
create mode 100644 workspace/assets/skins/1e/1e1ca17103ee5d3702e122b6ad8b94d9287eddae241c6f90b02c7f75c60e78ec
create mode 100644 workspace/assets/skins/1e/1e2ce894b923f700c1a38b6c45fec3636793ea9b37907cc37840afd702f54c35
create mode 100644 workspace/assets/skins/1e/1e44723267117d34c956042b47aab0cd064cc3147b356290cc8563f37b65c271
create mode 100644 workspace/assets/skins/1e/1e4a05b1e0fc846fc02b5584d5de4cf39b7983a4056f3dfc310a1a06ba270567
create mode 100644 workspace/assets/skins/1e/1ef1ea4ff102225863ebf39ba7fa80bed14929cf3b52caabdaa56eb7c04c7304
create mode 100644 workspace/assets/skins/1f/1f8dfc2db2c8bc9a75a0676a830c0394e8a87aee09610dfb4866cdee3cd5dfb0
create mode 100644 workspace/assets/skins/1f/1ff80c1c634dd1f4734b5dc8e0fb2026024ff07381f8dbe26d59a8c2aaf10f0f
create mode 100644 workspace/assets/skins/20/20330af7498c66c3456918d55fed684cf6e711d09f68a3333b207acab5c3a1b1
create mode 100644 workspace/assets/skins/20/20ddd16696a6a895a59d5bf05c8f3048bc8fe77ffc95adca4c48d5e135006c4
create mode 100644 workspace/assets/skins/21/2137b445d14cb403783eae8385ad322d110a706aab5c60a8e0c034e5a27b3d36
create mode 100644 workspace/assets/skins/21/21900027824b77ffa8d4fa8345b049aab8786d4aa6b29914ebcd7da1e0c9fd7f
create mode 100644 workspace/assets/skins/21/21f805421642374a14faf6e284018999ee322066f0d8d2122fe79555273dd91e
create mode 100644 workspace/assets/skins/22/2278c7e30fc7ab7e80127a8572f4965e1d2751bca861a1d5913fec9d39b9b6bc
create mode 100644 workspace/assets/skins/22/22f24417f2a8f6c051a7eff24e9e26011dc959ff74768c3f1a9a2a48a420aaf7
create mode 100644 workspace/assets/skins/23/231a7170cbbf91b7ded764769ede9cb8fd0220600aaddf36e11cfbdb7751127a
create mode 100644 workspace/assets/skins/23/23282697acaf9f7ef3f2e5a65cd96d60171b08f7b879af1b299b77a05af8426f
create mode 100644 workspace/assets/skins/23/2353efd19c4388583f44f064ada1077ee5558495652d1e7e7992ef963d6f8bb6
create mode 100644 workspace/assets/skins/23/23751ed94289560a5aa636f3819be9b2e3ffaff33b63911404636ed37f0dcfad
create mode 100644 workspace/assets/skins/23/239be30a24574aea2a5dfaa88458cf1b4e2f8581a2843faf5c4fecbc9258febc
create mode 100644 workspace/assets/skins/23/23abce1ae796b75e2c08fab3dc42aa5f7a093f93fc42c6ce28ace72594744fce
create mode 100644 workspace/assets/skins/23/23bf5cbb2e0948510a676c95f9362c93ad69bc38ea2c165cfdef94fe8af651bd
create mode 100644 workspace/assets/skins/24/248384fc67a1cedfe5cf365c140d57750049558007643d69f55fec9bf6170ad3
create mode 100644 workspace/assets/skins/25/25b1f781c20bab5e59735409eccf7afbaecc4876004717d6e8d5a7366df5c6a
create mode 100644 workspace/assets/skins/25/25c1a808ed03cd8cca3fc80597ab9acc54a5e1c92455a59180a3e96f51b824f
create mode 100644 workspace/assets/skins/25/25c86476839677c1b5fa11b491cb46531cda2975c0cac65246a1d0ed743fa919
create mode 100644 workspace/assets/skins/25/25f8d35f65ee342088e06697e6f963520dc405339351fdcf88e7c0c2b1c32a09
create mode 100644 workspace/assets/skins/26/2624e357eba16e00aff00e5d014164a74beb385837a6e0faba1748761429785f
create mode 100644 workspace/assets/skins/26/2681d8cd1b5c875ef98c315d0988625b3c02a76b4d761efa08bf39c4e5645ba8
create mode 100644 workspace/assets/skins/26/26985263ba804f8b6e5608fb5bf12c3d52393220e97ce7c43735c6fd950c01bf
create mode 100644 workspace/assets/skins/26/26e107f5e728577b06797ced7af54dc5032367928f2b4c28163f722e819d0486
create mode 100644 workspace/assets/skins/27/27a21317674ae9ecc4ac8d81086bca7f238ade939e49f30121acc31861ef6bac
create mode 100644 workspace/assets/skins/28/284f9b74b3a1dd930c4dcdde428cf83bcc6f07e30fa9826289fc8ee2750bf21f
create mode 100644 workspace/assets/skins/29/291b76d29a795f358410e06aa94c6971c01f0ec72b1fe171861b13a75d2ea832
create mode 100644 workspace/assets/skins/29/292354b83e59acd95a3f1776b09e250c890f61d1943ecdecc9a10653cb82b9b9
create mode 100644 workspace/assets/skins/2a/2a1534f3ca4dd058f502937bdda279fa4857e1413720d7638a8f64075c54e578
create mode 100644 workspace/assets/skins/2a/2a2d0ef12c50d425bfa37c926ccc5e4e875c15924638eef8ed4b0344867570ce
create mode 100644 workspace/assets/skins/2a/2a5e08743853dd99330fc417bce982568dc481f71f59f1abf49f53cfaf2ce113
create mode 100644 workspace/assets/skins/2a/2ac98fa0f0890735a0e07d3084057893939f35b1daf59d635006029292c8a528
create mode 100644 workspace/assets/skins/2b/2b181c75db798936365c23efc8551b99182056071615c6749ac825a0be876e80
create mode 100644 workspace/assets/skins/2b/2bdd198fd9169169744eb59521cda8abae134dd4644aa9afc3887ba07f46f225
create mode 100644 workspace/assets/skins/2c/2c106ee965c96f75f03b8512986f36b727434d26ab48519f9cb99e43f28eb4f1
create mode 100644 workspace/assets/skins/2c/2c2b472b2b78a9fccb634655ebb1e5b886737edebd0024c207f397c575514741
create mode 100644 workspace/assets/skins/2c/2c31975c394b2b3d7209db84de98f5671943b52ba30a0b112c85ec402ac7c48d
create mode 100644 workspace/assets/skins/2c/2c3b09d6f2c7447808ea17a4a40a439a70a2ea8544475a069ec2606f5eedfef5
create mode 100644 workspace/assets/skins/2c/2c93764f728c2748a387ef8333d0c17069d1f385266462f344b3fe280892cf3
create mode 100644 workspace/assets/skins/2c/2c9f7d44dbade3a42dbca0bdd9ada32bc401a238ac5b28c0efaab111d77200f
create mode 100644 workspace/assets/skins/2c/2cf88bd030ce7c2b11928ceed6b215a8c65f86bd07ac6f5dab96179535040cf2
create mode 100644 workspace/assets/skins/2d/2d573e73e97e530a575214ecaa13da084011cd5773e7afe4274416adb9d2e75a
create mode 100644 workspace/assets/skins/2d/2d71d567571338add33b77a4e6f99a0b73c0748da6eb4d90b9bc8da9934ee6a7
create mode 100644 workspace/assets/skins/2d/2d88fa62ff0424a7d64aeb0c111562c8dc66cd3503c1fdac91a956dc37ef3954
create mode 100644 workspace/assets/skins/2d/2d93726c377c19903aa28094df20447707254fcba383c64aaea0834e609eaf93
create mode 100644 workspace/assets/skins/2d/2dcb222e57e2f496e88b2ef052dc800b90592a3b5c726bdabe34a104fa9cf692
create mode 100644 workspace/assets/skins/2e/2e437cd9e6e41805679ac4523ce82a09b8d748c93f10cf0d007b78e248dd6b57
create mode 100644 workspace/assets/skins/2e/2e4e909326283b890de160d0b935f226fb7dca7fc555560d2b44e8a478e34576
create mode 100644 workspace/assets/skins/2e/2ebbafac74fddf7cd90bc159ee689884c43df36398078386ee312faf9c01110c
create mode 100644 workspace/assets/skins/2e/2edbfa4ad44b738a74373caf2b6609af6a84cd355db4f3afe7e030e97fce592c
create mode 100644 workspace/assets/skins/2f/2f1c3a2af9e416451816c104b445c1e824dc52e7aaabe88fb72203890679f13
create mode 100644 workspace/assets/skins/2f/2fd3c5505b037e34c885a4d5224040dc9148ebb7c7fc30f93b06e5aa9cece252
create mode 100644 workspace/assets/skins/2f/2ff4168d966934edb6fad038c01a2add2b5b8849eddcba3d86cd9e1393fb2da8
create mode 100644 workspace/assets/skins/2f/2ff8ad1f869c5a064c8822a090d6c07d434b444f80a1a01840b65663ff86de7c
create mode 100644 workspace/assets/skins/30/3014985e85ec643cfbbbbddb86de31631c8248b029267eafe73a87fc60f3e53f
create mode 100644 workspace/assets/skins/30/307b5a3c713b8449a20d5fd7ef7cb04d59a51b891a786777b0e7bf3acfeabf22
create mode 100644 workspace/assets/skins/31/31d6867ede948612a2ab1758780d13626d7e64ea8d9d4e6677d2271d63a79d6a
create mode 100644 workspace/assets/skins/32/32a4facc0b214af561acbcce6ff620e43a001f30b0ed75b7f42b0a5c67dc7ed0
create mode 100644 workspace/assets/skins/32/32e42b7516c08678b7b8eeedcb730eed1b4581123b4240277b95d1f7057e146
create mode 100644 workspace/assets/skins/33/331fccfb3f814a6cb3e796d361e20723b510f7b4af53c91faa1885fc029fd4f4
create mode 100644 workspace/assets/skins/33/33a7bc848d5873847b5119c97a0492cbf6fdc517b9adfe8b41340cad7a0ff74a
create mode 100644 workspace/assets/skins/34/347bc311faf69ebaca7c3209a5e3e15d1533112c23ff46ff8d019f3413cf0599
create mode 100644 workspace/assets/skins/35/351046d1b80c65fd812e45956d4d6626517d47ab923dc0575ea39eb17b54cd41
create mode 100644 workspace/assets/skins/35/356dad00fd2b6cec45c54b774114dcfb47765fdebcd96f22d21fa952f86bb2c5
create mode 100644 workspace/assets/skins/35/35bfc9a6035a72be92dcf894bd4b5d53364c4dcf91a68232cf67b0bae17d2158
create mode 100644 workspace/assets/skins/36/365a29366f4117f33d71068878388decfc3ab3e180442cd182578a8ed4136bfe
create mode 100644 workspace/assets/skins/36/3676b0978f8fa00a5478cb6f0c2784ad1fe4e508ce7cff96735c661daeee260
create mode 100644 workspace/assets/skins/36/36faf9c1e760ff02353c85b4107f6f92e3cd6095dfa6cbc55ecf3aff1d33c123
create mode 100644 workspace/assets/skins/37/3707f20686b0b6c5adf5b75fad78884232870c7ff1e6f462b13231cceec78150
create mode 100644 workspace/assets/skins/37/371191242da2de2ccbd079b3c91c2c4eb08896d6744df8ba7e9deba147b07c48
create mode 100644 workspace/assets/skins/37/376b619a5f463a40d9d7281d6d78fd2e397542fd6b1c7fd96ebceb2aa47eaccf
create mode 100644 workspace/assets/skins/37/37abe00d55b4365499ec2d0625ba269f4d882413ea89d90e51ba4bd0554c35b8
create mode 100644 workspace/assets/skins/37/37e2cf0b7081ec6fa0e11c3f1f76ac1a6a1c7293523123ed768dcfaffef2f097
create mode 100644 workspace/assets/skins/38/382bc2b2b73d432515f2a26d2767b8d69ba01024c28e16ba183cc201e887756a
create mode 100644 workspace/assets/skins/38/3830c6ccf0e3199dbc577ffc345eade0fdf2950734196754e4ec947aa403bb78
create mode 100644 workspace/assets/skins/38/384eda89b88f532d75dd1c67f0f3b890fa1afcb01388eec8261c726256be6c22
create mode 100644 workspace/assets/skins/38/38591af1236640cbbec524f948cccc7ecf676374cb8948dda2a0c85bfbd30179
create mode 100644 workspace/assets/skins/38/3883940e37e96d3a6235e861ae7f3dc750662df7d7aff6e332f24d22fc084e0f
create mode 100644 workspace/assets/skins/39/39049073f68688fdcc0507f71352dacc484ae92441e27934010a85f6cc8062f1
create mode 100644 workspace/assets/skins/39/3972a273dda986e2608eace5f6085094fc1dee1dd4f480228e45408a237e8859
create mode 100644 workspace/assets/skins/39/39ab0b4e3246c7cb2794655ca2e0e7cae9536455983c7fb5b0e752fb38168734
create mode 100644 workspace/assets/skins/39/39c3ba9e5eb52e9c6239baac61d94957003c8dd2aa33209b7f56575fafd02b04
create mode 100644 workspace/assets/skins/39/39e4b1a09c84484dc54ffea8c9f318bf8a4ff24114ade5aa416ffbdd72d90128
create mode 100644 workspace/assets/skins/39/39fd8dbbac436e95cc8163b916a893adb2599ec40739917ea5483953089b80d1
create mode 100644 workspace/assets/skins/3a/3a33929132d465966904970eb3d3ad2c973b96acf957b73b7861a0e4e66a9c40
create mode 100644 workspace/assets/skins/3a/3a58522939f0df04dccb44f43044f3187495318e023dd1d753ee2ec9bb813004
create mode 100644 workspace/assets/skins/3a/3ad1b896fdad20b543402febfd402533472d908a667e9d77abf4ebf2aafd1c58
create mode 100644 workspace/assets/skins/3a/3afd8d436be3aa5605a0619a6634208c5a684f5dc1b0d7aab86cd2e277877bf6
create mode 100644 workspace/assets/skins/3b/3b012255239eb939dcdf2223d51105af61e80f298c20b4ec4c26f2e89769171c
create mode 100644 workspace/assets/skins/3b/3b3f30a55d53bccf2f088ce55880102f46eaf82d98ec732d9abcd09538ad6fe1
create mode 100644 workspace/assets/skins/3b/3b595cf3c5b0633c7e85d91b0a0893cb3a08de3dfd9e8175c69e49e681cf6f67
create mode 100644 workspace/assets/skins/3b/3ba1fa9a71fd49f133d0d455adb4276290bbf25f6c5ae19237c594002a6a5c43
create mode 100644 workspace/assets/skins/3b/3bae44fb45ae9a787af1af81e0977224c1a6307c919cc34a7dc65a4627564fa2
create mode 100644 workspace/assets/skins/3b/3bbde066f5ec321b471513a46c647d76de6b3ae1723c7da37c2ae36a557183e8
create mode 100644 workspace/assets/skins/3c/3c05782f3b4715b17ae27b8293f79da852bf606b46ec1f3d66ca900bbf91f008
create mode 100644 workspace/assets/skins/3c/3c2e2259fc984022f328c7a8dfed1af30cc399417ffda83bf453b8977e94507
create mode 100644 workspace/assets/skins/3c/3c694889fed3ecf89563823bea2b3d72ca5481fc19bfd3f7c73a273dd55e90
create mode 100644 workspace/assets/skins/3c/3c6a4afa5c03d51750cb423143c145142b93cf6737328bc4b1c22c3de81fcf66
create mode 100644 workspace/assets/skins/3c/3c897760721e7b8226ec9e9871813f1a80e30d155a96bc0817e53269a9040a81
create mode 100644 workspace/assets/skins/3c/3cfc3dda496d96390788f33c20be86cfc5121f761167eeae38de8278a1922615
create mode 100644 workspace/assets/skins/3d/3d5e263ea7d099a7a36f7745db54feb7b5a0bfc915963820d0d27fd775183d55
create mode 100644 workspace/assets/skins/3d/3d6694a7f3fea81c1fcfb2eb0f1d5f8cec54c5ebffdde157d441970effb35151
create mode 100644 workspace/assets/skins/3e/3e3d6f86fee5010363763a17894e4dcc9c9157c94bed6ffc5723eb406034da41
create mode 100644 workspace/assets/skins/3e/3ea176e0a150baef06d7776c7194a9cc31d764ed52135ee2502212d9c2412a96
create mode 100644 workspace/assets/skins/3f/3f4ae1f49b42f6e9bb578644880c929ccf5259aca82d496ebb2fae926509c457
create mode 100644 workspace/assets/skins/3f/3f4e8c37ce2c9b6915fa566cd85073af7bad0c174279668f8976b840ca242015
create mode 100644 workspace/assets/skins/3f/3f572d841f1f916a2fd8fe0cb324a2e7788c8c17dbe181f42f0d215517aa928e
create mode 100644 workspace/assets/skins/3f/3f987ba33ce05893a969548443e3b2df0cac2b021f75d7305f68e3c2f8f0609e
create mode 100644 workspace/assets/skins/3f/3fc886572f524b3fe604c5bf8f3190b0bd0e0976d1b5f614be2940af188c7273
create mode 100644 workspace/assets/skins/40/402a8ed761f16b80398c84c596cc3cf530de744d224c136144716b9c6e4b6ccf
create mode 100644 workspace/assets/skins/40/40431010afdb1ba30c420a456e45d555f9e88316f1506c711ccad6b73219c086
create mode 100644 workspace/assets/skins/40/405cc937d6afb4a672663a909bacde2eea5eabf8b787ac965baa16ed4671352b
create mode 100644 workspace/assets/skins/40/405eae918a6857bffae6cbfa602fbea5e690954db6f02376809af25418cfd454
create mode 100644 workspace/assets/skins/40/40d936077126a716ff1d4607c4199169b908d3e6a346a924515103194ad61ecb
create mode 100644 workspace/assets/skins/41/41592391d97ccef2999cd84b3c633c64a626eddcda83635c99b5b1b4f65d1801
create mode 100644 workspace/assets/skins/41/41a5981bc6dcd07a361b23aa710f11d1194ef4c1732e77981a4b70af29390ff7
create mode 100644 workspace/assets/skins/42/4264cd78d66a845c991d474831fc11c7ef3a1e06e8b2fc53d7cf6201dd5fa53
create mode 100644 workspace/assets/skins/42/42954c81f6cb4ed58911cbe530049ee3d846f58eccce9bf577f7f63b37a084bf
create mode 100644 workspace/assets/skins/42/42f559cdbc2dd6b593664f8f9bddb10968356dd843c0c309ca69b828ccb5dfac
create mode 100644 workspace/assets/skins/43/430c38e5f4604cfbfe9a36a15ead323bf0f53391f39640fab30eabd78b589937
create mode 100644 workspace/assets/skins/43/43c5185d624adcdefdee99d346232736f72e07b0e3c167b81f969e9500df1466
create mode 100644 workspace/assets/skins/43/43d8087295e2615a09481ed8ec22d02cd6f7433225ebefbd9d638d25cf8bdfe8
create mode 100644 workspace/assets/skins/44/448bdab272f58afc0556dd41cc28d735f2204dcb14b314a6519d964f83d11ffc
create mode 100644 workspace/assets/skins/44/44e0ac709dc3979fd1507889863232e5cf51b961f3cc821140bd306952de50cf
create mode 100644 workspace/assets/skins/45/45211f8d18cea566b452c22743edcf4efdbfdfaed4ac641ffd413a4265706478
create mode 100644 workspace/assets/skins/45/4552c19574a964f9241412f3be68e78f21c7f366957919c03116f9bdf182b91a
create mode 100644 workspace/assets/skins/45/45c945e20cfa9672d23a3b45b33cdb3f556f9174bea4bb82257b561caab1d6
create mode 100644 workspace/assets/skins/46/461785cc14818426669332b189c55dba75341466083c2ef43f30bcc334b7923
create mode 100644 workspace/assets/skins/46/465a8bd53d201f1814279e6dca5f3c5b6a1c5d55d8c4a30c00bc07174ef7fa65
create mode 100644 workspace/assets/skins/46/465c6fdd8ccaa94ccfb1abc4353446db7c709da3b98d0f25c43a5bf2cca05522
create mode 100644 workspace/assets/skins/46/4671ae02c20de86c751e1525bd6330b2a1f319b2798de529b5b1ba51ce975c39
create mode 100644 workspace/assets/skins/46/46df5ba28b78a903ab6074d0c8e67d531276cf421b42addc9944ab09f8b2e787
create mode 100644 workspace/assets/skins/47/47368d1d32bee0e1379dbad1968b520b288c0b68242c126998f85c907849bdd5
create mode 100644 workspace/assets/skins/47/473a43c578bf5bd238b328ca881b513e863b9d45efba8923527382dfe6070466
create mode 100644 workspace/assets/skins/47/47739a0490da91387f1a0acc459580d68a5996f106b6b56b24ec046c801c00ac
create mode 100644 workspace/assets/skins/47/4792dbb85573a48d18ae4b5924cf1c3f09d597ae68e359670e8068ee864fbab1
create mode 100644 workspace/assets/skins/47/47ac5b8447aa99d4014831ed1a9d5f6171017b6550d86b957d510112dc604e8b
create mode 100644 workspace/assets/skins/47/47afb5a5b852cfc22da22112136428565eaf8cfdfbd9e4a1f2573b67e5b86a95
create mode 100644 workspace/assets/skins/47/47d3ecd41919515f173afe8b2139076d2ee0f85d0b8635ad3c3727484c7d50e7
create mode 100644 workspace/assets/skins/48/481f45d93b19a9a10637ffd090a9dcdceb2a62233b5368fe56c5b63d7ef79043
create mode 100644 workspace/assets/skins/49/493bc4e27fec8e886db0eadc5d257e8de69c221e48b8e592a28d1d69bdf7e0c0
create mode 100644 workspace/assets/skins/49/493c2ab18b459e999b36d271760d43239c4f9c391ca71c63069c5d70a09a66e9
create mode 100644 workspace/assets/skins/49/494f18310195f597e497cc64e8ee5e98fe659d44c4311ebf78d2f74705dc0a78
create mode 100644 workspace/assets/skins/49/4999065039079600c00901843479ff9696e50f742a7d40884e8b100c431bc683
create mode 100644 workspace/assets/skins/49/49e8d0ed68d2b7599336d263c8865185f18e48090c564453455e6daaf58ed88d
create mode 100644 workspace/assets/skins/49/49f3a3254de2f17c33f4d36d49ac20f4d7122e068c89c639e7bc1212a33a8799
create mode 100644 workspace/assets/skins/4a/4a04daf3d557a3fe1446baee0c672924dc2abfbef0ab3f871fd6e8b445bcf8d2
create mode 100644 workspace/assets/skins/4a/4a07101537a01376655afd3e51094d4c856d3501bca58783add8ba1584fae99a
create mode 100644 workspace/assets/skins/4a/4a2d4ccee24d7515e10ec602b6b0fd0f7e4ce28c46c8631d7864a237ace04c0
create mode 100644 workspace/assets/skins/4a/4a55d0ff040402e6a9246d09ba90e2e15c68a19f7d9a7dc05ec4a57170784cce
create mode 100644 workspace/assets/skins/4a/4a757dc94b6d56f6f7f79bee53633bcbf422983223bc4a7ecb4f56340d575c1d
create mode 100644 workspace/assets/skins/4a/4a7af779eafd38120965ff39ec042b3cbdab5da57eb3e156f05104c68615afc3
create mode 100644 workspace/assets/skins/4a/4aaee68d3b498eb753f753458124958f17a897703a23d87eba3d3471a5854544
create mode 100644 workspace/assets/skins/4b/4b73a88379f5b57f4d500a3a7f4cf10cf5e790b01c9d889de6fff969a2c1ab8c
create mode 100644 workspace/assets/skins/4b/4be40256bd7eaa073d7d46aa48b4b3d029866940e6d1a0a7384d3efc8f5563dc
create mode 100644 workspace/assets/skins/4c/4c8e0c3e34f55763b5854a8789e76c4926923418bf1041c5fdcac9ca7790974d
create mode 100644 workspace/assets/skins/4c/4cd8c1d26f51b2eaa121d6c43c4a441479a808590b214e3f9815a332b581a20a
create mode 100644 workspace/assets/skins/4d/4d86f5d4bed2b2dff70c2e7d3bcb369d06b24a316149d8650624f84522d3aa28
create mode 100644 workspace/assets/skins/4e/4e3a8d2bccf9e9e1daea739217a8fcfd599a00856032d75d991c798f402d7442
create mode 100644 workspace/assets/skins/4e/4e3ad0f250ca7afc191b7c178c763582a0aa42fd11b795a7fc1f2067fdad6d6c
create mode 100644 workspace/assets/skins/4e/4e3f84c144fb9dc8153cb3d62952d28b330070d1d3043a41750cefb5b080a5bd
create mode 100644 workspace/assets/skins/4e/4e4cca707331ad7979b785fcf46abb3cfd0b6b6c450f7b189e8d129ea800f3c9
create mode 100644 workspace/assets/skins/4e/4ec13af5661aa27cc8a6421e8be3e4a8cebc21ea1bfbde2fc5ca0388981eefa7
create mode 100644 workspace/assets/skins/4f/4fadeeb320c9843964b0636682fe3a0c0b0657d26ce96110943da016f732b6c6
create mode 100644 workspace/assets/skins/4f/4ffee5c9f669a5384baa6e43c43ab6a8e14af9deb9b60f29cb33ef320a02677a
create mode 100644 workspace/assets/skins/50/505be6f3f0248266e2b8bd69455e014d573f6801dc096632a0c278392c4764c1
create mode 100644 workspace/assets/skins/50/506ab157b3fb8d8d21094c240f0df486bc55e0c9c3bdf199d31ab25d604eddc1
create mode 100644 workspace/assets/skins/50/5083ec2b01dc0fee79aa32188d9429acc68ecf71408dca04aaab53ad8bea0
create mode 100644 workspace/assets/skins/50/50e2131c324d75b9b78e0071d24167ff13b60a152787e7c69323162a812b2863
create mode 100644 workspace/assets/skins/51/5113e2b43761ba5d8ef9f2423e28dac7580fd7195752f9f00a7277d7d50fc425
create mode 100644 workspace/assets/skins/51/511b20caede51a3b77343035cf8b5c0719d5b5aa460836afe2c9d31737af616d
create mode 100644 workspace/assets/skins/51/511e563f3432a47f46515688f07572edec37eac90fce873374b9c796bb10045d
create mode 100644 workspace/assets/skins/51/5132593b45f77d2df371b2bc4c3464df782213ee0c87e72b9cef64af9130f6fd
create mode 100644 workspace/assets/skins/51/5148b60b8eb25898b8d101bd0830c8c9bdb63ac8b1719ca52986820b44fc2b36
create mode 100644 workspace/assets/skins/51/5162313e933523063b5ffb539f545ebad6f296ada9d505bf29b32e6c4ad0fad7
create mode 100644 workspace/assets/skins/52/52188371b36d8550c852505071b06bccc264f87172aa7e4969540c857fd83a11
create mode 100644 workspace/assets/skins/52/525c6d5f91f89346f58d5aabb9e109436108bed6dad554a7bcc8b66e8762b340
create mode 100644 workspace/assets/skins/52/5272a62612af5d0bae332455328119b272b82b15ccf30a80eae7736b526887cd
create mode 100644 workspace/assets/skins/52/52bfc15a47e9fa644fb288483cd34843012770b4b768a8c874278994c37831a6
create mode 100644 workspace/assets/skins/52/52fc59115bf302305780417a5fe0a5befaf63ea326e00b0480c4a9b722836909
create mode 100644 workspace/assets/skins/53/530db55176c36b0ba068e3b2b83e5bd4b3307c583612d92ebb51b0b5aefc6d57
create mode 100644 workspace/assets/skins/53/534bca412fd515065dcba6fd8da14c6fa08f71e164d33e794cb3c2bf135fbd90
create mode 100644 workspace/assets/skins/53/5356274c7f62512185d0e69b2ffe025456eb694c7471d71f301e839e599e94fb
create mode 100644 workspace/assets/skins/53/536063c7fa439e663145b833cf20cc763fe2d48c429e3190975a627e8e50dbde
create mode 100644 workspace/assets/skins/53/538afd521646d013f5d5893aa683327961102ab7d0a30f5e2bc182455856c7db
create mode 100644 workspace/assets/skins/54/54cd97ed0071d6f68ac7a216bcc67beed7a68a71d29972b5400d91eb47bfd3ad
create mode 100644 workspace/assets/skins/54/54ec64193e0f74b4ae09217958e1d79af2d70ef2d3193caef332e08b2f634992
create mode 100644 workspace/assets/skins/55/5540f3cf2bb9982c2ba920c6e3c4eb87da5a0ba30f0d1d65e5fde3ad509f5f7e
create mode 100644 workspace/assets/skins/55/556224513c572017d456571e97638667497dc9edc695c95f6e32ead8c508d7f1
create mode 100644 workspace/assets/skins/55/55eb5c49fcb5371460f2b83871881fd8a298a19e1bcb81fa7b5de39328963f2f
create mode 100644 workspace/assets/skins/55/55f710f2acfa6c213a128e26ccf1a8430edf2d5f99e0f2dca9ff283c0c8926b9
create mode 100644 workspace/assets/skins/56/56838c7f92cd17d201b36d3cfbb273b51e7275ca53faf0579637218be494a334
create mode 100644 workspace/assets/skins/56/569ef9c5b1b1271bd829692b2a8d76005b6ee9fb9a69825eae4aa9eaa5879178
create mode 100644 workspace/assets/skins/56/56b1e0b46d611dab23055065a2d69ea3f41309e663d705c0dcadab95d1ef7df2
create mode 100644 workspace/assets/skins/56/56ede7ff3d362e9f975df88c47c2054aca68f63cbe1380ec58b0241718805a7a
create mode 100644 workspace/assets/skins/57/5707f64557496ba1d42794c5ccc756c502b65870ef9dcd79ad657801ffb88b07
create mode 100644 workspace/assets/skins/57/579c563014b426d01f00b65914095ce6ff80297e9a1c8b61457f0e55aa1bc6b6
create mode 100644 workspace/assets/skins/57/57ecf063a8a53109577d18924e878926bbf3fa1e7e7d7dfdff0a9b9ba669ce28
create mode 100644 workspace/assets/skins/58/58e94e4eb7fb8a810c3af829fb9ddb3f3736306e80543c95dd0a0d650cb7cf5f
create mode 100644 workspace/assets/skins/58/58fe9f16f7a324d6013c7dd1fa7a40c2c9d3186c15e2cfe1a711c31f1845d46b
create mode 100644 workspace/assets/skins/59/5908cedb3b3369807826124a283f433e22a2bf819bcc0ca8c8b2ce644abb3697
create mode 100644 workspace/assets/skins/59/593a6694d19b06c91675efbca62376856e8271fd436ac8e4d293b76315cabffc
create mode 100644 workspace/assets/skins/59/5966bfd6a3a431f8338e522277f2cc40509b06a1864e0d30f8aa92ef7d4dcf1c
create mode 100644 workspace/assets/skins/59/599d78c41eed82aaa11893b3a8931efb04214d106f51d47084db43bc9f91cb5c
create mode 100644 workspace/assets/skins/59/59e723aaca76564ffb4d889b1da5dec8ad1814676c7e2d58643b0ec355fcf59d
create mode 100644 workspace/assets/skins/5a/5a6723ce03bdacd593b71905e57cd1c9352bd45e2f0d502d0f780e8236586688
create mode 100644 workspace/assets/skins/5a/5a68c8a3c2103a5fcfd4734d473e7c297d830223a067f51aaaf16fcc5dd5d7eb
create mode 100644 workspace/assets/skins/5a/5a8ed9d4c525dc245ae8af510623187707360b37b1833c72f8d71b89063dea2b
create mode 100644 workspace/assets/skins/5b/5b4eb131b9d5bb1b6e721eba4ab206aeee41dd4af9ecbf37f7d6113f4d193b57
create mode 100644 workspace/assets/skins/5b/5ba78460a5015f14a580787ac8913836c6ed16dac3a46992e1ed313b9371b5ea
create mode 100644 workspace/assets/skins/5b/5bab0c64ca5fc40e000823b93b361acf2ffd0caa26f72829302c707c0b5a196f
create mode 100644 workspace/assets/skins/5b/5be6d89d04dd38181b4926f55eb8a58645042adcd554350ab9801c70dee908b0
create mode 100644 workspace/assets/skins/5b/5bf48564e3ddd70d5815cbfeb1858b75b8dd5abb4d3c350dfc2f6a54f430c2fa
create mode 100644 workspace/assets/skins/5c/5c01cd67f4553304fbffb997fc076f636620e4854b5ae24afc44e26cdb165df0
create mode 100644 workspace/assets/skins/5c/5c3005f05f19d682a2e3b5fe79585e13a1d7b4a20361dcd3181a373cf75c0cf4
create mode 100644 workspace/assets/skins/5c/5c7c8effcc04a7d0a8a48cad1ad75a5ddf0d5bcb539b5987f80f1c29eff93301
create mode 100644 workspace/assets/skins/5c/5c9d2166ea0184985eec12f44594869e7f30e2ce9c42503a3108a980b4007f13
create mode 100644 workspace/assets/skins/5c/5ca138472f9a8ca4cbfd9ca6220fd176561eb012db52aa9a4feb81da6c561a
create mode 100644 workspace/assets/skins/5c/5ca8e35f315d513fcfee15e27e902c064c84d66245ed7f79f5f44344d09197dc
create mode 100644 workspace/assets/skins/5c/5cc712014253f28b90d119f9b60db775a03bb02887c63a21df620131ec913cdb
create mode 100644 workspace/assets/skins/5d/5d44cb2c318be947be71bcb253ee8584a8b444d3335deb1c729f934af9f2aa47
create mode 100644 workspace/assets/skins/5d/5dca2a4a39457eac17be83fdeaca553bd37e0c0afc729597904f56efcb2838d6
create mode 100644 workspace/assets/skins/5e/5e296f824d8ebfea95e30164737b5ca32801d77657ee574b0a209a87ac12ea65
create mode 100644 workspace/assets/skins/5e/5e57bf02ea4fa9044bd1fe49208425f52f02d04b5427a7cb8b108389d9edfd6d
create mode 100644 workspace/assets/skins/5e/5ea5c8e21b3a24533f50d8e1ca97e5f0feaa42226a1d736c2ecc0282dc2516fa
create mode 100644 workspace/assets/skins/5e/5ed683cd9182d21df463a0a24addd10d599ca388d67e9da39e8139f3a96579cb
create mode 100644 workspace/assets/skins/5e/5ef7eb4d43ba227c5ef92c02b31a0bf737e55797aa866d7e56013443043ba4fe
create mode 100644 workspace/assets/skins/5f/5f52fe7fe5f3021538a697425c147acffa1797833d3071595c651da78476eb48
create mode 100644 workspace/assets/skins/60/608931853d5f2dcee76c0b72ce109928527cdf9f2281f66e1fee5aa45bfe5d2e
create mode 100644 workspace/assets/skins/61/61095d95145b2c401b36c95cd117d3f8a2b6173f7d10b7e96c39aaa665390dd9
create mode 100644 workspace/assets/skins/61/6134e845bed71b8d17f46d44141a41f078c2d6433b2d515b08552bd4821841db
create mode 100644 workspace/assets/skins/61/61d209752b71e1392355669024c43270f0b20d6e5b3394dcf718b7da9c49c403
create mode 100644 workspace/assets/skins/62/626d641e15ebb5aa0c7d29de2fc9640fc1dee91662fdc48fa83e8cef9298f89d
create mode 100644 workspace/assets/skins/62/62afa42d2ef1edaaa630678244b87f9c6035385b9dca9c956e747aabe54af00f
create mode 100644 workspace/assets/skins/63/6304436b0d4082e77a38b5ff20d8b184b75dd090fea35dcef03309bfedd6725c
create mode 100644 workspace/assets/skins/63/633ef060c0822d3952685a3fed700e427b31e5890c00439f76489e0ae878f98
create mode 100644 workspace/assets/skins/63/63a0315ff146d352136ac578af238332ccd8cc7b3c34636a7338ee31b0c19845
create mode 100644 workspace/assets/skins/64/64199abb9d9b670b56c6d3cbe88704dbd6ccbd2efbc07d437aff03f7538160bc
create mode 100644 workspace/assets/skins/64/641d5a3c241bb628f6ddcc75edc07786ca17ec0fe673c5aa08f75c61dbd10ed5
create mode 100644 workspace/assets/skins/64/64344ca4fb1542cc4de7416cca4e3a200f1ab9d45d0687aa0a18ceccddeefdee
create mode 100644 workspace/assets/skins/65/65620c1b194cc0ecb3249315a5d232cb38a0cfab237715728c725c1f277635a2
create mode 100644 workspace/assets/skins/65/65725b677e392db2bc3f39e86f7517f7b20d72c1b07efadfcdc31cef63c1280d
create mode 100644 workspace/assets/skins/66/662f0f015d6596d716726bcfe9710435cd4355c94b2138b7f5bdc1754ff53dfe
create mode 100644 workspace/assets/skins/67/672cfc7c1ae4302d79f16a5c8a01ef89925e3cd44f06be90e1c03432cdd2677b
create mode 100644 workspace/assets/skins/67/67b2a70018223a110c6bd12bba63f8e568743bf93a98d55e54af34cf3016f35c
create mode 100644 workspace/assets/skins/67/67cfa944861a24dfe83298064c4ddbd6063ff9315eb77fba0246a908593dd17b
create mode 100644 workspace/assets/skins/67/67d0eaec25814e7fa1c5d920572eda9430612bdaf3e5fd5a3e492b702a961edf
create mode 100644 workspace/assets/skins/67/67f28d39da0a74017f18f648cf2b3cfe86dfa557714828dc10e0f234106705e4
create mode 100644 workspace/assets/skins/68/6807a1b641fac59319b5558a834d90ac4014a1f34ccd681ebade28986167beb2
create mode 100644 workspace/assets/skins/68/682b4f1ed621d0e762decc7b27d69590190c1ccc72cbf60ea65bb056b24bc282
create mode 100644 workspace/assets/skins/68/6877b3bd60eaf845c8e468a2f73270f394e303723d8a1a54f5c1a7ac6e71989
create mode 100644 workspace/assets/skins/69/690fb1333fb0c943481b88230e337e48be526615e30f78aeccec6f7b4adfa908
create mode 100644 workspace/assets/skins/69/696ce99197f0a01f40d4b6350e8dd527cbbb649390d3ba3e69641bc8fb853e7d
create mode 100644 workspace/assets/skins/69/69780d2bbc61e627803602c1c97ddcdc2dce09a9acdd20cdaa398de00931d187
create mode 100644 workspace/assets/skins/69/69bb58e1037ebb0875a9ca50308141703d9540004ce0650a9e6d3df2c95a7987
create mode 100644 workspace/assets/skins/6a/6ac6972d2afc66ab2b8a3748d3c75076ed49d0661a8e2d40a4e0f6726192aea4
create mode 100644 workspace/assets/skins/6b/6b116efa78131a09d0f2bcdd80633160336f09be8d1d9131a795dec8ed9804f7
create mode 100644 workspace/assets/skins/6b/6b323bad7cfc4148804023a5891978f9ba7d959115909fed8682cfea56066979
create mode 100644 workspace/assets/skins/6b/6b96caf6b0d7c972f14fdc2c81750950962d9d508328566308a37725a4b91a46
create mode 100644 workspace/assets/skins/6b/6bbc32b4092e676597ea7d53dde9d8770825f9356fb09c4d1b843f6494e22c47
create mode 100644 workspace/assets/skins/6b/6be398df99f43d1419973a84070fe397bd8c51b42fe986df8bf727a32819fe1
create mode 100644 workspace/assets/skins/6b/6bf79de226ab897764cbab8bee58012eca03e70c26d065c4c2e33a0fdf14acc2
create mode 100644 workspace/assets/skins/6c/6c4a1ebb2d9211472f5053ef2521ea1cc6d6bb91b65412062c9688395f943b40
create mode 100644 workspace/assets/skins/6c/6c5357af1e642f8b0fcca325635e7d3cf1f77ad7863c1b579729dc7be49e2862
create mode 100644 workspace/assets/skins/6c/6c7e287e7db952b1dbfd3f01df7aa836fddc12902f5ab80f55cd7b9f92f7a40e
create mode 100644 workspace/assets/skins/6d/6d19bf50d31891567f4eb568b433f571910760402057a916dfe7bc972a349aa
create mode 100644 workspace/assets/skins/6d/6d216bc7fbb969ea93c948df82e99d3d7da057803f93411928538c37aacb7108
create mode 100644 workspace/assets/skins/6d/6da4805f9b049e5327f871d8929a42f7dfd1ca55656b3327aeb7dd7377506c13
create mode 100644 workspace/assets/skins/6d/6dec564f2f2fcf44acb99a6bb73313f171882c267ed1abfdfa5e148e80008e64
create mode 100644 workspace/assets/skins/6e/6e079086399317f5136286f3795717ed95cb7665b85fadb069ccc57850bcf19
create mode 100644 workspace/assets/skins/6e/6e1868a4b4459cd681037e08899c1b6b824db349edda68bf93a92d03ee5ed3c7
create mode 100644 workspace/assets/skins/6e/6efa23900120c8fec768b55f23f557660b8b5ecf2ac2591ecfa6c408afc965e6
create mode 100644 workspace/assets/skins/6f/6f1c2d15ad2b2be81f5d53c0e39f77ace85aa74e17265c372233f913cd3fb447
create mode 100644 workspace/assets/skins/6f/6f6c0a95cf873e4733e46a8d33ca3fa5afa6ec1fb6166cc33f56654c2528b126
create mode 100644 workspace/assets/skins/6f/6f8617400d27dcf902569fdcfa7547c4621c1bab6320306449500e4d16314bf2
create mode 100644 workspace/assets/skins/6f/6f9f6ef1292df7e09e9fafd508072eb762f7ba416a9ced0ffdb62f9eb7117210
create mode 100644 workspace/assets/skins/6f/6fb321bdb39e737d7ca57178e46d2f453ba336575bf1d75c3d34f320bda6ca29
create mode 100644 workspace/assets/skins/6f/6fdf78ec9b1517b033ebdc0a9562c42996760b662343777a70844b6cc9a19a21
create mode 100644 workspace/assets/skins/70/7087fc3703f659b285967ab834607728b14016f72f9b225f5ea2a81869c53
create mode 100644 workspace/assets/skins/70/70e6947216db589e69f0a6ebefd7061890953186e7d0f1202e709e0b67d0cc67
create mode 100644 workspace/assets/skins/71/715983b7ba00b5c931de3044e3dce7e44871456909b322f35bc57a0bd5b4799
create mode 100644 workspace/assets/skins/72/720bcb527cf63eece8325f894ca6b221d6c44bf979b6f43eb9455c8983084a34
create mode 100644 workspace/assets/skins/72/72206768d0b6aab53bea14e1e31fdfc931da484f21e11d661d7840152d466e64
create mode 100644 workspace/assets/skins/72/72c908a092ea9808d1fcbcc3c0def2d28c7ef34b6004906195cb0309b7aea392
create mode 100644 workspace/assets/skins/72/72de8e6ced38f72d64c22928a5d169df8fff2380a17f91f569511d0931844aa8
create mode 100644 workspace/assets/skins/72/72eda73bd455cea99212126dd84dee64218e97735e271f39c57ebdab05d79eaa
create mode 100644 workspace/assets/skins/73/73517ab2513d7c79d06403a4fedfb1800f5451861487bc7a995749fc7cbef83f
create mode 100644 workspace/assets/skins/73/73535920997dadcc29498642a3942ca2421257df7fb8ca858ecceafc667c5ae3
create mode 100644 workspace/assets/skins/73/73ecc53d3d28f87a3a622c1af53fa2dcebab5709a3402c30b1a94a1bcacc009
create mode 100644 workspace/assets/skins/74/7419405cc4150c1abeeb3700299db67bf12c4fef07cdb0a6ecfdca43a5066726
create mode 100644 workspace/assets/skins/74/743eb8434aa1788f1b09efa6a2090ddaea91fe1b0121a9eb2a978868e63e4e52
create mode 100644 workspace/assets/skins/74/7462d37681e797e10004ce6ea81991c0a72186053c96a216cef604b5ec5df461
create mode 100644 workspace/assets/skins/74/7468e159d4711f2d04131f1c79ca6b9743219751ffedb9940e5a8a93b09fd9d4
create mode 100644 workspace/assets/skins/74/74714e98787d74ece2532ac2ede2755bf7af3ba7c3c6fd80e77e013c31d4de9c
create mode 100644 workspace/assets/skins/74/74c5e0adbcd4a1f54a341a00f962441d87f7efb3ffdd1ba522bf82a40ad65378
create mode 100644 workspace/assets/skins/75/752f9e3e87dc69ba5e6c50f06ff5e4f4e57f6a15769e9c53ac261cc7f25d6bb2
create mode 100644 workspace/assets/skins/75/754a6648af85b97ea2e3f0d7c4fd97bf04c3ae40c154f81468a2cae40d2fd80b
create mode 100644 workspace/assets/skins/75/75dfd13d57003e21fd3df135d69112e03124ee3147035e94a5327f7253cc0d67
create mode 100644 workspace/assets/skins/76/7617c6e973e4f83a43460ef744ed506507da183403bde54624ee3e36dfa8a61b
create mode 100644 workspace/assets/skins/76/763f04301f1c2b1ea82ef31d289e38c4d63621bfcac639a209e762a93a2329a5
create mode 100644 workspace/assets/skins/76/76be60fe2ac1cf6d7525b3daea7ccc48a37a2a8129c52f0de07f72964ae47b4
create mode 100644 workspace/assets/skins/76/76dd3f612abd232daa1b7c9b5c4d33aa0b178220f7cf42b6b8d0d4ac3f431932
create mode 100644 workspace/assets/skins/77/773891a80ed5406eb064a555f5287f90347d48b0dfb69c03011bcd767f237558
create mode 100644 workspace/assets/skins/77/778ae5329120eb6c2cf98e461f0b8d7762a3dd28d621f378b4a60e32958c9a1d
create mode 100644 workspace/assets/skins/77/77f664e7575e2f475a89810c6edccbefefba5c72ad8889dfb5b7770ed87813f9
create mode 100644 workspace/assets/skins/78/7861287dabcc833c3e91e137a0a7783c2413cb17fa55440559e65696510d5184
create mode 100644 workspace/assets/skins/78/78a90ac6b7ae1046e061d8f42f8d6e8f496d07008a49d5c372644e65fbd4f02d
create mode 100644 workspace/assets/skins/78/78c5029569299424bbb209fb0f776033beef82f8155dfce557a44bc328f7a25
create mode 100644 workspace/assets/skins/79/79173c01ed46b6292340396b4f5b57d1e2cf6a2d82c778becf958cdea6070840
create mode 100644 workspace/assets/skins/79/79c152a0955193e276977e11c0f7d8003ea90da3e807cb7ed0850ac1f3941fa7
create mode 100644 workspace/assets/skins/7a/7aede652bde0ae81eb643f29d1da1a1e945e2da8153085074a183e3e93793e74
create mode 100644 workspace/assets/skins/7b/7b94aa0673c6c975bc2791d8ef30d591bc44ae134446841a1375b3914acf9e4f
create mode 100644 workspace/assets/skins/7b/7badfd510ddfb55cae970e4c705d1182bdc0c9c011d7577faae5d3683d24546
create mode 100644 workspace/assets/skins/7b/7bb9247b4770b1e3e334c68b6c93aea34055af3cd0a986a3e703298b435bae43
create mode 100644 workspace/assets/skins/7c/7cdb5644c3d7bced8ff9815028b9084ac4d9e8e96d62c971f5f2a85a716294ca
create mode 100644 workspace/assets/skins/7d/7d8265ee5603e1c0e1296c14b2046aedb62366362840dc8a29b2f5693a47e24
create mode 100644 workspace/assets/skins/7e/7e0a8ef6592fe695fb013bda40be6fa6fa66c2770046528390ed191f9c2a8420
create mode 100644 workspace/assets/skins/7e/7e6b4386d7149ca06c0d421d24499dad37f7a7274991662ef31c128fa1bd823c
create mode 100644 workspace/assets/skins/7e/7e829ce32841903684fcd2efc249252b1c28e51d71ace22628436509879fd90f
create mode 100644 workspace/assets/skins/7e/7eb3f08c78b99f981f42e75bc2af870d3db93f6ce89163a3d971655b84c5c550
create mode 100644 workspace/assets/skins/7f/7f1b062d98356804bdf20d299a912446cf181999cf2230f7e41b6d2316a5b1d9
create mode 100644 workspace/assets/skins/7f/7fb3fef965494a37eedc4f664eb7f7b76cff91a98cdc2e56baa5e20d9bbc77f
create mode 100644 workspace/assets/skins/7f/7fcbd1d921b9faf81fe567f6d95e00da7b19ca3e990cb0c6243f59cc6e375d67
create mode 100644 workspace/assets/skins/80/800d316c4e5bc92150b3531e3491d897c801da3b764d6c3869ad8db3b9f845fb
create mode 100644 workspace/assets/skins/80/800d59608ac928aa27859220c34dcfa509cf9f03e21483cde6ae13c48d79cdd3
create mode 100644 workspace/assets/skins/80/80b73980a20b56a59a2a746a790dd9862bb787f05f31df4a6c5e87f7834a457f
create mode 100644 workspace/assets/skins/81/816a379b95cc4122b0c3b7598adeeacd34570b85f9504f7b786bf2ac3e30ead7
create mode 100644 workspace/assets/skins/82/822f31f7879e6c5085c38ccaa696951efd1a907feac3bacba03e9e85f671a2e8
create mode 100644 workspace/assets/skins/82/8231fd3a2a5ac1869613a06dd2bcc2602651d50b4a9ab90aa126b599c2708f84
create mode 100644 workspace/assets/skins/82/8232e0c1c9f8431f746418d510d96db5b54f6475e158a1ebf20639f92f1a1347
create mode 100644 workspace/assets/skins/82/82ab94e210738e015754f61f2f0c80027dcf5cc5ccb715e88b0c01126b3b66bd
create mode 100644 workspace/assets/skins/82/82c8e6b43dc5e9f40aaca93671b4406c3bb5346b4a0a179d7d4404913c71c1e4
create mode 100644 workspace/assets/skins/82/82f978388fa662f136c2cdf102736ee5635f90ba08c7e999adfff91c92340476
create mode 100644 workspace/assets/skins/83/8301d1f7749eebf45d28e739cf0069a06fbf2571908fd3b69a7a47ab0eba635
create mode 100644 workspace/assets/skins/83/83528e3b38544c74d898ca8e3ebb33a355b392579b59161ae0fb8cd542965f02
create mode 100644 workspace/assets/skins/83/838454161cc0627e4c47715b9dc2d21dd7aab7d49516d7354428ea385ff65d90
create mode 100644 workspace/assets/skins/83/83b32262974e6cb02efc8c32cc41e7d21ce8ea8119e5b0f9a2b3c6b84ebef36c
create mode 100644 workspace/assets/skins/83/83b37bba24fed05052e52285770d0aba445deb728c022fe5ed5b552038d8ee6e
create mode 100644 workspace/assets/skins/84/845bf336998b38f3f7123755b24e9c5d0200153aebac6a5490e78df7d02afbb8
create mode 100644 workspace/assets/skins/84/848742398b4924b5a58e14c8d51c05e850f46860d2217eb49e2f51ec46eca4da
create mode 100644 workspace/assets/skins/85/853d7342e35669a651ac06a0021f24522ee1d05ab36f4bd14a68dd63c770ad67
create mode 100644 workspace/assets/skins/85/85a026314538aaa102628b5df4af8a3716b5253df78d2f99fff95e625808bc5d
create mode 100644 workspace/assets/skins/85/85b2efa65a2218ecfd420a593697f8e2926f4770f92f0464117997350340eb46
create mode 100644 workspace/assets/skins/86/860a5560efa08c76ba24ad7a6dae391a6975cb29fc90f8389ebbadd511401420
create mode 100644 workspace/assets/skins/86/866ed6de6d4a97baeb9d8e6b99665bf488b431ea386e46c20e71cfc7e16e99f9
create mode 100644 workspace/assets/skins/86/86871cee955aeeda82da44824d1b71245f57256c1752a936f665e741d0faf09f
create mode 100644 workspace/assets/skins/86/86a657edaae12c9e4ae0a865e725b434a8f1f194fdb410c711650eec168bccf1
create mode 100644 workspace/assets/skins/87/877b6c328e535ad40f25aa2af413b00b945dfc6ffa86248544a56eb6bfc3f6b8
create mode 100644 workspace/assets/skins/87/877f56f755922164b6888ab4abc9d47b475295488292e5d3c31b26ca26e1a163
create mode 100644 workspace/assets/skins/87/8788c79d352f81a7f74a66cfb3249b545e05d4633cfd27714b204a5533d00a5c
create mode 100644 workspace/assets/skins/88/885888e6b66c18ad3696d5661dfc87131a2668eb3d1ce40dd5faafb56c8f3540
create mode 100644 workspace/assets/skins/88/88ebf880192ca7142ec8f78b360b5cbc570d78ced2dcdbeb8fcfbe35aa5083dd
create mode 100644 workspace/assets/skins/89/894cb3616cdfad426b3e92ea814b805627589436216f4a86cc1b671327bbf857
create mode 100644 workspace/assets/skins/89/89571509acca565fc00ffc745ab0a48f21e88530e761a273aea4a2260818eacf
create mode 100644 workspace/assets/skins/89/8993df42a234d9e5068113653042335586f01b5ecd5893096d209546a7604c5c
create mode 100644 workspace/assets/skins/89/89f9088d9d775505a58180239120e34a755e5ab044161e394c23110b312a26f3
create mode 100644 workspace/assets/skins/8a/8a333769ad8598a2245a4dce9b4c345a0238a6db6bf6e02385b1c6f28b7fde8f
create mode 100644 workspace/assets/skins/8a/8a4a7d846cc6226019fa41756b654b7db90ed5e3e9933779acb2c432dadddcf
create mode 100644 workspace/assets/skins/8a/8aa299e5d3646d1b17c40c6fc982b0283d768c8a2ba7d366eccd46e5c228369
create mode 100644 workspace/assets/skins/8b/8b09d6bc2d19d0050f85c07b81d7ca403334d29e1cb354850acdcbd8c5aa110e
create mode 100644 workspace/assets/skins/8b/8b7e951bcad0323296a97c3bf8515db3eed89aa617e59ffbcc102e114aa14b3b
create mode 100644 workspace/assets/skins/8b/8b9bc0a40f40028489eda2132d24f8b875ee33cae4f616d3cacb3b3433214f75
create mode 100644 workspace/assets/skins/8b/8becf2c15f8a0d614a4f01f67f1006ca9acf67dc3d93d350202d873a77b8c85d
create mode 100644 workspace/assets/skins/8b/8bf4c363e367477bfa4a35006333ba4056587cc46fd9a9e501ee19fec8c2a5b5
create mode 100644 workspace/assets/skins/8b/8bf524eafc097d1ddaaff1181a18184b371116dfffad0deb445d372bb4aa9586
create mode 100644 workspace/assets/skins/8d/8dac90a0cbc3956770845122f17dfc8301fa219a123922cb5d0ccef5ff242609
create mode 100644 workspace/assets/skins/8d/8dd71f1a80b1850d81eeb3e36647e00228a23836942044dad7102d26a1b9d71a
create mode 100644 workspace/assets/skins/8e/8e2d1917ed63ca86aff2d6532ab3f1e5d9f991dc8bc2617eae0d5af1bc9b82cf
create mode 100644 workspace/assets/skins/8e/8e340d9ba7c455ed611f198410f44e9acdfd2c01935b1135b0bc0bca182c5e2b
create mode 100644 workspace/assets/skins/8e/8e59434197ac9e18507b307754a82c644b1a0400d56bc4bdd7e28b85653ae7f1
create mode 100644 workspace/assets/skins/8e/8e616b3bfc774fb663ab57ede4cd4e7f7acb5970e6640c167058af63aa80b5
create mode 100644 workspace/assets/skins/8e/8e62583056bd4e6231d3da1746ac15d489055f11a8236a1baa91875a98cdcc7c
create mode 100644 workspace/assets/skins/8f/8f75808907e28dbaa4f91197b63f17840a69be7884eade8675cfbb700eff2085
create mode 100644 workspace/assets/skins/90/90290a1816b9841993a62f4b6f06ea6c69ae981e4666333599fb0d2c999ecbd5
create mode 100644 workspace/assets/skins/90/902d5816dc67158e4bba5039467c02c028bb53683dc419a4e78663d489e51e90
create mode 100644 workspace/assets/skins/90/907839e85c3bd4337e43d48053e5e22f63babc89e9c31b17d2bd6265a2a77032
create mode 100644 workspace/assets/skins/90/907fe3d683df5148247524272ada76a9c6339ae786e60e62a62cd34b8a869c76
create mode 100644 workspace/assets/skins/90/90a75f08523bdae4db5197ce894e0517b2d64a94d9e69c41d90501a705d34526
create mode 100644 workspace/assets/skins/90/90c9d158b819191b33397a47384dc1e108e12ea830f7ecc19e4825b7b6cd825f
create mode 100644 workspace/assets/skins/90/90f6a44662c05ac1c6171152c23c93e0298acdd86b0eefc5c79e527f5cf20c66
create mode 100644 workspace/assets/skins/91/913cad1bc03f63b657af6a5cc20f4b816343796d318fc4fb372c1a6bcc787a2
create mode 100644 workspace/assets/skins/91/9168888f8e6e5538a288973b62c34a2e8b20e4b57e94106a90ed17261764f842
create mode 100644 workspace/assets/skins/91/9174cd8c0c3bbfe9f96a84020b6a218fadacbaa5e30c08bab0f572ae4168caa8
create mode 100644 workspace/assets/skins/91/91a79766d0184cb712f361c7d9cc685a6685b406a48d72e9b0ef630d1756949a
create mode 100644 workspace/assets/skins/92/922395081d82ebfa326f4253f297f98ff78e0f00ff56eeb85e86d67db3a56b7a
create mode 100644 workspace/assets/skins/92/9233e2cda707f9ec0ce52510c06630eceaaed47c19847c6dad550912d8d2cc32
create mode 100644 workspace/assets/skins/92/9266dc045615916767b0280dec05a5f98f1eabf7968a3a48894dff3fdd2b15c4
create mode 100644 workspace/assets/skins/92/92e8caeb4071d2f36f5d779852a847407c0aed94d2fc22a49c598d72e743b853
create mode 100644 workspace/assets/skins/93/930be5769f27c6f51b83c8d3647af25113e9de557d0a033353be3d41d6805a7c
create mode 100644 workspace/assets/skins/93/93715b683a99017e7da1a41bd77c21f2579dc036d1b9036d4ce175ab4ec4b084
create mode 100644 workspace/assets/skins/93/93b25a49575d733b8d42aeeabf28fb5c7e2a506ca96b812b53381637a75c0f41
create mode 100644 workspace/assets/skins/93/93be1dfcbc308b6869dcf694950b192445f23a63fb1daf33dcb76a392ec9472a
create mode 100644 workspace/assets/skins/94/94037d5cf52b12f407e330e262813e6b4dea9910fbafca9b3159091927b56dc4
create mode 100644 workspace/assets/skins/94/9496177773f8f01bb2d71f8ebad30c2775c5a5afb46258b07a81cb7d57ad751d
create mode 100644 workspace/assets/skins/94/94e68839378a99fe5700cf65fd2b7f230cca0531d97f7926127d752785a865ba
create mode 100644 workspace/assets/skins/95/95263aa845a10457d543e4015ee31562f32371a175ca5f560786970e66604cb5
create mode 100644 workspace/assets/skins/95/95490e816903a59e9e7549d9227c4e2cf03c6724c3f9593b4bb2420bc78ad6fb
create mode 100644 workspace/assets/skins/95/95c0f2f6a6ff46320fa4d8443648e848c3e703d3d4305fbec48ea55d224ad6a5
create mode 100644 workspace/assets/skins/95/95f9574b613a2f1ed9c1ae9610e30effac7150af0407b7e9b761fa80ab7eb9f
create mode 100644 workspace/assets/skins/96/960ff71b386a804a83ba53a45cc02eb9b1bb23d39f5f93c7061bacb9e08a9e3b
create mode 100644 workspace/assets/skins/96/96849f0c4f488f1498275bb10f04a146e958f6ee0838d87d6d3ebc893ac03039
create mode 100644 workspace/assets/skins/96/96873e12b68df96948407626c9658139f43399936aae9468d60dd796514af0e6
create mode 100644 workspace/assets/skins/96/96b0040faac38195fe1855342f90e3209f73a632bb7bf72aa12e60bd3058289a
create mode 100644 workspace/assets/skins/98/98341fbcf30658df4e14e86d4eacceeebcb949c3559e1eb905ffda6d4a09fd3b
create mode 100644 workspace/assets/skins/98/98edd119f5b41cfb99b0eb47dda21237bdc47d9cae453f69f8d0ee1a0c9c091b
create mode 100644 workspace/assets/skins/99/993865739b80ff898f8580f37942e20284b067ad21e8529ca17fc6430423ed0f
create mode 100644 workspace/assets/skins/99/994f3d9e8cce663d7a56939b826c5a5d68dcf6ad901832ae0637c0429c3993ea
create mode 100644 workspace/assets/skins/9a/9a6c64d98c5fbb50660adcd20d738de790f14bac0ad5f5da12ad45ed18504eb3
create mode 100644 workspace/assets/skins/9a/9a76852808f1ebc4db4c36e63e824cc04d07cc86db56252c9368683777a579f4
create mode 100644 workspace/assets/skins/9a/9a8da9c6fe258850b493f6d2f66af9b7b4c221b26fe3c46ae6c347a662dc62e9
create mode 100644 workspace/assets/skins/9a/9a9165ddf2d9c5966a04d110562ef99ea1c8360986da8a6ca38cb89fd3aa0dc1
create mode 100644 workspace/assets/skins/9a/9aa1ab3cca806b41d0aa3e871fe3e9aa9129213e04a6eab4e5701e50435bf343
create mode 100644 workspace/assets/skins/9b/9b22a5d525700559378ca1c06a161f317a8c70cc5bae7a77edf3b377bf9ec4e5
create mode 100644 workspace/assets/skins/9b/9bdca838f6cb1bbce3f226ada372eb93301b7ecb6b7a6a148b33ce4329c980a5
create mode 100644 workspace/assets/skins/9b/9bee62489eab341f905f33a44851e4d50c68b8515088aa03363313b6e827c9f9
create mode 100644 workspace/assets/skins/9c/9c02f96f9def1075c154de77eb14166c03a92608be63b693d823dd402cb334dc
create mode 100644 workspace/assets/skins/9c/9c4c407e4239d9ec20092b52102ca290d820f3ef5970f85a511ec79b35c99bc5
create mode 100644 workspace/assets/skins/9c/9c574d53cf91eb9892b71c8b999a6514058ee16863d63783c5a020eaa611f13c
create mode 100644 workspace/assets/skins/9c/9c75374795d398e4630f224814c4a8931650ea6a64a1cb2468ef980fc99c7225
create mode 100644 workspace/assets/skins/9c/9caae4699d9291b4b298a1a0115c6c7e21f1cc492f019426b6237e743886a712
create mode 100644 workspace/assets/skins/9c/9cb5754fbfd9854e20c34c0ea9109f71cb30e4f0a211d2fcbbdfc5d9c5d7037d
create mode 100644 workspace/assets/skins/9c/9cd7be0ec8a769db10ba2b6214535463a97414b51e7431bd48806f94e8d8a46d
create mode 100644 workspace/assets/skins/9d/9d41724838200e637f9301d49b25efc00ae476a721cdf55b05527439cf1644c5
create mode 100644 workspace/assets/skins/9d/9d656d02a79c783b6a1c0a5ca38636c370eade0231b52d3b211501e30a79613d
create mode 100644 workspace/assets/skins/9d/9d6a30428e63927f09a9e1641d698c6453b71e45425466dcb1db7587bfce993b
create mode 100644 workspace/assets/skins/9d/9d833a377a7e53a553d1b8007788eb5ea256fe9422c82092b71e7c12db972b4e
create mode 100644 workspace/assets/skins/9d/9dabb15dfe69bab94886d2bdbbc2a5d532fc7f5a26f843a5f9b38d79224aa774
create mode 100644 workspace/assets/skins/9d/9dd3ea96252ceba229a61fe72a958c9accce4a3055f12b175d391fbbd8535527
create mode 100644 workspace/assets/skins/9d/9de4b6bae8c5376a99ccc566b0245e76b26594026344747d095eae8af4ff403f
create mode 100644 workspace/assets/skins/9e/9e111277859cc224db270318ac5246a570059fcef41a1cd8b79258d98927f179
create mode 100644 workspace/assets/skins/9e/9e4a1c4c17bdc2738f07e2b1845900e8e4b3fe833dc662356bd40475f35c35a1
create mode 100644 workspace/assets/skins/9e/9e9f79e8d7632736ef3fa50df2d8d20fc6f36d2dbd812818e4da73c23501d85
create mode 100644 workspace/assets/skins/9e/9eed65c53b38f5aabcbc27f206e4ac1fcd991161b873ea1b1b06f7aed84c1df5
create mode 100644 workspace/assets/skins/9f/9f302ce0974d2838fb447215a90399b44014e61f2c76c6ea91923631e6a5c361
create mode 100644 workspace/assets/skins/9f/9f4a023acf0536fbe00d8880b961d6b063416221119f7ead756ea252e9ea42d6
create mode 100644 workspace/assets/skins/9f/9f9667e64e8681549f5bf2f0950e4a3190ebed72cf0e10939dbb61220037da35
create mode 100644 workspace/assets/skins/a0/a086a49b962902bb5c81aef0c8bb131dd063d14a27d37f8cd8473f6f80eaef5
create mode 100644 workspace/assets/skins/a0/a09c408ba7784dd9c2e40dbab3c8dd474d8689e6c833202008cedc7aa4d443c9
create mode 100644 workspace/assets/skins/a0/a0c79c5fff91b06da8452f075137f1ed2cd654f62a2cbc708062a8af180b890d
create mode 100644 workspace/assets/skins/a1/a1540a21bc9b7faa3c8189fd20941d31e95c7cdd5ad23744000117c3ef96411c
create mode 100644 workspace/assets/skins/a1/a17591906f2dfa4c4e39500abb1c1c7aaac354c237a47a38e00605f76379e771
create mode 100644 workspace/assets/skins/a1/a1a5fcaa641be32ee4e3a12e027a244c3b7387a630237a615bcf013be83abe2a
create mode 100644 workspace/assets/skins/a1/a1affad275157862111adbaf14c21b8c266ae45237fc134b97f74630c6d9677a
create mode 100644 workspace/assets/skins/a1/a1e487671716e555274e3f3a2f082c941568d9b99a5acf0861bc67fcf0dbe580
create mode 100644 workspace/assets/skins/a2/a20821f888b883060e2823cb5bfe921cb132c1670e29bf2ffb257011189a010c
create mode 100644 workspace/assets/skins/a2/a2b0292cf9da8840b0eb740dc9b77e88c9720d8df6727ed89261f029f8d389ad
create mode 100644 workspace/assets/skins/a2/a2f83527abd283080ea47c6353ea7e27a2282279576087e2de0abb87bf37add3
create mode 100644 workspace/assets/skins/a3/a33acb1fa8cfce14df05f0212d2f94ef9a82e61836d40245c8b149c30ffccfd4
create mode 100644 workspace/assets/skins/a3/a3680a1e7d1edc7aff1d232b06f73b55b53e1d40cd88891a5bff1445264710e7
create mode 100644 workspace/assets/skins/a3/a36f18fef8f08602690d54f5f1eb210673a4274b69bf6c753d1cfcb5d34225fa
create mode 100644 workspace/assets/skins/a3/a3850018330690b9fa1d7e49ab7c39380144218b762d4b9dae6071428e1f7baf
create mode 100644 workspace/assets/skins/a3/a3d9b32da11ab7b72e69a2f0d5d989b107c2ffc8833681179126d9c908a0aa89
create mode 100644 workspace/assets/skins/a4/a42346236694ed66037fc2330789b4a27800fa4afc0346052febb1024a879459
create mode 100644 workspace/assets/skins/a4/a48bd8f41b94dd4cef1345cc14e63adeadd68191cfcb8da5c9fec30601feac0c
create mode 100644 workspace/assets/skins/a4/a4fcc9c361f2ed5753030fae940235254b3b24818ca980d3ebb605c1d479e33d
create mode 100644 workspace/assets/skins/a5/a562ed4cd95cee08282f0e46c3129bd439b3caa6c43e22b9431bd668d764775b
create mode 100644 workspace/assets/skins/a5/a566eb14bfc5965260cf0ad4124740719bb18c4a4fc452c3404cc18889e2fbc6
create mode 100644 workspace/assets/skins/a5/a5dadac26f089472e3b21439a9912aa447fdd2d419f39e52393bcbbc7f0db113
create mode 100644 workspace/assets/skins/a5/a5e08f68baa376282eb45add0bc2651b237d53168fd34673a67eb188b535755f
create mode 100644 workspace/assets/skins/a5/a5f5c4301276ac94b424c9af70133eebb0de896db33d3470b8f1ffd1c7005d13
create mode 100644 workspace/assets/skins/a6/a6563982721ef1d48f4e1af4ee6fdb8dbb541ba4cd6d0ee8ee35bf6cfc7c7fb
create mode 100644 workspace/assets/skins/a6/a6844fc18feb55824b181202923bd0c815b6f80baceb4144e0af9ffe773c8d0
create mode 100644 workspace/assets/skins/a7/a71a334f0d27ad17f9734484fabf19a0bbeaf25345e25b9679ed10b69c96f685
create mode 100644 workspace/assets/skins/a7/a72b0ae0375e4f33c2103f72bc1b272d4a78d75b9c3c43a895216155a3634c2d
create mode 100644 workspace/assets/skins/a8/a87f0193deb4727f0321a99c5e207b0482e3b38cefd38da0d1f410703bf9695a
create mode 100644 workspace/assets/skins/a9/a9893dfb0cfae4a9f87b153ab248748cbacf7a15d8aa568f5c199537f11a2e25
create mode 100644 workspace/assets/skins/a9/a9fcc2734139e0cc4e79c1ba32d6a75f8cf606fb1f30231b2a42c82b72c8962d
create mode 100644 workspace/assets/skins/aa/aa75a205514c29af7b4d12fec1bc6c6a182e451167d80bb80c3c4d3712c75908
create mode 100644 workspace/assets/skins/aa/aab86fb4f9515a0c91164416ad20ba80ab283fe14882aa3413f087e0dfbd91ce
create mode 100644 workspace/assets/skins/aa/aad3913e2444d38217f5974aa1f71c307b2fcc2d1b460e1072fbedf58dc091dd
create mode 100644 workspace/assets/skins/ab/ab6eb1305697974a90c5d1135a5cba00976a00501fc613349ce8ba15c191f340
create mode 100644 workspace/assets/skins/ab/ab9a372cf9c854eac8ede4370c2ca33cbcaccb57512355dfba83631b85b47ed
create mode 100644 workspace/assets/skins/ab/abb6885ad263ba1cb05abb98fab8d3791cb9add7671b6c4c31d62875e99b18ca
create mode 100644 workspace/assets/skins/ac/ac3a2522567bd6b087878d83f5fe00b579951628e18d238752106868915af75a
create mode 100644 workspace/assets/skins/ac/ac447e99f133295ee3ecc524cac8f0054d867d9b8cb0a2e2a2eeb3f60722d696
create mode 100644 workspace/assets/skins/ac/acf8609f3da58cdeeca5d2f6ea1769bf1252183cd90893100963bcc77f3c03d4
create mode 100644 workspace/assets/skins/ad/ad2eaa5e2a4b345f24ecad646527a17fb708075c7359257095649c0df51fbbb6
create mode 100644 workspace/assets/skins/ad/ad5aede5e3436f9ad6ff1e20cca70f465350b4e1f4d5b1cc0cf6b36911ebf0b5
create mode 100644 workspace/assets/skins/ad/ad747511c1772454d5c1542c8327814d5437fde4b5aaa974063dc6e9e92da7ef
create mode 100644 workspace/assets/skins/ad/adbe43c79c9eea9a91dc99ae69785ef7ae0dd27cffc72163872d4dc8693be146
create mode 100644 workspace/assets/skins/ae/ae07ab335022e340dfa24171096dc43367e7240a002859f45df7cf00460b95fe
create mode 100644 workspace/assets/skins/ae/ae3752acf14562da8579b5d4fa1d21c158517f8af562c308947104a73429eb73
create mode 100644 workspace/assets/skins/ae/ae784410046647d429ec75b403cb5879ee8b7fa2e526af863046f726db94f679
create mode 100644 workspace/assets/skins/ae/ae81cbfdf05d7a577f485b8aee8de712ae603bfb700c9a12a4848cf230f40a18
create mode 100644 workspace/assets/skins/ae/aeb8d0b4c9b08b06be61b70715481d41cb5eb3fb5dd4c3687697c0e0c735c6d2
create mode 100644 workspace/assets/skins/ae/aecc2f313ca8ac9bb80bb6f1e569732c4897aa0245c8756ebc6c9da8669372c2
create mode 100644 workspace/assets/skins/af/af13b8f80cdc88eb43c80bdf1b8a4b1ca0ca29b9a8109f0ffaa4f3c518340c28
create mode 100644 workspace/assets/skins/af/af463ce80bc2e7dc94c16a91e712e303596a97b16594b9d754f15eda43c7b736
create mode 100644 workspace/assets/skins/af/af467c938e0ed42e68c8c987843f62898b71343a2b6240aa8d44aa1cce6a8945
create mode 100644 workspace/assets/skins/af/afe90a36c4e48f50f7a73e302dc14e34a2cb7ef4f8300dd1c36d383434bf141a
create mode 100644 workspace/assets/skins/b0/b064ba4f04db8174abf721b0a11a13902bf5b6f24149d72bad6d6d7525d0c067
create mode 100644 workspace/assets/skins/b0/b0b71f54c3f1cdb08094d8108c56552f5aa8fd869085b08452ce1af441f23ccf
create mode 100644 workspace/assets/skins/b1/b197f556e4b33c77ca561a3357f7d89db8756bd460611c48f983f740869eca7d
create mode 100644 workspace/assets/skins/b1/b1a7a23ca69563fd62f20cd96bcf4eda6e2ea73a58f4e747e2b644c975c87fad
create mode 100644 workspace/assets/skins/b1/b1c92ed951b8b477cd795b96f9f2e28572f6a66d58dd88a82f56b7e83f923fd9
create mode 100644 workspace/assets/skins/b2/b202f7799c8381193feca73d3deab97b500e224f7456dbc9a65faabd978b1038
create mode 100644 workspace/assets/skins/b2/b21c04e36e57e90c70f03d04fc0951392568b6d92f07f4667b40c9e4cc4e944f
create mode 100644 workspace/assets/skins/b2/b24d5f6e95d07750ff530f5ece44b32f9babb41213d15e0d5f5362aa034ff3f8
create mode 100644 workspace/assets/skins/b2/b265f16a3a08487ea7409fc6dc74c884cc788e9f2bf504c6395ff5285ff2a234
create mode 100644 workspace/assets/skins/b3/b30bd5e6479b16e1b391b098cd9599fc67b8f67c97d81fa95b56b19002857569
create mode 100644 workspace/assets/skins/b3/b379287d4cbde83fa0f160ea25076d51355013e68ca04ea9f01295b8a4ca5a3c
create mode 100644 workspace/assets/skins/b3/b380d32e3e843e0668d5813a7a0e9489e77722ba8d947129d519c64b265876fa
create mode 100644 workspace/assets/skins/b3/b3a687374cc5f318645005c3b4307e450f139c701705a6fbbf9ad56f77b65d00
create mode 100644 workspace/assets/skins/b3/b3aea14419fd57ea72d2461f55bdce83c8fea3f7b153e9623a79b53fc74f282b
create mode 100644 workspace/assets/skins/b4/b42d272dd1225494360325cccb57e4bc803500ee95a15495171ca327eb9fcd3c
create mode 100644 workspace/assets/skins/b4/b488865c5a730475808cd0456f7e511fbdd5f788b8d11761762ec4972616ec35
create mode 100644 workspace/assets/skins/b4/b49fbc75002bcad9b772d90713e501809ec8c56231a133b44ad621a765b64e8c
create mode 100644 workspace/assets/skins/b4/b4c32e51544c42e30914912364de248604f8c4f4b506483286406921e6e8ef47
create mode 100644 workspace/assets/skins/b4/b4cde58b4ec1353b3e9ac0a7b61d102c94b31c33f91a44cf404936c47440075b
create mode 100644 workspace/assets/skins/b5/b529bf9b5f12a392a0600b0091511df1f7b072f15d054732015ba05c3c17cf02
create mode 100644 workspace/assets/skins/b5/b53a34fb949d64b2c3a898ce67b6eda619f38a0fbdd37ac6bf8d2d347bf26831
create mode 100644 workspace/assets/skins/b5/b58d7da518aea4a6ab1a60239201e3a4df19961b7ac42e749b6846526c9be2e9
create mode 100644 workspace/assets/skins/b5/b5af35adfe1e92d42e75fb096b1d7b1e76251884516bb621410e6afb5297d445
create mode 100644 workspace/assets/skins/b6/b643358d115838aa630467ca06f87556790cb2802094826179af565727f3b559
create mode 100644 workspace/assets/skins/b6/b68a0d21d2fe3d873223f3cbcd205758a9debdd4e30373c8bfbc73c7599beae9
create mode 100644 workspace/assets/skins/b6/b6b67dff560088939f659b6f709b79a5f231d6b38f1cff7dda25fe8e356d9e0
create mode 100644 workspace/assets/skins/b7/b77ab68ab62741a802b3c91571b28b36b86338e729558f710aa0a7466da045a8
create mode 100644 workspace/assets/skins/b7/b7d4c5e7d930a59d9804c7b89baeb033019c9e26246e2798093670b9e186affe
create mode 100644 workspace/assets/skins/b8/b85f1a26847da9bb9b7c49df0a8d9c2354d3c37dafe8f129f7e8bf05ffdf46d2
create mode 100644 workspace/assets/skins/b9/b9622e0d271614a886a5a1b2c624e2f6c24bdf75e1ec6a22e11ec49807f0807c
create mode 100644 workspace/assets/skins/b9/b96d7a7d8d88499d3d8918a8684ca2345e64f329704e43b7f50abdcb83f03bd5
create mode 100644 workspace/assets/skins/b9/b9e9c712d3e75b653407fdb9ebcd9ac8cc6b018f1a11b15a7df4aae01a01a9dd
create mode 100644 workspace/assets/skins/b9/b9f3eceb6946d95af5c1fd633479964b6c37e0fcafb596cc8b4bd2fa3385ed8e
create mode 100644 workspace/assets/skins/ba/ba1cb15a7656563c788d31ae4d17099f78974c33c43fb0515b759a226c110c36
create mode 100644 workspace/assets/skins/ba/ba1e9ce6e3438f3d8a8f1ff6cb1310970616194dda32f7e117b06ecbe4e5664
create mode 100644 workspace/assets/skins/ba/ba6f6f0a8db1d1a147c7e9e71343b0599a9a3d29f966ca70c0e9418eefd772b7
create mode 100644 workspace/assets/skins/ba/bac4d3bbaec21c19c02dbec117e22b63603293d3050240351b0b2aab6db5d2ef
create mode 100644 workspace/assets/skins/bb/bb24304ae15fbdc4e91477318be0c5983a36e818907e8e555af785231a4dbd
create mode 100644 workspace/assets/skins/bb/bb533d6bf96afa1e36e04a2a57ab322e4792fb142dd23d36672f2d88f8f025d8
create mode 100644 workspace/assets/skins/bb/bb60bdca6740b1c87d007f2d4ead5246c219915c7cb5eb3e1682d06c07502c43
create mode 100644 workspace/assets/skins/bb/bb83035321e57dda02c053a344c7b73717ccfada623eb7d7b14ff54e4f2c9fc7
create mode 100644 workspace/assets/skins/bb/bb91f859490ec73cd782c96634272d2ed28f16f730ec06dc9d0b256cb0d4c2dc
create mode 100644 workspace/assets/skins/bb/bb954ae6b318585286b6d955a5febdea72a7790e1bfcbe850360ca80e089c6e0
create mode 100644 workspace/assets/skins/bb/bbad5799827672ac56b2de99b0e7073afe37a940596eb9078a41fa5980608d10
create mode 100644 workspace/assets/skins/bb/bbe3542e31fc71e53f8f6a86d9b04534e5e73b62aec6457a84b57654d6819262
create mode 100644 workspace/assets/skins/bb/bbf9146ed24f4ad586d24f6742aa133b9fb534ae4373840f0a1e2ac519da94af
create mode 100644 workspace/assets/skins/bc/bc6b561bc9f05076af9ee6145a7eb2181cd6fdb495f8ee1596afbada0c8d8064
create mode 100644 workspace/assets/skins/bc/bcf5fb5fa3c486a5fc91cda7844d0af5fb4355833d8c488c590c90467e7d5a3a
create mode 100644 workspace/assets/skins/bd/bd308da9cad7ea867e14d5b6d5125eda25fdd1e1d81318b4f2776e4ef8791f0a
create mode 100644 workspace/assets/skins/bd/bd5318d9b2ae7f7bdef3f3a0fbe96e1a79eddfd0368b534f2772ee96e7b66138
create mode 100644 workspace/assets/skins/bd/bd8b3820004059bda9085c2d0bccbe7482213bf878c01e352802ef8129b9e554
create mode 100644 workspace/assets/skins/be/be291e6e42da6b0926373a222fa2fc5fffab8d322ef10db073e2a34f84e02e02
create mode 100644 workspace/assets/skins/be/be8eca5c60121ed96781c88ed6ae2401f056818e5f829cb28745036883745127
create mode 100644 workspace/assets/skins/be/be952d9d63bcfd8bad2e01db80234b5704ad314bd9edc5cd3aac520d305b26f0
create mode 100644 workspace/assets/skins/be/bee28a06cf1b8d6cdd327be4eb3eaebba9c03945c4a07e37ccb196d382006478
create mode 100644 workspace/assets/skins/bf/bf948b0237d92a2d8e5648b9b4d60465b88cea130fb21aafcb0b57a65aa10d79
create mode 100644 workspace/assets/skins/bf/bf9524b517934abdb769020ba5e3cf5d11debfe3315991a165cd73f8c178da
create mode 100644 workspace/assets/skins/c0/c04b5f73aeea7a7e312d3d06211691650693012492faff96a10321d81efe47e1
create mode 100644 workspace/assets/skins/c0/c084ab5f59fe1464fff70ccaa975c0add94f756c0aa311987568e037c0473b19
create mode 100644 workspace/assets/skins/c0/c095c4dcd62ad0d6bb2c8b25f54ada734248a360cc85c9f7e5d3f0ba15836d94
create mode 100644 workspace/assets/skins/c0/c0bf7ea7640e20303652538cb254e5a541cd4a48270f56eec58fa931caf423e4
create mode 100644 workspace/assets/skins/c1/c133ba6392e9c81cde125dd379ae9e8c0ca2d481a4f41e70b441dba74602de43
create mode 100644 workspace/assets/skins/c2/c22a31125ea8e5232538c6851b7b98b734548ec615c3fc9c4d7e3325e6bdcc2f
create mode 100644 workspace/assets/skins/c2/c232e3820897429157619b0ee099fec0628f602fff12b695de54aef11d923ad7
create mode 100644 workspace/assets/skins/c2/c243f39abac649514a598343ff6ce465c5c883a83cf2c1dc6b20fae0a4619c75
create mode 100644 workspace/assets/skins/c2/c2a9d44a70730666b8c99df5bdb54e4c86b4850c62dcb3701f931034788091a3
create mode 100644 workspace/assets/skins/c2/c2fdfb0585e3b5c1b57809d89602e4e541d385d5935491e83e64c54aa750ff63
create mode 100644 workspace/assets/skins/c3/c309c70c5abd7d4a7c3934ea1fc4e7f0c13c3b5020a03aff63cbff72c5a19e70
create mode 100644 workspace/assets/skins/c3/c337a8f554bd58346158b043f1d4a210facc0400e0daa897162ad38de2954085
create mode 100644 workspace/assets/skins/c3/c33ee94434ff8c26894a79df7f38986c6fd3152f60caefdda59a9a74e5f5546e
create mode 100644 workspace/assets/skins/c3/c3b118200db595dac66c92be3f8b7ccf3bc9293f676a79744c7f5e31f42b093c
create mode 100644 workspace/assets/skins/c3/c3c31b5b43110e553a07283745b26a8a45817d89ee2f1e5b4e03c6bf1b483bfe
create mode 100644 workspace/assets/skins/c3/c3e11cdb30c82e290a680bee6eeb4acfc7c84be82d7a4f86fc189733e61dfa4e
create mode 100644 workspace/assets/skins/c4/c41dcf4c9640281cd19a5fd7e8c327db01cc181bf4cbb5ba25930fb1f65654c0
create mode 100644 workspace/assets/skins/c4/c43a92f4f80cdb6117c7b29731e4d35c448d9a15c43abd518eec3bd2fca2d8c9
create mode 100644 workspace/assets/skins/c4/c4d6bcae53e7166d89ba7ffe7fa5a55b5cd0e03b03f04eef1d4e1e8b1b7470cc
create mode 100644 workspace/assets/skins/c5/c51cbc75082ba5a3ec235e1080186f537fc592766fe1aee3c08564e38ae3dbc9
create mode 100644 workspace/assets/skins/c5/c52586afc90aea21f58e035dc79fddc35174f356356e383d2c742526278df97a
create mode 100644 workspace/assets/skins/c5/c5abab66e221282967e4c4a1688fe3399c72029e2ccf440697901e9bd67752e0
create mode 100644 workspace/assets/skins/c5/c5bcc7a22529fdc13c13bad807a10951c0ac9444fc363b1e4278207cb88fd0b5
create mode 100644 workspace/assets/skins/c5/c5e5b66d6a2b8643369784605ed264be881c92d30b5d14280a4f82fefc4dc18b
create mode 100644 workspace/assets/skins/c6/c618a6573572f3fd913eedeb2cfc19acee9fa2fbebfd995060991aa230da2427
create mode 100644 workspace/assets/skins/c6/c674fe6aafd73bbd50ad257ab202e84cdf58cef4f693a728010fb65cde339f50
create mode 100644 workspace/assets/skins/c6/c68af7237d88e021f17028b3ccfaf5602329141f776de533148eb7a0419027eb
create mode 100644 workspace/assets/skins/c6/c6e2acc663f261051619b7b70faf3a1f3797ad0df1348174730cefb1fa38652
create mode 100644 workspace/assets/skins/c7/c728e731f4c67cb160014053bbe82fefe564cecc5d225458b41ed533051513fa
create mode 100644 workspace/assets/skins/c7/c7390a2f7c7f1d0af35c57a48ae444c19f117bb81b236ded557851e8ca24dac6
create mode 100644 workspace/assets/skins/c7/c752c1cf0e181b3abc221e57480ab4236d8962d90538182bd4143b5be8b1aba7
create mode 100644 workspace/assets/skins/c7/c76623224810818b66faf7c905b3645c9ebe57b37ba478457ae9676145e85663
create mode 100644 workspace/assets/skins/c7/c76e2f02724bff29f37effc0c334bfdad85a729bc4ee0b734d5095a55768919c
create mode 100644 workspace/assets/skins/c7/c7cd325db6bb4e17aaf7b07d2971000f098b7fcf31a8107162832ab040d68bb4
create mode 100644 workspace/assets/skins/c8/c82aa9c953c50d080fb773c88b5c08daa981526241ee7a06b879683d5cf7aead
create mode 100644 workspace/assets/skins/c8/c82f80595a2d1786d771d827590d3ff4e0d254cdc9597077f41bc02d20907779
create mode 100644 workspace/assets/skins/c8/c859573a5e9a37a733cf1ee4de886b80485cc928a2e5c7ba8826f468348dc766
create mode 100644 workspace/assets/skins/c8/c8c2b6257f60176b597b732b9628725ce316f7bc8bdb17b176614433a016b425
create mode 100644 workspace/assets/skins/c8/c8ef17c7d0600b1ee996828d3568305748b815da268c2b6659e49d45ff63a616
create mode 100644 workspace/assets/skins/c8/c8ffa829ee813444c7055e7a8ea01aa0a373847a5083984285c73516c26515f9
create mode 100644 workspace/assets/skins/c9/c93c41044c5fb9207d2c1a4abcc22f919247d50c8d58eb1a28122674ab1c1eb9
create mode 100644 workspace/assets/skins/c9/c99bee3b7784f87e0faf5a351a3bbacf3743403f7deeafcc7cdfa8c73d35e15a
create mode 100644 workspace/assets/skins/c9/c9ec59a67489337499cd2d0aedfd9b12e8b8a2ae5e930a479073f64f4233910f
create mode 100644 workspace/assets/skins/c9/c9f7b7fab241bd693f223802b9d041d6b2bdf0ce914b1b82c0c0653e40deaacc
create mode 100644 workspace/assets/skins/ca/ca05071342e47099ea3e181b95551c2abc7f7f2401bbb0f086028349450a9164
create mode 100644 workspace/assets/skins/ca/ca63bb4582d8d01459aa9d531e5509230e7da5648fb07d7637c6e59b2801ec4e
create mode 100644 workspace/assets/skins/ca/ca75726817a6e6daef658c917b082bb2f1d32f4176b5fdc0d803e678455edd2
create mode 100644 workspace/assets/skins/ca/cac40e7f7283df934f078172799b5377c87e341be46167fea72b740c29a39e38
create mode 100644 workspace/assets/skins/ca/caec0897cf5aaa901e872c9a57bb12ea2e8ba8dd333238a19869ccc217dc33de
create mode 100644 workspace/assets/skins/cb/cb59db1257cf6aef5a834137f765ff5682c815a8ccf5a046b1e291042bf6138d
create mode 100644 workspace/assets/skins/cb/cb75384574f08274625b436980afa97a69cc3bba5d084ed00d039e7c11984338
create mode 100644 workspace/assets/skins/cb/cbe3db9a0a1dde7ba25c3f1e466b255c92674e351b1a5b0202f4c1e94c6f2b2a
create mode 100644 workspace/assets/skins/cc/cc1bafaed1898181140ddd1de297b2d0e86dd7e3cdcd6e0b583a5daf2babd1ec
create mode 100644 workspace/assets/skins/cc/cca0cf19608a4c61580a094c9447f4c72c134cd620e172362255843d64d2c79e
create mode 100644 workspace/assets/skins/cc/cceda2e41ce600ca53e73a6fee20da46fb2caa139ccaec5a757f3dcbb57b94e6
create mode 100644 workspace/assets/skins/cd/cd1ac1625cf5f195702926e7da7c152253f03bef4f3dce1c7a7c884731f4ec2b
create mode 100644 workspace/assets/skins/cd/cd55224298c7ce5056f954e742a50d37eaf4fb22fbb8088a921bb6b41383513b
create mode 100644 workspace/assets/skins/cd/cdcc21d138b5a2dfea51d0b8ab418925c192e0625c9394bbe180029141625410
create mode 100644 workspace/assets/skins/cd/cde4a664a4b98c8762044f1137576bcb145820e95f6043394c00f8cdc0e07363
create mode 100644 workspace/assets/skins/ce/ce29d19d2ebfb6fa4ea23c151fea6a08697cea212e8f8ffa7c1ee4caba2b7b88
create mode 100644 workspace/assets/skins/ce/cefa2a57ce11efe060161487005f723915d34d117817eb64be108dc0cc8d5431
create mode 100644 workspace/assets/skins/cf/cf40ea35c80d25a1059d7d225c6347ddbf57c38c8b8bc24100760bd8ecd02eab
create mode 100644 workspace/assets/skins/cf/cf8015e0ce424637daee77aec5144fb6265cd538480ca1e72f410a530f1946e5
create mode 100644 workspace/assets/skins/cf/cfb74c13aa2c49d590e1c75a9df7778298fd45ed284c04500a502efc68ff8c8f
create mode 100644 workspace/assets/skins/cf/cfdbfa58b483a4b99917f7a792bf7fad50c972996aebf9e1bf13b0b050f34f53
create mode 100644 workspace/assets/skins/d0/d00b767fc2a5310ff02fd6b9095231a102ce29185a73d9cb3ae1663349959f7d
create mode 100644 workspace/assets/skins/d0/d0af1827fc9b0a0fbe25d86fc34d6540cc58807382eb5cef57ee02a7ddb4d0eb
create mode 100644 workspace/assets/skins/d0/d0c45c561e6c53bbc32c9072b615732a7ea9f3a028bd5dead39876f6dd7fc04b
create mode 100644 workspace/assets/skins/d0/d0fd56c22c074456257c20206b4308a83d07ff3909f13f05d92fd06fcb1cf235
create mode 100644 workspace/assets/skins/d1/d105fb3508021cf1b8ff7168869e2a0148db8681e278f7213e65c1f4168cdbbe
create mode 100644 workspace/assets/skins/d1/d11a2f7aeb335b66c05c256af2879b5a233cdcf8ee2b74e6b551dd176fa4392a
create mode 100644 workspace/assets/skins/d1/d1cb1d78293e683c1a8794dce792ef175171004fbfa0fe3ffbe9d46a818eea4
create mode 100644 workspace/assets/skins/d2/d24ada558232ee328ec77e231236aad0937d3b24247831d4f12b9665b0dd336f
create mode 100644 workspace/assets/skins/d2/d2551f55e567c53ec99cc26678c39fd7b50a730aee93a4f61fd2d8873a38241d
create mode 100644 workspace/assets/skins/d2/d28202d6b1cffde43ec1117d953d046d43ef297fcef7230266ef84f7173cfd55
create mode 100644 workspace/assets/skins/d2/d289dca4f633786dbdd0928adb4e8991264da8675ea86c335921b4e7146a3dcf
create mode 100644 workspace/assets/skins/d2/d2dac1424df5999f6a69020d9afac0d9789664ab77aebd3af0f2e0d2f4dc4cb4
create mode 100644 workspace/assets/skins/d2/d2dc78b2d9503014fe5e601cda17881885c9188373afe580ec3a32a374f46a40
create mode 100644 workspace/assets/skins/d3/d3dacdb4ee7ffb097444938bb0a998f31d31af2aa5e9d0eb1783c53fc78bd125
create mode 100644 workspace/assets/skins/d4/d423c1b892fc0f7d6b5cd7ef1a5ee3c9ce0d6e4f3917fab6be7c28f414be98fa
create mode 100644 workspace/assets/skins/d4/d48e655bdd9e693a6f5e38b82cf84c2f3f9e076b042f2c42b823ab384684fd71
create mode 100644 workspace/assets/skins/d5/d503b93dd3e3e84b0e92b30ad483376729ce5cafbb4b336b76842f82fbac1ee9
create mode 100644 workspace/assets/skins/d5/d543395f1957cb339c309f695edb15d8293b405ef269ed70bf9c8b77a553d79f
create mode 100644 workspace/assets/skins/d5/d5d3ab8aa0db25f55a4b6b52c3907de3494c20e24474f6b816b6a42716912f29
create mode 100644 workspace/assets/skins/d6/d628ee222e0451afbac5e5aec8634931dd9f36aaf59ac706b3f98db397a06d80
create mode 100644 workspace/assets/skins/d6/d69b06b7903e4986e739a556fb5bf978eb908c917b32f44a1a1397c9931a2d24
create mode 100644 workspace/assets/skins/d6/d6c5af2a823b43219c736ceed35cfa58c7d78a5cf19dfa7488cefa9c67818172
create mode 100644 workspace/assets/skins/d7/d70e675b74ab545d77edd8eb92e7dd924438235632258d3b01f3e84682471e7a
create mode 100644 workspace/assets/skins/d7/d7360e0c2b2f51fd75693a0adbc00f56268c02747ecb3f59b02bd72673705ddf
create mode 100644 workspace/assets/skins/d7/d7bb91b49cb13efbc4e59c927902b36dfbfd75c56513d6ad80209ca25c047fc2
create mode 100644 workspace/assets/skins/d7/d7bd9a5d2eeff532e99776e1cc3e00035519039e8cd0b182c92f5f5a3ce70ba7
create mode 100644 workspace/assets/skins/d7/d7de2bde6681de822bf7a95a0879c4f22ee490d030d3438a787ebb0135665cb0
create mode 100644 workspace/assets/skins/d7/d7eac95ec6d3b18c5fee76cba7ff2fc5bf348b7be3c0f94b99bb9c2856918b84
create mode 100644 workspace/assets/skins/d8/d868e5b5170bdc4d2a1498c4bd33cdde45c75cf3ada209310867ede6c5e41108
create mode 100644 workspace/assets/skins/d8/d8710e045dda3854658438b9bb85cd9817c5e64bfffe1288e0fc7658ba529296
create mode 100644 workspace/assets/skins/d8/d8b0e5098b25efc35ac2049a8f6847a1db526592b0660d7a28ecd777b8a04f07
create mode 100644 workspace/assets/skins/d9/d905a37266dfb4afb24983b5dcf6f12baf01ff46a65dcefdc655f2874c31ced0
create mode 100644 workspace/assets/skins/d9/d9895b999eeb60326b1b3d9dcf76df8c520b40ab5a8ad33fb03bb18a685e275e
create mode 100644 workspace/assets/skins/d9/d99ff2210bb9147a2b285f2c3f2e6867147d47ba56d32028cab6db828e7e87ac
create mode 100644 workspace/assets/skins/da/da0f279175677daa3088a5e51f6348e65b1551940b83307b4ca246218902eef3
create mode 100644 workspace/assets/skins/da/da1ea5ea162738a11f55a565099d218205a7a5266e6f6df8b795bf3a465d0ee0
create mode 100644 workspace/assets/skins/da/da29cb9ad6a846da945fe072d0682857f0d9a70e4d43cf3f6d26df4e56706766
create mode 100644 workspace/assets/skins/da/da3e0fd34c3f06f109373819e43fa36d02230eab5cfbce4dd1d568ea78ab1c83
create mode 100644 workspace/assets/skins/da/dab2af44df916b3e8d197e9e44652ec5b7533368074fc14c44c2cf01e20de323
create mode 100644 workspace/assets/skins/da/dacbc069c29730941522bee8957af7afaa4f96bd0bf1fee59fb3db32b2e4c32e
create mode 100644 workspace/assets/skins/da/daed6fad081ad16b530e6276964865e0962dcbe455beeb5e12771572f56cd616
create mode 100644 workspace/assets/skins/da/dafcc0a3d7aace7f16706988e4c8d7142f5fd6752e69df47f441c2942117f604
create mode 100644 workspace/assets/skins/db/db48495b1713f317c15ff24b236f842d2f53c22914cffe1cc5426cb1c078c6e9
create mode 100644 workspace/assets/skins/db/db9582e7891dd741dec28078526eb349ca5632716f992a1ca0a7b469636d722f
create mode 100644 workspace/assets/skins/dc/dcbd779f4673dcd14e0ad75adb3d90da4d08e7b2034b2892f565b509c12b6946
create mode 100644 workspace/assets/skins/dc/dcfa241a4f285e81d0b7a27021ce81f08ea1fada1a8c4fcc1a63b7e83620b687
create mode 100644 workspace/assets/skins/dd/dd1035a7a1da5c0c4a02ee98351e61737de973b8bf7a3409d96dac23b1973101
create mode 100644 workspace/assets/skins/dd/dd61f40f5eac667f485cc4325a042c0c44359fbab08226d2e87359d02d9ae00e
create mode 100644 workspace/assets/skins/dd/ddc8ccbf42e38ce073f0a64ec05b437da76f38a103d9b9e1c5300c3d312ebbdb
create mode 100644 workspace/assets/skins/de/de0e97b56a2df4702c212501ccb348b60045851517e939504548173706e980d2
create mode 100644 workspace/assets/skins/de/de3f8b508cd177fbe779054bfa3bc660b019bf58c2af636d4563e536e61f9d42
create mode 100644 workspace/assets/skins/de/de5226de87ffc82ce3fa080efa48ca33496e7f1f14a292323dea99bdcab12015
create mode 100644 workspace/assets/skins/de/de5b42cc0018fe4da5c8c0ef2a0d8c3106fb2f257b7d3024c1df675db901b0c4
create mode 100644 workspace/assets/skins/df/df11aba5d2fcf1c4344272e4b598764893f771a781b29b365e9d7d480e25a1b6
create mode 100644 workspace/assets/skins/df/df828230b68b10a435e2d941734a52d8bec0f6059cb3d9a48e9539559485ea94
create mode 100644 workspace/assets/skins/df/dfc22a2347354dc4cf6465a500c25223935c38a560991ca4a437adce222dc0f6
create mode 100644 workspace/assets/skins/df/dfd1eefc975ba80fe9b2e5cf43f3b05c2fe683ca2dc4357644306ddbf5710948
create mode 100644 workspace/assets/skins/e0/e04c0c4229d5284395b6f4f9f8cfd67c77576ce4dfd930248617842f80cff0ba
create mode 100644 workspace/assets/skins/e0/e0541951ef69bfa87820094465165f3dae9c5e008da7d8b9b8712f709ad6b01b
create mode 100644 workspace/assets/skins/e1/e1020bf121b571e1d6e06c65e02168df6dcfd9936a1e935d890963a63a7429d
create mode 100644 workspace/assets/skins/e1/e106a01a15c3b1443c9f130fcdcfc0080c4060fb3ccfbb1b1db7a38c3a7c3ff
create mode 100644 workspace/assets/skins/e1/e1593bf95023dd7e37758a06630cbf4fcfc8e713ec130e3035d380483348d20
create mode 100644 workspace/assets/skins/e1/e17cf4ed27b59734acfd3a75f560d91bfb56ead91fb0a9cc03631f5e9e12d7c1
create mode 100644 workspace/assets/skins/e1/e1d511be9f36f57dbb53cd0e626da271226c46fb4effead386f120f051d6ff35
create mode 100644 workspace/assets/skins/e1/e1d93217d74b1b81cc8e1570f64e48026cec73772d882c8681b394dcd58df21a
create mode 100644 workspace/assets/skins/e2/e233065540fe394536184042bc02d1205cbe48e4fe01aa5f70cac4bb00a96ef6
create mode 100644 workspace/assets/skins/e2/e26b19936954343effca22265768f41229a828c42e579897dd6275f65e3ca9ba
create mode 100644 workspace/assets/skins/e2/e27b35978953affdd40be29aa7ae031bcd9d5d11ed07f421c669cfb3c2682884
create mode 100644 workspace/assets/skins/e3/e3d284032054f5e39010858975e095189592607d746504b79b95d0ef6239945
create mode 100644 workspace/assets/skins/e4/e44fa8201c81aa8084ab7ae8bed4d7e8a9fa18052fcc6ddd0203a0df5da9556e
create mode 100644 workspace/assets/skins/e4/e49c1560c58c76de16f811c0f0f0385b9a3a47d5bce461132a8a166338aaa8e3
create mode 100644 workspace/assets/skins/e5/e53b4399ec32b09bd3e9476b33313449a9a187c0feef7f8d9581322e430468e3
create mode 100644 workspace/assets/skins/e5/e56c6a923052716a6e76c947ddf4d426e65304800d882116ac2bd03e5e9ceec9
create mode 100644 workspace/assets/skins/e5/e5ad62dab588d58fbbe51e24439a47c70a5c0f7a7dcee8a0e4a3449668ffd4ad
create mode 100644 workspace/assets/skins/e5/e5c10d8943c93104abd63ba6d5407b2b76b2fab2c66205a98d959dee6b501f57
create mode 100644 workspace/assets/skins/e6/e6564f42e039a19f8ddca9cf7959dc006ae2c4db91471d8578fcfa8c3922baf0
create mode 100644 workspace/assets/skins/e6/e6832ab2dd8d32748acd0177f5c663b59ce39841db9cc6b9f4842af44fc19c7a
create mode 100644 workspace/assets/skins/e6/e69d40408bd0066a5a4819e07ee9dfe10eb8549f3821d03e1b517d2cc4dfd3be
create mode 100644 workspace/assets/skins/e6/e6f25d209cac00fcd859bf2d42afdc2e699bafd77f22d8bae8c859bb5b5d0c24
create mode 100644 workspace/assets/skins/e7/e7085e318fdf48f37d79ff88682eb2f74ecd662307727bc97e3209ffab313d53
create mode 100644 workspace/assets/skins/e7/e731b50b8ae556257660ba158dbab972daf06eb9448d114fe19a76e239320636
create mode 100644 workspace/assets/skins/e7/e7fa643fc1b3b02d6cb55b29b62fb360c4d342c7dd723a3b7a6982cf9caddc86
create mode 100644 workspace/assets/skins/e8/e89f9e89110cbdf5d88c6333c6b5120a03ec7e7b2ac7d759b8f0bc21350a348f
create mode 100644 workspace/assets/skins/e8/e8a72a23436deefe673f09ced76146412f61a518390016624ee1d24b243a3ca0
create mode 100644 workspace/assets/skins/e9/e984bd47f69ce71efa13aed34e45db422b9bbed7d34c12ea1cd674c005f38e38
create mode 100644 workspace/assets/skins/ea/ea2838bce5fb4172fb81da5ed7c0d45f59b2e88b6f38a9af1062af7193250ee9
create mode 100644 workspace/assets/skins/ea/ea4d3cebffe7127288d3ce891e2f194cc9a33acfaf859e6230f282e6166101c8
create mode 100644 workspace/assets/skins/ea/ea985b3ff12c7eafdd97e704329028202be08c6a45ed2a5334abce09eb45cf94
create mode 100644 workspace/assets/skins/ea/eac89112b681b8d3e0aa9866ca73575489432378bd76d43b682190e3ada892f
create mode 100644 workspace/assets/skins/ea/eae3c3972d6a9f036bcac8284f1f07d791438f039a35212a435ce167e5704e68
create mode 100644 workspace/assets/skins/ea/eafda01724e174c294b6954683d366899b63736ad3752715485507d9bb0396f5
create mode 100644 workspace/assets/skins/eb/eb3c985a4b26852abae7f54cb71ca19c40f37cf2994be219bf89309932cfa755
create mode 100644 workspace/assets/skins/eb/eb852ca8efaf381d45dd9713db8277b305ff527f4e873e46ebcb1d4bec6502b8
create mode 100644 workspace/assets/skins/eb/ebd381deef9ec76dffcf07f292f6cc46eb96d21ddc33670e847153411b24a97f
create mode 100644 workspace/assets/skins/ed/ed6ddb8b0898a0797353a2be8bce1e9bb4dd63e2100739dad3e32db4df3fb00c
create mode 100644 workspace/assets/skins/ed/ed771291eaff66041f083a443bfaf78b5b296b894f9c3a38c766f2a0b971319e
create mode 100644 workspace/assets/skins/ed/edb81670aa0db297ce3c0881c5ea6041150500ec95083313ee5bb8867ef64963
create mode 100644 workspace/assets/skins/ed/edc01e9af2fc9df83783688289b686afe76c671aba0e01f28ee4b616f782d22c
create mode 100644 workspace/assets/skins/ed/edff4fe7338ec6366c260ab7426356166a26dcb5ad84bc089ea418e28e08e218
create mode 100644 workspace/assets/skins/ee/ee02269e5264bb4f7a8a2326d3e6b906fdfc9bccd4e80ea30192ee701e75fdaf
create mode 100644 workspace/assets/skins/ee/ee12f30ebeec0f224707c11c3268429a6bc1e8ed2944aa7b0ead0c6ca7ea1fc9
create mode 100644 workspace/assets/skins/ee/ee997559064059f00bbe2211250da306a74909a24fc123ea91d61efe87084cae
create mode 100644 workspace/assets/skins/ee/eeab1158bbeb23e99b4ffda397e380fed3538d167c310cf30c1b59a71ccbc1e8
create mode 100644 workspace/assets/skins/ef/efa2e6b6087789490771b1ab9fef43da49b08af9405f6a313e861a09ed0b645b
create mode 100644 workspace/assets/skins/f0/f01c9c77bf5882f0267f5f35dccbb4892642089c0dc647ceea8c539361f5dff1
create mode 100644 workspace/assets/skins/f0/f02a3b99b5691b1349e71135c399eee7935ec33850aba578da6c2c60669f5a90
create mode 100644 workspace/assets/skins/f0/f060555e7d9ed7fedaad61e4ea487790ef7e160c6176464187a3dcef6740d1bf
create mode 100644 workspace/assets/skins/f0/f08712b7bc7f344f7b2b24cc21ceaf3b31e8818747430f25c4f964dd3b1a77b6
create mode 100644 workspace/assets/skins/f1/f169b68a1cd9a899931f0ab7de48d383ac3251b681abfbefec29be97959d4f5e
create mode 100644 workspace/assets/skins/f2/f27c351524a6c4105729e13d4d6ecc8e76f2ddda2fd5ca71970450620e5449b5
create mode 100644 workspace/assets/skins/f2/f2d05c5903bf155c848b6d308c2661e48fe90577b25ac3988c52635dcc2dbd76
create mode 100644 workspace/assets/skins/f3/f3069fbfbbe4d90089f08e2f3b95a3c127e9e88714663711a85ee2af05b009fa
create mode 100644 workspace/assets/skins/f3/f3bcb18f84b34cf5c8faa7d5e28b3aef81b4e44898e87a01c9eb755e0c5911d0
create mode 100644 workspace/assets/skins/f3/f3e727709c66bd0bbb44a82c7d5a76a3925ac2fac5f57f8f268b433b164df8fd
create mode 100644 workspace/assets/skins/f4/f458cb8380d9a04a57cbbeb4ccdb280c67ef3021521ce008a62e1a53d39b9a78
create mode 100644 workspace/assets/skins/f4/f4ea47415951038a4d466bd74bb586e2096478c9d6e593c13bfa193f6dba567e
create mode 100644 workspace/assets/skins/f5/f59b0b3e20d03c25e357efa4628da0911727a72f7e9ac8bac77666005081661
create mode 100644 workspace/assets/skins/f5/f5b61673a5dad25580716f3bf1da8b794794d1402a0e9083b6b850b385c0bc54
create mode 100644 workspace/assets/skins/f5/f5d2f6ffd36ea7d94e438cab75bd7e2c744d63da767962bc80b82a68abdfa375
create mode 100644 workspace/assets/skins/f5/f5d52fc4f059335fe1ce982d41dfe9104866ff282f115e8cb03320861caeb94e
create mode 100644 workspace/assets/skins/f5/f5e6e0cba2b2c3747ce5d899ae6625b8b299f6fb7cc39c47c2808a13dbb818e
create mode 100644 workspace/assets/skins/f5/f5f4d0e27ef13a473f9222e5835be44216687439c175d4bf39d45045cdf1d28b
create mode 100644 workspace/assets/skins/f6/f6054d17b96c66e0b435fa5386dff629394c384776b44e2bb54f1e3a4b5360a4
create mode 100644 workspace/assets/skins/f6/f69d6a898d8d0a24379a0a09df1a522e0f1425c7220b22d33b81fe40f34b8c1f
create mode 100644 workspace/assets/skins/f6/f6a02b72f4ace1e9fb6fffc091223071b87260291402e70734995232648ea94d
create mode 100644 workspace/assets/skins/f7/f70f678415c5b50baa4ca84aa8a657acdc20af1cb962959f46d752b412793e4c
create mode 100644 workspace/assets/skins/f7/f737023d3f5171b8de3651f6ec30d826b8988628afcb1f0d63dfbd0bf120b779
create mode 100644 workspace/assets/skins/f7/f75a9e0e666e7490f33cf40e28790030bda00f7c302a9f32e7c420d58f9aa8bd
create mode 100644 workspace/assets/skins/f7/f762fe15f0fe7b01d92bffec3456159759be4ea98f255a12004d75b03f69271e
create mode 100644 workspace/assets/skins/f7/f7f1a65970d8a7b7f153f6b3a9cde5d826749d32c6e9d7853f9f4b7087e39399
create mode 100644 workspace/assets/skins/f8/f80be9de888cf09ff57192538e4db546db934e45f5213aa6bcfbc50f4b765589
create mode 100644 workspace/assets/skins/f8/f842193f9551dbd2bc1505975aff861a7365193837a6d6f94bb56bd01a204408
create mode 100644 workspace/assets/skins/f8/f868a0df866e7a9dab139b9b67fbd776f266970e541118678dccbdc8719fcc
create mode 100644 workspace/assets/skins/f8/f8cf49c0db0d7652fa6a4a46de78ee33bac5327aef2cd3c2db68d0232da802ba
create mode 100644 workspace/assets/skins/f9/f98f8d8403b274d87b7fc410b3b5b62fa1f471419b7f0784150bef1e4f4d4c8e
create mode 100644 workspace/assets/skins/f9/f9d4400581ffc42a24019e383888ed90a42f0afcdfffa2d332ec13ebccce82c1
create mode 100644 workspace/assets/skins/fa/fa1a68cf5f7b92590d8a0d0f23a1be3be2927751a60a23ded1e33cf8cbc3a99e
create mode 100644 workspace/assets/skins/fa/fa994b41d48e803fa347fdd0b6e5b1cb648a720efd52db48598eba04250b12c
create mode 100644 workspace/assets/skins/fa/faa83d4d0b0d56155c7c76bd179ba38b8635135057abcaa076fcc0731f9fa786
create mode 100644 workspace/assets/skins/fa/faae5492054431776097b26acd8f02e1f75274919c0706c30e27aef028ce8c45
create mode 100644 workspace/assets/skins/fa/fafa3c7508c279c105393aa87de97bde966555ff9d43dab16a8367d27308bf68
create mode 100644 workspace/assets/skins/fb/fb137b48296347ec0cd37f6ec0750203fb43e9c2453f83e1501b97bdce7eb94e
create mode 100644 workspace/assets/skins/fb/fb70f7f8a7fd236989110d71b973ea1d7c0ac299ec73fe0e7c3742aab6a82b3b
create mode 100644 workspace/assets/skins/fb/fb768ca24a9f36398f81487a509387a4cf77764052758b1f3d783b826752e861
create mode 100644 workspace/assets/skins/fb/fb85a135ecd57b2abbf97a358b8e83ce32e7efc246885bc7ccd74ef29a59ef61
create mode 100644 workspace/assets/skins/fb/fb862e908b92d1f6b418046a4bd7e457955a8158992e03acdba9fbfa558ade5b
create mode 100644 workspace/assets/skins/fc/fc47097e242c02e18cfe5a7ec6ffbe1c15fe8ee736cf6682a5d7f223b13bc2d1
create mode 100644 workspace/assets/skins/fd/fd0828a29a93b942ba33852c3f50f6d0954162e9267a47f002e832fb89c52531
create mode 100644 workspace/assets/skins/fd/fd988844f88e00422ea7c76013b1b293ffbab562056363959285bb395d181b60
create mode 100644 workspace/assets/skins/fd/fdca11c6075f0f4de5bd075324fae55050f9c143015ef8fd519a59d6d2471a9c
create mode 100644 workspace/assets/skins/fd/fdf06991ccae86d5f96e65ce1b5a6be57b7ac995de74f2a2cff18d111a87fc3e
create mode 100644 workspace/assets/skins/fe/fe674d5a90fa0b6f1f034693fa286c5fed16e8d6576ddca7289772ea299150a3
create mode 100644 workspace/assets/skins/fe/fe949553f103a99256fff2a2f79970abd0d3492161eddcd3ac831d26eb7c06cb
create mode 100644 workspace/assets/skins/fe/fe996eb3a2675713456727d574557fc1b1c5f54531fa38ac8d80c1a074ceb353
create mode 100644 workspace/assets/skins/fe/fe9c5dfcf6b92d207e0f67b64891af368a36dcc573f88025a5cc70540845c258
create mode 100644 workspace/assets/skins/fe/feb3ce2f71b92784e909f9010f6f3dbcbad149b6ed278b4b0e3777518f4554a1
create mode 100644 workspace/assets/skins/fe/febd8d3a9f5408591cd09fee2630a70238784fd517609b7b93d4df320114ce5f
create mode 100644 workspace/assets/skins/fe/fecce2e63db2d53ceff918a5ea66352b2a028e106150c0277c4849368ffbe0d8
create mode 100644 workspace/assets/skins/ff/ff0d5ad5f163752d21e26a0e3ed11830ee9980bb188eb8888c617967efd49f3a
create mode 100644 workspace/assets/skins/ff/ffafd042bdade516f3ec489698c182af76e991a6143714324979851bfb030a38
create mode 100644 workspace/assets/skins/ff/ffc31e4d70e3b3ad15064a78a92268ebea52a7bb2400c52f4f62d126f0b5e164
create mode 100644 workspace/crash-reports/crash-2023-06-11_14.38.42-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-11_22.06.03-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-11_22.10.15-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.08.45-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.36.58-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.39.05-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.39.59-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.42.27-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.43.20-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.44.09-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.45.27-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.45.53-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_14.59.01-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_15.00.07-client.txt
create mode 100644 workspace/crash-reports/crash-2023-06-12_15.09.00-client.txt
create mode 100644 workspace/logs/2023-06-11-1.log.gz
create mode 100644 workspace/logs/2023-06-11-2.log.gz
create mode 100644 workspace/logs/2023-06-11-3.log.gz
create mode 100644 workspace/logs/2023-06-11-4.log.gz
create mode 100644 workspace/logs/2023-06-11-5.log.gz
create mode 100644 workspace/logs/2023-06-11-6.log.gz
create mode 100644 workspace/logs/2023-06-11-7.log.gz
create mode 100644 workspace/logs/2023-06-12-1.log.gz
create mode 100644 workspace/logs/2023-06-12-2.log.gz
create mode 100644 workspace/logs/2023-06-12-3.log.gz
create mode 100644 workspace/logs/2023-06-12-4.log.gz
create mode 100644 workspace/logs/2023-06-12-5.log.gz
create mode 100644 workspace/logs/2023-06-12-6.log.gz
create mode 100644 workspace/logs/2023-06-12-7.log.gz
create mode 100644 workspace/logs/2023-06-13-1.log.gz
create mode 100644 workspace/saves/Copy of mcpworldpp/playerdata/3ab608c1-368b-3111-9725-7a01f0b8ec9e.dat
create mode 100644 workspace/saves/Copy of mcpworldpp/playerdata/ae330cf9-3749-3ca0-ba31-8447e2a2786f.dat
create mode 100644 workspace/saves/Copy of mcpworldpp/stats/3ab608c1-368b-3111-9725-7a01f0b8ec9e.json
create mode 100644 workspace/saves/Copy of mcpworldpp/stats/ae330cf9-3749-3ca0-ba31-8447e2a2786f.json
create mode 100644 workspace/screenshots/2023-06-11_12.25.34.png
diff --git a/pom.xml b/pom.xml
index 0cbd7bc4..57295052 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,12 +22,30 @@
+
+ org.eclipse.jetty.websocket
+ javax-websocket-server-impl
+ 9.4.43.v20210629
+
+
+
+ org.eclipse.jetty
+ jetty-servlet
+ 9.4.43.v20210629
+
+
net.minecraft
minecraft
1.8.8
+
+ org.java-websocket
+ Java-WebSocket
+ 1.5.2
+
+
co.gongzh.procbridge
procbridge
diff --git a/src/main/java/fr/litarvan/openauth/Authenticator.java b/src/main/java/fr/litarvan/openauth/Authenticator.java
index 5d1c8e36..7f6c40f2 100644
--- a/src/main/java/fr/litarvan/openauth/Authenticator.java
+++ b/src/main/java/fr/litarvan/openauth/Authenticator.java
@@ -20,12 +20,14 @@ package fr.litarvan.openauth;
import com.google.gson.Gson;
import fr.litarvan.openauth.model.AuthAgent;
-import fr.litarvan.openauth.model.request.*;
-import fr.litarvan.openauth.model.response.*;
import fr.litarvan.openauth.model.AuthError;
+import fr.litarvan.openauth.model.request.*;
+import fr.litarvan.openauth.model.response.AuthResponse;
+import fr.litarvan.openauth.model.response.RefreshResponse;
import java.io.*;
import java.net.HttpURLConnection;
+import java.net.Proxy;
import java.net.URL;
import java.nio.charset.StandardCharsets;
@@ -43,18 +45,20 @@ public class Authenticator {
/**
* The Mojang official auth server
+ * @deprecated Should not be used since it doesn't work anymore.
*/
+ @Deprecated
public static final String MOJANG_AUTH_URL = "https://authserver.mojang.com/";
/**
* The auth server URL
*/
- private String authURL;
+ private final String authURL;
/**
* The server auth points
*/
- private AuthPoints authPoints;
+ private final AuthPoints authPoints;
/**
* Create an authenticator
@@ -71,14 +75,14 @@ public class Authenticator {
}
/**
- * Authenticates an user using his password.
+ * Authenticates a user using his password.
*
* @param agent
* The auth agent (optional)
* @param username
- * User mojang account name
+ * User account name
* @param password
- * User mojang account password
+ * User account password
* @param clientToken
* The client token (optional, like a key for the access token)
*
@@ -87,8 +91,30 @@ public class Authenticator {
* @return The response sent by the server (parsed from a JSON)
*/
public AuthResponse authenticate(AuthAgent agent, String username, String password, String clientToken) throws AuthenticationException {
+ return authenticate(agent, username, password, clientToken, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Authenticates a user using his password.
+ *
+ * @param agent
+ * The auth agent (optional)
+ * @param username
+ * User account name
+ * @param password
+ * User account password
+ * @param clientToken
+ * The client token (optional, like a key for the access token)
+ * @param proxy
+ * The proxy to use (optional)
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ *
+ * @return The response sent by the server (parsed from a JSON)
+ */
+ public AuthResponse authenticate(AuthAgent agent, String username, String password, String clientToken, Proxy proxy) throws AuthenticationException {
AuthRequest request = new AuthRequest(agent, username, password, clientToken);
- return (AuthResponse) sendRequest(request, AuthResponse.class, authPoints.getAuthenticatePoint());
+ return (AuthResponse) sendRequest(request, AuthResponse.class, authPoints.getAuthenticatePoint(), proxy);
}
/**
@@ -98,15 +124,34 @@ public class Authenticator {
* @param accessToken
* The saved access token
* @param clientToken
- * The saved client token (need to be the same used when authenticated to get the acces token)
+ * The saved client token (need to be the same used when authenticated to get the access token)
*
* @throws AuthenticationException If the server returned an error as a JSON
*
* @return The response sent by the server (parsed from a JSON)
*/
public RefreshResponse refresh(String accessToken, String clientToken) throws AuthenticationException {
+ return refresh(accessToken, clientToken, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Refresh a valid access token. It can be uses to keep a user logged in between gaming sessions
+ * and is preferred over storing the user's password in a file.
+ *
+ * @param accessToken
+ * The saved access token
+ * @param clientToken
+ * The saved client token (need to be the same used when authenticated to get the access token)
+ * @param proxy
+ * The proxy to use (optional)
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ *
+ * @return The response sent by the server (parsed from a JSON)
+ */
+ public RefreshResponse refresh(String accessToken, String clientToken, Proxy proxy) throws AuthenticationException {
RefreshRequest request = new RefreshRequest(accessToken, clientToken);
- return (RefreshResponse) sendRequest(request, RefreshResponse.class, authPoints.getRefreshPoint());
+ return (RefreshResponse) sendRequest(request, RefreshResponse.class, authPoints.getRefreshPoint(), proxy);
}
/**
@@ -123,23 +168,58 @@ public class Authenticator {
* @throws AuthenticationException If the server returned an error as a JSON
*/
public void validate(String accessToken) throws AuthenticationException {
+ validate(accessToken, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Check if an access token is a valid session token with a currently-active session.
+ * Note: this method will not respond successfully to all currently-logged-in sessions,
+ * just the most recently-logged-in for each user. It is intended to be used by servers to validate
+ * that a user should be connecting (and reject users who have logged in elsewhere since starting Minecraft),
+ * NOT to auth that a particular session token is valid for authentication purposes.
+ * To authenticate a user by session token, use the refresh verb and catch resulting errors.
+ *
+ * @param accessToken
+ * The access token to check
+ * @param proxy
+ * The proxy to use (optional)
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ */
+ public void validate(String accessToken, Proxy proxy) throws AuthenticationException {
ValidateRequest request = new ValidateRequest(accessToken);
- sendRequest(request, null, authPoints.getValidatePoint());
+ sendRequest(request, null, authPoints.getValidatePoint(), proxy);
}
/**
* Invalidates accessTokens using an account's username and password
*
* @param username
- * User mojang account name
+ * User account name
* @param password
- * User mojang account password
+ * User account password
*
* @throws AuthenticationException If the server returned an error as a JSON
*/
public void signout(String username, String password) throws AuthenticationException {
+ signout(username, password, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Invalidates accessTokens using an account's username and password
+ *
+ * @param username
+ * User account name
+ * @param password
+ * User account password
+ * @param proxy
+ * The proxy to use (optional)
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ */
+ public void signout(String username, String password, Proxy proxy) throws AuthenticationException {
SignoutRequest request = new SignoutRequest(username, password);
- sendRequest(request, null, authPoints.getSignoutPoint());
+ sendRequest(request, null, authPoints.getSignoutPoint(), proxy);
}
/**
@@ -153,8 +233,24 @@ public class Authenticator {
* @throws AuthenticationException If the server returned an error as a JSON
*/
public void invalidate(String accessToken, String clientToken) throws AuthenticationException {
+ invalidate(accessToken, clientToken, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Invalidates accessTokens using a client/access token pair
+ *
+ * @param accessToken
+ * Valid access token to invalidate
+ * @param clientToken
+ * Client token used when authenticated to get the access token
+ * @param proxy
+ * The proxy to use (optional)
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ */
+ public void invalidate(String accessToken, String clientToken, Proxy proxy) throws AuthenticationException {
InvalidateRequest request = new InvalidateRequest(accessToken, clientToken);
- sendRequest(request, null, authPoints.getInvalidatePoint());
+ sendRequest(request, null, authPoints.getInvalidatePoint(), proxy);
}
/**
@@ -163,7 +259,7 @@ public class Authenticator {
* @param request
* The auth request to send
* @param model
- * The model of the reponse
+ * The model of the response
* @param authPoint
* The auth point of the request
* @throws AuthenticationException
@@ -171,14 +267,36 @@ public class Authenticator {
*
* @throws AuthenticationException If the server returned an error as a JSON
*
- * @return Instance of the given reponse model if it not null
+ * @return Instance of the given response model if it not null
*/
private Object sendRequest(Object request, Class> model, String authPoint) throws AuthenticationException {
+ return sendRequest(request, model, authPoint, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Send a request to the auth server
+ *
+ * @param request
+ * The auth request to send
+ * @param model
+ * The model of the response
+ * @param authPoint
+ * The auth point of the request
+ * @param proxy
+ * The proxy to use (optional)
+ * @throws AuthenticationException
+ * If it returned an error or the request failed
+ *
+ * @throws AuthenticationException If the server returned an error as a JSON
+ *
+ * @return Instance of the given response model if it not null
+ */
+ private Object sendRequest(Object request, Class> model, String authPoint, Proxy proxy) throws AuthenticationException {
Gson gson = new Gson();
String response;
try {
- response = sendPostRequest(this.authURL + authPoint, gson.toJson(request));
+ response = sendPostRequest(this.authURL + authPoint, gson.toJson(request), proxy);
} catch (IOException e) {
throw new AuthenticationException(new AuthError("Can't send the request : " + e.getClass().getName(), e.getMessage(), "Unknown"));
}
@@ -204,9 +322,29 @@ public class Authenticator {
* @return The request response
*/
private String sendPostRequest(String url, String json) throws AuthenticationException, IOException {
+ return sendPostRequest(url, json, Proxy.NO_PROXY);
+ }
+
+ /**
+ * Sends a post request of a json
+ *
+ * @param url
+ * The url to send the request
+ * @param json
+ * The json to send
+ * @param proxy
+ * The proxy to use (optional)
+ * @throws IOException
+ * If it failed
+ *
+ * @throws AuthenticationException If the request returned an error JSON or not a JSON
+ *
+ * @return The request response
+ */
+ private String sendPostRequest(String url, String json, Proxy proxy) throws AuthenticationException, IOException {
byte[] jsonBytes = json.getBytes(StandardCharsets.UTF_8);
URL serverURL = new URL(url);
- HttpURLConnection connection = (HttpURLConnection) serverURL.openConnection();
+ HttpURLConnection connection = (HttpURLConnection) serverURL.openConnection(proxy != null ? proxy : Proxy.NO_PROXY);
connection.setRequestMethod("POST");
// Sending post request
diff --git a/src/main/java/fr/litarvan/openauth/microsoft/HttpClient.java b/src/main/java/fr/litarvan/openauth/microsoft/HttpClient.java
index e92aceec..c525d15a 100644
--- a/src/main/java/fr/litarvan/openauth/microsoft/HttpClient.java
+++ b/src/main/java/fr/litarvan/openauth/microsoft/HttpClient.java
@@ -20,28 +20,30 @@ package fr.litarvan.openauth.microsoft;
import com.google.gson.Gson;
-
-import javax.net.ssl.HttpsURLConnection;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.net.*;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.Proxy;
+import java.net.URL;
+import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;
-
public class HttpClient
{
public static final String MIME_TYPE_JSON = "application/json";
public static final String MIME_TYPE_URLENCODED_FORM = "application/x-www-form-urlencoded";
-
private final Gson gson;
+ private final Proxy proxy;
public HttpClient()
+ {
+ this(Proxy.NO_PROXY);
+ }
+ public HttpClient(Proxy proxy)
{
this.gson = new Gson();
+ this.proxy = proxy;
}
@@ -52,21 +54,21 @@ public class HttpClient
public T getJson(String url, String token, Class responseClass) throws MicrosoftAuthenticationException
{
- HttpsURLConnection connection = createConnection(url);
+ HttpURLConnection connection = createConnection(url);
connection.addRequestProperty("Authorization", "Bearer " + token);
connection.addRequestProperty("Accept", MIME_TYPE_JSON);
return readJson(connection, responseClass);
}
- public HttpsURLConnection postForm(String url, Map params) throws MicrosoftAuthenticationException
+ public HttpURLConnection postForm(String url, Map params) throws MicrosoftAuthenticationException
{
return post(url, MIME_TYPE_URLENCODED_FORM, "*/*", buildParams(params));
}
public T postJson(String url, Object request, Class responseClass) throws MicrosoftAuthenticationException
{
- HttpsURLConnection connection = post(url, MIME_TYPE_JSON, MIME_TYPE_JSON, gson.toJson(request));
+ HttpURLConnection connection = post(url, MIME_TYPE_JSON, MIME_TYPE_JSON, gson.toJson(request));
return readJson(connection, responseClass);
}
@@ -76,9 +78,9 @@ public class HttpClient
}
- protected HttpsURLConnection post(String url, String contentType, String accept, String data) throws MicrosoftAuthenticationException
+ protected HttpURLConnection post(String url, String contentType, String accept, String data) throws MicrosoftAuthenticationException
{
- HttpsURLConnection connection = createConnection(url);
+ HttpURLConnection connection = createConnection(url);
connection.setDoOutput(true);
connection.addRequestProperty("Content-Type", contentType);
connection.addRequestProperty("Accept", accept);
@@ -93,12 +95,12 @@ public class HttpClient
return connection;
}
- protected T readJson(HttpsURLConnection connection, Class responseType) throws MicrosoftAuthenticationException
+ protected T readJson(HttpURLConnection connection, Class responseType) throws MicrosoftAuthenticationException
{
return gson.fromJson(readResponse(connection), responseType);
}
- protected String readResponse(HttpsURLConnection connection) throws MicrosoftAuthenticationException
+ protected String readResponse(HttpURLConnection connection) throws MicrosoftAuthenticationException
{
String redirection = connection.getHeaderField("Location");
if (redirection != null) {
@@ -106,19 +108,61 @@ public class HttpClient
}
StringBuilder response = new StringBuilder();
- try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
- String line;
- while ((line = br.readLine()) != null) {
- response.append(line).append('\n');
+
+ try
+ {
+ InputStream inputStream = connection.getInputStream();
+
+ // check if the url corresponds to a related authentication url
+ if(this.checkUrl(connection.getURL()))
+ {
+ // then patch the input stream like in the old MicrosoftPatchedHttpURLConnection class.
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ int n;
+ byte[] data = new byte[8192];
+
+ while ((n = inputStream.read(data, 0, data.length)) != -1) {
+ buffer.write(data, 0, n);
+ }
+
+ byte[] patched = buffer
+ .toString("UTF-8")
+ .replaceAll("integrity ?=", "integrity.disabled=")
+ .replaceAll("setAttribute\\(\"integrity\"", "setAttribute(\"integrity.disabled\"")
+ .getBytes(StandardCharsets.UTF_8);
+
+ inputStream = new ByteArrayInputStream(patched);
}
- } catch (IOException e) {
- throw new MicrosoftAuthenticationException(e);
+
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
+ String line;
+ while ((line = br.readLine()) != null) {
+ response.append(line).append('\n');
+ }
+ } catch (IOException e) {
+ throw new MicrosoftAuthenticationException(e);
+ }
+ } catch (IOException e)
+ {
+ throw new RuntimeException(e);
}
return response.toString();
}
- protected HttpsURLConnection followRedirects(HttpsURLConnection connection) throws MicrosoftAuthenticationException
+ private boolean checkUrl(URL url)
+ {
+ return (("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/oauth2/authorize"))
+ || ("login.live.com".equals(url.getHost()) && "/oauth20_authorize.srf".equals(url.getPath()))
+ || ("login.live.com".equals(url.getHost()) && "/ppsecure/post.srf".equals(url.getPath()))
+ || ("login.microsoftonline.com".equals(url.getHost()) && "/login.srf".equals(url.getPath()))
+ || ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/login"))
+ || ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/SAS/ProcessAuth"))
+ || ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/federation/oauth2"))
+ || ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/oauth2/v2.0/authorize")));
+ }
+
+ protected HttpURLConnection followRedirects(HttpURLConnection connection) throws MicrosoftAuthenticationException
{
String redirection = connection.getHeaderField("Location");
if (redirection != null) {
@@ -137,7 +181,7 @@ public class HttpClient
}
try {
- query.append(key).append('=').append(URLEncoder.encode(value, "UTF-8"));
+ query.append(key).append('=').append(URLEncoder.encode(value, StandardCharsets.UTF_8.name()));
} catch (UnsupportedEncodingException ignored) {
// Can't happen
}
@@ -146,17 +190,22 @@ public class HttpClient
return query.toString();
}
- protected HttpsURLConnection createConnection(String url) throws MicrosoftAuthenticationException
+ protected HttpURLConnection createConnection(String url) throws MicrosoftAuthenticationException
{
- HttpsURLConnection connection;
+ HttpURLConnection connection;
try {
- connection = (HttpsURLConnection) new URL(url).openConnection();
+ connection = (HttpURLConnection) new URL(url).openConnection(proxy);
} catch (IOException e) {
throw new MicrosoftAuthenticationException(e);
}
- String userAgent = "Mozilla/5.0 (XboxReplay; XboxLiveAuth/3.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
+ String userAgent = "Mozilla/5.0 (XboxReplay; XboxLiveAuth/3.0) " +
+ "AppleWebKit/537.36 (KHTML, like Gecko) " +
+ "Chrome/71.0.3578.98 " +
+ "Safari/537.36";
+ connection.setConnectTimeout(30 * 1000); // 30s
+ connection.setReadTimeout(60 * 1000); // 60s
connection.setRequestProperty("Accept-Language", "en-US");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("User-Agent", userAgent);
diff --git a/src/main/java/fr/litarvan/openauth/microsoft/LoginFrame.java b/src/main/java/fr/litarvan/openauth/microsoft/LoginFrame.java
new file mode 100644
index 00000000..9343c9ce
--- /dev/null
+++ b/src/main/java/fr/litarvan/openauth/microsoft/LoginFrame.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2015-2021 Adrien 'Litarvan' Navratil
+ *
+ * This file is part of OpenAuth.
+
+ * OpenAuth is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenAuth is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with OpenAuth. If not, see .
+ */
+package fr.litarvan.openauth.microsoft;
+
+import javafx.application.Platform;
+import javafx.embed.swing.JFXPanel;
+import javafx.scene.Scene;
+import javafx.scene.web.WebView;
+
+import javax.swing.*;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.concurrent.CompletableFuture;
+
+/*
+ * Had to use Swing here, JavaFX is meant to have an 'Application' but only one can exist.
+ * Creating one would break compatibility with JavaFX apps (which already have their own
+ * class), and letting the user do so would break compatibility with Swing apps.
+ *
+ * This method makes the frame compatible with pretty much everything.
+ */
+
+public class LoginFrame extends JFrame
+{
+ private CompletableFuture future;
+ private boolean completed;
+
+ public LoginFrame()
+ {
+ this.setTitle("Microsoft Authentication");
+ this.setSize(750, 750);
+ this.setLocationRelativeTo(null);
+ this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+ this.setContentPane(new JFXPanel());
+ }
+
+ public CompletableFuture start(String url)
+ {
+ if (this.future != null) {
+ return this.future;
+ }
+
+ this.future = new CompletableFuture<>();
+ this.addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if(!completed)
+ future.complete(null);
+ }
+ });
+
+ Platform.runLater(() -> this.init(url));
+ return this.future;
+ }
+
+ protected void init(String url)
+ {
+ WebView webView = new WebView();
+ JFXPanel content = (JFXPanel) this.getContentPane();
+
+ content.setScene(new Scene(webView, this.getWidth(), this.getHeight()));
+
+ webView.getEngine().locationProperty().addListener((observable, oldValue, newValue) -> {
+ if (newValue.contains("access_token")) {
+ this.future.complete(newValue);
+ completed = true;
+ this.dispose();
+ }
+ });
+ webView.getEngine().setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36");
+ webView.getEngine().load(url);
+
+ this.setVisible(true);
+ }
+}
diff --git a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthResult.java b/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthResult.java
index 2ae5b70e..e2cf84a1 100644
--- a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthResult.java
+++ b/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthResult.java
@@ -29,19 +29,23 @@ import fr.litarvan.openauth.microsoft.model.response.MinecraftProfile;
*
*
* @author Litarvan
- * @version 1.1.0
+ * @version 1.1.5
*/
public class MicrosoftAuthResult
{
private final MinecraftProfile profile;
private final String accessToken;
private final String refreshToken;
+ private final String xuid;
+ private final String clientId;
- public MicrosoftAuthResult(MinecraftProfile profile, String accessToken, String refreshToken)
+ public MicrosoftAuthResult(MinecraftProfile profile, String accessToken, String refreshToken, String xuid, String clientId)
{
this.profile = profile;
this.accessToken = accessToken;
this.refreshToken = refreshToken;
+ this.xuid = xuid;
+ this.clientId = clientId;
}
/**
@@ -68,4 +72,20 @@ public class MicrosoftAuthResult
{
return refreshToken;
}
+
+ /**
+ * @return The XUID of the player
+ */
+ public String getXuid()
+ {
+ return this.xuid;
+ }
+
+ /**
+ * @return The client ID of the player
+ */
+ public String getClientId()
+ {
+ return this.clientId;
+ }
}
diff --git a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthenticator.java b/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthenticator.java
index 78f70d72..f6110759 100644
--- a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthenticator.java
+++ b/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftAuthenticator.java
@@ -31,10 +31,10 @@ import fr.litarvan.openauth.microsoft.model.request.XboxLiveLoginProperties;
import fr.litarvan.openauth.microsoft.model.request.XboxLoginRequest;
import fr.litarvan.openauth.microsoft.model.response.*;
-import javax.net.ssl.HttpsURLConnection;
import java.io.UnsupportedEncodingException;
import java.net.*;
import java.util.Arrays;
+import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
@@ -47,17 +47,16 @@ import java.util.regex.Pattern;
* Microsoft authenticator
*
*
- * This class can be used to authenticate a player using its Microsoft account.
- * Use {@link #loginWithCredentials} to retrieve a player profile from his Microsoft credentials,
- * or loginWithWebview to use a webview with Microsoft login form.
+ * This class can be used to authenticate a player using its Microsoft account.
+ * Use {@link #loginWithCredentials} to retrieve a player profile from his Microsoft credentials,
+ * or {@link #loginWithWebview} to use a webview with Microsoft login form.
*
*
- * @version 1.1.0
* @author Litarvan
+ * @version 1.1.0
*/
-public class MicrosoftAuthenticator
-{
- public static final String MICROSOFT_AUTHORIZATION_ENDPOINT = "https://login.live.com/oauth20_authorize.srf";
+public class MicrosoftAuthenticator {
+ public static final String MICROSOFT_AUTHORIZATION_ENDPOINT = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize";
public static final String MICROSOFT_TOKEN_ENDPOINT = "https://login.live.com/oauth20_token.srf";
public static final String MICROSOFT_REDIRECTION_ENDPOINT = "https://login.live.com/oauth20_desktop.srf";
@@ -80,24 +79,19 @@ public class MicrosoftAuthenticator
private final HttpClient http;
- public MicrosoftAuthenticator()
- {
+ public MicrosoftAuthenticator() {
this.http = new HttpClient();
}
-
/**
* Logs in a player using its Microsoft account credentials, and retrieve its Minecraft profile
*
- * @param email Player Microsoft account e-mail
+ * @param email Player Microsoft account e-mail
* @param password Player Microsoft account password
- *
* @return The player Minecraft profile
- *
* @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
*/
- public MicrosoftAuthResult loginWithCredentials(String email, String password) throws MicrosoftAuthenticationException
- {
+ public MicrosoftAuthResult loginWithCredentials(String email, String password) throws MicrosoftAuthenticationException {
CookieHandler currentHandler = CookieHandler.getDefault();
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
@@ -106,7 +100,7 @@ public class MicrosoftAuthenticator
params.put("loginfmt", email);
params.put("passwd", password);
- HttpsURLConnection result;
+ HttpURLConnection result;
try {
PreAuthData authData = preAuthRequest();
@@ -118,9 +112,9 @@ public class MicrosoftAuthenticator
}
try {
- return loginWithTokens(extractTokens(result.getURL().toString()));
+ return loginWithTokens(extractTokens(result.getURL().toString()),true);
} catch (MicrosoftAuthenticationException e) {
- if (match("identity/confirm", http.readResponse(result)) != null) {
+ if (match("(identity/confirm)", http.readResponse(result)) != null) {
throw new MicrosoftAuthenticationException(
"User has enabled double-authentication or must allow sign-in on https://account.live.com/activity"
);
@@ -130,77 +124,54 @@ public class MicrosoftAuthenticator
}
}
-// /**
-// * Logs in a player using a webview to display Microsoft login page.
-// * This function blocks the current thread until the process is finished; this can cause your application to
-// * freeze. When calling from the JavaFX thread or any thread which must not be blocked, use
-// * {@link #loginWithAsyncWebview()}
-// *
-// * @return The player Minecraft profile
-// *
-// * @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
-// */
-// public MicrosoftAuthResult loginWithWebview() throws MicrosoftAuthenticationException
-// {
-// try {
-// return loginWithAsyncWebview().get();
-// } catch (InterruptedException | ExecutionException e) {
-// throw new MicrosoftAuthenticationException(e);
-// }
-// }
-
-// /**
-// * Logs in a player using a webview to display Microsoft login page. This function does not block the current thread.
-// *
-// * @return A future resolved by the player Minecraft profile
-// */
-// public CompletableFuture loginWithAsyncWebview()
-// {
-// String url = String.format("%s?%s", MICROSOFT_AUTHORIZATION_ENDPOINT, http.buildParams(getLoginParams()));
-// LoginFrame frame = new LoginFrame();
-//
-// return frame.start(url).thenApplyAsync(result -> {
-// try {
-// return loginWithTokens(extractTokens(result));
-// } catch (MicrosoftAuthenticationException e) {
-// throw new CompletionException(e);
-// }
-// });
-// }
-
- /*public MicrosoftAuthResult loginWithWebview() throws MicrosoftAuthenticationException
- {
+ /**
+ * Logs in a player using a webview to display Microsoft login page.
+ * This function blocks the current thread until the process is finished; this can cause your application to
+ * freeze. When calling from the JavaFX thread or any thread which must not be blocked, use
+ * {@link #loginWithAsyncWebview()}
+ *
+ * @return The player Minecraft profile
+ * @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
+ */
+ public MicrosoftAuthResult loginWithWebview() throws MicrosoftAuthenticationException {
try {
return loginWithAsyncWebview().get();
} catch (InterruptedException | ExecutionException e) {
throw new MicrosoftAuthenticationException(e);
}
- }*/
+ }
+
+ /**
+ * Logs in a player using a webview to display Microsoft login page. This function does not block the current thread.
+ *
+ * @return A future resolved by the player Minecraft profile
+ */
+ public CompletableFuture loginWithAsyncWebview() {
+ if(!System.getProperty("java.version").startsWith("1."))
+ CookieHandler.setDefault(new CookieManager());
- /*public CompletableFuture loginWithAsyncWebview()
- {
String url = String.format("%s?%s", MICROSOFT_AUTHORIZATION_ENDPOINT, http.buildParams(getLoginParams()));
LoginFrame frame = new LoginFrame();
+
return frame.start(url).thenApplyAsync(result -> {
try {
- return loginWithTokens(extractTokens(result));
+ if(result != null)
+ return loginWithTokens(extractTokens(result),true);
+ else return null;
} catch (MicrosoftAuthenticationException e) {
throw new CompletionException(e);
}
});
- }*/
+ }
/**
* Logs in a player using a Microsoft account refresh token retrieved earlier.
*
* @param refreshToken Player Microsoft account refresh token
- *
* @return The player Minecraft profile
- *
* @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
*/
- public MicrosoftAuthResult loginWithRefreshToken(String refreshToken) throws MicrosoftAuthenticationException
- {
+ public MicrosoftAuthResult loginWithRefreshToken(String refreshToken) throws MicrosoftAuthenticationException {
Map params = getLoginParams();
params.put("refresh_token", refreshToken);
params.put("grant_type", "refresh_token");
@@ -210,7 +181,7 @@ public class MicrosoftAuthenticator
params, MicrosoftRefreshResponse.class
);
- return loginWithTokens(new AuthTokens(response.getAccessToken() , response.getRefreshToken()));
+ return loginWithTokens(new AuthTokens(response.getAccessToken(), response.getRefreshToken()),true);
}
/**
@@ -218,13 +189,23 @@ public class MicrosoftAuthenticator
* If the token was retrieved using Azure AAD/MSAL, it should be prefixed with d=
*
* @param tokens Player Microsoft account tokens pair
- *
* @return The player Minecraft profile
- *
* @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
*/
- public MicrosoftAuthResult loginWithTokens(AuthTokens tokens) throws MicrosoftAuthenticationException
- {
+ public MicrosoftAuthResult loginWithTokens(AuthTokens tokens) throws MicrosoftAuthenticationException {
+ return loginWithTokens(tokens,true);
+ }
+
+ /**
+ * Logs in a player using a Microsoft account tokens retrieved earlier.
+ * If the token was retrieved using Azure AAD/MSAL, it should be prefixed with d=
+ *
+ * @param tokens Player Microsoft account tokens pair
+ * @param retrieveProfile Whether to retrieve the player profile
+ * @return The player Minecraft profile
+ * @throws MicrosoftAuthenticationException Thrown if one of the several HTTP requests failed at some point
+ */
+ public MicrosoftAuthResult loginWithTokens(AuthTokens tokens, boolean retrieveProfile) throws MicrosoftAuthenticationException {
XboxLoginResponse xboxLiveResponse = xboxLiveLogin(tokens.getAccessToken());
XboxLoginResponse xstsResponse = xstsLogin(xboxLiveResponse.getToken());
@@ -239,19 +220,26 @@ public class MicrosoftAuthenticator
if (Arrays.stream(storeResponse.getItems()).noneMatch(item -> item.getName().equals(MINECRAFT_STORE_IDENTIFIER))) {
throw new MicrosoftAuthenticationException("Player didn't buy Minecraft Java Edition or did not migrate its account");
}
+ MinecraftProfile profile = null;
+ if (retrieveProfile) {
+ profile = http.getJson(
+ MINECRAFT_PROFILE_ENDPOINT,
+ minecraftResponse.getAccessToken(),
+ MinecraftProfile.class
+ );
+ }
- MinecraftProfile profile = http.getJson(
- MINECRAFT_PROFILE_ENDPOINT,
+ return new MicrosoftAuthResult(
+ profile,
minecraftResponse.getAccessToken(),
- MinecraftProfile.class
+ tokens.getRefreshToken(),
+ xboxLiveResponse.getDisplayClaims().getUsers()[0].getUserHash(),
+ Base64.getEncoder().encodeToString(minecraftResponse.getUsername().getBytes())
);
-
- return new MicrosoftAuthResult(profile, minecraftResponse.getAccessToken(), tokens.getRefreshToken());
}
- protected PreAuthData preAuthRequest() throws MicrosoftAuthenticationException
- {
+ protected PreAuthData preAuthRequest() throws MicrosoftAuthenticationException {
Map params = getLoginParams();
params.put("display", "touch");
params.put("locale", "en");
@@ -264,8 +252,7 @@ public class MicrosoftAuthenticator
return new PreAuthData(ppft, urlPost);
}
- protected XboxLoginResponse xboxLiveLogin(String accessToken) throws MicrosoftAuthenticationException
- {
+ protected XboxLoginResponse xboxLiveLogin(String accessToken) throws MicrosoftAuthenticationException {
XboxLiveLoginProperties properties = new XboxLiveLoginProperties("RPS", XBOX_LIVE_AUTH_HOST, accessToken);
XboxLoginRequest request = new XboxLoginRequest<>(
properties, XBOX_LIVE_AUTH_RELAY, "JWT"
@@ -274,9 +261,8 @@ public class MicrosoftAuthenticator
return http.postJson(XBOX_LIVE_AUTHORIZATION_ENDPOINT, request, XboxLoginResponse.class);
}
- protected XboxLoginResponse xstsLogin(String xboxLiveToken) throws MicrosoftAuthenticationException
- {
- XSTSAuthorizationProperties properties = new XSTSAuthorizationProperties("RETAIL", new String[] { xboxLiveToken });
+ protected XboxLoginResponse xstsLogin(String xboxLiveToken) throws MicrosoftAuthenticationException {
+ XSTSAuthorizationProperties properties = new XSTSAuthorizationProperties("RETAIL", new String[]{xboxLiveToken});
XboxLoginRequest request = new XboxLoginRequest<>(
properties, MINECRAFT_AUTH_RELAY, "JWT"
);
@@ -284,15 +270,13 @@ public class MicrosoftAuthenticator
return http.postJson(XSTS_AUTHORIZATION_ENDPOINT, request, XboxLoginResponse.class);
}
- protected MinecraftLoginResponse minecraftLogin(String userHash, String xstsToken) throws MicrosoftAuthenticationException
- {
+ protected MinecraftLoginResponse minecraftLogin(String userHash, String xstsToken) throws MicrosoftAuthenticationException {
MinecraftLoginRequest request = new MinecraftLoginRequest(String.format("XBL3.0 x=%s;%s", userHash, xstsToken));
return http.postJson(MINECRAFT_AUTH_ENDPOINT, request, MinecraftLoginResponse.class);
}
- protected Map getLoginParams()
- {
+ protected Map getLoginParams() {
Map params = new HashMap<>();
params.put("client_id", XBOX_LIVE_CLIENT_ID);
params.put("redirect_uri", MICROSOFT_REDIRECTION_ENDPOINT);
@@ -302,13 +286,11 @@ public class MicrosoftAuthenticator
return params;
}
- protected AuthTokens extractTokens(String url) throws MicrosoftAuthenticationException
- {
+ protected AuthTokens extractTokens(String url) throws MicrosoftAuthenticationException {
return new AuthTokens(extractValue(url, "access_token"), extractValue(url, "refresh_token"));
}
- protected String extractValue(String url, String key) throws MicrosoftAuthenticationException
- {
+ protected String extractValue(String url, String key) throws MicrosoftAuthenticationException {
String matched = match(key + "=([^&]*)", url);
if (matched == null) {
throw new MicrosoftAuthenticationException("Invalid credentials or tokens");
@@ -321,8 +303,7 @@ public class MicrosoftAuthenticator
}
}
- protected String match(String regex, String content)
- {
+ protected String match(String regex, String content) {
Matcher matcher = Pattern.compile(regex).matcher(content);
if (!matcher.find()) {
return null;
diff --git a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftPatchedHttpURLConnection.java b/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftPatchedHttpURLConnection.java
deleted file mode 100644
index 42d07e97..00000000
--- a/src/main/java/fr/litarvan/openauth/microsoft/MicrosoftPatchedHttpURLConnection.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package fr.litarvan.openauth.microsoft;
-
-/*
- * Thanks a lot to Mickaël Guessant for this trick
- *
- * https://github.com/mguessan
- * https://github.com/mguessan/davmail/blob/master/src/java/davmail/exchange/auth/O365InteractiveAuthenticatorFrame.java
- */
-
-import java.io.*;
-import java.net.*;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
-/**
- * HttpURLConnection Microsoft-patched wrapped
- *
- *
- * This class serves as HttpURLConnection, but actually wraps a real one and
- * patch its input to disable Microsoft meta integrity check, which can fail
- * on Java >=11 on non-macOS platforms.
- *
- *
- * @version 1.1.1
- * @author Litarvan
- */
-public class MicrosoftPatchedHttpURLConnection extends HttpURLConnection
-{
- private final HttpURLConnection inner;
-
- public MicrosoftPatchedHttpURLConnection(URL url, HttpURLConnection inner)
- {
- super(url);
-
- this.inner = inner;
- }
-
- @Override
- public void setRequestMethod(String method) throws ProtocolException
- {
- this.inner.setRequestMethod(method);
- }
-
- @Override
- public void setInstanceFollowRedirects(boolean followRedirects)
- {
- this.inner.setInstanceFollowRedirects(followRedirects);
- }
-
- @Override
- public boolean getInstanceFollowRedirects()
- {
- return this.inner.getInstanceFollowRedirects();
- }
-
- @Override
- public String getRequestMethod()
- {
- return this.inner.getRequestMethod();
- }
-
- @Override
- public int getResponseCode() throws IOException
- {
- return this.inner.getResponseCode();
- }
-
- @Override
- public String getResponseMessage() throws IOException
- {
- return this.inner.getResponseMessage();
- }
-
- @Override
- public Map> getHeaderFields()
- {
- return this.inner.getHeaderFields();
- }
-
- @Override
- public String getHeaderField(String name)
- {
- return this.inner.getHeaderField(name);
- }
-
- @Override
- public String getHeaderField(int n)
- {
- return this.inner.getHeaderField(n);
- }
-
- @Override
- public void disconnect()
- {
- this.inner.disconnect();
- }
-
- @Override
- public void setDoOutput(boolean dooutput)
- {
- this.inner.setDoOutput(dooutput);
- }
-
- @Override
- public boolean usingProxy()
- {
- return this.inner.usingProxy();
- }
-
- @Override
- public void connect() throws IOException
- {
- this.inner.connect();
- }
-
- @Override
- public InputStream getInputStream() throws IOException
- {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- try (InputStream in = this.inner.getInputStream()) {
- int n;
- byte[] data = new byte[8192];
-
- while ((n = in.read(data, 0, data.length)) != -1) {
- buffer.write(data, 0, n);
- }
- }
-
- byte[] patched = buffer
- .toString("UTF-8")
- .replaceAll("integrity ?=", "integrity.disabled=")
- .replaceAll("setAttribute\\(\"integrity\"", "setAttribute(\"integrity.disabled\"")
- .getBytes(StandardCharsets.UTF_8);
-
- return new ByteArrayInputStream(patched);
- }
-
- @Override
- public OutputStream getOutputStream() throws IOException
- {
- return this.inner.getOutputStream();
- }
-
- @Override
- public InputStream getErrorStream()
- {
- return this.inner.getErrorStream();
- }
-}
diff --git a/src/main/java/net/minecraft/client/Minecraft.java b/src/main/java/net/minecraft/client/Minecraft.java
index 75730886..7baab926 100644
--- a/src/main/java/net/minecraft/client/Minecraft.java
+++ b/src/main/java/net/minecraft/client/Minecraft.java
@@ -197,6 +197,7 @@ import rip.athena.client.events.types.render.RenderType;
import rip.athena.client.gui.menu.AthenaMenu;
import rip.athena.client.modules.impl.fpssettings.OptimizerMod;
import rip.athena.client.modules.impl.mods.HitDelayFix;
+import rip.athena.client.modules.impl.render.MotionBlur;
public class Minecraft implements IThreadListener, IPlayerUsage
{
@@ -325,7 +326,7 @@ public class Minecraft implements IThreadListener, IPlayerUsage
private IReloadableResourceManager mcResourceManager;
public final IMetadataSerializer metadataSerializer_ = new IMetadataSerializer();
private final List defaultResourcePacks = Lists.newArrayList();
- private final DefaultResourcePack mcDefaultResourcePack;
+ public final DefaultResourcePack mcDefaultResourcePack;
private ResourcePackRepository mcResourcePackRepository;
private LanguageManager mcLanguageManager;
private IStream stream;
@@ -1224,6 +1225,11 @@ public class Minecraft implements IThreadListener, IPlayerUsage
public void updateDisplay()
{
+ if(Athena.INSTANCE.getModuleManager().get(MotionBlur.class).isToggled()) {
+ if(Minecraft.getMinecraft().thePlayer != null) {
+ MotionBlur.createAccumulation();
+ }
+ }
this.mcProfiler.startSection("display_update");
Display.update();
this.mcProfiler.endSection();
diff --git a/src/main/java/net/minecraft/client/renderer/ThreadDownloadImageData.java b/src/main/java/net/minecraft/client/renderer/ThreadDownloadImageData.java
index ee6b1b46..d8b8b41a 100644
--- a/src/main/java/net/minecraft/client/renderer/ThreadDownloadImageData.java
+++ b/src/main/java/net/minecraft/client/renderer/ThreadDownloadImageData.java
@@ -23,16 +23,19 @@ import optifine.HttpResponse;
import org.apache.commons.io.FileUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import rip.athena.client.Athena;
+import rip.athena.client.modules.impl.fpssettings.OptimizerMod;
+import rip.athena.client.modules.impl.fpssettings.impl.ThreadDownloadImageDataHook;
public class ThreadDownloadImageData extends SimpleTexture
{
- private static final Logger logger = LogManager.getLogger();
+ public static final Logger logger = LogManager.getLogger();
private static final AtomicInteger threadDownloadCounter = new AtomicInteger(0);
- private final File cacheFile;
+ public final File cacheFile;
private final String imageUrl;
- private final IImageBuffer imageBuffer;
- private BufferedImage bufferedImage;
- private Thread imageThread;
+ public final IImageBuffer imageBuffer;
+ public BufferedImage bufferedImage;
+ public Thread imageThread;
private boolean textureUploaded;
private static final String __OBFID = "CL_00001049";
public Boolean imageFound = null;
@@ -83,9 +86,21 @@ public class ThreadDownloadImageData extends SimpleTexture
{
if (this.bufferedImage == null && this.textureLocation != null)
{
+ OptimizerMod mod = (OptimizerMod) Athena.INSTANCE.getModuleManager().get(OptimizerMod.class);
+
+ if(mod.BETTER_SKIN_LOADING) {
+ ThreadDownloadImageDataHook.getImprovedCacheLoading(this);
+ return;
+ }
+
super.loadTexture(resourceManager);
}
+ /*if (this.bufferedImage == null && this.textureLocation != null)
+ {
+ super.loadTexture(resourceManager);
+ }*/
+
if (this.imageThread == null)
{
if (this.cacheFile != null && this.cacheFile.isFile())
@@ -116,7 +131,7 @@ public class ThreadDownloadImageData extends SimpleTexture
}
}
- protected void loadTextureFromServer()
+ public void loadTextureFromServer()
{
this.imageThread = new Thread("Texture Downloader #" + threadDownloadCounter.incrementAndGet())
{
diff --git a/src/main/java/net/minecraft/client/renderer/entity/RenderEntityItem.java b/src/main/java/net/minecraft/client/renderer/entity/RenderEntityItem.java
index e2e39fbf..a0382c8d 100644
--- a/src/main/java/net/minecraft/client/renderer/entity/RenderEntityItem.java
+++ b/src/main/java/net/minecraft/client/renderer/entity/RenderEntityItem.java
@@ -10,8 +10,10 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
import rip.athena.client.Athena;
import rip.athena.client.modules.impl.fpssettings.OptimizerMod;
+import rip.athena.client.modules.impl.mods.ItemPhysics;
public class RenderEntityItem extends Render
{
@@ -115,6 +117,13 @@ public class RenderEntityItem extends Render
IBakedModel ibakedmodel = this.itemRenderer.getItemModelMesher().getItemModel(itemstack);
int i = this.func_177077_a(entity, x, y, z, partialTicks, ibakedmodel);
+ int rotation = (int) (((System.nanoTime() / 3000000) + entity.getEntityId() * 10000) % 360);
+ if(Athena.INSTANCE.getModuleManager().get(ItemPhysics.class).isToggled()) {
+ if (entity.onGround) rotation = 90;
+ GL11.glRotatef(rotation / 2, 0, 1, 0);
+ GL11.glRotatef(rotation, 1, 0, 0);
+ }
+
for (int j = 0; j < i; ++j)
{
if (ibakedmodel.isGui3d())
diff --git a/src/main/java/net/minecraft/client/renderer/texture/TextureMap.java b/src/main/java/net/minecraft/client/renderer/texture/TextureMap.java
index a1c1d9b4..670a11b6 100644
--- a/src/main/java/net/minecraft/client/renderer/texture/TextureMap.java
+++ b/src/main/java/net/minecraft/client/renderer/texture/TextureMap.java
@@ -35,6 +35,9 @@ import optifine.Config;
import optifine.ConnectedTextures;
import optifine.Reflector;
import optifine.TextureUtils;
+import rip.athena.client.Athena;
+import rip.athena.client.events.types.client.ClientTickEvent;
+import rip.athena.client.events.types.client.SwitchTextureEvent;
import shadersmod.client.ShadersTex;
public class TextureMap extends AbstractTexture implements ITickableTextureObject
@@ -139,6 +142,10 @@ public class TextureMap extends AbstractTexture implements ITickableTextureObjec
public void loadTextureAtlas(IResourceManager resourceManager)
{
+ if(!Athena.INSTANCE.getEventBus().post(new SwitchTextureEvent())) {
+ return;
+ }
+
Config.dbg("Multitexture: " + Config.isMultiTexture());
if (Config.isMultiTexture())
diff --git a/src/main/java/net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer.java b/src/main/java/net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer.java
index a65f0048..5aa7a35d 100644
--- a/src/main/java/net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer.java
+++ b/src/main/java/net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer.java
@@ -5,6 +5,8 @@ import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.MobSpawnerBaseLogic;
import net.minecraft.tileentity.TileEntityMobSpawner;
+import rip.athena.client.Athena;
+import rip.athena.client.modules.impl.fpssettings.OptimizerMod;
public class TileEntityMobSpawnerRenderer extends TileEntitySpecialRenderer
{
@@ -21,6 +23,9 @@ public class TileEntityMobSpawnerRenderer extends TileEntitySpecialRenderer actionButton.mouseClicked(mouseX, mouseY, button));
if (hoveringMicrosoft && button == 0) {
+
new Thread(() -> {
MicrosoftAuthenticator authenticator = new MicrosoftAuthenticator();
- /*try {
- MicrosoftAuthResult acc = authenticator.loginWithWebview();
- Athena.INSTANCE.getAccountManager().getAccounts().add(new Account(AccountType.MICROSOFT, acc.getProfile().getName(), acc.getProfile().getId(), acc.getRefreshToken()));
+
+ TextField username = textFields.get(0);
+ String email = username.getText();
+ String password = textFields.get(1).getText();
+ if (email.contains(":")) {
+ String[] split = email.split(":");
+ if (split.length != 2) return;
+ email = split[0];
+ password = split[1];
+ }
+
+ try {
+ Athena.INSTANCE.getLog().info(email + password);
+ MicrosoftAuthResult acc = authenticator.loginWithCredentials(email, password);
+
Minecraft.getMinecraft().session = new Session(acc.getProfile().getName(), acc.getProfile().getId(), acc.getAccessToken(), "legacy");
+
+ status = "Logged into " + acc.getProfile().getName();
+ Athena.INSTANCE.getAccountManager().getAccounts().add(new Account(AccountType.MICROSOFT, acc.getProfile().getName(), acc.getProfile().getId(), acc.getRefreshToken()));
+ Athena.INSTANCE.getAccountManager().setCurrentAccount(Athena.INSTANCE.getAccountManager().getAccountByUsername(acc.getProfile().getName()));
Athena.INSTANCE.getAccountManager().isFirstLogin = false;
+ Athena.INSTANCE.getAccountManager().save();
+ Athena.INSTANCE.getLog().info("Success: Logged into " + acc.getProfile().getName());
+
} catch (MicrosoftAuthenticationException e) {
e.printStackTrace();
- }*/
+ }
+
+ resetTextFields();
}).start();
- resetTextFields();
}
}
diff --git a/src/main/java/rip/athena/client/modules/impl/fpssettings/OptimizerMod.java b/src/main/java/rip/athena/client/modules/impl/fpssettings/OptimizerMod.java
index bfd5199f..913d3ddc 100644
--- a/src/main/java/rip/athena/client/modules/impl/fpssettings/OptimizerMod.java
+++ b/src/main/java/rip/athena/client/modules/impl/fpssettings/OptimizerMod.java
@@ -19,16 +19,6 @@ public class OptimizerMod extends Module {
public boolean DONT_CULL_PLAYER_NAMETAGS = true;
public boolean DONT_CULL_ENTITY_NAMETAGS = true;
public boolean DONT_CULL_ARMOR_STANDS_NAMETAGS = true;
- public boolean PARTICLE_CULLING = true;
- public boolean ITEM_SEARCHING = true;
- public boolean OPTIMISED_ITEM_RENDERER = true;
- public boolean OPTIMISED_FONT_RENDERER = true;
- public boolean CACHED_FONT_DATA = true;
-
- @ConfigValue.Boolean(name = "Low animation tick", description = "Renders animations slower for better performance.")
- public boolean LOW_ANIMATION_TICK = true;
- public boolean BATCH_MODEL_RENDERING = true;
- public boolean DISABLE_GL_ERROR_CHECKING = true;
@ConfigValue.Boolean(name = "Static particle color", description = "Makes particles render at full brightness.")
public boolean STATIC_PARTICLE_COLOR = true;
@@ -45,12 +35,6 @@ public class OptimizerMod extends Module {
@ConfigValue.Integer(name = "Chunk updates per second", description = "Lower value, better fps.", min = 1, max = 250)
public int CHUNK_UPDATE_LIMITER = 50;
- @ConfigValue.Boolean(name = "Remove text shadows", description = "Removes all text shadows.")
- public boolean REMOVE_TEXT_SHADOWS= false;
-
- @ConfigValue.Boolean(name = "Remove chat background", description = "Removes the chat background.")
- public boolean REMOVE_CHAT_BACKGROUND = false;
-
@ConfigValue.Boolean(name = "Remove mob spawner entity", description = "Removes the spinning entity inside of mob spawners.")
public boolean REMOVE_ENTITY_SPAWNER = true;
@@ -58,33 +42,9 @@ public class OptimizerMod extends Module {
public boolean STATIC_DROPS = true;
public boolean FAST_WORLD_LOADING = true;
- @ConfigValue.Boolean(name = "Remove item glint", description = "Removes the enchantment glint from all items.")
- public boolean REMOVE_ITEM_GLINT = true;
-
- @ConfigValue.Boolean(name = "Remove Piston Extentions", description = "Removes Piston Extentions Animation.")
- public static boolean REMOVE_PISTON_EXTENTION = false;
-
- @ConfigValue.Boolean(name = "Disable TNT Flashing", description = "Disables Prime TNT Flashing to help FPS")
- public boolean noLagTNTFlash = true;
-
- @ConfigValue.Boolean(name = "Remove TNT", description = "Removes all primed tnt blocks.")
- public boolean REMOVE_TNT = false;
-
- @ConfigValue.Boolean(name = "Disable TNT Expand", description = "Disables Prime TNT Expanding to help FPS")
- public boolean noLagTNTExpand = true;
-
- @ConfigValue.Boolean(name = "Merge TNT", description = "If Prime TNT is in the same block, render it as 1 Prime TNT")
- public boolean noLagStackTNT = true;
-
- @ConfigValue.Boolean(name = "Holograms Render", description = "Disables the render of holograms")
- public boolean noLagHolograms = true;
-
@ConfigValue.Boolean(name = "Custom Cane Renderer", description = "Only render cane in a certain radius to help FPS")
public boolean noLagCane = false;
- @ConfigValue.Boolean(name = "Liquid Vision", description = "Makes it clear in water an lava")
- public boolean noLagLiquidVision = false;
-
@ConfigValue.Boolean(name = "Remove Water", description = "Removes the render of water")
public static boolean noLagClearWater = false;
@@ -94,9 +54,6 @@ public class OptimizerMod extends Module {
@ConfigValue.Integer(name = "Entity Render Distance", min = 1, max = 64)
public int noLagEntityDistance = 32;
- @ConfigValue.Boolean(name = "Disable fog", description = "Disables fog")
- public boolean noFog = true;
-
@ConfigValue.Boolean(name = "Better Chests", description = "Disable render of knob/lid/reduce size of chests")
public boolean noBetterChests = false;
diff --git a/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/EntityCulling.java b/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/EntityCulling.java
index f6ed0a22..2dfdec9c 100644
--- a/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/EntityCulling.java
+++ b/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/EntityCulling.java
@@ -196,7 +196,7 @@ public class EntityCulling {
}
@SubscribeEvent
- public void tick(ClientTickEvent event) {
+ public void onTick(ClientTickEvent event) {
WorldClient theWorld = Minecraft.getMinecraft().theWorld;
if (theWorld == null)
return;
diff --git a/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/ThreadDownloadImageDataHook.java b/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/ThreadDownloadImageDataHook.java
new file mode 100644
index 00000000..5a979896
--- /dev/null
+++ b/src/main/java/rip/athena/client/modules/impl/fpssettings/impl/ThreadDownloadImageDataHook.java
@@ -0,0 +1,36 @@
+package rip.athena.client.modules.impl.fpssettings.impl;
+
+import net.minecraft.client.renderer.ThreadDownloadImageData;
+import net.minecraft.client.renderer.texture.SimpleTexture;
+import net.minecraft.util.ResourceLocation;
+
+import javax.imageio.ImageIO;
+import java.io.IOException;
+
+public class ThreadDownloadImageDataHook extends SimpleTexture {
+ public ThreadDownloadImageDataHook(ResourceLocation textureResourceLocation) {
+ super(textureResourceLocation);
+ }
+
+ public static void getImprovedCacheLoading(ThreadDownloadImageData data) {
+ new Thread(() -> {
+ if (data.imageThread == null) {
+ if (data.cacheFile != null && data.cacheFile.isFile()) {
+ ThreadDownloadImageData.logger.debug("Loading http texture from local cache ({})",
+ new Object[] { data.cacheFile });
+ try {
+ data.bufferedImage = ImageIO.read(data.cacheFile);
+ if (data.imageBuffer != null) {
+ data.setBufferedImage(data.imageBuffer.parseUserSkin(data.bufferedImage));
+ }
+ } catch (IOException ioexception) {
+ ThreadDownloadImageData.logger.error("Couldn't load skin " + data.cacheFile, ioexception);
+ data.loadTextureFromServer();
+ }
+ } else {
+ data.loadTextureFromServer();
+ }
+ }
+ }).start();
+ }
+}
diff --git a/src/main/java/rip/athena/client/modules/impl/mods/ItemPhysics.java b/src/main/java/rip/athena/client/modules/impl/mods/ItemPhysics.java
new file mode 100644
index 00000000..74649be0
--- /dev/null
+++ b/src/main/java/rip/athena/client/modules/impl/mods/ItemPhysics.java
@@ -0,0 +1,16 @@
+package rip.athena.client.modules.impl.mods;
+
+import rip.athena.client.modules.Category;
+import rip.athena.client.modules.Module;
+
+/**
+ * @author Athena Development
+ * @project Athena-Client
+ * @date 6/12/2023
+ */
+public class ItemPhysics extends Module {
+
+ public ItemPhysics() {
+ super("ItemPhysics", Category.MODS);
+ }
+}
diff --git a/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java b/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java
index 175bdcbc..d76cf29d 100644
--- a/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java
+++ b/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java
@@ -71,7 +71,7 @@ public class FPSMod extends Module {
}
public void render() {
- if (this.mc.gameSettings.showDebugInfo) {
+ if (mc.gameSettings.showDebugInfo) {
return;
}
diff --git a/src/main/java/rip/athena/client/modules/impl/render/MotionBlur.java b/src/main/java/rip/athena/client/modules/impl/render/MotionBlur.java
index 48419749..7cd13d1b 100644
--- a/src/main/java/rip/athena/client/modules/impl/render/MotionBlur.java
+++ b/src/main/java/rip/athena/client/modules/impl/render/MotionBlur.java
@@ -43,16 +43,49 @@ import static net.minecraft.client.resources.SimpleReloadableResourceManager.dom
*/
public class MotionBlur extends Module {
- @ConfigValue.Double(name = "Blur Amount", min = 1.0, max = 10)
- private double amount = 2.0D;
+ @ConfigValue.Integer(name = "Amount", min = 1, max = 10)
+ public static int amount = 1;
+
+ public static float f;
public MotionBlur() {
super("Motion Blur", Category.RENDER, "Athena/gui/mods/motionblur.png");
}
- @SubscribeEvent
- public void onRender(RenderEvent event) {
+ public static void createAccumulation() {
+ float f = getAccumulationValue();
+ GL11.glAccum(GL11.GL_MULT, f);
+ GL11.glAccum(GL11.GL_ACCUM, 1.0F - f);
+ GL11.glAccum(GL11.GL_RETURN, 1.0F);
+ }
+ public static float getMultiplier() {
+ return amount * 10;
+ }
+
+ public static float getAccumulationValue() {
+ f = getMultiplier() * 10.0F;
+ long lastTimestampInGame = System.currentTimeMillis();
+
+ if (f > 996.0F) {
+ f = 996.0F;
+ }
+
+ if (f > 990.0F) {
+ f = 990.0F;
+ }
+
+ long i = System.currentTimeMillis() - lastTimestampInGame;
+
+ if (i > 10000L) {
+ return 0.0F;
+ } else {
+ if (f < 0.0F) {
+ f = 0.0F;
+ }
+
+ return f / 1000.0F;
+ }
}
@Override
diff --git a/src/main/java/rip/athena/client/modules/impl/render/PackDisplay.java b/src/main/java/rip/athena/client/modules/impl/render/PackDisplay.java
new file mode 100644
index 00000000..0b5acfeb
--- /dev/null
+++ b/src/main/java/rip/athena/client/modules/impl/render/PackDisplay.java
@@ -0,0 +1,190 @@
+package rip.athena.client.modules.impl.render;
+
+import net.minecraft.client.renderer.texture.DynamicTexture;
+import net.minecraft.client.renderer.texture.TextureUtil;
+import net.minecraft.client.resources.IResourcePack;
+import net.minecraft.client.resources.ResourcePackRepository;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+import rip.athena.client.Athena;
+import rip.athena.client.config.ConfigValue;
+import rip.athena.client.events.SubscribeEvent;
+import rip.athena.client.events.types.client.SwitchTextureEvent;
+import rip.athena.client.font.FontManager;
+import rip.athena.client.gui.hud.HUDElement;
+import rip.athena.client.modules.Category;
+import rip.athena.client.modules.Module;
+import rip.athena.client.utils.render.ColorUtil;
+import rip.athena.client.utils.render.DrawUtils;
+import rip.athena.client.utils.render.RoundedUtils;
+
+import java.awt.*;
+import java.util.List;
+
+/**
+ * @author Athena Development
+ * @project Athena-Client
+ * @date 6/12/2023
+ */
+public class PackDisplay extends Module {
+
+ @ConfigValue.List(name = "Display Mode", values = {"Circle", "Modern", "Fade", "Old"}, description = "Chose display of background")
+ private String backgroundMode = "Circle";
+
+ @ConfigValue.Boolean(name = "Background")
+ private boolean backGround = true;
+
+ @ConfigValue.Color(name = "Background Color")
+ private Color background = new Color(0, 0, 0, 150);
+
+ @ConfigValue.Color(name = "Color")
+ private Color color = Color.WHITE;
+
+ @ConfigValue.Boolean(name = "Custom Font")
+ private boolean customFont = false;
+
+ @ConfigValue.Boolean(name = "Static Chroma")
+ private boolean isUsingStaticChroma = false;
+
+ @ConfigValue.Boolean(name = "Wave Chroma")
+ private boolean isUsingWaveChroma = false;
+
+ private IResourcePack pack;
+ private ResourceLocation currentPack;
+ private List packs;
+ ResourcePackRepository resourcePackRepository;
+
+ private HUDElement hud;
+ private int width = 66;
+ private int height = 48;
+
+ public PackDisplay() {
+ super("PackDisplay", Category.RENDER);
+
+ hud = new HUDElement("packdisplay", width, height) {
+ @Override
+ public void onRender() {
+ render();
+ }
+ };
+
+ hud.setX(1);
+ hud.setY(175);
+
+ addHUD(hud);
+ }
+
+ public void render() {
+ if (mc.gameSettings.showDebugInfo) {
+ return;
+ }
+
+ GL11.glPushMatrix();
+
+ resourcePackRepository = mc.getResourcePackRepository();
+ packs = resourcePackRepository.getRepositoryEntries();
+
+ if(pack == null) {
+ pack = this.getCurrentPack();
+ loadTexture();
+ }
+
+ int width = hud.getWidth();
+ int height = hud.getHeight();
+
+ if(backGround) {
+ if(backgroundMode.equalsIgnoreCase("Modern")) {
+ if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) {
+ RoundedUtils.drawGradientRound(hud.getX() - 10, hud.getY(), hud.getWidth() + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(this.convertNormalText(pack.getPackName())) / 2, hud.getHeight() + 20, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor());
+ } else {
+ RoundedUtils.drawGradientRound(hud.getX() - 10, hud.getY(), hud.getWidth() + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(this.convertNormalText(pack.getPackName())) / 2, hud.getHeight() + 20,6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
+ }
+ } else if (backgroundMode.equalsIgnoreCase("Circle")) {
+ RoundedUtils.drawGradientRound(hud.getX() - 10, hud.getY(), hud.getWidth() + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(this.convertNormalText(pack.getPackName())) / 2, hud.getHeight() + 20, 6, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
+ } else if (backgroundMode.equalsIgnoreCase("Fade")) {
+ RoundedUtils.drawRoundedRect(hud.getX() - 10, hud.getY(), hud.getX() + width + rip.athena.client.utils.font.FontManager.getProductSansRegular(20).width(this.convertNormalText(pack.getPackName())) / 2, hud.getY() + height + 20, 12.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB());
+ } else {
+ RoundedUtils.drawRoundedRect(hud.getX() - 10, hud.getY(), hud.getX() + width + rip.athena.client.utils.font.FontManager.getProductSansRegular(20).width(this.convertNormalText(pack.getPackName())) / 2, hud.getY() + height + 20, 12,background.getRGB());
+ }
+ }
+
+ hud.setHeight(hud.getWidth() + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(this.convertNormalText(pack.getPackName())) / 2);
+ hud.setWidth(hud.getHeight() + 20);
+
+ mc.getTextureManager().bindTexture(this.currentPack);
+ RoundedUtils.drawRoundTextured(hud.getX(), hud.getY() + 4.5F, 29, 29, 2, 225);
+
+ float posY = hud.getY() + 10;
+ float posX = hud.getX() + 33;
+
+ if(customFont) {
+ hud.setWidth((int)rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(this.convertNormalText(pack.getPackName())) + 16);
+ hud.setHeight((int) FontManager.baloo17.getHeight(this.convertNormalText(pack.getPackName())) + 7);
+
+ if(isUsingStaticChroma) {
+ DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), this.convertNormalText(pack.getPackName()), (int) (posX) + 1, (int)posY + 2,true, true);
+ } else if(isUsingWaveChroma) {
+ DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), this.convertNormalText(pack.getPackName()), (int) (posX + 1), (int)posY + 2, false, true);
+ } else {
+ rip.athena.client.utils.font.FontManager.getProductSansRegular(25).drawString(this.convertNormalText(pack.getPackName()),(int) (posX) + 1, (int)posY + 2, color.getRGB());
+
+ //rip.athena.client.utils.font.FontManager.getPoppinsRegular(25).drawString(string,(int) (posX), (int)posY + 3, color.getRGB());
+ //rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY + 1, color.getRGB());
+ }
+ } else {
+ hud.setWidth(mc.fontRendererObj.getStringWidth(this.convertNormalText(pack.getPackName())) + 16);
+ hud.setHeight(mc.fontRendererObj.FONT_HEIGHT + 9);
+
+ if(isUsingStaticChroma) {
+ DrawUtils.drawChromaString(this.convertNormalText(pack.getPackName()), posX, posY + 3, true ,true);
+ } else if(isUsingWaveChroma) {
+ DrawUtils.drawChromaString(this.convertNormalText(pack.getPackName()), posX, posY + 3, false ,true);
+ } else {
+ mc.fontRendererObj.drawStringWithShadow(this.convertNormalText(pack.getPackName()), posX, posY + 3, color.getRGB());
+ }
+ }
+ GL11.glColor3f(1, 1, 1);
+ GL11.glPopMatrix();
+ }
+
+ @SubscribeEvent
+ public void onSwitchTexture(SwitchTextureEvent event) {
+ packs = resourcePackRepository.getRepositoryEntries();
+ pack = this.getCurrentPack();
+ this.loadTexture();
+ }
+
+ private String convertNormalText(String text) {
+ return text.replaceAll("\\u00a7" + "1", "").replaceAll("\\u00a7" + "2", "").replaceAll("\\u00a7" + "3", "")
+ .replaceAll("\\u00a7" + "4", "").replaceAll("\\u00a7" + "5", "").replaceAll("\\u00a7" + "6", "")
+ .replaceAll("\\u00a7" + "7", "").replaceAll("\\u00a7" + "8", "").replaceAll("\\u00a7" + "9", "")
+ .replaceAll("\\u00a7" + "a", "").replaceAll("\\u00a7" + "b", "").replaceAll("\\u00a7" + "c", "")
+ .replaceAll("\\u00a7" + "d", "").replaceAll("\\u00a7" + "e", "").replaceAll("\\u00a7" + "f", "")
+ .replaceAll("\\u00a7" + "g", "").replaceAll("\\u00a7" + "k", "").replaceAll("\\u00a7" + "l", "")
+ .replaceAll("\\u00a7" + "m", "").replaceAll("\\u00a7" + "n", "").replaceAll("\\u00a7" + "o", "")
+ .replaceAll("\\u00a7" + "r", "").replace(".zip", "");
+ }
+
+ private void loadTexture() {
+ DynamicTexture dynamicTexture;
+ try {
+ dynamicTexture = new DynamicTexture(getCurrentPack().getPackImage());
+ } catch (Exception e) {
+ dynamicTexture = TextureUtil.missingTexture;
+ }
+ this.currentPack = mc.getTextureManager().getDynamicTextureLocation("texturepackicon", dynamicTexture);
+ }
+
+ private IResourcePack getCurrentPack() {
+ if (packs != null && !packs.isEmpty()) {
+ final IResourcePack last = packs.get(packs.size() - 1).getResourcePack();
+ return last;
+ }
+ return mc.mcDefaultResourcePack;
+ }
+
+ @Override
+ public void onEnable() {
+ super.onEnable();
+ }
+}
diff --git a/src/main/java/rip/athena/client/modules/impl/render/ReachDisplay.java b/src/main/java/rip/athena/client/modules/impl/render/ReachDisplay.java
new file mode 100644
index 00000000..13629051
--- /dev/null
+++ b/src/main/java/rip/athena/client/modules/impl/render/ReachDisplay.java
@@ -0,0 +1,153 @@
+package rip.athena.client.modules.impl.render;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.util.MovingObjectPosition;
+import org.lwjgl.opengl.GL11;
+import rip.athena.client.Athena;
+import rip.athena.client.config.ConfigValue;
+import rip.athena.client.events.SubscribeEvent;
+import rip.athena.client.events.types.entity.AttackEntityEvent;
+import rip.athena.client.font.FontManager;
+import rip.athena.client.gui.hud.HUDElement;
+import rip.athena.client.modules.Category;
+import rip.athena.client.modules.Module;
+import rip.athena.client.utils.NumberUtils;
+import rip.athena.client.utils.render.ColorUtil;
+import rip.athena.client.utils.render.DrawUtils;
+import rip.athena.client.utils.render.RoundedUtils;
+
+import java.awt.*;
+import java.text.DecimalFormat;
+
+/**
+ * @author Athena Development
+ * @project Athena-Client
+ * @date 6/12/2023
+ */
+public class ReachDisplay extends Module {
+
+ @ConfigValue.List(name = "Display Mode", values = {"Circle", "Modern", "Fade", "Old"}, description = "Chose display of background")
+ private String backgroundMode = "Circle";
+
+ @ConfigValue.Boolean(name = "Background")
+ private boolean backGround = true;
+
+ @ConfigValue.Color(name = "Background Color")
+ private Color background = new Color(0, 0, 0, 150);
+
+ @ConfigValue.Color(name = "Color")
+ private Color color = Color.WHITE;
+
+ @ConfigValue.Boolean(name = "Custom Font")
+ private boolean customFont = false;
+
+ @ConfigValue.Boolean(name = "Static Chroma")
+ private boolean isUsingStaticChroma = false;
+
+ @ConfigValue.Boolean(name = "Wave Chroma")
+ private boolean isUsingWaveChroma = false;
+
+ private DecimalFormat format = new DecimalFormat("0.##");
+
+ private double distance = 0;
+ private long hitTime = -1;
+ private String reach;
+
+ HUDElement hud;
+ private int width = 56;
+ private int height = 18;
+
+ public ReachDisplay() {
+ super("Reach Display", Category.RENDER, "Athena/gui/mods/reach.png");
+
+ hud = new HUDElement("reachdisplay", width, height) {
+ @Override
+ public void onRender() {
+ render();
+ }
+ };
+
+ hud.setX(1);
+ hud.setY(175);
+
+ addHUD(hud);
+ }
+
+ @SubscribeEvent
+ public void onDamageEntity(AttackEntityEvent e) {
+ if(mc.objectMouseOver != null && mc.objectMouseOver.hitVec != null && mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY) {
+ distance = mc.objectMouseOver.hitVec.distanceTo(mc.thePlayer.getPositionEyes(1.0F));
+ hitTime = System.currentTimeMillis();
+ }
+ }
+
+ public void render() {
+ if (mc.gameSettings.showDebugInfo) {
+ return;
+ }
+
+ GL11.glPushMatrix();
+
+ if((System.currentTimeMillis() - hitTime) > 5000) {
+ distance = 0;
+ }
+ if(distance == 0) {
+ reach = "Hasn't attacked";
+ }else {
+ reach = format.format(distance) + " blocks";
+ }
+
+ int width = hud.getWidth();
+ int height = hud.getHeight();
+
+ if(backGround) {
+ if(backgroundMode.equalsIgnoreCase("Modern")) {
+ if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) {
+ RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor());
+ } else {
+ RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor());
+ }
+ } else if (backgroundMode.equalsIgnoreCase("Circle")) {
+ RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, ColorUtil.getClientColor(0, 255), ColorUtil.getClientColor(90, 255), ColorUtil.getClientColor(180, 255), ColorUtil.getClientColor(270, 255));
+ } else if (backgroundMode.equalsIgnoreCase("Fade")) {
+ RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB());
+ } else {
+ RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 12,background.getRGB());
+ }
+ }
+
+ float posY = hud.getY() + 2;
+ float posX = hud.getX() + 9;
+
+ if(customFont) {
+ hud.setWidth((int)rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(String.valueOf(reach)) + 16);
+ hud.setHeight((int) FontManager.baloo17.getHeight(String.valueOf(reach)) + 7);
+
+ if(isUsingStaticChroma) {
+ DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), String.valueOf(reach), (int) (posX), (int) posY + 1, true, true);
+ } else if(isUsingWaveChroma) {
+ DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), String.valueOf(reach), (int) (posX), (int) posY + 1, false, true);
+ } else {
+ rip.athena.client.utils.font.FontManager.getProductSansRegular(25).drawString(String.valueOf(reach),(int) (posX) + 1, (int)posY + 2, color.getRGB());
+
+ //rip.athena.client.utils.font.FontManager.getPoppinsRegular(25).drawString(string,(int) (posX), (int)posY + 3, color.getRGB());
+ //rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY + 1, color.getRGB());
+ }
+ } else {
+ hud.setWidth(mc.fontRendererObj.getStringWidth(String.valueOf(reach)) + 16);
+ hud.setHeight(mc.fontRendererObj.FONT_HEIGHT + 9);
+
+ if(isUsingStaticChroma) {
+ DrawUtils.drawChromaString(String.valueOf(reach), posX, posY + 3, true ,true);
+ } else if(isUsingWaveChroma) {
+ DrawUtils.drawChromaString(String.valueOf(reach), posX, posY+ 3, false ,true);
+ } else {
+ mc.fontRendererObj.drawStringWithShadow(String.valueOf(reach), (float) (posX), (float) posY+ 3, color.getRGB());
+ }
+ }
+ GL11.glColor3f(1, 1, 1);
+ GL11.glPopMatrix();
+
+ }
+
+}
diff --git a/src/main/java/rip/athena/client/modules/impl/render/TimeChanger.java b/src/main/java/rip/athena/client/modules/impl/render/TimeChanger.java
new file mode 100644
index 00000000..4c4a7fe7
--- /dev/null
+++ b/src/main/java/rip/athena/client/modules/impl/render/TimeChanger.java
@@ -0,0 +1,20 @@
+package rip.athena.client.modules.impl.render;
+
+import rip.athena.client.config.ConfigValue;
+import rip.athena.client.modules.Category;
+import rip.athena.client.modules.Module;
+
+/**
+ * @author Athena Development
+ * @project Athena-Client
+ * @date 6/12/2023
+ */
+public class TimeChanger extends Module {
+
+ @ConfigValue.Integer(name = "Time", min = 1, max = 24000)
+ public int time = 16000;
+
+ public TimeChanger() {
+ super("Time Changer", Category.RENDER, "Athena/gui/mods/timechanger.png");
+ }
+}
diff --git a/src/main/java/rip/athena/client/server/CosmeticsClient.java b/src/main/java/rip/athena/client/server/CosmeticsClient.java
new file mode 100644
index 00000000..63ea411f
--- /dev/null
+++ b/src/main/java/rip/athena/client/server/CosmeticsClient.java
@@ -0,0 +1,60 @@
+package rip.athena.client.server;
+
+import com.google.gson.Gson;
+import org.eclipse.jetty.websocket.api.Session;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
+import org.eclipse.jetty.websocket.api.annotations.WebSocket;
+import org.eclipse.jetty.websocket.client.WebSocketClient;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * @author Athena Development
+ * @project Athena-Client
+ * @date 6/12/2023
+ */
+
+@WebSocket
+public class CosmeticsClient {
+
+ private Session session;
+
+ public void connect(String serverUri) throws URISyntaxException {
+ WebSocketClient client = new WebSocketClient();
+ try {
+ client.start();
+ URI uri = new URI(serverUri);
+ client.connect(this, uri);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @OnWebSocketConnect
+ public void onConnect(Session session) {
+ System.out.println("Connected to server");
+ this.session = session;
+ }
+
+ @OnWebSocketMessage
+ public void onMessage(String message) {
+ System.out.println("Received message from server: " + message);
+ }
+
+ @OnWebSocketClose
+ public void onClose(int statusCode, String reason) {
+ System.out.println("Connection closed: " + reason);
+ }
+
+ public void sendMessage(String message) {
+ try {
+ session.getRemote().sendString(message);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/rip/athena/client/socket/SocketClient.java b/src/main/java/rip/athena/client/socket/SocketClient.java
index c8c2bb2b..4256e5a2 100644
--- a/src/main/java/rip/athena/client/socket/SocketClient.java
+++ b/src/main/java/rip/athena/client/socket/SocketClient.java
@@ -14,7 +14,7 @@ import java.util.Map;
*/
public class SocketClient {
- public static final Client client = new Client("141.145.209.142", 1337);
+ public static final Client client = new Client("141.145.209.142", 45376);
private static final Map userCache = new HashMap<>();
private static Map rankCache = new HashMap<>();
@@ -25,7 +25,7 @@ public class SocketClient {
public static boolean isClientRunning() {
try {
- ServerSocket serverSocket = new ServerSocket(1337);
+ ServerSocket serverSocket = new ServerSocket(45376);
serverSocket.close();
return false;
} catch (Exception e) {
diff --git a/src/main/resources/assets/minecraft/Athena/gui/mods/reach.png b/src/main/resources/assets/minecraft/Athena/gui/mods/reach.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d99ccd614f5194d8ac122b3d6e3c7cbe3776f79
GIT binary patch
literal 2147
zcmcIldu$VR9PbPam~=2RAi$K%p)exXd-VD`S8!_!EumwK21X#@ulH!rwY}TjZS58o
z9upCUJeP>PB7{hSh$B$~Axh?0P*FsJAs8N`oACt*ggC)T{9Rw{55)cBrPsUP?>^tp
z_x=5?ud1AFESOMWFc^$Jue%yPY5g9a5C6Lo6Mut`Jhgguh2hA#l3(CrNT}RjZZI6(
z{A@oM3fCiK?_$+pFroULcPM#vo57G@CI)J>8vk5|m7*rVNkQI}h{_OcFqF+q$bhZo
zH6+M~#F!KP{p2YW5jiKi$l@pbvWpLk-X?`#&{P>>JX$%;RL4IJu9OQuAFFC(_{w6l1*4umIa|m6NQv65@VbcSEuO~WdwLP
z(0C`RXAdLn7)b^Q2V
zOrpp!LBN?g+F{37JHcZ-O%qs<6dah@BG_3#2U%d{Qg%Ukx5U=#;nU^Q<;zJd=$b%36bh&1$hY%vrX1iU?Z>LqLx#5Rc2T5Q;pu#wA50#V>I%=1}Y7
zeV@x!rAUGpfgkkgfcQKvE9tOWG0H?{YadoWv<7
zl{*sn7}To3f!|~v*$fY!cAvXE5O&?#>GXD1jb1geYf|yBBKPQh-TOVBw#svr8@iD-
ztykSua@{yv$9JCMlBL?#Wb(!5FMjEn9w-@7v}joQx(h!%-1F(2(_@#2h_SEZOzpO_
zCzoF9S^Iwdy$35wy=~LKs4MxqcllRFcgwNW9R>GZS-9o;(KY>>#`MMyBd6G*%i(fZK%TG+ZG|$|!
ztJHPN)L*#$&o`FMJJC?mnRoM5+q&at+D?{69_4xJ_aBxo?dU>B9X|l}R_v{7d+9IZ
z+LF(D@@LV98GGGxo5_|7``TMuCL~APzutOw+uW_Ynp()47uuHx?r&%-?2XO6QMN3(
z{^OB-eOErT^tRP*|2|qYl~`M+ObHu1iILgg>vOsv;h|GUAMRN-rnsQ_87cqn!DDB-
R-qTNdpQqA&q~f(T{{SZ%)mH!j
literal 0
HcmV?d00001
diff --git a/src/main/resources/assets/minecraft/Athena/gui/mods/timechanger.png b/src/main/resources/assets/minecraft/Athena/gui/mods/timechanger.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d130de3ab0eaf2af03040a63b8c608d071b37da
GIT binary patch
literal 1491
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
literal 0
HcmV?d00001
diff --git a/workspace/assets/skins/10/104db06da43b47ab2cd08be0d0e0e89726d167d06f5d5d78ab31f58c4d4d277b b/workspace/assets/skins/10/104db06da43b47ab2cd08be0d0e0e89726d167d06f5d5d78ab31f58c4d4d277b
new file mode 100644
index 0000000000000000000000000000000000000000..b7dc0d2f1526780e9e09b4cadcd5ba1bf63868d0
GIT binary patch
literal 1128
zcmV-u1eg1XP)lmB6ok`6iXw%I9*G74Nq`UtLO~FysQE$kNc;du0Syg86qGaw2|5ZyiJ+uFqCwD5
z9U4n>diUL~*LUY!&N+`X@_OI%`ptOl^VwcmDd5iT)}W3zw$2UquUr@|V_Qp(Hz{sk
z-K_S*e(zuH_4V~Ziri)@XeTPd;!GE2p(!fH@g_wSn(CL(wY9Y*TQMOgQhlBQb>w){
zB90Z?JnE$Lrbe6rQT)7Sz_FvL0iRwRj&NxVu=sE9UXRcwaJJe
z-Rs-cg-%q?hsO^`s6NM)%k7&Qz`|0HSRHj6;5PG8sG9**!v#7qwtdAvbNW<8i}$+Y
zx$UC?xwvjwQCkHcX;b@4wd-aBZ;ex|4Dd9JQ&LL{%^6_kwzmOwao@|cc!~1(j2Vun
z4Df$}5{LKFD#qsp4fy>2@#puy^hN=z
ztE(gDSX@_oV`HP19FItir8e`XM%xC^3<@SW9>K9RBWE&zqL$78qD=#of7AwuGZ`Sk
zBrg^@Dpxxv>kLRyV>!!YVh#vB$fZP9Uh$9#^_WGs<7v+z+*kw-qx0FwpGQZ!kLrRX?yW-*-q2~fBh!HZKo
zf+X{r=P(_=?v(x4Cu_!*Kc`jdp-6OO>&G`jo=MX=|-m%AA|na$F|pF
zKhY$oEl_w#U@6`?P-Z@ZsNnk17IZ${>U@6`?PR!M>T|paluPlw
u0lfje0b>P|B?IOPif_XJJ{KU{G~homv9mjd7R`JB0000*}-e;e^cKw~|IXmm%y@#)_TKwYsU)Oy6XTCYmIxSmm
z{fwUtE%fdyFR$Ku>BZG+4_;VP$FjKrTJWnM{~mCuBD_BB`&xfpK#I>M$mfoi3J{rZ
zY1G!K*(XCH-zi)HvdL$`vL$V2zNzS40kw5%_Q~j70T%q%w~q$2o%yDsbpIPI-(u)J
z12mT4e}4XEK-uJDzN16$3i#vkr_~0?$9zWziEQ!c8$dz(rfbMrh82!SDJSh)V;y|(
z_M2%5siX}bzuvIzrm&rn-G=WTFtaj`Pb&(Bx4x3?Q!UtgCe1-Mv_
zb^O!kZ>*kt@^JOt$FB}3n|#biWG=_}EG>a2pI=QMyt={WCw
zHlP&mF-7K>z7p-H&MGK+Y6G-bzFTwbhhWXmG1>E#Xg_sULD5S#fTW*evga$&e(J1(
zqI=@m1YLG6$d@6DHS;pfG2=3xHj}~^Z$PUF8I$)N1+rk?r(@!2XD-sYsIv-+J~d!w
z1GK1%V8LekQv~BOo;J=UCpUoNL~neax{J)%JbON~EV$<9nC$sVv_CaAkvlz7JHHY$
zW~!j6@w9O+X+L#VLD5qiz)LVMLl(@qG4ZsU%wg`m0p8ntFW=kix8h5m#}vMJ1A1UX
z=$`|B^;vA%4i39E;PUcvFsCK7<-0e`Z9odoV`8R?sm0SSYMY#M6W&(Sezc(Y#T&r0K8E?50P`6vn*Ic1a}I5LX@I}=&kDZ<
zm~KL(+JFV8pb{9@i(eXB;!J)8=GS1vZGl3@2&%=>PCwD}7vZgLZEWE+|6PK@djea&
zB66=!^33NIkWKLSy>s^V`nC9j{5&oRZh=3VPMz;xi1>>TXj?|(l7C_2UWo&ml2jNb_qe{>CCQDbSL6n}IL
zI4gVxi!CAYF+S-{4;w=&Ht&6tMUy2Fv%xPt@tJE&SW*Hx&&-`)i;AWAB^tnZlJVW|
z{nnV`r#66>zsQ2g-YvlR6u#8}7C%)$iHxi9t{N}}{{kU%OuoBp*_;3X002ovPDHLk
FV1ibBsiXh^
literal 0
HcmV?d00001
diff --git a/workspace/assets/skins/10/107b7bebb1402dbb2b5df0d61b3d2997adb106e36a6741b9f05e3828b7c30b68 b/workspace/assets/skins/10/107b7bebb1402dbb2b5df0d61b3d2997adb106e36a6741b9f05e3828b7c30b68
new file mode 100644
index 0000000000000000000000000000000000000000..5639d8fd9b5f47f3bebc63fd0e7029f6b979cc42
GIT binary patch
literal 1302
zcmV+x1?l>UP)7q
zk=R$8@n(hRrQUg{U7DXhbHRl^IoKReC{g>W2#AG7l!)maF8F9`V|F{|PY@6%n1_JqpAnFamlBM~2(I-h*){~&
zAe+Di>R!%-1km3Jly<;4feJVm6KEanO2}**T};*!kN~fi3wNIc(4Pdv@frf+E{pwa
zY#OE#pa4q5SBanG+Ukz0o#qWJEVQ
zy|gHicwhTx%oF_l{%!Q>{k!InqqcM&_s^jH9m_98DmKPfTRM-wJv;j^!LCru7~g%j
z-Cy%di;b0>9(3_upY}U%@xw8`2{LwUyRT&3XA$#)@k;YYp9W9&_9l!jE-o55KR?f%
z0ys%V09RpRMOwgEZqsgVumBYuh4uvfnP^u6;?9z2Hx5d`ygOiLXQ#PU)b5J_lBrvA
zX$kQ2Vn_nqrd>6-rAWXupz*+TGn9>1yF*C6O%?a1ycT
zl_S6+eJ0U{2{?(q2;gmEVGN7MS!WT)$H(JBbfu6GOSEAEPU7h3s7YP~)FjP9Jx0BC
znaoUpSDHmypGmY~0!&u@NJb_l0^Fy*CKl@~qU#P|0!)?#W|G-Pd+h}Ja2HuT&N_=&
zb^>nuV}DpuFa%gYIgr@$!Dh6ym)*ry%sOTN_C#A2OA$Z44gkPLbY$XI85U0EpK
z1TE2qiDgBwAWCL?Wdslk68j`1j$KQT0Iq%987E4XWP&;5{uKB2*cYuDU
zRjjUl#r0S`1xAUl!!gzn7@U9`51;Y5%GPHRZ5Z!bLAS-M1;;-n`tYwkb`JsZWl@=3$zM9IHjB*&P@g$3
z3|#$erM=pjj>WUsg%H4%Dy^VwSyX0M@|TX=pZB|jy4zczWe2qR)4mh9{j;qu$@Ha%
zAPJ#v@EuTlXc1Vv#QrQcBY?$nwXzlLbqB;#8VmP3zZjQZ*I7TG`xCnKy3(J;Guff_^GIcyJCcNX5;KTZ;#1S$Ud^p#-JqRPw@
zN|CGUaixpK4q-`Z`?I4Lf(eT%v-_v-Pl?cN&X{g%H6hlQ#Mm(d)P&vB_byiA5>RRE
zPqx2|Ue_OQ4Z`vH`T2O|^)VR7XhR)+^~OkIY?!b$*dGg~c*Z@SwozolIKKAwo8v@L
zLJSEJ!!AKA5ixmj<2E;d;xV>TMWg)mU@s&=6H@T`z1=~9O2$~;8P1=D
zB!u!aDI;y
zy7CkV;!6?d(K38l(&V^ZC~S(GpIy-7Bl3I|xPIe<(KoY=K$tWc|34|7@4~8LJiiFk
zZ>Jzk(zuV2t*or%%71@4nxOZ0{4?y6BF6ap$AhVHtB(Ks?z;9>wu5;XkfM+0_+{hO
zoF-(?qXFnc6S6KC@Yl~fts5YHXE$JVbv0jGTgzE$9c5X&3jnK%bv8XOM%P&gUvUu7
zGDV*lTa!%1Vyx1K#AVj&yq_wh&_?@AcpE9J460V>o*
zYdvOwa^VJOT@%*!ItK7u#9Gp;KC_w-qnhG6
z3*mz_p^NjC_ZDEePi`(@^QBgtHG0Ri>cMG!)#huV64qz
z*H}vYu>SJ(>Ry|$OnB$5Uhc#T)84zAq4fSsiAnLdD~Vsq%K*Ybk1Li^cp3P^i^m;H
zYtBb^cf!NXA15z%LttzrVljobYaJ^O1FGzRPNT>GidO^5%&djjV2I)Q-Qxt>V&}~h
ztdOcyeW{Th{(uqv)-%yx>TJ{YEA$yMZ%V
zJH%g~7t!+|=Dz)1(5wdVHM;(`5bNW4IOb-A3!(wTrm1+06cziSB=#$@d_t6>$b_PJ
zBe)$XBi@WB>DsvCM#2-mQRw9iHGkSoJ1Ygi@1SZ0gvPn-?{o*5MANjy+o{ntL`SWbq~l)SS;oo^=SqF0mUP1*Lfu3g8%>k07*qoM6N<$g5wslAOHXW
literal 0
HcmV?d00001
diff --git a/workspace/assets/skins/11/1178c7ba944cbafa1fd3ec57ac0737ea97ff44014229ada4d6f75c655126aae0 b/workspace/assets/skins/11/1178c7ba944cbafa1fd3ec57ac0737ea97ff44014229ada4d6f75c655126aae0
new file mode 100644
index 0000000000000000000000000000000000000000..5281d0bb57f89c4c1431b905f0ed1584fe9be09c
GIT binary patch
literal 848
zcmV-W1F!svP)sIW;9l#o*e#*0K{nQ=cWSSBkd&(iCLPq%r_AL@2HnFWEr-u9d!V)
zC!omy_(*$6Lt>VuE%QwTz&q+C4aJPcYSfcM^#BM8}TL5)B#vTKxxpB7o11KB>O2kXO0FfHWR@1{PVsi7l4S>!b=TW
zbOlfwlK^%s2|yd-ne^1TZ*gb=q$P-gtuyJVbKjeQf`se~pkV7vdg|QQ94Od2lb$;F
zH3tf|&ZMW#ea(S_tuyJVb6<0yVCzhJ>fAR0|9R^r=XpWF)|vFwxo-j*5{B>nyk?Q}
zG)e?ed~I@H7RCT_QQ(WF`#)X=&8{ba=mGQqRu%vad&zk;z&b&LUT|K}mz?Jn*aLXy
a0A2xYi`&?
zh()X^pmQX7b3?|YXnP2jcDH+JHiSKsPLo%YKw
zo-~>Bojcrk_+Te;j4+Yoci;b@qXc0DCZyn`pU2DBue`H!s_mC=J{y!^26)N&dIMT3pmen{MC~a!$-K2BynaXnsw?1&JGTcXBWcRo
zl4ljD{`U{x7wHCY9?F+bUhVs+-@Eqtpxg?zb9d#G0o(#9+zmnS?)L{BO9lvjE}h(|
zHVKDkqxMJBfGN0OU)pW}!joyhg@lW)F@+z~fYv!$eLei4=SzFe6CT#a=iH^3%;)Iv
zhg>oRCh5;{OPKl8K>X&$X;NNklsZ8^_)4UoJ%Ya;OZ0xq%%=n&>+@&aDloYOFtLjh
zf4%ix*QV0zc^i-*br;_1&z#5wqlxi&?`O{8EW`K`x;__8-Gzy~s(8I|oN+mq3vkid
zpNaXZ@)(cxKE-Ox*$l&&YzJK*$sj<-{uCE~{Q0-t$6sFW+f`Q^{j`_n%C=H}CN|X%
za{gL>wu6xY4A52fCH`c$+kO4#z5j&%^;1_@8~uva7{;f7oIm?BF@d;}FhGB6j#{74
z8^FoD?#%alt`JWo=PI>%y-&oGdWyLQa9o?m>#ep9r>9rC`uu|)dyV~37Y?+66?uOu$AMEVq~rz!0ut@f+$
zeb~n`FHe5r=e#96ugtN;j7hyC5SRm}PC}{oIqf8kX#KFkoN7x0*ckafAvaB)7nHfV
zBB1(QN9rAc$y7pLLM0+du_Xgsv`RfY^c>MIGGZFQRu%(PvTaWBF0RCkNxdWNYk*%-
z1ghWX;i`Okjof@
zKA%_hOx6v^XMl{v04_|5D=}kI?+65@0aGU-M#*MBMtQwt0B;QmbrAQgAZkTUZ*u3jTXQ
z_RWF52>mz(Cp~rwOXF7~SHQP-@6JB)p$%9%=IBTR{>SqS_Vyg-zq(|cKrt6bqr{kxfu|Q_$>{{Tc89!
zfmP@C0NRI<2ZHv@65}5ca}7{zwl4)j{T5K!T1lINkA`Pu0KzFT1Os%A((eIhGYmmo
zwpWoKCLCv6f-%|dm~#v8Oz>xexA}!}5}TOnAHhXzWdOUz>o;%q{jF~auD<^_r*ISl
zfPMq;<9s`K-_|Hyea!Hc=_Ece)nA47`+n?KEUzBF2YB0|klzYZ`~Ru_RnW)J+z%jb
z4NCvZavE8JKaW!MQekVx6tU!ry8&YUf|T)zG(dmy-p7D!TLo6Yk}F8L?+Q2<2CQ8H
zD)(Ih$&7Dd&6vf=1k(T)ll2_u<6HFD%;)IHsisw<}T5X|^I&iEoUxnEU3_7i9F
z2%Q?=GQf>1Q86t8GCrB{MR>xrl?=!~o9F)z)C^Er`!jncoP27)KQe(l92uX?_z`lM
zT#BE|)-8~+
bNss*(P`j)dp->i{00000NkvXXu0mjf)4xC2
literal 0
HcmV?d00001
diff --git a/workspace/assets/skins/11/11d6555fef1609a535c455ff81d9e56165048ff25045a54d4dcc67b20c1914e2 b/workspace/assets/skins/11/11d6555fef1609a535c455ff81d9e56165048ff25045a54d4dcc67b20c1914e2
new file mode 100644
index 0000000000000000000000000000000000000000..db5fe59f9ae742605b39cd5d04f954d6445eade9
GIT binary patch
literal 1068
zcmV+{1k?M8P)V{O7ef7Ur{3Pcmc8-2eeuOa6*fQ
z<5{?IK#PXsS-5dPIhanT*~(FX+`0nn`9vvN(=Mqr)Bq*N!dQ5$c5_9OfYBW{5zrVLY&N07k*MfAmv$Hc7
z6w2%CYj+Gakqqj<y_^U$CJa#EgfQed%I*~W5a7_*4NjQm`o;K9pLd8?TdH>_G^JxQK72e8P6%gtM8gOInYVB*#UjQu}0zKx3;#*a&vPtNJXr*@D2cS
z6Xg0u;3XP^lgC}vl`l6JPQ0xEIq?#W5fZ>r2*4dY0nCyKAgdp`1ab(V@APf(5{;pg
z(L$hP0fLvnzyipkw8cv_1}CRsRR!%cv;aJJDqf;-yb8O&zwhAs7#wt;@XDsbF-DPO
zL+H0ajrJK@0AATtyhLMg(r--wUfEQ)?UGaM={@u7Th&$7Jw;Xb95~did;jjGlKVvTiy!spk6il+c
zzG%AIP5E1g1`Dr0-I1BXASfem={)u$J@GX`{-0uub>{N4rH1hzLj$wu{w2r^teSMkMk%GyLRb8i3sM9KU`&q6!?pz5L
z?W=Dy7?)67Tl?;3ZGbzjqbs_j6ihl+g1j~;?fO~n_F3LGq$RYj^X!=EHWSi-Qu{7H
z$d0E0K1$@t`!BCB4X~&*z&90D%i$4ttgjf<$^jun7{R
zt;`1e_2+}?+O_-3Elz3W*#K{Q7Oy-XJ(_Gl8nf}$+XmDLQvz&;Z*V*sn)Z1!uR0gW
zG$F-L!T{poKUMYg>2od?izQXYc;c7et2(Ykmu36OF70PqdF%c7yU%JezBkyxM<3lB
zY`}jX+^p-*+JN7#-xy?o#6S7*tfozvr2#{yfJ96D;{MmQ8Iv`@4JHkCkaS1LG(b!P
zO62dSNakf(iHxJ(6&xQQS0o#0qGH(rcjCd@H=%_k8
zJSZR>qgm)|TOO>RmyK)>|CSBOSM40Li#6@q&!hVr;avW%!(W
zS3vPzP;^e=B@@_z>;%EMF7W~la9N2gr`{E$0lBJfG6I^wxGwR+CX|E-(449Jv
zy2rNxdEf7Q{}R{5%*uduU}ssr^T_A64m{)`TGF3ArrrH?5TKN$nMJ{$0>5x*QY(VyNZ
zPRvnMf@3btfIiOw6mJ9aLo3DiF+dBac8`Q(MD}NEpb1SQg5uKzFJLqwKfF@Bm{@1P
zI+W@ssOJK*(=0P6+~Rq~$+i)YCYXGnQ=p%rgDzQmG
n6Z78R4?(KWe8p1y*arL$a<(oMhw3+m00000NkvXXu0mjfjumc9
literal 0
HcmV?d00001
diff --git a/workspace/assets/skins/11/11e526bee21d1f7fcb865ae406e1fd193b659355a490e2f14dc11748ff8d953 b/workspace/assets/skins/11/11e526bee21d1f7fcb865ae406e1fd193b659355a490e2f14dc11748ff8d953
new file mode 100644
index 0000000000000000000000000000000000000000..9d951ee7a0f166cb19427b9fef526d52e8652ccd
GIT binary patch
literal 1332
zcmV-41Y!O5M8fi5ezG@ZJfjw0ue=aED}qJS0F_J$w>%CF=7*Vx|P
zE_Qc!i^*hC93CDTQHBjZZJ!M)l?;MitrQ*YOqr6Uror`1ber;$BX^H+qr3@7ykh
zE8)}e761yZV>@{9ub$mE`XqRMeD~VuZ93i@P(itDhg1SE3qXn|Y1i@QfC^GB7O5qG
zb*|#cYuW=Ai_|8kqLn({7YE(xz4-q{0#X7O?U!)cuIv2%KDcO#FWN8R |