strelka 0.18.0 → 0.19.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 (55) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/History.rdoc +24 -0
  5. data/IDEAS.rdoc +0 -1
  6. data/README.rdoc +12 -6
  7. data/Rakefile +4 -94
  8. data/lib/strelka.rb +1 -1
  9. data/lib/strelka/app.rb +2 -3
  10. data/lib/strelka/app/parameters.rb +3 -12
  11. data/lib/strelka/app/restresources.rb +0 -3
  12. data/lib/strelka/cookie.rb +1 -1
  13. data/lib/strelka/mixins.rb +1 -1
  14. data/lib/strelka/multirunner.rb +34 -11
  15. data/lib/strelka/paramvalidator.rb +22 -45
  16. data/lib/strelka/session/default.rb +1 -1
  17. data/spec/strelka/app/parameters_spec.rb +1 -27
  18. data/spec/strelka/app_spec.rb +0 -12
  19. data/spec/strelka/mixins_spec.rb +0 -10
  20. data/spec/strelka/paramvalidator_spec.rb +4 -54
  21. metadata +51 -143
  22. metadata.gz.sig +0 -0
  23. data/.gemtest +0 -0
  24. data/ChangeLog +0 -3824
  25. data/MILESTONES.rdoc +0 -24
  26. data/Manifest.txt +0 -144
  27. data/contrib/hoetemplate/History.rdoc.erb +0 -4
  28. data/contrib/hoetemplate/Manifest.txt.erb +0 -8
  29. data/contrib/hoetemplate/README.rdoc.erb +0 -35
  30. data/contrib/hoetemplate/Rakefile.erb +0 -24
  31. data/contrib/hoetemplate/data/project/apps/file_name_app +0 -37
  32. data/contrib/hoetemplate/data/project/templates/layout.tmpl.erb +0 -13
  33. data/contrib/hoetemplate/data/project/templates/top.tmpl.erb +0 -8
  34. data/contrib/hoetemplate/lib/file_name.rb.erb +0 -15
  35. data/contrib/hoetemplate/spec/file_name_spec.rb.erb +0 -21
  36. data/contrib/strelka-dogs/doggie6.svg +0 -271
  37. data/contrib/strelka-dogs/doggie7.svg +0 -49
  38. data/examples/Procfile +0 -9
  39. data/examples/apps/auth-demo +0 -29
  40. data/examples/apps/auth-demo2 +0 -37
  41. data/examples/apps/hello-world +0 -30
  42. data/examples/apps/sessions-demo +0 -42
  43. data/examples/apps/upload-demo +0 -74
  44. data/examples/apps/ws-chat +0 -69
  45. data/examples/apps/ws-echo +0 -61
  46. data/examples/config.yml +0 -33
  47. data/examples/gen-config.rb +0 -52
  48. data/examples/static/examples.css +0 -4
  49. data/examples/static/examples.html +0 -33
  50. data/examples/strelka.conf.example +0 -51
  51. data/examples/templates/auth-form.tmpl +0 -14
  52. data/examples/templates/auth-success.tmpl +0 -5
  53. data/examples/templates/layout.tmpl +0 -31
  54. data/examples/templates/upload-form.tmpl +0 -17
  55. data/examples/templates/upload-success.tmpl +0 -13
