Commit Graph

13791 Commits

Author SHA1 Message Date
csoler
40832734cc
fixed double definitions of roles 2019-02-26 11:29:10 +01:00
csoler
16cae622e3
fixed icons in attachment and read columns 2019-02-26 10:46:32 +01:00
defnax
bdf8d68c34 Added more actions to People V2 Thumbed View
Added action for send invite
Added action for add to contacts
Added action for person details view
Added menu for circles
Added to display votes on Identity widget
2019-02-25 20:23:47 +01:00
chelovechishko
32e18c7f71 gui: rspermissionmatrixwidget: draw permission popup to the left
of the cursor instead of beyond the edge of screen
2019-02-18 20:53:36 +09:00
G10h4ck
54899f8378
Merge pull request #1477 from PhenomRetroShare/Fix_ClangWarnings
Fix clang warnings
2019-02-17 11:11:20 -03:00
chelovechishko
209e1541ff gui: rspermissionmatrixwidget: use define for qt::black 2019-02-17 18:36:09 +09:00
Gioacchino Mazzurco
9e70aa0a98
Fix compile error on OSX 2019-02-16 17:09:35 -03:00
Gioacchino Mazzurco
5ff4ebbd12
Fix retroshare-gui compilation after RsReputations refactoring 2019-02-16 11:42:22 -03:00
Gioacchino Mazzurco
a6e8a27fc0
Add RsReputations JSON API 2019-02-16 11:41:31 -03:00
chelovechishko
55ff018166 gui: rspermissionmatrixwidget: fix name.length check with proper number 2019-02-16 23:32:00 +09:00
Gioacchino Mazzurco
ea7773f86d
Refactor RsReputations for compatibility with JSON API 2019-02-15 15:29:36 -03:00
Gioacchino Mazzurco
cca8a666c3
Merge branch '0.6.5'
Merge OBS recipes improvements
2019-02-15 08:57:23 -03:00
Phenom
4c50d73668 Add Compil Flag -Wno-inconsistent-missing-override to hide this type of
warnings:

../../../trunk/libretroshare/src/services/p3idservice.h:226:24: warning:
'getServiceInfo' overrides a member function but is not marked
'override' [-Winconsistent-missing-override]
        virtual RsServiceInfo getServiceInfo();
                              ^
../../../trunk/libretroshare/src/gxs/rsgenexchange.h:122:27: note:
overridden virtual function is here
    virtual RsServiceInfo getServiceInfo() = 0;
                          ^
2019-02-15 00:14:42 +01:00
Phenom
1e65089930 Fix Warnings for class 'RsGxsChannelPost' was previously declared as a
struct

In file included from ../../../trunk/retroshare-gui/src/gui/gxschannels/
GxsChannelPostsWidget.cpp:27:
In file included from temp/ui/ui_GxsChannelPostsWidget.h:31:
../../../trunk/retroshare-gui/src/gui/gxschannels/
GxsChannelFilesWidget.h:28:1: warning: class 'RsGxsChannelPost' was
previously declared as a struct [-Wmismatched-tags]
class RsGxsChannelPost;
^
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:65:8: note:
previous use is here
struct RsGxsChannelPost : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/gxschannels/
GxsChannelFilesWidget.h:28:1: note: did you mean struct here?
class RsGxsChannelPost;
^~~~~
struct
2019-02-15 00:06:48 +01:00
Phenom
bb01198772 Fix Warnings for 'ForumModelPostEntry' defined as a struct here but
previously declared as a class

In file included from ../../../trunk/retroshare-gui/src/gui/gxsforums/
GxsForumThreadWidget.cpp:31:
../../../trunk/retroshare-gui/src/gui/gxsforums/GxsForumModel.h:34:1:
warning: 'ForumModelPostEntry' defined as a struct here but previously
declared as a class [-Wmismatched-tags]
struct ForumModelPostEntry
^
../../../trunk/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h:
39:1: note: did you mean struct here?
class ForumModelPostEntry;
^~~~~
struct
2019-02-15 00:04:00 +01:00
Phenom
a9962c1d2c Fix Warnings for class 'RsGxsForumMsg' was previously declared as a
struct

