Commit graph

600 commits

Author SHA1 Message Date
HJfod
da815aba72 fix positioning in single line 2023-02-23 22:22:46 +02:00
HJfod
4613af6791 change CCNode::insertBefore behaviour to insert at the start if nullptr 2023-02-23 22:03:20 +02:00
HJfod
295aedbdb5 add cross axis line alignment to layouts 2023-02-23 21:18:43 +02:00
HJfod
b6c1c8b66e layouts now work fr fr 2023-02-23 20:46:02 +02:00
HJfod
0e7a3f6f3f finish layouts!! 2023-02-23 16:32:52 +02:00
HJfod
8fb118fb12 Merge branch 'better-layouts' of https://github.com/geode-sdk/geode into better-layouts 2023-02-22 16:06:46 +02:00
hjfod
5d9857f77d working on finishing layouts 2023-02-22 14:31:15 +02:00
hjfod
bbbf3324eb versions now support tag numbers + tags are now used in comparisons 2023-02-22 12:19:17 +02:00
HJfod
d809d5f939 remove the test onMoreGames hook from MenuLayer 2023-02-20 19:42:57 +02:00
HJfod
0cfa4a42fe add back isAPI impl 2023-02-19 22:04:46 +02:00
HJfod
511938fe1c Merge branch 'main' into better-layouts 2023-02-19 19:58:47 +02:00
mat
54e082e8d5
fix build for cross compilation clang 2023-02-17 15:41:10 -03:00
hjfod
80a3ce60d2 layout prio almost works 2023-02-17 17:25:53 +02:00
HJfod
060ea5865c layout testing 2023-02-15 21:25:12 +02:00
hjfod
3827a00964 adding new big stuff to layouts, this def wont work
also removed PositionHint
2023-02-15 16:02:56 +02:00
matcool
37361269ec move Addresser::followThunkFunction to source 2023-02-14 18:28:13 -03:00
HJfod
ffd50eb0f1 fix ranges::reverse + add break line option to AxisLayoutOptions
also EditorPauseLayer ids but didn't finish the layouts yet
2023-02-14 21:54:45 +02:00
hjfod
f7ddf0af2e EditorUI ids finished! 2023-02-14 15:58:57 +02:00
HJfod
7a4a1b078b more editorui layouts + AxisLayoutOptions 2023-02-13 22:09:16 +02:00
HJfod
c08c19b440 Merge branch 'main' into better-layouts 2023-02-13 19:50:37 +02:00
HJfod
ea037a9ccb make layouts responsive to different screen sizes
also add CCSize::aspect convenience method
2023-02-13 19:49:51 +02:00
hjfod
5a1545ebc1 CCEGLView::getDisplaySize and other bindings 2023-02-13 18:31:32 +02:00
alk
bce9d3a013
Merge branch 'geode-sdk:main' into main 2023-02-12 14:45:36 +03:00
HJfod
cb1a6f15ee update a lot of ids 2023-02-12 13:01:12 +02:00
altalk23
74d1527412 move static log stuff to source 2023-02-12 13:44:29 +03:00
hjfod
a78bc0c9c8 more layouts 2023-02-11 23:14:04 +02:00
HJfod
ef9e741bf9 add a bunch of layouts and ids 2023-02-11 21:13:35 +02:00
HJfod
eb10eca6e5 add CCNode::insertBefore and CCNode::insertAfter 2023-02-11 21:13:22 +02:00
HJfod
3f64b98cf1 update MenuLayer ids 2023-02-11 19:34:40 +02:00
HJfod
187e360201 fix layout crash if some node is too large to fit in any row 2023-02-11 19:30:55 +02:00
HJfod
8fd027531b impl even layouts 2023-02-11 19:03:23 +02:00
HJfod
f5ce865b55 add AxisLayout::create 2023-02-11 17:50:14 +02:00
HJfod
ba0851e4fa fix swapChildIndices not also swapping z order and order of arrival 2023-02-11 12:57:35 +02:00
HJfod
8890901af5 add child order update option to CCNode::updateLayout 2023-02-11 12:06:37 +02:00
HJfod
676b96a34f add getters for AxisLayout 2023-02-11 12:06:01 +02:00
HJfod
3fb8c2be83 reset child z order when applying layouts 2023-02-11 12:05:25 +02:00
HJfod
92e9ce09e8 Merge branch 'main' into better-layouts 2023-02-10 16:07:20 +02:00
camila314
0cfb064631 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-02-09 09:45:11 -06:00
camila314
41aef57758 make >= default prevent issues 2023-02-09 09:45:06 -06:00
altalk23
688b8c4ac9 compile only a singe objcpp file 2023-02-09 13:25:23 +03:00
HJfod
8147d6d28d grid layout works!! 2023-02-08 21:45:29 +02:00
matcool
28b26220c8
force ModImpl::m_saved to an object when loading saved.json 2023-02-08 15:29:48 -03:00
altalk23
345625e164 rename loading error 2023-02-08 21:23:34 +03:00
altalk23
0eb5f01ca8 make mod binaries not load not silently fail 2023-02-08 21:18:47 +03:00
altalk23
4ecc4ac23a fix modinfo impl ctor being broken 2023-02-08 20:52:54 +03:00
HJfod
ecfb90b252 column squishing works 2023-02-08 19:05:08 +02:00
altalk23
04dd151f0e minifunction replacing compiles 2023-02-08 18:25:07 +03:00
altalk23
d31d95d6bf somewhat improve objc compile times 2023-02-08 17:43:31 +03:00
altalk23
478f70e900 fix filesystem pch breaking the impl 2023-02-08 17:37:37 +03:00
altalk23
4bf6344def Merge branch 'main' of https://github.com/geode-sdk/geode 2023-02-08 16:44:23 +03:00
altalk23
4f259c6e3a forward filesystem 2023-02-08 16:42:34 +03:00
camila314
1f7d50a9b9 fix potentially modifying event listeners set while iterating 2023-02-07 13:58:21 -06:00
HJfod
783edf7bb7 ok i fixed a bunch of stuff but squishing columns is still a lil weird 2023-02-07 21:44:21 +02:00
HJfod
50cf18bcc4 attempting to add grid layout impl 2023-02-06 21:36:08 +02:00
HJfod
e36a5aea35 rework layouts 2023-02-04 15:58:10 +02:00
HJfod
d09b74eb34 working on a layout rewrite 2023-02-04 11:33:22 +02:00
HJfod
d23563a9c0 Revert "working on a layout rewrite"
This reverts commit ecbfd5ad0f.
2023-02-04 11:28:33 +02:00
HJfod
ecbfd5ad0f working on a layout rewrite 2023-02-02 17:08:13 +02:00
HJfod
6d3847d9e1 change equal perfix from == to = 2023-02-01 23:43:10 +02:00
HJfod
98496182f9 fix build errors 2023-01-31 21:56:50 +02:00
HJfod
fa94a56ea0 fix Unzip::extract failing if the extractable file is empty 2023-01-31 21:31:41 +02:00
altalk23
51990ad89b make ModInfo pimpl 2023-01-31 16:44:28 +03:00
HJfod
f32aaa8b12 add better support for dependencies
- create_geode_file now redirects to a new function called setup_geode_mod
 - setup_geode_mod auto-links loader
 - setup_geode_mod invokes CLI (if v1.4.0+) to automatically check your dependencies and install them + link their headers and libs to your project
 - fix Result::expect not working on non-copiable types
 - add in-memory functions for file::Zip and file::Unzip
 - ComparableVersionInfo now always returns false if major versions dont match
