autoproj 1.4.4 → 1.5.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.
- data/History.txt +15 -0
- data/Manifest.txt +5 -1
- data/README.txt +1 -41
- data/Rakefile +1 -1
- data/bin/autoproj +62 -747
- data/doc/guide/src/autoproj_bootstrap +54 -9
- data/doc/guide/src/customization.page +5 -4
- data/doc/guide/src/index.page +1 -41
- data/doc/guide/src/overview.png +0 -0
- data/doc/guide/src/overview.svg +537 -0
- data/doc/guide/src/package_sets/autobuild.page +37 -13
- data/doc/guide/src/package_sets/importers.page +1 -1
- data/doc/guide/src/package_sets/manifest-xml.page +2 -2
- data/doc/guide/src/package_sets/osdeps.page +14 -9
- data/doc/guide/src/quick_start.page +110 -0
- data/doc/guide/src/{structure.page → writing_manifest.page} +47 -57
- data/lib/autoproj.rb +1 -0
- data/lib/autoproj/autobuild.rb +74 -32
- data/lib/autoproj/cmdline.rb +912 -0
- data/lib/autoproj/default.osdeps +12 -2
- data/lib/autoproj/manifest.rb +141 -88
- data/lib/autoproj/osdeps.rb +42 -7
- data/lib/autoproj/version.rb +1 -1
- metadata +90 -53
@@ -69,12 +69,12 @@ require 'tempfile'
|
|
69
69
|
module Autoproj
|
70
70
|
class OSDependencies
|
71
71
|
def self.load(file)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
begin
|
73
|
+
data = YAML.load(File.read(file))
|
74
|
+
verify_definitions(data)
|
75
|
+
rescue ArgumentError => e
|
76
|
+
raise ConfigError, "error in #{file}: #{e.message}"
|
77
|
+
end
|
78
78
|
|
79
79
|
OSDependencies.new(data)
|
80
80
|
end
|
@@ -114,6 +114,23 @@ module Autoproj
|
|
114
114
|
@definitions = definitions.merge(info.definitions)
|
115
115
|
end
|
116
116
|
|
117
|
+
def self.verify_definitions(hash = nil)
|
118
|
+
hash ||= definitions
|
119
|
+
hash.each do |key, value|
|
120
|
+
if !key.kind_of?(String)
|
121
|
+
raise ArgumentError, "invalid osdeps definition: found an #{key.class}. Don't forget to put quotes around numbers"
|
122
|
+
end
|
123
|
+
next if !value
|
124
|
+
if value.kind_of?(Array) || value.kind_of?(Hash)
|
125
|
+
verify_definitions(value)
|
126
|
+
else
|
127
|
+
if !value.kind_of?(String)
|
128
|
+
raise ArgumentError, "invalid osdeps definition: found an #{value.class}. Don't forget to put quotes around numbers"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
117
134
|
def operating_system
|
118
135
|
if @operating_system
|
119
136
|
return @operating_system
|
@@ -211,7 +228,9 @@ module Autoproj
|
|
211
228
|
version_entry = data.find do |version_list, data|
|
212
229
|
version_list.to_s.split(',').
|
213
230
|
map(&:downcase).
|
214
|
-
any?
|
231
|
+
any? do |v|
|
232
|
+
os_version.any? { |osv| Regexp.new(v) =~ osv }
|
233
|
+
end
|
215
234
|
end
|
216
235
|
|
217
236
|
if !version_entry
|
@@ -235,8 +254,24 @@ module Autoproj
|
|
235
254
|
"\n" + shell_snippets
|
236
255
|
end
|
237
256
|
|
257
|
+
# Returns true if there is an operating-system package with that name,
|
258
|
+
# and false otherwise
|
259
|
+
def has?(name)
|
260
|
+
partition_packages([name].to_set)
|
261
|
+
true
|
262
|
+
rescue ConfigError
|
263
|
+
false
|
264
|
+
end
|
265
|
+
|
238
266
|
# call-seq:
|
239
267
|
# partition_packages(package_names) => os_packages, gem_packages
|
268
|
+
#
|
269
|
+
# Resolves the package names listed in +package_set+, and returns a set
|
270
|
+
# of packages that have to be installed using the platform's native
|
271
|
+
# package manager, and the set of packages that have to be installed
|
272
|
+
# using Ruby's package manager, RubyGems.
|
273
|
+
#
|
274
|
+
# Raises ConfigError if no package can be found
|
240
275
|
def partition_packages(package_set, package_osdeps = Hash.new)
|
241
276
|
package_set = package_set.
|
242
277
|
map { |name| OSDependencies.aliases[name] || name }.
|
@@ -377,7 +412,17 @@ ruby18:
|
|
377
412
|
- dev-lang/ruby:1.8
|
378
413
|
|
379
414
|
ruby19:
|
380
|
-
debian
|
415
|
+
debian:
|
416
|
+
squeeze,sid:
|
417
|
+
- ruby1.9.1
|
418
|
+
- ruby1.9.1-dev
|
419
|
+
- rubygems1.9.1
|
420
|
+
stable:
|
421
|
+
- ruby1.9.1
|
422
|
+
- ruby1.9.1-dev
|
423
|
+
- rubygems1.9.1
|
424
|
+
|
425
|
+
ubuntu:
|
381
426
|
- ruby1.9.1
|
382
427
|
- ruby1.9.1-dev
|
383
428
|
- rubygems1.9.1
|
@@ -411,7 +456,7 @@ autoproj: gem
|
|
411
456
|
# The following definitions are for the VCS and build systems
|
412
457
|
git:
|
413
458
|
debian,ubuntu: git-core
|
414
|
-
gentoo: dev-
|
459
|
+
gentoo: dev-vcs/git
|
415
460
|
arch: git
|
416
461
|
svn:
|
417
462
|
debian,ubuntu: subversion
|
@@ -7,6 +7,7 @@ Changing the installation's layout
|
|
7
7
|
----------------------------------
|
8
8
|
|
9
9
|
The <tt>layout</tt> section of <tt>autoproj/manifest</tt> offers two things:
|
10
|
+
|
10
11
|
* select which packages/package sets to build and
|
11
12
|
* build packages in specific subdirectories
|
12
13
|
|
@@ -137,8 +138,8 @@ Autobuild.parallel_build_level = 10 # build with -j10
|
|
137
138
|
More complex customization
|
138
139
|
--------------------------
|
139
140
|
|
140
|
-
More complex customization can be achieved by accessing the Autoproj and
|
141
|
-
Autobuild API directly in the <tt>autoproj/init.rb</tt> and
|
141
|
+
More complex customization can be achieved by accessing the [Autoproj API](api/index.html) and
|
142
|
+
the [Autobuild API](http://doudou.github.com/autobuild/index.html) directly in the <tt>autoproj/init.rb</tt> and
|
142
143
|
<tt>autoproj/overrides.rb</tt>
|
143
144
|
files. The former is loaded before all source files and the latter is loaded
|
144
145
|
after all source files.
|
@@ -177,12 +178,12 @@ layout:
|
|
177
178
|
If the command line is
|
178
179
|
|
179
180
|
autoproj build modules/logger
|
180
|
-
{: .
|
181
|
+
{: .commandline}
|
181
182
|
|
182
183
|
then modules/logger and its dependencies will be built. Idem, if the command line is:
|
183
184
|
|
184
185
|
autoproj build asguard
|
185
|
-
{: .
|
186
|
+
{: .commandline}
|
186
187
|
|
187
188
|
then all packages or asguard/ are built, including their dependencies
|
188
189
|
|
data/doc/guide/src/index.page
CHANGED
@@ -43,48 +43,8 @@ Each package definition includes:
|
|
43
43
|
* on what the package depends. This can be either another package built by
|
44
44
|
autoproj, or an operating system package.
|
45
45
|
|
46
|
-
See [this page](
|
46
|
+
See [this page](writing_manifest.html) for more information.
|
47
47
|
|
48
|
-
Bootstrapping
|
49
|
-
-------------
|
50
|
-
"Bootstrapping" means getting autoproj itself before it can work its magic ...
|
51
|
-
The canonical way is the following:
|
52
|
-
|
53
|
-
* install Ruby by yourself. On Debian or Ubuntu, this is done with
|
54
|
-
done with
|
55
|
-
|
56
|
-
sudo apt-get install wget ruby
|
57
|
-
{.cmdline}
|
58
|
-
|
59
|
-
* then, [download this script](autoproj_bootstrap) *in the directory where
|
60
|
-
you want to create an autoproj installation*, and run it. This can be done with
|
61
|
-
|
62
|
-
wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
|
63
|
-
ruby autoproj\_bootstrap
|
64
|
-
{.cmdline}
|
65
|
-
|
66
|
-
* follow the instructions printed by the script<tt>manifest</tt>.
|
67
|
-
|
68
|
-
Additionally, if you are given a reference to a source code repository in which
|
69
|
-
an autoproj configuration is stored (i.e. a directory in which a manifest is
|
70
|
-
present), you can bootstrap this configuration directly:
|
71
|
-
|
72
|
-
wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
|
73
|
-
ruby autoproj\_bootstrap VCS
|
74
|
-
{.cmdline}
|
75
|
-
|
76
|
-
For instance, to build all packages made available by the RubyInMotion project,
|
77
|
-
do
|
78
|
-
|
79
|
-
wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
|
80
|
-
ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git
|
81
|
-
{.cmdline}
|
82
|
-
|
83
|
-
Additional options can be given for the version control system. For instance,
|
84
|
-
|
85
|
-
wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
|
86
|
-
ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git branch=stable
|
87
|
-
{.cmdline}
|
88
48
|
|
89
49
|
Software packages in Autoproj
|
90
50
|
-----------------------------
|
Binary file
|
@@ -0,0 +1,537 @@
|
|
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
|
+
width="744.09448819"
|
13
|
+
height="1052.3622047"
|
14
|
+
id="svg2"
|
15
|
+
version="1.1"
|
16
|
+
inkscape:version="0.47 r22583"
|
17
|
+
sodipodi:docname="overview.svg"
|
18
|
+
inkscape:export-filename="/home/doudou/src/autoproj/doc/guide/src/overview.png"
|
19
|
+
inkscape:export-xdpi="60.000832"
|
20
|
+
inkscape:export-ydpi="60.000832">
|
21
|
+
<defs
|
22
|
+
id="defs4">
|
23
|
+
<marker
|
24
|
+
inkscape:stockid="TriangleOutL"
|
25
|
+
orient="auto"
|
26
|
+
refY="0.0"
|
27
|
+
refX="0.0"
|
28
|
+
id="TriangleOutL"
|
29
|
+
style="overflow:visible">
|
30
|
+
<path
|
31
|
+
id="path4003"
|
32
|
+
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
|
33
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
|
34
|
+
transform="scale(0.8)" />
|
35
|
+
</marker>
|
36
|
+
<inkscape:perspective
|
37
|
+
sodipodi:type="inkscape:persp3d"
|
38
|
+
inkscape:vp_x="0 : 526.18109 : 1"
|
39
|
+
inkscape:vp_y="0 : 1000 : 0"
|
40
|
+
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
41
|
+
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
42
|
+
id="perspective10" />
|
43
|
+
<inkscape:perspective
|
44
|
+
id="perspective2830"
|
45
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
46
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
47
|
+
inkscape:vp_y="0 : 1000 : 0"
|
48
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
49
|
+
sodipodi:type="inkscape:persp3d" />
|
50
|
+
<inkscape:perspective
|
51
|
+
id="perspective2830-6"
|
52
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
53
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
54
|
+
inkscape:vp_y="0 : 1000 : 0"
|
55
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
56
|
+
sodipodi:type="inkscape:persp3d" />
|
57
|
+
<inkscape:perspective
|
58
|
+
id="perspective2830-2"
|
59
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
60
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
61
|
+
inkscape:vp_y="0 : 1000 : 0"
|
62
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
63
|
+
sodipodi:type="inkscape:persp3d" />
|
64
|
+
<inkscape:perspective
|
65
|
+
id="perspective2830-3"
|
66
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
67
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
68
|
+
inkscape:vp_y="0 : 1000 : 0"
|
69
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
70
|
+
sodipodi:type="inkscape:persp3d" />
|
71
|
+
<inkscape:perspective
|
72
|
+
id="perspective2830-4"
|
73
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
74
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
75
|
+
inkscape:vp_y="0 : 1000 : 0"
|
76
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
77
|
+
sodipodi:type="inkscape:persp3d" />
|
78
|
+
<inkscape:perspective
|
79
|
+
id="perspective2888"
|
80
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
81
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
82
|
+
inkscape:vp_y="0 : 1000 : 0"
|
83
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
84
|
+
sodipodi:type="inkscape:persp3d" />
|
85
|
+
<inkscape:perspective
|
86
|
+
id="perspective2947"
|
87
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
88
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
89
|
+
inkscape:vp_y="0 : 1000 : 0"
|
90
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
91
|
+
sodipodi:type="inkscape:persp3d" />
|
92
|
+
<inkscape:perspective
|
93
|
+
id="perspective3754"
|
94
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
95
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
96
|
+
inkscape:vp_y="0 : 1000 : 0"
|
97
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
98
|
+
sodipodi:type="inkscape:persp3d" />
|
99
|
+
<inkscape:perspective
|
100
|
+
id="perspective3791"
|
101
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
102
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
103
|
+
inkscape:vp_y="0 : 1000 : 0"
|
104
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
105
|
+
sodipodi:type="inkscape:persp3d" />
|
106
|
+
<inkscape:perspective
|
107
|
+
id="perspective3813"
|
108
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
109
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
110
|
+
inkscape:vp_y="0 : 1000 : 0"
|
111
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
112
|
+
sodipodi:type="inkscape:persp3d" />
|
113
|
+
<inkscape:perspective
|
114
|
+
id="perspective3838"
|
115
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
116
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
117
|
+
inkscape:vp_y="0 : 1000 : 0"
|
118
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
119
|
+
sodipodi:type="inkscape:persp3d" />
|
120
|
+
<inkscape:perspective
|
121
|
+
id="perspective4323"
|
122
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
123
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
124
|
+
inkscape:vp_y="0 : 1000 : 0"
|
125
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
126
|
+
sodipodi:type="inkscape:persp3d" />
|
127
|
+
<marker
|
128
|
+
inkscape:stockid="TriangleOutL"
|
129
|
+
orient="auto"
|
130
|
+
refY="0"
|
131
|
+
refX="0"
|
132
|
+
id="TriangleOutL-5"
|
133
|
+
style="overflow:visible">
|
134
|
+
<path
|
135
|
+
id="path4003-4"
|
136
|
+
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
|
137
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
138
|
+
transform="scale(0.8,0.8)" />
|
139
|
+
</marker>
|
140
|
+
<inkscape:perspective
|
141
|
+
id="perspective4354"
|
142
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
143
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
144
|
+
inkscape:vp_y="0 : 1000 : 0"
|
145
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
146
|
+
sodipodi:type="inkscape:persp3d" />
|
147
|
+
<inkscape:perspective
|
148
|
+
id="perspective4354-5"
|
149
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
150
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
151
|
+
inkscape:vp_y="0 : 1000 : 0"
|
152
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
153
|
+
sodipodi:type="inkscape:persp3d" />
|
154
|
+
<inkscape:perspective
|
155
|
+
id="perspective4385"
|
156
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
157
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
158
|
+
inkscape:vp_y="0 : 1000 : 0"
|
159
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
160
|
+
sodipodi:type="inkscape:persp3d" />
|
161
|
+
<marker
|
162
|
+
inkscape:stockid="TriangleOutL"
|
163
|
+
orient="auto"
|
164
|
+
refY="0"
|
165
|
+
refX="0"
|
166
|
+
id="TriangleOutL-3"
|
167
|
+
style="overflow:visible">
|
168
|
+
<path
|
169
|
+
id="path4003-7"
|
170
|
+
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
|
171
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
172
|
+
transform="scale(0.8,0.8)" />
|
173
|
+
</marker>
|
174
|
+
<inkscape:perspective
|
175
|
+
id="perspective4413"
|
176
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
177
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
178
|
+
inkscape:vp_y="0 : 1000 : 0"
|
179
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
180
|
+
sodipodi:type="inkscape:persp3d" />
|
181
|
+
<marker
|
182
|
+
inkscape:stockid="TriangleOutL"
|
183
|
+
orient="auto"
|
184
|
+
refY="0"
|
185
|
+
refX="0"
|
186
|
+
id="TriangleOutL-52"
|
187
|
+
style="overflow:visible">
|
188
|
+
<path
|
189
|
+
id="path4003-5"
|
190
|
+
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
|
191
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
192
|
+
transform="scale(0.8,0.8)" />
|
193
|
+
</marker>
|
194
|
+
<inkscape:perspective
|
195
|
+
id="perspective4457"
|
196
|
+
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
197
|
+
inkscape:vp_z="1 : 0.5 : 1"
|
198
|
+
inkscape:vp_y="0 : 1000 : 0"
|
199
|
+
inkscape:vp_x="0 : 0.5 : 1"
|
200
|
+
sodipodi:type="inkscape:persp3d" />
|
201
|
+
</defs>
|
202
|
+
<sodipodi:namedview
|
203
|
+
id="base"
|
204
|
+
pagecolor="#ffffff"
|
205
|
+
bordercolor="#666666"
|
206
|
+
borderopacity="1.0"
|
207
|
+
inkscape:pageopacity="0.0"
|
208
|
+
inkscape:pageshadow="2"
|
209
|
+
inkscape:zoom="0.7"
|
210
|
+
inkscape:cx="237.11418"
|
211
|
+
inkscape:cy="875.88569"
|
212
|
+
inkscape:document-units="px"
|
213
|
+
inkscape:current-layer="layer1"
|
214
|
+
showgrid="false"
|
215
|
+
inkscape:window-width="1125"
|
216
|
+
inkscape:window-height="630"
|
217
|
+
inkscape:window-x="151"
|
218
|
+
inkscape:window-y="138"
|
219
|
+
inkscape:window-maximized="0" />
|
220
|
+
<metadata
|
221
|
+
id="metadata7">
|
222
|
+
<rdf:RDF>
|
223
|
+
<cc:Work
|
224
|
+
rdf:about="">
|
225
|
+
<dc:format>image/svg+xml</dc:format>
|
226
|
+
<dc:type
|
227
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
228
|
+
<dc:title></dc:title>
|
229
|
+
</cc:Work>
|
230
|
+
</rdf:RDF>
|
231
|
+
</metadata>
|
232
|
+
<g
|
233
|
+
inkscape:label="Layer 1"
|
234
|
+
inkscape:groupmode="layer"
|
235
|
+
id="layer1">
|
236
|
+
<path
|
237
|
+
sodipodi:type="arc"
|
238
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:4.16965151;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
239
|
+
id="path2816"
|
240
|
+
sodipodi:cx="254.59831"
|
241
|
+
sodipodi:cy="163.42795"
|
242
|
+
sodipodi:rx="166.71504"
|
243
|
+
sodipodi:ry="103.03556"
|
244
|
+
d="m 421.31335,163.42795 a 166.71504,103.03556 0 1 1 -333.43008,0 166.71504,103.03556 0 1 1 333.43008,0 z"
|
245
|
+
transform="matrix(0.18978279,-0.05247478,0.05168753,0.28877689,103.88856,104.33991)" />
|
246
|
+
<path
|
247
|
+
sodipodi:type="arc"
|
248
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
249
|
+
id="path2818"
|
250
|
+
sodipodi:cx="159.09903"
|
251
|
+
sodipodi:cy="136.65891"
|
252
|
+
sodipodi:rx="16.667517"
|
253
|
+
sodipodi:ry="16.667517"
|
254
|
+
d="m 175.76655,136.65891 a 16.667517,16.667517 0 1 1 -33.33504,0 16.667517,16.667517 0 1 1 33.33504,0 z" />
|
255
|
+
<path
|
256
|
+
sodipodi:type="arc"
|
257
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:1.79343462;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
258
|
+
id="path2816-8"
|
259
|
+
sodipodi:cx="254.59831"
|
260
|
+
sodipodi:cy="163.42795"
|
261
|
+
sodipodi:rx="166.71504"
|
262
|
+
sodipodi:ry="103.03556"
|
263
|
+
d="m 421.31335,163.42795 a 166.71504,103.03556 0 1 1 -333.43008,0 166.71504,103.03556 0 1 1 333.43008,0 z"
|
264
|
+
transform="matrix(0.50641325,-0.10629939,0.13792213,0.58498209,355.11921,91.858708)" />
|
265
|
+
<path
|
266
|
+
transform="translate(306.54144,5.5558351)"
|
267
|
+
sodipodi:type="arc"
|
268
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
269
|
+
id="path2818-4"
|
270
|
+
sodipodi:cx="159.09903"
|
271
|
+
sodipodi:cy="136.65891"
|
272
|
+
sodipodi:rx="16.667517"
|
273
|
+
sodipodi:ry="16.667517"
|
274
|
+
d="m 175.76655,136.65891 a 16.667517,16.667517 0 1 1 -33.33504,0 16.667517,16.667517 0 1 1 33.33504,0 z" />
|
275
|
+
<path
|
276
|
+
transform="translate(216.63785,44.951787)"
|
277
|
+
sodipodi:type="arc"
|
278
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
279
|
+
id="path2820-3-0"
|
280
|
+
sodipodi:cx="267.69043"
|
281
|
+
sodipodi:cy="142.21474"
|
282
|
+
sodipodi:rx="19.192898"
|
283
|
+
sodipodi:ry="19.192898"
|
284
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
285
|
+
<path
|
286
|
+
transform="translate(278.25716,35.860414)"
|
287
|
+
sodipodi:type="arc"
|
288
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
289
|
+
id="path2820-1-3"
|
290
|
+
sodipodi:cx="267.69043"
|
291
|
+
sodipodi:cy="142.21474"
|
292
|
+
sodipodi:rx="19.192898"
|
293
|
+
sodipodi:ry="19.192898"
|
294
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
295
|
+
<path
|
296
|
+
transform="translate(243.91197,-6.5659926)"
|
297
|
+
sodipodi:type="arc"
|
298
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
299
|
+
id="path2820-9-6"
|
300
|
+
sodipodi:cx="267.69043"
|
301
|
+
sodipodi:cy="142.21474"
|
302
|
+
sodipodi:rx="19.192898"
|
303
|
+
sodipodi:ry="19.192898"
|
304
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
305
|
+
<rect
|
306
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999672;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
307
|
+
id="rect2929"
|
308
|
+
width="529.31995"
|
309
|
+
height="29.294422"
|
310
|
+
x="97.984795"
|
311
|
+
y="292.72748" />
|
312
|
+
<text
|
313
|
+
xml:space="preserve"
|
314
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
315
|
+
x="302.71146"
|
316
|
+
y="313.94067"
|
317
|
+
id="text2931"><tspan
|
318
|
+
sodipodi:role="line"
|
319
|
+
id="tspan2933"
|
320
|
+
x="302.71146"
|
321
|
+
y="313.94067"
|
322
|
+
style="font-size:20px;font-weight:bold">- layout:</tspan></text>
|
323
|
+
<text
|
324
|
+
xml:space="preserve"
|
325
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
326
|
+
x="107.07617"
|
327
|
+
y="100.79848"
|
328
|
+
id="text2935"><tspan
|
329
|
+
sodipodi:role="line"
|
330
|
+
id="tspan2937"
|
331
|
+
x="107.07617"
|
332
|
+
y="100.79848"
|
333
|
+
style="font-size:20px">rubim.base</tspan></text>
|
334
|
+
<text
|
335
|
+
xml:space="preserve"
|
336
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
337
|
+
x="445.27017"
|
338
|
+
y="90.456779"
|
339
|
+
id="text2935-6"><tspan
|
340
|
+
sodipodi:role="line"
|
341
|
+
id="tspan2937-3"
|
342
|
+
x="445.27017"
|
343
|
+
y="90.456779"
|
344
|
+
style="font-size:20px">rubim.orocos</tspan></text>
|
345
|
+
<text
|
346
|
+
xml:space="preserve"
|
347
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
348
|
+
x="-220.74072"
|
349
|
+
y="60.887867"
|
350
|
+
id="text2964"
|
351
|
+
transform="matrix(0,-1,1,0,0,0)"><tspan
|
352
|
+
sodipodi:role="line"
|
353
|
+
id="tspan2966"
|
354
|
+
x="-220.74072"
|
355
|
+
y="60.887867"
|
356
|
+
style="font-size:12;font-weight:bold">Package sets</tspan></text>
|
357
|
+
<path
|
358
|
+
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:1,3;stroke-dashoffset:0"
|
359
|
+
d="m 42.426407,269.49396 629.325033,0"
|
360
|
+
id="path2968" />
|
361
|
+
<text
|
362
|
+
xml:space="preserve"
|
363
|
+
style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
364
|
+
x="167.68533"
|
365
|
+
y="393.37723"
|
366
|
+
id="text3742"><tspan
|
367
|
+
sodipodi:role="line"
|
368
|
+
id="tspan3744"
|
369
|
+
x="167.68533"
|
370
|
+
y="393.37723">tools/</tspan></text>
|
371
|
+
<path
|
372
|
+
transform="translate(31.819805,-2.5253825)"
|
373
|
+
sodipodi:type="arc"
|
374
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
375
|
+
id="path2820"
|
376
|
+
sodipodi:cx="267.69043"
|
377
|
+
sodipodi:cy="142.21474"
|
378
|
+
sodipodi:rx="19.192898"
|
379
|
+
sodipodi:ry="19.192898"
|
380
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
381
|
+
<path
|
382
|
+
transform="translate(-51.012705,61.11423)"
|
383
|
+
sodipodi:type="arc"
|
384
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
385
|
+
id="path2820-3"
|
386
|
+
sodipodi:cx="267.69043"
|
387
|
+
sodipodi:cy="142.21474"
|
388
|
+
sodipodi:rx="19.192898"
|
389
|
+
sodipodi:ry="19.192898"
|
390
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
391
|
+
<path
|
392
|
+
transform="translate(10.606595,52.022857)"
|
393
|
+
sodipodi:type="arc"
|
394
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
395
|
+
id="path2820-1"
|
396
|
+
sodipodi:cx="267.69043"
|
397
|
+
sodipodi:cy="142.21474"
|
398
|
+
sodipodi:rx="19.192898"
|
399
|
+
sodipodi:ry="19.192898"
|
400
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
401
|
+
<path
|
402
|
+
transform="translate(-23.738585,9.5964505)"
|
403
|
+
sodipodi:type="arc"
|
404
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
405
|
+
id="path2820-9"
|
406
|
+
sodipodi:cx="267.69043"
|
407
|
+
sodipodi:cy="142.21474"
|
408
|
+
sodipodi:rx="19.192898"
|
409
|
+
sodipodi:ry="19.192898"
|
410
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
411
|
+
<path
|
412
|
+
transform="translate(79.296965,-30.80965)"
|
413
|
+
sodipodi:type="arc"
|
414
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
415
|
+
id="path2820-19"
|
416
|
+
sodipodi:cx="267.69043"
|
417
|
+
sodipodi:cy="142.21474"
|
418
|
+
sodipodi:rx="19.192898"
|
419
|
+
sodipodi:ry="19.192898"
|
420
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
421
|
+
<path
|
422
|
+
transform="translate(76.266515,28.789348)"
|
423
|
+
sodipodi:type="arc"
|
424
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999666;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
425
|
+
id="path2820-7"
|
426
|
+
sodipodi:cx="267.69043"
|
427
|
+
sodipodi:cy="142.21474"
|
428
|
+
sodipodi:rx="19.192898"
|
429
|
+
sodipodi:ry="19.192898"
|
430
|
+
d="m 286.88333,142.21474 a 19.192898,19.192898 0 1 1 -38.3858,0 19.192898,19.192898 0 1 1 38.3858,0 z" />
|
431
|
+
<path
|
432
|
+
sodipodi:type="arc"
|
433
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:1.3320992;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
434
|
+
id="path2816-8-2"
|
435
|
+
sodipodi:cx="254.59831"
|
436
|
+
sodipodi:cy="163.42795"
|
437
|
+
sodipodi:rx="166.71504"
|
438
|
+
sodipodi:ry="85.728012"
|
439
|
+
d="m 421.31335,163.42795 a 166.71504,85.728012 0 1 1 -333.43008,0 166.71504,85.728012 0 1 1 333.43008,0 z"
|
440
|
+
transform="matrix(0.59229465,-0.35644403,0.41771,0.70007151,72.366301,138.25152)" />
|
441
|
+
<text
|
442
|
+
xml:space="preserve"
|
443
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
444
|
+
x="261.38611"
|
445
|
+
y="66.838287"
|
446
|
+
id="text2935-6-0"><tspan
|
447
|
+
sodipodi:role="line"
|
448
|
+
id="tspan2937-3-6"
|
449
|
+
x="261.38611"
|
450
|
+
y="66.838287"
|
451
|
+
style="font-size:20px">rubim.drivers</tspan></text>
|
452
|
+
<text
|
453
|
+
xml:space="preserve"
|
454
|
+
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
455
|
+
x="-373.54053"
|
456
|
+
y="37.548969"
|
457
|
+
id="text2964-1"
|
458
|
+
transform="matrix(0,-1,1,0,0,0)"><tspan
|
459
|
+
sodipodi:role="line"
|
460
|
+
id="tspan2966-5"
|
461
|
+
x="-373.54053"
|
462
|
+
y="37.548969"
|
463
|
+
style="font-size:20px;font-weight:bold;text-align:center;text-anchor:middle">Final</tspan><tspan
|
464
|
+
sodipodi:role="line"
|
465
|
+
x="-373.54053"
|
466
|
+
y="62.548969"
|
467
|
+
style="font-size:20px;font-weight:bold;text-align:center;text-anchor:middle"
|
468
|
+
id="tspan4433">Installation</tspan></text>
|
469
|
+
<path
|
470
|
+
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
471
|
+
d="m 492.95446,224.0371 0,162.68611 -258.09678,0"
|
472
|
+
id="path3855" />
|
473
|
+
<path
|
474
|
+
style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999982px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
475
|
+
d="m 163.45186,168.26334 0,184.49701 -14.6988,0"
|
476
|
+
id="path4305" />
|
477
|
+
<text
|
478
|
+
xml:space="preserve"
|
479
|
+
style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
480
|
+
x="112.12692"
|
481
|
+
y="354.34677"
|
482
|
+
id="text4307"><tspan
|
483
|
+
sodipodi:role="line"
|
484
|
+
id="tspan4309"
|
485
|
+
x="112.12692"
|
486
|
+
y="354.34677">/</tspan></text>
|
487
|
+
<path
|
488
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
489
|
+
d="m 121.93769,350.30616 17.75412,0"
|
490
|
+
id="path4311" />
|
491
|
+
<path
|
492
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
493
|
+
d="m 139.40105,350.30616 0,59.599 24.24366,0"
|
494
|
+
id="path4313" />
|
495
|
+
<text
|
496
|
+
xml:space="preserve"
|
497
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
498
|
+
x="166.67517"
|
499
|
+
y="415.96609"
|
500
|
+
id="text4342"><tspan
|
501
|
+
sodipodi:role="line"
|
502
|
+
id="tspan4344"
|
503
|
+
x="166.67517"
|
504
|
+
y="415.96609"
|
505
|
+
style="font-size:20px">perception/</tspan></text>
|
506
|
+
<path
|
507
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
508
|
+
d="m 139.81736,385.66152 24.9263,0"
|
509
|
+
id="path4311-6" />
|
510
|
+
<path
|
511
|
+
style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
512
|
+
d="m 279.36811,213.63125 0,157.3073 -130.84834,0"
|
513
|
+
id="path4305-4" />
|
514
|
+
<path
|
515
|
+
style="color:#000000;fill:none;stroke:#000000;stroke-width:0.9999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#TriangleOutL);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
516
|
+
d="m 342.01789,190.27997 0,219.9989 -52.19448,0"
|
517
|
+
id="path4305-4-4" />
|
518
|
+
<rect
|
519
|
+
style="color:#000000;fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999672;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
520
|
+
id="rect2929-7"
|
521
|
+
width="529.31995"
|
522
|
+
height="29.294422"
|
523
|
+
x="96.768593"
|
524
|
+
y="13.429255" />
|
525
|
+
<text
|
526
|
+
xml:space="preserve"
|
527
|
+
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
528
|
+
x="271.49524"
|
529
|
+
y="34.642452"
|
530
|
+
id="text2931-4"><tspan
|
531
|
+
sodipodi:role="line"
|
532
|
+
id="tspan2933-4"
|
533
|
+
x="271.49524"
|
534
|
+
y="34.642452"
|
535
|
+
style="font-size:20px;font-weight:bold">- package_sets:</tspan></text>
|
536
|
+
</g>
|
537
|
+
</svg>
|