opal-up 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +209 -0
- data/README.md +81 -28
- data/bin/up_ruby +4 -0
- data/bin/up_ruby_cluster +4 -0
- data/ext/up_ext/App.h +606 -0
- data/ext/up_ext/AsyncSocket.h +355 -0
- data/ext/up_ext/AsyncSocketData.h +87 -0
- data/ext/up_ext/BloomFilter.h +83 -0
- data/ext/up_ext/ChunkedEncoding.h +236 -0
- data/ext/up_ext/ClientApp.h +36 -0
- data/ext/up_ext/HttpContext.h +502 -0
- data/ext/up_ext/HttpContextData.h +56 -0
- data/ext/up_ext/HttpErrors.h +53 -0
- data/ext/up_ext/HttpParser.h +680 -0
- data/ext/up_ext/HttpResponse.h +578 -0
- data/ext/up_ext/HttpResponseData.h +95 -0
- data/ext/up_ext/HttpRouter.h +380 -0
- data/ext/up_ext/Loop.h +204 -0
- data/ext/up_ext/LoopData.h +112 -0
- data/ext/up_ext/MoveOnlyFunction.h +377 -0
- data/ext/up_ext/PerMessageDeflate.h +315 -0
- data/ext/up_ext/ProxyParser.h +163 -0
- data/ext/up_ext/QueryParser.h +120 -0
- data/ext/up_ext/TopicTree.h +363 -0
- data/ext/up_ext/Utilities.h +66 -0
- data/ext/up_ext/WebSocket.h +381 -0
- data/ext/up_ext/WebSocketContext.h +434 -0
- data/ext/up_ext/WebSocketContextData.h +109 -0
- data/ext/up_ext/WebSocketData.h +86 -0
- data/ext/up_ext/WebSocketExtensions.h +256 -0
- data/ext/up_ext/WebSocketHandshake.h +145 -0
- data/ext/up_ext/WebSocketProtocol.h +506 -0
- data/ext/up_ext/bsd.c +767 -0
- data/ext/up_ext/bsd.h +109 -0
- data/ext/up_ext/context.c +524 -0
- data/ext/up_ext/epoll_kqueue.c +458 -0
- data/ext/up_ext/epoll_kqueue.h +67 -0
- data/ext/up_ext/extconf.rb +5 -0
- data/ext/up_ext/internal.h +224 -0
- data/ext/up_ext/libusockets.h +350 -0
- data/ext/up_ext/libuwebsockets.cpp +1374 -0
- data/ext/up_ext/libuwebsockets.h +260 -0
- data/ext/up_ext/loop.c +386 -0
- data/ext/up_ext/loop_data.h +38 -0
- data/ext/up_ext/socket.c +231 -0
- data/ext/up_ext/up_ext.c +278 -0
- data/lib/up/node/rack_env.rb +2 -2
- data/lib/up/ruby/cluster_cli.rb +10 -0
- data/lib/up/ruby/rack_cluster.rb +26 -0
- data/lib/up/ruby/rack_env.rb +97 -0
- data/lib/up/ruby/rack_server.rb +26 -0
- data/lib/up/ruby/server_cli.rb +10 -0
- data/lib/up/u_web_socket/rack_env.rb +1 -1
- data/lib/up/version.rb +1 -1
- metadata +71 -18
- data/.gitignore +0 -5
- data/Gemfile +0 -2
- data/example_rack_app/Gemfile +0 -3
- data/example_rack_app/config.ru +0 -6
- data/example_rack_app/rack_app.rb +0 -5
- data/example_roda_app/Gemfile +0 -6
- data/example_roda_app/config.ru +0 -6
- data/example_roda_app/roda_app.rb +0 -37
- data/example_sinatra_app/Gemfile +0 -6
- data/example_sinatra_app/config.ru +0 -6
- data/example_sinatra_app/sinatra_app.rb +0 -7
- data/opal-up.gemspec +0 -27
- data/up_logo.svg +0 -256
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'up/ruby/rack_env'
|
2
|
+
require 'up_ext'
|
3
|
+
|
4
|
+
module Up
|
5
|
+
module Ruby
|
6
|
+
module RackServer
|
7
|
+
def self.run(app, options = {})
|
8
|
+
raise "already running" if @server
|
9
|
+
@server = Up::Ruby::Server.new(app: app, **options).listen
|
10
|
+
true
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.shutdown
|
14
|
+
@server&.stop
|
15
|
+
@server = nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
ENV['RACK_HANDLER'] ||= 'up'
|
22
|
+
|
23
|
+
begin
|
24
|
+
::Rackup::Handler.register('up', Up::Ruby::RackServer) if defined?(::Rackup::Handler)
|
25
|
+
rescue StandardError
|
26
|
+
end
|
data/lib/up/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger
|
@@ -92,6 +92,20 @@ dependencies:
|
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 13.1.0
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: rake-compiler
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.2.7
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.2.7
|
95
109
|
- !ruby/object:Gem::Dependency
|
96
110
|
name: rspec
|
97
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,7 +120,7 @@ dependencies:
|
|
106
120
|
- - "~>"
|
107
121
|
- !ruby/object:Gem::Version
|
108
122
|
version: 3.12.0
|
109
|
-
description: High performance Rack server for Opal Ruby
|
123
|
+
description: High performance Rack server for Opal and Ruby
|
110
124
|
email:
|
111
125
|
- jan@kursator.de
|
112
126
|
executables:
|
@@ -115,11 +129,12 @@ executables:
|
|
115
129
|
- up_cluster
|
116
130
|
- up_node
|
117
131
|
- up_node_cluster
|
118
|
-
|
132
|
+
- up_ruby
|
133
|
+
- up_ruby_cluster
|
134
|
+
extensions:
|
135
|
+
- ext/up_ext/extconf.rb
|
119
136
|
extra_rdoc_files: []
|
120
137
|
files:
|
121
|
-
- ".gitignore"
|
122
|
-
- Gemfile
|
123
138
|
- LICENSE
|
124
139
|
- README.md
|
125
140
|
- bin/up
|
@@ -127,15 +142,50 @@ files:
|
|
127
142
|
- bin/up_cluster
|
128
143
|
- bin/up_node
|
129
144
|
- bin/up_node_cluster
|
130
|
-
-
|
131
|
-
-
|
132
|
-
-
|
133
|
-
-
|
134
|
-
-
|
135
|
-
-
|
136
|
-
-
|
137
|
-
-
|
138
|
-
-
|
145
|
+
- bin/up_ruby
|
146
|
+
- bin/up_ruby_cluster
|
147
|
+
- ext/up_ext/App.h
|
148
|
+
- ext/up_ext/AsyncSocket.h
|
149
|
+
- ext/up_ext/AsyncSocketData.h
|
150
|
+
- ext/up_ext/BloomFilter.h
|
151
|
+
- ext/up_ext/ChunkedEncoding.h
|
152
|
+
- ext/up_ext/ClientApp.h
|
153
|
+
- ext/up_ext/HttpContext.h
|
154
|
+
- ext/up_ext/HttpContextData.h
|
155
|
+
- ext/up_ext/HttpErrors.h
|
156
|
+
- ext/up_ext/HttpParser.h
|
157
|
+
- ext/up_ext/HttpResponse.h
|
158
|
+
- ext/up_ext/HttpResponseData.h
|
159
|
+
- ext/up_ext/HttpRouter.h
|
160
|
+
- ext/up_ext/Loop.h
|
161
|
+
- ext/up_ext/LoopData.h
|
162
|
+
- ext/up_ext/MoveOnlyFunction.h
|
163
|
+
- ext/up_ext/PerMessageDeflate.h
|
164
|
+
- ext/up_ext/ProxyParser.h
|
165
|
+
- ext/up_ext/QueryParser.h
|
166
|
+
- ext/up_ext/TopicTree.h
|
167
|
+
- ext/up_ext/Utilities.h
|
168
|
+
- ext/up_ext/WebSocket.h
|
169
|
+
- ext/up_ext/WebSocketContext.h
|
170
|
+
- ext/up_ext/WebSocketContextData.h
|
171
|
+
- ext/up_ext/WebSocketData.h
|
172
|
+
- ext/up_ext/WebSocketExtensions.h
|
173
|
+
- ext/up_ext/WebSocketHandshake.h
|
174
|
+
- ext/up_ext/WebSocketProtocol.h
|
175
|
+
- ext/up_ext/bsd.c
|
176
|
+
- ext/up_ext/bsd.h
|
177
|
+
- ext/up_ext/context.c
|
178
|
+
- ext/up_ext/epoll_kqueue.c
|
179
|
+
- ext/up_ext/epoll_kqueue.h
|
180
|
+
- ext/up_ext/extconf.rb
|
181
|
+
- ext/up_ext/internal.h
|
182
|
+
- ext/up_ext/libusockets.h
|
183
|
+
- ext/up_ext/libuwebsockets.cpp
|
184
|
+
- ext/up_ext/libuwebsockets.h
|
185
|
+
- ext/up_ext/loop.c
|
186
|
+
- ext/up_ext/loop_data.h
|
187
|
+
- ext/up_ext/socket.c
|
188
|
+
- ext/up_ext/up_ext.c
|
139
189
|
- lib/up/bun/rack_env.rb
|
140
190
|
- lib/up/bun/rack_server.rb
|
141
191
|
- lib/up/bun/server.rb
|
@@ -149,6 +199,11 @@ files:
|
|
149
199
|
- lib/up/node/server.rb
|
150
200
|
- lib/up/node/server_cli.rb
|
151
201
|
- lib/up/rack_builder_patch.rb
|
202
|
+
- lib/up/ruby/cluster_cli.rb
|
203
|
+
- lib/up/ruby/rack_cluster.rb
|
204
|
+
- lib/up/ruby/rack_env.rb
|
205
|
+
- lib/up/ruby/rack_server.rb
|
206
|
+
- lib/up/ruby/server_cli.rb
|
152
207
|
- lib/up/u_web_socket/cluster.rb
|
153
208
|
- lib/up/u_web_socket/cluster_cli.rb
|
154
209
|
- lib/up/u_web_socket/rack_cluster.rb
|
@@ -157,8 +212,6 @@ files:
|
|
157
212
|
- lib/up/u_web_socket/server.rb
|
158
213
|
- lib/up/u_web_socket/server_cli.rb
|
159
214
|
- lib/up/version.rb
|
160
|
-
- opal-up.gemspec
|
161
|
-
- up_logo.svg
|
162
215
|
homepage: ''
|
163
216
|
licenses:
|
164
217
|
- MIT
|
@@ -171,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
171
224
|
requirements:
|
172
225
|
- - ">="
|
173
226
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
227
|
+
version: 3.0.0
|
175
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
229
|
requirements:
|
177
230
|
- - ">="
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/example_rack_app/Gemfile
DELETED
data/example_rack_app/config.ru
DELETED
data/example_roda_app/Gemfile
DELETED
data/example_roda_app/config.ru
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require "roda"
|
2
|
-
|
3
|
-
class RodaApp < Roda
|
4
|
-
STDERR.puts "executing route"
|
5
|
-
route do |r|
|
6
|
-
STDERR.puts r
|
7
|
-
# GET / request
|
8
|
-
r.root do
|
9
|
-
r.redirect "/hello"
|
10
|
-
end
|
11
|
-
|
12
|
-
# /hello branch
|
13
|
-
r.on "hello" do
|
14
|
-
# Set variable for all routes in /hello branch
|
15
|
-
@greeting = 'Hello'
|
16
|
-
|
17
|
-
# GET /hello/world request
|
18
|
-
r.get "world" do
|
19
|
-
"#{@greeting} world!"
|
20
|
-
end
|
21
|
-
|
22
|
-
# /hello request
|
23
|
-
r.is do
|
24
|
-
# GET /hello request
|
25
|
-
r.get do
|
26
|
-
"#{@greeting}!"
|
27
|
-
end
|
28
|
-
|
29
|
-
# POST /hello request
|
30
|
-
r.post do
|
31
|
-
puts "Someone said #{@greeting}!"
|
32
|
-
r.redirect
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/example_sinatra_app/Gemfile
DELETED
data/opal-up.gemspec
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
lib = File.expand_path('lib', __dir__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require_relative 'lib/up/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'opal-up'
|
7
|
-
spec.version = Up::VERSION
|
8
|
-
spec.authors = ['Jan Biedermann']
|
9
|
-
spec.email = ['jan@kursator.de']
|
10
|
-
|
11
|
-
spec.summary = 'Rack server for Opal'
|
12
|
-
spec.description = 'High performance Rack server for Opal Ruby'
|
13
|
-
spec.homepage = ''
|
14
|
-
spec.license = 'MIT'
|
15
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test_app|test|spec|features)/}) }
|
16
|
-
spec.bindir = 'bin'
|
17
|
-
spec.executables = %w[up up_bun up_cluster up_node up_node_cluster]
|
18
|
-
spec.require_paths = %w[lib]
|
19
|
-
|
20
|
-
spec.add_dependency 'logger', '~> 1.6.0'
|
21
|
-
spec.add_dependency 'opal', '>= 1.8.2', '< 3.0.0'
|
22
|
-
spec.add_dependency 'rack', '~> 3.0.9'
|
23
|
-
spec.add_dependency 'rackup', '>= 0.2.2', '< 3.0.0'
|
24
|
-
|
25
|
-
spec.add_development_dependency 'rake', '~> 13.1.0'
|
26
|
-
spec.add_development_dependency 'rspec', '~> 3.12.0'
|
27
|
-
end
|
data/up_logo.svg
DELETED
@@ -1,256 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<!-- Generator: Adobe Illustrator 27.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
-
|
4
|
-
<svg
|
5
|
-
version="1.1"
|
6
|
-
id="Capa_1"
|
7
|
-
x="0px"
|
8
|
-
y="0px"
|
9
|
-
viewBox="0 0 799.92104 945.28792"
|
10
|
-
xml:space="preserve"
|
11
|
-
width="799.92102"
|
12
|
-
height="945.2879"
|
13
|
-
xmlns="http://www.w3.org/2000/svg"
|
14
|
-
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
15
|
-
id="defs65"><rect
|
16
|
-
x="222.77943"
|
17
|
-
y="327.29486"
|
18
|
-
width="357.86758"
|
19
|
-
height="243.77267"
|
20
|
-
id="rect66" /><rect
|
21
|
-
x="27.871536"
|
22
|
-
y="730.54065"
|
23
|
-
width="778.40509"
|
24
|
-
height="77.992775"
|
25
|
-
id="rect65" /></defs>
|
26
|
-
<rect
|
27
|
-
y="0"
|
28
|
-
style="clip-rule:evenodd;fill:#a0dbfa;fill-rule:evenodd;stroke-width:1.08707"
|
29
|
-
width="799.91998"
|
30
|
-
height="945.2879"
|
31
|
-
id="rect1"
|
32
|
-
x="0.001" />
|
33
|
-
<polygon
|
34
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
35
|
-
points="658.991,136.939 654.959,136.939 654.959,377.684 646.655,377.684 646.655,136.939 642.378,136.939 650.684,125.153 "
|
36
|
-
id="polygon1"
|
37
|
-
transform="translate(0.001,145.36792)" />
|
38
|
-
<path
|
39
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
40
|
-
d="m 51.406,361.61492 -10.996,-15.601 -11.853,16.817 v -77.905 H 43.49 l -28.997,-41.142 -14.492,20.562 v 680.942 c 287.066,0 608.08,0 799.92,0 v -667.871 l -23.525,33.38 h 13.71 v 49.736 l -9.558,-13.56 -8.285,11.756 v -97.417 h 14.933 l -28.997,-41.143 -28.998,41.143 h 14.075 v 32.453 l -6.645,-9.426 -19.901,28.237 h 9.66 v 31.023 l -11.389,-16.159 -12.573,17.839 v -58.049 h 14.933 l -28.997,-41.143 -28.997,41.143 h 14.075 v 48.193 l -11.716,-16.623 -28.996,41.143 h 14.074 v 33.128 l -10.901,-15.468 -12.667,17.972 v -82.428 h 14.933 l -28.997,-41.143 -28.997,41.143 h 14.075 v 23.414 l -10.996,-15.601 -11.853,16.818 v -77.905 h 14.933 l -28.997,-41.143 -28.997,41.143 h 14.075 v 48.954 l -9.197,-13.05 -28.244,40.074 h 13.709 v 49.736 l -9.557,-13.56 -8.285,11.756 v -97.417 h 14.932 l -28.997,-41.142 -28.996,41.142 h 14.074 v 32.453 l -6.643,-9.426 -19.901,28.237 h 9.66 v 31.023 l -11.389,-16.159 -12.573,17.839 v -58.049 h 14.933 l -28.997,-41.142 -28.997,41.142 h 14.075 v 48.193 l -11.716,-16.623 -28.997,41.142 h 14.075 v 29.21 l -11.853,-16.817 -11.715,16.623 v -75.811 h 14.932 l -28.997,-41.142 -28.996,41.142 h 14.075 v 23.414 l -10.996,-15.601 -11.853,16.817 v -77.905 h 14.932 l -28.997,-41.143 -28.997,41.143 h 14.075 v 23.9 l -9.197,-13.05 -28.244,40.074 h 13.71 v 49.736 l -9.557,-13.56 -8.286,11.756 v -137.781 h 14.933 l -28.997,-41.142 -28.996,41.142 h 14.075 v 72.818 l -6.644,-9.426 -19.902,28.237 h 9.66 v 31.023 l -11.389,-16.159 -12.573,17.839 v -58.049 h 14.933 l -28.997,-41.142 -28.996,41.142 h 14.075 v 48.193 l -11.715,-16.623 -28.997,41.142 h 14.075 v 22.63 l -12.349,-17.521 -11.22,15.92 v -67.824 h 14.933 l -28.997,-41.142 -29.001,41.143 h 14.075 z"
|
41
|
-
id="path1" />
|
42
|
-
<polygon
|
43
|
-
style="clip-rule:evenodd;fill:#0073a2;fill-rule:evenodd"
|
44
|
-
points="154.962,396.856 130.926,396.856 130.926,784.116 81.428,784.116 81.428,396.856 55.928,396.856 105.445,326.598 "
|
45
|
-
id="polygon2"
|
46
|
-
transform="translate(0.001,145.36792)" />
|
47
|
-
<polygon
|
48
|
-
style="clip-rule:evenodd;fill:#f4b200;fill-rule:evenodd"
|
49
|
-
points="114.003,487.786 89.967,487.786 89.967,784.116 40.468,784.116 40.468,487.786 14.968,487.786 64.485,417.528 "
|
50
|
-
id="polygon3"
|
51
|
-
transform="translate(0.001,145.36792)" />
|
52
|
-
<polygon
|
53
|
-
style="clip-rule:evenodd;fill:#e95818;fill-rule:evenodd"
|
54
|
-
points="89.967,487.786 89.967,784.116 81.428,784.116 81.428,441.566 114.003,487.786 "
|
55
|
-
id="polygon4"
|
56
|
-
transform="translate(0.001,145.36792)" />
|
57
|
-
<polygon
|
58
|
-
style="clip-rule:evenodd;fill:#dd0031;fill-rule:evenodd"
|
59
|
-
points="195.102,525.469 171.067,525.469 171.067,784.116 121.568,784.116 121.568,525.469 96.068,525.469 145.585,455.211 "
|
60
|
-
id="polygon5"
|
61
|
-
transform="translate(0.001,145.36792)" />
|
62
|
-
<polygon
|
63
|
-
style="clip-rule:evenodd;fill:#6f3969;fill-rule:evenodd"
|
64
|
-
points="130.926,784.116 121.568,784.116 121.568,525.469 96.068,525.469 130.926,476.01 "
|
65
|
-
id="polygon6"
|
66
|
-
transform="translate(0.001,145.36792)" />
|
67
|
-
<polygon
|
68
|
-
style="clip-rule:evenodd;fill:#a1ba24;fill-rule:evenodd"
|
69
|
-
points="236.166,307.834 212.13,307.834 212.13,784.116 162.631,784.116 162.631,307.834 137.132,307.834 186.649,237.576 "
|
70
|
-
id="polygon7"
|
71
|
-
transform="translate(0.001,145.36792)" />
|
72
|
-
<polygon
|
73
|
-
style="clip-rule:evenodd;fill:#bf5c2a;fill-rule:evenodd"
|
74
|
-
points="171.067,525.469 171.067,784.116 162.631,784.116 162.631,479.396 195.102,525.469 "
|
75
|
-
id="polygon8"
|
76
|
-
transform="translate(0.001,145.36792)" />
|
77
|
-
<polygon
|
78
|
-
style="clip-rule:evenodd;fill:#801d88;fill-rule:evenodd"
|
79
|
-
points="277.229,222.627 253.193,222.627 253.193,784.116 203.694,784.116 203.694,222.627 178.195,222.627 227.712,152.37 "
|
80
|
-
id="polygon9"
|
81
|
-
transform="translate(0.001,145.36792)" />
|
82
|
-
<polygon
|
83
|
-
style="clip-rule:evenodd;fill:#916c56;fill-rule:evenodd"
|
84
|
-
points="212.13,307.834 212.13,784.116 203.694,784.116 203.694,261.761 236.166,307.834 "
|
85
|
-
id="polygon10"
|
86
|
-
transform="translate(0.001,145.36792)" />
|
87
|
-
<polygon
|
88
|
-
style="clip-rule:evenodd;fill:#ed6500;fill-rule:evenodd"
|
89
|
-
points="319.225,360.012 295.189,360.012 295.189,784.116 245.69,784.116 245.69,360.012 220.19,360.012 269.707,289.754 "
|
90
|
-
id="polygon11"
|
91
|
-
transform="translate(0.001,145.36792)" />
|
92
|
-
<polygon
|
93
|
-
style="clip-rule:evenodd;fill:#b74144;fill-rule:evenodd"
|
94
|
-
points="253.193,784.116 245.69,784.116 245.69,360.012 220.19,360.012 253.193,313.185 "
|
95
|
-
id="polygon12"
|
96
|
-
transform="translate(0.001,145.36792)" />
|
97
|
-
<polygon
|
98
|
-
style="clip-rule:evenodd;fill:#0073a2;fill-rule:evenodd"
|
99
|
-
points="360.754,438.811 336.719,438.811 336.719,784.116 287.22,784.116 287.22,438.811 261.72,438.811 311.237,368.553 "
|
100
|
-
id="polygon13"
|
101
|
-
transform="translate(0.001,145.36792)" />
|
102
|
-
<polygon
|
103
|
-
style="clip-rule:evenodd;fill:#766c51;fill-rule:evenodd"
|
104
|
-
points="287.22,784.116 287.22,438.811 261.72,438.811 295.189,391.323 295.189,784.116 "
|
105
|
-
id="polygon14"
|
106
|
-
transform="translate(0.001,145.36792)" />
|
107
|
-
<polygon
|
108
|
-
style="clip-rule:evenodd;fill:#f4b200;fill-rule:evenodd"
|
109
|
-
points="402.284,289.731 378.248,289.731 378.248,784.116 328.749,784.116 328.749,289.731 303.249,289.731 352.767,219.473 "
|
110
|
-
id="polygon15"
|
111
|
-
transform="translate(0.001,145.36792)" />
|
112
|
-
<polygon
|
113
|
-
style="clip-rule:evenodd;fill:#7a9350;fill-rule:evenodd"
|
114
|
-
points="336.719,438.811 336.719,784.116 328.749,784.116 328.749,393.4 360.754,438.811 "
|
115
|
-
id="polygon16"
|
116
|
-
transform="translate(0.001,145.36792)" />
|
117
|
-
<polygon
|
118
|
-
style="clip-rule:evenodd;fill:#c5007e;fill-rule:evenodd"
|
119
|
-
points="443.813,385.568 419.777,385.568 419.777,784.116 370.278,784.116 370.278,385.568 344.779,385.568 394.296,315.311 "
|
120
|
-
id="polygon17"
|
121
|
-
transform="translate(0.001,145.36792)" />
|
122
|
-
<polygon
|
123
|
-
style="clip-rule:evenodd;fill:#dd593e;fill-rule:evenodd"
|
124
|
-
points="378.248,784.116 370.278,784.116 370.278,385.568 344.779,385.568 378.248,338.08 "
|
125
|
-
id="polygon18"
|
126
|
-
transform="translate(0.001,145.36792)" />
|
127
|
-
<polygon
|
128
|
-
style="clip-rule:evenodd;fill:#801d88;fill-rule:evenodd"
|
129
|
-
points="462.372,784.116 412.873,784.116 412.873,494.185 387.373,494.185 436.891,423.926 486.407,494.185 462.372,494.185 "
|
130
|
-
id="polygon19"
|
131
|
-
transform="translate(0.001,145.36792)" />
|
132
|
-
<polygon
|
133
|
-
style="clip-rule:evenodd;fill:#a30e83;fill-rule:evenodd"
|
134
|
-
points="419.777,784.116 412.873,784.116 412.873,494.185 387.373,494.185 419.777,448.207 "
|
135
|
-
id="polygon20"
|
136
|
-
transform="translate(0.001,145.36792)" />
|
137
|
-
<polygon
|
138
|
-
style="clip-rule:evenodd;fill:#dd0031;fill-rule:evenodd"
|
139
|
-
points="530.066,585.762 506.03,585.762 506.03,784.116 456.532,784.116 456.532,585.762 431.032,585.762 480.55,515.504 "
|
140
|
-
id="polygon21"
|
141
|
-
transform="translate(0.001,145.36792)" />
|
142
|
-
<polygon
|
143
|
-
style="clip-rule:evenodd;fill:#af0e5c;fill-rule:evenodd"
|
144
|
-
points="456.532,784.116 456.532,585.762 431.032,585.762 462.372,541.295 462.372,784.116 "
|
145
|
-
id="polygon22"
|
146
|
-
transform="translate(0.001,145.36792)" />
|
147
|
-
<polygon
|
148
|
-
style="clip-rule:evenodd;fill:#ed6500;fill-rule:evenodd"
|
149
|
-
points="572.661,424.968 548.625,424.968 548.625,784.116 499.126,784.116 499.126,424.968 473.627,424.968 523.144,354.71 "
|
150
|
-
id="polygon23"
|
151
|
-
transform="translate(0.001,145.36792)" />
|
152
|
-
<polygon
|
153
|
-
style="clip-rule:evenodd;fill:#e53218;fill-rule:evenodd"
|
154
|
-
points="506.03,585.762 506.03,784.116 499.126,784.116 499.126,541.861 530.066,585.762 "
|
155
|
-
id="polygon24"
|
156
|
-
transform="translate(0.001,145.36792)" />
|
157
|
-
<polygon
|
158
|
-
style="clip-rule:evenodd;fill:#0073a2;fill-rule:evenodd"
|
159
|
-
points="615.255,327.001 591.22,327.001 591.22,784.116 541.721,784.116 541.721,327.001 516.221,327.001 565.738,256.743 "
|
160
|
-
id="polygon25"
|
161
|
-
transform="translate(0.001,145.36792)" />
|
162
|
-
<polygon
|
163
|
-
style="clip-rule:evenodd;fill:#766c51;fill-rule:evenodd"
|
164
|
-
points="548.625,424.968 548.625,784.116 541.721,784.116 541.721,381.068 572.661,424.968 "
|
165
|
-
id="polygon26"
|
166
|
-
transform="translate(0.001,145.36792)" />
|
167
|
-
<polygon
|
168
|
-
style="clip-rule:evenodd;fill:#f4b200;fill-rule:evenodd"
|
169
|
-
points="657.85,472.887 633.813,472.887 633.813,784.116 584.315,784.116 584.315,472.887 558.815,472.887 608.332,402.629 "
|
170
|
-
id="polygon27"
|
171
|
-
transform="translate(0.001,145.36792)" />
|
172
|
-
<polygon
|
173
|
-
style="clip-rule:evenodd;fill:#7a9350;fill-rule:evenodd"
|
174
|
-
points="584.315,784.116 584.315,472.887 558.815,472.887 591.22,426.909 591.22,784.116 "
|
175
|
-
id="polygon28"
|
176
|
-
transform="translate(0.001,145.36792)" />
|
177
|
-
<polygon
|
178
|
-
style="clip-rule:evenodd;fill:#801d88;fill-rule:evenodd"
|
179
|
-
points="701.509,571.919 677.473,571.919 677.473,784.116 627.974,784.116 627.974,571.919 602.475,571.919 651.991,501.66 "
|
180
|
-
id="polygon29"
|
181
|
-
transform="translate(0.001,145.36792)" />
|
182
|
-
<polygon
|
183
|
-
style="clip-rule:evenodd;fill:#ba6744;fill-rule:evenodd"
|
184
|
-
points="633.813,784.116 627.974,784.116 627.974,571.919 602.475,571.919 633.813,527.452 "
|
185
|
-
id="polygon30"
|
186
|
-
transform="translate(0.001,145.36792)" />
|
187
|
-
<polygon
|
188
|
-
style="clip-rule:evenodd;fill:#a1ba24;fill-rule:evenodd"
|
189
|
-
points="744.102,399.412 720.067,399.412 720.067,784.116 670.568,784.116 670.568,399.412 645.068,399.412 694.586,329.153 "
|
190
|
-
id="polygon31"
|
191
|
-
transform="translate(0.001,145.36792)" />
|
192
|
-
<polygon
|
193
|
-
style="clip-rule:evenodd;fill:#916c56;fill-rule:evenodd"
|
194
|
-
points="677.473,571.919 677.473,784.116 670.568,784.116 670.568,528.018 701.509,571.919 "
|
195
|
-
id="polygon32"
|
196
|
-
transform="translate(0.001,145.36792)" />
|
197
|
-
<polygon
|
198
|
-
style="clip-rule:evenodd;fill:#dd0031;fill-rule:evenodd"
|
199
|
-
points="786.697,511.222 762.661,511.222 762.661,784.116 713.162,784.116 713.162,511.222 687.662,511.222 737.18,440.964 "
|
200
|
-
id="polygon33"
|
201
|
-
transform="translate(0.001,145.36792)" />
|
202
|
-
<polygon
|
203
|
-
style="clip-rule:evenodd;fill:#bf5c2a;fill-rule:evenodd"
|
204
|
-
points="713.162,784.116 713.162,511.222 687.662,511.222 720.067,465.244 720.067,784.116 "
|
205
|
-
id="polygon34"
|
206
|
-
transform="translate(0.001,145.36792)" />
|
207
|
-
<path
|
208
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
209
|
-
d="m 140.554,690.37292 28.997,-41.143 28.997,41.143 h -14.075 v 64.45 l 10.996,-15.602 28.997,41.143 h -14.075 v 23.414 l 10.996,-15.602 11.852,16.817 v -77.905 h -14.932 l 28.997,-41.142 28.997,41.142 h -14.075 v 48.954 l 9.197,-13.05 28.245,40.075 h -13.71 v 49.735 l 9.557,-13.56 8.286,11.757 v -97.417 h -14.933 l 28.997,-41.142 28.997,41.142 h -14.075 v 32.453 l 6.644,-9.427 19.901,28.238 h -9.66 v 31.022 l 11.389,-16.159 12.573,17.839 v -58.049 h -14.933 l 28.997,-41.143 28.997,41.143 H 402.62 v 48.193 l 11.716,-16.623 21.46416,30.45686 5.31084,-6.92086 11.716,16.622 v -45.81 h -14.933 l 28.997,-41.142 28.997,41.142 h -14.075 v 23.414 l 10.996,-15.601 11.853,16.817 v -77.905 h -14.933 l 28.997,-41.143 28.997,41.143 h -14.075 v 23.899 l 9.198,-13.05 28.243,40.075 H 557.38 v 49.735 l 9.557,-13.56 8.286,11.757 v -137.78 H 560.29 l 28.997,-41.142 28.997,41.142 h -14.075 v 72.818 l 6.644,-9.427 19.901,28.238 h -9.66 v 31.022 l 11.39,-16.159 12.572,17.839 v -58.049 h -14.933 l 28.997,-41.143 28.997,41.143 h -14.075 v 48.193 l 11.716,-16.623 22.43456,30.47358 4.83644,-6.22158 11.22,15.92 v -45.824 h -14.932 l 28.997,-41.142 28.996,41.142 h -14.074 v 23.414 l 10.995,-15.601 11.852,16.817 v -77.905 l -11.98653,-0.65137 26.05053,-40.49163 9.773,13.867 v 208.42 H 0 v -195.348 l 28.244,40.074 h -13.71 v 49.735 l 9.557,-13.56 8.286,11.756 v -97.416 H 17.446 l 28.997,-41.143 28.997,41.143 H 61.365 v 32.452 l 6.644,-9.426 19.901,28.237 h -9.66 v 31.022 l 11.389,-16.159 12.573,17.839 v -58.049 H 87.279 l 28.997,-41.142 28.997,41.142 h -14.075 v 48.193 l 11.716,-16.622 12.573,17.839 v -113.481 z"
|
210
|
-
id="path34" />
|
211
|
-
|
212
|
-
<polygon
|
213
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
214
|
-
points="73.967,118.991 69.935,118.991 69.935,359.736 61.631,359.736 61.631,118.991 57.354,118.991 65.66,107.205 "
|
215
|
-
id="polygon60"
|
216
|
-
transform="translate(0.001,145.36792)" />
|
217
|
-
<polygon
|
218
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
219
|
-
points="156.145,37.469 152.112,37.469 152.112,278.214 143.809,278.214 143.809,37.469 139.531,37.469 147.837,25.683 "
|
220
|
-
id="polygon61"
|
221
|
-
transform="translate(0.001,145.36792)" />
|
222
|
-
<polygon
|
223
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
224
|
-
points="653.848,606.583 649.815,606.583 649.815,756.577 641.512,756.577 641.512,606.583 637.234,606.583 645.541,594.797 "
|
225
|
-
id="polygon62"
|
226
|
-
transform="translate(0.001,145.36792)" />
|
227
|
-
<polygon
|
228
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
229
|
-
points="132.417,541.98 128.384,541.98 128.384,691.976 120.081,691.976 120.081,541.98 115.803,541.98 124.109,530.194 "
|
230
|
-
id="polygon63"
|
231
|
-
transform="translate(0.001,145.36792)" />
|
232
|
-
<polygon
|
233
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
234
|
-
points="752.289,592.739 748.256,592.739 748.256,742.734 739.953,742.734 739.953,592.739 735.675,592.739 743.981,580.953 "
|
235
|
-
id="polygon64"
|
236
|
-
transform="translate(0.001,145.36792)" />
|
237
|
-
<polygon
|
238
|
-
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd"
|
239
|
-
points="471.004,75.805 466.972,75.805 466.972,316.55 458.668,316.55 458.668,75.805 454.391,75.805 462.697,64.019 "
|
240
|
-
id="polygon65"
|
241
|
-
transform="translate(0.001,145.36792)" />
|
242
|
-
<text
|
243
|
-
xml:space="preserve"
|
244
|
-
id="text65"
|
245
|
-
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:53.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect65);fill:#000000"
|
246
|
-
transform="translate(-11.999,133.36792)"><tspan
|
247
|
-
x="27.871094"
|
248
|
-
y="778.58122"
|
249
|
-
id="tspan1">UNEXPECTED PROMPTITUDE</tspan></text><text
|
250
|
-
xml:space="preserve"
|
251
|
-
id="text66"
|
252
|
-
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:192px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect66);fill:#000000"
|
253
|
-
transform="translate(20.13016,-317.87561)"><tspan
|
254
|
-
x="222.7793"
|
255
|
-
y="500.23977"
|
256
|
-
id="tspan2">UP!</tspan></text></svg>
|