docxtor 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/.ruby-version +1 -1
  2. data/Gemfile +1 -0
  3. data/README.md +88 -44
  4. data/lib/docxtor.rb +3 -0
  5. data/lib/docxtor/document/builder.rb +18 -3
  6. data/lib/docxtor/document/element.rb +9 -2
  7. data/lib/docxtor/generator.rb +7 -2
  8. data/lib/docxtor/package/builder.rb +2 -11
  9. data/lib/docxtor/reference_builder.rb +29 -0
  10. data/lib/docxtor/running_element.rb +69 -0
  11. data/lib/docxtor/running_elements_builder.rb +18 -0
  12. data/lib/docxtor/template_parser.rb +3 -10
  13. data/lib/docxtor/version.rb +1 -1
  14. data/spec/docxtor/document/builder_spec.rb +2 -4
  15. data/spec/docxtor/document/paragraph_spec.rb +8 -8
  16. data/spec/docxtor/document/root_spec.rb +21 -5
  17. data/spec/docxtor/document/table_of_contents_spec.rb +1 -5
  18. data/spec/docxtor/docxtor_spec.rb +6 -6
  19. data/spec/docxtor/package/builder_spec.rb +51 -11
  20. data/spec/docxtor/reference_builder_spec.rb +27 -0
  21. data/spec/docxtor/running_element_spec.rb +38 -0
  22. data/spec/docxtor/running_elements_builder_spec.rb +25 -0
  23. data/spec/docxtor/support/contexts/xml_builder_context.rb +0 -2
  24. data/spec/docxtor/template_parser_spec.rb +3 -3
  25. data/templates/default/[Content_Types].xml +1 -5
  26. data/templates/default/_rels/.rels +1 -4
  27. data/templates/default/docProps/app.xml +1 -0
  28. data/templates/default/docProps/core.xml +1 -0
  29. metadata +150 -154
  30. data/spec/docxtor/support/examples/.gitkeep +0 -0
  31. data/spec/docxtor/support/matchers/wordprocessingml_matchers.rb +0 -42
  32. data/spec/docxtor/support/matchers/xpath_matchers.rb +0 -46
  33. data/templates/default/word/_rels/document.xml.rels +0 -13
  34. data/templates/default/word/endnotes.xml +0 -17
  35. data/templates/default/word/fontTable.xml +0 -31
  36. data/templates/default/word/footer1.xml +0 -35
  37. data/templates/default/word/footer2.xml +0 -48
  38. data/templates/default/word/footnotes.xml +0 -17
  39. data/templates/default/word/numbering.xml +0 -212
  40. data/templates/default/word/settings.xml +0 -107
  41. data/templates/default/word/styles.xml +0 -368
  42. data/templates/default/word/theme/theme1.xml +0 -2
  43. data/templates/default/word/websettings.xml +0 -4
