@e280/stz 0.2.0-5 → 0.2.1
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 +9 -5
- package/package.json +3 -3
- package/s/dispenser.ts +53 -0
- package/s/hat.ts +1 -0
- package/s/index.ts +1 -0
- package/s/map-g.ts +2 -2
- package/x/dispenser.d.ts +20 -0
- package/x/dispenser.js +45 -0
- package/x/dispenser.js.map +1 -0
- package/x/hat.d.ts +1 -0
- package/x/hat.js +1 -0
- package/x/hat.js.map +1 -1
- package/x/index.d.ts +1 -0
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/map-g.d.ts +4 -4
- package/x/map-g.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
# 🏂 `@e280/stz`
|
|
3
3
|
|
|
4
|
-
**stz** is e280's standard library of environment-agnostic typescript tools.
|
|
4
|
+
**stz** is e280's standard library of environment-agnostic typescript tools. zero dependencies.
|
|
5
5
|
|
|
6
|
-
it's our javascript toolkit.
|
|
7
6
|
|
|
8
|
-
zero dependencies.
|
|
9
7
|
|
|
10
8
|
<br/>
|
|
11
9
|
|
|
@@ -148,6 +146,8 @@ await nap(900)
|
|
|
148
146
|
- `weakMap.require(key)` — returns value for key.. if missing, throw an error
|
|
149
147
|
- `weakMap.guarantee(key, makeFn)` — returns the value for key.. if missing, run `makeFn` to set and return the value
|
|
150
148
|
|
|
149
|
+
|
|
150
|
+
|
|
151
151
|
<br/>
|
|
152
152
|
|
|
153
153
|
## 🥨 stz fn tools
|
|
@@ -238,6 +238,8 @@ const stop = repeat(async() => {
|
|
|
238
238
|
stop()
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
+
|
|
242
|
+
|
|
241
243
|
<br/>
|
|
242
244
|
|
|
243
245
|
## 🥨 stz data utilities
|
|
@@ -321,6 +323,8 @@ stop()
|
|
|
321
323
|
- `1uK3au` base62 epoch seconds (6 chars)
|
|
322
324
|
- *nice*
|
|
323
325
|
|
|
326
|
+
|
|
327
|
+
|
|
324
328
|
<br/>
|
|
325
329
|
|
|
326
330
|
### 🍏 Bytename
|
|
@@ -355,9 +359,9 @@ import {Bytename} from "@e280/stz"
|
|
|
355
359
|
// "ribmug.hilmun ribmug.hilmun"
|
|
356
360
|
```
|
|
357
361
|
|
|
358
|
-
<br/>
|
|
359
362
|
|
|
360
|
-
|
|
363
|
+
|
|
364
|
+
<br/><br/>
|
|
361
365
|
|
|
362
366
|
## 💖 stz is by e280
|
|
363
367
|
reward us with github stars
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e280/stz",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "everyday ts fns for everything",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chase Moskal <chasemoskal@gmail.com>",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"_tscw": "tsc -w"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@e280/science": "^0.1.
|
|
30
|
-
"@types/node": "^24.3.
|
|
29
|
+
"@e280/science": "^0.1.2",
|
|
30
|
+
"@types/node": "^24.3.1",
|
|
31
31
|
"npm-run-all": "^4.1.5",
|
|
32
32
|
"typescript": "^5.9.2"
|
|
33
33
|
},
|
package/s/dispenser.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
/** dispenses items, and auto-refills whenever empty */
|
|
3
|
+
export class Dispenser<T> {
|
|
4
|
+
#content: T[] = []
|
|
5
|
+
|
|
6
|
+
constructor(private getRefill: () => T[]) {
|
|
7
|
+
this.#content = [...getRefill()]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** see what's currently available in the dispenser */
|
|
11
|
+
get currentStock() {
|
|
12
|
+
return [...this.#content]
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#refillWhenEmpty() {
|
|
16
|
+
if (this.#content.length === 0)
|
|
17
|
+
this.#content = [...this.getRefill()]
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** take everything that's left, and refill */
|
|
21
|
+
takeAll() {
|
|
22
|
+
const current = this.#content
|
|
23
|
+
this.#content = [...this.getRefill()]
|
|
24
|
+
return current
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** take a random item out of the dispenser */
|
|
28
|
+
takeRandom() {
|
|
29
|
+
this.#refillWhenEmpty()
|
|
30
|
+
const index = Math.floor(Math.random() * this.#content.length)
|
|
31
|
+
const [item] = this.#content.splice(index, 1)
|
|
32
|
+
return item
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** take out the first item */
|
|
36
|
+
takeFirst() {
|
|
37
|
+
this.#refillWhenEmpty()
|
|
38
|
+
return this.#content.shift()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** take out the last item */
|
|
42
|
+
takeLast() {
|
|
43
|
+
this.#refillWhenEmpty()
|
|
44
|
+
return this.#content.pop()
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** @alias takeFirst */
|
|
48
|
+
shift = this.takeFirst.bind(this)
|
|
49
|
+
|
|
50
|
+
/** @alias takeLast */
|
|
51
|
+
pop = this.takeLast.bind(this)
|
|
52
|
+
}
|
|
53
|
+
|
package/s/hat.ts
CHANGED
package/s/index.ts
CHANGED
package/s/map-g.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
export class MapG<K, V> extends Map<K, V> {
|
|
4
4
|
static require<K, V>(map: Map<K, V>, key: K) {
|
|
5
5
|
if (map.has(key))
|
|
6
|
-
return map.get(key)
|
|
6
|
+
return map.get(key) as V
|
|
7
7
|
else
|
|
8
8
|
throw new Error(`required key not found: "${key}"`)
|
|
9
9
|
}
|
|
@@ -35,7 +35,7 @@ export class MapG<K, V> extends Map<K, V> {
|
|
|
35
35
|
export class WeakMapG<K extends WeakKey, V> extends WeakMap<K, V> {
|
|
36
36
|
static require<K extends WeakKey, V>(map: WeakMap<K, V>, key: K) {
|
|
37
37
|
if (map.has(key))
|
|
38
|
-
return map.get(key)
|
|
38
|
+
return map.get(key) as V
|
|
39
39
|
else
|
|
40
40
|
throw new Error(`required key not found`)
|
|
41
41
|
}
|
package/x/dispenser.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** dispenses items, and auto-refills whenever empty */
|
|
2
|
+
export declare class Dispenser<T> {
|
|
3
|
+
#private;
|
|
4
|
+
private getRefill;
|
|
5
|
+
constructor(getRefill: () => T[]);
|
|
6
|
+
/** see what's currently available in the dispenser */
|
|
7
|
+
get currentStock(): T[];
|
|
8
|
+
/** take everything that's left, and refill */
|
|
9
|
+
takeAll(): T[];
|
|
10
|
+
/** take a random item out of the dispenser */
|
|
11
|
+
takeRandom(): T;
|
|
12
|
+
/** take out the first item */
|
|
13
|
+
takeFirst(): T | undefined;
|
|
14
|
+
/** take out the last item */
|
|
15
|
+
takeLast(): T | undefined;
|
|
16
|
+
/** @alias takeFirst */
|
|
17
|
+
shift: () => T | undefined;
|
|
18
|
+
/** @alias takeLast */
|
|
19
|
+
pop: () => T | undefined;
|
|
20
|
+
}
|
package/x/dispenser.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** dispenses items, and auto-refills whenever empty */
|
|
2
|
+
export class Dispenser {
|
|
3
|
+
getRefill;
|
|
4
|
+
#content = [];
|
|
5
|
+
constructor(getRefill) {
|
|
6
|
+
this.getRefill = getRefill;
|
|
7
|
+
this.#content = [...getRefill()];
|
|
8
|
+
}
|
|
9
|
+
/** see what's currently available in the dispenser */
|
|
10
|
+
get currentStock() {
|
|
11
|
+
return [...this.#content];
|
|
12
|
+
}
|
|
13
|
+
#refillWhenEmpty() {
|
|
14
|
+
if (this.#content.length === 0)
|
|
15
|
+
this.#content = [...this.getRefill()];
|
|
16
|
+
}
|
|
17
|
+
/** take everything that's left, and refill */
|
|
18
|
+
takeAll() {
|
|
19
|
+
const current = this.#content;
|
|
20
|
+
this.#content = [...this.getRefill()];
|
|
21
|
+
return current;
|
|
22
|
+
}
|
|
23
|
+
/** take a random item out of the dispenser */
|
|
24
|
+
takeRandom() {
|
|
25
|
+
this.#refillWhenEmpty();
|
|
26
|
+
const index = Math.floor(Math.random() * this.#content.length);
|
|
27
|
+
const [item] = this.#content.splice(index, 1);
|
|
28
|
+
return item;
|
|
29
|
+
}
|
|
30
|
+
/** take out the first item */
|
|
31
|
+
takeFirst() {
|
|
32
|
+
this.#refillWhenEmpty();
|
|
33
|
+
return this.#content.shift();
|
|
34
|
+
}
|
|
35
|
+
/** take out the last item */
|
|
36
|
+
takeLast() {
|
|
37
|
+
this.#refillWhenEmpty();
|
|
38
|
+
return this.#content.pop();
|
|
39
|
+
}
|
|
40
|
+
/** @alias takeFirst */
|
|
41
|
+
shift = this.takeFirst.bind(this);
|
|
42
|
+
/** @alias takeLast */
|
|
43
|
+
pop = this.takeLast.bind(this);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=dispenser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser.js","sourceRoot":"","sources":["../s/dispenser.ts"],"names":[],"mappings":"AACA,uDAAuD;AACvD,MAAM,OAAO,SAAS;IAGD;IAFpB,QAAQ,GAAQ,EAAE,CAAA;IAElB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,8CAA8C;IAC9C,OAAO;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,8CAA8C;IAC9C,UAAU;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,8BAA8B;IAC9B,SAAS;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IAED,6BAA6B;IAC7B,QAAQ;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;IAC3B,CAAC;IAED,uBAAuB;IACvB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjC,sBAAsB;IACtB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;CAC9B"}
|
package/x/hat.d.ts
CHANGED
package/x/hat.js
CHANGED
package/x/hat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hat.js","sourceRoot":"","sources":["../s/hat.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,GAAG;IAGI;IAFnB,QAAQ,GAAQ,EAAE,CAAA;IAElB,YAAmB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"hat.js","sourceRoot":"","sources":["../s/hat.ts"],"names":[],"mappings":"AACA,0CAA0C;AAC1C,MAAM,OAAO,GAAG;IAGI;IAFnB,QAAQ,GAAQ,EAAE,CAAA;IAElB,YAAmB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
|
package/x/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./constructor.js";
|
|
|
16
16
|
export * from "./deadline.js";
|
|
17
17
|
export * from "./dedupe.js";
|
|
18
18
|
export * from "./defer.js";
|
|
19
|
+
export * from "./dispenser.js";
|
|
19
20
|
export * from "./drill.js";
|
|
20
21
|
export * from "./escape-regex.js";
|
|
21
22
|
export * from "./ev.js";
|
package/x/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./constructor.js";
|
|
|
16
16
|
export * from "./deadline.js";
|
|
17
17
|
export * from "./dedupe.js";
|
|
18
18
|
export * from "./defer.js";
|
|
19
|
+
export * from "./dispenser.js";
|
|
19
20
|
export * from "./drill.js";
|
|
20
21
|
export * from "./escape-regex.js";
|
|
21
22
|
export * from "./ev.js";
|
package/x/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
package/x/map-g.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/** extended js map with handy methods like `require` and `guarantee` */
|
|
2
2
|
export declare class MapG<K, V> extends Map<K, V> {
|
|
3
|
-
static require<K, V>(map: Map<K, V>, key: K):
|
|
3
|
+
static require<K, V>(map: Map<K, V>, key: K): V;
|
|
4
4
|
static guarantee<K, V>(map: Map<K, V>, key: K, make: () => V): V;
|
|
5
5
|
array(): [K, V][];
|
|
6
|
-
require(key: K):
|
|
6
|
+
require(key: K): V;
|
|
7
7
|
guarantee(key: K, make: () => V): V;
|
|
8
8
|
}
|
|
9
9
|
/** extended weak map with handy methods like `require` and `guarantee` */
|
|
10
10
|
export declare class WeakMapG<K extends WeakKey, V> extends WeakMap<K, V> {
|
|
11
|
-
static require<K extends WeakKey, V>(map: WeakMap<K, V>, key: K):
|
|
11
|
+
static require<K extends WeakKey, V>(map: WeakMap<K, V>, key: K): V;
|
|
12
12
|
static guarantee<K extends WeakKey, V>(map: WeakMap<K, V>, key: K, make: () => V): V;
|
|
13
|
-
require(key: K):
|
|
13
|
+
require(key: K): V;
|
|
14
14
|
guarantee(key: K, make: () => V): V;
|
|
15
15
|
}
|
|
16
16
|
export type Identifiable<Id = any> = {
|
package/x/map-g.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,wEAAwE;AACxE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,wEAAwE;AACxE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;;YAExB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,SAAS,CAAO,GAAc,EAAE,GAAM,EAAE,IAAa;QAC3D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;aAChB,CAAC;YACL,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;CACD;AAED,0EAA0E;AAC1E,MAAM,OAAO,QAA+B,SAAQ,OAAa;IAChE,MAAM,CAAC,OAAO,CAAuB,GAAkB,EAAE,GAAM;QAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;;YAExB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,CAAC,SAAS,CAAuB,GAAkB,EAAE,GAAM,EAAE,IAAa;QAC/E,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;aAChB,CAAC;YACL,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;CACD;AAID,oDAAoD;AACpD,MAAM,OAAO,KAA8B,SAAQ,IAAgB;IAClE,GAAG,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,KAAQ;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;CACD"}
|