Commit Graph

1508 Commits

Author SHA1 Message Date
Guilherme Leme
7d6156d298 [Issue-13238]-Refactored files to fit the new presentation structure (With the removable attribute). And refactored message services as well. 2022-01-21 11:49:44 -03:00
Anton Georgiev
6c196be63e
Merge pull request #13931 from zhem0004/BorderCase
FixGracePeriod
2022-01-20 08:52:27 -05:00
Aleksandar Vasilev
3b5781402c
Corrected HashMap updates in GuestsWaiting.scala 2022-01-20 04:11:34 +02:00
Bohdan Zhemelinskyi
8582ccd6db fixed join permission for Phone Users 2022-01-19 18:35:04 +00:00
Aleksandar Vasilev
6935b8293c
Merge branch 'bigbluebutton:develop' into position-in-waiting-queue 2022-01-16 02:59:40 +01:00
Aleksandar Vasilev
6103ae960d
Merge branch 'bigbluebutton:develop' into develop-private-guest-lobby-messages 2022-01-16 02:58:43 +01:00
Bohdan Zhemelinskyi
df3da31f39 fixUsersGettBannedFromPhone 2022-01-13 18:43:16 +00:00
prlanzarin
f3e3d397a6 fix(screenshare): add akka-apps|webrtc-sfu broadcast stop sys msg 2022-01-13 12:34:49 -03:00
prlanzarin
8e822f4a6d fix(screenshare): add state sync between bbb-html5 and akka-apps
A TODO 5 years in the making
2022-01-12 19:36:38 -03:00
Gustavo Trott
baf1b53407 Resolve conflicts in Ramon's 2.4 merge 2022-01-12 19:35:00 -03:00
Gustavo Trott
7d55cac005 Implements virtualBackgroundsDisabled param to API /create 2022-01-12 18:21:58 -03:00
germanocaumo
b71b9a0c85 fix(polls): fix wrong typed poll results due to race condition
Sometimes a vote for a new answer text was being computed as a vote for the first option due to poll collection late update.
2022-01-12 17:41:02 +00:00
Ramón Souza
f6e65f58c5 merge 2.4 into develop and resolve conflicts - partial 2022-01-12 16:40:45 +00:00
SashoVihVas
1862f60e05 Add private guest lobby messages 2022-01-12 14:10:30 +00:00
SashoVihVas
2d7c82e73d Add position in waiting queue for guest users 2022-01-12 03:08:43 +00:00
hiroshisuga
142f9e447a
Fix annotation order for pen drawings #12249 2022-01-05 16:39:44 -05:00
Anton Georgiev
b41f895ab8
Merge pull request #13850 from Tainan404/remove-grace-period
Remove Grace Period for locked user in chat
2022-01-05 14:51:16 -05:00
Bohdan Zhemelinskyi
323bb606ef FixGracePeriod 2022-01-04 18:41:11 +00:00
Max Franke
85ad9a5e30 feat(video): webcam video pinning server side logic
Add the new ChangeUserPinState messages to handle the new video pinning
functionality
2021-12-21 16:58:38 -03:00
root
427cd8ac34 Merge branch 'develop' into origin/jdk-17-upgrade 2021-12-17 15:59:00 +00:00
Anton Georgiev
69aba9ea6a
Merge pull request #13853 from zhem0004/fixModifyWhiteboardAccess
fixWhiteboardModifyPermissionsCheck
2021-12-15 14:08:26 -05:00
Tainan Felipe
50b10a1288 Add else returning the state 2021-12-15 14:02:39 -03:00
Anton Georgiev
b0c66caef9
Merge pull request #13915 from prlanzarin/u24-sprawling-pier
feat(webcams): add option to allow moderators to close another user's webcams
2021-12-15 09:24:11 -05:00
Gustavo Trott
35e465387b Merge of last Dashboard 2.4 improvements 2021-12-15 10:35:14 -03:00
Anton Georgiev
3433396672
Merge pull request #13895 from gustavotrott/dashboard-cookies-fix
fix: Reduces Dashboard cookie lifetime
2021-12-14 13:04:07 -05:00
Anton Georgiev
26b19a1b55
Merge pull request #13826 from gustavotrott/dashboard-grouped-by-extId
Refactor: Dashboard grouped by extId
2021-12-14 10:17:18 -05:00
prlanzarin
21c124b854 feat(webcams): server-side logic to allow moderators to close user's webcams
Includes a new create param/web conf called allowModsToEjectCameras, false by
default.

