pareto-test 0.13.102 → 0.13.104
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/dist/implementation/generic.js +12 -12
- package/dist/implementation/manual/commands/run_tests.d.ts +0 -12
- package/dist/implementation/manual/commands/run_tests.js +92 -87
- package/dist/implementation/manual/refiners/test_command/main.d.ts +2 -2
- package/dist/implementation/manual/refiners/test_command/main.js +1 -1
- package/dist/implementation/manual/refiners/test_command/text.d.ts +2 -2
- package/dist/implementation/manual/refiners/test_command/text.js +1 -1
- package/dist/implementation/manual/transformers/directory_content/generic_testset.js +39 -39
- package/dist/implementation/manual/transformers/directory_content/merged_file_structure.d.ts +2 -2
- package/dist/implementation/manual/transformers/directory_content/merged_file_structure.js +9 -9
- package/dist/implementation/manual/transformers/merged_file_structure/generic_testset.js +22 -22
- package/dist/implementation/manual/transformers/read_directory_content/fountain_pen.d.ts +2 -2
- package/dist/implementation/manual/transformers/read_directory_content/fountain_pen.js +10 -10
- package/dist/implementation/manual/transformers/read_directory_content/generic_testset.js +39 -39
- package/dist/implementation/manual/transformers/read_directory_content/merged_file_structure.d.ts +2 -2
- package/dist/implementation/manual/transformers/read_directory_content/merged_file_structure.js +9 -9
- package/dist/implementation/manual/transformers/test_result/fountain_pen.d.ts +0 -4
- package/dist/implementation/manual/transformers/test_result/fountain_pen.js +28 -56
- package/dist/implementation/manual/transformers/test_result_2/actual_tree.js +30 -30
- package/dist/implementation/manual/transformers/test_result_2/fountain_pen.js +44 -44
- package/dist/implementation/manual/transformers/test_result_2/summary.d.ts +3 -3
- package/dist/implementation/manual/transformers/test_result_2/summary.js +15 -15
- package/dist/implementation/manual/transformers/write_directory_content/fountain_pen.d.ts +2 -2
- package/dist/implementation/manual/transformers/write_directory_content/fountain_pen.js +11 -11
- package/dist/implementation/temp/higher_order_functions/command_creators/test.js +28 -28
- package/dist/implementation/temp/higher_order_functions/generic_testset/temp.js +3 -3
- package/dist/implementation/temp/higher_order_functions/generic_testset/testset_shorthands.js +4 -4
- package/dist/interface/temp/generic.d.ts +0 -27
- package/dist/interface/temp/generic.js +30 -2
- package/dist/interface/to_be_generated/generic_testset.d.ts +2 -2
- package/dist/interface/to_be_generated/merged_filesystem_nodes.d.ts +4 -4
- package/dist/interface/to_be_generated/test_result.d.ts +2 -2
- package/dist/temporary_testset_generator/create_test_bin.js +4 -4
- package/dist/temporary_testset_generator/interface/testers.js +13 -13
- package/dist/temporary_testset_generator/shorthands.js +19 -19
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import * as
|
|
2
|
+
// import * as pi from 'pareto-core/dist/interface'
|
|
3
3
|
// import * as _pt from 'pareto-core/dist/assign'
|
|
4
4
|
// import create_refinement_context from 'pareto-core/dist/__internals/async/create_refinement_context'
|
|
5
5
|
// import * as generic from "../interface/temp/generic"
|
|
@@ -10,21 +10,21 @@
|
|
|
10
10
|
// 'log': resources_pareto.commands.log
|
|
11
11
|
// }
|
|
12
12
|
// }
|
|
13
|
-
// export const run_transformer_tests_with_parameters = <Input extends
|
|
14
|
-
// tests:
|
|
15
|
-
// implementation:
|
|
13
|
+
// export const run_transformer_tests_with_parameters = <Input extends pi.Value, Expected extends pi.Value, Parameters>(
|
|
14
|
+
// tests: pi.Dictionary<generic.Transformer_With_Parameter<Input, Expected, Parameters>>,
|
|
15
|
+
// implementation: pi.Transformer_With_Parameter<Input, Expected, Parameters>
|
|
16
16
|
// ): generic.Results => tests.__d_map(($) => ['test', {
|
|
17
17
|
// 'passed': implementation($.input.input, $.input.parameters) === $.expected
|
|
18
18
|
// }])
|
|
19
|
-
// export const run_transformer_tests_without_parameters = <Input extends
|
|
20
|
-
// $:
|
|
21
|
-
// implementation:
|
|
19
|
+
// export const run_transformer_tests_without_parameters = <Input extends pi.Value, Expected extends pi.Value>(
|
|
20
|
+
// $: pi.Dictionary<generic.Transformer<Input, Expected>>,
|
|
21
|
+
// implementation: pi.Transformer<Input, Expected>
|
|
22
22
|
// ): generic.Results => $.__d_map(($) => ['test', {
|
|
23
23
|
// 'passed': implementation($.input) === $.expected
|
|
24
24
|
// }])
|
|
25
25
|
// export const run_refiner_tests_with_parameters = <Expected_Output, Expected_Error, Input, Parameters>(
|
|
26
|
-
// tests:
|
|
27
|
-
// implementation:
|
|
26
|
+
// tests: pi.Dictionary<generic.Refiner_With_Parameter<Expected_Output, Expected_Error, Input, Parameters>>,
|
|
27
|
+
// implementation: pi.Refiner_With_Parameter<Expected_Output, Expected_Error, Input, Parameters>
|
|
28
28
|
// ): generic.Results => tests.__d_map(($) => {
|
|
29
29
|
// const expected = $.expected
|
|
30
30
|
// return ['test', {
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
// }]
|
|
56
56
|
// })
|
|
57
57
|
// export const run_refiner_tests_without_parameters = <Expected_Output, Expected_Error, Input>(
|
|
58
|
-
// $:
|
|
59
|
-
// implementation:
|
|
58
|
+
// $: pi.Dictionary<generic.Refiner_Without_Parameters<Expected_Output, Expected_Error, Input>>,
|
|
59
|
+
// implementation: pi.Refiner<Expected_Output, Expected_Error, Input>
|
|
60
60
|
// ): generic.Results => {
|
|
61
61
|
// return $.__d_map(($) => {
|
|
62
62
|
// const expected = $.expected
|
|
@@ -88,4 +88,4 @@
|
|
|
88
88
|
// }]
|
|
89
89
|
// })
|
|
90
90
|
// }
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9nZW5lcmljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtREFBbUQ7QUFDbkQsaURBQWlEO0FBRWpELHVHQUF1RztBQUV2Ryx1REFBdUQ7QUFFdkQsNkVBQTZFO0FBRTdFLDRCQUE0QjtBQUM1QixvQkFBb0I7QUFDcEIsMkRBQTJEO0FBQzNELCtDQUErQztBQUMvQyxRQUFRO0FBQ1IsSUFBSTtBQUVKLHdIQUF3SDtBQUN4SCw2RkFBNkY7QUFDN0YsaUZBQWlGO0FBQ2pGLHdEQUF3RDtBQUN4RCxpRkFBaUY7QUFDakYsTUFBTTtBQUVOLCtHQUErRztBQUMvRyw4REFBOEQ7QUFDOUQsc0RBQXNEO0FBQ3RELG9EQUFvRDtBQUNwRCx1REFBdUQ7QUFDdkQsTUFBTTtBQUVOLHlHQUF5RztBQUN6RyxnSEFBZ0g7QUFDaEgsb0dBQW9HO0FBQ3BHLCtDQUErQztBQUMvQyxrQ0FBa0M7QUFDbEMsd0JBQXdCO0FBQ3hCLGdGQUFnRjtBQUNoRixrRkFBa0Y7QUFDbEYsNEJBQTRCO0FBQzVCLHVCQUF1QjtBQUN2QixtQ0FBbUM7QUFDbkMsNkRBQTZEO0FBQzdELHNDQUFzQztBQUN0QywrRUFBK0U7QUFDL0UsdUVBQXVFO0FBQ3ZFLHVEQUF1RDtBQUN2RCx3QkFBd0I7QUFDeEIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQix1QkFBdUI7QUFDdkIsa0NBQWtDO0FBQ2xDLDZEQUE2RDtBQUM3RCxzQ0FBc0M7QUFDdEMsd0VBQXdFO0FBQ3hFLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsd0JBQXdCO0FBQ3hCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsWUFBWTtBQUNaLFNBQVM7QUFDVCxLQUFLO0FBRUwsZ0dBQWdHO0FBQ2hHLG9HQUFvRztBQUNwRyx5RUFBeUU7QUFDekUsMEJBQTBCO0FBQzFCLGdDQUFnQztBQUNoQyxzQ0FBc0M7QUFDdEMsNEJBQTRCO0FBQzVCLG9GQUFvRjtBQUNwRiw0REFBNEQ7QUFDNUQsZ0NBQWdDO0FBQ2hDLDJCQUEyQjtBQUMzQix1Q0FBdUM7QUFDdkMsaUVBQWlFO0FBQ2pFLDBDQUEwQztBQUMxQyxtRkFBbUY7QUFDbkYsMkVBQTJFO0FBQzNFLDJEQUEyRDtBQUMzRCw0QkFBNEI7QUFDNUIseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQiwyQkFBMkI7QUFDM0Isc0NBQXNDO0FBQ3RDLGlFQUFpRTtBQUNqRSwwQ0FBMEM7QUFDMUMsNEVBQTRFO0FBQzVFLGlGQUFpRjtBQUNqRiwyREFBMkQ7QUFDM0QsNEJBQTRCO0FBQzVCLHlCQUF5QjtBQUN6QixxQkFBcUI7QUFDckIsZ0JBQWdCO0FBQ2hCLGFBQWE7QUFDYixTQUFTO0FBQ1QsSUFBSSJ9
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as _pci from 'pareto-core/dist/command_interface';
|
|
2
|
-
import * as d_test from "../../../interface/temp/generic";
|
|
3
|
-
import * as resources_pareto from "pareto-stream/dist/interface/resources";
|
|
4
|
-
export type Parameters = {
|
|
5
|
-
'test results': d_test.Results;
|
|
6
|
-
};
|
|
7
|
-
export type Command = _pci.Command<null, Parameters>;
|
|
8
|
-
export type Signature = _pci.Command_Procedure<Command, null, null, {
|
|
9
|
-
'log error': resources_pareto.commands.log_error;
|
|
10
|
-
'log': resources_pareto.commands.log;
|
|
11
|
-
}>;
|
|
12
|
-
export declare const $$: Signature;
|
|
@@ -1,88 +1,93 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
]
|
|
88
|
-
|
|
2
|
+
// import * as pt from 'pareto-core/dist/command'
|
|
3
|
+
// import * as _pt from 'pareto-core/dist/assign'
|
|
4
|
+
// import * as pi from 'pareto-core/dist/interface'
|
|
5
|
+
// import * as pqi from 'pareto-core/dist/query_interface'
|
|
6
|
+
// import * as pci from 'pareto-core/dist/command_interface'
|
|
7
|
+
// import * as d_test from "../../../interface/temp/generic"
|
|
8
|
+
// import * as resources_pareto from "pareto-stream/dist/interface/resources"
|
|
9
|
+
// //shorthands
|
|
10
|
+
// import * as sh from "pareto-fountain-pen/dist/shorthands/prose"
|
|
11
|
+
// export type Parameters = {
|
|
12
|
+
// 'test results': d_test.Results,
|
|
13
|
+
// }
|
|
14
|
+
// export type Command = pci.Command<null, Parameters>
|
|
15
|
+
// export type Signature = pci.Command_Procedure<
|
|
16
|
+
// Command,
|
|
17
|
+
// null,
|
|
18
|
+
// null,
|
|
19
|
+
// {
|
|
20
|
+
// 'log error': resources_pareto.commands.log_error,
|
|
21
|
+
// 'log': resources_pareto.commands.log,
|
|
22
|
+
// }
|
|
23
|
+
// >
|
|
24
|
+
// import * as t_test_result_to_fp from "../transformers/test_result/fountain_pen"
|
|
25
|
+
// const has_passed = (results: d_test.Results): boolean => _pt.boolean.from.dictionary(
|
|
26
|
+
// _pt.dictionary.from.dictionary(results,
|
|
27
|
+
// ).map_optionally(
|
|
28
|
+
// ($) => _pt.decide.state($, ($): pi.Optional_Value<null> => {
|
|
29
|
+
// switch ($[0]) {
|
|
30
|
+
// case 'test': return _pt.ss($, ($) => $.passed ? _pt.optional.literal.not_set() : _pt.optional.literal.set(null))
|
|
31
|
+
// case 'group': return _pt.ss($, ($) => has_passed($) ? _pt.optional.literal.not_set() : _pt.optional.literal.set(null))
|
|
32
|
+
// default: return _pt.au($[0])
|
|
33
|
+
// }
|
|
34
|
+
// })
|
|
35
|
+
// )
|
|
36
|
+
// ).is_empty()
|
|
37
|
+
// export const $$: Signature = pt.command_procedure(
|
|
38
|
+
// ($d, $s, $q, $c) => [
|
|
39
|
+
// $c.log.execute(
|
|
40
|
+
// {
|
|
41
|
+
// 'message': sh.pg.sentences([
|
|
42
|
+
// sh.sentence([
|
|
43
|
+
// sh.ph.literal("running tests..."),
|
|
44
|
+
// ])
|
|
45
|
+
// ]),
|
|
46
|
+
// },
|
|
47
|
+
// ($) => $,
|
|
48
|
+
// ),
|
|
49
|
+
// pt.if_.direct(
|
|
50
|
+
// has_passed($d['test results']),
|
|
51
|
+
// [
|
|
52
|
+
// $c.log.execute(
|
|
53
|
+
// {
|
|
54
|
+
// 'message': sh.pg.sentences([
|
|
55
|
+
// sh.sentence([]),
|
|
56
|
+
// sh.sentence([
|
|
57
|
+
// sh.ph.literal("all tests successful."),
|
|
58
|
+
// ]),
|
|
59
|
+
// ]),
|
|
60
|
+
// },
|
|
61
|
+
// ($) => $,
|
|
62
|
+
// ),
|
|
63
|
+
// ]
|
|
64
|
+
// ),
|
|
65
|
+
// pt.if_.direct(
|
|
66
|
+
// !has_passed($d['test results']),
|
|
67
|
+
// [
|
|
68
|
+
// $c['log error'].execute(
|
|
69
|
+
// {
|
|
70
|
+
// 'message': sh.pg.composed([
|
|
71
|
+
// t_test_result_to_fp.Results($d['test results']),
|
|
72
|
+
// sh.pg.sentences([
|
|
73
|
+
// sh.sentence([]),
|
|
74
|
+
// sh.sentence([
|
|
75
|
+
// sh.ph.literal("some tests failed"),
|
|
76
|
+
// ])
|
|
77
|
+
// ]),
|
|
78
|
+
// ])
|
|
79
|
+
// },
|
|
80
|
+
// ($) => $,
|
|
81
|
+
// ),
|
|
82
|
+
// // $c['write directory content'].execute(
|
|
83
|
+
// // {
|
|
84
|
+
// // 'path':
|
|
85
|
+
// // 'content': $p,
|
|
86
|
+
// // },
|
|
87
|
+
// // ($): d_write_directory_content.Error => ['writing test failures', $],
|
|
88
|
+
// // ),
|
|
89
|
+
// ]
|
|
90
|
+
// )
|
|
91
|
+
// ]
|
|
92
|
+
// )
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuX3Rlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL21hbnVhbC9jb21tYW5kcy9ydW5fdGVzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlEQUFpRDtBQUNqRCxpREFBaUQ7QUFDakQsbURBQW1EO0FBQ25ELDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFJNUQsNERBQTREO0FBRTVELDZFQUE2RTtBQUU3RSxlQUFlO0FBQ2Ysa0VBQWtFO0FBRWxFLDZCQUE2QjtBQUM3QixzQ0FBc0M7QUFDdEMsSUFBSTtBQUVKLHNEQUFzRDtBQUV0RCxpREFBaUQ7QUFDakQsZUFBZTtBQUNmLFlBQVk7QUFDWixZQUFZO0FBQ1osUUFBUTtBQUNSLDREQUE0RDtBQUM1RCxnREFBZ0Q7QUFDaEQsUUFBUTtBQUNSLElBQUk7QUFFSixrRkFBa0Y7QUFFbEYsd0ZBQXdGO0FBQ3hGLDhDQUE4QztBQUM5Qyx3QkFBd0I7QUFDeEIsdUVBQXVFO0FBQ3ZFLDhCQUE4QjtBQUM5QixtSUFBbUk7QUFDbkkseUlBQXlJO0FBQ3pJLCtDQUErQztBQUMvQyxnQkFBZ0I7QUFDaEIsYUFBYTtBQUNiLFFBQVE7QUFDUixlQUFlO0FBRWYscURBQXFEO0FBQ3JELDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsZ0JBQWdCO0FBQ2hCLCtDQUErQztBQUMvQyxvQ0FBb0M7QUFDcEMsNkRBQTZEO0FBQzdELHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEIsaUJBQWlCO0FBQ2pCLHdCQUF3QjtBQUN4QixhQUFhO0FBQ2IseUJBQXlCO0FBQ3pCLDhDQUE4QztBQUM5QyxnQkFBZ0I7QUFDaEIsa0NBQWtDO0FBQ2xDLHdCQUF3QjtBQUN4Qix1REFBdUQ7QUFDdkQsK0NBQStDO0FBQy9DLDRDQUE0QztBQUM1QywwRUFBMEU7QUFDMUUsa0NBQWtDO0FBQ2xDLDhCQUE4QjtBQUM5Qix5QkFBeUI7QUFDekIsZ0NBQWdDO0FBQ2hDLHFCQUFxQjtBQUNyQixnQkFBZ0I7QUFDaEIsYUFBYTtBQUNiLHlCQUF5QjtBQUN6QiwrQ0FBK0M7QUFDL0MsZ0JBQWdCO0FBQ2hCLDJDQUEyQztBQUMzQyx3QkFBd0I7QUFDeEIsc0RBQXNEO0FBQ3RELCtFQUErRTtBQUMvRSxnREFBZ0Q7QUFDaEQsbURBQW1EO0FBQ25ELGdEQUFnRDtBQUNoRCwwRUFBMEU7QUFDMUUscUNBQXFDO0FBQ3JDLGtDQUFrQztBQUNsQyw2QkFBNkI7QUFDN0IseUJBQXlCO0FBQ3pCLGdDQUFnQztBQUNoQyxxQkFBcUI7QUFDckIsNERBQTREO0FBQzVELDJCQUEyQjtBQUMzQixzQ0FBc0M7QUFDdEMsNENBQTRDO0FBQzVDLDRCQUE0QjtBQUM1QiwrRkFBK0Y7QUFDL0Ysd0JBQXdCO0FBQ3hCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osUUFBUTtBQUNSLElBQUkifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as pi from 'pareto-core/dist/interface';
|
|
2
2
|
import * as d from "../../../../interface/to_be_generated/test_command";
|
|
3
3
|
import * as d_main from "pareto-resources/dist/interface/to_be_generated/temp_main";
|
|
4
|
-
export declare const Parameters:
|
|
4
|
+
export declare const Parameters: pi.Refiner<d.Parameters, string, d_main.Parameters>;
|
|
@@ -43,4 +43,4 @@ const Parameters = ($, abort) => (0, _p_iterate_1.default)($.arguments, null, (i
|
|
|
43
43
|
not_finished: ($) => abort("too many arguments")
|
|
44
44
|
}));
|
|
45
45
|
exports.Parameters = Parameters;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvdGVzdF9jb21tYW5kL21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkVBQW1EO0FBRW5ELGlEQUFrQztBQUszQixNQUFNLFVBQVUsR0FBd0QsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG9CQUFTLEVBQ2xHLENBQUMsQ0FBQyxTQUFTLEVBQ1gsSUFBSSxFQUNKLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUNsQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUNyQixRQUFRLEVBQ1IsS0FBSyxDQUNSLEVBQ0Q7SUFDSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztDQUNuRCxDQUNKLENBQ0osQ0FBQTtBQVpZLFFBQUEsVUFBVSxjQVl0QiJ9
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as pi from 'pareto-core/dist/interface';
|
|
2
2
|
import * as d from "../../../../interface/to_be_generated/test_command";
|
|
3
|
-
export declare const Parameters: (iterator:
|
|
3
|
+
export declare const Parameters: (iterator: pi.Iterator<string, null>, abort: pi.Abort<string>) => d.Parameters;
|
|
@@ -41,4 +41,4 @@ const Parameters = (iterator, abort) => {
|
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
exports.Parameters = Parameters;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvdGVzdF9jb21tYW5kL3RleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0EsOEhBQStHO0FBR3hHLE1BQU0sVUFBVSxHQUFHLENBQ3RCLFFBQW1DLEVBQ25DLEtBQXVCLEVBQ1gsRUFBRTtJQUNkLE9BQU87UUFDSCxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQzlDLFFBQVEsQ0FBQyxPQUFPLENBQ1osQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FDNUMsQ0FFSjtLQUNKLENBQUE7QUFDTCxDQUFDLENBQUE7QUFiWSxRQUFBLFVBQVUsY0FhdEIifQ==
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import * as
|
|
3
|
-
// import * as
|
|
4
|
-
// import
|
|
5
|
-
// import
|
|
6
|
-
// import
|
|
7
|
-
// import
|
|
2
|
+
// import * as pt from 'pareto-core/dist/assign'
|
|
3
|
+
// import * as pi from 'pareto-core/dist/interface'
|
|
4
|
+
// import p_unreachable_code_path from 'pareto-core/dist/_p_unreachable_code_path'
|
|
5
|
+
// import p_list_build_deprecated from 'pareto-core/dist/_p_list_build_deprecated'
|
|
6
|
+
// import p_list_from_text from 'pareto-core/dist/_p_list_from_text'
|
|
7
|
+
// import p_text_from_list from 'pareto-core/dist/_p_text_from_list'
|
|
8
8
|
// import * as d_in from "pareto-resources/dist/interface/to_be_generated/directory_content"
|
|
9
9
|
// import * as d_out from "../../../../interface/to_be_generated/generic_testset"
|
|
10
|
-
// const remove_suffix = ($: string, suffix: string):
|
|
10
|
+
// const remove_suffix = ($: string, suffix: string): pi.Optional_Value<string> => {
|
|
11
11
|
// let suffix_matches = true
|
|
12
|
-
// const main_as_characters =
|
|
13
|
-
// const suffix_as_characters =
|
|
12
|
+
// const main_as_characters = p_list_from_text($, ($) => $)
|
|
13
|
+
// const suffix_as_characters = p_list_from_text(suffix, ($) => $)
|
|
14
14
|
// const main_length = main_as_characters.__get_number_of_items()
|
|
15
15
|
// const suffix_length = suffix_as_characters.__get_number_of_items()
|
|
16
|
-
// const stripped =
|
|
16
|
+
// const stripped = p_list_build_deprecated<number>(($i) => {
|
|
17
17
|
// let index = -1
|
|
18
18
|
// main_as_characters.__l_map(($) => {
|
|
19
19
|
// index += 1
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
// //validate the right suffix
|
|
24
24
|
// const cur_char = $
|
|
25
25
|
// const suffix_index = index - (main_length - suffix_length)
|
|
26
|
-
//
|
|
26
|
+
// pt.optional.from.optional(
|
|
27
27
|
// suffix_as_characters.__deprecated_get_possible_item_at(suffix_index),
|
|
28
28
|
// ).map(
|
|
29
29
|
// ($) => {
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
// })
|
|
37
37
|
// })
|
|
38
38
|
// if (suffix_matches) {
|
|
39
|
-
// return
|
|
39
|
+
// return pt.optional.literal.set(p_text_from_list(stripped, ($) => $))
|
|
40
40
|
// }
|
|
41
|
-
// return
|
|
41
|
+
// return pt.optional.literal.set($)
|
|
42
42
|
// }
|
|
43
43
|
// export type Parameters = {
|
|
44
44
|
// 'expected': d_in.Directory
|
|
@@ -49,30 +49,30 @@
|
|
|
49
49
|
// * an individual file in the main file structure will be matched against the expected file/directory with this suffix appended
|
|
50
50
|
// * for esmple, to match "test1.txt" against "test1.txt.astn", the suffix would be ".astn"
|
|
51
51
|
// */
|
|
52
|
-
// 'to be appended to expected':
|
|
52
|
+
// 'to be appended to expected': pi.Optional_Value<string>
|
|
53
53
|
// /**
|
|
54
54
|
// * an individual file in the expected file structure will be matched against the main file/directory with this suffix removed
|
|
55
55
|
// * for esmple, to match "test1.txt.astn" against "test1.txt", the suffix would be ".astn"
|
|
56
56
|
// */
|
|
57
|
-
// 'to be removed from input':
|
|
57
|
+
// 'to be removed from input': pi.Optional_Value<string>
|
|
58
58
|
// }
|
|
59
|
-
// export const Directory:
|
|
60
|
-
// 'nodes': $.__d_map(($, id) =>
|
|
59
|
+
// export const Directory: pi.Transformer_With_Parameter<d_in.Directory, d_out.Directory, Parameters> = ($, $p) => ({
|
|
60
|
+
// 'nodes': $.__d_map(($, id) => pt.decide.state($, ($): d_out.Node => {
|
|
61
61
|
// switch ($[0]) {
|
|
62
|
-
// case 'other': return
|
|
63
|
-
// case 'file': return
|
|
62
|
+
// case 'other': return pt.ss($, () => p_unreachable_code_path("this needs proper handling"))//"expected a file or a directory"
|
|
63
|
+
// case 'file': return pt.ss($, ($): d_out.Node => {
|
|
64
64
|
// const get_matching_expect_file = ($: string): d_out.Node__file__expected => {
|
|
65
65
|
// const expected_node = $p.expected.__get_possible_entry_deprecated($ + $p['suffix settings']['to be appended to expected'].__decide(
|
|
66
66
|
// ($) => $,
|
|
67
67
|
// () => ""
|
|
68
68
|
// ))
|
|
69
69
|
// return expected_node.__decide(
|
|
70
|
-
// ($) =>
|
|
70
|
+
// ($) => pt.decide.state($, ($): d_out.Node__file__expected => {
|
|
71
71
|
// switch ($[0]) {
|
|
72
|
-
// case 'file': return
|
|
73
|
-
// case 'directory': return
|
|
74
|
-
// case 'other': return
|
|
75
|
-
// default: return
|
|
72
|
+
// case 'file': return pt.ss($, ($) => ['valid', $])
|
|
73
|
+
// case 'directory': return pt.ss($, ($) => ['invalid', ['expected', ['is not a file', null]]])
|
|
74
|
+
// case 'other': return pt.ss($, ($) => ['invalid', ['expected', ['is not a file', null]]])
|
|
75
|
+
// default: return pt.au($[0])
|
|
76
76
|
// }
|
|
77
77
|
// }),
|
|
78
78
|
// (): d_out.Node__file__expected => ['invalid', ['expected', ['does not exist', null]]]
|
|
@@ -90,37 +90,37 @@
|
|
|
90
90
|
// )
|
|
91
91
|
// }]
|
|
92
92
|
// })
|
|
93
|
-
// case 'directory': return
|
|
93
|
+
// case 'directory': return pt.ss($, ($) => {
|
|
94
94
|
// const expected_node = $p.expected.__get_possible_entry_deprecated(id)
|
|
95
95
|
// const input_node = $
|
|
96
96
|
// return ['directory', expected_node.__decide(
|
|
97
|
-
// ($) =>
|
|
97
|
+
// ($) => pt.decide.state($, ($) => {
|
|
98
98
|
// switch ($[0]) {
|
|
99
|
-
// case 'other': return
|
|
100
|
-
// case 'file': return
|
|
101
|
-
// case 'directory': return
|
|
99
|
+
// case 'other': return pt.ss($, ($) => ['invalid', ['node for expected is not a directory', null]])
|
|
100
|
+
// case 'file': return pt.ss($, ($) => ['invalid', ['node for expected is not a directory', null]])
|
|
101
|
+
// case 'directory': return pt.ss($, ($) => ['valid', Directory(
|
|
102
102
|
// input_node,
|
|
103
103
|
// {
|
|
104
104
|
// 'expected': $,
|
|
105
105
|
// 'suffix settings': $p['suffix settings'],
|
|
106
106
|
// }
|
|
107
107
|
// )])
|
|
108
|
-
// default: return
|
|
108
|
+
// default: return pt.au($[0])
|
|
109
109
|
// }
|
|
110
110
|
// }),
|
|
111
111
|
// () => ['invalid', ['directory for expected does not exist', null]]
|
|
112
112
|
// )]
|
|
113
113
|
// })
|
|
114
|
-
// default: return
|
|
114
|
+
// default: return pt.au($[0])
|
|
115
115
|
// }
|
|
116
116
|
// })),
|
|
117
|
-
// // 'superfluous nodes':
|
|
117
|
+
// // 'superfluous nodes': pt.block(() => {
|
|
118
118
|
// // const temp: { [id: string]: null } = {}
|
|
119
119
|
// // $.__d_map(($, id) => {
|
|
120
|
-
// // const key_of_expected =
|
|
120
|
+
// // const key_of_expected = pt.decide.state($, ($): string => {
|
|
121
121
|
// // switch ($[0]) {
|
|
122
|
-
// // case 'other': return
|
|
123
|
-
// // case 'file': return
|
|
122
|
+
// // case 'other': return pt.ss($, ($) => key)
|
|
123
|
+
// // case 'file': return pt.ss($, ($): string => $p['suffix settings']['to be removed from input'].__decide(
|
|
124
124
|
// // ($) => {
|
|
125
125
|
// // return remove_suffix(key, $).__decide(
|
|
126
126
|
// // ($) => $,
|
|
@@ -129,16 +129,16 @@
|
|
|
129
129
|
// // },
|
|
130
130
|
// // () => key
|
|
131
131
|
// // ))
|
|
132
|
-
// // case 'directory': return
|
|
133
|
-
// // default: return
|
|
132
|
+
// // case 'directory': return pt.ss($, ($) => key)
|
|
133
|
+
// // default: return pt.au($[0])
|
|
134
134
|
// // }
|
|
135
135
|
// // })
|
|
136
136
|
// // temp[key_of_expected] = null
|
|
137
137
|
// // })
|
|
138
|
-
// // const main =
|
|
138
|
+
// // const main = pt.dictionary.literal(temp)
|
|
139
139
|
// // return op_filter_dictionary($p.expected.__d_map(($, id) => {
|
|
140
140
|
// // return main.get_entry(key).__d_map(() => null)
|
|
141
141
|
// // }))
|
|
142
142
|
// // })
|
|
143
143
|
// })
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY190ZXN0c2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL21hbnVhbC90cmFuc2Zvcm1lcnMvZGlyZWN0b3J5X2NvbnRlbnQvZ2VuZXJpY190ZXN0c2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnREFBZ0Q7QUFDaEQsbURBQW1EO0FBQ25ELGtGQUFrRjtBQUNsRixrRkFBa0Y7QUFDbEYsb0VBQW9FO0FBQ3BFLG9FQUFvRTtBQUVwRSw0RkFBNEY7QUFDNUYsaUZBQWlGO0FBRWpGLG9GQUFvRjtBQUNwRixnQ0FBZ0M7QUFDaEMsK0RBQStEO0FBQy9ELHNFQUFzRTtBQUN0RSxxRUFBcUU7QUFDckUseUVBQXlFO0FBRXpFLGlFQUFpRTtBQUNqRSx5QkFBeUI7QUFDekIsOENBQThDO0FBQzlDLHlCQUF5QjtBQUN6Qix5REFBeUQ7QUFDekQsb0NBQW9DO0FBQ3BDLHVCQUF1QjtBQUN2Qiw4Q0FBOEM7QUFDOUMscUNBQXFDO0FBQ3JDLDZFQUE2RTtBQUM3RSw2Q0FBNkM7QUFDN0MsNEZBQTRGO0FBQzVGLHlCQUF5QjtBQUN6QiwrQkFBK0I7QUFDL0IsZ0RBQWdEO0FBQ2hELHFEQUFxRDtBQUNyRCw0QkFBNEI7QUFDNUIsd0JBQXdCO0FBQ3hCLG9CQUFvQjtBQUNwQixnQkFBZ0I7QUFDaEIsYUFBYTtBQUNiLFNBQVM7QUFDVCw0QkFBNEI7QUFDNUIsK0VBQStFO0FBQy9FLFFBQVE7QUFDUix3Q0FBd0M7QUFDeEMsSUFBSTtBQUVKLDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFDakMseUNBQXlDO0FBQ3pDLElBQUk7QUFFSixrQ0FBa0M7QUFFbEMsVUFBVTtBQUNWLHFJQUFxSTtBQUNySSxnR0FBZ0c7QUFDaEcsVUFBVTtBQUNWLDhEQUE4RDtBQUM5RCxVQUFVO0FBQ1Ysb0lBQW9JO0FBQ3BJLGdHQUFnRztBQUNoRyxVQUFVO0FBQ1YsNERBQTREO0FBQzVELElBQUk7QUFHSixxSEFBcUg7QUFDckgsNEVBQTRFO0FBQzVFLDBCQUEwQjtBQUMxQiwySUFBMkk7QUFDM0ksZ0VBQWdFO0FBSWhFLGdHQUFnRztBQUNoRywwSkFBMEo7QUFDMUosb0NBQW9DO0FBQ3BDLG1DQUFtQztBQUNuQyx5QkFBeUI7QUFDekIscURBQXFEO0FBQ3JELHlGQUF5RjtBQUN6Riw4Q0FBOEM7QUFDOUMsb0ZBQW9GO0FBQ3BGLCtIQUErSDtBQUMvSCwySEFBMkg7QUFDM0gsOERBQThEO0FBQzlELGdDQUFnQztBQUNoQyw4QkFBOEI7QUFDOUIsZ0hBQWdIO0FBQ2hILHdCQUF3QjtBQUN4QixvQkFBb0I7QUFFcEIscUNBQXFDO0FBQ3JDLG9DQUFvQztBQUNwQyx5Q0FBeUM7QUFDekMsOEZBQThGO0FBQzlGLGdFQUFnRTtBQUNoRSw4RkFBOEY7QUFDOUYsa0hBQWtIO0FBRWxILDZCQUE2QjtBQUM3Qix5RkFBeUY7QUFDekYsd0JBQXdCO0FBQ3hCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIseURBQXlEO0FBQ3pELHdGQUF3RjtBQUN4Rix1Q0FBdUM7QUFDdkMsK0RBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCwwQ0FBMEM7QUFDMUMsZ0lBQWdJO0FBQ2hJLCtIQUErSDtBQUMvSCw0RkFBNEY7QUFDNUYsOENBQThDO0FBQzlDLG9DQUFvQztBQUNwQyxxREFBcUQ7QUFDckQsZ0ZBQWdGO0FBQ2hGLG9DQUFvQztBQUNwQyxrQ0FBa0M7QUFDbEMsMERBQTBEO0FBQzFELDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIseUZBQXlGO0FBQ3pGLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsMENBQTBDO0FBQzFDLFlBQVk7QUFDWixXQUFXO0FBQ1gsK0NBQStDO0FBQy9DLHFEQUFxRDtBQUNyRCxvQ0FBb0M7QUFDcEMsNkVBQTZFO0FBQzdFLHFDQUFxQztBQUVyQyxtRUFBbUU7QUFDbkUsaUlBQWlJO0FBQ2pJLHNDQUFzQztBQUN0Qyx3RUFBd0U7QUFDeEUsK0NBQStDO0FBQy9DLCtDQUErQztBQUUvQyxtQ0FBbUM7QUFDbkMsZ0NBQWdDO0FBQ2hDLHVDQUF1QztBQUN2Qyw0QkFBNEI7QUFDNUIsdUVBQXVFO0FBQ3ZFLHFEQUFxRDtBQUNyRCx1QkFBdUI7QUFDdkIsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxnQkFBZ0I7QUFDaEIsc0RBQXNEO0FBQ3RELDBFQUEwRTtBQUMxRSxnRUFBZ0U7QUFDaEUsaUJBQWlCO0FBQ2pCLFlBQVk7QUFDWixLQUFLIn0=
|
package/dist/implementation/manual/transformers/directory_content/merged_file_structure.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as pi from 'pareto-core/dist/interface';
|
|
2
2
|
import * as d_in from "pareto-resources/dist/interface/to_be_generated/directory_content";
|
|
3
3
|
import * as d_out from "../../../../interface/to_be_generated/merged_filesystem_nodes";
|
|
4
|
-
export declare const Directory:
|
|
4
|
+
export declare const Directory: pi.Transformer_With_Parameter<d_in.Directory, d_out.Valid_Directory, {
|
|
5
5
|
'support': d_in.Directory;
|
|
6
6
|
/**
|
|
7
7
|
* the file suffix makes it possible to match a support file that is expected to have a suffix.
|
|
@@ -37,21 +37,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Directory = void 0;
|
|
40
|
-
const
|
|
40
|
+
const pt = __importStar(require("pareto-core/dist/assign"));
|
|
41
41
|
const implement_me_1 = __importDefault(require("pareto-core-dev/dist/implement_me"));
|
|
42
42
|
const Directory = ($, $p) => $.__d_map(($, id) => {
|
|
43
43
|
const support_directory = $p.support;
|
|
44
|
-
return
|
|
44
|
+
return pt.decide.state($, ($) => {
|
|
45
45
|
switch ($[0]) {
|
|
46
|
-
case 'other': return
|
|
47
|
-
case 'file': return
|
|
46
|
+
case 'other': return pt.ss($, ($) => (0, implement_me_1.default)("expected a file or a directory"));
|
|
47
|
+
case 'file': return pt.ss($, ($) => ['file', {
|
|
48
48
|
'support': support_directory.__get_possible_entry_deprecated(id + $p['support suffix'])
|
|
49
49
|
}]);
|
|
50
|
-
case 'directory': return
|
|
50
|
+
case 'directory': return pt.ss($, ($) => {
|
|
51
51
|
const main_node = $;
|
|
52
|
-
return ['directory', support_directory.__get_possible_entry_deprecated(id).__decide(($) =>
|
|
52
|
+
return ['directory', support_directory.__get_possible_entry_deprecated(id).__decide(($) => pt.decide.state($, ($) => {
|
|
53
53
|
switch ($[0]) {
|
|
54
|
-
case 'directory': return
|
|
54
|
+
case 'directory': return pt.ss($, ($) => ['valid', (0, exports.Directory)(main_node, {
|
|
55
55
|
'support': $,
|
|
56
56
|
'support suffix': $p['support suffix']
|
|
57
57
|
})]);
|
|
@@ -65,9 +65,9 @@ const Directory = ($, $p) => $.__d_map(($, id) => {
|
|
|
65
65
|
'nodes': main_node
|
|
66
66
|
}])];
|
|
67
67
|
});
|
|
68
|
-
default: return
|
|
68
|
+
default: return pt.au($[0]);
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
72
|
exports.Directory = Directory;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2VkX2ZpbGVfc3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL21hbnVhbC90cmFuc2Zvcm1lcnMvZGlyZWN0b3J5X2NvbnRlbnQvbWVyZ2VkX2ZpbGVfc3RydWN0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDREQUE2QztBQUM3QyxxRkFBOEQ7QUFLdkQsTUFBTSxTQUFTLEdBUWpCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUNoQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUE7SUFDcEMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQWMsRUFBRTtRQUN4QyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFjLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFBO1lBQ2xHLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBYyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQzFGLENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQTtnQkFDbkIsT0FBTyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQy9FLENBQUMsQ0FBQyxFQUFtQixFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzdDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ1gsS0FBSyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFBLGlCQUFTLEVBQ3hELFNBQVMsRUFDVDtvQ0FDSSxTQUFTLEVBQUUsQ0FBQztvQ0FDWixnQkFBZ0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUNBQ3pDLENBQUMsQ0FBQyxDQUFDLENBQUE7NEJBQ1IsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtvQ0FDeEIsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO29DQUN2QyxPQUFPLEVBQUUsU0FBUztpQ0FDckIsQ0FBQyxDQUFBO3dCQUNOLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBb0IsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFOzRCQUMvQixTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7NEJBQ25DLE9BQU8sRUFBRSxTQUFTO3lCQUNyQixDQUFDLENBQ0wsQ0FBQyxDQUFBO1lBQ04sQ0FBQyxDQUFDLENBQUE7WUFDRixPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDL0IsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUE7QUExQ1csUUFBQSxTQUFTLGFBMENwQiJ9
|