metanorma-iec 1.2.9 → 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -0
  3. data/.rubocop.yml +0 -4
  4. data/lib/asciidoctor/iec/basicdoc.rng +52 -3
  5. data/lib/asciidoctor/iec/converter.rb +20 -0
  6. data/lib/asciidoctor/iec/front.rb +29 -58
  7. data/lib/asciidoctor/iec/iec.rng +47 -2
  8. data/lib/asciidoctor/iec/iec_intro_en.xml +37 -12
  9. data/lib/asciidoctor/iec/iec_intro_fr.xml +38 -6
  10. data/lib/asciidoctor/iec/isodoc.rng +114 -3
  11. data/lib/asciidoctor/iec/isostandard.rng +19 -10
  12. data/lib/isodoc/iec/base_convert.rb +2 -2
  13. data/lib/isodoc/iec/html/html_iec_intro.html +1 -1
  14. data/lib/isodoc/iec/html/word_iec_intro.html +1 -1
  15. data/lib/isodoc/iec/html_convert.rb +2 -2
  16. data/lib/isodoc/iec/i18n-en.yaml +1 -0
  17. data/lib/isodoc/iec/i18n-fr.yaml +1 -0
  18. data/lib/isodoc/iec/iec.international-standard.xsl +848 -363
  19. data/lib/isodoc/iec/word_convert.rb +2 -2
  20. data/lib/metanorma/iec/processor.rb +11 -0
  21. data/lib/metanorma/iec/version.rb +1 -1
  22. data/metanorma-iec.gemspec +2 -2
  23. data/spec/asciidoctor-iec/base_spec.rb +436 -10
  24. data/spec/asciidoctor-iec/blocks_spec.rb +24 -20
  25. data/spec/asciidoctor-iec/cleanup_spec.rb +99 -14
  26. data/spec/asciidoctor-iec/iev_spec.rb +12 -6
  27. data/spec/asciidoctor-iec/inline_spec.rb +11 -7
  28. data/spec/asciidoctor-iec/lists_spec.rb +7 -3
  29. data/spec/asciidoctor-iec/section_spec.rb +9 -5
  30. data/spec/asciidoctor-iec/validate_spec.rb +22 -21
  31. data/spec/isodoc/iso_spec.rb +2 -2
  32. data/spec/metanorma/processor_spec.rb +1 -1
  33. data/spec/spec_helper.rb +25 -33
  34. metadata +6 -7
  35. data/lib/metanorma/iec/fonts_manifest.yaml +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1facfa130e99efe5c781d228b39853ceeb4b805391e02b0beb49766b4af0951c
4
- data.tar.gz: e579a5dc4fcaa6bc3df2f7011c93beabcdcd9ef71146e939312623d884b6b863
3
+ metadata.gz: 725593d432b4bdf162ce9becf5bc50c28e8229fbb53f3c0a55c9c1e707d22035
4
+ data.tar.gz: 1c800a5db3bec0431e04a79dbe404824e5d61194fba0be755bbeca5d6080ecd7
5
5
  SHA512:
6
- metadata.gz: 6a55ff1b90d0e8993e8bb8699cffd52cea344c63fc08ffb66865a1c25f4ac39598b76fe790b6c0d594b92abf6810c9c21766d9b3076d6b7654b0dce6bc09353c
7
- data.tar.gz: 295aadfd9752db496ff98fd09cf979746c84c97cdf9512cc0fde596fb95a36d70bdd4b6b7c933f7953198e1d066624bb86a60cf95171e5e33894af1e50b75a1a
6
+ metadata.gz: 200972ebddea38cfd18c561f1a3272032a16c1e86435a7706991ed8db21206957dbec96e237ec4cb53eee5695b7fde06cf09369fb3d9365dc984897b213b2531
7
+ data.tar.gz: 9d42cf2e4c263e83e10ff53d965b88a4bb88bca7869cf768c08119b02a6aec5b9824f77c70d578c9fca06373857b1c24762e18ab07068fd10a5e87d3c6b63073
@@ -36,6 +36,9 @@ jobs:
36
36
  with:
37
37
  ruby-version: ${{ matrix.ruby }}
38
38
 
39
+ - if: matrix.os == 'macos-latest'
40
+ run: brew install autoconf automake libtool
41
+
39
42
  - uses: actions/cache@v2
