TypeScript/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types

239 lines
15 KiB
Plaintext
Raw Normal View History

2014-09-23 20:22:38 +02:00
=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers2.ts ===
var x: { foo: string; }
2015-04-13 23:01:57 +02:00
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
>foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 8))
2014-09-23 20:22:38 +02:00
var y: { foo: string; bar: string; }
2015-04-13 23:01:57 +02:00
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
>foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 8))
>bar : string, Symbol(bar, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 21))
2014-09-23 20:22:38 +02:00
class Base {
2015-04-13 23:01:57 +02:00
>Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36))
2014-09-23 20:22:38 +02:00
protected a: typeof x;
2015-04-13 23:01:57 +02:00
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 3, 12))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected b(a: typeof x) { }
2015-04-13 23:01:57 +02:00
>b : (a: { foo: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 4, 26))
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 16))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected get c() { return x; }
2015-04-13 23:01:57 +02:00
>c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected set c(v: typeof x) { }
2015-04-13 23:01:57 +02:00
>c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35))
>v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 20))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected d: (a: typeof x) => void ;
2015-04-13 23:01:57 +02:00
>d : (a: { foo: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 36))
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 18))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected static r: typeof x;
2015-04-13 23:01:57 +02:00
>r : { foo: string; }, Symbol(Base.r, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 40))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected static s(a: typeof x) { }
2015-04-13 23:01:57 +02:00
>s : (a: { foo: string; }) => void, Symbol(Base.s, Decl(derivedClassOverridesProtectedMembers2.ts, 10, 33))
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 23))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected static get t() { return x; }
2015-04-13 23:01:57 +02:00
>t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected static set t(v: typeof x) { }
2015-04-13 23:01:57 +02:00
>t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42))
>v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 27))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
protected static u: (a: typeof x) => void ;
2015-04-13 23:01:57 +02:00
>u : (a: { foo: string; }) => void, Symbol(Base.u, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 43))
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 14, 25))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
constructor(a: typeof x) { }
2015-04-13 23:01:57 +02:00
>a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 16, 12))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
}
// Increase visibility of all protected members to public
class Derived extends Base {
2015-04-13 23:01:57 +02:00
>Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36))
2014-09-23 20:22:38 +02:00
a: typeof y;
2015-04-13 23:01:57 +02:00
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
b(a: typeof y) { }
2015-04-13 23:01:57 +02:00
>b : (a: { foo: string; bar: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 6))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
get c() { return y; }
2015-04-13 23:01:57 +02:00
>c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
set c(v: typeof y) { }
2015-04-13 23:01:57 +02:00
>c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
>v : { foo: string; bar: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 10))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
d: (a: typeof y) => void;
2015-04-13 23:01:57 +02:00
>d : (a: { foo: string; bar: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 8))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
static r: typeof y;
2015-04-13 23:01:57 +02:00
>r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
static s(a: typeof y) { }
2015-04-13 23:01:57 +02:00
>s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 13))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
static get t() { return y; }
2015-04-13 23:01:57 +02:00
>t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
static set t(a: typeof y) { }
2015-04-13 23:01:57 +02:00
>t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 17))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
static u: (a: typeof y) => void;
2015-04-13 23:01:57 +02:00
>u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 31, 15))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
constructor(a: typeof y) { super(a); }
2015-04-13 23:01:57 +02:00
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
>super(a) : void
2015-04-13 23:01:57 +02:00
>super : typeof Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36))
>a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16))
2014-09-23 20:22:38 +02:00
}
var d: Derived = new Derived(y);
2015-04-13 23:01:57 +02:00
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
2014-09-23 20:22:38 +02:00
>new Derived(y) : Derived
2015-04-13 23:01:57 +02:00
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
var r1 = d.a;
2015-04-13 23:01:57 +02:00
>r1 : { foo: string; bar: string; }, Symbol(r1, Decl(derivedClassOverridesProtectedMembers2.ts, 37, 3))
>d.a : { foo: string; bar: string; }, Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28))
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>a : { foo: string; bar: string; }, Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28))
2014-09-23 20:22:38 +02:00
var r2 = d.b(y);
2015-04-13 23:01:57 +02:00
>r2 : void, Symbol(r2, Decl(derivedClassOverridesProtectedMembers2.ts, 38, 3))
2014-09-23 20:22:38 +02:00
>d.b(y) : void
2015-04-13 23:01:57 +02:00
>d.b : (a: { foo: string; bar: string; }) => void, Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16))
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>b : (a: { foo: string; bar: string; }) => void, Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
var r3 = d.c;
2015-04-13 23:01:57 +02:00
>r3 : { foo: string; bar: string; }, Symbol(r3, Decl(derivedClassOverridesProtectedMembers2.ts, 39, 3))
>d.c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
2014-09-23 20:22:38 +02:00
var r3a = d.d;
2015-04-13 23:01:57 +02:00
>r3a : (a: { foo: string; bar: string; }) => void, Symbol(r3a, Decl(derivedClassOverridesProtectedMembers2.ts, 40, 3))
>d.d : (a: { foo: string; bar: string; }) => void, Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26))
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>d : (a: { foo: string; bar: string; }) => void, Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26))
2014-09-23 20:22:38 +02:00
d.c = y;
>d.c = y : { foo: string; bar: string; }
2015-04-13 23:01:57 +02:00
>d.c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
>d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3))
>c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
var r4 = Derived.r;
2015-04-13 23:01:57 +02:00
>r4 : { foo: string; bar: string; }, Symbol(r4, Decl(derivedClassOverridesProtectedMembers2.ts, 42, 3))
>Derived.r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29))
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29))
2014-09-23 20:22:38 +02:00
var r5 = Derived.s(y);
2015-04-13 23:01:57 +02:00
>r5 : void, Symbol(r5, Decl(derivedClassOverridesProtectedMembers2.ts, 43, 3))
2014-09-23 20:22:38 +02:00
>Derived.s(y) : void
2015-04-13 23:01:57 +02:00
>Derived.s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23))
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
var r6 = Derived.t;
2015-04-13 23:01:57 +02:00
>r6 : { foo: string; bar: string; }, Symbol(r6, Decl(derivedClassOverridesProtectedMembers2.ts, 44, 3))
>Derived.t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
2014-09-23 20:22:38 +02:00
var r6a = Derived.u;
2015-04-13 23:01:57 +02:00
>r6a : (a: { foo: string; bar: string; }) => void, Symbol(r6a, Decl(derivedClassOverridesProtectedMembers2.ts, 45, 3))
>Derived.u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33))
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33))
2014-09-23 20:22:38 +02:00
Derived.t = y;
>Derived.t = y : { foo: string; bar: string; }
2015-04-13 23:01:57 +02:00
>Derived.t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
>Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1))
>t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
class Base2 {
2015-04-13 23:01:57 +02:00
>Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14))
2014-09-23 20:22:38 +02:00
[i: string]: Object;
2015-04-13 23:01:57 +02:00
>i : string, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 49, 5))
>Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11))
2014-09-23 20:22:38 +02:00
[i: number]: typeof x;
2015-04-13 23:01:57 +02:00
>i : number, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 50, 5))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
}
class Derived2 extends Base2 {
2015-04-13 23:01:57 +02:00
>Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1))
>Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14))
2014-09-23 20:22:38 +02:00
[i: string]: typeof x;
2015-04-13 23:01:57 +02:00
>i : string, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 54, 5))
>x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3))
2014-09-23 20:22:38 +02:00
[i: number]: typeof y;
2015-04-13 23:01:57 +02:00
>i : number, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 55, 5))
>y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3))
2014-09-23 20:22:38 +02:00
}
var d2: Derived2;
2015-04-13 23:01:57 +02:00
>d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3))
>Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1))
2014-09-23 20:22:38 +02:00
var r7 = d2[''];
2015-04-13 23:01:57 +02:00
>r7 : { foo: string; }, Symbol(r7, Decl(derivedClassOverridesProtectedMembers2.ts, 59, 3))
2014-09-23 20:22:38 +02:00
>d2[''] : { foo: string; }
2015-04-13 23:01:57 +02:00
>d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3))
2015-04-13 21:36:11 +02:00
>'' : string
2014-09-23 20:22:38 +02:00
var r8 = d2[1];
2015-04-13 23:01:57 +02:00
>r8 : { foo: string; bar: string; }, Symbol(r8, Decl(derivedClassOverridesProtectedMembers2.ts, 60, 3))
2014-09-23 20:22:38 +02:00
>d2[1] : { foo: string; bar: string; }
2015-04-13 23:01:57 +02:00
>d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3))
2015-04-13 21:36:11 +02:00
>1 : number
2014-09-23 20:22:38 +02:00