@@ -1,24 +0,0 @@
1
- = Strelka Milestones
2
-
3
- == v0.0.1
4
-
5
- === Documentation
6
-
7
- [√] Ensure the README is up to date
8
- [ ] Update the IDEAS doc
9
- [ ] Extract the rest of the tutorial part of the manual out into RDoc for the app classes
10
- [ ] Lay out the framework for the 'cookbook' section of the manual
11
-
12
- === Code
13
-
14
- [ ] Finish the 'setup' task in bin/strelka
15
- [ ] Add support for Mongrel2's async uploads. Might require some Ruby-Mongrel2 work as well.
16
-
17
-
18
- == v0.1.0
19
-
20
- === Features
21
-
22
- [ ] Add WebSocketService and plugins
23
-
24
-
@@ -1,144 +0,0 @@
1
- .gemtest
2
- ChangeLog
3
- Deploying.rdoc
4
- History.rdoc
5
- IDEAS.rdoc
6
- MILESTONES.rdoc
7
- Manifest.txt
8
- Plugins.rdoc
9
- README.rdoc
10
- Rakefile
11
- Tutorial.rdoc
12
- bin/strelka
13
- contrib/hoetemplate/History.rdoc.erb
14
- contrib/hoetemplate/Manifest.txt.erb
15
- contrib/hoetemplate/README.rdoc.erb
16
- contrib/hoetemplate/Rakefile.erb
17
- contrib/hoetemplate/data/project/apps/file_name_app
18
- contrib/hoetemplate/data/project/templates/layout.tmpl.erb
19
- contrib/hoetemplate/data/project/templates/top.tmpl.erb
20
- contrib/hoetemplate/lib/file_name.rb.erb
21
- contrib/hoetemplate/spec/file_name_spec.rb.erb
22
- contrib/strelka-dogs/doggie6.svg
23
- contrib/strelka-dogs/doggie7.svg
24
- examples/Procfile
25
- examples/apps/auth-demo
26
- examples/apps/auth-demo2
27
- examples/apps/hello-world
28
- examples/apps/sessions-demo
29
- examples/apps/upload-demo
30
- examples/apps/ws-chat
31
- examples/apps/ws-echo
32
- examples/config.yml
33
- examples/gen-config.rb
34
- examples/static/examples.css
35
- examples/static/examples.html
36
- examples/strelka.conf.example
37
- examples/templates/auth-form.tmpl
38
- examples/templates/auth-success.tmpl
39
- examples/templates/layout.tmpl
40
- examples/templates/upload-form.tmpl
41
- examples/templates/upload-success.tmpl
42
- lib/strelka.rb
43
- lib/strelka/app.rb
44
- lib/strelka/app/auth.rb
45
- lib/strelka/app/errors.rb
46
- lib/strelka/app/filters.rb
47
- lib/strelka/app/negotiation.rb
48
- lib/strelka/app/parameters.rb
49
- lib/strelka/app/restresources.rb
50
- lib/strelka/app/routing.rb
51
- lib/strelka/app/sessions.rb
52
- lib/strelka/app/templating.rb
53
- lib/strelka/authprovider.rb
54
- lib/strelka/authprovider/basic.rb
55
- lib/strelka/authprovider/hostaccess.rb
56
- lib/strelka/behavior/plugin.rb
57
- lib/strelka/cli.rb
58
- lib/strelka/command/config.rb
59
- lib/strelka/command/discover.rb
60
- lib/strelka/command/start.rb
61
- lib/strelka/constants.rb
62
- lib/strelka/cookie.rb
63
- lib/strelka/cookieset.rb
64
- lib/strelka/discovery.rb
65
- lib/strelka/exceptions.rb
66
- lib/strelka/httprequest.rb
67
- lib/strelka/httprequest/acceptparams.rb
68
- lib/strelka/httprequest/auth.rb
69
- lib/strelka/httprequest/negotiation.rb
70
- lib/strelka/httprequest/session.rb
71
- lib/strelka/httpresponse.rb
72
- lib/strelka/httpresponse/negotiation.rb
73
- lib/strelka/httpresponse/session.rb
74
- lib/strelka/mixins.rb
75
- lib/strelka/multipartparser.rb
76
- lib/strelka/multirunner.rb
77
- lib/strelka/paramvalidator.rb
78
- lib/strelka/plugins.rb
79
- lib/strelka/router.rb
80
- lib/strelka/router/default.rb
81
- lib/strelka/router/exclusive.rb
82
- lib/strelka/session.rb
83
- lib/strelka/session/db.rb
84
- lib/strelka/session/default.rb
85
- lib/strelka/signal_handling.rb
86
- lib/strelka/testing.rb
87
- lib/strelka/websocketserver.rb
88
- lib/strelka/websocketserver/heartbeat.rb
89
- lib/strelka/websocketserver/routing.rb
90
- spec/constants.rb
91
- spec/data/error.tmpl
92
- spec/data/forms/2_images.form
93
- spec/data/forms/singleupload.form
94
- spec/data/forms/testform.form
95
- spec/data/forms/testform_bad.form
96
- spec/data/forms/testform_badheaders.form
97
- spec/data/forms/testform_metadataonly.form
98
- spec/data/forms/testform_msie.form
99
- spec/data/forms/testform_multivalue.form
100
- spec/data/forms/testform_truncated_metadata.form
101
- spec/data/layout.tmpl
102
- spec/data/main.tmpl
103
- spec/helpers.rb
104
- spec/strelka/app/auth_spec.rb
105
- spec/strelka/app/errors_spec.rb
106
- spec/strelka/app/filters_spec.rb
107
- spec/strelka/app/negotiation_spec.rb
108
- spec/strelka/app/parameters_spec.rb
109
- spec/strelka/app/restresources_spec.rb
110
- spec/strelka/app/routing_spec.rb
111
- spec/strelka/app/sessions_spec.rb
112
- spec/strelka/app/templating_spec.rb
113
- spec/strelka/app_spec.rb
114
- spec/strelka/authprovider/basic_spec.rb
115
- spec/strelka/authprovider/hostaccess_spec.rb
116
- spec/strelka/authprovider_spec.rb
117
- spec/strelka/cli_spec.rb
118
- spec/strelka/cookie_spec.rb
119
- spec/strelka/cookieset_spec.rb
120
- spec/strelka/discovery_spec.rb
121
- spec/strelka/exceptions_spec.rb
122
- spec/strelka/httprequest/acceptparams_spec.rb
123
- spec/strelka/httprequest/auth_spec.rb
124
- spec/strelka/httprequest/negotiation_spec.rb
125
- spec/strelka/httprequest/session_spec.rb
126
- spec/strelka/httprequest_spec.rb
127
- spec/strelka/httpresponse/negotiation_spec.rb
128
- spec/strelka/httpresponse/session_spec.rb
129
- spec/strelka/httpresponse_spec.rb
130
- spec/strelka/mixins_spec.rb
131
- spec/strelka/multipartparser_spec.rb
132
- spec/strelka/paramvalidator_spec.rb
133
- spec/strelka/plugins_spec.rb
134
- spec/strelka/router/default_spec.rb
135
- spec/strelka/router/exclusive_spec.rb
136
- spec/strelka/router_spec.rb
137
- spec/strelka/session/db_spec.rb
138
- spec/strelka/session/default_spec.rb
139
- spec/strelka/session_spec.rb
140
- spec/strelka/testing_spec.rb
141
- spec/strelka/websocketserver/heartbeat_spec.rb
142
- spec/strelka/websocketserver/routing_spec.rb
143
- spec/strelka/websocketserver_spec.rb
144
- spec/strelka_spec.rb
@@ -1,4 +0,0 @@
1
- ## 0.0.1 [<%= Time.now.strftime("%Y-%m-%d") %>] Michael Granger <ged@FaerieMUD.org>
2
-
3
- Initial release.
4
-
@@ -1,8 +0,0 @@
1
- History.rdoc
2
- README.rdoc
3
- Rakefile
4
- data/<%= file_name %>/apps/<%= file_name %>_app
5
- data/<%= file_name %>/templates/layout.tmpl
6
- data/<%= file_name %>/templates/top.tmpl
7
- lib/<%= file_name %>.rb
8
- spec/<%= file_name %>_spec.rb
@@ -1,35 +0,0 @@
1
- = <%= project %>
2
-
3
- * <%= XIF %> (url)
4
-
5
- == Description
6
-
7
- <%= XIF %> (describe your package)
8
-
9
- == Installation
10
-
11
- gem install <%= project %>
12
-
13
- == License
14
-
15
- Copyright (c) <%= Time.now.strftime("%Y") %>, <%= XIF %>
16
- All rights reserved.
17
- <%
18
-
19
- # Okay, this is admittedly super-gross, but sow is pretty inflexible
20
- # about its project templates. C'est la vie.
21
- require 'pathname'
22
- projectdir = Pathname( path ).dirname
23
- olddir = projectdir + 'data/project'
24
- datadir = projectdir + 'data' + project
25
-
26
- # Rename the datadir to match the project name
27
- mv olddir, datadir, :verbose => true
28
-
29
- # ... then change all of the paths to match before sow moves
30
- # 'em all.
31
- paths.each do |path|
32
- path.sub!( %r{/project/}, "/#{project}/" )
33
- end
34
-
35
- %>
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env rake
2
-
3
- begin
4
- require 'hoe'
5
- rescue LoadError
6
- abort "This Rakefile requires 'hoe' (gem install hoe)"
7
- end
8
-
9
- # Sign gems
10
- Hoe.plugin :signing
11
-
12
- Hoe.spec '<%= project %>' do
13
- self.readme_file = 'README.rdoc'
14
- self.history_file = 'History.rdoc'
15
- self.extra_rdoc_files = FileList[ '*.rdoc' ]
16
-
17
- self.developer '<%= XIF %>', '<%= XIF %>' # (name, email)
18
-
19
- self.dependency 'strelka', '~> 0.1'
20
- self.dependency 'rspec', '~> 2.7', :developer
21
-
22
- self.require_ruby_version( '~> 1.9' )
23
- end
24
-
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #encoding: utf-8
3
-
4
- require 'strelka'
5
-
6
-
7
- # The main <%= project %> application
8
- class <%= klass %>::Application < Strelka::App
9
-
10
- # Uncomment this if you need an appid other than
11
- # '<%= klass.gsub(/[^[:alnum:]]+/, '-').downcase %>-application'.
12
- #ID = '<%= XIF %>' # (set the app id of the main application)
13
-
14
- # Load some plugins
15
- plugins :templating, :routing
16
-
17
- # By default, responses are HTML
18
- default_type 'text/html'
19
-
20
- # Templating -- wrap everything in the layout
21
- layout 'layout.tmpl'
22
- templates \
23
- :top => 'top.tmpl'
24
-
25
-
26
- # GET request handler -- handles all GET requests
27
- get do |req|
28
- # Use the 'top' template for the body, wrapped in the 'layout' template
29
- return :top
30
- end
31
-
32
-
33
- end # class <%= klass %>::Application
34
-
35
-
36
- <%= klass %>::Application.run if __FILE__ == $0
37
-
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>
5
- <%= XIF %> (application title)
6
- </title>
7
- </head>
8
- <body>
9
- <!-- <%= XIF %> (set up the main layout template) -->
10
- <?attr body ?>
11
- </body>
12
- </html>
13
-
@@ -1,8 +0,0 @@
1
- <!-- <%= XIF %> (set up the main content template) -->
2
-
3
- <p>Your request looked this:</p>
4
-
5
- <pre><code>
6
- <?prettyprint request ?>
7
- </code></pre>
8
-
@@ -1,15 +0,0 @@
1
- # -*- ruby -*-
2
- # vim: set nosta noet ts=4 sw=4:
3
- # frozen-string-literal: true
4
-
5
- # <%= XIF %> (top-level documentation)
6
- module <%= klass %>
7
-
8
- # Library version constant
9
- VERS<%# this is just here so Hoe doesn't see this constant %>ION = '0.0.1'
10
-
11
- # Version-control revision constant
12
- REVISION = %q$Revision$
13
-
14
- end # module <%= klass %>
15
-
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env rspec -cfd -b
2
-
3
- BEGIN {
4
- require 'pathname'
5
- basedir = Pathname( __FILE__ ).dirname.parent
6
- libdir = basedir + 'lib'
7
-
8
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
9
- }
10
-
11
- require 'rspec'
12
- require '<%= file_name %>'
13
-
14
- RSpec.describe <%= klass %> do
15
-
16
- it "is well-tested" do
17
- fail "it isn't"
18
- end
19
-
20
- end
21
-
@@ -1,271 +0,0 @@
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:xlink="http://www.w3.org/1999/xlink"
11
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
- width="744.09448"
14
- height="1052.3622"
15
- id="svg2"
16
- version="1.1"
17
- inkscape:version="0.48.1 r9760"
18
- sodipodi:docname="strelka.svg">
19
- <defs
20
- id="defs4">
21
- <linearGradient
22
- id="linearGradient3937">
23
- <stop
24
- style="stop-color:#ff8080;stop-opacity:1;"
25
- offset="0"
26
- id="stop3939" />
27
- <stop
28
- style="stop-color:#9e2c21;stop-opacity:1;"
29
- offset="1"
30
- id="stop3941" />
31
- </linearGradient>
32
- <linearGradient
33
- id="linearGradient3919">
34
- <stop
35
- style="stop-color:#ffffff;stop-opacity:1;"
36
- offset="0"
37
- id="stop3921" />
38
- <stop
39
- style="stop-color:#141414;stop-opacity:1;"
40
- offset="1"
41
- id="stop3923" />
42
- </linearGradient>
43
- <radialGradient
44
- inkscape:collect="always"
45
- xlink:href="#linearGradient3919"
46
- id="radialGradient3925"
47
- cx="643.68433"
48
- cy="199.69398"
49
- fx="643.68433"
50
- fy="199.69398"
51
- r="26.376728"
52
- gradientTransform="matrix(0.66419899,0.02686069,-0.02805917,0.69383424,244.26061,-69.265837)"
53
- gradientUnits="userSpaceOnUse" />
54
- <radialGradient
55
- inkscape:collect="always"
56
- xlink:href="#linearGradient3937"
57
- id="radialGradient3943"
58
- cx="572.66656"
59
- cy="253.76654"
60
- fx="572.66656"
61
- fy="253.76654"
62
- r="16.57774"
63
- gradientTransform="matrix(-0.21951876,-0.97560828,1.3304011,-0.29934965,354.54324,891.57038)"
64
- gradientUnits="userSpaceOnUse" />
65
- </defs>
66
- <sodipodi:namedview
67
- id="base"
68
- pagecolor="#ffffff"
69
- bordercolor="#666666"
70
- borderopacity="1.0"
71
- inkscape:pageopacity="0.0"
72
- inkscape:pageshadow="2"
73
- inkscape:zoom="3.3016576"
74
- inkscape:cx="294.86424"
75
- inkscape:cy="843.35844"
76
- inkscape:document-units="px"
77
- inkscape:current-layer="layer3"
78
- showgrid="false"
79
- inkscape:window-width="1280"
80
- inkscape:window-height="752"
81
- inkscape:window-x="0"
82
- inkscape:window-y="0"
83
- inkscape:window-maximized="1"
84
- inkscape:object-paths="true"
85
- showguides="true"
86
- inkscape:guide-bbox="true"
87
- inkscape:snap-global="false" />
88
- <metadata
89
- id="metadata7">
90
- <rdf:RDF>
91
- <cc:Work
92
- rdf:about="">
93
- <dc:format>image/svg+xml</dc:format>
94
- <dc:type
95
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
96
- <dc:title />
97
- </cc:Work>
98
- </rdf:RDF>
99
- </metadata>
100
- <g
101
- inkscape:groupmode="layer"
102
- id="layer3"
103
- inkscape:label="Layer"
104
- style="display:inline">
105
- <path
106
- sodipodi:type="arc"
107
- id="path3896"
108
- sodipodi:cx="570.23114"
109
- sodipodi:cy="62.286419"
110
- sodipodi:rx="9.0913725"
111
- sodipodi:ry="14.89975"
112
- d="m 579.32251,62.286419 a 9.0913725,14.89975 0 1 1 -18.18274,0 9.0913725,14.89975 0 1 1 18.18274,0 z"
113
- transform="matrix(0.91371294,-0.44491198,0.4211509,0.96526406,22.02457,254.35102)"
114
- style="stroke-width:1.20878816;stroke-miterlimit:4;stroke-dasharray:none" />
115
- <path
116
- sodipodi:type="arc"
117
- id="path3898"
118
- sodipodi:cx="576.60773"
119
- sodipodi:cy="88.108444"
120
- sodipodi:rx="11.553619"
121
- sodipodi:ry="8.0180855"
122
- d="m 588.16135,88.108444 a 11.553619,8.0180855 0 1 1 -23.10724,0 11.553619,8.0180855 0 1 1 23.10724,0 z"
123
- transform="matrix(0.97267759,0,0,1,15.943714,-0.75761441)"
124
- style="fill:none;stroke:#000000;stroke-width:1.2674346;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
125
- <path
126
- sodipodi:type="arc"
127
- id="path3900"
128
- sodipodi:cx="576.60773"
129
- sodipodi:cy="109.95299"
130
- sodipodi:rx="10.290929"
131
- sodipodi:ry="10.796005"
132
- d="m 586.89866,109.95299 a 10.290929,10.796005 0 1 1 -20.58186,0 10.290929,10.796005 0 1 1 20.58186,0 z"
133
- transform="matrix(1.1226994,0,0,0.98830409,-71.441695,-0.50818762)"
134
- style="fill:none;stroke:#000000;stroke-width:1.18667817;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
135
- <path
136
- id="path3902"
137
- style="fill:#000000;fill-opacity:1;stroke:none"
138
- d="m 569.73682,74.660786 c 2.58041,1.502859 6.08076,61.871564 6.08076,61.871564 l 1.19102,-0.39431 c 0,0 -3.11358,-61.020555 -0.85888,-64.255171 7.61965,-10.931213 -15.78482,-2.680402 -6.4129,2.777917 z"
139
- inkscape:connector-curvature="0"
140
- sodipodi:nodetypes="sccss" />
141
- <path
142
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
143
- d="m 560.25585,128.45141 c 0,0 4.71964,7.64871 14.26841,12.2481 9.54877,4.59938 15.65737,-1.51523 14.52094,-1.13642"
144
- id="path3907"
145
- inkscape:connector-curvature="0"
146
- sodipodi:nodetypes="czc" />
147
- <path
148
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
149
- d="m 537.27489,228.45651 c 0.16835,-0.0421 0.33671,-0.0842 0,0 z"
150
- id="path4108"
151
- inkscape:connector-curvature="0" />
152
- <path
153
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
154
- d="m 534.74951,222.45002 c 0.19568,13.30165 -27.15043,48.01954 -43.81537,53.03302 -23.87464,7.18243 73.61487,36.68986 73.10979,36.81613 -0.50508,0.12627 6.27054,-25.92695 29.92576,-33.33503 4.02036,-1.25905 -59.44978,-72.12106 -59.22018,-56.51412 z"
155
- id="path4112"
156
- inkscape:connector-curvature="0"
157
- sodipodi:nodetypes="sssss" />
158
- <path
159
- style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
160
- d="m 532.23477,214.10194 c 0,0 -0.90639,58.74374 23.33639,63.70404 24.24278,4.9603 102.01791,16.81037 117.31445,12.74991 16.87803,-5.87731 19.96133,-29.11265 16.96383,-38.55085 -2.99749,-9.4382 -34.05545,-23.01043 -35.25254,-37.12754 -6.8572,-14.62825 -8.50321,-21.34168 -21.05873,-28.75263 -0.53572,0 -22.73995,-10.2185 -61.91698,-12.84926 -39.17703,-2.63076 -94.01317,3.76267 -115.27581,9.41135 -21.26264,5.64868 -40.37659,19.99027 -37.21023,33.25626 3.16637,13.266 13.15952,32.25349 34.43628,26.41896 21.27676,-5.83453 22.51967,-4.76534 30.98214,-8.57143 8.46247,-3.80609 47.6812,-19.68881 47.6812,-19.68881 z"
161
- id="path3909"
162
- inkscape:connector-curvature="0"
163
- sodipodi:nodetypes="czczcczzzzzc" />
164
- <path
165
- style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
166
- d="m 590.6867,203.83404 c -0.53163,4.27204 -0.97628,7.23948 -0.92862,10.85839 0.0477,3.61891 1.60955,10.50552 1.68624,10.60736"
167
- id="path3911"
168
- inkscape:connector-curvature="0"
169
- sodipodi:nodetypes="czc" />
170
- <path
171
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
172
- d="m 532.47666,214.06184 15.40483,-3.03046"
173
- id="path3913"
174
- inkscape:connector-curvature="0" />
175
- <path
176
- style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.25000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
177
- d="m 683.21429,246.82647 c -11.25,-4.82143 -28.57142,-8.39286 -35.17857,-7.32143 -6.60715,1.07143 -15.72779,4.01586 -16.25,11.78571 -0.52222,7.76984 11.18981,14.4226 19.28571,18.39286 8.0959,3.97026 12.37049,7.98254 27.14286,4.10714 14.77237,-3.8754 16.24999,-22.14285 5,-26.96428 z"
178
- id="path3915"
179
- inkscape:connector-curvature="0"
180
- sodipodi:nodetypes="zzzzzz" />
181
- <path
182
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
183
- d="m 579.32249,244.99776 c -0.50508,1.01015 0.0526,6.42334 8.58629,20.70813 8.53364,14.28479 35.35534,22.60216 35.35534,22.60216"
184
- id="path4067"
185
- inkscape:connector-curvature="0"
186
- sodipodi:nodetypes="czc" />
187
- <path
188
- style="fill:url(#radialGradient3943);fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
189
- d="m 579.06995,245.62911 c 0,0 -7.46174,5.73221 -13.83536,12.40405 -6.37362,6.67185 -11.73413,13.98618 -7.75665,16.25902 12.92698,4.03408 30.91885,-8.23642 30.53408,-8.86531 -9.15139,-14.95734 -8.94207,-19.79776 -8.94207,-19.79776 z"
190
- id="path4072"
191
- inkscape:connector-curvature="0"
192
- sodipodi:nodetypes="cscsc" />
193
- <path
194
- style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
195
- d="m 581.59533,254.97302 c -7.51966,8.41071 -11.57804,9.94587 -19.44543,12.6269"
196
- id="path4074"
197
- inkscape:connector-curvature="0"
198
- sodipodi:nodetypes="cc" />
199
- <path
200
- style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.96467054px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
201
- d="M 557.12063,312.85208 665.85532,390.1347 654.33511,401.54412 549.8447,329.64328 z"
202
- id="path3895"
203
- inkscape:connector-curvature="0" />
204
- <path
205
- style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
206
- d="m 300.77017,296.43657 c 0,0 -49.75287,13.43154 -82.81451,27.24446 -33.06163,13.81291 -79.78733,31.56898 -79.78733,31.56898 l 24.00107,34.81236 126.92458,-52.97534 z"
207
- id="path3897"
208
- inkscape:connector-curvature="0"
209
- sodipodi:nodetypes="czcccc" />
210
- <path
211
- style="fill:#3d271a;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
212
- d="m 394.20933,390.58552 7.28168,-5.56835 2.14167,-20.13172 -10.28002,-2.14167 z"
213
- id="path3866"
214
- inkscape:connector-curvature="0"
215
- sodipodi:nodetypes="ccccc" />
216
- <path
217
- style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
218
- d="m 484.46429,273.4348 c -14.63542,-4.82636 -67.39113,4.75904 -95.09357,0.19905 -27.70244,-4.56 -86.18275,-8.49499 -107.79178,-13.25236 -21.60902,-4.75738 -103.90037,-25.16217 -103.90037,-25.16217 0,0 32.99811,27.96471 78.54425,34.77131 45.54613,6.80659 58.21399,12.42571 58.21399,12.42571 0,0 -16.15923,7.29173 -21.83438,16.21385 -5.38464,8.4654 -9.40644,22.03369 -20.65885,29.27751 -11.2524,7.24382 -93.41543,58.7575 -93.41543,58.7575 l 14.37635,27.41709 c 0,0 10.24113,2.27417 27.98011,-6.04897 35.67946,-16.74083 84.41138,-42.47894 101.83012,-48.68351 17.41874,-6.20456 94.96156,18.76948 135.14241,16.40523 40.18085,-2.36425 78.95426,-13.59827 78.95426,-13.59827 34.98825,23.80756 73.61719,52.25454 116.04574,66.63398 l 16.25,-27.67857 c 0,0 -70.0884,-33.7097 -89.46428,-52.14286 -19.37588,-18.43316 -14.84231,-34.35619 -31.07143,-47.67857 -16.22912,-13.32238 -49.47172,-23.0296 -64.10714,-27.85595 z"
219
- id="path3065"
220
- inkscape:connector-curvature="0"
221
- sodipodi:nodetypes="zzzczcszccszzccczzz" />
222
- <path
223
- style="fill:#3d271a;fill-opacity:1;stroke:#000000;stroke-width:0.84452623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
224
- d="m 387.94677,236.03454 4.88883,-1.12419 0.3492,-7.11984 -7.33324,-3.37255 z"
225
- id="path3868"
226
- inkscape:connector-curvature="0" />
227
- <path
228
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
229
- d="M 268.99401,183.27167 C 258.75758,151.63695 142.93412,127.96398 63.821827,83.041411 110.34754,108.51692 187.41814,236.19075 227.87391,234.24346 c 40.45577,-1.94728 58.89251,0.50794 58.89251,0.50794 0,0 -7.53598,-19.84502 -17.77241,-51.47973 z"
230
- id="path3876"
231
- inkscape:connector-curvature="0"
232
- sodipodi:nodetypes="zczcz" />
233
- <path
234
- style="fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
235
- d="m 317.82413,259.94352 -43.69011,-20.13171 13.7067,-17.56171 29.55508,17.56171 z"
236
- id="path3872"
237
- inkscape:connector-curvature="0" />
238
- <path
239
- style="fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
240
- d="m 320.39414,263.79853 -10.70836,-5.14001 -2.14167,-28.6984 10.28002,3.85501 z"
241
- id="path3874"
242
- inkscape:connector-curvature="0" />
243
- <path
244
- style="fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
245
- d="m 307.97244,209.40006 13.27837,83.09688 113.93695,-2.57001 -2.14167,-47.97345 z"
246
- id="path3862"
247
- inkscape:connector-curvature="0" />
248
- <path
249
- style="fill:#5f462d;fill-opacity:1;stroke:#52322c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
250
- d="m 367.93926,382.44717 c 0.90591,9.94205 27.18401,8.56668 27.18401,8.56668 L 388.49931,223.5351 c 0,0 -38.95911,-16.19348 -37.66299,-2.22777 5.80066,62.50229 12.5534,111.2104 17.10294,161.13984 z"
251
- id="path3864"
252
- inkscape:connector-curvature="0"
253
- sodipodi:nodetypes="sccss" />
254
- <path
255
- sodipodi:type="arc"
256
- style="fill:#a0ffff;stroke:#00bdff;stroke-width:1.25000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1;opacity:0.30172414"
257
- id="path3899"
258
- sodipodi:cx="522.83411"
259
- sodipodi:cy="199.99983"
260
- sodipodi:rx="173.41315"
261
- sodipodi:ry="100.3288"
262
- d="m 696.24725,199.99983 a 173.41315,100.3288 0 1 1 -346.82629,0 173.41315,100.3288 0 1 1 346.82629,0 z"
263
- transform="matrix(0.93729124,0.28423513,-0.30190829,0.88242393,132.521,-109.74059)" />
264
- <path
265
- style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.01773787px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
266
- d="m 497.71322,271.7957 67.05986,38.04304 0.15125,16.86059 -103.05703,-54.47132 z"
267
- id="path3945"
268
- inkscape:connector-curvature="0"
269
- sodipodi:nodetypes="ccccc" />
270
- </g>
271
- </svg>