2023-01-31 14:48:34 +02:00
HJfod
5bbd34cd73 make sure m_saved in Mod is initialized to an object 2023-01-28 21:27:39 +02:00
HJfod
ef86ae03f1 fix next mod mutex not being released if mod failed to load 2023-01-28 21:18:54 +02:00
matcool
deab672bc2 json rewrite, use custom lib instead of nlohmann::json
This is in attempt to make compile times better, as the old json library
was quite slow to compile due to many template instantiations and such a
large header.

macOS tests have shown build times from 610s to ~390s, about a 1.5x
speedup

Co-authored-by: camila314 <47485054+camila314@users.noreply.github.com>
2023-01-27 21:14:26 -03:00
HJfod
30dc9ad220 add manual resource downloading instructions if automatic failed 2023-01-25 10:06:21 +02:00
altalk23
b6a6e4da12 add id priorities 2023-01-24 20:08:17 +03:00
altalk23
b00ab40ae2 remove handler fixes by replacing dynamic_cast 2023-01-24 19:52:51 +03:00
HJfod
3e54252c4e Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-01-24 18:17:42 +02:00
HJfod
a418828394 fix resources not being downloaded by fallbacking to github api
- also add an overload to AsyncWebRequest::expect that gives you the http status code
2023-01-24 18:17:03 +02:00
altalk23
ceb02e90a5 remove empty "fix" filea 2023-01-24 18:03:52 +03:00
altalk23
a90b3e18dd remove meta and hook-core remnants 2023-01-24 18:03:52 +03:00
HJfod
8551071ac9 dont auto-update major versions 2023-01-24 14:12:54 +02:00
HJfod
1ea3309fac add automatic updates 2023-01-24 12:00:19 +02:00
HJfod
6e426babdd fix userTriedToLoadDLLs return value 2023-01-24 10:45:18 +02:00
HJfod
57fd2c25c2 fix Loader::userTriedToLoadDLLs definition on mac & ios 2023-01-24 10:37:02 +02:00
HJfod
ec28634c26 remove debug message whoops 2023-01-24 10:29:22 +02:00
HJfod
0012762c84 check if the user has loaded dlls and show a warning if so 2023-01-24 10:28:43 +02:00
HJfod
0ab93ee0a2 update index to geode-sdk/mods 2023-01-24 09:22:55 +02:00
HJfod
e4706c9aca fix AEnterLayerEvent + resources not being loaded properly 2023-01-24 00:13:20 +02:00
HJfod
db32b910ea fix resource paths not being updated on switch to fullscreen 2023-01-23 22:24:38 +02:00
HJfod
9be7bea66f move tulip wrappers to their own namespace 2023-01-23 22:14:36 +02:00
HJfod
b9dfd1b115 make mods work without getting tuliphook link errors 2023-01-23 21:58:50 +02:00
HJfod
6839316a5d adios lilac 2023-01-23 20:30:18 +02:00
HJfod
d264694700 update tuliphook to fix hooking cdecls 2023-01-23 16:53:43 +02:00
HJfod
2c2bb8d706 Merge branch 'tulip-hook' of https://github.com/geode-sdk/geode into tulip-hook 2023-01-21 22:44:37 +02:00
HJfod
8a9a183e08 update tuliphook version 2023-01-21 22:16:16 +02:00
altalk23
c72967abb5 fix setup compilation errors 2023-01-21 23:07:58 +03:00
HJfod
7f52356955 Merge branch 'tulip-hook' of https://github.com/geode-sdk/geode into tulip-hook 2023-01-21 19:02:59 +02:00
HJfod
e322cc5fae fix internal mod being setup at static init time 2023-01-21 19:02:23 +02:00
altalk23
394cb96733 fix silly entry 2023-01-21 19:56:01 +03:00
altalk23
d8c0ba6799 fix internal mod setting up at static init time 2023-01-21 19:54:19 +03:00
HJfod
f089afc27c fix includes + add some doccing 2023-01-21 16:00:14 +02:00
altalk23
dc0da9fc56 make it compile on macos 2023-01-15 02:00:59 +03:00
altalk23
a1c7139e53 I only changed the headers and not the sources to improve compile times a bit 2023-01-15 00:45:58 +03:00
altalk23
a1be695aab replace modify checking implementation
i got distracted
2023-01-14 22:24:12 +03:00
altalk23
e47a5b4e27 fix the trysavegame hook 2023-01-14 19:31:56 +03:00
altalk23
a15e8cb30f temporarily comment out trysavegame hook 2023-01-13 09:12:50 +03:00
altalk23
b97bb0cc98 Merge branch 'main' into tulip-hook 2023-01-06 22:09:53 +03:00
altalk23
ac238e54da fix crashlog 2023-01-06 20:25:53 +03:00
altalk23
07e64c4dc9 remove cursed this->m_ 2022-12-31 18:20:43 +03:00
altalk23
eb0ef4c045 format src/ids 2022-12-31 16:43:29 +03:00
altalk23
9e30870c79 Merge branch 'main' of https://github.com/geode-sdk/geode into tulip-hook 2022-12-26 21:35:29 +03:00
HJfod
56cfbde73d Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-17 19:08:15 +02:00
HJfod
2d7ce01b1f fix resource download freezing the game 2022-12-17 19:08:01 +02:00
HJfod
6a8fec3a9f fix markdown not adding newlines after list items 2022-12-17 17:03:11 +02:00
camila314
4dd5dc67c2 pauselayer ids 2022-12-16 10:24:29 -06:00
camila314
47cce30351 fix start pos menu crash 2022-12-14 12:35:26 -06:00
camila314
b3c88d349e EditLevelLayer ids 2022-12-14 11:54:32 -06:00
altalk23
ac40e4c8fb fix tuliphook result and windows messageboxfix 2022-12-14 17:25:25 +03:00
altalk23
1bdc8f408c Update TulipHook and fix some really minor stuff 2022-12-14 17:17:52 +03:00
altalk23
641c56e7be fix merge artifacts as usual 2022-12-14 16:01:01 +03:00
altalk23
bcfe6a6914 Merge branch 'main' into tulip-hook 2022-12-14 15:38:38 +03:00
altalk23
1359a26c5e Merge branch 'main' of https://github.com/geode-sdk/geode 2022-12-14 14:50:58 +03:00
altalk23
5efee1e42f do a funny by reverting the internal naming back to impl 2022-12-14 14:50:46 +03:00
HJfod
f3fa425674 replace std::regex with re2 2022-12-14 13:50:16 +02:00
altalk23
5666c8f356 separate mod and impl 2022-12-14 14:11:19 +03:00
altalk23
950db7e474 Fix recursive stuff 2022-12-14 10:42:06 +03:00
altalk23
643abe64ab seperate setup of mod 2022-12-14 09:47:09 +03:00
HJfod
1de4fd93f7 fix mac build pt. 3 2022-12-14 00:24:47 +02:00
HJfod
407ea1ba01 fix mac build pt 2 2022-12-14 00:05:10 +02:00
HJfod
bd79f275cc fix mac build 2022-12-13 23:50:19 +02:00
altalk23
962dca6ab2 fix cvs 2022-12-13 22:57:20 +02:00
HJfod
f42fdfcf55 fix merge + make sure test mods aren't installed again 2022-12-13 22:51:09 +02:00
HJfod
afd9258995 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-13 22:42:49 +02:00
HJfod
9ffb15b616 rework settings
- Settings no longer abuse templates
 - Custom settings are now supported (finally)
 - Bumped version to v1.0.0-alpha