Ejection does not work in breakout rooms or with non-mod users

Ejection closes _all_ webcams shared by the target user
2021-12-13 19:49:41 +00:00
Anton Georgiev
dfcd6a4fe8 Resolved akka-apps conflicts 2021-12-10 23:08:40 +00:00
Gustavo Trott
63f60f5009 Reduce Dashboard cookie timelife 2021-12-10 17:15:47 -03:00
Anton Georgiev
797fc49633 TEMP 2021-12-09 20:37:05 +00:00
Anton Georgiev
75a64da3cc
refactor: Decrease time allowed for reconnection
We are receiving feedback that due to this 30s period that the user remains in the room, if a user exits a breakout room, that  user won't be able to re-join it until 30s elapses.
More investigation is needed but given that this 30s value is somewhat large, I'm [temporarily] reducing it to 10s. Related #13531
2021-12-09 11:46:51 -05:00
Gustavo Trott
a8042a5b9e Allow multiple choices poll in Dashboard 2021-12-08 10:40:09 -03:00
Bohdan Zhemelinskyi
3690c02b74 fixWhiteboardModifyPermissionsCheck 2021-12-07 20:02:28 +00:00
Tainan Felipe
7d6cc80eb0 Remove ejection behavior from locked users who sent chat message 2021-12-07 15:12:01 -03:00
Tainan Felipe
f98e57a617 Remove Grace Period for locked user on chat 2021-12-07 15:06:21 -03:00
Gustavo Trott
f50be91411 Only merge users (extId) if there is no overlap between differents intIds 2021-12-07 14:41:16 -03:00
hiroshisuga
0bc62f66f4
Feat(meeting): minimise sequential user pick (#13831)
Updating random user picker to reduce the probability that the exact same viewers would be selected first in successive random-pick runs
2021-12-07 12:36:34 -05:00
root
f9ecbb135b upgrading dependency of akka-bbb-apps 2021-12-04 10:44:11 +00:00
hiroshisuga
52bc4c5a90
remove a duplicated condition 2021-12-04 18:51:22 +09:00
Anton Georgiev
dce14adf50
Merge pull request #13803 from zhem0004/fixAnnotationPermissionCheck
Fixed annotation permission
2021-12-03 15:18:25 -05:00
Gustavo Trott
f44801e13c Groups dashboard data by extId 2021-12-03 15:47:16 -03:00
root
ce7362380b Merge branch 'develop' into origin/jdk-17-upgrade 2021-12-03 14:04:02 +00:00
Anton Georgiev
a4a37233a9
Merge pull request #13766 from Tainan404/fix-ejected-user-not-validated
fix: Fixes the validation of banned users
2021-12-02 16:12:29 -05:00
Anton Georgiev
c89dde225e
Merge pull request #13817 from zhem0004/FixEmojiStatusPermissions
fix: Fix Emoji Permissions in akka-apps
2021-12-02 16:02:57 -05:00
Anton Georgiev
efd3c160fa
Merge pull request #13790 from prlanzarin/u24-second-tragic-laurel
fix(webcams): viewer accounting, improved perm. checks in akka-apps, [...]
2021-12-02 15:11:19 -05:00
Bohdan Zhemelinskyi
404bc83f18 FixEmojiPermissions 2021-12-02 18:37:47 +00:00
Gustavo Trott
54d510bae1 Merge remote-tracking branch 'upstream/develop' into fix-breakout-freejoin-assignments 2021-12-02 11:10:58 -03:00
Gustavo Trott
fe944c1bdb Fix breakouts assignments when freeJoin is true 2021-12-02 11:05:42 -03:00
Bohdan Zhemelinskyi
af947d68a2 Fixed annotation permission 2021-12-01 20:29:20 +00:00
Anton Georgiev
94f85ad68a
Merge pull request #13678 from gustavotrott/breakouts-n-groups-assignments-2.5
feat: Auto assign Breakouts (names and users) using previous rooms info or groups info
2021-12-01 15:01:23 -05:00
prlanzarin
3e6b849458 fix(webcams): viewer accounting, improved perm. checks in akka-apps, ...
- Improve permission checks by making them lock-settings aware
  - Account for camera viewers in akka-apps. They should now be
    present in the analytics endpoint
  - Further integrate akka-apps and webrtc-sfu so their states remain
    consistent. We'd also like to be able to slowly dehydrate some
    of the logic that today resides in webrtc-sfu and move it to
    akka-apps and this is a first step.
  - Add additional broadcasted stream ID checks (ownership and streamID
    format)
2021-11-30 18:40:37 +00:00
root
3f2f1678ce upgrading akka-bbb-apps 2021-11-29 17:03:44 +00:00
Tainan Felipe
30cef81400 Fixes the validation of banned users 2021-11-26 15:34:38 -03:00
Gustavo Trott
df60295d22 Implements join param excludeFromDashboard 2021-11-26 14:07:03 -03:00
Gustavo Trott
4ebd27065a Include presentations info to Learning Dashboard Json 2021-11-17 14:42:34 -03:00
Gustavo Trott
8555187df3 Resolve conflicts with Develop branch 2021-11-11 14:02:03 -03:00
Gustavo Trott
e919e24b38 Auto assign breakout names and users using lastBreakout or groups 2021-11-11 10:10:31 -03:00
Anton Georgiev
019a0b25b9
Merge pull request #13564 from jfsiebel/remove-unused-property-chat-message
Remove unused properties from chat message event
2021-11-02 15:12:56 -04:00
Anton Georgiev
c60ef3c179
Merge pull request #13253 from ramonlsouza/PR-11359
feat: multiple choice poll
2021-10-26 14:42:29 -04:00
Ramón Souza
1807122a84 fix multiple choice custom poll 2021-10-26 17:24:47 +00:00
Joao Siebel
7a118ed3b8 Remove unused properties from chat message event record. close #11696 2021-10-25 14:46:59 -03:00
Anton Georgiev
1622425cbc Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into 2.4-into-develop 2021-10-22 19:12:58 +00:00
Tiago Jacobs
57c1ea332a
Increase time allowed for reconnection 2021-10-20 15:24:32 -03:00
Ramón Souza
1cc066366f Merge remote-tracking branch 'upstream/develop' into PR-11359 2021-10-19 16:41:36 +00:00
Joao Siebel
1218b8b610 Add constraint for actions in breakouts on akka 2021-10-15 16:25:36 -03:00
Philipp Memmel
e580040e3a Allow non-mod presenters to see and lower raised hands 2021-09-27 11:29:49 +00:00
Ramon Souza
c892a2a5d1 resolve conflicts 2021-09-21 12:06:27 -03:00
Anton Georgiev
0b1f26bd57 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-23-into-24 2021-09-21 14:12:32 +00:00
Ramon Souza
85ded998f2 remove linting 2021-09-17 11:03:09 -03:00
Ramon Souza
0ca1b7896e Merge remote-tracking branch 'upstream/develop' into PR-11359 2021-09-17 09:12:43 -03:00
Gustavo Trott
065dedf0fa Avoid to reset lastModeratorLeftOnInMs when some user leave the meeting 2021-09-16 14:46:16 -03:00
Gustavo Trott
2a348e5f71 Makes Akka stop ScreenShare when External Video is started 2021-09-09 15:27:29 -03:00
Joao Siebel
e51b197049 Prevent VIEWER to get breakout's url for breakouts that he is not assigned 2021-08-31 11:50:30 -03:00
Gustavo Trott
6970a0ab30
Merge branch 'develop' into learning-dashboard-improvements2 2021-08-30 15:23:04 -03:00
Anton Georgiev
4ecb24b4fa Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-aug30 2021-08-30 18:11:16 +00:00
Gustavo Trott
cd15f17394 Refactor all references for activity-report renaming to learning-dashboard 2021-08-25 11:38:35 -03:00
Pedro Beschorner Marin
57e27bb4dc fix(polling): stop current running poll
As far as I could understand, polls are tightly coupled with the meeting
main content area, or at least they were and we still have to deal with
this close relation between them. Not sure if it's something we'll keep
this way forever but, from my candid perspective, looks like this is already
diverging inside the poll model. Polls are indexed by presentation pages,
screenshare or even something called "public" that I'm not 100% what
actually means. My best guess is anything besides the first and the second.

The polling stop process lacks to inform which pollId is scoped at source
so it relies on akka-apps to discover based on the current state of other
apps. This looks like the major problem over this polling termination issue.

Made a few changes at the running poll getter fallback at the polling stop
process. Following the premise that there is only one running poll available,
we make sure to return a valid running poll (if there's one).
2021-08-24 18:56:01 -03:00
Gustavo Trott
465a4c41ec Includes dialIn users to Learning Dashboard 2021-08-18 11:45:24 -03:00
Anton Georgiev
c22875a6d7
Merge pull request #12977 from gustavotrott/learning-dash-improvements
Learning Dashboard: Layout improvements
2021-08-12 14:28:45 -04:00
Gustavo Trott
1d961d9c00 Sort users by moderator/alphabetical order 2021-08-11 18:22:55 -03:00
Gustavo Trott
dc2611632a Adds more details about used Emojis 2021-08-11 14:46:44 -03:00
Joao Siebel
13913a6111 Remove LEGACY option for valid layouts. close #12858 2021-08-10 09:50:13 -03:00
Gustavo Trott
fd4761374f Improvements to set all endedOn/leftOn when meeting is ended 2021-08-04 16:25:22 -03:00
Gustavo Trott
8346f1d9cf Avoid send activity message if it didnt have new activities 2021-08-02 11:50:11 -03:00
Gustavo Trott
42e32b7ba8 Include infos about meeting endedOn and fix problem where user leftOn was never set if meeting ends before they left 2021-08-02 11:16:08 -03:00
Gustavo Trott
184f89c152 Merge branch 'activity-report' of github.com:gustavotrott/bigbluebutton into activity-report 2021-07-23 14:06:34 -03:00
Gustavo Trott
2500d4f767 Removes from Json all start/stop talks info, and inform only the totalTime 2021-07-23 14:02:48 -03:00
Gustavo Trott
eea16c8268 Remove unnecessary codes 2021-07-23 10:47:03 -03:00
Gustavo Trott
284b97840e Remove unnecessary codes 2021-07-23 10:43:28 -03:00
Gustavo Trott
0661712da1 Removes Json content from INFO LOG. To avoid too large logs. 2021-07-23 10:40:57 -03:00
Gustavo Trott
e4ef1582f2
Merge branch 'develop' into activity-report 2021-07-22 11:33:47 -03:00
Gustavo Trott
3c6155a73e Creates config activityReportTracking to enable Activity Report 2021-07-22 11:09:44 -03:00
Anton Georgiev
1abedcc698
Merge pull request #12789 from jfsiebel/implement-default-layout-config
Allow default layout config in bbb-web
2021-07-21 16:11:08 -04:00
Gustavo Trott
b0f9835ffd Merge branch 'develop' into activity-report 2021-07-21 14:20:27 -03:00
Gustavo Trott
21f90fc0e3 Handle anonymous Polls to hide the autor of the answer 2021-07-21 14:16:27 -03:00
Gustavo Trott
c1e39819fe Fix: Stop last user Talk when Audio is disabled or muted 2021-07-20 17:39:36 -03:00
Anton Georgiev
064f525f68
Merge pull request #12646 from jfsiebel/wip-prevent-unasign-assign-spam
WIP Prevent spam of assign presenter role
2021-07-20 16:02:52 -04:00
Joao Siebel
8462465a5f Allow default layout config in bbb-web. close #12668 2021-07-19 11:02:58 -03:00
Gustavo Trott
d0b08f5603 Improvements in screenShare registers 2021-07-16 16:53:47 -03:00
Gustavo Trott
45d4c310c2 Merge branch 'develop' into activity-report 2021-07-13 11:12:45 -03:00
Gustavo Trott
974c8e1945 Adds Screenshare activities 2021-07-13 11:03:52 -03:00
Gustavo Trott
5c602fd2b0
Merge branch 'develop' into breakoutrooms-set-name 2021-07-12 16:31:38 -03:00
Anton Georgiev
b9cc633286 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.3.5-into-develop 2021-07-06 19:36:19 +00:00
Gustavo Trott
0417cbb03f Adds Activity Dashboard initial version and generate activityReportAccessToken 2021-06-30 00:01:46 -03:00
Joao Siebel
fc56678f71 Remove unused import 2021-06-28 10:43:10 -03:00
Gustavo Trott
de9896d8c5 Akka sends pubSub ActivityReportEvtMsg and Bbb-web listen and export the content as Json file 2021-06-24 16:22:27 -03:00
Joao Siebel
95e9cd3ef1 Add role check to allow webcamsOnlyForModerator changes. close #12636 2021-06-23 15:28:37 -03:00
Gustavo Trott
54dfe4bc3e ActivityTracker handle/stores more important events 2021-06-23 11:51:10 -03:00
Joao Siebel
1d7bab7e0b Prevent unnecessary call to unassign presenter and add logs 2021-06-22 14:44:34 -03:00
germanocaumo
349af23f0a Merge branch 'develop' of https://github.com/bigbluebutton/bigbluebutton into anonymous-polls 2021-06-16 21:54:28 +00:00
Anton Georgiev
5ee5ed1970 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-june16 2021-06-16 19:54:28 +00:00
germanocaumo
31138d440e fix(poll): readd userId for non secret poll record event 2021-06-16 17:01:56 +00:00
Gustavo Trott
37dea2215b Translates dynamically breakout room Names when default name is being used 2021-06-14 16:59:27 -03:00
Richard Alam
b6e49e5218 Merge branch 'develop' into paultrudel-analytics-actor-for-meeting-info 2021-06-12 01:29:28 +00:00
Richard Alam
ef766217f7 Merge branch 'analytics-actor-for-meeting-info' of https://github.com/paultrudel/bigbluebutton into paultrudel-analytics-actor-for-meeting-info 2021-06-12 01:28:37 +00:00
Anton Georgiev
1369cb2269
Merge pull request #12505 from gustavotrott/breakoutroom-inscrease-time
Add 'Extend duration' option for breakout rooms
2021-06-11 16:33:15 -04:00
germanocaumo
7bedcb08e5 fix(poll): don't translate user/presenter typed answers
When the answer is not default (Custom or UserResponse), don't translate the answers.
2021-06-11 16:55:53 +00:00
paultrudel
90fd6f4d2f analytics endpoint now successfully returns meeting info 2021-06-11 09:31:51 -04:00
Gustavo Trott
c33f2f48ef Add Actor to receive and store user activities 2021-06-09 10:00:18 -03:00
Gustavo Trott
5b579d3a16 Avoid extend breakout rooms time exceed parent meeting remaining time 2021-06-07 14:19:20 -03:00
tibroc
8f80f95251 removed userId and added secretPoll flag to RecordEvents 2021-06-07 11:01:34 +02:00
tibroc
1f329a70e3 pass secret polls also to handlers and object models 2021-06-07 10:57:53 +02:00
tibroc
828cf60cb2 Add option to hide individual answers in polls
This patch adds a new option to hide the individual answers to the presenter
when starting a poll. This includes hiding the answers for the presenter and
informing the other users that the current poll is anonymous.

See #9524
2021-06-07 10:56:14 +02:00
Gustavo Trott
02ef1186be Avoid set negative values in Extend time for breakout rooms 2021-06-02 17:36:43 -03:00
Gustavo Trott
a312557461 Adds extend breakout room time functionality 2021-06-02 15:29:40 -03:00
Pedro Beschorner Marin
d4888f585c refactor(external videos): state as integer
A media state may have more than 2 states. Moving this property back to
integer so it can be extended.
2021-06-02 15:07:03 -03:00
Pedro Beschorner Marin
4a5b92445a refactor(external videos): system stop
Move all external video's system stop control events to akka-apps:
- on presenter change
- on presenter leave
- on screenshare start
2021-06-02 15:06:17 -03:00
Arthur B. Grossi
b0f2297809 refactor(external videos): add akka-apps model 2021-06-02 13:06:41 -03:00
Arthur B. Grossi
e606df6031 feat(external video): permission check
Checks permission of start, stop and update external video messages
and only broadcast it if the sender is presenter (unless it's system
messages).
2021-06-02 12:54:37 -03:00
Anton Georgiev
93c9aecab8
Merge pull request #12447 from gustavotrott/fix-user-inactive-while-in-breakoutroom
fix: Avoid users to be ejected due to inactivity while they are in a breakout room
2021-05-31 11:00:15 -04:00
Anton Georgiev
8868e84e9f
Merge pull request #12395 from gustavotrott/end-when-no-moderator
Implements endWhenNoModerator
2021-05-31 10:59:55 -04:00
Anton Georgiev
9f84b993f7
Merge pull request #12467 from pedrobmarin/f-r-mow
fix!(recording): moderator only webcams
2021-05-31 10:49:17 -04:00
Anton Georgiev
2b4746fc85
Merge pull request #12465 from pedrobmarin/f-r-rrce
feat(recording): record role change event
2021-05-31 10:47:15 -04:00
Pedro Beschorner Marin
0e34d7239d fix!(recording): moderator only webcams
BREAKING CHANGE: fix typo at moderator only webcams recorded event.
2021-05-30 14:13:39 -03:00
Pedro Beschorner Marin
ed64e330ee feat(recording): record role change event
Reuse `ParticipantStatusChangeEvent` record event, already used by emojis and
webcam streams, to record `UserRoleChangedEvtMsg`.

Role change is stored at `events.xml` as:

- promotion
```
  <event timestamp="2068340" module="PARTICIPANT" eventname="ParticipantStatusChangeEvent">
    <timestampUTC>1622384175759</timestampUTC>
    <date>2021-05-30T14:16:15.759Z</date>
    <status>role</status>
    <userId>w_fowyht7g0tfi</userId>
    <value>MODERATOR</value>
  </event>
```

- demotion
```
  <event timestamp="2071437" module="PARTICIPANT" eventname="ParticipantStatusChangeEvent">
    <timestampUTC>1622384178855</timestampUTC>
    <date>2021-05-30T14:16:18.855Z</date>
    <status>role</status>
    <userId>w_fowyht7g0tfi</userId>
    <value>VIEWER</value>
  </event>
```
2021-05-30 11:19:30 -03:00
germanocaumo
ed6e895b67 refactor: rename inside question parameters 2021-05-27 21:11:50 +00:00
germanocaumo
4d347be53b refactor: use questionText instead of title for poll question 2021-05-27 21:04:15 +00:00
Gustavo Trott
b3f1d51f44 Updates user lastActivityTime in parent room while user is in breakout room 2021-05-26 17:16:15 -03:00
germanocaumo
674d23105e fix: don't show empty line when poll have 7 answers 2021-05-20 18:39:33 +00:00
Gustavo Trott
979b21c0ed Improve code reading 2021-05-17 18:13:00 -03:00
Gustavo Trott
00240c925e Implements endWhenNoModerator 2021-05-17 17:52:59 -03:00
Anton Georgiev
1bc324b657
Merge pull request #12353 from germanocaumo/poll-record-improvs
Recorded polling events improvements
2021-05-13 13:43:36 -04:00
germanocaumo
ca2ad30e12 fix(record): add missing info to polling events
Add PollPublishedRecordEvent with all infos (also fix duplicated handlePollStoppedEvtMsg)
Add answer text to UserRespondedToPollRecordEvent (useful for custom answers)
Add type in PollStartedRecordEvent
2021-05-11 18:37:23 +00:00
germanocaumo
af6180a618 fix(record): add question title in pollstartedrecordevent 2021-05-11 18:36:42 +00:00
Gustavo Trott
62b24b8c19 Code improvements in inactivity warning funcs 2021-05-11 10:01:35 -03:00
Gustavo Trott
17994bb4dd Fix problem that users was not being ejected after inactivity warning timeout 2021-05-10 15:12:13 -03:00
Michael Zinsmeister
5ca831ff86 Merged upstream develop branch 2021-05-01 16:59:20 +02:00
Richard Alam
22d434416a - lump other responses in the poll and include in the display 2021-04-29 14:44:18 +00:00
Richard Alam
39c69675a4 - sort answers based on number of votes
- limit display of responses to 7 to prevent squishing of display in the whiteboard
2021-04-28 21:34:21 +00:00
Richard Alam
414716d23b - remote debug logs 2021-04-28 21:33:34 +00:00