File without changes
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path('xpath_matchers', File.dirname(__FILE__))
3
-
4
- module WordprocessingMLMatchers
5
- extend RSpec::Matchers::DSL
6
- include XPathMatchers
7
-
8
- def contain_body
9
- exist_xpath('//w:document/w:body')
10
- end
11
-
12
- def contain_paragraph_text
13
- exist_xpath('//w:p/w:r/w:t')
14
- end
15
-
16
- def contain_paragraph_run
17
- exist_xpath('//w:p/w:r')
18
- end
19
-
20
- def contain_element_property(el, prop)
21
- exist_xpath("//w:#{el}/w:#{el}Pr/w:#{prop}")
22
- end
23
-
24
- def contain_element_style(el)
25
- contain_element_property(el, 'pStyle')
26
- end
27
-
28
- # TODO: These a not the same, fix it
29
-
30
- def contain_gallery_of_document_parts
31
- exist_xpath('//w:sdt/w:sdtPr/w:docPartObj/w:docPartGallery')
32
- end
33
-
34
- def contain_sdt_content_heading
35
- exist_xpath('//w:sdt/w:sdtPr/w:docPartObj/w:docPartGallery')
36
- end
37
-
38
- def contain_table_of_contents
39
- contain_gallery_of_document_parts &&
40
- contain_sdt_content_heading
41
- end
42
- end
@@ -1,46 +0,0 @@
1
- module XPathMatchers
2
- extend RSpec::Matchers::DSL
3
- include RSpecXML::XMLMatchers
4
-
5
- EXPR_PREFIX = '//'
6
- LOCAL_NAME_EXPR = "*[local-name()='%s']"
7
- ATTRIBUTE_SEPARATORS = ['|', '&', 'and', 'or']
8
-
9
- matcher :exist_xpath do |xpath|
10
- match do |xml|
11
- xml.should have_xpath(ignore_namespaces(xpath))
12
- end
13
- description do
14
- "xpath #{xpath} exist"
15
- end
16
-
17
- failure_message_for_should do |actual|
18
- "expected xpath #{expected} to exist in #{actual}"
19
- end
20
-
21
- # TODO: Make it work with attributes
22
- # Typical cases are:
23
- #
24
- # //person[@id='abc123']/@*[name()='weight' or name()='haircolor']
25
- # //person[@id='abc123']/(@haircolor|@weight)`
26
- # [@id='abc123']
27
- # @*[name()='weight' or name()='haircolor']
28
- #
29
- # This should work, try it:
30
- #
31
- # //*[local-name()='a'][*[local-name()='aCode']='aaa']
32
-
33
- # takes smth like //w:p/w:r and
34
- # returns //*[local-name()='p']/*[local-name()='r]
35
- def ignore_namespaces(xpath)
36
- expressions = xpath.sub(EXPR_PREFIX, '').
37
- split('/').map { |expr| to_local_name(expr) }.join('/')
38
- EXPR_PREFIX + expressions
39
- end
40
-
41
- def to_local_name(expr)
42
- element = expr.split(':').last
43
- LOCAL_NAME_EXPR % element
44
- end
45
- end
46
- end
@@ -1,13 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
3
- <Relationship Id="rId8" Target="footer2.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"/>
4
- <Relationship Id="rId3" Target="settings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings"/>
5
- <Relationship Id="rId7" Target="footer1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"/>
6
- <Relationship Id="rId2" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"/>
7
- <Relationship Id="rId1" Target="numbering.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"/>
8
- <Relationship Id="rId6" Target="endnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes"/>
9
- <Relationship Id="rId5" Target="footnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"/>
10
- <Relationship Id="rId10" Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"/>
11
- <Relationship Id="rId4" Target="webSettings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"/>
12
- <Relationship Id="rId9" Target="fontTable.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"/>
13
- </Relationships>
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:endnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
3
- <w:endnote w:id="0" w:type="separator">
4
- <w:p w:rsidR="00F8394C" w:rsidRDefault="00F8394C">
5
- <w:r>
6
- <w:separator/>
7
- </w:r>
8
- </w:p>
9
- </w:endnote>
10
- <w:endnote w:id="1" w:type="continuationSeparator">
11
- <w:p w:rsidR="00F8394C" w:rsidRDefault="00F8394C">
12
- <w:r>
13
- <w:continuationSeparator/>
14
- </w:r>
15
- </w:p>
16
- </w:endnote>
17
- </w:endnotes>
@@ -1,31 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:fonts xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
3
- <w:font w:name="Times New Roman">
4
- <w:panose1 w:val="02020603050405020304"/>
5
- <w:charset w:val="CC"/>
6
- <w:family w:val="roman"/>
7
- <w:pitch w:val="variable"/>
8
- <w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002AFF" w:usb1="C0007841" w:usb2="00000009" w:usb3="00000000"/>
9
- </w:font>
10
- <w:font w:name="Arial">
11
- <w:panose1 w:val="020B0604020202020204"/>
12
- <w:charset w:val="CC"/>
13
- <w:family w:val="swiss"/>
14
- <w:pitch w:val="variable"/>
15
- <w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002AFF" w:usb1="C0007843" w:usb2="00000009" w:usb3="00000000"/>
16
- </w:font>
17
- <w:font w:name="Calibri">
18
- <w:panose1 w:val="020F0502020204030204"/>
19
- <w:charset w:val="CC"/>
20
- <w:family w:val="swiss"/>
21
- <w:pitch w:val="variable"/>
22
- <w:sig w:csb0="0000019F" w:csb1="00000000" w:usb0="E10002FF" w:usb1="4000ACFF" w:usb2="00000009" w:usb3="00000000"/>
23
- </w:font>
24
- <w:font w:name="Cambria">
25
- <w:panose1 w:val="02040503050406030204"/>
26
- <w:charset w:val="CC"/>
27
- <w:family w:val="roman"/>
28
- <w:pitch w:val="variable"/>
29
- <w:sig w:csb0="0000019F" w:csb1="00000000" w:usb0="A00002EF" w:usb1="4000004B" w:usb2="00000000" w:usb3="00000000"/>
30
- </w:font>
31
- </w:fonts>
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:ftr xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
3
- <w:p w:rsidR="00940665" w:rsidRDefault="00940665">
4
- <w:pPr>
5
- <w:pStyle w:val="a3"/>
6
- <w:framePr w:hAnchor="margin" w:vAnchor="text" w:wrap="around" w:xAlign="center" w:y="1"/>
7
- <w:rPr>
8
- <w:rStyle w:val="a4"/>
9
- </w:rPr>
10
- </w:pPr>
11
- <w:r>
12
- <w:rPr>
13
- <w:rStyle w:val="a4"/>
14
- </w:rPr>
15
- <w:fldChar w:fldCharType="begin"/>
16
- </w:r>
17
- <w:r>
18
- <w:rPr>
19
- <w:rStyle w:val="a4"/>
20
- </w:rPr>
21
- <w:instrText xml:space="preserve">PAGE </w:instrText>
22
- </w:r>
23
- <w:r>
24
- <w:rPr>
25
- <w:rStyle w:val="a4"/>
26
- </w:rPr>
27
- <w:fldChar w:fldCharType="end"/>
28
- </w:r>
29
- </w:p>
30
- <w:p w:rsidR="00940665" w:rsidRDefault="00940665">
31
- <w:pPr>
32
- <w:pStyle w:val="a3"/>
33
- </w:pPr>
34
- </w:p>
35
- </w:ftr>
@@ -1,48 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:ftr xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
3
- <w:p w:rsidR="00940665" w:rsidRDefault="00940665">
4
- <w:pPr>
5
- <w:pStyle w:val="a3"/>
6
- <w:framePr w:hAnchor="margin" w:vAnchor="text" w:wrap="around" w:xAlign="center" w:y="1"/>
7
- <w:rPr>
8
- <w:rStyle w:val="a4"/>
9
- </w:rPr>
10
- </w:pPr>
11
- <w:r>
12
- <w:rPr>
13
- <w:rStyle w:val="a4"/>
14
- </w:rPr>
15
- <w:fldChar w:fldCharType="begin"/>
16
- </w:r>
17
- <w:r>
18
- <w:rPr>
19
- <w:rStyle w:val="a4"/>
20
- </w:rPr>
21
- <w:instrText xml:space="preserve">PAGE </w:instrText>
22
- </w:r>
23
- <w:r>
24
- <w:rPr>
25
- <w:rStyle w:val="a4"/>
26
- </w:rPr>
27
- <w:fldChar w:fldCharType="separate"/>
28
- </w:r>
29
- <w:r w:rsidR="001A4A26">
30
- <w:rPr>
31
- <w:rStyle w:val="a4"/>
32
- <w:noProof/>
33
- </w:rPr>
34
- <w:t>111</w:t>
35
- </w:r>
36
- <w:r>
37
- <w:rPr>
38
- <w:rStyle w:val="a4"/>
39
- </w:rPr>
40
- <w:fldChar w:fldCharType="end"/>
41
- </w:r>
42
- </w:p>
43
- <w:p w:rsidR="00940665" w:rsidRDefault="00940665">
44
- <w:pPr>
45
- <w:pStyle w:val="a3"/>
46
- </w:pPr>
47
- </w:p>
48
- </w:ftr>
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:footnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
3
- <w:footnote w:id="0" w:type="separator">
4
- <w:p w:rsidR="00F8394C" w:rsidRDefault="00F8394C">
5
- <w:r>
6
- <w:separator/>
7
- </w:r>
8
- </w:p>
9
- </w:footnote>
10
- <w:footnote w:id="1" w:type="continuationSeparator">
11
- <w:p w:rsidR="00F8394C" w:rsidRDefault="00F8394C">
12
- <w:r>
13
- <w:continuationSeparator/>
14
- </w:r>
15
- </w:p>
16
- </w:footnote>
17
- </w:footnotes>
@@ -1,212 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
- <w:numbering xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
3
- <w:abstractNum w:abstractNumId="0">
4
- <w:nsid w:val="167C5681"/>
5
- <w:multiLevelType w:val="hybridMultilevel"/>
6
- <w:tmpl w:val="D1F061A8"/>
7
- <w:lvl w:ilvl="0" w:tplc="0419000F">
8
- <w:start w:val="1"/>
9
- <w:numFmt w:val="decimal"/>
10
- <w:lvlText w:val="%1."/>
11
- <w:lvlJc w:val="left"/>
12
- <w:pPr>
13
- <w:tabs>
14
- <w:tab w:pos="720" w:val="num"/>
15
- </w:tabs>
16
- <w:ind w:hanging="360" w:left="720"/>
17
- </w:pPr>
18
- </w:lvl>
19
- <w:lvl w:ilvl="1" w:tentative="1" w:tplc="04190019">
20
- <w:start w:val="1"/>
21
- <w:numFmt w:val="lowerLetter"/>
22
- <w:lvlText w:val="%2."/>
23
- <w:lvlJc w:val="left"/>
24
- <w:pPr>
25
- <w:tabs>
26
- <w:tab w:pos="1440" w:val="num"/>
27
- </w:tabs>
28
- <w:ind w:hanging="360" w:left="1440"/>
29
- </w:pPr>
30
- </w:lvl>
31
- <w:lvl w:ilvl="2" w:tentative="1" w:tplc="0419001B">
32
- <w:start w:val="1"/>
33
- <w:numFmt w:val="lowerRoman"/>
34
- <w:lvlText w:val="%3."/>
35
- <w:lvlJc w:val="right"/>
36
- <w:pPr>
37
- <w:tabs>
38
- <w:tab w:pos="2160" w:val="num"/>
39
- </w:tabs>
40
- <w:ind w:hanging="180" w:left="2160"/>
41
- </w:pPr>
42
- </w:lvl>
43
- <w:lvl w:ilvl="3" w:tentative="1" w:tplc="0419000F">
44
- <w:start w:val="1"/>
45
- <w:numFmt w:val="decimal"/>
46
- <w:lvlText w:val="%4."/>
47
- <w:lvlJc w:val="left"/>
48
- <w:pPr>
49
- <w:tabs>
50
- <w:tab w:pos="2880" w:val="num"/>
51
- </w:tabs>
52
- <w:ind w:hanging="360" w:left="2880"/>
53
- </w:pPr>
54
- </w:lvl>
55
- <w:lvl w:ilvl="4" w:tentative="1" w:tplc="04190019">
56
- <w:start w:val="1"/>
57
- <w:numFmt w:val="lowerLetter"/>
58
- <w:lvlText w:val="%5."/>
59
- <w:lvlJc w:val="left"/>
60
- <w:pPr>
61
- <w:tabs>
62
- <w:tab w:pos="3600" w:val="num"/>
63
- </w:tabs>
64
- <w:ind w:hanging="360" w:left="3600"/>
65
- </w:pPr>
66
- </w:lvl>
67
- <w:lvl w:ilvl="5" w:tentative="1" w:tplc="0419001B">
68
- <w:start w:val="1"/>
69
- <w:numFmt w:val="lowerRoman"/>
70
- <w:lvlText w:val="%6."/>
71
- <w:lvlJc w:val="right"/>
72
- <w:pPr>
73
- <w:tabs>
74
- <w:tab w:pos="4320" w:val="num"/>
75
- </w:tabs>
76
- <w:ind w:hanging="180" w:left="4320"/>
77
- </w:pPr>
78
- </w:lvl>
79
- <w:lvl w:ilvl="6" w:tentative="1" w:tplc="0419000F">
80
- <w:start w:val="1"/>
81
- <w:numFmt w:val="decimal"/>
82
- <w:lvlText w:val="%7."/>
83
- <w:lvlJc w:val="left"/>
84
- <w:pPr>
85
- <w:tabs>
86
- <w:tab w:pos="5040" w:val="num"/>
87
- </w:tabs>
88
- <w:ind w:hanging="360" w:left="5040"/>
89
- </w:pPr>
90
- </w:lvl>
91
- <w:lvl w:ilvl="7" w:tentative="1" w:tplc="04190019">
92
- <w:start w:val="1"/>
93
- <w:numFmt w:val="lowerLetter"/>
94
- <w:lvlText w:val="%8."/>
95
- <w:lvlJc w:val="left"/>
96
- <w:pPr>
97
- <w:tabs>
98
- <w:tab w:pos="5760" w:val="num"/>
99
- </w:tabs>
100
- <w:ind w:hanging="360" w:left="5760"/>
101
- </w:pPr>
102
- </w:lvl>
103
- <w:lvl w:ilvl="8" w:tentative="1" w:tplc="0419001B">
104
- <w:start w:val="1"/>
105
- <w:numFmt w:val="lowerRoman"/>
106
- <w:lvlText w:val="%9."/>
107
- <w:lvlJc w:val="right"/>
108
- <w:pPr>
109
- <w:tabs>
110
- <w:tab w:pos="6480" w:val="num"/>
111
- </w:tabs>
112
- <w:ind w:hanging="180" w:left="6480"/>
113
- </w:pPr>
114
- </w:lvl>
115
- </w:abstractNum>
116
- <w:abstractNum w:abstractNumId="1">
117
- <w:nsid w:val="34B5542F"/>
118
- <w:multiLevelType w:val="hybridMultilevel"/>
119
- <w:tmpl w:val="86DC1F06"/>
120
- <w:lvl w:ilvl="0" w:tplc="E89C2AEE">
121
- <w:start w:val="1"/>
122
- <w:numFmt w:val="decimal"/>
123
- <w:lvlRestart w:val="0"/>
124
- <w:lvlText w:val="%1."/>
125
- <w:lvlJc w:val="left"/>
126
- <w:pPr>
127
- <w:tabs>
128
- <w:tab w:pos="720" w:val="num"/>
129
- </w:tabs>
130
- <w:ind w:hanging="363" w:left="720"/>
131
- </w:pPr>
132
- </w:lvl>
133
- <w:lvl w:ilvl="1" w:tentative="1" w:tplc="04190019">
134
- <w:start w:val="1"/>
135
- <w:numFmt w:val="lowerLetter"/>
136
- <w:lvlText w:val="%2."/>
137
- <w:lvlJc w:val="left"/>
138
- <w:pPr>
139
- <w:ind w:hanging="360" w:left="1440"/>
140
- </w:pPr>
141
- </w:lvl>
142
- <w:lvl w:ilvl="2" w:tentative="1" w:tplc="0419001B">
143
- <w:start w:val="1"/>
144
- <w:numFmt w:val="lowerRoman"/>
145
- <w:lvlText w:val="%3."/>
146
- <w:lvlJc w:val="right"/>
147
- <w:pPr>
148
- <w:ind w:hanging="180" w:left="2160"/>
149
- </w:pPr>
150
- </w:lvl>
151
- <w:lvl w:ilvl="3" w:tentative="1" w:tplc="0419000F">
152
- <w:start w:val="1"/>
153
- <w:numFmt w:val="decimal"/>
154
- <w:lvlText w:val="%4."/>
155
- <w:lvlJc w:val="left"/>
156
- <w:pPr>
157
- <w:ind w:hanging="360" w:left="2880"/>
158
- </w:pPr>
159
- </w:lvl>
160
- <w:lvl w:ilvl="4" w:tentative="1" w:tplc="04190019">
161
- <w:start w:val="1"/>
162
- <w:numFmt w:val="lowerLetter"/>
163
- <w:lvlText w:val="%5."/>
164
- <w:lvlJc w:val="left"/>
165
- <w:pPr>
166
- <w:ind w:hanging="360" w:left="3600"/>
167
- </w:pPr>
168
- </w:lvl>
169
- <w:lvl w:ilvl="5" w:tentative="1" w:tplc="0419001B">
170
- <w:start w:val="1"/>
171
- <w:numFmt w:val="lowerRoman"/>
172
- <w:lvlText w:val="%6."/>
173
- <w:lvlJc w:val="right"/>
174
- <w:pPr>
175
- <w:ind w:hanging="180" w:left="4320"/>
176
- </w:pPr>
177
- </w:lvl>
178
- <w:lvl w:ilvl="6" w:tentative="1" w:tplc="0419000F">
179
- <w:start w:val="1"/>
180
- <w:numFmt w:val="decimal"/>
181
- <w:lvlText w:val="%7."/>
182
- <w:lvlJc w:val="left"/>
183
- <w:pPr>
184
- <w:ind w:hanging="360" w:left="5040"/>
185
- </w:pPr>
186
- </w:lvl>
187
- <w:lvl w:ilvl="7" w:tentative="1" w:tplc="04190019">
188
- <w:start w:val="1"/>
189
- <w:numFmt w:val="lowerLetter"/>
190
- <w:lvlText w:val="%8."/>
191
- <w:lvlJc w:val="left"/>
192
- <w:pPr>
193
- <w:ind w:hanging="360" w:left="5760"/>
194
- </w:pPr>
195
- </w:lvl>
196
- <w:lvl w:ilvl="8" w:tentative="1" w:tplc="0419001B">
197
- <w:start w:val="1"/>
198
- <w:numFmt w:val="lowerRoman"/>
199
- <w:lvlText w:val="%9."/>
200
- <w:lvlJc w:val="right"/>
201
- <w:pPr>
202
- <w:ind w:hanging="180" w:left="6480"/>
203
- </w:pPr>
204
- </w:lvl>
205
- </w:abstractNum>
206
- <w:num w:numId="1">
207
- <w:abstractNumId w:val="0"/>
208
- </w:num>
209
- <w:num w:numId="2">
210
- <w:abstractNumId w:val="1"/>
211
- </w:num>
212
- </w:numbering>