40
43
  with:
41
44
  path: vendor/bundle
data/.rubocop.yml CHANGED
@@ -4,7 +4,3 @@
4
4
 
5
5
  inherit_from:
6
6
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
- AllCops:
8
- TargetRubyVersion: 2.3
9
- Rails:
10
- Enabled: true
@@ -596,6 +596,7 @@
596
596
  <ref name="bookmark"/>
597
597
  <ref name="image"/>
598
598
  <ref name="index"/>
599
+ <ref name="index-xref"/>
599
600
  </choice>
600
601
  </define>
601
602
  <define name="PureTextElement">
@@ -728,13 +729,61 @@
728
729
  </define>
729
730
  <define name="index">
730
731
  <element name="index">
731
- <attribute name="primary"/>
732
732
  <optional>
733
- <attribute name="secondary"/>
733
+ <attribute name="to">
734
+ <data type="IDREF"/>
735
+ </attribute>
736
+ </optional>
737
+ <element name="primary">
738
+ <oneOrMore>
739
+ <ref name="PureTextElement"/>
740
+ </oneOrMore>
741
+ </element>
742
+ <optional>
743
+ <element name="secondary">
744
+ <oneOrMore>
745
+ <ref name="PureTextElement"/>
746
+ </oneOrMore>
747
+ </element>
748
+ </optional>
749
+ <optional>
750
+ <element name="tertiary">
751
+ <oneOrMore>
752
+ <ref name="PureTextElement"/>
753
+ </oneOrMore>
754
+ </element>
755
+ </optional>
756
+ </element>
757
+ </define>
758
+ <define name="index-xref">
759
+ <element name="index-xref">
760
+ <attribute name="also">
761
+ <data type="boolean"/>
762
+ </attribute>
763
+ <element name="primary">
764
+ <oneOrMore>
765
+ <ref name="PureTextElement"/>
766
+ </oneOrMore>
767
+ </element>
768
+ <optional>
769
+ <element name="secondary">
770
+ <oneOrMore>
771
+ <ref name="PureTextElement"/>
772
+ </oneOrMore>
773
+ </element>
734
774
  </optional>
735
775
  <optional>
736
- <attribute name="tertiary"/>
776
+ <element name="tertiary">
777
+ <oneOrMore>
778
+ <ref name="PureTextElement"/>
779
+ </oneOrMore>
780
+ </element>
737
781
  </optional>
782
+ <element name="target">
783
+ <oneOrMore>
784
+ <ref name="PureTextElement"/>
785
+ </oneOrMore>
786
+ </element>
738
787
  </element>
739
788
  </define>
740
789
  <!-- bare ID element, used for referencing arbitrary spans of text -->
@@ -80,6 +80,26 @@ module Asciidoctor
80
80
  super
81
81
  @is_iev and replace_title(x, "//introduction", @i18n&.introduction_iev)
82
82
  end
83
+
84
+ def note(n)
85
+ if n.title == "Note from TC/SC Officers"
86
+ noko do |xml|
87
+ xml.tc_sc_officers_note do |c|
88
+ wrap_in_para(n, c)
89
+ end
90
+ end.join("\n")
91
+ else
92
+ super
93
+ end
94
+ end
95
+
96
+ def note_cleanup(xmldoc)
97
+ super
98
+ n = xmldoc.at("//tc-sc-officers-note") and xmldoc.at("//bibdata/ext").add_child(n.remove)
99
+ end
100
+
101
+ def image_name_validate(xmldoc)
102
+ end
83
103
  end
84
104
  end
85
105
  end
@@ -51,56 +51,17 @@ module Asciidoctor
51
51
  end
52
52
 