In file included from ../../../trunk/retroshare-gui/src/gui/gxsforums/
GxsForumsDialog.cpp:23:
../../../trunk/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h:
33:1: warning: class 'RsGxsForumMsg' was previously declared as a struct
[-Wmismatched-tags]
class RsGxsForumMsg;
^
../../../trunk/libretroshare/src/retroshare/rsgxsforums.h:83:8: note:
previous use is here
struct RsGxsForumMsg : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h:
33:1: note: did you mean struct here?
class RsGxsForumMsg;
^~~~~
struct
2019-02-15 00:02:12 +01:00
Phenom
96bbdac8a3 Fix Warnings for class 'FileInfo' was previously declared as a struct
In file included from ../../../trunk/retroshare-gui/src/gui/FileTransfer/
TransfersDialog.cpp:31:
../../../trunk/retroshare-gui/src/gui/FileTransfer/
FileTransferInfoWidget.h:31:1: warning: class 'FileInfo' was previously
declared as a struct [-Wmismatched-tags]
class FileInfo ;
^
../../../trunk/libretroshare/src/retroshare/rstypes.h:188:8: note:
previous use is here
struct FileInfo : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/FileTransfer/
FileTransferInfoWidget.h:31:1: note: did you mean struct here?
class FileInfo ;
^~~~~
struct
2019-02-14 23:49:30 +01:00
Phenom
67f1ba5a5d Fix Warnings for class 'FileChunksInfo' was previously declared as a
struct

In file included from ../../../trunk/retroshare-gui/src/gui/FileTransfer/
TransfersDialog.cpp:29:
../../../trunk/retroshare-gui/src/gui/FileTransfer/DetailsDialog.h:28:1:
warning: class 'FileChunksInfo' was previously declared as a struct [-
Wmismatched-tags]
class FileChunksInfo ;
^
../../../trunk/libretroshare/src/retroshare/rstypes.h:398:8: note:
previous use is here
struct FileChunksInfo : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/FileTransfer/DetailsDialog.h:28:1:
note: did you mean struct here?
class FileChunksInfo ;
^~~~~
struct
2019-02-14 23:47:37 +01:00
Phenom
3ddf59c5cb Fix Warnings for class 'RsGxsCommentService' was previously declared as
a struct

In file included from ../../../trunk/retroshare-gui/src/gui/
RetroShareLink.cpp:33:
In file included from ../../../trunk/retroshare-gui/src/gui/gxschannels/
GxsChannelDialog.h:24:
../../../trunk/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h:44:1:
warning: class 'RsGxsCommentService' was previously declared as a struct
[-Wmismatched-tags]
class RsGxsCommentService;
^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:161:8: note:
previous use is here
struct RsGxsCommentService
       ^
../../../trunk/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h:44:1:
note: did you mean struct here?
class RsGxsCommentService;
^~~~~
struct
2019-02-14 23:45:08 +01:00
Phenom
8904f732bd Fix Warnings for 'RsGroupInfo' defined as a struct here but previously
declared as a class

In file included from ../../../trunk/retroshare-gui/src/gui/
RemoteDirModel.cpp:30:
../../../trunk/libretroshare/src/retroshare/rspeers.h:339:1: warning:
'RsGroupInfo' defined as a struct here but previously declared as a class
[-Wmismatched-tags]
struct RsGroupInfo : RsSerializable
^
../../../trunk/retroshare-gui/src/gui/common/GroupDefs.h:24:1: note: did
you mean struct here?
class RsGroupInfo;
^~~~~
struct
2019-02-14 23:42:17 +01:00
Phenom
a9a8caf2d4 Fix Warnings for class 'DirDetails' was previously declared as a struct
In file included from ../../../trunk/retroshare-gui/src/gui/
RemoteDirModel.cpp:21:
../../../trunk/retroshare-gui/src/gui/RemoteDirModel.h:43:1: warning:
class 'DirDetails' was previously declared as a struct [-Wmismatched-
tags]
class DirDetails;
^
../../../trunk/libretroshare/src/retroshare/rstypes.h:311:8: note:
previous use is here
struct DirDetails : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/RemoteDirModel.h:43:1: note: did
you mean struct here?
class DirDetails;
^~~~~
struct
2019-02-14 23:40:16 +01:00
Phenom
b2572354fb Fix Warnings for 'RsPeerDetails' defined as a struct here but previously
declared as a class

