factpulse 3.0.15 → 3.0.17
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -3
- data/Gemfile.lock +1 -1
- data/docs/FactureElectroniqueRestApiSchemasConvertValidationError.md +32 -0
- data/docs/ValidateEReportingResponse.md +2 -2
- data/docs/ValidationInfo.md +1 -1
- data/lib/factpulse/models/{facture_electronique_rest_api_schemas_ereporting_validation_error.rb → facture_electronique_rest_api_schemas_convert_validation_error.rb} +120 -29
- data/lib/factpulse/models/validate_e_reporting_response.rb +2 -2
- data/lib/factpulse/models/validation_info.rb +1 -1
- data/lib/factpulse/version.rb +1 -1
- data/lib/factpulse.rb +4 -1
- metadata +4 -4
- data/docs/FactureElectroniqueRestApiSchemasEreportingValidationError.md +0 -22
- /data/lib/factpulse/models/{taxableamount0.rb → taxableamount.rb} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e0ebd5ba9a7554841e6ad0260af9fe22d0580b0ea6cb1169b585ca7995f3bf2
|
|
4
|
+
data.tar.gz: ef20835fca0587d5d5bda2184fb116d11f876f0b58576db5f88e6da34832b536
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5f7561423897e399509d49f987ce3e2c84be6ad4e9047eb6e3495a290427e0a9faf581c874fdbf1f64e178669b940f38de26afa9b094aff36f9433264de068a2
|
|
7
|
+
data.tar.gz: b78c70a7e7d26feb34395cf2d68bfeef29ad3c45cc79202ce8ee4c549a37b5766624f8a80cb1679eb2cfcdd3b8f50bf4b22a051373836c0a6fdf358a4a5ef7e5
|
data/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,7 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [3.0.
|
|
10
|
+
## [3.0.17] - 2026-01-14
|
|
11
11
|
|
|
12
12
|
### Added
|
|
13
13
|
- Version initiale du SDK ruby
|
|
@@ -24,5 +24,5 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
24
24
|
- Guide d'authentification JWT
|
|
25
25
|
- Configuration avancée (timeout, proxy, debug)
|
|
26
26
|
|
|
27
|
-
[Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v3.0.
|
|
28
|
-
[3.0.
|
|
27
|
+
[Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v3.0.17...HEAD
|
|
28
|
+
[3.0.17]: https://github.com/factpulse/sdk-ruby/releases/tag/v3.0.17
|
data/Gemfile.lock
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# FactPulse::FactureElectroniqueRestApiSchemasConvertValidationError
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **rule** | **String** | Code de la regle (BR-XX, BR-FR-XX) | |
|
|
8
|
+
| **bt_code** | **String** | | [optional] |
|
|
9
|
+
| **severity** | **String** | Gravite: error, warning | |
|
|
10
|
+
| **message** | **String** | Message d'erreur | |
|
|
11
|
+
| **suggested_value** | **String** | | [optional] |
|
|
12
|
+
| **suggested_field** | **String** | | [optional] |
|
|
13
|
+
| **explanation** | **String** | | [optional] |
|
|
14
|
+
| **confidence** | **Float** | | [optional] |
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
require 'factpulse'
|
|
20
|
+
|
|
21
|
+
instance = FactPulse::FactureElectroniqueRestApiSchemasConvertValidationError.new(
|
|
22
|
+
rule: null,
|
|
23
|
+
bt_code: null,
|
|
24
|
+
severity: null,
|
|
25
|
+
message: null,
|
|
26
|
+
suggested_value: null,
|
|
27
|
+
suggested_field: null,
|
|
28
|
+
explanation: null,
|
|
29
|
+
confidence: null
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
| **valid** | **Boolean** | Whether the data is valid | |
|
|
8
8
|
| **report_id** | **String** | Report identifier | |
|
|
9
9
|
| **flow_type** | **String** | Flux type | |
|
|
10
|
-
| **errors** | [**Array<
|
|
11
|
-
| **warnings** | [**Array<
|
|
10
|
+
| **errors** | [**Array<ValidationError>**](ValidationError.md) | List of validation errors (if any) | [optional] |
|
|
11
|
+
| **warnings** | [**Array<ValidationError>**](ValidationError.md) | List of validation warnings (if any) | [optional] |
|
|
12
12
|
| **message** | **String** | Status message | |
|
|
13
13
|
|
|
14
14
|
## Example
|
data/docs/ValidationInfo.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| **schematron_rules_total** | **Integer** | Total regles | |
|
|
10
10
|
| **pdfa_compliant** | **Boolean** | PDF/A-3 conforme | [optional][default to true] |
|
|
11
11
|
| **xml_embedded** | **Boolean** | XML embarque dans PDF | [optional][default to true] |
|
|
12
|
-
| **errors** | [**Array<
|
|
12
|
+
| **errors** | [**Array<FactureElectroniqueRestApiSchemasConvertValidationError>**](FactureElectroniqueRestApiSchemasConvertValidationError.md) | | [optional] |
|
|
13
13
|
|
|
14
14
|
## Example
|
|
15
15
|
|
|
@@ -14,22 +14,38 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module FactPulse
|
|
17
|
-
#
|
|
18
|
-
class
|
|
19
|
-
#
|
|
20
|
-
attr_accessor :
|
|
17
|
+
# Erreur de validation Schematron avec suggestion de correction.
|
|
18
|
+
class FactureElectroniqueRestApiSchemasConvertValidationError < ApiModelBase
|
|
19
|
+
# Code de la regle (BR-XX, BR-FR-XX)
|
|
20
|
+
attr_accessor :rule
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
attr_accessor :bt_code
|
|
23
|
+
|
|
24
|
+
# Gravite: error, warning
|
|
25
|
+
attr_accessor :severity
|
|
26
|
+
|
|
27
|
+
# Message d'erreur
|
|
23
28
|
attr_accessor :message
|
|
24
29
|
|
|
25
|
-
attr_accessor :
|
|
30
|
+
attr_accessor :suggested_value
|
|
31
|
+
|
|
32
|
+
attr_accessor :suggested_field
|
|
33
|
+
|
|
34
|
+
attr_accessor :explanation
|
|
35
|
+
|
|
36
|
+
attr_accessor :confidence
|
|
26
37
|
|
|
27
38
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
28
39
|
def self.attribute_map
|
|
29
40
|
{
|
|
30
|
-
:'
|
|
41
|
+
:'rule' => :'rule',
|
|
42
|
+
:'bt_code' => :'bt_code',
|
|
43
|
+
:'severity' => :'severity',
|
|
31
44
|
:'message' => :'message',
|
|
32
|
-
:'
|
|
45
|
+
:'suggested_value' => :'suggested_value',
|
|
46
|
+
:'suggested_field' => :'suggested_field',
|
|
47
|
+
:'explanation' => :'explanation',
|
|
48
|
+
:'confidence' => :'confidence'
|
|
33
49
|
}
|
|
34
50
|
end
|
|
35
51
|
|
|
@@ -46,16 +62,25 @@ module FactPulse
|
|
|
46
62
|
# Attribute type mapping.
|
|
47
63
|
def self.openapi_types
|
|
48
64
|
{
|
|
49
|
-
:'
|
|
65
|
+
:'rule' => :'String',
|
|
66
|
+
:'bt_code' => :'String',
|
|
67
|
+
:'severity' => :'String',
|
|
50
68
|
:'message' => :'String',
|
|
51
|
-
:'
|
|
69
|
+
:'suggested_value' => :'String',
|
|
70
|
+
:'suggested_field' => :'String',
|
|
71
|
+
:'explanation' => :'String',
|
|
72
|
+
:'confidence' => :'Float'
|
|
52
73
|
}
|
|
53
74
|
end
|
|
54
75
|
|
|
55
76
|
# List of attributes with nullable: true
|
|
56
77
|
def self.openapi_nullable
|
|
57
78
|
Set.new([
|
|
58
|
-
:'
|
|
79
|
+
:'bt_code',
|
|
80
|
+
:'suggested_value',
|
|
81
|
+
:'suggested_field',
|
|
82
|
+
:'explanation',
|
|
83
|
+
:'confidence'
|
|
59
84
|
])
|
|
60
85
|
end
|
|
61
86
|
|
|
@@ -63,22 +88,32 @@ module FactPulse
|
|
|
63
88
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
64
89
|
def initialize(attributes = {})
|
|
65
90
|
if (!attributes.is_a?(Hash))
|
|
66
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::
|
|
91
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::FactureElectroniqueRestApiSchemasConvertValidationError` initialize method"
|
|
67
92
|
end
|
|
68
93
|
|
|
69
94
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
70
95
|
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
71
96
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
72
97
|
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
73
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::
|
|
98
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::FactureElectroniqueRestApiSchemasConvertValidationError`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
74
99
|
end
|
|
75
100
|
h[k.to_sym] = v
|
|
76
101
|
}
|
|
77
102
|
|
|
78
|
-
if attributes.key?(:'
|
|
79
|
-
self.
|
|
103
|
+
if attributes.key?(:'rule')
|
|
104
|
+
self.rule = attributes[:'rule']
|
|
80
105
|
else
|
|
81
|
-
self.
|
|
106
|
+
self.rule = nil
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
if attributes.key?(:'bt_code')
|
|
110
|
+
self.bt_code = attributes[:'bt_code']
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
if attributes.key?(:'severity')
|
|
114
|
+
self.severity = attributes[:'severity']
|
|
115
|
+
else
|
|
116
|
+
self.severity = nil
|
|
82
117
|
end
|
|
83
118
|
|
|
84
119
|
if attributes.key?(:'message')
|
|
@@ -87,8 +122,20 @@ module FactPulse
|
|
|
87
122
|
self.message = nil
|
|
88
123
|
end
|
|
89
124
|
|
|
90
|
-
if attributes.key?(:'
|
|
91
|
-
self.
|
|
125
|
+
if attributes.key?(:'suggested_value')
|
|
126
|
+
self.suggested_value = attributes[:'suggested_value']
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
if attributes.key?(:'suggested_field')
|
|
130
|
+
self.suggested_field = attributes[:'suggested_field']
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
if attributes.key?(:'explanation')
|
|
134
|
+
self.explanation = attributes[:'explanation']
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
if attributes.key?(:'confidence')
|
|
138
|
+
self.confidence = attributes[:'confidence']
|
|
92
139
|
end
|
|
93
140
|
end
|
|
94
141
|
|
|
@@ -97,14 +144,26 @@ module FactPulse
|
|
|
97
144
|
def list_invalid_properties
|
|
98
145
|
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
99
146
|
invalid_properties = Array.new
|
|
100
|
-
if @
|
|
101
|
-
invalid_properties.push('invalid value for "
|
|
147
|
+
if @rule.nil?
|
|
148
|
+
invalid_properties.push('invalid value for "rule", rule cannot be nil.')
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
if @severity.nil?
|
|
152
|
+
invalid_properties.push('invalid value for "severity", severity cannot be nil.')
|
|
102
153
|
end
|
|
103
154
|
|
|
104
155
|
if @message.nil?
|
|
105
156
|
invalid_properties.push('invalid value for "message", message cannot be nil.')
|
|
106
157
|
end
|
|
107
158
|
|
|
159
|
+
if !@confidence.nil? && @confidence > 1.0
|
|
160
|
+
invalid_properties.push('invalid value for "confidence", must be smaller than or equal to 1.0.')
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
if !@confidence.nil? && @confidence < 0.0
|
|
164
|
+
invalid_properties.push('invalid value for "confidence", must be greater than or equal to 0.0.')
|
|
165
|
+
end
|
|
166
|
+
|
|
108
167
|
invalid_properties
|
|
109
168
|
end
|
|
110
169
|
|
|
@@ -112,19 +171,32 @@ module FactPulse
|
|
|
112
171
|
# @return true if the model is valid
|
|
113
172
|
def valid?
|
|
114
173
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
115
|
-
return false if @
|
|
174
|
+
return false if @rule.nil?
|
|
175
|
+
return false if @severity.nil?
|
|
116
176
|
return false if @message.nil?
|
|
177
|
+
return false if !@confidence.nil? && @confidence > 1.0
|
|
178
|
+
return false if !@confidence.nil? && @confidence < 0.0
|
|
117
179
|
true
|
|
118
180
|
end
|
|
119
181
|
|
|
120
182
|
# Custom attribute writer method with validation
|
|
121
|
-
# @param [Object]
|
|
122
|
-
def
|
|
123
|
-
if
|
|
124
|
-
fail ArgumentError, '
|
|
183
|
+
# @param [Object] rule Value to be assigned
|
|
184
|
+
def rule=(rule)
|
|
185
|
+
if rule.nil?
|
|
186
|
+
fail ArgumentError, 'rule cannot be nil'
|
|
125
187
|
end
|
|
126
188
|
|
|
127
|
-
@
|
|
189
|
+
@rule = rule
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Custom attribute writer method with validation
|
|
193
|
+
# @param [Object] severity Value to be assigned
|
|
194
|
+
def severity=(severity)
|
|
195
|
+
if severity.nil?
|
|
196
|
+
fail ArgumentError, 'severity cannot be nil'
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
@severity = severity
|
|
128
200
|
end
|
|
129
201
|
|
|
130
202
|
# Custom attribute writer method with validation
|
|
@@ -137,14 +209,33 @@ module FactPulse
|
|
|
137
209
|
@message = message
|
|
138
210
|
end
|
|
139
211
|
|
|
212
|
+
# Custom attribute writer method with validation
|
|
213
|
+
# @param [Object] confidence Value to be assigned
|
|
214
|
+
def confidence=(confidence)
|
|
215
|
+
if !confidence.nil? && confidence > 1.0
|
|
216
|
+
fail ArgumentError, 'invalid value for "confidence", must be smaller than or equal to 1.0.'
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
if !confidence.nil? && confidence < 0.0
|
|
220
|
+
fail ArgumentError, 'invalid value for "confidence", must be greater than or equal to 0.0.'
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
@confidence = confidence
|
|
224
|
+
end
|
|
225
|
+
|
|
140
226
|
# Checks equality by comparing each attribute.
|
|
141
227
|
# @param [Object] Object to be compared
|
|
142
228
|
def ==(o)
|
|
143
229
|
return true if self.equal?(o)
|
|
144
230
|
self.class == o.class &&
|
|
145
|
-
|
|
231
|
+
rule == o.rule &&
|
|
232
|
+
bt_code == o.bt_code &&
|
|
233
|
+
severity == o.severity &&
|
|
146
234
|
message == o.message &&
|
|
147
|
-
|
|
235
|
+
suggested_value == o.suggested_value &&
|
|
236
|
+
suggested_field == o.suggested_field &&
|
|
237
|
+
explanation == o.explanation &&
|
|
238
|
+
confidence == o.confidence
|
|
148
239
|
end
|
|
149
240
|
|
|
150
241
|
# @see the `==` method
|
|
@@ -156,7 +247,7 @@ module FactPulse
|
|
|
156
247
|
# Calculates hash code according to all attributes.
|
|
157
248
|
# @return [Integer] Hash code
|
|
158
249
|
def hash
|
|
159
|
-
[
|
|
250
|
+
[rule, bt_code, severity, message, suggested_value, suggested_field, explanation, confidence].hash
|
|
160
251
|
end
|
|
161
252
|
|
|
162
253
|
# Builds the object from hash
|
|
@@ -62,8 +62,8 @@ module FactPulse
|
|
|
62
62
|
:'valid' => :'Boolean',
|
|
63
63
|
:'report_id' => :'String',
|
|
64
64
|
:'flow_type' => :'String',
|
|
65
|
-
:'errors' => :'Array<
|
|
66
|
-
:'warnings' => :'Array<
|
|
65
|
+
:'errors' => :'Array<ValidationError>',
|
|
66
|
+
:'warnings' => :'Array<ValidationError>',
|
|
67
67
|
:'message' => :'String'
|
|
68
68
|
}
|
|
69
69
|
end
|
|
@@ -63,7 +63,7 @@ module FactPulse
|
|
|
63
63
|
:'schematron_rules_total' => :'Integer',
|
|
64
64
|
:'pdfa_compliant' => :'Boolean',
|
|
65
65
|
:'xml_embedded' => :'Boolean',
|
|
66
|
-
:'errors' => :'Array<
|
|
66
|
+
:'errors' => :'Array<FactureElectroniqueRestApiSchemasConvertValidationError>'
|
|
67
67
|
}
|
|
68
68
|
end
|
|
69
69
|
|
data/lib/factpulse/version.rb
CHANGED
data/lib/factpulse.rb
CHANGED
|
@@ -160,7 +160,7 @@ require 'factpulse/models/extraction_info'
|
|
|
160
160
|
require 'factpulse/models/factur_x_invoice'
|
|
161
161
|
require 'factpulse/models/factur_xpdf_info'
|
|
162
162
|
require 'factpulse/models/facture_electronique_models_invoice_type_code'
|
|
163
|
-
require 'factpulse/models/
|
|
163
|
+
require 'factpulse/models/facture_electronique_rest_api_schemas_convert_validation_error'
|
|
164
164
|
require 'factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials'
|
|
165
165
|
require 'factpulse/models/field_status'
|
|
166
166
|
require 'factpulse/models/file_info'
|
|
@@ -326,3 +326,6 @@ module FactPulse
|
|
|
326
326
|
end
|
|
327
327
|
end
|
|
328
328
|
end
|
|
329
|
+
|
|
330
|
+
# Helpers
|
|
331
|
+
require 'factpulse/helpers/helpers'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: factpulse
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.17
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -265,7 +265,7 @@ files:
|
|
|
265
265
|
- docs/FacturXInvoice.md
|
|
266
266
|
- docs/FacturXPDFInfo.md
|
|
267
267
|
- docs/FactureElectroniqueModelsInvoiceTypeCode.md
|
|
268
|
-
- docs/
|
|
268
|
+
- docs/FactureElectroniqueRestApiSchemasConvertValidationError.md
|
|
269
269
|
- docs/FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md
|
|
270
270
|
- docs/FieldStatus.md
|
|
271
271
|
- docs/FileInfo.md
|
|
@@ -567,7 +567,7 @@ files:
|
|
|
567
567
|
- lib/factpulse/models/factur_x_invoice.rb
|
|
568
568
|
- lib/factpulse/models/factur_xpdf_info.rb
|
|
569
569
|
- lib/factpulse/models/facture_electronique_models_invoice_type_code.rb
|
|
570
|
-
- lib/factpulse/models/
|
|
570
|
+
- lib/factpulse/models/facture_electronique_rest_api_schemas_convert_validation_error.rb
|
|
571
571
|
- lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb
|
|
572
572
|
- lib/factpulse/models/field_status.rb
|
|
573
573
|
- lib/factpulse/models/file_info.rb
|
|
@@ -674,7 +674,7 @@ files:
|
|
|
674
674
|
- lib/factpulse/models/tax_due_date_type.rb
|
|
675
675
|
- lib/factpulse/models/tax_representative.rb
|
|
676
676
|
- lib/factpulse/models/taxable_amount.rb
|
|
677
|
-
- lib/factpulse/models/
|
|
677
|
+
- lib/factpulse/models/taxableamount.rb
|
|
678
678
|
- lib/factpulse/models/taxamount.rb
|
|
679
679
|
- lib/factpulse/models/taxamount1.rb
|
|
680
680
|
- lib/factpulse/models/taxamount2.rb
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# FactPulse::FactureElectroniqueRestApiSchemasEreportingValidationError
|
|
2
|
-
|
|
3
|
-
## Properties
|
|
4
|
-
|
|
5
|
-
| Name | Type | Description | Notes |
|
|
6
|
-
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **field** | **String** | Field path with error | |
|
|
8
|
-
| **message** | **String** | Error message | |
|
|
9
|
-
| **code** | **String** | | [optional] |
|
|
10
|
-
|
|
11
|
-
## Example
|
|
12
|
-
|
|
13
|
-
```ruby
|
|
14
|
-
require 'factpulse'
|
|
15
|
-
|
|
16
|
-
instance = FactPulse::FactureElectroniqueRestApiSchemasEreportingValidationError.new(
|
|
17
|
-
field: null,
|
|
18
|
-
message: null,
|
|
19
|
-
code: null
|
|
20
|
-
)
|
|
21
|
-
```
|
|
22
|
-
|
|
File without changes
|