rabbit-slide-kou-pgconf-asia-2016 2016.12.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7560d03e7cc6bf04f453f155ab103b6522a53853
4
+ data.tar.gz: e14a758b449c31aaecfe98293a4efc55c2d88ae9
5
+ SHA512:
6
+ metadata.gz: 63395679bdaa7fee706cfd9dc35d214a7b6cbbe8c43f811bfe1069d74a8a7c8255b2282ae56fe1091f568eaf2716b7f970515fa76336e12d0f3f0e113429154f
7
+ data.tar.gz: fc3508d88d9f69d5d6a348fb0f582c05d6a2f72e09da4e7f4091ed2814fd60c7d8a361845176fe430c27c2bdbc2cb186795ff3e472bfcb3c3933173ddb14ee7d
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ pgroonga.rab
@@ -0,0 +1,46 @@
1
+ = PGroonga – Make PostgreSQL fast full text search platform for all languages!
2
+
3
+ PostgreSQL has built-in full text search feature. But it supports only limited languages. For example, it doesn't support Japanese. pg_trgm bundled in PostgreSQL supports all languages including Japanese. But it has performance problems for large documents.
4
+
5
+ This talk describes about PGroonga that resolves these problems.
6
+
7
+ == License
8
+
9
+ === Slide
10
+
11
+ CC BY-SA 4.0
12
+
13
+ Use the followings for notation of the author:
14
+
15
+ * Kouhei Sutou
16
+
17
+ === Images
18
+
19
+ ==== Groonga and PGroonga logos
20
+
21
+ CC BY 3.0
22
+
23
+ Author: The Groonga Project
24
+
25
+ It is used in page header and some pages in the slide.
26
+
27
+ == For author
28
+
29
+ === Show
30
+
31
+ rake
32
+
33
+ === Publish
34
+
35
+ rake publish
36
+
37
+ == For viewers
38
+
39
+ === Install
40
+
41
+ gem install rabbit-slide-kou-pgconf-asia-2016
42
+
43
+ === Show
44
+
45
+ rabbit rabbit-slide-kou-pgconf-asia-2016.gem
46
+
@@ -0,0 +1,60 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ spec.files += Dir.glob("data/**/*.*")
9
+ spec.files += Dir.glob("images/**/*.*")
10
+ # spec.files -= Dir.glob("private/**/*.*")
11
+ spec.add_runtime_dependency("rabbit-theme-groonga")
12
+ end
13
+
14
+ desc "Tag #{spec.version}"
15
+ task :tag do
16
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
17
+ sh("git", "push", "--tags")
18
+ end
19
+
20
+ key_graphs = []
21
+ plots = Pathname.glob("data/**/*.gnuplot")
22
+ plots.each do |plot|
23
+ output_base_dir = plot.dirname.to_s.gsub(/\Adata/, "images")
24
+ loaded_plots = []
25
+ graphs = []
26
+ data = []
27
+
28
+ plot.open do |plot_file|
29
+ plot_file.each_line do |line|
30
+ case line.chomp
31
+ when /\Aload "(.*?)"\z/
32
+ loaded_plots << "#{plot.dirname}/#{$1}"
33
+ when /"(.*?\.tsv)"/
34
+ data << "#{plot.dirname}/#{$1}"
35
+ when /\Aset output "(.*?)"\z/
36
+ graphs << "#{output_base_dir}/#{$1}"
37
+ end
38
+ end
39
+ end
40
+ next if graphs.empty?
41
+
42
+ key_graph = graphs.first
43
+ key_graphs << key_graph
44
+ file key_graph => [plot.to_s, *loaded_plots, *data] do
45
+ cd(plot.dirname) do
46
+ sh("gnuplot", plot.basename.to_s)
47
+ end
48
+ graphs.each do |graph|
49
+ mkdir_p(File.dirname(graph))
50
+ mv("#{plot.dirname}/#{File.basename(graph)}",
51
+ graph)
52
+ end
53
+ end
54
+ end
55
+
56
+ desc "Generate graphs"
57
+ task :graph => key_graphs
58
+
59
+ task :run => :graph
60
+ task :pdf => :graph
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: pgconf-asia-2016
3
+ base_name: pgroonga
4
+ tags:
5
+ - rabbit
6
+ - pgroonga
7
+ - postgresql
8
+ presentation_date: 2016-12-03
9
+ version: 2016.12.3.0
10
+ licenses:
11
+ - CC-BY-SA-4.0
12
+ - CC-BY-3.0
13
+ slideshare_id: pgconf-asia-2016
14
+ speaker_deck_id:
15
+ ustream_id:
16
+ vimeo_id:
17
+ youtube_id:
18
+ author:
19
+ markup_language: :rd
20
+ name: Kouhei Sutou
21
+ email: kou@clear-code.com
22
+ rubygems_user: kou
23
+ slideshare_user: kou
24
+ speaker_deck_user:
@@ -0,0 +1,42 @@
1
+ load "style.gnuplot"
2
+
3
+ set title "Index creation"
4
+
5
+ set xlabel "Module"
6
+ set ylabel "Elapsed time (hour)\n(Shorter is better)"
7
+ set noxtic
8
+
9
+ set yrange[0:]
10
+
11
+ set style data histogram
12
+ set style histogram cluster gap 1
13
+ set style fill solid border -1
14
+ set boxwidth 0.9
15
+
16
+ set label 1 \
17
+ "Data: English Wikipedia" \
18
+ font "Sans,16" \
19
+ at -1,2.9 left
20
+ set label 2 \
21
+ "Size: About 33GiB" \
22
+ font "Sans,16" \
23
+ at -1,2.65 left
24
+ set label 3 \
25
+ "Max text size: 1MiB" \
26
+ font "Sans,16" \
27
+ at -1,2.4 left
28
+ set label 4 \
29
+ "2x faster\nthan textsearch" \
30
+ font "Sans,16" \
31
+ textcolor "#ef2929" \
32
+ at -0.15,1.8 right
33
+ set output "index-creation-en.pdf"
34
+ plot "index-creation-en.tsv" using 1 \
35
+ title columnheader \
36
+ linestyle 5, \
37
+ "index-creation-en.tsv" using 2 \
38
+ title columnheader \
39
+ linestyle 1, \
40
+ "index-creation-en.tsv" using 3 \
41
+ title columnheader \
42
+ linestyle 6
@@ -0,0 +1,2 @@
1
+ PGroonga textsearch pg\\_trgm
2
+ 1.4 2.9 1.8
@@ -0,0 +1,45 @@
1
+ load "style.gnuplot"
2
+
3
+ set xlabel "Query" font "Sans,14"
4
+ set ylabel "Elapsed time (ms)\n(Shorter is better)"
5
+
6
+ set style data histogram
7
+ set style histogram cluster gap 1
8
+ set style fill solid border -1
9
+ set boxwidth 0.9
10
+
11
+ set label 1 \
12
+ "Data: English Wikipedia" \
13
+ at first -1,1.35 left
14
+ set label 2 \
15
+ "(Many records and large docs)" \
16
+ at first -1,1.25 left
17
+ set label 3 \
18
+ "N records: About 5.3millions" \
19
+ at first -1,1.15 left
20
+ set label 4 \
21
+ "Average text size: 6.4KiB" \
22
+ at first -1,1.05 left
23
+ set xtic font "Sans,14"
24
+ set output "search-pgroonga-textsearch.pdf"
25
+ plot "search-en.tsv" using ($2/1000):xtic(1) \
26
+ title columnheader \
27
+ linestyle 5, \
28
+ "search-en.tsv" using ($8/1000):xtic(1) \
29
+ title columnheader \
30
+ linestyle 1
31
+
32
+ set label 5 \
33
+ "Groonga is 30x faster than others" \
34
+ textcolor "#ef2929" \
35
+ at first -1,0.9 left
36
+ set output "search-pgroonga-groonga-textsearch.pdf"
37
+ plot "search-en.tsv" using ($2/1000):xtic(1) \
38
+ title columnheader \
39
+ linestyle 5, \
40
+ "search-en.tsv" using ($4/1000):xtic(1) \
41
+ title columnheader \
42
+ linestyle 2, \
43
+ "search-en.tsv" using ($8/1000):xtic(1) \
44
+ title columnheader \
45
+ linestyle 1
@@ -0,0 +1,5 @@
1
+ Query PGroonga "N hits(PGroonga)" Groonga "N hits(Groonga)" pg\\_trgm "N hits(pg\\_trgm)" textsearch "N hits(textsearch)"
2
+ "PostgreSQL OR MySQL" 6 1636 3 1636 241 1484 3 1506
3
+ #animation 173 40802 6 40802 44000 33604 1000 423425
4
+ database 698 209353 19 209353 33000 134973 602 194750
5
+ America 1300 472762 59 472762 92000 1410041 1200 480855
@@ -0,0 +1,75 @@
1
+ load "style.gnuplot"
2
+
3
+ set xlabel "N hits"
4
+ set ylabel "Elapsed time (sec)\n(Shorter is better)"
5
+
6
+ set label 1 \
7
+ "Data: Japanese Wikipedia\n(Many records and large documents)" \
8
+ at first 0,2.875 left
9
+ set label 2 \
10
+ "N records: About 0.9millions\nAverage text size: 6.7KiB" \
11
+ at first 0,2.375 left
12
+ set label 3 \
13
+ "Slow" \
14
+ textcolor "#ef2929" \
15
+ at first 15306,1.3 left
16
+ set label 4 \
17
+ "Slow" \
18
+ textcolor "#ef2929" \
19
+ at first 19889,2.8 right
20
+ set output "search-pg-bigm.pdf"
21
+ plot [0:20389] \
22
+ "search-ja.tsv" using 7:($6/1000):xtic(7) \
23
+ title columnheader \
24
+ with linespoints \
25
+ linestyle 1
26
+
27
+ set label 3 \
28
+ "Fast" \
29
+ textcolor "#ef2929" \
30
+ at first 14709,0.25 center
31
+ set label 4 \
32
+ "Fast" \
33
+ textcolor "#ef2929" \
34
+ at first 20189,0.25 center
35
+ set output "search-pgroonga-pg-bigm.pdf"
36
+ plot [0:20389] \
37
+ "search-ja.tsv" using 3:($2/1000) \
38
+ title columnheader \
39
+ with linespoints \
40
+ linestyle 5, \
41
+ "search-ja.tsv" using 7:($6/1000):xtic(7) \
42
+ title columnheader \
43
+ with linespoints \
44
+ linestyle 1
45
+
46
+ set label 1 \
47
+ at first 200000,2.875 left
48
+ set label 2 \
49
+ at first 200000,2.375 left
50
+ set label 3 \
51
+ "Slow" \
52
+ textcolor "#ef2929" \
53
+ at first 28306,1.3 left
54
+ set label 4 \
55
+ "Slow" \
56
+ textcolor "#ef2929" \
57
+ at first 30889,2.9 left
58
+ set label 5 \
59
+ "Fast for many hits!" \
60
+ textcolor "#ef2929" \
61
+ at first 547382,0.25 right
62
+ set label 6 \
63
+ "Query: \"日本\"" \
64
+ textcolor "#ef2929" \
65
+ at first 547382,graph -0.1 right
66
+ set output "search-pgroonga-pg-bigm-all.pdf"
67
+ plot [0:550000] \
68
+ "search-ja.tsv" using 3:($2/1000) \
69
+ title columnheader \
70
+ with linespoints \
71
+ linestyle 5, \
72
+ "search-ja.tsv" using 7:($6/1000) \
73
+ title columnheader \
74
+ with linespoints \
75
+ linestyle 1
@@ -0,0 +1,5 @@
1
+ Query PGroonga "N hits(PGroonga)" Groonga "N hits(Groonga)" pg\\_bigm "N hits(pg\\_bigm)"
2
+ "PostgreSQL\nOR\nMySQL" 2 316 1 316 49 311
3
+ データベース 49 14709 31 14709 1300 14706
4
+ テレビアニメ 65 20389 38 20389 2800 20389
5
+ 日本 563 537382 59 537382 479 537382
@@ -0,0 +1,29 @@
1
+ set terminal pdfcairo enhanced color transparent rounded
2
+
3
+ set key outside center top horizontal reverse Left samplen 2
4
+ unset border
5
+ set xtics scale 0
6
+ set ytics scale 0
7
+ set grid ytics linewidth 1 linetype -1
8
+
9
+ set key font "Sans,18"
10
+ set title font "Sans,18"
11
+ set xlabel font "Sans,18"
12
+ set ylabel font "Sans,18"
13
+ set label 1 font "Sans,18"
14
+ set label 2 font "Sans,18"
15
+ set label 3 font "Sans,18"
16
+ set label 4 font "Sans,18"
17
+ set label 5 font "Sans,18"
18
+ set label 6 font "Sans,18"
19
+
20
+ set style line 1 lt 1 lc rgbcolor "#3465a4" lw 2.5 pt 7 ps 1
21
+ set style line 2 lt 1 lc rgbcolor "#edd400" lw 2.5 pt 7 ps 1
22
+ set style line 3 lt 1 lc rgbcolor "#888a85" lw 2.5 pt 5 ps 1
23
+ set style line 4 lt 1 lc rgbcolor "#f57900" lw 2.5 pt 5 ps 1
24
+ set style line 5 lt 1 lc rgbcolor "#ad7fa8" lw 2.5 pt 9 ps 1
25
+ set style line 6 lt 1 lc rgbcolor "#4e9a06" lw 2.5 pt 9 ps 1
26
+ set style line 7 lt 1 lc rgbcolor "#ef2929" lw 2.5 pt 1 ps 1
27
+ set style line 8 lt 1 lc rgbcolor "#5c3566" lw 2.5 pt 1 ps 1
28
+ set style line 9 lt 1 lc rgbcolor "#c17d11" lw 2.5 pt 3 ps 1
29
+ set style line 10 lt 1 lc rgbcolor "#dce775" lw 2.5 pt 3 ps 1
@@ -0,0 +1,674 @@
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="166.78345mm"
13
+ height="104.96022mm"
14
+ viewBox="0 0 590.96499 371.9063"
15
+ id="svg2"
16
+ version="1.1"
17
+ inkscape:version="0.91 r13725"
18
+ sodipodi:docname="gin-n-gram-index.svg">
19
+ <defs
20
+ id="defs4">
21
+ <marker
22
+ inkscape:isstock="true"
23
+ style="overflow:visible"
24
+ id="marker4651"
25
+ refX="0"
26
+ refY="0"
27
+ orient="auto"
28
+ inkscape:stockid="Arrow1Lend">
29
+ <path
30
+ inkscape:connector-curvature="0"
31
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
32
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
33
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
34
+ id="path4653" />
35
+ </marker>
36
+ <marker
37
+ inkscape:isstock="true"
38
+ style="overflow:visible"
39
+ id="marker6139"
40
+ refX="0"
41
+ refY="0"
42
+ orient="auto"
43
+ inkscape:stockid="Arrow1Lend">
44
+ <path
45
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
46
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
47
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
48
+ id="path6141"
49
+ inkscape:connector-curvature="0" />
50
+ </marker>
51
+ <marker
52
+ inkscape:stockid="Arrow1Lend"
53
+ orient="auto"
54
+ refY="0"
55
+ refX="0"
56
+ id="marker5193"
57
+ style="overflow:visible"
58
+ inkscape:isstock="true"
59
+ inkscape:collect="always">
60
+ <path
61
+ id="path5195"
62
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
63
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
64
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
65
+ inkscape:connector-curvature="0" />
66
+ </marker>
67
+ <marker
68
+ inkscape:stockid="TriangleInS"
69
+ orient="auto"
70
+ refY="0"
71
+ refX="0"
72
+ id="TriangleInS"
73
+ style="overflow:visible"
74
+ inkscape:isstock="true">
75
+ <path
76
+ id="path8271"
77
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
78
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1pt;stroke-opacity:1"
79
+ transform="scale(-0.2,-0.2)"
80
+ inkscape:connector-curvature="0" />
81
+ </marker>
82
+ <marker
83
+ inkscape:stockid="TriangleOutS"
84
+ orient="auto"
85
+ refY="0"
86
+ refX="0"
87
+ id="marker9378"
88
+ style="overflow:visible"
89
+ inkscape:isstock="true">
90
+ <path
91
+ id="path9380"
92
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
93
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1pt;stroke-opacity:1"
94
+ transform="scale(0.2,0.2)"
95
+ inkscape:connector-curvature="0" />
96
+ </marker>
97
+ <marker
98
+ inkscape:stockid="TriangleOutS"
99
+ orient="auto"
100
+ refY="0"
101
+ refX="0"
102
+ id="TriangleOutS"
103
+ style="overflow:visible"
104
+ inkscape:isstock="true">
105
+ <path
106
+ id="path8280"
107
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
108
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1pt;stroke-opacity:1"
109
+ transform="scale(0.2,0.2)"
110
+ inkscape:connector-curvature="0" />
111
+ </marker>
112
+ <marker
113
+ inkscape:stockid="Arrow2Sstart"
114
+ orient="auto"
115
+ refY="0"
116
+ refX="0"
117
+ id="marker9150"
118
+ style="overflow:visible"
119
+ inkscape:isstock="true">
120
+ <path
121
+ id="path9152"
122
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
123
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
124
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
125
+ inkscape:connector-curvature="0" />
126
+ </marker>
127
+ <marker
128
+ inkscape:stockid="Arrow2Sstart"
129
+ orient="auto"
130
+ refY="0"
131
+ refX="0"
132
+ id="marker9044"
133
+ style="overflow:visible"
134
+ inkscape:isstock="true">
135
+ <path
136
+ id="path9046"
137
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
138
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
139
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
140
+ inkscape:connector-curvature="0" />
141
+ </marker>
142
+ <marker
143
+ inkscape:stockid="Arrow2Sstart"
144
+ orient="auto"
145
+ refY="0"
146
+ refX="0"
147
+ id="marker8944"
148
+ style="overflow:visible"
149
+ inkscape:isstock="true">
150
+ <path
151
+ id="path8946"
152
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
153
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
154
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
155
+ inkscape:connector-curvature="0" />
156
+ </marker>
157
+ <marker
158
+ inkscape:stockid="Arrow2Sstart"
159
+ orient="auto"
160
+ refY="0"
161
+ refX="0"
162
+ id="Arrow2Sstart"
163
+ style="overflow:visible"
164
+ inkscape:isstock="true">
165
+ <path
166
+ id="path8162"
167
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
168
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
169
+ transform="matrix(0.3,0,0,0.3,-0.69,0)"
170
+ inkscape:connector-curvature="0" />
171
+ </marker>
172
+ <marker
173
+ inkscape:stockid="Arrow1Sstart"
174
+ orient="auto"
175
+ refY="0"
176
+ refX="0"
177
+ id="Arrow1Sstart"
178
+ style="overflow:visible"
179
+ inkscape:isstock="true">
180
+ <path
181
+ id="path8144"
182
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
183
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1pt;stroke-opacity:1"
184
+ transform="matrix(0.2,0,0,0.2,1.2,0)"
185
+ inkscape:connector-curvature="0" />
186
+ </marker>
187
+ <marker
188
+ inkscape:stockid="Arrow1Send"
189
+ orient="auto"
190
+ refY="0"
191
+ refX="0"
192
+ id="Arrow1Send"
193
+ style="overflow:visible"
194
+ inkscape:isstock="true">
195
+ <path
196
+ id="path8147"
197
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
198
+ style="fill:#a40000;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1pt;stroke-opacity:1"
199
+ transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
200
+ inkscape:connector-curvature="0" />
201
+ </marker>
202
+ <marker
203
+ inkscape:stockid="Arrow1Mend"
204
+ orient="auto"
205
+ refY="0"
206
+ refX="0"
207
+ id="Arrow1Mend"
208
+ style="overflow:visible"
209
+ inkscape:isstock="true">
210
+ <path
211
+ id="path8141"
212
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
213
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
214
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
215
+ inkscape:connector-curvature="0" />
216
+ </marker>
217
+ <marker
218
+ inkscape:stockid="Arrow1Mstart"
219
+ orient="auto"
220
+ refY="0"
221
+ refX="0"
222
+ id="Arrow1Mstart"
223
+ style="overflow:visible"
224
+ inkscape:isstock="true">
225
+ <path
226
+ id="path8138"
227
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
228
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
229
+ transform="matrix(0.4,0,0,0.4,4,0)"
230
+ inkscape:connector-curvature="0" />
231
+ </marker>
232
+ <marker
233
+ inkscape:stockid="Arrow1Lend"
234
+ orient="auto"
235
+ refY="0"
236
+ refX="0"
237
+ id="marker8070"
238
+ style="overflow:visible"
239
+ inkscape:isstock="true">
240
+ <path
241
+ inkscape:connector-curvature="0"
242
+ id="path8072"
243
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
244
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
245
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
246
+ </marker>
247
+ <marker
248
+ inkscape:isstock="true"
249
+ style="overflow:visible"
250
+ id="marker4356"
251
+ refX="0"
252
+ refY="0"
253
+ orient="auto"
254
+ inkscape:stockid="Arrow1Lend"
255
+ inkscape:collect="always">
256
+ <path
257
+ inkscape:connector-curvature="0"
258
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
259
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
260
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
261
+ id="path4358" />
262
+ </marker>
263
+ <marker
264
+ inkscape:isstock="true"
265
+ style="overflow:visible"
266
+ id="marker5129"
267
+ refX="0"
268
+ refY="0"
269
+ orient="auto"
270
+ inkscape:stockid="Arrow1Lend">
271
+ <path
272
+ inkscape:connector-curvature="0"
273
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
274
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
275
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
276
+ id="path5131" />
277
+ </marker>
278
+ </defs>
279
+ <sodipodi:namedview
280
+ id="base"
281
+ pagecolor="#ffffff"
282
+ bordercolor="#666666"
283
+ borderopacity="1.0"
284
+ inkscape:pageopacity="0.0"
285
+ inkscape:pageshadow="2"
286
+ inkscape:zoom="0.98994949"
287
+ inkscape:cx="115.97673"
288
+ inkscape:cy="214.86356"
289
+ inkscape:document-units="px"
290
+ inkscape:current-layer="layer1"
291
+ showgrid="false"
292
+ inkscape:window-width="1920"
293
+ inkscape:window-height="1016"
294
+ inkscape:window-x="1920"
295
+ inkscape:window-y="27"
296
+ inkscape:window-maximized="1"
297
+ fit-margin-top="5"
298
+ fit-margin-left="5"
299
+ fit-margin-right="5"
300
+ fit-margin-bottom="5" />
301
+ <metadata
302
+ id="metadata7">
303
+ <rdf:RDF>
304
+ <cc:Work
305
+ rdf:about="">
306
+ <dc:format>image/svg+xml</dc:format>
307
+ <dc:type
308
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
309
+ <dc:title></dc:title>
310
+ </cc:Work>
311
+ </rdf:RDF>
312
+ </metadata>
313
+ <g
314
+ inkscape:label="レイヤー 1"
315
+ inkscape:groupmode="layer"
316
+ id="layer1"
317
+ transform="translate(130.51043,-268.3643)">
318
+ <text
319
+ xml:space="preserve"
320
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
321
+ x="207.08127"
322
+ y="275.5549"
323
+ id="text4854"
324
+ sodipodi:linespacing="125%"><tspan
325
+ sodipodi:role="line"
326
+ id="tspan4856"
327
+ x="207.08127"
328
+ y="275.5549" /></text>
329
+ <text
330
+ xml:space="preserve"
331
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
332
+ x="122.2434"
333
+ y="309.76083"
334
+ id="text6240"
335
+ sodipodi:linespacing="125%"><tspan
336
+ sodipodi:role="line"
337
+ x="122.2434"
338
+ y="309.76083"
339
+ id="tspan6242">GIN</tspan></text>
340
+ <path
341
+ sodipodi:nodetypes="cc"
342
+ inkscape:connector-curvature="0"
343
+ id="path4336"
344
+ d="m -85.254908,465.77944 0,71.51778"
345
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4356)" />
346
+ <g
347
+ transform="translate(-7.3669351,298.79854)"
348
+ id="g4338">
349
+ <text
350
+ xml:space="preserve"
351
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
352
+ x="-105.25858"
353
+ y="277.1691"
354
+ id="text4340"
355
+ sodipodi:linespacing="125%"><tspan
356
+ sodipodi:role="line"
357
+ x="-105.25858"
358
+ y="277.1691"
359
+ id="tspan4342">&quot;ca&quot;,&quot;at&quot;</tspan></text>
360
+ </g>
361
+ <text
362
+ sodipodi:linespacing="125%"
363
+ id="text4352"
364
+ y="506.69946"
365
+ x="-75.577034"
366
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
367
+ xml:space="preserve"><tspan
368
+ y="506.69946"
369
+ x="-75.577034"
370
+ id="tspan4354"
371
+ sodipodi:role="line">Tokenize</tspan></text>
372
+ <text
373
+ sodipodi:linespacing="125%"
374
+ id="text5982"
375
+ y="309.76083"
376
+ x="-109.89301"
377
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
378
+ xml:space="preserve"><tspan
379
+ y="309.76083"
380
+ x="-109.89301"
381
+ id="tspan5984"
382
+ sodipodi:role="line">Documents</tspan></text>
383
+ <g
384
+ id="g5244"
385
+ transform="translate(0,-5.2667542)">
386
+ <rect
387
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000100;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
388
+ id="rect5964"
389
+ width="153.02829"
390
+ height="129.15594"
391
+ x="-111.79389"
392
+ y="327.50415"
393
+ rx="5"
394
+ ry="5" />
395
+ <text
396
+ xml:space="preserve"
397
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
398
+ x="-61.932198"
399
+ y="408.41418"
400
+ id="text5966"
401
+ sodipodi:linespacing="125%"><tspan
402
+ sodipodi:role="line"
403
+ id="tspan5968"
404
+ x="-61.932198"
405
+ y="408.41418">cat</tspan></text>
406
+ <text
407
+ sodipodi:linespacing="125%"
408
+ id="text5970"
409
+ y="446.9856"
410
+ x="-61.932198"
411
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
412
+ xml:space="preserve"><tspan
413
+ y="446.9856"
414
+ x="-61.932198"
415
+ id="tspan5972"
416
+ sodipodi:role="line">at car</tspan></text>
417
+ <text
418
+ xml:space="preserve"
419
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#4e9a06;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
420
+ x="-107.62763"
421
+ y="405.91418"
422
+ id="text5974"
423
+ sodipodi:linespacing="125%"><tspan
424
+ sodipodi:role="line"
425
+ id="tspan5976"
426
+ x="-107.62763"
427
+ y="405.91418">10</tspan></text>
428
+ <text
429
+ sodipodi:linespacing="125%"
430
+ id="text5978"
431
+ y="446.51685"
432
+ x="-105.48481"
433
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
434
+ xml:space="preserve"><tspan
435
+ y="446.51685"
436
+ x="-105.48481"
437
+ id="tspan5980"
438
+ sodipodi:role="line">20</tspan></text>
439
+ <text
440
+ xml:space="preserve"
441
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
442
+ x="-106.22444"
443
+ y="360.25934"
444
+ id="text5986"
445
+ sodipodi:linespacing="125%"><tspan
446
+ sodipodi:role="line"
447
+ id="tspan5988"
448
+ x="-106.22444"
449
+ y="360.25934">ID</tspan></text>
450
+ <text
451
+ xml:space="preserve"
452
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
453
+ x="-60.55138"
454
+ y="359.4856"
455
+ id="text5990"
456
+ sodipodi:linespacing="125%"><tspan
457
+ sodipodi:role="line"
458
+ id="tspan5992"
459
+ x="-60.55138"
460
+ y="359.4856">Text</tspan></text>
461
+ <path
462
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
463
+ d="m -67.995846,328.5143 0,128.26835"
464
+ id="path5994"
465
+ inkscape:connector-curvature="0"
466
+ sodipodi:nodetypes="cc" />
467
+ <path
468
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
469
+ d="m -111.37545,369.11413 151.78571,0"
470
+ id="path5996"
471
+ inkscape:connector-curvature="0"
472
+ sodipodi:nodetypes="cc" />
473
+ </g>
474
+ <g
475
+ id="g5261">
476
+ <rect
477
+ ry="5"
478
+ rx="5"
479
+ y="322.2374"
480
+ x="115.74999"
481
+ height="246.79007"
482
+ width="325.98804"
483
+ id="rect6178"
484
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000100;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
485
+ <text
486
+ xml:space="preserve"
487
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
488
+ x="123.91734"
489
+ y="400.63477"
490
+ id="text6180"
491
+ sodipodi:linespacing="125%"><tspan
492
+ sodipodi:role="line"
493
+ id="tspan6182"
494
+ x="123.91734"
495
+ y="400.63477">&quot;ca&quot;</tspan></text>
496
+ <text
497
+ xml:space="preserve"
498
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
499
+ x="123.91734"
500
+ y="442.09155"
501
+ id="text6184"
502
+ sodipodi:linespacing="125%"><tspan
503
+ sodipodi:role="line"
504
+ id="tspan6186"
505
+ x="123.91734"
506
+ y="442.09155">&quot;at&quot;</tspan></text>
507
+ <text
508
+ xml:space="preserve"
509
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
510
+ x="123.82359"
511
+ y="481.53308"
512
+ id="text6188"
513
+ sodipodi:linespacing="125%"><tspan
514
+ sodipodi:role="line"
515
+ id="tspan6190"
516
+ x="123.82359"
517
+ y="481.53308">&quot;t &quot;</tspan></text>
518
+ <text
519
+ xml:space="preserve"
520
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
521
+ x="123.20676"
522
+ y="356.73624"
523
+ id="text6192"
524
+ sodipodi:linespacing="125%"><tspan
525
+ sodipodi:role="line"
526
+ id="tspan6194"
527
+ x="123.20676"
528
+ y="356.73624">Token</tspan></text>
529
+ <text
530
+ xml:space="preserve"
531
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
532
+ x="330.32129"
533
+ y="355.77066"
534
+ id="text6196"
535
+ sodipodi:linespacing="125%"><tspan
536
+ sodipodi:role="line"
537
+ x="330.32129"
538
+ y="355.77066"
539
+ id="tspan6198">Posting list</tspan></text>
540
+ <path
541
+ sodipodi:nodetypes="cc"
542
+ inkscape:connector-curvature="0"
543
+ id="path6236"
544
+ d="m 115.46943,365.66717 325.79402,0"
545
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
546
+ <path
547
+ sodipodi:nodetypes="cc"
548
+ inkscape:connector-curvature="0"
549
+ id="path6238"
550
+ d="m 221.69089,322.53325 0,245.63199"
551
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
552
+ <text
553
+ sodipodi:linespacing="125%"
554
+ id="text6266"
555
+ y="398.88031"
556
+ x="232.84943"
557
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
558
+ xml:space="preserve"><tspan
559
+ y="398.88031"
560
+ x="232.84943"
561
+ id="tspan6268"
562
+ sodipodi:role="line"><tspan
563
+ id="tspan6270"
564
+ style="fill:#4e9a06">10</tspan>,<tspan
565
+ id="tspan6274"
566
+ style="fill:#ce5c00">20</tspan><tspan
567
+ id="tspan6276"
568
+ style="fill:#5c3566" /></tspan></text>
569
+ <text
570
+ sodipodi:linespacing="125%"
571
+ id="text6278"
572
+ y="440.36835"
573
+ x="232.84943"
574
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
575
+ xml:space="preserve"><tspan
576
+ y="440.36835"
577
+ x="232.84943"
578
+ id="tspan6280"
579
+ sodipodi:role="line"><tspan
580
+ id="tspan6282"
581
+ style="fill:#4e9a06">10</tspan>,<tspan
582
+ id="tspan6286"
583
+ style="fill:#ce5c00">20</tspan></tspan></text>
584
+ <text
585
+ sodipodi:linespacing="125%"
586
+ id="text6290"
587
+ y="480.34113"
588
+ x="235.00568"
589
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
590
+ xml:space="preserve"><tspan
591
+ y="480.34113"
592
+ x="235.00568"
593
+ id="tspan6292"
594
+ sodipodi:role="line"><tspan
595
+ id="tspan6294"
596
+ style="fill:#ce5c00">20</tspan><tspan
597
+ id="tspan6296"
598
+ style="fill:#5c3566" /></tspan></text>
599
+ <text
600
+ sodipodi:linespacing="125%"
601
+ id="text4697"
602
+ y="517.06335"
603
+ x="123.91734"
604
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
605
+ xml:space="preserve"><tspan
606
+ y="517.06335"
607
+ x="123.91734"
608
+ id="tspan4699"
609
+ sodipodi:role="line">&quot; c&quot;</tspan></text>
610
+ <text
611
+ sodipodi:linespacing="125%"
612
+ id="text4701"
613
+ y="558.52014"
614
+ x="123.91734"
615
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
616
+ xml:space="preserve"><tspan
617
+ y="558.52014"
618
+ x="123.91734"
619
+ id="tspan4703"
620
+ sodipodi:role="line">&quot;ar&quot;</tspan></text>
621
+ <text
622
+ xml:space="preserve"
623
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
624
+ x="235.00568"
625
+ y="518.9126"
626
+ id="text4713"
627
+ sodipodi:linespacing="125%"><tspan
628
+ sodipodi:role="line"
629
+ id="tspan4715"
630
+ x="235.00568"
631
+ y="518.9126"><tspan
632
+ style="fill:#ce5c00"
633
+ id="tspan4717">20</tspan><tspan
634
+ style="fill:#5c3566"
635
+ id="tspan4719" /></tspan></text>
636
+ <text
637
+ sodipodi:linespacing="125%"
638
+ id="text4721"
639
+ y="556.76971"
640
+ x="235.00568"
641
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
642
+ xml:space="preserve"><tspan
643
+ y="556.76971"
644
+ x="235.00568"
645
+ id="tspan4723"
646
+ sodipodi:role="line"><tspan
647
+ id="tspan4725"
648
+ style="fill:#ce5c00">20</tspan><tspan
649
+ id="tspan4727"
650
+ style="fill:#5c3566" /></tspan></text>
651
+ </g>
652
+ <path
653
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5193)"
654
+ d="M 53.213202,561.13478 102.6512,533.2479"
655
+ id="path5191"
656
+ inkscape:connector-curvature="0"
657
+ sodipodi:nodetypes="cc" />
658
+ <g
659
+ id="g4635"
660
+ transform="translate(-7.3669351,372.53968)">
661
+ <text
662
+ sodipodi:linespacing="125%"
663
+ id="text4637"
664
+ y="245.85437"
665
+ x="-105.25858"
666
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
667
+ xml:space="preserve"><tspan
668
+ id="tspan4639"
669
+ y="245.85437"
670
+ x="-105.25858"
671
+ sodipodi:role="line">&quot;at&quot;,&quot;t &quot;,&quot; c&quot;,&quot;ca&quot;,&quot;ar&quot;</tspan></text>
672
+ </g>
673
+ </g>
674
+ </svg>