Commit Graph

2440 Commits

Author SHA1 Message Date
Zeev Suraski
ff76511a08 Add class type hints 2003-03-06 14:31:17 +00:00
3944d7d897 ChangeLog update 2003-03-06 01:33:18 +00:00
Zeev Suraski
812d91d08c Fix auto globals 2003-03-05 21:36:30 +00:00
Zeev Suraski
6ad2420d2d Implement $obj::static_func() 2003-03-05 13:25:33 +00:00
Zeev Suraski
26dd8492ed Add support for interfaces 2003-03-05 11:14:44 +00:00
41a7bc4271 ChangeLog update 2003-03-05 01:33:51 +00:00
Zeev Suraski
d5ada68654 Remove legacy code 2003-03-04 13:52:03 +00:00
Zeev Suraski
e0c3e2cf93 Remove redundant code 2003-03-04 13:36:16 +00:00
4c0c7837a7 ChangeLog update 2003-03-04 01:33:08 +00:00
Harald Radi
3f8c08b5e1 add missing strtolower 2003-03-03 01:56:14 +00:00
e2a27a23a5 ChangeLog update 2003-03-03 01:32:58 +00:00
Harald Radi
a700180f5d commiting zend_disable_class patch for George:
disabled classes will be replaced by dummy classes
that print a warning upon instanciation
2003-03-03 01:22:43 +00:00
Zeev Suraski
36eae0b771 Fix destructors some more 2003-03-02 15:24:04 +00:00
Zeev Suraski
98b990e336 Improve infrastructure 2003-03-02 13:33:31 +00:00
Zeev Suraski
f7b7800479 Add infrastructure for JIT initialization of auto globals 2003-03-02 10:04:53 +00:00
4128be7f8d ChangeLog update 2003-03-02 01:32:28 +00:00
Zeev Suraski
805637b06d Fix mem leak 2003-03-01 19:08:41 +00:00
Andi Gutmans
1a7c0d52dc - Make __construct() have higher priority than class name functions
- for constructors.
- Fix problem with the engine allowing final/abstract for the same method.
- Both patches are by Marcus Börger.
2003-03-01 14:57:49 +00:00
7be8179520 ChangeLog update 2003-02-28 01:31:36 +00:00
10fb8dadd8 ChangeLog update 2003-02-27 01:42:36 +00:00
Rasmus Lerdorf
0b5ffc4f1c MFB: We know ini file scanning will never be interactive, so speed it up a
bit.  Need a dynamic check for the language scanner.
2003-02-27 00:11:43 +00:00
Sebastian Bergmann
189d29061e Syntactic sugar is sweet. 2003-02-26 08:27:14 +00:00
fd40b6d3f5 ChangeLog update 2003-02-26 02:03:08 +00:00
Zeev Suraski
5793784c93 Get the bits right - final/private fix 2003-02-25 10:03:26 +00:00
foobar
5132f3cb54 Do not redefine zend_isnan if it is already defined. 2003-02-25 07:46:15 +00:00
foobar
e9b5e34005 - Fixed bug #14245 ('make install' fails on AIX when using --with-apxs). 2003-02-25 06:35:43 +00:00
96563ce34f ChangeLog update 2003-02-25 01:33:26 +00:00
Stanislav Malyshev
3cf20f86db fix exception handling 2003-02-24 13:35:47 +00:00
Zeev Suraski
535aa63293 Add 'final' 2003-02-24 12:05:58 +00:00
Sebastian Bergmann
37d529f100 Remove obsolete not on redeclaring protected members. 2003-02-24 10:38:43 +00:00
Sebastian Bergmann
99c358c7cb Leftover. 2003-02-24 10:37:45 +00:00
Sebastian Bergmann
57ae4a5ac4 Initial documentation of namespace {}. 2003-02-24 10:35:39 +00:00
424636f0dc ChangeLog update 2003-02-24 01:32:18 +00:00
Zeev Suraski
731a55ad52 Move abstract inheritance logic to the right spot 2003-02-23 13:58:48 +00:00
Zeev Suraski
bb956372a5 Fixed abstract handling in inheritence 2003-02-23 12:51:40 +00:00
7884793dcb ChangeLog update 2003-02-21 01:32:23 +00:00
Wez Furlong
f8e414ef70 *cough*
Fix another stupid mistake.
2003-02-20 21:48:46 +00:00
Stanislav Malyshev
e645f20d07 Allow namespaces to have a number of parts. I.e., now you can do:
namespace foo {
	function abc() {}
}
...
namespace foo {
	functio def() {}
}
2003-02-20 19:01:53 +00:00
43b857b9b2 ChangeLog update 2003-02-20 01:33:00 +00:00
Wez Furlong
e88da9728f Fix stupid mistake that only affected interactive mode. 2003-02-19 14:52:56 +00:00
b66dd24323 ChangeLog update 2003-02-19 01:32:10 +00:00
Rasmus Lerdorf
891835e7aa fileno() needs a FILE * here, and at least on FreeBSD with gcc-2.95.3
it is unable to figure out that this is indeed a FILE * and hence it
won't compile without this cast.
2003-02-18 22:29:27 +00:00
Zeev Suraski
955636af69 Avoid using a C++ reserved word 2003-02-18 17:18:28 +00:00
Wez Furlong
a5860e6e28 Fixup build for win32 2003-02-18 09:51:21 +00:00
Wez Furlong
e52aac940f Implement simple stream support in the ZE scanners. 2003-02-18 09:37:54 +00:00
abcd236386 ChangeLog update 2003-02-18 01:34:00 +00:00
Zeev Suraski
827434c2a3 Whitespace & minor renames 2003-02-17 15:07:57 +00:00
Zeev Suraski
76c6d7e721 whitespace 2003-02-17 15:04:29 +00:00
Zeev Suraski
d22cc2f329 Improve handling of static member variables 2003-02-17 14:06:39 +00:00
Zeev Suraski
566e41226f Improve Win32 build performance 2003-02-17 13:20:41 +00:00
f303085465 ChangeLog update 2003-02-17 01:31:42 +00:00
Zeev Suraski
ac0f7d9ed0 Fix complex cases of self-assignments (bugs #21600, #22231) 2003-02-16 19:18:23 +00:00
Zeev Suraski
f079bb65ff Make EG(This) and EG(scope) available to internal methods 2003-02-16 19:10:27 +00:00
Zeev Suraski
004947221e Revert patches - they weren't ready yet! 2003-02-16 18:34:48 +00:00
Zeev Suraski
372e08772d Fix initialization 2003-02-16 18:17:19 +00:00
Georg Richter
60d1b378ed fixed compiler warning 2003-02-16 18:04:29 +00:00
Georg Richter
c08bfd2e3f tested patch from Zeev (fixes oo-bug in ext/mysqli) 2003-02-16 17:47:23 +00:00
Stanislav Malyshev
3e45b23799 add support for ::foo syntax meaning "global one" 2003-02-16 13:27:33 +00:00
Stanislav Malyshev
c9b2ec7be7 remove debug prints 2003-02-16 12:04:41 +00:00
Sebastian Bergmann
6d300baf84 ZTS fixes 2003-02-16 11:34:49 +00:00
Stanislav Malyshev
e77eca7568 namespace patch - static variable access 2003-02-16 11:15:30 +00:00
Stanislav Malyshev
a4c3b2ce80 Namespace patch. Big changes:
1. Nested classes are gone.
2. New syntax for namespaces:
namespace foo {
	class X { ... }
	function bar { ... }
	var x = 1;
	const ZZ = 2;
}
3. Namespaced symbol access: $x = new foo::X; - etc.
For now, namespaces are case insensitive, just like classes.
Also, there can be no global class and namespace with the same name
(to avoid ambiguities in :: resolution).
2003-02-16 11:12:43 +00:00
5edec2a910 ChangeLog update 2003-02-16 01:32:24 +00:00
Ilia Alshanetsky
616578d1d1 Added feature #19645 (ini parser can now handle quoted multi-line values). 2003-02-15 22:06:45 +00:00
8764c02ce8 ChangeLog update 2003-02-15 01:35:51 +00:00
Thies C. Arntzen
e62f37c804 init current_execute_data befor we start executing 2003-02-14 12:25:09 +00:00
Thies C. Arntzen
52fb0d7bce ups 2003-02-14 12:05:16 +00:00
Thies C. Arntzen
c1706b50bf add really nice dump_bt function for debugging in gdb 2003-02-14 12:04:03 +00:00
801210d60c ChangeLog update 2003-02-14 01:33:16 +00:00
Zeev Suraski
884419044b Fix error handling in illegal property access 2003-02-13 22:47:25 +00:00
Harald Radi
3341568c09 MFB PHP_4_3 2003-02-13 16:46:53 +00:00
b0dd1b0eb0 ChangeLog update 2003-02-13 01:33:15 +00:00
Ilia Alshanetsky
a2bd043e7b Removed zend_get_module(), this function is not used by anything and more
importantly. it does not work. It tries to find data based on numeric keys
in hash table using string keys.
2003-02-12 16:50:51 +00:00
Zeev Suraski
3c2a1255cd Fix declaration of class members that don't have an explicit access modifier 2003-02-12 16:28:34 +00:00
405e10f6ce ChangeLog update 2003-02-12 01:31:55 +00:00
Zeev Suraski
beaf84ea17 Fix require() handling - that's an old bug! 2003-02-11 15:41:46 +00:00
Zeev Suraski
2814504143 Improve parser handling of 'abstract' 2003-02-11 09:48:37 +00:00
90ade25ad0 ChangeLog update 2003-02-11 01:31:35 +00:00
Zeev Suraski
f196e11f42 Fix zend_initialize_class_data() 2003-02-10 16:46:05 +00:00
Zeev Suraski
c17c7a2bfa Centralize class initialization 2003-02-10 16:11:24 +00:00
Zeev Suraski
6317e26576 - Treat $this->foo inside class X as an implicit 'public $foo' if X::$foo
is not explicitly declared
- Forbid multiple declaration of the same variable
2003-02-10 12:46:58 +00:00
Zeev Suraski
778ce2495d whitespace 2003-02-10 11:49:21 +00:00
Zeev Suraski
5e12de9510 Add missing destructors 2003-02-10 11:03:22 +00:00
Stanislav Malyshev
10b6a84b74 update static constants too 2003-02-10 10:57:14 +00:00
Zeev Suraski
3661930f14 Fix get_parent_class() 2003-02-10 10:04:08 +00:00
Zeev Suraski
029abf8c51 Restore missing check 2003-02-10 10:03:19 +00:00
Zeev Suraski
dbb73d8f1e Add ability to reference self:: and parent:: in constant initializers
(bug #21849)
2003-02-10 09:45:27 +00:00
Zeev Suraski
edc8e67e3b Remove redundant code 2003-02-10 08:32:44 +00:00
324ff14366 ChangeLog update 2003-02-10 01:32:53 +00:00
Zeev Suraski
55a66b1cb2 Fix the array() problem (and probably some other problems too) 2003-02-09 17:30:50 +00:00
086cb15f43 ChangeLog update 2003-02-09 01:31:33 +00:00
Georg Richter
325f9edb07 fixed zend_parse_method_param 2003-02-08 20:54:02 +00:00
Sebastian Bergmann
e7b5c21ded zend_config.h (and its Win32 version) is already included by zend.h 2003-02-08 08:11:21 +00:00
a9181bde0c ChangeLog update 2003-02-08 01:33:01 +00:00
Ilia Alshanetsky
df3662f436 The string.h is already avaliable through zend.h, so the manual inclusion
is not necessary.
2003-02-08 01:32:09 +00:00
Ilia Alshanetsky
957aeb83e3 Added a check to ensure that string.h is avaliable before trying to use it.
Thanks Andi.
2003-02-07 19:26:49 +00:00
Ilia Alshanetsky
419108f805 Added missing header. 2003-02-07 15:39:02 +00:00
Zeev Suraski
fce275eb41 Improve PPP handling of properties 2003-02-07 10:05:36 +00:00
Zeev Suraski
6257d01a91 Better fix 2003-02-07 09:39:29 +00:00
Zeev Suraski
ecbde70159 Fix Windows build 2003-02-07 09:32:19 +00:00
Ilia Alshanetsky
ae6cc1a238 Fixed bug #15734 (Added an optional parameter to get_defined_constants(),
which if passed, will include information regarding who created the constant).
2003-02-07 03:04:26 +00:00
3f70695a41 ChangeLog update 2003-02-07 01:31:42 +00:00
Ilia Alshanetsky
dc052fe0e5 Fixed bug #19506 (get_extension_funcs() can now retrieve a list of built-in
Zend Engine functions, if "zend" is specified as the module name).
Made get_extension_funcs() on failure.
2003-02-06 20:21:02 +00:00
b43dd52dae ChangeLog update 2003-02-06 01:32:53 +00:00
Zeev Suraski
b39b33c4c5 Fix the 2nd buglet in the error message :) 2003-02-06 00:39:58 +00:00
Zeev Suraski
fc591167ad Fix check 2003-02-06 00:15:02 +00:00
Zeev Suraski
45c12359a9 Fix prototype (may have caused stack corruption) 2003-02-06 00:14:49 +00:00
Zeev Suraski
f660d28143 - read_property cleanup
- Implement unset/isset/empty for PPP
2003-02-05 14:27:30 +00:00
Zeev Suraski
17439aa9c4 Rework static class properties - now supports access restrictions 2003-02-05 13:35:52 +00:00
Zeev Suraski
376d63170b Add quick_exists() 2003-02-05 13:19:59 +00:00
Zeev Suraski
da12870c68 Add PPP support for arrays 2003-02-05 09:41:31 +00:00
Zeev Suraski
ef77e582f5 Fix buglet in error message 2003-02-05 07:46:13 +00:00
1b63f56e0d ChangeLog update 2003-02-05 01:33:13 +00:00
Zeev Suraski
e1179a4d40 Missing update 2003-02-04 14:12:59 +00:00
Zeev Suraski
471947b188 Reimplement PPP properties 2003-02-04 12:12:34 +00:00
ccb1235482 ChangeLog update 2003-02-04 01:32:15 +00:00
Sebastian Bergmann
0026239c6a Build fix. 2003-02-03 09:42:53 +00:00
c1ca3a801f ChangeLog update 2003-02-03 02:19:31 +00:00
Harald Radi
c4528f82a0 extend the parameter parsing API by two functions
for parsing method parameters with automatic
detection if the function was called as such or as
a class method (with a valid this ptr).
if called as a function the first parameter has to be
the object it is operating on, if called as a method
this is used.

