glyph 0.1.0

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.
Files changed (68) hide show
  1. data/README.textile +80 -0
  2. data/Rakefile +51 -0
  3. data/VERSION +1 -0
  4. data/bin/glyph +7 -0
  5. data/book/config.yml +5 -0
  6. data/book/document.glyph +55 -0
  7. data/book/images/glyph.png +0 -0
  8. data/book/images/glyph.svg +351 -0
  9. data/book/lib/macros/reference.rb +98 -0
  10. data/book/output/html/glyph.html +1809 -0
  11. data/book/output/html/images/glyph.png +0 -0
  12. data/book/output/html/images/glyph.svg +351 -0
  13. data/book/output/pdf/glyph.pdf +4277 -0
  14. data/book/snippets.yml +13 -0
  15. data/book/styles/css3.css +220 -0
  16. data/book/styles/default.css +190 -0
  17. data/book/text/authoring.textile +351 -0
  18. data/book/text/extending.textile +148 -0
  19. data/book/text/getting_started.textile +152 -0
  20. data/book/text/introduction.textile +88 -0
  21. data/book/text/ref_commands.textile +74 -0
  22. data/book/text/ref_config.textile +0 -0
  23. data/book/text/ref_macros.textile +256 -0
  24. data/book/text/troubleshooting.textile +118 -0
  25. data/config.yml +63 -0
  26. data/document.glyph +29 -0
  27. data/glyph.gemspec +138 -0
  28. data/lib/glyph.rb +128 -0
  29. data/lib/glyph/commands.rb +124 -0
  30. data/lib/glyph/config.rb +152 -0
  31. data/lib/glyph/document.rb +145 -0
  32. data/lib/glyph/glyph_language.rb +530 -0
  33. data/lib/glyph/glyph_language.treetop +27 -0
  34. data/lib/glyph/interpreter.rb +84 -0
  35. data/lib/glyph/macro.rb +69 -0
  36. data/lib/glyph/node.rb +126 -0
  37. data/lib/glyph/system_extensions.rb +77 -0
  38. data/macros/common.rb +66 -0
  39. data/macros/filters.rb +69 -0
  40. data/macros/html/block.rb +119 -0
  41. data/macros/html/inline.rb +43 -0
  42. data/macros/html/structure.rb +138 -0
  43. data/spec/files/container.textile +5 -0
  44. data/spec/files/document.glyph +2 -0
  45. data/spec/files/document_with_toc.glyph +3 -0
  46. data/spec/files/included.textile +4 -0
  47. data/spec/files/ligature.jpg +449 -0
  48. data/spec/files/markdown.markdown +8 -0
  49. data/spec/files/test.sass +2 -0
  50. data/spec/lib/commands_spec.rb +83 -0
  51. data/spec/lib/config_spec.rb +79 -0
  52. data/spec/lib/document_spec.rb +100 -0
  53. data/spec/lib/glyph_spec.rb +76 -0
  54. data/spec/lib/interpreter_spec.rb +90 -0
  55. data/spec/lib/macro_spec.rb +60 -0
  56. data/spec/lib/node_spec.rb +76 -0
  57. data/spec/macros/filters_spec.rb +42 -0
  58. data/spec/macros/macros_spec.rb +159 -0
  59. data/spec/spec_helper.rb +92 -0
  60. data/spec/tasks/generate_spec.rb +31 -0
  61. data/spec/tasks/load_spec.rb +37 -0
  62. data/spec/tasks/project_spec.rb +41 -0
  63. data/styles/css3.css +220 -0
  64. data/styles/default.css +190 -0
  65. data/tasks/generate.rake +57 -0
  66. data/tasks/load.rake +55 -0
  67. data/tasks/project.rake +33 -0
  68. metadata +192 -0
