@nlozgachev/pipelined 0.10.0 → 0.11.0
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 -3
- package/esm/src/Core/Option.js +2 -1
- package/esm/src/Core/RemoteData.js +5 -5
- package/esm/src/Core/TaskValidation.js +1 -3
- package/esm/src/Core/index.js +0 -2
- package/esm/src/{Core → Utils}/Arr.js +95 -23
- package/esm/src/Utils/Num.js +124 -0
- package/esm/src/{Core → Utils}/Rec.js +59 -11
- package/esm/src/Utils/Str.js +134 -0
- package/esm/src/Utils/index.js +4 -0
- package/package.json +11 -1
- package/script/src/Core/Option.js +2 -1
- package/script/src/Core/RemoteData.js +5 -5
- package/script/src/Core/TaskValidation.js +1 -3
- package/script/src/Core/index.js +0 -2
- package/script/src/{Core → Utils}/Arr.js +95 -23
- package/script/src/Utils/Num.js +127 -0
- package/script/src/{Core → Utils}/Rec.js +59 -11
- package/script/src/Utils/Str.js +137 -0
- package/script/src/Utils/index.js +20 -0
- package/types/src/Composition/compose.d.ts.map +1 -1
- package/types/src/Composition/converge.d.ts.map +1 -1
- package/types/src/Composition/curry.d.ts.map +1 -1
- package/types/src/Composition/flow.d.ts.map +1 -1
- package/types/src/Composition/fn.d.ts.map +1 -1
- package/types/src/Composition/juxt.d.ts.map +1 -1
- package/types/src/Composition/memoize.d.ts.map +1 -1
- package/types/src/Composition/not.d.ts.map +1 -1
- package/types/src/Composition/on.d.ts.map +1 -1
- package/types/src/Composition/pipe.d.ts.map +1 -1
- package/types/src/Composition/uncurry.d.ts.map +1 -1
- package/types/src/Core/Deferred.d.ts.map +1 -1
- package/types/src/Core/Lens.d.ts.map +1 -1
- package/types/src/Core/Logged.d.ts.map +1 -1
- package/types/src/Core/Option.d.ts.map +1 -1
- package/types/src/Core/Optional.d.ts.map +1 -1
- package/types/src/Core/Predicate.d.ts.map +1 -1
- package/types/src/Core/Reader.d.ts.map +1 -1
- package/types/src/Core/Refinement.d.ts.map +1 -1
- package/types/src/Core/RemoteData.d.ts.map +1 -1
- package/types/src/Core/Result.d.ts.map +1 -1
- package/types/src/Core/State.d.ts.map +1 -1
- package/types/src/Core/Task.d.ts.map +1 -1
- package/types/src/Core/TaskOption.d.ts.map +1 -1
- package/types/src/Core/TaskResult.d.ts.map +1 -1
- package/types/src/Core/TaskValidation.d.ts.map +1 -1
- package/types/src/Core/These.d.ts.map +1 -1
- package/types/src/Core/Validation.d.ts.map +1 -1
- package/types/src/Core/index.d.ts +0 -2
- package/types/src/Core/index.d.ts.map +1 -1
- package/types/src/Types/Brand.d.ts.map +1 -1
- package/types/src/Types/NonEmptyList.d.ts.map +1 -1
- package/types/src/{Core → Utils}/Arr.d.ts +25 -3
- package/types/src/Utils/Arr.d.ts.map +1 -0
- package/types/src/Utils/Num.d.ts +110 -0
- package/types/src/Utils/Num.d.ts.map +1 -0
- package/types/src/{Core → Utils}/Rec.d.ts +23 -1
- package/types/src/Utils/Rec.d.ts.map +1 -0
- package/types/src/Utils/Str.d.ts +128 -0
- package/types/src/Utils/Str.d.ts.map +1 -0
- package/types/src/Utils/index.d.ts +5 -0
- package/types/src/Utils/index.d.ts.map +1 -0
- package/types/src/Core/Arr.d.ts.map +0 -1
- package/types/src/Core/Rec.d.ts.map +0 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Option } from "../Core/Option.js";
|
|
2
|
+
/**
|
|
3
|
+
* Number utilities for common operations. All transformation functions are data-last
|
|
4
|
+
* and curried so they compose naturally with `pipe` and `Arr.map`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { Num } from "@nlozgachev/pipelined/utils";
|
|
9
|
+
* import { pipe } from "@nlozgachev/pipelined/composition";
|
|
10
|
+
*
|
|
11
|
+
* pipe(
|
|
12
|
+
* Num.range(1, 6),
|
|
13
|
+
* Arr.map(Num.multiply(2)),
|
|
14
|
+
* Arr.filter(Num.between(4, 8))
|
|
15
|
+
* ); // [4, 6, 8]
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare namespace Num {
|
|
19
|
+
/**
|
|
20
|
+
* Generates an array of numbers from `from` to `to` (both inclusive),
|
|
21
|
+
* stepping by `step` (default `1`). If `step` is negative or zero, or `from > to`,
|
|
22
|
+
* returns an empty array. When `step` does not land exactly on `to`, the last value
|
|
23
|
+
* is the largest reachable value that does not exceed `to`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* Num.range(0, 5); // [0, 1, 2, 3, 4, 5]
|
|
28
|
+
* Num.range(0, 10, 2); // [0, 2, 4, 6, 8, 10]
|
|
29
|
+
* Num.range(0, 9, 2); // [0, 2, 4, 6, 8]
|
|
30
|
+
* Num.range(5, 0); // []
|
|
31
|
+
* Num.range(3, 3); // [3]
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const range: (from: number, to: number, step?: number) => readonly number[];
|
|
35
|
+
/**
|
|
36
|
+
* Clamps a number between `min` and `max` (both inclusive).
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* pipe(150, Num.clamp(0, 100)); // 100
|
|
41
|
+
* pipe(-5, Num.clamp(0, 100)); // 0
|
|
42
|
+
* pipe(42, Num.clamp(0, 100)); // 42
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
const clamp: (min: number, max: number) => (n: number) => number;
|
|
46
|
+
/**
|
|
47
|
+
* Returns `true` when the number is between `min` and `max` (both inclusive).
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* pipe(5, Num.between(1, 10)); // true
|
|
52
|
+
* pipe(0, Num.between(1, 10)); // false
|
|
53
|
+
* pipe(10, Num.between(1, 10)); // true
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
const between: (min: number, max: number) => (n: number) => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Parses a string as a number. Returns `None` when the result is `NaN`.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* Num.parse("42"); // Some(42)
|
|
63
|
+
* Num.parse("3.14"); // Some(3.14)
|
|
64
|
+
* Num.parse("abc"); // None
|
|
65
|
+
* Num.parse(""); // None
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
const parse: (s: string) => Option<number>;
|
|
69
|
+
/**
|
|
70
|
+
* Adds `b` to a number. Data-last: use in `pipe` or `Arr.map`.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* pipe(5, Num.add(3)); // 8
|
|
75
|
+
* pipe([1, 2, 3], Arr.map(Num.add(10))); // [11, 12, 13]
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
const add: (b: number) => (a: number) => number;
|
|
79
|
+
/**
|
|
80
|
+
* Subtracts `b` from a number. Data-last: `subtract(b)(a)` = `a - b`.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* pipe(10, Num.subtract(3)); // 7
|
|
85
|
+
* pipe([5, 10, 15], Arr.map(Num.subtract(2))); // [3, 8, 13]
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
const subtract: (b: number) => (a: number) => number;
|
|
89
|
+
/**
|
|
90
|
+
* Multiplies a number by `b`. Data-last: use in `pipe` or `Arr.map`.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* pipe(6, Num.multiply(7)); // 42
|
|
95
|
+
* pipe([1, 2, 3], Arr.map(Num.multiply(100))); // [100, 200, 300]
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
const multiply: (b: number) => (a: number) => number;
|
|
99
|
+
/**
|
|
100
|
+
* Divides a number by `b`. Data-last: `divide(b)(a)` = `a / b`.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* pipe(20, Num.divide(4)); // 5
|
|
105
|
+
* pipe([10, 20, 30], Arr.map(Num.divide(10))); // [1, 2, 3]
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
const divide: (b: number) => (a: number) => number;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=Num.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Num.d.ts","sourceRoot":"","sources":["../../../src/src/Utils/Num.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,yBAAiB,GAAG,CAAC;IACpB;;;;;;;;;;;;;;OAcG;IACI,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,IAAI,MAAM,EAAE,aAAQ,KAAG,SAAS,MAAM,EAQzE,CAAC;IAEF;;;;;;;;;OASG;IACI,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,MAAM,GAAG,MAAM,KAAG,MAAyC,CAAC;IAE1G;;;;;;;;;OASG;IACI,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,MAAM,GAAG,MAAM,KAAG,OAA+B,CAAC;IAElG;;;;;;;;;;OAUG;IACI,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,MAAM,CAAC,MAAM,CAI9C,CAAC;IAEF;;;;;;;;OAQG;IACI,MAAM,GAAG,GAAI,GAAG,MAAM,MAAM,GAAG,MAAM,KAAG,MAAe,CAAC;IAE/D;;;;;;;;OAQG;IACI,MAAM,QAAQ,GAAI,GAAG,MAAM,MAAM,GAAG,MAAM,KAAG,MAAe,CAAC;IAEpE;;;;;;;;OAQG;IACI,MAAM,QAAQ,GAAI,GAAG,MAAM,MAAM,GAAG,MAAM,KAAG,MAAe,CAAC;IAEpE;;;;;;;;OAQG;IACI,MAAM,MAAM,GAAI,GAAG,MAAM,MAAM,GAAG,MAAM,KAAG,MAAe,CAAC;CAClE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Option } from "
|
|
1
|
+
import { Option } from "../Core/Option.js";
|
|
2
2
|
/**
|
|
3
3
|
* Functional record/object utilities that compose well with pipe.
|
|
4
4
|
* All functions are data-last and curried where applicable.
|
|
@@ -117,5 +117,27 @@ export declare namespace Rec {
|
|
|
117
117
|
* Returns the number of keys in a record.
|
|
118
118
|
*/
|
|
119
119
|
const size: <A>(data: Readonly<Record<string, A>>) => number;
|
|
120
|
+
/**
|
|
121
|
+
* Transforms each key while preserving values.
|
|
122
|
+
* If two keys map to the same new key, the last one wins.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* pipe({ firstName: "Alice", lastName: "Smith" }, Rec.mapKeys(k => k.toUpperCase()));
|
|
127
|
+
* // { FIRSTNAME: "Alice", LASTNAME: "Smith" }
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
const mapKeys: (f: (key: string) => string) => <A>(data: Readonly<Record<string, A>>) => Readonly<Record<string, A>>;
|
|
131
|
+
/**
|
|
132
|
+
* Removes all `None` values from a `Record<string, Option<A>>`, returning a plain `Record<string, A>`.
|
|
133
|
+
* Useful when building records from fallible lookups.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* Rec.compact({ a: Option.some(1), b: Option.none(), c: Option.some(3) });
|
|
138
|
+
* // { a: 1, c: 3 }
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
const compact: <A>(data: Readonly<Record<string, Option<A>>>) => Readonly<Record<string, A>>;
|
|
120
142
|
}
|
|
121
143
|
//# sourceMappingURL=Rec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rec.d.ts","sourceRoot":"","sources":["../../../src/src/Utils/Rec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Option } from "../Core/Option.js";
|
|
2
|
+
/**
|
|
3
|
+
* String utilities. All transformation functions are data-last and curried so they
|
|
4
|
+
* compose naturally with `pipe`. Safe parsers return `Option` instead of `NaN`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { Str } from "@nlozgachev/pipelined/utils";
|
|
9
|
+
* import { pipe } from "@nlozgachev/pipelined/composition";
|
|
10
|
+
*
|
|
11
|
+
* pipe(" Hello, World! ", Str.trim, Str.toLowerCase); // "hello, world!"
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare namespace Str {
|
|
15
|
+
/**
|
|
16
|
+
* Splits a string by a separator. Data-last: use in `pipe`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* pipe("a,b,c", Str.split(",")); // ["a", "b", "c"]
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
const split: (separator: string | RegExp) => (s: string) => readonly string[];
|
|
24
|
+
/**
|
|
25
|
+
* Removes leading and trailing whitespace from a string.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* pipe(" hello ", Str.trim); // "hello"
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
const trim: (s: string) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Returns `true` when the string contains the given substring.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* pipe("hello world", Str.includes("world")); // true
|
|
39
|
+
* pipe("hello world", Str.includes("xyz")); // false
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
const includes: (substring: string) => (s: string) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Returns `true` when the string starts with the given prefix.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* pipe("hello world", Str.startsWith("hello")); // true
|
|
49
|
+
* pipe("hello world", Str.startsWith("world")); // false
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
const startsWith: (prefix: string) => (s: string) => boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Returns `true` when the string ends with the given suffix.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* pipe("hello world", Str.endsWith("world")); // true
|
|
59
|
+
* pipe("hello world", Str.endsWith("hello")); // false
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
const endsWith: (suffix: string) => (s: string) => boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Converts a string to uppercase.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* pipe("hello", Str.toUpperCase); // "HELLO"
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
const toUpperCase: (s: string) => string;
|
|
72
|
+
/**
|
|
73
|
+
* Converts a string to lowercase.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* pipe("HELLO", Str.toLowerCase); // "hello"
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
const toLowerCase: (s: string) => string;
|
|
81
|
+
/**
|
|
82
|
+
* Splits a string into lines, normalising `\r\n` and `\r` line endings.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* Str.lines("one\ntwo\nthree"); // ["one", "two", "three"]
|
|
87
|
+
* Str.lines("a\r\nb"); // ["a", "b"]
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
const lines: (s: string) => readonly string[];
|
|
91
|
+
/**
|
|
92
|
+
* Splits a string into words on any whitespace boundary, filtering out empty strings.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* Str.words(" hello world "); // ["hello", "world"]
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
const words: (s: string) => readonly string[];
|
|
100
|
+
/**
|
|
101
|
+
* Safe number parsers that return `Option` instead of `NaN`.
|
|
102
|
+
*/
|
|
103
|
+
const parse: {
|
|
104
|
+
/**
|
|
105
|
+
* Parses a string as an integer (base 10). Returns `None` if the result is `NaN`.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* Str.parse.int("42"); // Some(42)
|
|
110
|
+
* Str.parse.int("3.7"); // Some(3)
|
|
111
|
+
* Str.parse.int("abc"); // None
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
int: (s: string) => Option<number>;
|
|
115
|
+
/**
|
|
116
|
+
* Parses a string as a floating-point number. Returns `None` if the result is `NaN`.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* Str.parse.float("3.14"); // Some(3.14)
|
|
121
|
+
* Str.parse.float("42"); // Some(42)
|
|
122
|
+
* Str.parse.float("abc"); // None
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
float: (s: string) => Option<number>;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=Str.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Str.d.ts","sourceRoot":"","sources":["../../../src/src/Utils/Str.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,yBAAiB,GAAG,CAAC;IACpB;;;;;;;OAOG;IACI,MAAM,KAAK,GAAI,WAAW,MAAM,GAAG,MAAM,MAAM,GAAG,MAAM,KAAG,SAAS,MAAM,EAAwB,CAAC;IAE1G;;;;;;;OAOG;IACI,MAAM,IAAI,GAAI,GAAG,MAAM,KAAG,MAAkB,CAAC;IAEpD;;;;;;;;OAQG;IACI,MAAM,QAAQ,GAAI,WAAW,MAAM,MAAM,GAAG,MAAM,KAAG,OAAgC,CAAC;IAE7F;;;;;;;;OAQG;IACI,MAAM,UAAU,GAAI,QAAQ,MAAM,MAAM,GAAG,MAAM,KAAG,OAA+B,CAAC;IAE3F;;;;;;;;OAQG;IACI,MAAM,QAAQ,GAAI,QAAQ,MAAM,MAAM,GAAG,MAAM,KAAG,OAA6B,CAAC;IAEvF;;;;;;;OAOG;IACI,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,MAAyB,CAAC;IAElE;;;;;;;OAOG;IACI,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,MAAyB,CAAC;IAElE;;;;;;;;OAQG;IACI,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,SAAS,MAAM,EAAyB,CAAC;IAE3E;;;;;;;OAOG;IACI,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,SAAS,MAAM,EAA2C,CAAC;IAE7F;;OAEG;IACI,MAAM,KAAK;QACjB;;;;;;;;;WASG;iBACM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC;QAKhC;;;;;;;;;WASG;mBACQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC;KAIlC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Arr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Rec.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Rec.ts"],"names":[],"mappings":"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"}
|