#not yet testet, only commiting so that georg can
#continue working on ext/mysqli
2003-02-02 23:30:14 +00:00
Zeev Suraski
31196cf679 whitespace 2003-02-02 16:29:42 +00:00
Zeev Suraski
61bd944b32 Core rearrangements - move Zend Objects specific code to their
specific implementation file
2003-02-02 16:17:25 +00:00
Andi Gutmans
87f4472afb - Fix warning 2003-02-02 05:20:31 +00:00
af2bfa03bf ChangeLog update 2003-02-02 01:33:42 +00:00
Sebastian Bergmann
729e470ced Fix build. 2003-02-01 07:32:09 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
9e95db3769 ChangeLog update 2003-01-31 01:33:19 +00:00
Ilia Alshanetsky
7a3c54fc36 Fixed compiler warning regarding signed/unsigned int comparisons. 2003-01-30 23:36:08 +00:00
Harald Radi
54c73d1ccb fix non-zts build for wez 2003-01-30 03:15:52 +00:00
e3672e49fc ChangeLog update 2003-01-30 01:32:27 +00:00
Ilia Alshanetsky
62db0b4854 Fix ZTS build. 2003-01-30 00:44:56 +00:00
Stanislav Malyshev
03f88ac2b2 Add additional stage to post-session cleanup.
We need separate cleanup stage because of the following problem:
Suppose we destroy class X, which destroys function table,
and in function table we have function foo() that has static $bar. Now if
object of class X was assigned to $bar, its destructor will be called and will
fail since X's function table is in mid-destruction.
So we want first of all to clean up all data and then move to tables
destruction.
Note that only run-time accessed data need to be cleaned up, pre-defined
data can not contain objects and thus are not probelmatic.
# Looks like we are having a lots of pain in the various parts of the body
# because of the destructors...
2003-01-29 17:54:48 +00:00
Zeev Suraski
4b97a8dffd Code rearrangements 2003-01-29 15:02:57 +00:00
Stanislav Malyshev
f73def91ed Fix object destructors:
zend_objects_store_call_destructors is not used anymore, we rely on
symbol tables cleaners to destroy all objects.
2003-01-29 14:33:18 +00:00
Stanislav Malyshev
683cf733bd extra safety 2003-01-29 14:27:40 +00:00
Stanislav Malyshev
123d8f782f fix memory leak 2003-01-29 14:25:53 +00:00
Zeev Suraski
8f52bf6835 Fix assignments to $this.
Fixes the 'make install' problem reported on php-dev
2003-01-29 08:55:12 +00:00
b98d46baf2 ChangeLog update 2003-01-29 01:31:55 +00:00
Zeev Suraski
49fd225238 Fix a ticks related crash 2003-01-28 11:34:24 +00:00
Zeev Suraski
6155a1fa24 Allow methods in parent classes to call protected methods in derived
classes
2003-01-28 09:44:18 +00:00
90f9f62665 ChangeLog update 2003-01-28 01:33:49 +00:00
Stanislav Malyshev
3a4ace13b4 Replace MAKE_VAR opcode with special 'data' opcode
This opcode is not executeable but only holds data for opcodes
that need more than two arguments (presently only ASSIGN_OBJ and the ilk but
in the future also ASSIGN_DIM)
2003-01-27 15:13:01 +00:00
e9833ff497 ChangeLog update 2003-01-27 01:31:58 +00:00
Sascha Schumann
0ceb4a93b2 Replace snprintf() call using zend_error's capabilities 2003-01-26 23:15:30 +00:00
d3319d1b07 ChangeLog update 2003-01-24 01:32:58 +00:00
Zeev Suraski
76c93412d3 Let the scope propagate to internal functions 2003-01-23 16:40:30 +00:00
foobar
7a93625e4c Fixed bug: #14542, register_shutdown_function() timeout problem 2003-01-23 05:15:42 +00:00
ae55ffe7bf ChangeLog update 2003-01-23 01:33:39 +00:00
Stanislav Malyshev
d433a62ef4 some small refinements for get_class_* 2003-01-22 14:55:01 +00:00
Ilia Alshanetsky
72cd67b3ca Fixed bug #21814 (Allow booleans to be used as array keys). 2003-01-22 14:48:30 +00:00
d4d46ac352 ChangeLog update 2003-01-22 01:33:11 +00:00
Sterling Hughes
d3f04d8ecc fix by phanto to the cloning 2003-01-21 00:00:38 +00:00
11aebf74bb ChangeLog update 2003-01-20 01:32:16 +00:00
Zeev Suraski
4c8473d619 relabel 2003-01-19 21:37:40 +00:00
Stanislav Malyshev
dce8267f35 Restore for now old statics behaviour (so that indirect $$var references would work again). Comprehensive fix will follow later. 2003-01-19 17:25:39 +00:00
Harald Radi
697398e18e ini patch to allow 'entry[] = value' entries 2003-01-19 12:01:38 +00:00
aba4c07be1 ChangeLog update 2003-01-18 01:33:47 +00:00
Harald Radi
46306a3212 export zend_objects_destroy_object()
static inline was meaningless anyways as the function
was only used as a callback handler and was never
called directly
2003-01-17 23:59:15 +00:00
Harald Radi
5795ed62f4 make std_object_handlers struct available for shared modules 2003-01-17 21:16:12 +00:00
08c11f2931 ChangeLog update 2003-01-17 01:36:11 +00:00
7f3b79adc5 ChangeLog update 2003-01-16 01:33:30 +00:00
Ilia Alshanetsky
12d2b01a25 Fixed bug #20933 (isset/empty didn't work when used on string offsets). 2003-01-16 00:44:17 +00:00
Andi Gutmans
e5afca38b6 - Revert int -> unsigned int change for str.len 2003-01-15 20:35:06 +00:00
Sascha Schumann
7431b52291 Revert commit which turned the lengths of strings into zend_uint. 2003-01-15 19:10:14 +00:00
a34d4dc30e ChangeLog update 2003-01-15 01:34:55 +00:00
Andi Gutmans
c073b76aac - Change "is" to "instanceof" as it explains better what the operator means.
- "is_a" was also appropriate but ugly.
2003-01-14 21:29:23 +00:00
Stanislav Malyshev
5340b204ca fix memory leaks and key size 2003-01-14 15:12:35 +00:00
Ilia Alshanetsky
dff55752aa MFZE2 2003-01-14 14:21:45 +00:00
Stanislav Malyshev
67c50ee22a fix warning 2003-01-14 12:27:07 +00:00
Stanislav Malyshev
eccc536883 Make add_property_ functions work via write_property handler 2003-01-14 12:15:09 +00:00
Stanislav Malyshev
f30f3590a1 ws 2003-01-14 12:13:51 +00:00
Ilia Alshanetsky
ad3b2ccec9 Reverting previous patch. 2003-01-14 02:41:47 +00:00
062942c4e9 ChangeLog update 2003-01-14 01:35:54 +00:00
Ilia Alshanetsky
8e7df3fbf1 MFZE2 2003-01-13 16:34:19 +00:00
Andi Gutmans
94e6eb06dd - Don't check if the handle is bogus. We should crash. 2003-01-13 04:55:34 +00:00
aec08c6052 ChangeLog update 2003-01-13 01:34:00 +00:00
Harald Radi
58d3451c75 fix wrong dereferenciation 2003-01-12 21:59:57 +00:00
Stanislav Malyshev
33b67ab868 fix inheritance 2003-01-12 18:57:18 +00:00
Stanislav Malyshev
2ae8d124ce Remove handle_property from here too 2003-01-12 17:22:35 +00:00
Stanislav Malyshev
d48ffd97d6 RIP handle_* functions. ZE2 will use __ handlers instead.
# Yes, I know this will break some things. I will fix those I can find shortly.
2003-01-12 17:16:07 +00:00
Stanislav Malyshev
1b355e119e Move Z_OBJ_P here. 2003-01-12 14:39:45 +00:00
Stanislav Malyshev
d27b3d3ad9 Remove Z_OBJ - it's internal to Zend objects, no generic function except
those in zend_object_handlers.c should use it.
Add Z_OBJ_HANDLER macro for easy access to handlers
2003-01-12 14:38:54 +00:00
Sebastian Bergmann
24db7f182a ZTS fixes. 2003-01-12 14:25:58 +00:00
Stanislav Malyshev
6cc7ee265c add get_class_name handler 2003-01-12 13:56:51 +00:00
Stanislav Malyshev
9bba373a17 Use generic handlers instead of Z_OBJ 2003-01-12 13:45:50 +00:00
Harald Radi
2f7f1dd1b8 #@!$$grml*$% 2003-01-12 13:18:05 +00:00
Harald Radi
13c2254e21 partially revert previous commit and
change zend_modules.h to include
a forward declaration to zend_ini_entry
2003-01-12 13:14:23 +00:00
Harald Radi
814045bba6 added zend_ini_entry to zend_modules_entry as
discussed with zeev
2003-01-12 13:00:28 +00:00
Harald Radi
c37ee2a12a fix 'use of uninitialized variable' warning 2003-01-12 12:57:20 +00:00
Stanislav Malyshev
0ccbd37df7 validate handle 2003-01-12 12:56:04 +00:00
Zeev Suraski
424e98f4e2 Implemented compatibility mode
To enable - zend2.implicit_clone = on in php.ini or using ini_set()
2003-01-12 12:39:06 +00:00
091609d661 ChangeLog update 2003-01-12 01:31:51 +00:00
Andi Gutmans
76c663b321 - Fix typo and whitespace 2003-01-11 17:04:16 +00:00
Derick Rethans
2c44fab3a0 - Ported the zend_execute_internal hook to ZendEngine2. 2003-01-11 16:12:44 +00:00
Harald Radi
c8d19858ac freed reader twice instead of writer and reader 2003-01-11 11:34:43 +00:00
c5153b24c8 ChangeLog update 2003-01-11 01:34:28 +00:00
Ilia Alshanetsky
8c3b8d4fe6 MFZE2 2003-01-10 19:18:20 +00:00
Andrei Zmievski
efaa31e940 Automatically register constructor, destructor, and clone function when
class methods are registered.
2003-01-10 14:41:53 +00:00
dd277cf2c7 ChangeLog update 2003-01-10 01:33:11 +00:00
Zeev Suraski
66d30a4966 Found some more occurences of that elusive bug... 2003-01-09 16:16:57 +00:00
Zeev Suraski
ef6a44d15c Fix one lousy, annoying lurking bug (memory corruption)
Sebastian - try coWiki again please...
2003-01-09 16:10:33 +00:00