Commit graph

367 commits

Author SHA1 Message Date
Addison Beck
cdc08e7e8a
Implemented Custom role and permissions (#1189)
* Implemented Custom role and permissions

* changed permissions to permissions model

* added a semicolon
2021-01-13 14:31:27 -05:00
Matt Gibson
ca7794e6f2
Update revision date from server on restore (#1211) 2021-01-08 08:53:45 -06:00
Matt Gibson
bd3fdcab26
Do not export items that have been deleted (#1200) 2020-12-29 11:38:12 -06:00
Matt Gibson
e0191c573d
Add encrypted hint json property (#1184) 2020-12-18 16:17:04 -06:00
Matt Portune
ef4b53b337
Workaround for lack of shared DB support (#1182)
* workaround for lack of shared DB support

* dispose db in finally
2020-12-16 16:37:26 -05:00
Matt Portune
acf2e4360f
Use monotonic clock for vault timeout (#1175)
* Use monotonic clock for vault timeout

* free memory

* removed vault timeout timers and added crash logging to iOS clock hack
2020-12-14 15:29:30 -05:00
Matt Gibson
3227daddaf
Enable Encrypted json export of vaults (#1174)
* Enable Encrypted json export of vaults

* Match jslib export of non-org ciphers

* Clean up export

* Update src/App/Pages/Settings/ExportVaultPage.xaml.cs

Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>

Co-authored-by: Matt Gibson <mdgibson@Matts-MBP.lan>
Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
2020-12-14 11:56:13 -06:00
Vincent Salucci
6e40b7f25b
[Policy] Personal Ownership (#1166)
* Initial commit of personal ownership policy

* Updated logic for returning from allowing cipher creation from notification

* fixed small edge case when user in one org // adjusted error message to match all platforms

* Removed test code
2020-12-14 08:46:54 -06:00
Matt Portune
dcfdc7d0ea
make kdfIterations nullable (#1169) 2020-12-08 10:54:58 -05:00
Matt Portune
ffd8f9951f
Fix for missing biometric integrity check in iOS extensions under certain conditions (#1162)
* Fix for biometric check in extension on fresh install

* make sure bio integrity values are written to pref storage

* integrity state migration to pref storage

* remove automatic state saving upon null validation
2020-12-01 15:30:23 -05:00
Matt Gibson
e27370cf32
Include revision date in cipher requests (#1152)
Co-authored-by: Matt Gibson <mdgibson@Matts-MBP.lan>
2020-11-23 14:41:43 -06:00
Matt Portune
c71deb5051
Enhanced autofill settings (#1150)
* enhanced autofill settings

* cleanup
2020-11-17 09:37:57 -05:00
Vincent Salucci
26d5504a2f
Added New policy types (only org & require sso) (#1122) 2020-10-19 11:48:42 -05:00
Vincent Salucci
e72ccaf440
Initial commit for new user provision flow (#1091) 2020-10-13 15:01:14 -05:00
Matt Portune
0b7e07ebab
clear cipher cache when replacing ios autofill identities (#1112)
* clear cipher cache when replacing ios autofill identities

* changed to be service-centric

* support for multiple cache keys

* async suffix

* added cache keys for android
2020-10-13 15:39:36 -04:00
Matt Portune
37e19d9a60
Support for storing multiple biometric integrity states for iOS (#1110)
* support for storing multiple biometric integrity states for iOS

* remove unused var & save new extension bio state upon password validation
2020-10-07 12:18:36 -04:00
Matt Portune
2ddf624f7d
fix for sso login when bio unlock already enabled (#1086) 2020-09-23 09:02:20 -04:00
Kyle Spearrin
db12cd92b7
check authed before checking if token has premium (#1074) 2020-09-18 15:07:32 -04:00
Matt Portune
f1419a75f6
Added SSO flows and functionality (#1047)
* SSO login flow for pre-existing user and no 2FA

* 2FA progress

* 2FA support

* Added SSO flows and functionality

* Handle webauthenticator cancellation gracefully

* updates & bugfixes

* Added state validation to web auth response handling

* SSO auth, account registration, and environment settings support for iOS extensions

* Added SSO prevalidation to auth process

* prevalidation now hitting identity service base url

* additional error handling

* Requested changes

* fixed case
2020-09-03 12:30:40 -04:00
Kyle Spearrin
29e443ed76
base64 url encode/decode heleprs (#1038) 2020-08-14 10:08:50 -04:00
Oscar Hinton
ae28de4159
Invalidate biometric on change (#1026)
* Initial working version for Android

* Add a fallback for when upgrading from older app version.

* Ensure biometric validity is re-checked on focus

* Only setup biometric integrity key if biometric is turned on.

* Fix styling according to comments

* Fallback for Android 5.

* Improve comment

* Add boilerplate for iOS

* Change BiometricService to public

* Untested iOS implementation.

* Convert IBiometricService to async. Fix code style for iOS.

* Base64 NSData.

* Review comments for Android BiometricService.

* Rename methods in BiometricService to append Async

* Ensure we wait for async SetupBiometricAsync.

* Update BiometricService.cs

Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
2020-08-08 21:33:49 -04:00
aaxdev
3b4ef4d238
Feature sync on refresh (#937)
* Added new option: Sync on refresh

* Removed unused field

* Fixed refreshing on disappearing & unnecessary codes removed

* Requested changes

* Calling storage service instead of a dedicated service function (mobile-specific)
2020-08-05 13:19:27 -04:00
Matt Smith
10a78c1c94
Modified listing of website from Hostname to Host (#1012)
* Modified listing of website from Hostname to Host

* Removed last _hostname artifact.
2020-07-14 13:17:08 -05:00
Gal Szkolnik
cf6021d898
Don't break when CipherType data is null (#1008)
as explained in issue https://github.com/bitwarden/mobile/issues/1006
2020-07-11 09:06:48 -04:00
Kyle Spearrin
ff994629de
Do not process hostname for regex logins (#987) 2020-06-18 11:58:19 -04:00
Oscar Hinton
c2582fe055
Resolve new ciphers defaulting to ViewPassword = false, causing passwords to be non editable. (#982) 2020-06-15 12:33:36 -04:00
Oscar Hinton
c5f158f1cf
Resolve all passwords being hidden after upgrade (#977) 2020-06-12 09:50:36 -04:00
Oscar Hinton
52ca84946b
Add support for hidden passwords (#920)
* Add support for hidden passwords

* Hide TOTP, hide hidden fields.

* Change _cipher to Cipher.
2020-06-11 16:16:43 -04:00
Matt Portune
5da2f3279b
biometrics cleanup (#964) 2020-06-08 08:25:13 -04:00
Kyle Spearrin
66055f1d7c
Singleton LiteDatabase (#946)
* update litedb. initialize db as a static singleton instance.

* dont need to dispose anymore
2020-06-02 09:13:57 -04:00
Kyle Spearrin
24547e67bf
check for empty string on malformed URL (#944)
* treat empty string host as null

* use `string.IsNullOrEmpty`
2020-06-01 14:46:37 -04:00
Kyle Spearrin
e5a74cf43c downgrade litedb 2020-05-29 15:26:00 -04:00
Vincent Salucci
4c3df2e1e1
[Auto Logout] Final review of feature (#932)
* Initial commit of LockService name refactor (#831)

* [Auto-Logout] Update Service layer logic (#835)

* Initial commit of service logic update

* Added default value for action

* Updated ToggleTokensAsync conditional

* Removed unused variables, updated action conditional

* Initial commit: lockOption/lock refactor app layer (#840)

* [Auto-Logout] Settings Refactor - Application Layer Part 2 (#844)

* Initial commit of app layer part 2

* Updated biometrics position

* Reverted resource name refactor

* LockOptions refactor revert

* Updated method casing :: Removed VaultTimeout prefix for timeouts

* Fixed dupe string resource (#854)

* Updated dependency to use VaultTimeoutService (#896)

* [Auto Logout] Xamarin Forms in AutoFill flow (iOS) (#902)

* fix typo in PINRequireMasterPasswordRestart (#900)

* initial commit for xf usage in autofill

* Fixed databinding for hint button

* Updated Two Factor page launch - removed unused imports

* First pass at broadcast/messenger implentation for autofill

* setting theme in extension using theme manager

* extension app resources

* App resources from main app

* fix ref to twoFactorPage

* apply resources to page

* load empty app for sytling in extension

* move ios renderers to ios core

* static ref to resources and GetResourceColor helper

* fix method ref

* move application.current.resources refs to helper

* switch login page alerts to device action dialogs

* run on main thread

* showDialog with device action service

* abstract action sheet to device action service

* add support for yubikey

* add yubikey iimages to extension

* support close button action

* add support to action extension

* remove empty lines

Co-authored-by: Jonas Kittner <54631600+theendlessriver13@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>

* [Auto Logout] Update lock option to be default value (#929)

* Initial commit - make lock action default

* Removed extra whitespace

Co-authored-by: Jonas Kittner <54631600+theendlessriver13@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
2020-05-29 12:26:36 -04:00
Kyle Spearrin
0b29c6e5a4
Dispost of LiteDatabase instance (#928) 2020-05-28 15:44:27 -04:00
Chad Scharf
ce965ba5e1
Soft delete feature (#890)
* [Soft Delete] Added trash folder to mobile (#856)

* [Soft Delete] Added trash folder to mobile

* [Soft Delete] - Revert send to trash label

Co-authored-by: Chad Scharf <cscharf@users.noreply.github.com>

* [Soft Delete] - Fix for iOS autofill index behavior (#859)

* [Soft Delete] Added trash folder to mobile

* [Soft Delete] - Revert send to trash label

* [Soft Delete] - iOS autofill index behavior fix

Co-authored-by: Chad Scharf <cscharf@users.noreply.github.com>

Co-authored-by: Chad Scharf <cscharf@users.noreply.github.com>
2020-05-20 13:35:20 -04:00
Matt Portune
da661c229c
Lib updates (#889)
* lib updates

* updated libs
2020-05-07 17:03:13 -04:00
Matt Portune
36cdc7dd1c
Additional URI parsing fix (#865)
* Additional URI parsing fix

* name cleanup
2020-04-30 16:47:29 -04:00
Matt Portune
9d27f111bf
Additional uri parsing intelligence (#861) 2020-04-29 13:09:46 -04:00
Matt Portune
69e0906491
Fixes to uri parsing (#860) 2020-04-29 11:04:50 -04:00
Jose F. Fernandez
ed259cd130
[FIX] Consider default URI match type on filtering (#830) 2020-04-14 14:56:57 -04:00
Matt Portune
5d64bab719
Added handled exception tracking for vault export and bumped CsvHelper to latest (#816)
* Added handled exception tracking for vault export and bumped CsvHelper to latest

* Prevent tracking for FDroid builds

* Remove AppCenter import for FDroid builds
2020-04-02 10:30:21 -04:00
Chad Scharf
3c18fd7636
Changed all C# control flow block statements to include space between keyword and open paren (#800) 2020-03-28 09:16:28 -04:00
Matt Portune
6c00ac43fc
Added Quick Settings tile for triggering accessibility autofill (#795)
* Added Quick Settings tile for triggering accessibility autofill

* Fix crash when tile attempt to cancel non-visible but non-null overlay

* Persist tile state plus cleanup
2020-03-26 12:15:33 -04:00
Matt Portune
145482ea30
Project lib updates and migration (#789)
* Replace 3rd party FAB lib with our own code

* merged

* merged

* WIP

* WIP

* WIP

* WIP

* Updated LiteDB

* Update ZXing libs to 2.4.1

* Missing semicolon

* rename fab style to btn-fab

* Revert project guid modified by VSmac
2020-03-20 17:54:23 -04:00
Vincent Salucci
55dff81b9f
Sanitize Password Length (#783)
* Sanitize Password Length

* Formatting updates

* Else if format

Co-authored-by: Vincent Salucci <vsalucci@bitwarden.com>
2020-03-18 13:43:20 -05:00
Kyle Spearrin
c6b37307b0 use string.Empty 2020-03-16 21:07:54 -04:00
Vincent Salucci
c19795cce0
Fix bug with policy banner visibility (#777)
Co-authored-by: Vincent Salucci <vsalucci@bitwarden.com>
2020-03-16 11:17:45 -05:00
Vincent Salucci
df8f44d77d
Enforce Passphrase Policy (#772)
* Enforce passphrase policy

* Update multi-line conditional formatting

* Updated formatting round 2

Co-authored-by: Vincent Salucci <vsalucci@bitwarden.com>
2020-03-13 23:02:38 -05:00
Matt Portune
9c77c53366
Bumped csvhelper to 15.0.1 and added missing error dialog in export failure flow (#771) 2020-03-13 11:02:49 -04:00
Matt Portune
94216cf745
Null check policies from SyncResponse before parsing (#767)
* Null check policies from SyncResponse before parsing

* Update src/Core/Services/SyncService.cs

formatting

Co-Authored-By: Kyle Spearrin <kspearrin@users.noreply.github.com>

Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
2020-03-12 15:45:34 -04:00
Matt Portune
b65b01fe3d
Fixed potential broadcast leak & policy value parsing (#756) 2020-03-05 12:44:01 -05:00
Kyle Spearrin
b9c134654f
Allows us to pass in some options to have policies enforced upon. (#755) 2020-03-05 10:11:54 -05:00
Matt Portune
7edbf4ffc8
Added null check for loading non-existent policies (#753) 2020-03-03 10:53:03 -05:00
Matt Portune
f78f303a79
Password generator policy enforcement (#741)
* Password generator policy enforcement

* Formatting

* Changed to simple cast (double unboxing for int64/long)

* Added ui indication of active policy on password generator page and fixed issue with switch enable logic
2020-02-27 19:53:02 -05:00
Matt Portune
387dc2f59c
Beginning of policy support (#736)
* Model & service support for policies

* Formatting

* Changes to match existing service and model patterns
2020-02-21 10:23:38 -05:00
Matt Portune
33df456cfd
In-app vault export support (#729)
* First pass at vault export UI

* Password validation via cryptoService

* Export service framework

* support for constructing json export data

* Support for constructing csv export data

* Cleanup and simplification

* Completion of vault export feature

* Formatting and simplification

* Use dialog instead of toast for invalid master password entry
2020-02-14 16:10:58 -05:00
Kyle Spearrin
558b10499b var 2020-02-12 09:40:16 -05:00
Matt Portune
9f06c9a051 Removal of deprecated Android Accessibility Service options (#698) 2020-01-10 11:34:17 -05:00
Kyle Spearrin
4e51517ddb update libs 2019-12-16 09:14:54 -05:00
Kyle Spearrin
b0b7f2afdf Merge branch 'master' of github.com:bitwarden/mobile 2019-11-15 08:55:31 -05:00
Kyle Spearrin
55f160d125 Show exception message from Api errors 2019-11-15 08:55:22 -05:00
Wasim Malik
f6352f5392 Updated Incorrect Check Condition (#648)
Issue is fixed No 361
Now tested on android device extra comma is not appended anymore
2019-11-12 16:28:12 -05:00
Kyle Spearrin
88fccfd6cd try setting http version 1.0 2019-11-05 09:14:55 -05:00
Kyle Spearrin
5fdf8e6045 set fingerprint lock prop on login 2019-11-05 09:03:48 -05:00
Kyle Spearrin
4b989b01e9 use native biomatrics on Android 2019-10-23 09:11:48 -04:00
Kyle Spearrin
e1983a7d66 fix error when login token expires 2019-10-22 16:30:28 -04:00
Kyle Spearrin
37a536b138 catch thrown sync errors from ui 2019-10-15 11:05:56 -04:00
Kyle Spearrin
0e966c0304 fix min character assignments for pw gen 2019-10-05 20:39:42 -04:00
Kyle Spearrin
ced9d33d2e memory stored pinProtectedKey 2019-09-20 16:43:03 -04:00
Kyle Spearrin
954aa1112a added locale names dictionary 2019-09-06 09:44:25 -04:00
Kyle Spearrin
b35a3339cb device type should be int 2019-09-06 09:44:25 -04:00
Kyle Spearrin
2507f3301b device user agent 2019-09-04 11:52:32 -04:00
Kyle Spearrin
67c6cf6b8c load previous view/edit page after lock 2019-07-31 16:50:16 -04:00
Kyle Spearrin
d91d71333b LastClipboardValue using static store rather than state 2019-07-31 11:21:07 -04:00
Kyle Spearrin
431804ea80 loop on reset with range instead of clear 2019-07-29 22:35:53 -04:00
Kyle Spearrin
580fa02ee1 enable event logging 2019-07-27 12:41:38 -04:00
Kyle Spearrin
d73bf6d225 assign new messageCallback when subbing 2019-07-22 09:21:00 -04:00
Kyle Spearrin
11cdf52ec8 disable events funcionality for now 2019-07-13 20:27:15 -04:00
Kyle Spearrin
38d702b6fe log some events 2019-07-12 17:29:40 -04:00
Kyle Spearrin
df2af5459e register event service with container 2019-07-12 15:51:47 -04:00
Kyle Spearrin
40d68b1654 add event service 2019-07-11 09:30:25 -04:00
Kyle Spearrin
ff24891903 update event log types 2019-07-09 10:51:33 -04:00
Kyle Spearrin
62d8824450 clear cache in main app if change made in extension 2019-07-06 22:49:17 -04:00
Kyle Spearrin
9af6aae699 fix baseurl check when return web vault url 2019-07-05 13:46:54 -04:00
Kyle Spearrin
fac9ae4b6c only init hockeyapp once 2019-07-03 16:50:12 -04:00
Kyle Spearrin
8b7ac179fa in memory storage service 2019-07-03 12:31:18 -04:00
Kyle Spearrin
b308b4c54f move some json dependencies out of extension project 2019-07-02 14:03:59 -04:00
Kyle Spearrin
53d0b28c7c fix add matching eq domains
resolves #550
2019-07-01 16:06:52 -04:00
Kyle Spearrin
33ba4d3871 add capitalize and include num to generator 2019-07-01 15:35:26 -04:00
Kyle Spearrin
9145fa1c48 improvement to lock screen 2019-06-28 11:47:04 -04:00
Kyle Spearrin
79746efa2d action extension project 2019-06-26 20:28:23 -04:00
Kyle Spearrin
3f94eee4d5 events url 2019-06-25 16:36:21 -04:00
Kyle Spearrin
c50dee479a android http client handler 2019-06-15 18:44:08 -04:00
Kyle Spearrin
09a1c17fb4 null checks 2019-06-14 16:53:01 -04:00
Kyle Spearrin
23b3972503 catch bad regex parse 2019-06-10 20:47:30 -04:00
Kyle Spearrin
678640966e NormalizePassword 2019-06-10 13:09:42 -04:00
Kyle Spearrin
89f9394977 formatting 2019-06-10 12:58:54 -04:00
Kyle Spearrin
4d54c8f1d1 resolve some todos 2019-06-05 08:58:11 -04:00
Kyle Spearrin
661cd79654 null check on parts 2019-06-05 08:29:27 -04:00
Kyle Spearrin
1ef086a02c triedV1ReSync check 2019-06-04 23:39:58 -04:00
Kyle Spearrin
b67adf8789 properly parse error model 2019-06-04 22:48:03 -04:00
Kyle Spearrin
6c88d25941 add locking to BroadcasterService 2019-06-04 21:28:50 -04:00
Kyle Spearrin
f0893ca214 UriMatchType cast from int 2019-06-04 12:34:29 -04:00
Kyle Spearrin
0a664c47b7 autofill not enabled prompt if migrated 2019-06-04 10:51:10 -04:00
Kyle Spearrin
2574e0cba5 Add Site Prompt 2019-06-03 23:00:48 -04:00
Kyle Spearrin
8c54062c44 remove lock logging 2019-06-03 17:04:45 -04:00
Kyle Spearrin
9766ebc8e3 always set FingerprintLocked explicitly 2019-06-03 16:56:37 -04:00
Kyle Spearrin
07bc425046 more logging 2019-06-03 16:43:57 -04:00
Kyle Spearrin
d0b8c2c4bf more lock logging 2019-06-03 16:35:04 -04:00
Kyle Spearrin
83bc7c6d51 remove lock service logging 2019-06-03 16:25:43 -04:00
Kyle Spearrin
d64625aba2 more lock service logging 2019-06-03 16:07:45 -04:00
Kyle Spearrin
d1eec27fae lock service logging 2019-06-03 16:04:04 -04:00
Kyle Spearrin
b69304992f log service 2019-06-03 12:52:46 -04:00
Kyle Spearrin
8658ebd6bb new autofill options 2019-06-03 10:45:27 -04:00
Kyle Spearrin
5ce2eaf77e dont auto show fingerprint if lock is initiated 2019-06-01 01:07:02 -04:00
Kyle Spearrin
50f71e7280 migration flag fix 2019-06-01 00:42:26 -04:00
Kyle Spearrin
8df940447d save length and history when value done changing 2019-05-31 09:09:32 -04:00
Kyle Spearrin
ac6f3a6bb6 fix ip address matching on getdomain 2019-05-31 08:30:18 -04:00
Kyle Spearrin
e3dcf4aed1 dont return null 2019-05-30 22:11:19 -04:00
Kyle Spearrin
419cfceef1 needs migration flag 2019-05-30 15:11:22 -04:00
Kyle Spearrin
6d51864873 update tasks and sync on app start 2019-05-30 14:13:02 -04:00
Kyle Spearrin
c3b9f4e5a8 run subscribed messages on main thread 2019-05-30 11:40:33 -04:00
Kyle Spearrin
70fa41ca3e clear clipboard alarm 2019-05-30 11:22:35 -04:00
Kyle Spearrin
67970afc1e log out on stamp mismatch when syncing 2019-05-29 23:41:43 -04:00
Kyle Spearrin
1c08901698 remove some todos 2019-05-29 23:37:25 -04:00
Kyle Spearrin
48376d0a93 more options 2019-05-29 14:11:15 -04:00
Kyle Spearrin
5cdccc7527 fix warnings 2019-05-29 08:27:58 -04:00
Kyle Spearrin
437a60a967 crash fixes 2019-05-28 22:57:59 -04:00
Kyle Spearrin
6218c65ec6 prime expensive tasks 2019-05-28 17:18:27 -04:00
Kyle Spearrin
25d02cec25 load EEFLongWordList from file 2019-05-28 17:06:57 -04:00
Kyle Spearrin
630fc3f73c fix route for device token PUT 2019-05-28 16:20:24 -04:00
Kyle Spearrin
cd8a09ddef fdroid config profile 2019-05-28 13:50:01 -04:00
Kyle Spearrin
3f11fdaa82 push notification services 2019-05-28 12:01:55 -04:00
Kyle Spearrin
786f3b4644 2fa for email 2019-05-28 10:12:51 -04:00
Kyle Spearrin
e8705d49f2 stub our 2fa page backend 2019-05-27 10:28:38 -04:00
Kyle Spearrin
13c5ebe065 disable favicons constant 2019-05-17 14:34:14 -04:00
Kyle Spearrin
d53bfae529 fix settings 2019-05-17 13:10:07 -04:00
Kyle Spearrin
4aa1209bc7 fingerprint unlock 2019-05-17 09:42:20 -04:00
Kyle Spearrin
5761b47073 fingerprint locking 2019-05-16 17:30:07 -04:00
Kyle Spearrin
22a0b262e1 fingerprint setup 2019-05-16 16:31:58 -04:00
Kyle Spearrin
6e42f5ce7b use proper set lock option method 2019-05-16 16:00:16 -04:00
Kyle Spearrin
3eb1ab0452 lock service fixes 2019-05-16 12:29:55 -04:00
Kyle Spearrin
5f6a3f4cb5 lock page fixes 2019-05-16 08:41:57 -04:00
Kyle Spearrin
27b6631cc1 lock page 2019-05-15 17:37:59 -04:00
Kyle Spearrin
f7bb091366 lock now button 2019-05-15 15:47:50 -04:00
Kyle Spearrin
5cf2092576 register lock service 2019-05-15 14:26:23 -04:00
Kyle Spearrin
954de743f5 lock service 2019-05-15 14:22:28 -04:00
Kyle Spearrin
d4ed276684 hash phrase fixes 2019-05-15 12:53:01 -04:00
Kyle Spearrin
cc7ccf921b generated password history page 2019-05-14 09:01:07 -04:00
Kyle Spearrin
28473dd85f stub out password generator page functionality 2019-05-13 12:13:23 -04:00