ts-ioc-container 22.4.4 → 22.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/cjm/container/Container.js +25 -13
- package/cjm/container/Container.js.map +1 -1
- package/esm/container/Container.js +8 -6
- package/esm/container/Container.js.map +1 -1
- package/package.json +2 -2
- package/cjm/provider/ProviderRepo.d.ts +0 -9
- package/cjm/provider/ProviderRepo.js +0 -93
- package/cjm/provider/ProviderRepo.js.map +0 -1
- package/esm/provider/ProviderRepo.d.ts +0 -9
- package/esm/provider/ProviderRepo.js +0 -29
- package/esm/provider/ProviderRepo.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Typescript IoC (Inversion Of Control) container
|
|
1
|
+
# Typescript IoC (Inversion Of Control) container
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|

|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
## Advantages
|
|
9
|
-
- battle tested
|
|
9
|
+
- battle tested :boom:
|
|
10
10
|
- written on `typescript`
|
|
11
11
|
- simple and lightweight (roughly it's just one file of **~100 lines**) :heart:
|
|
12
|
-
- clean API
|
|
12
|
+
- clean API :green_heart:
|
|
13
13
|
- supports `tagged scopes`
|
|
14
|
-
- fully test covered
|
|
14
|
+
- fully test covered :100:
|
|
15
15
|
- can be used with decorators `@inject`
|
|
16
16
|
- composable and open to extend
|
|
17
17
|
- awesome for testing (auto mocking)
|
|
@@ -83,7 +83,7 @@ container.register('ILogger', ProviderBuilder.fromClass(Logger).asSingleton('tag
|
|
|
83
83
|
container.register('ILogger', ProviderBuilder.fromClass(Logger).withArgs('dev').asSingleton().build());
|
|
84
84
|
|
|
85
85
|
// singleton in every scope
|
|
86
|
-
container.register('ILogger', ProviderBuilder.fromClass(Logger).withArgsFn((
|
|
86
|
+
container.register('ILogger', ProviderBuilder.fromClass(Logger).withArgsFn((scope) => [scope.resolve('isTestEnv') ? 'dev' : 'prod']).asSingleton().build());
|
|
87
87
|
|
|
88
88
|
container.register('ILogger', ProviderBuilder.fromValue(new Logger()).build());
|
|
89
89
|
```
|
|
@@ -39,14 +39,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.Container = void 0;
|
|
40
40
|
var IContainer_1 = require("./IContainer");
|
|
41
41
|
var EmptyContainer_1 = require("./EmptyContainer");
|
|
42
|
-
var ProviderRepo_1 = require("../provider/ProviderRepo");
|
|
43
42
|
var ContainerDisposedError_1 = require("./ContainerDisposedError");
|
|
44
43
|
var Container = /** @class */ (function () {
|
|
45
44
|
function Container(injector, options) {
|
|
46
45
|
if (options === void 0) { options = {}; }
|
|
47
46
|
var _a, _b;
|
|
48
47
|
this.injector = injector;
|
|
49
|
-
this.providers = new
|
|
48
|
+
this.providers = new Map();
|
|
50
49
|
this.isDisposed = false;
|
|
51
50
|
this.children = new Set();
|
|
52
51
|
this.instances = new Set();
|
|
@@ -55,7 +54,7 @@ var Container = /** @class */ (function () {
|
|
|
55
54
|
}
|
|
56
55
|
Container.prototype.register = function (key, provider) {
|
|
57
56
|
this.validateContainer();
|
|
58
|
-
this.providers.
|
|
57
|
+
this.providers.set(key, provider);
|
|
59
58
|
return this;
|
|
60
59
|
};
|
|
61
60
|
Container.prototype.resolve = function (key) {
|
|
@@ -72,7 +71,7 @@ var Container = /** @class */ (function () {
|
|
|
72
71
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
73
72
|
args[_i - 1] = arguments[_i];
|
|
74
73
|
}
|
|
75
|
-
var provider = this.providers.
|
|
74
|
+
var provider = this.providers.get(key);
|
|
76
75
|
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this)) ? provider.resolve.apply(provider, __spreadArray([this], __read(args), false)) : (_a = this.parent).resolve.apply(_a, __spreadArray([key], __read(args), false));
|
|
77
76
|
};
|
|
78
77
|
Container.prototype.resolveByInjector = function (key) {
|
|
@@ -109,32 +108,45 @@ var Container = /** @class */ (function () {
|
|
|
109
108
|
return scope;
|
|
110
109
|
};
|
|
111
110
|
Container.prototype.dispose = function () {
|
|
112
|
-
var e_2, _a;
|
|
111
|
+
var e_2, _a, e_3, _b;
|
|
113
112
|
this.validateContainer();
|
|
114
113
|
this.isDisposed = true;
|
|
115
114
|
this.parent.removeScope(this);
|
|
116
115
|
this.parent = new EmptyContainer_1.EmptyContainer();
|
|
117
116
|
try {
|
|
118
|
-
for (var
|
|
119
|
-
var child =
|
|
117
|
+
for (var _c = __values(this.children), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
118
|
+
var child = _d.value;
|
|
120
119
|
child.dispose();
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
122
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
124
123
|
finally {
|
|
125
124
|
try {
|
|
126
|
-
if (
|
|
125
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
127
126
|
}
|
|
128
127
|
finally { if (e_2) throw e_2.error; }
|
|
129
128
|
}
|
|
130
|
-
|
|
129
|
+
try {
|
|
130
|
+
for (var _e = __values(this.providers.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
131
|
+
var p = _f.value;
|
|
132
|
+
p.dispose();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
136
|
+
finally {
|
|
137
|
+
try {
|
|
138
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
139
|
+
}
|
|
140
|
+
finally { if (e_3) throw e_3.error; }
|
|
141
|
+
}
|
|
142
|
+
this.providers.clear();
|
|
131
143
|
this.instances.clear();
|
|
132
144
|
};
|
|
133
145
|
Container.prototype.getProviders = function () {
|
|
134
|
-
return
|
|
146
|
+
return new Map(__spreadArray(__spreadArray([], __read(this.parent.getProviders()), false), __read(this.providers), false));
|
|
135
147
|
};
|
|
136
148
|
Container.prototype.getInstances = function () {
|
|
137
|
-
var
|
|
149
|
+
var e_4, _a;
|
|
138
150
|
var instances = Array.from(this.instances);
|
|
139
151
|
try {
|
|
140
152
|
for (var _b = __values(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
@@ -142,12 +154,12 @@ var Container = /** @class */ (function () {
|
|
|
142
154
|
instances.push.apply(instances, __spreadArray([], __read(child.getInstances()), false));
|
|
143
155
|
}
|
|
144
156
|
}
|
|
145
|
-
catch (
|
|
157
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
146
158
|
finally {
|
|
147
159
|
try {
|
|
148
160
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
149
161
|
}
|
|
150
|
-
finally { if (
|
|
162
|
+
finally { if (e_4) throw e_4.error; }
|
|
151
163
|
}
|
|
152
164
|
return instances;
|
|
153
165
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAQsB;AAGtB,mDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { isDependencyKey, } from './IContainer';
|
|
2
2
|
import { EmptyContainer } from './EmptyContainer';
|
|
3
|
-
import { ProviderRepo } from '../provider/ProviderRepo';
|
|
4
3
|
import { ContainerDisposedError } from './ContainerDisposedError';
|
|
5
4
|
export class Container {
|
|
6
5
|
constructor(injector, options = {}) {
|
|
7
6
|
var _a, _b;
|
|
8
7
|
this.injector = injector;
|
|
9
|
-
this.providers = new
|
|
8
|
+
this.providers = new Map();
|
|
10
9
|
this.isDisposed = false;
|
|
11
10
|
this.children = new Set();
|
|
12
11
|
this.instances = new Set();
|
|
@@ -15,7 +14,7 @@ export class Container {
|
|
|
15
14
|
}
|
|
16
15
|
register(key, provider) {
|
|
17
16
|
this.validateContainer();
|
|
18
|
-
this.providers.
|
|
17
|
+
this.providers.set(key, provider);
|
|
19
18
|
return this;
|
|
20
19
|
}
|
|
21
20
|
resolve(key, ...args) {
|
|
@@ -23,7 +22,7 @@ export class Container {
|
|
|
23
22
|
return isDependencyKey(key) ? this.resolveByProvider(key, ...args) : this.resolveByInjector(key, ...args);
|
|
24
23
|
}
|
|
25
24
|
resolveByProvider(key, ...args) {
|
|
26
|
-
const provider = this.providers.
|
|
25
|
+
const provider = this.providers.get(key);
|
|
27
26
|
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this)) ? provider.resolve(this, ...args) : this.parent.resolve(key, ...args);
|
|
28
27
|
}
|
|
29
28
|
resolveByInjector(key, ...args) {
|
|
@@ -50,11 +49,14 @@ export class Container {
|
|
|
50
49
|
for (const child of this.children) {
|
|
51
50
|
child.dispose();
|
|
52
51
|
}
|
|
53
|
-
this.providers.
|
|
52
|
+
for (const p of this.providers.values()) {
|
|
53
|
+
p.dispose();
|
|
54
|
+
}
|
|
55
|
+
this.providers.clear();
|
|
54
56
|
this.instances.clear();
|
|
55
57
|
}
|
|
56
58
|
getProviders() {
|
|
57
|
-
return
|
|
59
|
+
return new Map([...this.parent.getProviders(), ...this.providers]);
|
|
58
60
|
}
|
|
59
61
|
getInstances() {
|
|
60
62
|
const instances = Array.from(this.instances);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,eAAe,GAGlB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "22.4.
|
|
3
|
+
"version": "22.4.6",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <igba14@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "23debd75915f180ca80499a3693dd63a9bb4fb8c"
|
|
52
52
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IProvider } from './IProvider';
|
|
2
|
-
import { DependencyKey } from '../container/IContainer';
|
|
3
|
-
export declare class ProviderRepo {
|
|
4
|
-
private readonly providers;
|
|
5
|
-
add(key: DependencyKey, provider: IProvider): this;
|
|
6
|
-
find<T>(key: DependencyKey): IProvider<T> | undefined;
|
|
7
|
-
merge(providers: Map<DependencyKey, IProvider>): Map<DependencyKey, IProvider>;
|
|
8
|
-
dispose(): void;
|
|
9
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.ProviderRepo = void 0;
|
|
31
|
-
var ProviderRepo = /** @class */ (function () {
|
|
32
|
-
function ProviderRepo() {
|
|
33
|
-
this.providers = new Map();
|
|
34
|
-
}
|
|
35
|
-
ProviderRepo.prototype.add = function (key, provider) {
|
|
36
|
-
this.providers.set(key, provider);
|
|
37
|
-
return this;
|
|
38
|
-
};
|
|
39
|
-
ProviderRepo.prototype.find = function (key) {
|
|
40
|
-
return this.providers.get(key);
|
|
41
|
-
};
|
|
42
|
-
ProviderRepo.prototype.merge = function (providers) {
|
|
43
|
-
var e_1, _a, e_2, _b;
|
|
44
|
-
var map = new Map();
|
|
45
|
-
try {
|
|
46
|
-
for (var _c = __values(providers.entries()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
47
|
-
var _e = __read(_d.value, 2), key = _e[0], value = _e[1];
|
|
48
|
-
map.set(key, value);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52
|
-
finally {
|
|
53
|
-
try {
|
|
54
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
55
|
-
}
|
|
56
|
-
finally { if (e_1) throw e_1.error; }
|
|
57
|
-
}
|
|
58
|
-
try {
|
|
59
|
-
for (var _f = __values(this.providers.entries()), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
60
|
-
var _h = __read(_g.value, 2), key = _h[0], value = _h[1];
|
|
61
|
-
map.set(key, value);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
65
|
-
finally {
|
|
66
|
-
try {
|
|
67
|
-
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
68
|
-
}
|
|
69
|
-
finally { if (e_2) throw e_2.error; }
|
|
70
|
-
}
|
|
71
|
-
return map;
|
|
72
|
-
};
|
|
73
|
-
ProviderRepo.prototype.dispose = function () {
|
|
74
|
-
var e_3, _a;
|
|
75
|
-
try {
|
|
76
|
-
for (var _b = __values(this.providers.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
77
|
-
var p = _c.value;
|
|
78
|
-
p.dispose();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
82
|
-
finally {
|
|
83
|
-
try {
|
|
84
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
85
|
-
}
|
|
86
|
-
finally { if (e_3) throw e_3.error; }
|
|
87
|
-
}
|
|
88
|
-
this.providers.clear();
|
|
89
|
-
};
|
|
90
|
-
return ProviderRepo;
|
|
91
|
-
}());
|
|
92
|
-
exports.ProviderRepo = ProviderRepo;
|
|
93
|
-
//# sourceMappingURL=ProviderRepo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IAAA;QACqB,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IA4BrE,CAAC;IA1BG,0BAAG,GAAH,UAAI,GAAkB,EAAE,QAAmB;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAI,GAAJ,UAAQ,GAAkB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;IACnD,CAAC;IAED,4BAAK,GAAL,UAAM,SAAwC;;QAC1C,IAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;;YAChD,KAA2B,IAAA,KAAA,SAAA,SAAS,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE;gBAArC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACvB;;;;;;;;;;YACD,KAA2B,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE;gBAA1C,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACvB;;;;;;;;;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,8BAAO,GAAP;;;YACI,KAAgB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA,gBAAA,4BAAE;gBAApC,IAAM,CAAC,WAAA;gBACR,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;;;;;;;;;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IACL,mBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,oCAAY"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IProvider } from './IProvider';
|
|
2
|
-
import { DependencyKey } from '../container/IContainer';
|
|
3
|
-
export declare class ProviderRepo {
|
|
4
|
-
private readonly providers;
|
|
5
|
-
add(key: DependencyKey, provider: IProvider): this;
|
|
6
|
-
find<T>(key: DependencyKey): IProvider<T> | undefined;
|
|
7
|
-
merge(providers: Map<DependencyKey, IProvider>): Map<DependencyKey, IProvider>;
|
|
8
|
-
dispose(): void;
|
|
9
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export class ProviderRepo {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.providers = new Map();
|
|
4
|
-
}
|
|
5
|
-
add(key, provider) {
|
|
6
|
-
this.providers.set(key, provider);
|
|
7
|
-
return this;
|
|
8
|
-
}
|
|
9
|
-
find(key) {
|
|
10
|
-
return this.providers.get(key);
|
|
11
|
-
}
|
|
12
|
-
merge(providers) {
|
|
13
|
-
const map = new Map();
|
|
14
|
-
for (const [key, value] of providers.entries()) {
|
|
15
|
-
map.set(key, value);
|
|
16
|
-
}
|
|
17
|
-
for (const [key, value] of this.providers.entries()) {
|
|
18
|
-
map.set(key, value);
|
|
19
|
-
}
|
|
20
|
-
return map;
|
|
21
|
-
}
|
|
22
|
-
dispose() {
|
|
23
|
-
for (const p of this.providers.values()) {
|
|
24
|
-
p.dispose();
|
|
25
|
-
}
|
|
26
|
-
this.providers.clear();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=ProviderRepo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAAzB;QACqB,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IA4BrE,CAAC;IA1BG,GAAG,CAAC,GAAkB,EAAE,QAAmB;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAI,GAAkB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAwC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACvB;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;YACjD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,EAAE,CAAC;SACf;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ"}
|