2022-12-13 22:39:45 +02:00
altalk23
0c506ea46c fix cvs 2022-12-13 20:44:56 +03:00
altalk23
d7b1d9ba70 fix macos tulip-hook, it works 2022-12-13 18:34:09 +03:00
altalk23
cef0f3f3bb hooks try to get enabled 2022-12-13 16:32:49 +03:00
altalk23
eeb4bea97a fix windows compilation 2022-12-13 13:41:34 +03:00
altalk23
c605c24f26 Merge branch 'main' into tulip-hook 2022-12-13 13:30:34 +03:00
altalk23
5e1d1eccdb remove schedules, also make Mod::get() lazy 2022-12-13 12:23:37 +03:00
altalk23
63671c9618 compilation test 2022-12-13 10:35:26 +03:00
altalk23
3dae2d0b43 Merge remote-tracking branch 'main-repo/main' into main-repo/tulip-hook 2022-12-13 08:00:06 +03:00
matcool
25fcc35dad
define NOMINMAX 2022-12-12 21:30:15 -03:00
matcool
2c3520f454 Add CPM.cmake, use it for external libraries
this removes submodules and external libraries in the code in favor of
importing them as CPM packages. CPM_SOURCE_CACHE is recommended as
codegen has to readd two of the same dependencies
2022-12-12 18:20:24 -03:00
mat
8f0a132780
log::critical -> log::error in MessageBoxFix.cpp 2022-12-12 17:44:49 -03:00
camila314
550e87377d optimize util slightly 2022-12-12 14:06:04 -06:00
camila314
c440aaa7cc Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-12 13:33:14 -06:00
camila314
98bae53959 LevelSettingsLayer string ids 2022-12-12 13:32:44 -06:00
HJfod
189040ac78 thingies
- rename LayerBG.hpp to General.cpp
 - add addListBorders UI function for adding comment borders to a list
 - change VersionInfo parsing to use streams
 - remove VersionInfo::validate and instead just have VersionInfo::parse
 - remove scnlib