53
53
  STAGE_CODES = {
54
- "PNW" => "1000",
55
- "ANW" => "2000",
56
- "CAN" => "2098",
57
- "ACD" => "2099",
58
- "CD" => "3020",
59
- "BWG" => "3092",
60
- "A2CD" => "3099",
61
- "2CD" => "3520",
62
- "3CD" => "3520",
63
- "4CD" => "3520",
64
- "5CD" => "3520",
65
- "6CD" => "3520",
66
- "7CD" => "3520",
67
- "8CD" => "3520",
68
- "9CD" => "3520",
69
- "CDM" => "3591",
70
- "A3CD" => "3592",
71
- "A4CD" => "3592",
72
- "A5CD" => "3592",
73
- "A6CD" => "3592",
74
- "A7CD" => "3592",
75
- "A8CD" => "3592",
76
- "A9CD" => "3592",
77
- "ACDV" => "3599",
78
- "CCDV" => "4020",
79
- "CDVM" => "4091",
80
- "NCDV" => "4092",
81
- "NADIS" => "4093",
82
- "ADIS" => "4099",
83
- "ADTR" => "4099",
84
- "ADTS" => "4099",
85
- "RDISH" => "5000",
86
- "RFDIS" => "5000",
87
- "CDISH" => "5020",
88
- "CDPAS" => "5020",
89
- "CDTR" => "5020",
90
- "CDTS" => "5020",
91
- "CFDIS" => "5020",
92
- "DTRM" => "5092",
93
- "DTSM" => "5092",
94
- "NDTR" => "5092",
95
- "NDTS" => "5092",
96
- "NFDIS" => "5092",
97
- "APUB" => "5099",
98
- "BPUB" => "6000",
99
- "PPUB" => "6060",
100
- "RR" => "9092",
101
- "AMW" => "9220",
102
- "WPUB" => "9599",
103
- "DELPUB" => "9960",
54
+ "PNW" => "1000", "ANW" => "2000", "CAN" => "2098", "ACD" => "2099", "CD" => "3020",
55
+ "BWG" => "3092", "A2CD" => "3099", "2CD" => "3520", "3CD" => "3520", "4CD" => "3520",
56
+ "5CD" => "3520", "6CD" => "3520", "7CD" => "3520", "8CD" => "3520", "9CD" => "3520",
57
+ "CDM" => "3591", "A3CD" => "3592", "A4CD" => "3592", "A5CD" => "3592", "A6CD" => "3592",
58
+ "A7CD" => "3592", "A8CD" => "3592", "A9CD" => "3592", "ACDV" => "3599", "CCDV" => "4020",
59
+ "CDVM" => "4091", "NCDV" => "4092", "NADIS" => "4093", "ADIS" => "4099", "ADTR" => "4099",
60
+ "ADTS" => "4099", "RDISH" => "5000", "RFDIS" => "5000", "CDISH" => "5020", "CDPAS" => "5020",
61
+ "CDTR" => "5020", "CDTS" => "5020", "CFDIS" => "5020", "DTRM" => "5092", "DTSM" => "5092",
62
+ "NDTR" => "5092", "NDTS" => "5092", "NFDIS" => "5092", "APUB" => "5099", "BPUB" => "6000",
63
+ "PPUB" => "6060", "RR" => "9092", "AMW" => "9220", "WPUB" => "9599", "DELPUB" => "9960",
64
+ "PWI" => "0000", "NWIP" => "1000", "WD" => "2000", "CDV" => "4000", "FDIS" => "5000",
104
65
  }.freeze
105
66
 