In file included from ../../../trunk/retroshare-gui/src/gui/
MessengerWindow.cpp:29:
../../../trunk/libretroshare/src/retroshare/rspeers.h:207:1: warning:
'RsPeerDetails' defined as a struct here but previously declared as a
class [-Wmismatched-tags]
struct RsPeerDetails : RsSerializable
^
../../../trunk/retroshare-gui/src/gui/common/StatusDefs.h:27:1: note:
did you mean struct here?
class RsPeerDetails;
^~~~~
struct
2019-02-14 23:38:16 +01:00
Phenom
b80d7cb5ae Fix Warnings for class 'RsGxsForumGroup' was previously declared as a
struct

../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:40:1:
warning: class 'RsGxsForumGroup' was previously declared as a struct [-
Wmismatched-tags]
class RsGxsForumGroup;
^
../../../trunk/libretroshare/src/retroshare/rsgxsforums.h:55:8: note:
previous use is here
struct RsGxsForumGroup : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:40:1: note:
did you mean struct here?
class RsGxsForumGroup;
^~~~~
struct
2019-02-14 23:15:54 +01:00
Phenom
746a5ad89c Fix Warnings for class 'RsGxsChannelGroup' was previously declared as a
struct

In file included from ../../../trunk/retroshare-gui/src/gui/feeds/
SecurityItem.cpp:28:
../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:39:1:
warning: class 'RsGxsChannelGroup' was previously declared as a struct
[-Wmismatched-tags]
class RsGxsChannelGroup;
^
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:46:8: note:
previous use is here
struct RsGxsChannelGroup : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:39:1: note:
did you mean struct here?
class RsGxsChannelGroup;
^~~~~
struct
2019-02-14 23:11:51 +01:00
Phenom
0b9cd9743a Fix Warnings for class 'RsIdentityDetails' was previously declared as a
struct

In file included from ../../../trunk/retroshare-gui/src/gui/
NetworkDialog.cpp:36:
../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:33:1:
warning: class 'RsIdentityDetails' was previously declared as a struct
[-Wmismatched-tags]
class RsIdentityDetails;
^
../../../trunk/libretroshare/src/retroshare/rsidentity.h:294:8: note:
previous use is here
struct RsIdentityDetails : RsSerializable
       ^
../../../trunk/retroshare-gui/src/gui/msgs/MessageComposer.h:33:1: note:
did you mean struct here?
class RsIdentityDetails;
^~~~~
struct
2019-02-14 23:09:09 +01:00
Gioacchino Mazzurco
598521d1ac
Implement JSON API for circles 2019-02-14 18:52:35 -03:00
Phenom
a25f974473 Fix Warnings for 'RsGxsIfaceHelper' defined as a struct here but
previously declared as a class

In file included from ../../../trunk/retroshare-gui/src/main.cpp:66:
In file included from ../../../trunk/libretroshare/src/retroshare/
rsidentity.h:31:
../../../trunk/libretroshare/src/retroshare/rsgxsifacehelper.h:43:1:
warning: 'RsGxsIfaceHelper' defined as a struct here but previously
declared as a class [-Wmismatched-tags]
struct RsGxsIfaceHelper
^
../../../trunk/retroshare-gui/src/util/RsGxsUpdateBroadcast.h:28:1:
note: did you mean struct here?
class RsGxsIfaceHelper;
^~~~~
struct
2019-02-14 22:48:33 +01:00
Phenom
52e4a3cd00 Fix Warnings for 'RsGxsChanges' defined as a struct here but previously
declared as a class

In file included from ../../../trunk/retroshare-gui/src/main.cpp:66:
In file included from ../../../trunk/libretroshare/src/retroshare/
rsidentity.h:31:
In file included from ../../../trunk/libretroshare/src/retroshare/
rsgxsifacehelper.h:30:
../../../trunk/libretroshare/src/retroshare/rsgxsiface.h:76:1: warning:
'RsGxsChanges' defined as a struct here but previously declared as a
class [-Wmismatched-tags]
struct RsGxsChanges
^
../../../trunk/retroshare-gui/src/util/RsGxsUpdateBroadcast.h:29:1:
note: did you mean struct here?
class RsGxsChanges;
^~~~~
struct
2019-02-14 22:47:57 +01:00
Phenom
35373c36c5 Fix Warnings for class 'RsIdentity' was previously declared as a struct
In file included from ../../../trunk/libresapi/src/api/ApiServer.cpp:22:
In file included from ../../../trunk/libresapi/src/api/ApiServer.h:27:
In file included from ../../../trunk/libresapi/src/api/PeersHandler.h:27:
../../../trunk/libresapi/src/api/ChatHandler.h:32:1: warning: class
'RsIdentity' was previously declared as a struct [-Wmismatched-tags]
class RsIdentity;
^
../../../trunk/libretroshare/src/retroshare/rsplugin.h:68:8: note:
previous use is here
struct RsIdentity;
       ^