data/README.textile ADDED
@@ -0,0 +1,80 @@
1
+ Glyph is a _Rapid Document Authoring Framework_.
2
+
3
+ Think of it like a sort of "Ruby On Rails":http://www.rubyonrails.org but for creating text documents instead of web sites. With Glyph, you can manage your documents tidily in _projects_ that can be used to generate deliverables in different formats such as HTML or PDF (through "Prince":http://www.princexml.com).
4
+
5
+ h3. Main Features
6
+
7
+ Glyph uses a simple macro system to perform a wide variety of advanced tasks:
8
+ * Generate block-level HTML tags not commonly managed by lightweight markups, like @head@, @body@, @div@ and @table@.
9
+ * Create and validate internal and external links.
10
+ * Include and validate images and figures.
11
+ * Automatically determine header levels based on the document structure.
12
+ * Automatically generate a Table of Contents based on the document structure.
13
+ * Store common snippets of text in a single YAML file and use them anywhere in your document, as many times as you need.
14
+ * Store configuration settings in a YAML file and use them anywhere in your document, as many times as you need.
15
+ * Evaluate Ruby code within your document.
16
+ * Call macros from other macros (including snippets), carefully avoiding mutual calls.
17
+ * Include text files in other text files.
18
+ * Include the contents of configuration settings (author, title) in the document.
19
+ * Filter input explicitly or implicitly, based on file extensions when including files.
20
+ * Manage comments and todo items.
21
+
22
+ h3. Installation
23
+
24
+ @gem install glyph@ -- simple, as always.
25
+
26
+ h3. Essential Glyph Commands
27
+
28
+ Glyph is 100% command line. Its interface "Git's":http://git-scm.com/ for its simplicity and power (thanks to the "Gli":http://github.com/davetron5000/gli gem). Here are some example commands:
29
+
30
+ * @glyph init@ -- to initialize a new Glyph project in the current (empty) directory.
31
+ * @glyph add introduction.textile@ -- to create a new file called _introduction.textile_.
32
+ * @glyph compile@ -- to compile the current document into a single HTML file.
33
+ * @glyph compile -f pdf@ -- to compile the current document into HTML and then transform it into PDF using "Prince":http://www.princexml.com.
34
+
35
+ h3. Glyph macros in a nutshell
36
+
37
+ Format your documents using Textile or Markdown, and use Glyph Macros to do everything else:
38
+
39
+ **Glyph Source:**
40
+
41
+ <pre><code>
42
+ section[header[Something about Glyph]
43
+ You can use Glyph macros in conjunction
44
+ with _Textile_ or _Markdown_ to
45
+ produce HTML files effortlessly.
46
+ section[header[What about PDFs?|pdf]
47
+ Once you have a single, well-formatted HTML
48
+ file, converting it to PDF is
49
+ extremely easy with a 3rd-party
50
+ renderer like =>[http://www.princexml.com|Prince].
51
+ ]
52
+ ]
53
+ </code></pre>
54
+
55
+ **HTML Output:**
56
+
57
+ <pre><code>
58
+ <div class="section">
59
+ <h2 id="h_1">Something about Glyph</h2>
60
+ <p>You can use Glyph macros in conjunction with
61
+ <em>Textile</em> or <em>Markdown</em> to
62
+ produce HTML files effortlessly.</p>
63
+ <div class="section">
64
+ <h3 id="pdf">What about PDFs?</h3>
65
+ <p>Once you have a single, well-formatted HTML
66
+ file, converting it to PDF is
67
+ extremely easy with a 3rd-party renderer
68
+ like <a href="http://www.princexml.com">Prince</a>.</p>
69
+ </div>
70
+ </div>
71
+ </code></pre>
72
+
73
+ h3. Resources
74
+
75
+ * Home Page: "http://www.h3rald.com/glyph/":http://www.h3rald.com/glyph/
76
+ * Repository: "http://www.github.com/h3rald/glyph/":http://www.github.com/h3rald/glyph/
77
+ * Bug Tracking: "http://www.github.com/h3rald/glyph/issues":http://www.github.com/h3rald/glyph/issues
78
+ * Book (PDF): "http://github.com/h3rald/glyph/tree/master/book/output/pdf/glyph.pdf":http://github.com/h3rald/glyph/tree/master/book/output/pdf/glyph.pdf
79
+ * Reference Documentation: "http://yardoc.org/docs/h3rald-glyph/":http://yardoc.org/docs/h3rald-glyph/
80
+ * User Group: "http://groups.google.com/group/glyph-framework":http://groups.google.com/group/glyph-framework
data/Rakefile ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path(File.dirname(__FILE__) + '/lib')
3
+ require 'rubygems'
4
+ require 'rake/clean'
5
+ require 'glyph'
6
+
7
+ task :default => :spec
8
+
9
+ begin
10
+ require 'yard'
11
+ YARD::Rake::YardocTask.new(:yardoc) do |t|
12
+ t.files = ['lib/**/*.rb', 'README.textile', 'lib/*.rb']
13
+ t.options = ['--no-private']
14
+ end
15
+ rescue LoadError
16
+ task :yardoc do
17
+ abort "YARD is not available. Install it with: gem install yard"
18
+ end
19
+ end
20
+
21
+ begin
22
+ require 'jeweler'
23
+ Jeweler::Tasks.new do |s|
24
+ s.name = "glyph"
25
+ s.summary = "Glyph -- A Ruby-powered Document Authoring Framework"
26
+ s.description = "Glyph is a framework for structured document authoring."
27
+ s.email = "h3rald@h3rald.com"
28
+ s.homepage = "http://www.h3rald.com/glyph/"
29
+ s.authors = ["Fabio Cevasco"]
30
+ s.add_dependency 'gli', '>= 0.3.1'
31
+ s.add_dependency 'extlib', '>= 0.9.12'
32
+ s.add_dependency 'treetop', '>= 0.4.3'
33
+ s.add_dependency 'rake', '>= 0.8.7'
34
+ s.add_development_dependency 'rspec'
35
+ s.add_development_dependency 'yard'
36
+ end
37
+ Jeweler::GemcutterTasks.new
38
+ rescue LoadError
39
+ puts "Jeweler is not available. Install it with: gem install jeweler"
40
+ end
41
+
42
+ begin
43
+ require 'spec/rake/spectask'
44
+ Spec::Rake::SpecTask.new('spec') do |t|
45
+ t.spec_files = FileList['spec/**/*_spec.rb']
46
+ end
47
+ rescue LoadError
48
+ puts "RSpec is not available. Install it with: gem install rspec"
49
+ end
50
+
51
+ FileList['tasks/**/*.rake'].each { |t| load t}
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
data/bin/glyph ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
3
+ require 'glyph'
4
+ require 'glyph/commands'
5
+
6
+
7
+ run(ARGV)
data/book/config.yml ADDED
@@ -0,0 +1,5 @@
1
+ :document:
2
+ :author: "Fabio Cevasco"
3
+ :title: "Glyph"
4
+ :subtitle: "Rapid Document Authoring Framework"
5
+ :filename: "glyph"
@@ -0,0 +1,55 @@
1
+ document[
2
+ head[
3
+ style[default.css]
4
+ style[css3.css]
5
+ ]
6
+ body[
7
+ titlepage[
8
+ img[glyph.svg|20%|20%]
9
+ title[]
10
+ subtitle[]
11
+ v\.%[Glyph::VERSION] (draft)
12
+ author[]
13
+ pubdate[]
14
+ ]
15
+ frontmatter[
16
+ toc[]
17
+ introduction[
18
+ header[Introduction]
19
+ @[introduction.textile]
20
+ ]
21
+ ]
22
+ bodymatter[
23
+ chapter[
24
+ header[Getting Started]
25
+ @[getting_started.textile]
26
+ ]
27
+ chapter[
28
+ header[Authoring Documents]
29
+ @[authoring.textile]
30
+ ]
31
+ chapter[
32
+ header[Extending Glyph|extending]
33
+ @[extending.textile]
34
+ ]
35
+ chapter[
36
+ header[Troubleshooting]
37
+ @[troubleshooting.textile]
38
+ ]
39
+ ]
40
+ backmatter[
41
+ appendix[
42
+ header[Command Reference|cmd_ref]
43
+ @[ref_commands.textile]
44
+ ]
45
+ appendix[
46
+ header[Macro Reference|macro_ref]
47
+ @[ref_macros.textile]
48
+ ]
49
+ appendix[
50
+ header[Configuration Reference|cfg_ref]
51
+ @[ref_config.textile]
52
+ ]
53
+ ]
54
+ ]
55
+ ]
Binary file
@@ -0,0 +1,351 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ sodipodi:docname="glyph.svg"
13
+ inkscape:version="0.47pre4 r22446"
14
+ version="1.1"
15
+ id="svg2"
16
+ height="1052.3622047"
17
+ width="744.09448819">
18
+ <defs
19
+ id="defs4">
20
+ <inkscape:perspective
21
+ sodipodi:type="inkscape:persp3d"
22
+ inkscape:vp_x="0 : 526.18109 : 1"
23
+ inkscape:vp_y="0 : 1000 : 0"
24
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
25
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
26
+ id="perspective10" />
27
+ <filter
28
+ id="filter10267"
29
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
30
+ inkscape:menu="Shadows and Glows"
31
+ inkscape:label="Cutout Glow"
32
+ color-interpolation-filters="sRGB">
33
+ <feOffset
34
+ id="feOffset10269"
35
+ dy="3"
36
+ dx="3" />
37
+ <feGaussianBlur
38
+ id="feGaussianBlur10271"
39
+ result="result8"
40
+ stdDeviation="3" />
41
+ <feFlood
42
+ id="feFlood10273"
43
+ flood-color="rgb(0,0,0)"
44
+ flood-opacity="1"
45
+ in="result8"
46
+ result="result10" />
47
+ <feComposite
48
+ id="feComposite10275"
49
+ in2="SourceGraphic"
50
+ operator="in"
51
+ in="result10"
52
+ result="result9" />
53
+ <feBlend
54
+ id="feBlend10277"
55
+ in2="result9"
56
+ mode="normal"
57
+ in="result8" />
58
+ </filter>
59
+ <filter
60
+ id="filter10279"
61
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
62
+ inkscape:menu="Shadows and Glows"
63
+ inkscape:label="Cutout Glow"
64
+ color-interpolation-filters="sRGB">
65
+ <feOffset
66
+ id="feOffset10281"
67
+ dy="3"
68
+ dx="3" />
69
+ <feGaussianBlur
70
+ id="feGaussianBlur10283"
71
+ result="result8"
72
+ stdDeviation="3" />
73
+ <feFlood
74
+ id="feFlood10285"
75
+ flood-color="rgb(0,0,0)"
76
+ flood-opacity="1"
77
+ in="result8"
78
+ result="result10" />
79
+ <feComposite
80
+ id="feComposite10287"
81
+ in2="SourceGraphic"
82
+ operator="in"
83
+ in="result10"
84
+ result="result9" />
85
+ <feBlend
86
+ id="feBlend10289"
87
+ in2="result9"
88
+ mode="normal"
89
+ in="result8" />
90
+ </filter>
91
+ <filter
92
+ id="filter10291"
93
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
94
+ inkscape:menu="Shadows and Glows"
95
+ inkscape:label="Cutout Glow"
96
+ color-interpolation-filters="sRGB">
97
+ <feOffset
98
+ id="feOffset10293"
99
+ dy="3"
100
+ dx="3" />
101
+ <feGaussianBlur
102
+ id="feGaussianBlur10295"
103
+ result="result8"
104
+ stdDeviation="3" />
105
+ <feFlood
106
+ id="feFlood10297"
107
+ flood-color="rgb(0,0,0)"
108
+ flood-opacity="1"
109
+ in="result8"
110
+ result="result10" />
111
+ <feComposite
112
+ id="feComposite10299"
113
+ in2="SourceGraphic"
114
+ operator="in"
115
+ in="result10"
116
+ result="result9" />
117
+ <feBlend
118
+ id="feBlend10301"
119
+ in2="result9"
120
+ mode="normal"
121
+ in="result8" />
122
+ </filter>
123
+ <filter
124
+ id="filter10303"
125
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
126
+ inkscape:menu="Shadows and Glows"
127
+ inkscape:label="Cutout Glow"
128
+ color-interpolation-filters="sRGB">
129
+ <feOffset
130
+ id="feOffset10305"
131
+ dy="3"
132
+ dx="3" />
133
+ <feGaussianBlur
134
+ id="feGaussianBlur10307"
135
+ result="result8"
136
+ stdDeviation="3" />
137
+ <feFlood
138
+ id="feFlood10309"
139
+ flood-color="rgb(0,0,0)"
140
+ flood-opacity="1"
141
+ in="result8"
142
+ result="result10" />
143
+ <feComposite
144
+ id="feComposite10311"
145
+ in2="SourceGraphic"
146
+ operator="in"
147
+ in="result10"
148
+ result="result9" />
149
+ <feBlend
150
+ id="feBlend10313"
151
+ in2="result9"
152
+ mode="normal"
153
+ in="result8" />
154
+ </filter>
155
+ <filter
156
+ id="filter10315"
157
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
158
+ inkscape:menu="Shadows and Glows"
159
+ inkscape:label="Cutout Glow"
160
+ color-interpolation-filters="sRGB">
161
+ <feOffset
162
+ id="feOffset10317"
163
+ dy="3"
164
+ dx="3" />
165
+ <feGaussianBlur
166
+ id="feGaussianBlur10319"
167
+ result="result8"
168
+ stdDeviation="3" />
169
+ <feFlood
170
+ id="feFlood10321"
171
+ flood-color="rgb(0,0,0)"
172
+ flood-opacity="1"
173
+ in="result8"
174
+ result="result10" />
175
+ <feComposite
176
+ id="feComposite10323"
177
+ in2="SourceGraphic"
178
+ operator="in"
179
+ in="result10"
180
+ result="result9" />
181
+ <feBlend
182
+ id="feBlend10325"
183
+ in2="result9"
184
+ mode="normal"
185
+ in="result8" />
186
+ </filter>
187
+ <filter
188
+ id="filter10327"
189
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
190
+ inkscape:menu="Shadows and Glows"
191
+ inkscape:label="Cutout Glow"
192
+ color-interpolation-filters="sRGB">
193
+ <feOffset
194
+ id="feOffset10329"
195
+ dy="3"
196
+ dx="3" />
197
+ <feGaussianBlur
198
+ id="feGaussianBlur10331"
199
+ result="result8"
200
+ stdDeviation="3" />
201
+ <feFlood
202
+ id="feFlood10333"
203
+ flood-color="rgb(0,0,0)"
204
+ flood-opacity="1"
205
+ in="result8"
206
+ result="result10" />
207
+ <feComposite
208
+ id="feComposite10335"
209
+ in2="SourceGraphic"
210
+ operator="in"
211
+ in="result10"
212
+ result="result9" />
213
+ <feBlend
214
+ id="feBlend10337"
215
+ in2="result9"
216
+ mode="normal"
217
+ in="result8" />
218
+ </filter>
219
+ <filter
220
+ id="filter10339"
221
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
222
+ inkscape:menu="Shadows and Glows"
223
+ inkscape:label="Cutout Glow"
224
+ color-interpolation-filters="sRGB">
225
+ <feOffset
226
+ id="feOffset10341"
227
+ dy="3"
228
+ dx="3" />
229
+ <feGaussianBlur
230
+ id="feGaussianBlur10343"
231
+ result="result8"
232
+ stdDeviation="3" />
233
+ <feFlood
234
+ id="feFlood10345"
235
+ flood-color="rgb(0,0,0)"
236
+ flood-opacity="1"
237
+ in="result8"
238
+ result="result10" />
239
+ <feComposite
240
+ id="feComposite10347"
241
+ in2="SourceGraphic"
242
+ operator="in"
243
+ in="result10"
244
+ result="result9" />
245
+ <feBlend
246
+ id="feBlend10349"
247
+ in2="result9"
248
+ mode="normal"
249
+ in="result8" />
250
+ </filter>
251
+ <filter
252
+ id="filter10351"
253
+ inkscape:menu-tooltip="In and out glow with a possible offset and colorizable flood"
254
+ inkscape:menu="Shadows and Glows"
255
+ inkscape:label="Cutout Glow"
256
+ color-interpolation-filters="sRGB">
257
+ <feOffset
258
+ id="feOffset10353"
259
+ dy="3"
260
+ dx="3" />
261
+ <feGaussianBlur
262
+ id="feGaussianBlur10355"
263
+ result="result8"
264
+ stdDeviation="3" />
265
+ <feFlood
266
+ id="feFlood10357"
267
+ flood-color="rgb(0,0,0)"
268
+ flood-opacity="1"
269
+ in="result8"
270
+ result="result10" />
271
+ <feComposite
272
+ id="feComposite10359"
273
+ in2="SourceGraphic"
274
+ operator="in"
275
+ in="result10"
276
+ result="result9" />
277
+ <feBlend
278
+ id="feBlend10361"
279
+ in2="result9"
280
+ mode="normal"
281
+ in="result8" />
282
+ </filter>
283
+ </defs>
284
+ <sodipodi:namedview
285
+ id="base"
286
+ pagecolor="#ffffff"
287
+ bordercolor="#666666"
288
+ borderopacity="1.0"
289
+ inkscape:pageopacity="0.0"
290
+ inkscape:pageshadow="2"
291
+ inkscape:zoom="0.5"
292
+ inkscape:cx="140.78311"
293
+ inkscape:cy="625.26835"
294
+ inkscape:document-units="px"
295
+ inkscape:current-layer="svg2"
296
+ showgrid="false"
297
+ inkscape:object-paths="true"
298
+ inkscape:window-width="1280"
299
+ inkscape:window-height="750"
300
+ inkscape:window-x="0"
301
+ inkscape:window-y="26"
302
+ inkscape:window-maximized="1" />
303
+ <metadata
304
+ id="metadata7">
305
+ <rdf:RDF>
306
+ <cc:Work
307
+ rdf:about="">
308
+ <dc:format>image/svg+xml</dc:format>
309
+ <dc:type
310
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
311
+ </cc:Work>
312
+ </rdf:RDF>
313
+ </metadata>
314
+ <g
315
+ inkscape:label="Layer 1"
316
+ inkscape:groupmode="layer"
317
+ id="layer1">
318
+ <path
319
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10351)"
320
+ id="path3146"
321
+ d="m 135.90113,115.56774 c 9.36279,-1.58158 18.75987,-2.91951 28.16725,-4.20502 28.94119,-3.82366 58.02265,-6.37864 87.09204,-8.98268 34.37607,-2.85549 68.75754,-5.661683 103.15506,-8.249722 24.86202,-1.857154 49.73927,-3.495648 74.63685,-4.79105 21.43117,-1.285563 42.86792,-2.472992 64.31007,-3.559451 14.76281,-0.597858 29.53897,-1.078555 44.31506,-0.925837 13.77984,0.162265 27.51749,1.241719 41.24049,2.411887 11.03591,0.905512 22.06005,1.939146 33.08837,2.92975 7.92376,0.71257 15.86486,1.194199 23.78447,1.951135 1.34586,5.022814 -34.1708,14.539478 -35.51666,9.516658 l 0,0 c -7.91961,-0.75693 -15.86071,-1.23856 -23.78447,-1.951132 -11.02832,-0.990604 -22.05246,-2.024239 -33.08837,-2.92975 -13.723,-1.170168 -27.46065,-2.249622 -41.24049,-2.411888 -14.77609,-0.152717 -29.55225,0.32798 -44.31506,0.925837 -21.44215,1.086459 -42.8789,2.273889 -64.31008,3.559451 -24.89757,1.295402 -49.77482,2.933892 -74.63684,4.791052 -34.39752,2.58804 -68.77899,5.39423 -103.15506,8.24972 -29.06939,2.60404 -58.15085,5.15902 -87.09204,8.98268 -9.40739,1.28551 -18.80446,2.62344 -28.16726,4.20503 -1.345855,-5.02282 34.17081,-14.53948 35.51667,-9.51667 z" />
322
+ <path
323
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10339)"
324
+ id="path3148"
325
+ d="m 193.67577,220.21955 c 10.09553,-1.09403 20.1977,-2.12868 30.31431,-3.02968 26.98684,-2.15566 54.04982,-3.13021 81.10121,-4.05351 25.17605,-0.89692 50.34887,-1.5435 75.54018,-1.27348 25.50774,0.61269 50.99066,2.00034 76.44695,3.6957 17.06539,1.22977 34.12411,2.51921 51.21149,3.40464 6.22883,0.31451 12.46115,0.54909 18.69417,0.76102 1.34586,5.02282 -34.1708,14.53948 -35.51666,9.51667 l 0,0 c -6.23302,-0.21193 -12.46534,-0.44652 -18.69417,-0.76103 -17.08738,-0.88543 -34.1461,-2.17486 -51.21149,-3.40463 -25.45629,-1.69537 -50.93921,-3.08302 -76.44695,-3.69571 -25.19131,-0.27002 -50.36413,0.37656 -75.54018,1.27348 -27.05139,0.9233 -54.11438,1.89785 -81.10121,4.05351 -10.11661,0.901 -20.21878,1.93565 -30.31431,3.02968 -1.34586,-5.02282 34.1708,-14.53948 35.51666,-9.51666 z" />
326
+ <path
327
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10327)"
328
+ id="path3182"
329
+ d="m 130.4717,89.5584 c 0.0756,5.012571 -0.1116,10.020447 -0.30112,15.02831 -0.35625,6.67562 -0.86445,13.34193 -1.76358,19.96717 -1.19884,7.79255 -3.3998,15.39141 -5.52598,22.97088 -2.14104,7.79555 -5.41836,15.16498 -8.94612,22.4107 -3.43926,6.60743 -7.20673,13.04403 -11.25746,19.2943 -3.558531,5.41419 -7.656575,10.43317 -11.848518,15.36165 -3.799494,4.3681 -7.710915,8.63256 -11.491599,13.01675 -2.016608,2.35116 -4.128524,4.6185 -6.212323,6.90991 -5.121,0.90297 -11.505966,-35.30797 -6.384966,-36.21094 l 0,0 c 2.083799,-2.29141 4.195716,-4.55875 6.212323,-6.90991 3.780684,-4.38419 7.692105,-8.64865 11.491599,-13.01675 4.191943,-4.92848 8.289987,-9.94746 11.848519,-15.36165 4.050735,-6.25027 7.818195,-12.68687 11.257455,-19.29431 3.52776,-7.24571 6.80509,-14.61514 8.94612,-22.41069 2.12619,-7.57947 4.32714,-15.178329 5.52598,-22.970879 0.89913,-6.625239 1.40734,-13.291556 1.76358,-19.96717 0.18952,-5.007865 0.37673,-10.01574 0.30113,-15.028312 5.121,-0.90297 11.50596,35.30797 6.38496,36.210941 z" />
330
+ <path
331
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10315)"
332
+ id="path3188"
333
+ d="m 592.19143,162.5462 c 0.55825,-5.14831 1.38863,-10.2816 2.22032,-15.39559 1.48415,-9.74569 4.10819,-19.26034 6.89702,-28.69871 3.17242,-11.34919 7.18937,-22.416563 11.74834,-33.274115 3.68784,-8.626885 7.98363,-16.974483 12.6866,-25.087405 2.98369,-5.117854 6.37486,-9.976378 10.35869,-14.361983 1.44108,-1.519775 3.04031,-2.863623 4.66258,-4.181017 5.121,-0.90297 11.50596,35.30797 6.38496,36.210941 l 0,0 c -1.62227,1.317393 -3.22149,2.661241 -4.66257,4.181016 -3.98383,4.385605 -7.375,9.24413 -10.3587,14.361984 -4.70296,8.112919 -8.99875,16.460519 -12.6866,25.087409 -4.55896,10.85755 -8.57591,21.92492 -11.74834,33.27411 -2.78882,9.43838 -5.41287,18.95303 -6.89701,28.69871 -0.83169,5.11399 -1.66207,10.24728 -2.22033,15.39559 -5.121,0.90297 -11.50596,-35.30797 -6.38496,-36.21094 z" />
334
+ <path
335
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10303)"
336
+ id="path3602"
337
+ d="m 286.11925,340.12881 c 3.27827,0.38033 6.5176,1.05755 9.75074,1.71104 5.41246,1.02741 10.74591,2.39844 16.00953,4.01598 5.05536,1.56055 9.88176,3.71171 14.56088,6.16035 4.50356,2.40408 8.46163,5.60506 11.88984,9.36388 3.74755,4.44075 6.51933,9.55775 9.0294,14.76658 2.7678,5.74141 4.28764,11.93379 5.65123,18.12551 1.38913,7.3085 2.00368,14.73474 2.45062,22.15148 0.4936,7.83731 0.36405,15.68659 0.14149,23.52953 -0.50302,11.66274 -1.49373,23.29311 -2.4413,34.92552 -1.33457,14.87636 -2.8915,29.73111 -4.59429,44.56941 -1.48072,13.29044 -3.05452,26.56898 -4.63977,39.84721 -1.41922,12.2168 -2.86935,24.43021 -4.31455,36.6441 -1.2096,9.90036 -2.33164,19.81096 -3.35516,29.73221 -0.80956,7.66091 -1.69929,15.31214 -2.61219,22.96124 -0.83871,5.97184 -1.49352,11.97469 -2.62011,17.90131 -2.36573,10.67478 -11.09594,28.07145 -17.0313,31.53207 -1.59754,0.0264 -2.18707,-2.27301 -2.6579,-3.47003 -0.94392,-2.73646 -1.60455,-5.56369 -2.28178,-8.37574 -0.89845,-3.62133 -2.22865,-7.09987 -3.71544,-10.51431 -1.70578,-3.97554 -3.96473,-7.64557 -6.45393,-11.16866 -2.8607,-4.01694 -6.24427,-7.61056 -9.8432,-10.96659 -3.82318,-3.56237 -8.23357,-6.35989 -12.78635,-8.88102 -4.40272,-2.40092 -9.12034,-4.09891 -13.95439,-5.38225 -4.47762,-1.09625 -9.03286,-1.80241 -13.61892,-2.22999 -3.84032,-0.30494 -7.68341,-0.10963 -11.49025,0.43221 -4.17524,0.71705 -8.14527,2.26634 -12.05764,3.8427 -5.19616,-3 8.94598,-27.4949 14.14213,-24.4949 l 0,0 c 3.91237,-1.57636 7.88241,-3.12565 12.05764,-3.8427 3.80685,-0.54184 7.64993,-0.73714 11.49025,-0.4322 4.58606,0.42757 9.14131,1.13373 13.61893,2.22998 4.83404,1.28334 9.55167,2.98133 13.95439,5.38226 4.55278,2.52112 8.96317,5.31864 12.78635,8.88101 3.59893,3.35603 6.98249,6.94966 9.8432,10.96659 2.4892,3.52309 4.74815,7.19312 6.45392,11.16867 1.4868,3.41443 2.81699,6.89297 3.71545,10.5143 0.67723,2.81205 1.33785,5.63929 2.28178,8.37574 0.47083,1.19702 1.06036,3.49643 2.6579,3.47003 8.38306,-4.88775 0.57097,-0.43403 -13.20917,23.65136 -0.17163,0.29997 0.35775,-0.59338 0.49889,-0.90883 0.75062,-1.67759 1.04704,-3.50817 1.45731,-5.2848 1.12659,-5.92663 1.78139,-11.92947 2.62011,-17.90131 0.91289,-7.64911 1.80262,-15.30033 2.61219,-22.96124 1.02351,-9.92126 2.14556,-19.83186 3.35515,-29.73221 1.4452,-12.21389 2.89533,-24.4273 4.31455,-36.6441 1.58525,-13.27823 3.15906,-26.55677 4.63978,-39.84721 1.70278,-14.8383 3.25972,-29.69305 4.59428,-44.56941 0.94757,-11.63241 1.93828,-23.26278 2.44131,-34.92552 0.22255,-7.84294 0.35211,-15.69222 -0.1415,-23.52953 -0.44693,-7.41674 -1.06149,-14.84298 -2.45061,-22.15149 -1.3636,-6.19172 -2.88343,-12.38409 -5.65123,-18.12551 -2.51008,-5.20882 -5.28185,-10.32583 -9.02941,-14.76658 -3.42821,-3.75881 -7.38627,-6.95979 -11.88984,-9.36387 -4.67912,-2.44865 -9.50552,-4.59981 -14.56088,-6.16035 -5.26361,-1.61754 -10.59707,-2.98857 -16.00953,-4.01599 -3.23313,-0.65348 -6.47246,-1.3307 -9.75073,-1.71103 -5.19616,-3 8.94598,-27.4949 14.14213,-24.4949 z" />
338
+ <path
339
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10291)"
340
+ id="path3614"
341
+ d="m 555.52129,191.13177 c -0.35299,2.5315 -1.05204,4.98442 -1.80699,7.41983 -1.83067,5.2855 -4.29835,10.31271 -6.8662,15.27066 -5.58018,10.48386 -13.17342,19.63843 -20.8515,28.6219 -12.95337,14.43053 -26.79157,28.04362 -40.92896,41.30571 -11.4003,10.6668 -23.05402,21.06271 -35.07336,31.02728 -8.5887,7.1554 -17.64219,13.68836 -26.96449,19.8441 -7.56383,5.02432 -15.34465,9.70139 -23.18337,14.27983 -6.58732,3.88678 -13.22621,7.68316 -19.91993,11.3835 -5.3729,2.9958 -10.8569,5.78191 -16.37697,8.4943 -4.63292,2.33813 -9.35109,4.4883 -14.1433,6.47751 -3.08306,1.22512 -6.21214,2.32555 -9.35432,3.38739 -1.04188,5.90885 -28.89645,0.99733 -27.85457,-4.91151 l 0,0 c 3.14218,-1.06184 6.27126,-2.16228 9.35432,-3.38739 4.79221,-1.98921 9.51038,-4.13938 14.1433,-6.47752 5.52007,-2.71239 11.00407,-5.49849 16.37697,-8.49429 6.69372,-3.70034 13.33261,-7.49672 19.91993,-11.38351 7.83873,-4.57843 15.61954,-9.2555 23.18337,-14.27982 9.3223,-6.15574 18.37579,-12.6887 26.96449,-19.8441 12.01934,-9.96457 23.67307,-20.36049 35.07336,-31.02728 14.13739,-13.26209 27.97559,-26.87518 40.92896,-41.30571 7.67808,-8.98347 15.27132,-18.13804 20.8515,-28.6219 2.56785,-4.95795 5.03553,-9.98516 6.8662,-15.27067 0.75495,-2.4354 1.454,-4.88832 1.80699,-7.41982 1.04189,-5.90884 28.89646,-0.99733 27.85457,4.91151 z" />
342
+ <path
343
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10279)"
344
+ id="path3650"
345
+ d="m 72.258573,423.36003 c -9.004063,1.57809 -36.033038,6.21339 -27.012189,4.73427 10.085359,-1.65367 20.123272,-3.58765 30.205892,-5.25793 1.962209,-0.32506 10.645758,-1.07779 11.730698,-1.162 7.892191,-0.61252 11.915855,-0.76374 20.102906,-1.19071 34.35147,-1.54079 68.74904,-1.55929 103.12784,-1.54415 46.81651,0.0598 93.61341,1.32277 140.39479,3.02698 49.55184,1.78759 99.03834,4.84216 148.4865,8.45278 38.43046,2.86724 76.76268,6.81207 115.06642,11.00881 24.86218,2.74262 49.69698,5.71841 74.44272,9.37108 14.05795,2.15435 28.05346,4.6915 41.99789,7.48259 5.6278,0.58499 11.2774,3.22309 16.94081,3.39602 -9.53691,1.4248 -19.02164,3.25852 -28.61074,4.27441 -0.68103,0.0722 -1.16726,-0.71707 -1.76197,-1.05668 -0.79217,-0.45239 -1.59493,-0.88607 -2.39795,-1.31891 -3.03047,-1.63347 -6.06805,-3.25522 -9.10609,-4.87472 -6.80224,-3.66149 -13.47475,-7.55659 -20.18955,-11.37513 -7.05344,-3.98113 -13.72808,-8.59022 -20.40513,-13.16329 -6.23706,-4.37997 -12.43454,-8.81424 -18.70226,-13.15055 -0.69459,-3.93923 27.15998,-8.85074 27.85457,-4.91151 l 0,0 c 6.26772,4.33631 12.4652,8.77058 18.70226,13.15055 6.67705,4.57306 13.35169,9.18216 20.40513,13.16329 6.7148,3.81854 13.38731,7.71364 20.18955,11.37513 3.03804,1.6195 6.07562,3.24125 9.10609,4.87471 0.80302,0.43284 1.60578,0.86653 2.39795,1.31891 0.59471,0.33962 2.42466,0.88392 1.76197,1.05668 -8.922,2.326 -18.0656,3.69909 -27.0984,5.54863 -5.66341,-0.17294 -11.31301,-2.81104 -16.94081,-3.39603 -13.94443,-2.79109 -27.93994,-5.32824 -41.99789,-7.48259 -24.74574,-3.65267 -49.58054,-6.62846 -74.44272,-9.37108 -38.30374,-4.19673 -76.63596,-8.14157 -115.06642,-11.0088 -49.44816,-3.61063 -98.93465,-6.66519 -148.4865,-8.45279 -46.78138,-1.70421 -93.57828,-2.96719 -140.39479,-3.02697 -34.3788,-0.0152 -68.77637,0.003 -103.127835,1.54414 -9.038594,0.47138 -18.06505,0.92586 -27.073959,1.81825 -1.588746,0.15737 -6.32686,0.83898 -4.75965,0.53446 3.455191,-0.67137 69.566004,-12.37863 -3.193702,0.52366 -0.694593,-3.93923 27.159977,-8.85074 27.854569,-4.91151 z" />
346
+ <path
347
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter10267)"
348
+ id="path3718"
349
+ d="m 276.03321,20.113377 c 4.28061,0.06127 8.52482,0.533595 12.76688,1.069488 5.56731,0.834603 11.07562,2.016085 16.49707,3.526491 5.07246,1.575584 9.71557,4.166396 14.12638,7.07788 4.29425,3.000654 8.039,6.669379 11.63348,10.456126 2.99404,3.197346 5.61581,6.714457 8.03595,10.358347 1.73999,2.587749 3.33282,5.266321 4.94882,7.931438 0.76406,4.333155 -29.87597,9.735818 -30.64002,5.402664 l 0,0 c -1.61601,-2.665118 -3.20884,-5.343689 -4.94882,-7.931439 -2.42015,-3.643889 -5.04192,-7.161001 -8.03596,-10.358346 -3.59448,-3.786747 -7.33922,-7.455472 -11.63348,-10.456127 -4.41081,-2.911483 -9.05392,-5.502296 -14.12637,-7.077879 -5.42146,-1.510406 -10.92977,-2.691889 -16.49708,-3.526491 -4.24206,-0.535893 -8.48627,-1.008217 -12.76687,-1.069488 -0.76406,-4.333154 29.87597,-9.735818 30.64002,-5.402664 z" />
350
+ </g>
351
+ </svg>