106
67
  DOC_STAGE = {
@@ -123,7 +84,8 @@ module Asciidoctor
123
84
  "20" => {"00" => "ANW", "98" => "CAN", "99" => "ACD"},
124
85
  "30" => {"00" => "CD", "20" => "CD", "92" => "BWG", "97" => "MERGED", "98" => "DREJ", "99" => "A2CD"},
125
86
  "35" => {"00" => "CD", "20" => "CD", "91" => "CDM", "92" => "ACD", "99" => "ACDV"},
126
- "40" => {"00" => "CCDV", "20" => "CCDV", "91" => "CDVM", "92" => "NCDV", "93" => "NADIS", "95" => "ADISSB", "99" => "ADIS"},
87
+ "40" => {"00" => "CCDV", "20" => "CCDV", "91" => "CDVM", "92" => "NCDV", "93" => "NADIS",
88
+ "95" => "ADISSB", "99" => "ADIS"},
127
89
  "50" => {"00" => "RFDIS", "20" => "CFDIS", "92" => "NFDIS", "95" => "APUBSB", "99" => "APUB"},
128
90
  "60" => {"00" => "BPUB", "60" => "PPUB"},
129
91
  "90" => {"00" => "RR", "92" => "RR"},
@@ -183,8 +145,7 @@ module Asciidoctor
183
145
 
184
146
  def get_stage(node)
185
147
  stage = node.attr("status") || node.attr("docstage") || "60"
186
- m = /([0-9])CD$/.match(stage) and
187
- node.set_attr("iteration", m[1])
148
+ m = /([0-9])CD$/.match(stage) and node.set_attr("iteration", m[1])
188
149
  STAGE_CODES[stage] and stage = STAGE_CODES[stage][0..1]
189
150
  stage
190
151
  end
@@ -193,9 +154,7 @@ module Asciidoctor
193
154
  st = node.attr("status") || node.attr("docstage")
194
155
  stage = get_stage(node)
195
156
  node.attr("docsubstage") ||
196
- ( stage == "60" ? "60" :
197
- STAGE_CODES[st] ? STAGE_CODES[st][2..3] :
198
- "00" )
157
+ ( stage == "60" ? "60" : STAGE_CODES[st] ? STAGE_CODES[st][2..3] : "00" )
199
158
  end
200
159
 
201
160
  def id_stage_abbr(stage, substage, node)
@@ -211,8 +170,7 @@ module Asciidoctor
211
170
  xml.status do |s|
212
171
  s.stage stage, **attr_code(abbreviation: stage_abbr(stage, substage))
213
172
  s.substage substage,
214
- **attr_code(abbreviation: status_abbrev1(stage, substage,
215
- node.attr("iteration"),
173
+ **attr_code(abbreviation: status_abbrev1(stage, substage, node.attr("iteration"),
216
174
  doctype(node),node.attr("draft")))
217
175
  node.attr("iteration") && (s.iteration node.attr("iteration"))
218
176
  end
@@ -223,6 +181,19 @@ module Asciidoctor
223
181
  xml.horizontal (node.attr("horizontal") || "false")
224
182
  a = node.attr("function") and xml.function a
225
183
  end
184
+
185
+ def relaton_relations
186
+ super + %w(obsoletes)
187
+ end
188
+
189
+ def metadata_ext(node, xml)
190
+ super
191
+ a = node.attr("accessibility-color-inside") and xml.accessibility_color_inside a
192
+ a = node.attr("price-code") and xml.price_code a
193
+ a = node.attr("cen-processing") and xml.cen_processing a
194
+ a = node.attr("secretary") and xml.secretary a
195
+ a = node.attr("interest-to-committees") and xml.interest_to_committees a
196
+ end
226
197
  end
227
198
  end
228
199
  end
@@ -34,6 +34,24 @@
34
34
  <optional>
35
35
  <ref name="updates_document_type"/>
36
36
  </optional>
37
+ <optional>
38
+ <ref name="accessibility-color-inside"/>
39
+ </optional>
40
+ <optional>
41
+ <ref name="price-code"/>
42
+ </optional>
43
+ <optional>
44
+ <ref name="cen-processing"/>
45
+ </optional>
46
+ <optional>
47
+ <ref name="secretary"/>
48
+ </optional>
49
+ <optional>
50
+ <ref name="interest-to-committees"/>
51
+ </optional>
52
+ <optional>
53
+ <ref name="tc-sc-officers-note"/>
54
+ </optional>
37
55
  </define>
38
56
  </include>
39
57
  <!-- end overrides -->
@@ -47,11 +65,38 @@
47
65
  </choice>
48
66
  </element>
49
67
  </define>
50
- <define name="horizontal">
51
- <element name="horizontal">
68
+ <define name="accessibility-color-inside">
69
+ <element name="accessibility-color-inside">
52
70
  <data type="boolean"/>
53
71
  </element>
54
72
  </define>
73
+ <define name="price-code">
74
+ <element name="price-code">
75
+ <text/>
76
+ </element>
77
+ </define>
78
+ <define name="cen-processing">
79
+ <element name="cen-processing">
80
+ <data type="boolean"/>
81
+ </element>
82
+ </define>
83
+ <define name="secretary">
84
+ <element name="secretary">
85
+ <text/>
86
+ </element>
87
+ </define>
88
+ <define name="interest-to-committees">
89
+ <element name="interest-to-committees">
90
+ <text/>
91
+ </element>
92
+ </define>
93
+ <define name="tc-sc-officers-note">
94
+ <element name="tc-sc-officers-note">
95
+ <zeroOrMore>
96
+ <ref name="BasicBlock"/>
97
+ </zeroOrMore>
98
+ </element>
99
+ </define>
55
100
  <!--
56
101
  We display the Normative References between scope and terms; but to keep the
57
102
  grammar simple, we keep the references together
@@ -1,6 +1,13 @@
1
1
  <boilerplate>
2
2
  <copyright-statement>
3
- <clause>
3
+ <clause>
4
+ {% if unpublished %}
5
+ <p><strong>Copyright © {{ docyear }} International Electrotechnical Commission, IEC.</strong>
6
+ All rights reserved. It is permitted to download this electronic file, to make a copy and to
7
+ print out the content for the sole purpose of preparing National Committee positions. You
8
+ may not copy or "mirror" the file or printed version of the document, or any part of it,
9
+ for any other purpose without permission in writing from IEC.
10
+ {% else %}
4
11
  <p id="boilerplate-year">
5
12
  © {{ agency }} {{ docyear }}, Published in Switzerland
6
13
  </p>
@@ -20,6 +27,7 @@
20
27
  Fax&#xa0;&#xa0;+ 41 22 919 03 00<br/>
21
28
  info@iec.ch<br/>
22
29
  www.iec.ch
30
+ {% endif %}
23
31
  </p>
24
32
  </clause>
25
33
  </copyright-statement>
@@ -41,21 +49,37 @@
41
49
  {% if unpublished %}
42
50
  <license-statement>
43
51
  <clause>
44
- <title>Warning for CDs, CDVs and FDISs</title>
45
-
46
- <p>This
47
- document is not an IEC International Standard. It is distributed for review and
48
- comment. It is subject to change without notice and may not be referred to as
49
- an International Standard.</p>
50
-
51
- <p>Recipients
52
- of this draft are invited to submit, with their comments, notification of any
53
- relevant patent rights of which they are aware and to provide supporting
54
- documentation.</p>
52
+ {% if stage_int < 50 %}
53
+ <p>This document is still under study and subject to change. It should not be used for reference purposes.</p>
54
+ until published as such.</p>
55
+ {% endif %}
56
+ {% if stage_int >= 50 %}
57
+ <p>This document is a draft distributed for approval. It may not be referred to as an International Standard
58
+ until published as such.</p>
59
+ {% endif %}
60
+ {% if stage_int >= 50 %}
61
+ <p>In addition to their evaluation as being acceptable for industrial, technological, commercial and user
62
+ purposes, Final Draft International Standards may on occasion have to be considered in the light of their
63
+ potential to become standards to which reference may be made in national regulations.</p>
64
+ {% endif %}
65
+ <p>Recipients of this document are invited to submit, with their comments, notification of any relevant
66
+ patent rights of which they are aware and to provide supporting documentation.</p>
55
67
  </clause>
56
68
  </license-statement>
57
69
  {% endif %}
58
70
  <feedback-statement>
71
+ {% if unpublished %}
72
+ <clause id="boilerplate-cenelec-attention">
73
+ <title>Attention IEC-CENELEC parallel voting</title>
74
+ <p>The attention of IEC National Committees, members of CENELEC, is drawn to the fact that this
75
+ {% if stage_int >= 30 and stage_int < 40 %}Committee Draft{% endif %}
76
+ {% if stage_int >= 40 and stage_int < 50 %}Committee Draft For Vote{% endif %}
77
+ {% if stage_int >= 50 and stage_int < 60 %}Final Draft International Standard{% endif %}
78
+ ({{ stageabbr }})
79
+ is submitted for parallel voting.</p>
80
+ <p>The CENELEC members are invited to vote through the CENELEC voting system.</p>
81
+ </clause>
82
+ {% else %}
59
83
  <clause>
60
84
  <title>About the IEC</title>
61
85
  <p>The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes International Standards for all electrical, electronic and related technologies.</p>
@@ -85,6 +109,7 @@
85
109
  <p>If you wish to give us your feedback on this publication or need further assistance, please contact the Customer Service Centre: <link target="mailto://csc@iec.ch">csc@iec.ch</link>.</p>
86
110
  </clause>
87
111
  </clause>
112
+ {% endif %}
88
113
  </feedback-statement>
89
114
  </boilerplate>
90
115
 
@@ -1,6 +1,13 @@
1
1
  <boilerplate>
2
2
  <copyright-statement>
3
3
  <clause>
4
+ {% if unpublished %}
5
+ <p><strong>Copyright © {{ docyear }} International Electrotechnical Commission, IEC.</strong>
6
+ All rights reserved. It is permitted to download this electronic file, to make a copy and to
7
+ print out the content for the sole purpose of preparing National Committee positions. You
8
+ may not copy or "mirror" the file or printed version of the document, or any part of it,
9
+ for any other purpose without permission in writing from IEC.
10
+ {% else %}
4
11
  <p id="boilerplate-year">
5
12
  © {{ agency }} {{ docyear }}, Publié en Suisse
6
13
  </p>
@@ -23,6 +30,7 @@ l’adresse ci-après ou au comité membre de l’IEC dans le pays du demandeur.
23
30
  info@iec.ch<br/>
24
31
  www.iec.ch
25
32
  </p>
33
+ {% endif %}
26
34
  </clause>
27
35
  </copyright-statement>
28
36
  <legal-statement>
@@ -42,15 +50,38 @@ l’adresse ci-après ou au comité membre de l’IEC dans le pays du demandeur.
42
50
  </legal-statement>
43
51
  {% if unpublished %}
44
52
  <license-statement>
45
- <clause>
46
- <title>Avertissement</title>
47
-
48
- <p>Ce document n'est pas une Norme internationale de l'ISO. Il est distribué pour examen et observations. Il est susceptible de modification sans préavis et ne peut être cité comme Norme internationale.</p>
49
- <p>Les destinataires du présent projet sont invités à présenter, avec leurs observations, notification des droits de propriété dont ils auraient éventuellement connaissance et à fournir une documentation explicative.</p>
50
- </clause>
53
+ <clause>
54
+ {% if stage_int < 40 %}
55
+ <p>This document is still under study and subject to change. It should not be used for reference purposes.</p>
56
+ until published as such.</p>
57
+ {% endif %}
58
+ {% if stage_int >= 40 %}
59
+ <p>This document is a draft distributed for approval. It may not be referred to as an International Standard
60
+ until published as such.</p>
61
+ {% endif %}
62
+ {% if stage_int >= 50 %}
63
+ <p>In addition to their evaluation as being acceptable for industrial, technological, commercial and user
64
+ purposes, Final Draft International Standards may on occasion have to be considered in the light of their
65
+ potential to become standards to which reference may be made in national regulations.</p>
66
+ {% endif %}
67
+ <p>Recipients of this document are invited to submit, with their comments, notification of any relevant
68
+ patent rights of which they are aware and to provide supporting documentation.</p>
69
+ </clause>
51
70
  </license-statement>
52
71
  {% endif %}
53
72
  <feedback-statement>
73
+ {% if unpublished %}
74
+ <clause id="boilerplate-cenelec-attention">
75
+ <title>Attention IEC-CENELEC parallel voting</title>
76
+ <p>The attention of IEC National Committees, members of CENELEC, is drawn to the fact that this
77
+ {% if stage_int >= 30 and stage_int < 40 %}Committee Draft{% endif %}
78
+ {% if stage_int >= 40 and stage_int < 50 %}Committee Draft For Vote{% endif %}
79
+ {% if stage_int >= 50 and stage_int < 60 %}Final Draft International Standard{% endif %}
80
+ ({{ stageabbr }})
81
+ is submitted for parallel voting.</p>
82
+ <p>The CENELEC members are invited to vote through the CENELEC voting system.</p>
83
+ </clause>
84
+ {% else %}
54
85
  <clause>
55
86
  <title>A propos de l'IEC</title>
56
87
  <p>La Commission Electrotechnique Internationale (IEC) est la première organisation mondiale qui élabore et publie des Normes internationales pour tout ce qui a trait à l'électricité, à l'électronique et aux technologies apparentées.</p>
@@ -80,6 +111,7 @@ l’adresse ci-après ou au comité membre de l’IEC dans le pays du demandeur.
80
111
  <p>Si vous désirez nous donner des commentaires sur cette publication ou si vous avez des questions contactez-nous: <link target="mailto://csc@iec.ch">csc@iec.ch</link>.</p>
81
112
  </clause>
82
113
  </clause>
114
+ {% endif %}
83
115
  </feedback-statement>
84
116
  </boilerplate>
85
117