2022-12-12 18:44:17 +02:00
altalk23
5c9066618d add debug texts 2022-12-12 19:41:42 +03:00
altalk23
437a996b14 fix compilation errors 2022-12-12 19:23:11 +03:00
altalk23
459add6022 add tulip hook first commit 2022-12-12 18:42:56 +03:00
HJfod
c8e7ce0b18 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-12 15:45:43 +02:00
HJfod
4c4674da93 add suffixes to versions 2022-12-12 15:45:27 +02:00
altalk23
c99104909a Merge branch 'main' of https://github.com/geode-sdk/geode 2022-12-12 15:40:17 +03:00
altalk23
a47937c379 remove spinlocks & make sent async response pimpl 2022-12-12 15:40:05 +03:00
HJfod
ef55605b5b remove SafeCreate for being pointless 2022-12-12 14:11:14 +02:00
HJfod
c1b5a16e27 fix loader impl not loading hooks 2022-12-12 14:03:15 +02:00
HJfod
5e8a321a36 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-12 13:47:22 +02:00
HJfod
d95c2f3e3c loader stuff
- remove InternalLoader info alerts
 - make sure mods that need early load are early loaded
2022-12-12 13:46:00 +02:00
altalk23
ca61385f0d Merge branch 'main' of https://github.com/geode-sdk/geode 2022-12-12 14:42:47 +03:00
altalk23
d5e0582934 Fix compilation caused from merging 2022-12-12 14:42:20 +03:00
altalk23
a449225d60 Merge branch 'altalk' 2022-12-12 14:09:16 +03:00
HJfod
3897293862 add file::Zip utility for creating Zip files 2022-12-12 12:45:20 +02:00
HJfod
0178b63102 fix mod loading
- Loader::refreshModsList and Loader::loadModsFromDirectory now return void instead of Result and don't fail if one of the mods fail to load
2022-12-12 11:12:37 +02:00
HJfod
9fe9853325 implement back monkey patch to center mod icons on featured bg 2022-12-12 00:49:13 +02:00
HJfod
571d33fa9b add filtering by developer (will rework later)
- rn how it works is that it just filters the list when you click the dev name, although honestly this is kinda neat too
2022-12-12 00:36:26 +02:00
HJfod
afe57c4bc1 add featured items to Index
- also fix index checksum not being saved if you close the game with the console X button like i do when developing
2022-12-12 00:19:54 +02:00
HJfod
596c806fa4 bring back searching
- yeah that
 - also Index::getTags for getting all tags in index now
