@oclif/plugin-command-snapshot 4.0.15 → 4.0.16
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 -4
- package/lib/commands/schema/compare.d.ts +5 -5
- package/lib/commands/schema/compare.js +49 -46
- package/lib/commands/schema/generate.d.ts +6 -6
- package/lib/commands/schema/generate.js +79 -79
- package/lib/commands/snapshot/compare.d.ts +13 -13
- package/lib/commands/snapshot/compare.js +45 -47
- package/lib/commands/snapshot/generate.d.ts +2 -2
- package/lib/commands/snapshot/generate.js +19 -17
- package/lib/index.js +1 -3
- package/lib/snapshot-command.d.ts +6 -5
- package/lib/snapshot-command.js +24 -20
- package/lib/util.js +3 -12
- package/oclif.lock +7020 -0
- package/oclif.manifest.json +107 -47
- package/package.json +45 -30
- package/schemas/schema-compare.json +4 -15
- package/schemas/snapshot-compare.json +35 -47
- package/schemas/snapshot-generate.json +11 -18
package/oclif.manifest.json
CHANGED
|
@@ -1,89 +1,149 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.15",
|
|
3
2
|
"commands": {
|
|
4
3
|
"schema:compare": {
|
|
5
|
-
"id": "schema:compare",
|
|
6
|
-
"strict": true,
|
|
7
|
-
"pluginName": "@oclif/plugin-command-snapshot",
|
|
8
|
-
"pluginAlias": "@oclif/plugin-command-snapshot",
|
|
9
|
-
"pluginType": "core",
|
|
10
4
|
"aliases": [],
|
|
5
|
+
"args": {},
|
|
11
6
|
"flags": {
|
|
12
7
|
"filepath": {
|
|
13
|
-
"name": "filepath",
|
|
14
|
-
"type": "option",
|
|
15
8
|
"description": "path of the generated snapshot file",
|
|
9
|
+
"name": "filepath",
|
|
10
|
+
"default": "./schemas",
|
|
11
|
+
"hasDynamicHelp": false,
|
|
16
12
|
"multiple": false,
|
|
17
|
-
"
|
|
13
|
+
"type": "option"
|
|
18
14
|
}
|
|
19
15
|
},
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"id": "schema:generate",
|
|
24
|
-
"strict": true,
|
|
25
|
-
"pluginName": "@oclif/plugin-command-snapshot",
|
|
16
|
+
"hasDynamicHelp": false,
|
|
17
|
+
"hiddenAliases": [],
|
|
18
|
+
"id": "schema:compare",
|
|
26
19
|
"pluginAlias": "@oclif/plugin-command-snapshot",
|
|
20
|
+
"pluginName": "@oclif/plugin-command-snapshot",
|
|
27
21
|
"pluginType": "core",
|
|
22
|
+
"strict": true,
|
|
23
|
+
"isESM": true,
|
|
24
|
+
"relativePath": [
|
|
25
|
+
"lib",
|
|
26
|
+
"commands",
|
|
27
|
+
"schema",
|
|
28
|
+
"compare.js"
|
|
29
|
+
],
|
|
30
|
+
"aliasPermutations": [],
|
|
31
|
+
"permutations": [
|
|
32
|
+
"schema:compare",
|
|
33
|
+
"compare:schema"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"schema:generate": {
|
|
28
37
|
"aliases": [],
|
|
38
|
+
"args": {},
|
|
29
39
|
"flags": {
|
|
30
40
|
"filepath": {
|
|
31
|
-
"name": "filepath",
|
|
32
|
-
"type": "option",
|
|
33
41
|
"description": "directory to save the generated schema files; can use \"{version}\" to insert the current CLI/plugin version",
|
|
42
|
+
"name": "filepath",
|
|
43
|
+
"default": "./schemas",
|
|
44
|
+
"hasDynamicHelp": false,
|
|
34
45
|
"multiple": false,
|
|
35
|
-
"
|
|
36
|
-
},
|
|
37
|
-
"singlefile": {
|
|
38
|
-
"name": "singlefile",
|
|
39
|
-
"type": "boolean",
|
|
40
|
-
"description": "put generated schema into a single file",
|
|
41
|
-
"allowNo": false
|
|
46
|
+
"type": "option"
|
|
42
47
|
},
|
|
43
48
|
"ignorevoid": {
|
|
44
|
-
"name": "ignorevoid",
|
|
45
|
-
"type": "boolean",
|
|
46
49
|
"description": "ignore commands that return void",
|
|
47
|
-
"
|
|
50
|
+
"name": "ignorevoid",
|
|
51
|
+
"allowNo": false,
|
|
52
|
+
"type": "boolean"
|
|
53
|
+
},
|
|
54
|
+
"singlefile": {
|
|
55
|
+
"description": "put generated schema into a single file",
|
|
56
|
+
"name": "singlefile",
|
|
57
|
+
"allowNo": false,
|
|
58
|
+
"type": "boolean"
|
|
48
59
|
}
|
|
49
60
|
},
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"id": "snapshot:compare",
|
|
54
|
-
"strict": true,
|
|
55
|
-
"pluginName": "@oclif/plugin-command-snapshot",
|
|
61
|
+
"hasDynamicHelp": false,
|
|
62
|
+
"hiddenAliases": [],
|
|
63
|
+
"id": "schema:generate",
|
|
56
64
|
"pluginAlias": "@oclif/plugin-command-snapshot",
|
|
65
|
+
"pluginName": "@oclif/plugin-command-snapshot",
|
|
57
66
|
"pluginType": "core",
|
|
67
|
+
"strict": true,
|
|
68
|
+
"isESM": true,
|
|
69
|
+
"relativePath": [
|
|
70
|
+
"lib",
|
|
71
|
+
"commands",
|
|
72
|
+
"schema",
|
|
73
|
+
"generate.js"
|
|
74
|
+
],
|
|
75
|
+
"aliasPermutations": [],
|
|
76
|
+
"permutations": [
|
|
77
|
+
"schema:generate",
|
|
78
|
+
"generate:schema"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"snapshot:compare": {
|
|
58
82
|
"aliases": [],
|
|
83
|
+
"args": {},
|
|
59
84
|
"flags": {
|
|
60
85
|
"filepath": {
|
|
61
|
-
"name": "filepath",
|
|
62
|
-
"type": "option",
|
|
63
86
|
"description": "path of the generated snapshot file",
|
|
87
|
+
"name": "filepath",
|
|
88
|
+
"default": "./command-snapshot.json",
|
|
89
|
+
"hasDynamicHelp": false,
|
|
64
90
|
"multiple": false,
|
|
65
|
-
"
|
|
91
|
+
"type": "option"
|
|
66
92
|
}
|
|
67
93
|
},
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"id": "snapshot:generate",
|
|
72
|
-
"strict": true,
|
|
73
|
-
"pluginName": "@oclif/plugin-command-snapshot",
|
|
94
|
+
"hasDynamicHelp": false,
|
|
95
|
+
"hiddenAliases": [],
|
|
96
|
+
"id": "snapshot:compare",
|
|
74
97
|
"pluginAlias": "@oclif/plugin-command-snapshot",
|
|
98
|
+
"pluginName": "@oclif/plugin-command-snapshot",
|
|
75
99
|
"pluginType": "core",
|
|
100
|
+
"strict": true,
|
|
101
|
+
"isESM": true,
|
|
102
|
+
"relativePath": [
|
|
103
|
+
"lib",
|
|
104
|
+
"commands",
|
|
105
|
+
"snapshot",
|
|
106
|
+
"compare.js"
|
|
107
|
+
],
|
|
108
|
+
"aliasPermutations": [],
|
|
109
|
+
"permutations": [
|
|
110
|
+
"snapshot:compare",
|
|
111
|
+
"compare:snapshot"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"snapshot:generate": {
|
|
76
115
|
"aliases": [],
|
|
116
|
+
"args": {},
|
|
77
117
|
"flags": {
|
|
78
118
|
"filepath": {
|
|
79
|
-
"name": "filepath",
|
|
80
|
-
"type": "option",
|
|
81
119
|
"description": "path to save the generated snapshot file; can use \"{version}\" to replace the current CLI/plugin version",
|
|
120
|
+
"name": "filepath",
|
|
121
|
+
"default": "./command-snapshot.json",
|
|
122
|
+
"hasDynamicHelp": false,
|
|
82
123
|
"multiple": false,
|
|
83
|
-
"
|
|
124
|
+
"type": "option"
|
|
84
125
|
}
|
|
85
126
|
},
|
|
86
|
-
"
|
|
127
|
+
"hasDynamicHelp": false,
|
|
128
|
+
"hiddenAliases": [],
|
|
129
|
+
"id": "snapshot:generate",
|
|
130
|
+
"pluginAlias": "@oclif/plugin-command-snapshot",
|
|
131
|
+
"pluginName": "@oclif/plugin-command-snapshot",
|
|
132
|
+
"pluginType": "core",
|
|
133
|
+
"strict": true,
|
|
134
|
+
"isESM": true,
|
|
135
|
+
"relativePath": [
|
|
136
|
+
"lib",
|
|
137
|
+
"commands",
|
|
138
|
+
"snapshot",
|
|
139
|
+
"generate.js"
|
|
140
|
+
],
|
|
141
|
+
"aliasPermutations": [],
|
|
142
|
+
"permutations": [
|
|
143
|
+
"snapshot:generate",
|
|
144
|
+
"generate:snapshot"
|
|
145
|
+
]
|
|
87
146
|
}
|
|
88
|
-
}
|
|
147
|
+
},
|
|
148
|
+
"version": "4.0.16"
|
|
89
149
|
}
|
package/package.json
CHANGED
|
@@ -1,48 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oclif/plugin-command-snapshot",
|
|
3
3
|
"description": "generates and compares OCLIF plugins snapshot files",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.16",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bugs": "https://github.com/oclif/plugin-command-snapshot/issues",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@oclif/core": "^
|
|
9
|
-
"
|
|
8
|
+
"@oclif/core": "^3.5.0",
|
|
9
|
+
"@types/lodash.difference": "^4.5.8",
|
|
10
|
+
"chalk": "^5.3.0",
|
|
10
11
|
"just-diff": "^5.2.0",
|
|
11
|
-
"lodash": "^4.
|
|
12
|
+
"lodash.difference": "^4.5.0",
|
|
13
|
+
"lodash.get": "^4.4.2",
|
|
14
|
+
"lodash.sortby": "^4.7.0",
|
|
12
15
|
"semver": "^7.5.4",
|
|
13
|
-
"ts-json-schema-generator": "^1.4.0"
|
|
14
|
-
"tslib": "^2.6.2"
|
|
16
|
+
"ts-json-schema-generator": "^1.4.0"
|
|
15
17
|
},
|
|
16
18
|
"devDependencies": {
|
|
17
|
-
"@commitlint/config-conventional": "^
|
|
19
|
+
"@commitlint/config-conventional": "^18.0.0",
|
|
18
20
|
"@oclif/plugin-help": "^5.2.20",
|
|
19
|
-
"@oclif/
|
|
20
|
-
"@
|
|
21
|
-
"@types/
|
|
22
|
-
"@types/
|
|
23
|
-
"@types/
|
|
21
|
+
"@oclif/prettier-config": "^0.2.1",
|
|
22
|
+
"@oclif/test": "^3.0.2",
|
|
23
|
+
"@types/chai": "^4.3.9",
|
|
24
|
+
"@types/lodash.get": "^4.4.8",
|
|
25
|
+
"@types/lodash.sortby": "^4.7.8",
|
|
26
|
+
"@types/mocha": "^10.0.3",
|
|
27
|
+
"@types/node": "^18",
|
|
28
|
+
"@types/semver": "^7.5.4",
|
|
24
29
|
"chai": "^4",
|
|
25
|
-
"commitlint": "^
|
|
26
|
-
"eslint": "^
|
|
27
|
-
"eslint-config-oclif": "^
|
|
28
|
-
"eslint-config-oclif-typescript": "^
|
|
29
|
-
"
|
|
30
|
-
"
|
|
30
|
+
"commitlint": "^18.0.0",
|
|
31
|
+
"eslint": "^8.52.0",
|
|
32
|
+
"eslint-config-oclif": "^5.0.0",
|
|
33
|
+
"eslint-config-oclif-typescript": "^3.0.8",
|
|
34
|
+
"eslint-config-prettier": "^9.0.0",
|
|
35
|
+
"husky": "^8.0.3",
|
|
36
|
+
"lint-staged": "^15.0.2",
|
|
37
|
+
"mocha": "^10.2.0",
|
|
31
38
|
"nyc": "^15",
|
|
32
|
-
"oclif": "^
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
39
|
+
"oclif": "^4.0.3",
|
|
40
|
+
"prettier": "^3.0.3",
|
|
41
|
+
"sinon": "^17.0.0",
|
|
42
|
+
"ts-node": "^10.9.1",
|
|
43
|
+
"typescript": "^5.2.2"
|
|
36
44
|
},
|
|
37
45
|
"engines": {
|
|
38
|
-
"node": ">=
|
|
46
|
+
"node": ">=18.0.0"
|
|
39
47
|
},
|
|
48
|
+
"exports": "./lib/index.js",
|
|
40
49
|
"files": [
|
|
41
50
|
"/lib",
|
|
42
51
|
"/npm-shrinkwrap.json",
|
|
43
52
|
"/oclif.manifest.json",
|
|
44
53
|
"/schemas",
|
|
45
|
-
"/yarn.lock"
|
|
54
|
+
"/yarn.lock",
|
|
55
|
+
"/oclif.lock"
|
|
46
56
|
],
|
|
47
57
|
"homepage": "https://github.com/oclif/plugin-command-snapshot",
|
|
48
58
|
"keywords": [
|
|
@@ -62,16 +72,21 @@
|
|
|
62
72
|
},
|
|
63
73
|
"devPlugins": [
|
|
64
74
|
"@oclif/plugin-help"
|
|
65
|
-
]
|
|
75
|
+
],
|
|
76
|
+
"flexibleTaxonomy": true,
|
|
77
|
+
"topicSeparator": " "
|
|
66
78
|
},
|
|
67
79
|
"repository": "oclif/plugin-command-snapshot",
|
|
68
80
|
"scripts": {
|
|
69
81
|
"build": "rm -rf lib && tsc -b",
|
|
70
82
|
"commitlint": "commitlint",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
83
|
+
"lint": "eslint . --ext .ts",
|
|
84
|
+
"postpack": "rm -f oclif.lock oclif.manifest.json",
|
|
85
|
+
"posttest": "yarn lint",
|
|
86
|
+
"prepack": "rm -rf lib && tsc -b && oclif lock && oclif manifest . && oclif readme",
|
|
87
|
+
"prepare": "husky install",
|
|
74
88
|
"test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\" --timeout 20000",
|
|
75
89
|
"version": "oclif readme && git add README.md"
|
|
76
|
-
}
|
|
77
|
-
|
|
90
|
+
},
|
|
91
|
+
"type": "module"
|
|
92
|
+
}
|
|
@@ -13,29 +13,18 @@
|
|
|
13
13
|
"path": {
|
|
14
14
|
"type": "array",
|
|
15
15
|
"items": {
|
|
16
|
-
"type": [
|
|
17
|
-
"string",
|
|
18
|
-
"number"
|
|
19
|
-
]
|
|
16
|
+
"type": ["number", "string"]
|
|
20
17
|
}
|
|
21
18
|
},
|
|
22
19
|
"value": {}
|
|
23
20
|
},
|
|
24
|
-
"required": [
|
|
25
|
-
"op",
|
|
26
|
-
"path",
|
|
27
|
-
"value"
|
|
28
|
-
],
|
|
21
|
+
"required": ["op", "path", "value"],
|
|
29
22
|
"additionalProperties": false
|
|
30
23
|
}
|
|
31
24
|
},
|
|
32
25
|
"Operation": {
|
|
33
26
|
"type": "string",
|
|
34
|
-
"enum": [
|
|
35
|
-
"add",
|
|
36
|
-
"replace",
|
|
37
|
-
"remove"
|
|
38
|
-
]
|
|
27
|
+
"enum": ["add", "replace", "remove"]
|
|
39
28
|
}
|
|
40
29
|
}
|
|
41
|
-
}
|
|
30
|
+
}
|
|
@@ -11,111 +11,99 @@
|
|
|
11
11
|
"type": "string"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
|
-
"removedCommands": {
|
|
15
|
-
"type": "array",
|
|
16
|
-
"items": {
|
|
17
|
-
"type": "string"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"removedFlags": {
|
|
21
|
-
"type": "array",
|
|
22
|
-
"items": {
|
|
23
|
-
"type": "string"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
14
|
"diffCommands": {
|
|
27
15
|
"type": "array",
|
|
28
16
|
"items": {
|
|
29
17
|
"type": "object",
|
|
30
18
|
"additionalProperties": false,
|
|
31
19
|
"properties": {
|
|
20
|
+
"added": {
|
|
21
|
+
"type": "boolean"
|
|
22
|
+
},
|
|
32
23
|
"name": {
|
|
33
24
|
"type": "string"
|
|
34
25
|
},
|
|
35
26
|
"removed": {
|
|
36
27
|
"type": "boolean"
|
|
37
28
|
},
|
|
38
|
-
"
|
|
39
|
-
"type": "boolean"
|
|
40
|
-
},
|
|
41
|
-
"plugin": {
|
|
42
|
-
"type": "string"
|
|
43
|
-
},
|
|
44
|
-
"chars": {
|
|
29
|
+
"alias": {
|
|
45
30
|
"type": "array",
|
|
46
31
|
"items": {
|
|
47
32
|
"type": "object",
|
|
48
33
|
"properties": {
|
|
34
|
+
"added": {
|
|
35
|
+
"type": "boolean"
|
|
36
|
+
},
|
|
49
37
|
"name": {
|
|
50
38
|
"type": "string"
|
|
51
39
|
},
|
|
52
40
|
"removed": {
|
|
53
41
|
"type": "boolean"
|
|
54
|
-
},
|
|
55
|
-
"added": {
|
|
56
|
-
"type": "boolean"
|
|
57
42
|
}
|
|
58
43
|
},
|
|
59
|
-
"required": [
|
|
60
|
-
"name"
|
|
61
|
-
],
|
|
44
|
+
"required": ["name"],
|
|
62
45
|
"additionalProperties": false
|
|
63
46
|
}
|
|
64
47
|
},
|
|
65
|
-
"
|
|
48
|
+
"chars": {
|
|
66
49
|
"type": "array",
|
|
67
50
|
"items": {
|
|
68
51
|
"type": "object",
|
|
69
52
|
"properties": {
|
|
53
|
+
"added": {
|
|
54
|
+
"type": "boolean"
|
|
55
|
+
},
|
|
70
56
|
"name": {
|
|
71
57
|
"type": "string"
|
|
72
58
|
},
|
|
73
59
|
"removed": {
|
|
74
60
|
"type": "boolean"
|
|
75
|
-
},
|
|
76
|
-
"added": {
|
|
77
|
-
"type": "boolean"
|
|
78
61
|
}
|
|
79
62
|
},
|
|
80
|
-
"required": [
|
|
81
|
-
"name"
|
|
82
|
-
],
|
|
63
|
+
"required": ["name"],
|
|
83
64
|
"additionalProperties": false
|
|
84
65
|
}
|
|
85
66
|
},
|
|
86
|
-
"
|
|
67
|
+
"flags": {
|
|
87
68
|
"type": "array",
|
|
88
69
|
"items": {
|
|
89
70
|
"type": "object",
|
|
90
71
|
"properties": {
|
|
72
|
+
"added": {
|
|
73
|
+
"type": "boolean"
|
|
74
|
+
},
|
|
91
75
|
"name": {
|
|
92
76
|
"type": "string"
|
|
93
77
|
},
|
|
94
78
|
"removed": {
|
|
95
79
|
"type": "boolean"
|
|
96
|
-
},
|
|
97
|
-
"added": {
|
|
98
|
-
"type": "boolean"
|
|
99
80
|
}
|
|
100
81
|
},
|
|
101
|
-
"required": [
|
|
102
|
-
"name"
|
|
103
|
-
],
|
|
82
|
+
"required": ["name"],
|
|
104
83
|
"additionalProperties": false
|
|
105
84
|
}
|
|
85
|
+
},
|
|
86
|
+
"plugin": {
|
|
87
|
+
"type": "string"
|
|
106
88
|
}
|
|
107
89
|
},
|
|
108
|
-
"required": [
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
90
|
+
"required": ["alias", "chars", "flags", "name", "plugin"]
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"removedCommands": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "string"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"removedFlags": {
|
|
100
|
+
"type": "array",
|
|
101
|
+
"items": {
|
|
102
|
+
"type": "string"
|
|
115
103
|
}
|
|
116
104
|
}
|
|
117
105
|
},
|
|
118
106
|
"additionalProperties": false
|
|
119
107
|
}
|
|
120
108
|
}
|
|
121
|
-
}
|
|
109
|
+
}
|
|
@@ -11,19 +11,16 @@
|
|
|
11
11
|
"SnapshotEntry": {
|
|
12
12
|
"type": "object",
|
|
13
13
|
"properties": {
|
|
14
|
-
"
|
|
15
|
-
"type": "string"
|
|
16
|
-
},
|
|
17
|
-
"plugin": {
|
|
18
|
-
"type": "string"
|
|
19
|
-
},
|
|
20
|
-
"flags": {
|
|
14
|
+
"alias": {
|
|
21
15
|
"type": "array",
|
|
22
16
|
"items": {
|
|
23
17
|
"type": "string"
|
|
24
18
|
}
|
|
25
19
|
},
|
|
26
|
-
"
|
|
20
|
+
"command": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"flagAliases": {
|
|
27
24
|
"type": "array",
|
|
28
25
|
"items": {
|
|
29
26
|
"type": "string"
|
|
@@ -35,22 +32,18 @@
|
|
|
35
32
|
"type": "string"
|
|
36
33
|
}
|
|
37
34
|
},
|
|
38
|
-
"
|
|
35
|
+
"flags": {
|
|
39
36
|
"type": "array",
|
|
40
37
|
"items": {
|
|
41
38
|
"type": "string"
|
|
42
39
|
}
|
|
40
|
+
},
|
|
41
|
+
"plugin": {
|
|
42
|
+
"type": "string"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
"required": [
|
|
46
|
-
"command",
|
|
47
|
-
"plugin",
|
|
48
|
-
"flags",
|
|
49
|
-
"alias",
|
|
50
|
-
"flagChars",
|
|
51
|
-
"flagAliases"
|
|
52
|
-
],
|
|
45
|
+
"required": ["alias", "command", "flagAliases", "flagChars", "flags", "plugin"],
|
|
53
46
|
"additionalProperties": false
|
|
54
47
|
}
|
|
55
48
|
}
|
|
56
|
-
}
|
|
49
|
+
}
|