In file included from ../../../trunk/libresapi/src/api/ApiServerMHD.cpp:
40:
In file included from ../../../trunk/libresapi/src/api/ApiServer.h:27:
In file included from ../../../trunk/libresapi/src/api/PeersHandler.h:27:
../../../trunk/libresapi/src/api/ChatHandler.h:32:1: warning: class
'RsIdentity' was previously declared as a struct [-Wmismatched-tags]
class RsIdentity;
^
../../../trunk/libretroshare/src/retroshare/rsplugin.h:68:8: note:
previous use is here
struct RsIdentity;
       ^
2019-02-14 22:37:03 +01:00
Phenom
78e8758b9e Fix Warnings for 'p3PhotoService::msgsChanged' hides overloaded virtual
function

In file included from ../../../trunk/libretroshare/src/rsserver/
rsinit.cc:769:
../../../trunk/libretroshare/src/services/p3photoservice.h:59:10:
warning: 'p3PhotoService::msgsChanged' hides overloaded virtual function
[-Woverloaded-virtual]
    void msgsChanged(std::map<RsGxsGroupId,
         ^
../../../trunk/libretroshare/src/retroshare/rsphoto.h:206:18: note:
hidden overloaded virtual function 'RsPhoto::msgsChanged' declared here:
type mismatch at 1st parameter ('GxsMsgIdResult &' (aka
'map<t_RsGenericIdType<CERT_SIGN_LEN, false,
RS_GENERIC_ID_GXS_GROUP_ID_TYPE>, set<t_RsGenericIdType<SHA1_SIZE,
false, RS_GENERIC_ID_SHA1_ID_TYPE> > > &') vs 'std::map<RsGxsGroupId,
std::vector<RsGxsMessageId> > &' (aka
'map<t_RsGenericIdType<CERT_SIGN_LEN, false,
RS_GENERIC_ID_GXS_GROUP_ID_TYPE>, vector<t_RsGenericIdType<SHA1_SIZE,
false, RS_GENERIC_ID_SHA1_ID_TYPE> > > &'))
    virtual void msgsChanged(GxsMsgIdResult& msgs) = 0;
                 ^
2019-02-14 22:15:53 +01:00
Phenom
8806840989 Fix Warnings for 'RsGxsChannels::createComment' and
'RsGxsChannels::createVote' hides overloaded virtual function

In file included from temp/moc/moc_GxsChannelGroupItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelGroupItem.h:24:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:116:15:
warning: 'RsGxsChannels::createComment' hides overloaded virtual
function [-Woverloaded-virtual]
        virtual bool createComment(RsGxsComment& comment) = 0;
                     ^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:172:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createComment'
declared here: different number of parameters (2 vs 1)
        virtual bool createComment(uint32_t &token, RsGxsComment
&comment) = 0;
                     ^
In file included from temp/moc/moc_GxsChannelGroupItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelGroupItem.h:24:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:132:15:
warning: 'RsGxsChannels::createVote' hides overloaded virtual function
[-Woverloaded-virtual]
        virtual bool createVote(RsGxsVote& vote) = 0;
                     ^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:173:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createVote'
declared here: different number of parameters (2 vs 1)
        virtual bool createVote(uint32_t &token, RsGxsVote &vote) = 0;
                     ^
In file included from temp/moc/moc_GxsChannelPostItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelPostItem.h:26:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:116:15:
warning: 'RsGxsChannels::createComment' hides overloaded virtual
function [-Woverloaded-virtual]
        virtual bool createComment(RsGxsComment& comment) = 0;
                     ^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:172:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createComment'
declared here: different number of parameters (2 vs 1)
        virtual bool createComment(uint32_t &token, RsGxsComment
&comment) = 0;
                     ^
In file included from temp/moc/moc_GxsChannelPostItem.cpp:9:
In file included from temp/moc/../../../../../trunk/retroshare-gui/src/
gui/feeds/GxsChannelPostItem.h:26:
../../../trunk/libretroshare/src/retroshare/rsgxschannels.h:132:15:
warning: 'RsGxsChannels::createVote' hides overloaded virtual function
[-Woverloaded-virtual]
        virtual bool createVote(RsGxsVote& vote) = 0;
                     ^
../../../trunk/libretroshare/src/retroshare/rsgxscommon.h:173:15: note:
hidden overloaded virtual function 'RsGxsCommentService::createVote'
declared here: different number of parameters (2 vs 1)
        virtual bool createVote(uint32_t &token, RsGxsVote &vote) = 0;
                     ^
2019-02-14 21:58:33 +01:00
Phenom
e7fa5556b0 Fix warnings for a lot of destructor called on non-final 'xxx' that has
virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]

In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/algorithm:62:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/bits/stl_algo.h:62:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/
8.2.1/../../../../include/c++/8.2.1/bits/stl_tempbuf.h:60:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:98:7: warning: destructor called on non-final
'xxx' that has virtual functions but non-virtual destructor [-Wdelete-
non-virtual-dtor]
    { __pointer->~_Tp(); }
      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:108:11: note: in instantiation of function
template specialization 'std::_Destroy<xxx>' requested here
            std::_Destroy(std::__addressof(*__first));
                 ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:137:2: note: in instantiation of function
template specialization 'std::_Destroy_aux<false>::__destroy<xxx *>'
requested here
        __destroy(__first, __last);
        ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:206:7: note: in instantiation of function
template specialization 'std::_Destroy<xxx *>' requested here
      _Destroy(__first, __last);
      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_vector.h:567:7: note: in instantiation of function
template specialization 'std::_Destroy<xxx *, xxx>' requested here
        std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
             ^
../../../trunk/libretroshare/src/retroshare/xxx:*:*: note: in
instantiation of member function 'std::vector<xxx, std::allocator<xxx>
>::~vector' requested here
        Something():
        ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/
8.2.1/bits/stl_construct.h:98:19: note: qualify call to silence this
warning
    { __pointer->~_Tp(); }
                  ^
2019-02-14 20:40:52 +01:00
Gioacchino Mazzurco
6bb7711e03
OBS add tor packaging into the appimage 2019-02-14 10:07:45 -03:00
G10h4ck
164a28eb32
Merge pull request #1261 from PhenomRetroShare/Add_RsCollAutoDownload
Add RsCollection's content automatically download option.
2019-02-13 22:22:56 -03:00
G10h4ck
c4a0c18b18
Merge pull request #1317 from sehraf/pr_further_improve_fulltype
further conversion to new wrapper function
2019-02-13 22:21:17 -03:00
Gioacchino Mazzurco
6633e8bb28
Expose RsIdentity JSON API 2019-02-13 17:08:38 -03:00
Gioacchino Mazzurco
ac1d24dba4
Remove misleading comment from channels public API 2019-02-13 17:07:59 -03:00
Gioacchino Mazzurco
7a2c81d06b
Deprecate rs_usleep as it is not useful anymore
C++11 standard library offer better functions
2019-02-13 17:07:03 -03:00
Gioacchino Mazzurco
d7ecc2686f
Use safer temp diretory for OBS prepare source script 2019-02-11 11:16:57 -03:00
Gioacchino Mazzurco
3f2a1d52c2
Update open build service recipes 2019-02-11 10:54:33 -03:00
defnax
019233e840 fixed subscribe buttons stylesheet 2019-02-10 20:52:25 +01:00
defnax
5bb0fc48b0 removed hide label seems get concflicts on github check 2019-02-10 19:59:43 +01:00
Gioacchino Mazzurco
a96310d45e
Avoid depending on libupnp on linux if it is not used 2019-02-10 15:43:28 -03:00
defnax
54e3ca3485 Hide Site labels when theres is no link 2019-02-10 18:50:48 +01:00
Gioacchino Mazzurco
e9d817e126
Make it possible to choose at compile time UPnP library to use 2019-02-10 11:46:17 -03:00
csoler
7a7ebed9d2
improved Mail model 2019-02-10 15:13:39 +01:00
csoler
a2ed69f01c
Merge pull request #1474 from defnax2k/fix-ui-width/height-small-as-possible
fix ui width & height back to normal size
2019-02-10 14:19:32 +01:00
defnax
8502b7d8ff fix ui width & height back to normal size 2019-02-10 14:14:59 +01:00
Gioacchino Mazzurco
5009a4e243
Better versioning for OBS 2019-02-08 15:18:14 -03:00
csoler
b7c8c16e29
inserted the model into the widget 2019-02-08 15:41:20 +01:00