2022-12-11 23:50:08 +02:00
HJfod
49fbf9c2e4 clean up ModListLayer.cpp 2022-12-11 21:20:03 +02:00
HJfod
f59e82f682 change how tag node colors work to just pick one from a predefined array 2022-12-11 21:17:08 +02:00
HJfod
f8c307dd6e update tag node to look less bad 2022-12-11 20:36:32 +02:00
HJfod
880b0dab41 fix loader crashing if mods fail to load (again) 2022-12-11 20:23:42 +02:00
HJfod
9e3e9ed856 fix some uses of m_ in structs 2022-12-11 19:45:33 +02:00
HJfod
6456a3fcc5 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-11 19:39:00 +02:00
altalk23
a137fd9637 fix filesystem for windows 2022-12-11 14:37:57 +03:00
camila314
9465d7ff75 UILayer id 2022-12-10 23:10:52 -06:00
camila314
08df8c627a GJGarageLayer ids 2022-12-10 22:54:09 -06:00
altalk23
3a31efe113 implement pimpl for loader 2022-12-10 19:30:14 +03:00
camila314
5921c96bcb string id helpers and editorui fully done 2022-12-09 23:08:25 -06:00
HJfod
286bdb2bc6 standardization
- remove m_ prefix from structs
 - make IPC event members public
 - make IPC event reply as json
2022-12-09 21:29:21 +02:00
HJfod
b3b5370c4b remove advanced settings as early load is handled through mod.json now 2022-12-09 21:00:31 +02:00
HJfod
3b1a11e11f index work
- installing mods works again
 - add EventListener::setFilter
 - fix loader panicking if some mods failed to load
2022-12-09 15:13:08 +02:00
HJfod
92c22d25e4 rename UpdateError to UpdateFailed 2022-12-09 12:53:49 +02:00
camila314
44bcf1844a macos dir issue 2022-12-08 21:25:58 -06:00
HJfod
7397193e57 index is looking good
- mod dependencies reworked to be much less bad and actually good now
 - mod dependencies finally check the version
 - support for dynamic versions for dependencies (<=vX.X.X, ==vX.X.X, >=vX.X.X)
 - index is now ready for implementing mod installation, then we're done with this massive sausage package
2022-12-09 00:28:05 +02:00
HJfod
28b413d636 make VersionInfo constexpr 2022-12-08 22:04:02 +02:00
HJfod
17a13f22cc add update indicator back to MenuLayer 2022-12-08 21:31:10 +02:00
HJfod
84bdeb7beb index work!!
- add tag support for index
 - rename CategoryNode to TagNode
 - add them back to the UI + fix spacing issues related to them
 - deleted ModListView, now using a generic ListView with the mod cells added as children to it
2022-12-08 21:15:06 +02:00
camila314
77bd2743d4 loader cleanup 2022-12-08 12:00:23 -06:00
HJfod
311eb2e356 work
- fix file::listFiles
 - temporarily make loader mod min version very low to work with index
 - index now properly updates
2022-12-08 13:35:02 +02:00
HJfod
9da9493816 fix Unzip::intoDir not deleting the zip after 2022-12-08 13:08:45 +02:00
HJfod
037602ecea more work on index
- fix index not being a static instance
 - fix small stuff related mods list UI including index updating and error messages
 - fix Unzip directories not being created relatively properly
2022-12-08 13:06:11 +02:00
HJfod
82c3179885 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-08 11:53:49 +02:00
camila314
282797b0ea Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-07 13:39:09 -06:00
camila314
6331c37ac6 what did i do 2022-12-07 13:39:07 -06:00
HJfod
e0d7dbf15b index is now download correctly + that is reported in the UI 2022-12-07 21:21:50 +02:00
HJfod
996acf15aa Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-07 12:37:10 +02:00
HJfod
b4b9986fa5 tryna fix crash due to events 2022-12-07 12:35:50 +02:00
HJfod
956ad1d6d5 many changes for updating Index
- events now follow a public const member pattern instead of getters
 - more file utils
 - ModInfoLayer split into LocalModInfoPopup and IndexItemInfoPopup to reduce uses of ugly variant
 - same with ModCell
 - lots of restructuring related to UI anyway
 - Index also got tons of redesigning
 - much more i've forgotten
 - this commit compiles, surprisingly enough, but it's not usable as installing mods through index was removed
 - remove duplicate LevelSearchLayer ids
2022-12-06 21:22:03 +02:00
HJfod
08934132d8 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-04 18:41:14 +02:00
altalk23
20a2dc9f07 fix events and cleanup 2022-12-04 19:39:40 +03:00
altalk23
c116b47a61 Merge branch 'altalk' of https://github.com/altalk23/geode into altalk 2022-12-03 17:28:09 +03:00
alk
780aaf33f8
remove getFieldIndex from Intermediate 2022-12-03 16:59:55 +03:00
alk
cf4f058945
Move getFieldIndexForClass to source 2022-12-03 16:51:46 +03:00
altalk23
e8fcb57c9f some formatting 2022-12-03 15:24:31 +03:00
altalk23
a776b167a9 merge geode-sdk/main 2022-12-03 14:49:52 +03:00