1
#line 1 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
3
* parse SVG path specifications
5
* Copyright 2007 MenTaLguY <mental@rydia.net>
6
* Copyright 2007 Aaron Spike <aaron@ekips.org>
8
* This library is free software; you can redistribute it and/or
9
* modify it either under the terms of the GNU Lesser General Public
10
* License version 2.1 as published by the Free Software Foundation
11
* (the "LGPL") or, at your option, under the terms of the Mozilla
12
* Public License Version 1.1 (the "MPL"). If you do not alter this
13
* notice, a recipient may use your version of this file under either
14
* the MPL or the LGPL.
16
* You should have received a copy of the LGPL along with this library
17
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
* You should have received a copy of the MPL along with this library
20
* in the file COPYING-MPL-1.1
22
* The contents of this file are subject to the Mozilla Public License
23
* Version 1.1 (the "License"); you may not use this file except in
24
* compliance with the License. You may obtain a copy of the License at
25
* http://www.mozilla.org/MPL/
27
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
28
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
29
* the specific language governing rights and limitations.
40
#include "svg-path-parser.h"
48
Parser(SVGPathSink &sink) : _sink(sink) {}
50
void parse(char const *str) throw(SVGPathParseError);
58
std::vector<double> _params;
63
_current = _initial = Point(0, 0);
64
_quad_tangent = _cubic_tangent = Point(0, 0);
68
void _push(double value) {
69
_params.push_back(value);
73
double value = _params.back();
82
double _pop_coord(Geom::Dim2 axis) {
86
return _pop() + _current[axis];
91
double y = _pop_coord(Geom::Y);
92
double x = _pop_coord(Geom::X);
96
void _moveTo(Point p) {
97
_quad_tangent = _cubic_tangent = _current = _initial = p;
101
void _lineTo(Point p) {
102
_quad_tangent = _cubic_tangent = _current = p;
106
void _curveTo(Point c0, Point c1, Point p) {
107
_quad_tangent = _current = p;
108
_cubic_tangent = p + ( p - c1 );
109
_sink.curveTo(c0, c1, p);
112
void _quadTo(Point c, Point p) {
113
_cubic_tangent = _current = p;
114
_quad_tangent = p + ( p - c );
118
void _arcTo(double rx, double ry, double angle,
119
bool large_arc, bool sweep, Point p)
121
_quad_tangent = _cubic_tangent = _current = p;
122
_sink.arcTo(rx, ry, angle, large_arc, sweep, p);
126
_quad_tangent = _cubic_tangent = _current = _initial;
132
#line 133 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
133
static const char _svg_path_actions[] = {
134
0, 1, 0, 1, 1, 1, 2, 1,
135
3, 1, 4, 1, 5, 1, 15, 1,
136
16, 2, 1, 0, 2, 1, 2, 2,
137
1, 3, 2, 1, 6, 2, 1, 7,
138
2, 1, 8, 2, 1, 9, 2, 1,
139
10, 2, 1, 11, 2, 1, 12, 2,
140
1, 13, 2, 1, 14, 2, 2, 1,
141
2, 3, 1, 2, 4, 0, 2, 5,
142
0, 2, 15, 16, 3, 1, 6, 0,
143
3, 1, 6, 16, 3, 1, 7, 0,
144
3, 1, 7, 16, 3, 1, 8, 0,
145
3, 1, 8, 16, 3, 1, 9, 0,
146
3, 1, 9, 16, 3, 1, 10, 0,
147
3, 1, 10, 16, 3, 1, 11, 0,
148
3, 1, 11, 16, 3, 1, 12, 0,
149
3, 1, 12, 16, 3, 1, 13, 0,
150
3, 1, 13, 16, 3, 1, 14, 0,
154
static const short _svg_path_key_offsets[] = {
155
0, 7, 7, 16, 25, 28, 30, 42,
156
52, 55, 57, 90, 121, 124, 126, 138,
157
148, 151, 153, 186, 195, 207, 216, 249,
158
256, 263, 265, 275, 283, 290, 292, 304,
159
314, 317, 319, 328, 335, 341, 346, 353,
160
359, 364, 374, 377, 379, 391, 401, 404,
161
406, 437, 466, 476, 488, 498, 507, 509,
162
521, 533, 544, 554, 561, 567, 572, 584,
163
595, 607, 617, 620, 622, 655, 664, 695,
164
704, 713, 716, 718, 730, 740, 743, 745,
165
757, 767, 770, 772, 784, 794, 797, 799,
166
811, 821, 824, 826, 838, 848, 851, 853,
167
886, 917, 929, 938, 950, 959, 971, 980,
168
992, 1001, 1013, 1022, 1055, 1059, 1061, 1092,
169
1101, 1110, 1113, 1115, 1148, 1179, 1182, 1184,
170
1217, 1226, 1259, 1263, 1265, 1296, 1305, 1314,
171
1323, 1326, 1328, 1340, 1350, 1353, 1355, 1367,
172
1377, 1380, 1382, 1394, 1404, 1407, 1409, 1442,
173
1473, 1485, 1494, 1506, 1515, 1527, 1536, 1569,
174
1573, 1575, 1606, 1615, 1624, 1627, 1629, 1641,
175
1651, 1654, 1656, 1668, 1678, 1681, 1683, 1695,
176
1705, 1708, 1710, 1743, 1774, 1786, 1795, 1807,
177
1816, 1828, 1837, 1870, 1874, 1876, 1907, 1916,
178
1925, 1928, 1930, 1942, 1952, 1955, 1957, 1990,
179
2021, 2033, 2042, 2075, 2079, 2081, 2112, 2121,
180
2130, 2133, 2135, 2168, 2199, 2202, 2204, 2237,
181
2246, 2279, 2283, 2285, 2316, 2341, 2366, 2373,
182
2382, 2391, 2424, 2428, 2430, 2461, 2494, 2503,
183
2512, 2524, 2533, 2566, 2570, 2572, 2603, 2612,
184
2621, 2630, 2639, 2672, 2676, 2678, 2709, 2742,
185
2746, 2748, 2758, 2791, 2795, 2797, 2807, 2811,
186
2813, 2823, 2827, 2829, 2839, 2843, 2845, 2855,
187
2859, 2861, 2871, 2875, 2877, 2887, 2891, 2893,
188
2903, 2936, 2940, 2942, 2952, 2956, 2958, 2968,
189
2972, 2974, 2984, 2988, 2990, 3000, 3004, 3006,
190
3016, 3020, 3022, 3051, 3055, 3057, 3088, 3121,
191
3130, 3142, 3146, 3148, 3158, 3170, 3175, 3185,
192
3189, 3191, 3198, 3208, 3212, 3214, 3224, 3236,
193
3248, 3260, 3264, 3266, 3276, 3288, 3292, 3294,
194
3304, 3313, 3317, 3319, 3327, 3336, 3341, 3346,
195
3358, 3362, 3364, 3395, 3399, 3401, 3411
198
static const char _svg_path_trans_keys[] = {
199
0, 13, 32, 77, 109, 9, 10, 13,
200
32, 43, 45, 46, 9, 10, 48, 57,
201
13, 32, 43, 45, 46, 9, 10, 48,
202
57, 46, 48, 57, 48, 57, 13, 32,
203
44, 46, 69, 101, 9, 10, 43, 45,
204
48, 57, 13, 32, 44, 46, 9, 10,
205
43, 45, 48, 57, 46, 48, 57, 48,
206
57, 0, 13, 32, 44, 46, 65, 67,
207
69, 72, 76, 77, 81, 83, 84, 86,
208
90, 97, 99, 101, 104, 108, 109, 113,
209
115, 116, 118, 122, 9, 10, 43, 45,
210
48, 57, 0, 13, 32, 44, 46, 65,
211
67, 72, 76, 77, 81, 83, 84, 86,
212
90, 97, 99, 104, 108, 109, 113, 115,
213
116, 118, 122, 9, 10, 43, 45, 48,
214
57, 46, 48, 57, 48, 57, 13, 32,
215
44, 46, 69, 101, 9, 10, 43, 45,
216
48, 57, 13, 32, 44, 46, 9, 10,
217
43, 45, 48, 57, 46, 48, 57, 48,
218
57, 0, 13, 32, 44, 46, 65, 67,
219
69, 72, 76, 77, 81, 83, 84, 86,
220
90, 97, 99, 101, 104, 108, 109, 113,
221
115, 116, 118, 122, 9, 10, 43, 45,
222
48, 57, 13, 32, 43, 45, 46, 9,
223
10, 48, 57, 13, 32, 44, 46, 69,
224
101, 9, 10, 43, 45, 48, 57, 13,
225
32, 43, 45, 46, 9, 10, 48, 57,
226
0, 13, 32, 44, 46, 65, 67, 69,
227
72, 76, 77, 81, 83, 84, 86, 90,
228
97, 99, 101, 104, 108, 109, 113, 115,
229
116, 118, 122, 9, 10, 43, 45, 48,
230
57, 13, 32, 46, 9, 10, 48, 57,
231
13, 32, 46, 9, 10, 48, 57, 48,
232
57, 13, 32, 44, 46, 69, 101, 9,
233
10, 48, 57, 13, 32, 44, 46, 9,
234
10, 48, 57, 13, 32, 46, 9, 10,
235
48, 57, 48, 57, 13, 32, 44, 46,
236
69, 101, 9, 10, 43, 45, 48, 57,
237
13, 32, 44, 46, 9, 10, 43, 45,
238
48, 57, 46, 48, 57, 48, 57, 13,
239
32, 44, 69, 101, 9, 10, 48, 57,
240
13, 32, 44, 48, 49, 9, 10, 13,
241
32, 48, 49, 9, 10, 13, 32, 44,
242
9, 10, 13, 32, 44, 48, 49, 9,
243
10, 13, 32, 48, 49, 9, 10, 13,
244
32, 44, 9, 10, 13, 32, 44, 46,
245
9, 10, 43, 45, 48, 57, 46, 48,
246
57, 48, 57, 13, 32, 44, 46, 69,
247
101, 9, 10, 43, 45, 48, 57, 13,
248
32, 44, 46, 9, 10, 43, 45, 48,
249
57, 46, 48, 57, 48, 57, 0, 13,
250
32, 44, 46, 65, 67, 69, 72, 76,
251
77, 81, 83, 84, 86, 90, 97, 99,
252
101, 104, 108, 109, 113, 115, 116, 118,
253
122, 9, 10, 48, 57, 0, 13, 32,
254
44, 46, 65, 67, 72, 76, 77, 81,
255
83, 84, 86, 90, 97, 99, 104, 108,
256
109, 113, 115, 116, 118, 122, 9, 10,
257
48, 57, 13, 32, 44, 46, 69, 101,
258
9, 10, 48, 57, 13, 32, 44, 46,
259
69, 101, 9, 10, 43, 45, 48, 57,
260
13, 32, 44, 46, 9, 10, 43, 45,
261
48, 57, 13, 32, 43, 45, 46, 9,
262
10, 48, 57, 48, 57, 13, 32, 44,
263
46, 69, 101, 9, 10, 43, 45, 48,
264
57, 13, 32, 44, 46, 48, 49, 9,
265
10, 43, 45, 50, 57, 13, 32, 43,
266
45, 46, 48, 49, 9, 10, 50, 57,
267
13, 32, 44, 46, 69, 101, 9, 10,
268
48, 57, 13, 32, 44, 48, 49, 9,
269
10, 13, 32, 48, 49, 9, 10, 13,
270
32, 44, 9, 10, 13, 32, 44, 46,
271
48, 49, 9, 10, 43, 45, 50, 57,
272
13, 32, 43, 45, 46, 48, 49, 9,
273
10, 50, 57, 13, 32, 44, 46, 69,
274
101, 9, 10, 43, 45, 48, 57, 13,
275
32, 44, 46, 9, 10, 43, 45, 48,
276
57, 46, 48, 57, 48, 57, 0, 13,
277
32, 44, 46, 65, 67, 69, 72, 76,
278
77, 81, 83, 84, 86, 90, 97, 99,
279
101, 104, 108, 109, 113, 115, 116, 118,
280
122, 9, 10, 43, 45, 48, 57, 13,
281
32, 43, 45, 46, 9, 10, 48, 57,
282
0, 13, 32, 44, 46, 65, 67, 69,
283
72, 76, 77, 81, 83, 84, 86, 90,
284
97, 99, 101, 104, 108, 109, 113, 115,
285
116, 118, 122, 9, 10, 48, 57, 13,
286
32, 43, 45, 46, 9, 10, 48, 57,
287
13, 32, 43, 45, 46, 9, 10, 48,
288
57, 46, 48, 57, 48, 57, 13, 32,
289
44, 46, 69, 101, 9, 10, 43, 45,
290
48, 57, 13, 32, 44, 46, 9, 10,
291
43, 45, 48, 57, 46, 48, 57, 48,
292
57, 13, 32, 44, 46, 69, 101, 9,
293
10, 43, 45, 48, 57, 13, 32, 44,
294
46, 9, 10, 43, 45, 48, 57, 46,
295
48, 57, 48, 57, 13, 32, 44, 46,
296
69, 101, 9, 10, 43, 45, 48, 57,
297
13, 32, 44, 46, 9, 10, 43, 45,
298
48, 57, 46, 48, 57, 48, 57, 13,
299
32, 44, 46, 69, 101, 9, 10, 43,
300
45, 48, 57, 13, 32, 44, 46, 9,
301
10, 43, 45, 48, 57, 46, 48, 57,
302
48, 57, 13, 32, 44, 46, 69, 101,
303
9, 10, 43, 45, 48, 57, 13, 32,
304
44, 46, 9, 10, 43, 45, 48, 57,
305
46, 48, 57, 48, 57, 0, 13, 32,
306
44, 46, 65, 67, 69, 72, 76, 77,
307
81, 83, 84, 86, 90, 97, 99, 101,
308
104, 108, 109, 113, 115, 116, 118, 122,
309
9, 10, 43, 45, 48, 57, 0, 13,
310
32, 44, 46, 65, 67, 72, 76, 77,
311
81, 83, 84, 86, 90, 97, 99, 104,
312
108, 109, 113, 115, 116, 118, 122, 9,
313
10, 43, 45, 48, 57, 13, 32, 44,
314
46, 69, 101, 9, 10, 43, 45, 48,
315
57, 13, 32, 43, 45, 46, 9, 10,
316
48, 57, 13, 32, 44, 46, 69, 101,
317
9, 10, 43, 45, 48, 57, 13, 32,
318
43, 45, 46, 9, 10, 48, 57, 13,
319
32, 44, 46, 69, 101, 9, 10, 43,
320
45, 48, 57, 13, 32, 43, 45, 46,
321
9, 10, 48, 57, 13, 32, 44, 46,
322
69, 101, 9, 10, 43, 45, 48, 57,
323
13, 32, 43, 45, 46, 9, 10, 48,
324
57, 13, 32, 44, 46, 69, 101, 9,
325
10, 43, 45, 48, 57, 13, 32, 43,
326
45, 46, 9, 10, 48, 57, 0, 13,
327
32, 44, 46, 65, 67, 69, 72, 76,
328
77, 81, 83, 84, 86, 90, 97, 99,
329
101, 104, 108, 109, 113, 115, 116, 118,
330
122, 9, 10, 43, 45, 48, 57, 43,
331
45, 48, 57, 48, 57, 0, 13, 32,
332
44, 46, 65, 67, 72, 76, 77, 81,
333
83, 84, 86, 90, 97, 99, 104, 108,
334
109, 113, 115, 116, 118, 122, 9, 10,
335
43, 45, 48, 57, 13, 32, 43, 45,
336
46, 9, 10, 48, 57, 13, 32, 43,
337
45, 46, 9, 10, 48, 57, 46, 48,
338
57, 48, 57, 0, 13, 32, 44, 46,
339
65, 67, 69, 72, 76, 77, 81, 83,
340
84, 86, 90, 97, 99, 101, 104, 108,
341
109, 113, 115, 116, 118, 122, 9, 10,
342
43, 45, 48, 57, 0, 13, 32, 44,
343
46, 65, 67, 72, 76, 77, 81, 83,
344
84, 86, 90, 97, 99, 104, 108, 109,
345
113, 115, 116, 118, 122, 9, 10, 43,
346
45, 48, 57, 46, 48, 57, 48, 57,
347
0, 13, 32, 44, 46, 65, 67, 69,
348
72, 76, 77, 81, 83, 84, 86, 90,
349
97, 99, 101, 104, 108, 109, 113, 115,
350
116, 118, 122, 9, 10, 43, 45, 48,
351
57, 13, 32, 43, 45, 46, 9, 10,
352
48, 57, 0, 13, 32, 44, 46, 65,
353
67, 69, 72, 76, 77, 81, 83, 84,
354
86, 90, 97, 99, 101, 104, 108, 109,
355
113, 115, 116, 118, 122, 9, 10, 43,
356
45, 48, 57, 43, 45, 48, 57, 48,
357
57, 0, 13, 32, 44, 46, 65, 67,
358
72, 76, 77, 81, 83, 84, 86, 90,
359
97, 99, 104, 108, 109, 113, 115, 116,
360
118, 122, 9, 10, 43, 45, 48, 57,
361
13, 32, 43, 45, 46, 9, 10, 48,
362
57, 13, 32, 43, 45, 46, 9, 10,
363
48, 57, 13, 32, 43, 45, 46, 9,
364
10, 48, 57, 46, 48, 57, 48, 57,
365
13, 32, 44, 46, 69, 101, 9, 10,
366
43, 45, 48, 57, 13, 32, 44, 46,
367
9, 10, 43, 45, 48, 57, 46, 48,
368
57, 48, 57, 13, 32, 44, 46, 69,
369
101, 9, 10, 43, 45, 48, 57, 13,
370
32, 44, 46, 9, 10, 43, 45, 48,
371
57, 46, 48, 57, 48, 57, 13, 32,
372
44, 46, 69, 101, 9, 10, 43, 45,
373
48, 57, 13, 32, 44, 46, 9, 10,
374
43, 45, 48, 57, 46, 48, 57, 48,
375
57, 0, 13, 32, 44, 46, 65, 67,
376
69, 72, 76, 77, 81, 83, 84, 86,
377
90, 97, 99, 101, 104, 108, 109, 113,
378
115, 116, 118, 122, 9, 10, 43, 45,
379
48, 57, 0, 13, 32, 44, 46, 65,
380
67, 72, 76, 77, 81, 83, 84, 86,
381
90, 97, 99, 104, 108, 109, 113, 115,
382
116, 118, 122, 9, 10, 43, 45, 48,
383
57, 13, 32, 44, 46, 69, 101, 9,
384
10, 43, 45, 48, 57, 13, 32, 43,
385
45, 46, 9, 10, 48, 57, 13, 32,
386
44, 46, 69, 101, 9, 10, 43, 45,
387
48, 57, 13, 32, 43, 45, 46, 9,
388
10, 48, 57, 13, 32, 44, 46, 69,
389
101, 9, 10, 43, 45, 48, 57, 13,
390
32, 43, 45, 46, 9, 10, 48, 57,
391
0, 13, 32, 44, 46, 65, 67, 69,
392
72, 76, 77, 81, 83, 84, 86, 90,
393
97, 99, 101, 104, 108, 109, 113, 115,
394
116, 118, 122, 9, 10, 43, 45, 48,
395
57, 43, 45, 48, 57, 48, 57, 0,
396
13, 32, 44, 46, 65, 67, 72, 76,
397
77, 81, 83, 84, 86, 90, 97, 99,
398
104, 108, 109, 113, 115, 116, 118, 122,
399
9, 10, 43, 45, 48, 57, 13, 32,
400
43, 45, 46, 9, 10, 48, 57, 13,
401
32, 43, 45, 46, 9, 10, 48, 57,
402
46, 48, 57, 48, 57, 13, 32, 44,
403
46, 69, 101, 9, 10, 43, 45, 48,
404
57, 13, 32, 44, 46, 9, 10, 43,
405
45, 48, 57, 46, 48, 57, 48, 57,
406
13, 32, 44, 46, 69, 101, 9, 10,
407
43, 45, 48, 57, 13, 32, 44, 46,
408
9, 10, 43, 45, 48, 57, 46, 48,
409
57, 48, 57, 13, 32, 44, 46, 69,
410
101, 9, 10, 43, 45, 48, 57, 13,
411
32, 44, 46, 9, 10, 43, 45, 48,
412
57, 46, 48, 57, 48, 57, 0, 13,
413
32, 44, 46, 65, 67, 69, 72, 76,
414
77, 81, 83, 84, 86, 90, 97, 99,
415
101, 104, 108, 109, 113, 115, 116, 118,
416
122, 9, 10, 43, 45, 48, 57, 0,
417
13, 32, 44, 46, 65, 67, 72, 76,
418
77, 81, 83, 84, 86, 90, 97, 99,
419
104, 108, 109, 113, 115, 116, 118, 122,
420
9, 10, 43, 45, 48, 57, 13, 32,
421
44, 46, 69, 101, 9, 10, 43, 45,
422
48, 57, 13, 32, 43, 45, 46, 9,
423
10, 48, 57, 13, 32, 44, 46, 69,
424
101, 9, 10, 43, 45, 48, 57, 13,
425
32, 43, 45, 46, 9, 10, 48, 57,
426
13, 32, 44, 46, 69, 101, 9, 10,
427
43, 45, 48, 57, 13, 32, 43, 45,
428
46, 9, 10, 48, 57, 0, 13, 32,
429
44, 46, 65, 67, 69, 72, 76, 77,
430
81, 83, 84, 86, 90, 97, 99, 101,
431
104, 108, 109, 113, 115, 116, 118, 122,
432
9, 10, 43, 45, 48, 57, 43, 45,
433
48, 57, 48, 57, 0, 13, 32, 44,
434
46, 65, 67, 72, 76, 77, 81, 83,
435
84, 86, 90, 97, 99, 104, 108, 109,
436
113, 115, 116, 118, 122, 9, 10, 43,
437
45, 48, 57, 13, 32, 43, 45, 46,
438
9, 10, 48, 57, 13, 32, 43, 45,
439
46, 9, 10, 48, 57, 46, 48, 57,
440
48, 57, 13, 32, 44, 46, 69, 101,
441
9, 10, 43, 45, 48, 57, 13, 32,
442
44, 46, 9, 10, 43, 45, 48, 57,
443
46, 48, 57, 48, 57, 0, 13, 32,
444
44, 46, 65, 67, 69, 72, 76, 77,
445
81, 83, 84, 86, 90, 97, 99, 101,
446
104, 108, 109, 113, 115, 116, 118, 122,
447
9, 10, 43, 45, 48, 57, 0, 13,
448
32, 44, 46, 65, 67, 72, 76, 77,
449
81, 83, 84, 86, 90, 97, 99, 104,
450
108, 109, 113, 115, 116, 118, 122, 9,
451
10, 43, 45, 48, 57, 13, 32, 44,
452
46, 69, 101, 9, 10, 43, 45, 48,
453
57, 13, 32, 43, 45, 46, 9, 10,
454
48, 57, 0, 13, 32, 44, 46, 65,
455
67, 69, 72, 76, 77, 81, 83, 84,
456
86, 90, 97, 99, 101, 104, 108, 109,
457
113, 115, 116, 118, 122, 9, 10, 43,
458
45, 48, 57, 43, 45, 48, 57, 48,
459
57, 0, 13, 32, 44, 46, 65, 67,
460
72, 76, 77, 81, 83, 84, 86, 90,
461
97, 99, 104, 108, 109, 113, 115, 116,
462
118, 122, 9, 10, 43, 45, 48, 57,
463
13, 32, 43, 45, 46, 9, 10, 48,
464
57, 13, 32, 43, 45, 46, 9, 10,
465
48, 57, 46, 48, 57, 48, 57, 0,
466
13, 32, 44, 46, 65, 67, 69, 72,
467
76, 77, 81, 83, 84, 86, 90, 97,
468
99, 101, 104, 108, 109, 113, 115, 116,
469
118, 122, 9, 10, 43, 45, 48, 57,
470
0, 13, 32, 44, 46, 65, 67, 72,
471
76, 77, 81, 83, 84, 86, 90, 97,
472
99, 104, 108, 109, 113, 115, 116, 118,
473
122, 9, 10, 43, 45, 48, 57, 46,
474
48, 57, 48, 57, 0, 13, 32, 44,
475
46, 65, 67, 69, 72, 76, 77, 81,
476
83, 84, 86, 90, 97, 99, 101, 104,
477
108, 109, 113, 115, 116, 118, 122, 9,
478
10, 43, 45, 48, 57, 13, 32, 43,
479
45, 46, 9, 10, 48, 57, 0, 13,
480
32, 44, 46, 65, 67, 69, 72, 76,
481
77, 81, 83, 84, 86, 90, 97, 99,
482
101, 104, 108, 109, 113, 115, 116, 118,
483
122, 9, 10, 43, 45, 48, 57, 43,
484
45, 48, 57, 48, 57, 0, 13, 32,
485
44, 46, 65, 67, 72, 76, 77, 81,
486
83, 84, 86, 90, 97, 99, 104, 108,
487
109, 113, 115, 116, 118, 122, 9, 10,
488
43, 45, 48, 57, 0, 13, 32, 65,
489
67, 72, 76, 77, 81, 83, 84, 86,
490
90, 97, 99, 104, 108, 109, 113, 115,
491
116, 118, 122, 9, 10, 0, 13, 32,
492
65, 67, 72, 76, 77, 81, 83, 84,
493
86, 90, 97, 99, 104, 108, 109, 113,
494
115, 116, 118, 122, 9, 10, 13, 32,
495
46, 9, 10, 48, 57, 13, 32, 43,
496
45, 46, 9, 10, 48, 57, 13, 32,
497
43, 45, 46, 9, 10, 48, 57, 0,
498
13, 32, 44, 46, 65, 67, 69, 72,
499
76, 77, 81, 83, 84, 86, 90, 97,
500
99, 101, 104, 108, 109, 113, 115, 116,
501
118, 122, 9, 10, 43, 45, 48, 57,
502
43, 45, 48, 57, 48, 57, 0, 13,
503
32, 44, 46, 65, 67, 72, 76, 77,
504
81, 83, 84, 86, 90, 97, 99, 104,
505
108, 109, 113, 115, 116, 118, 122, 9,
506
10, 43, 45, 48, 57, 0, 13, 32,
507
44, 46, 65, 67, 69, 72, 76, 77,
508
81, 83, 84, 86, 90, 97, 99, 101,
509
104, 108, 109, 113, 115, 116, 118, 122,
510
9, 10, 43, 45, 48, 57, 13, 32,
511
43, 45, 46, 9, 10, 48, 57, 13,
512
32, 43, 45, 46, 9, 10, 48, 57,
513
13, 32, 44, 46, 69, 101, 9, 10,
514
43, 45, 48, 57, 13, 32, 43, 45,
515
46, 9, 10, 48, 57, 0, 13, 32,
516
44, 46, 65, 67, 69, 72, 76, 77,
517
81, 83, 84, 86, 90, 97, 99, 101,
518
104, 108, 109, 113, 115, 116, 118, 122,
519
9, 10, 43, 45, 48, 57, 43, 45,
520
48, 57, 48, 57, 0, 13, 32, 44,
521
46, 65, 67, 72, 76, 77, 81, 83,
522
84, 86, 90, 97, 99, 104, 108, 109,
523
113, 115, 116, 118, 122, 9, 10, 43,
524
45, 48, 57, 13, 32, 43, 45, 46,
525
9, 10, 48, 57, 13, 32, 43, 45,
526
46, 9, 10, 48, 57, 13, 32, 43,
527
45, 46, 9, 10, 48, 57, 13, 32,
528
43, 45, 46, 9, 10, 48, 57, 0,
529
13, 32, 44, 46, 65, 67, 69, 72,
530
76, 77, 81, 83, 84, 86, 90, 97,
531
99, 101, 104, 108, 109, 113, 115, 116,
532
118, 122, 9, 10, 43, 45, 48, 57,
533
43, 45, 48, 57, 48, 57, 0, 13,
534
32, 44, 46, 65, 67, 72, 76, 77,
535
81, 83, 84, 86, 90, 97, 99, 104,
536
108, 109, 113, 115, 116, 118, 122, 9,
537
10, 43, 45, 48, 57, 0, 13, 32,
538
44, 46, 65, 67, 69, 72, 76, 77,
539
81, 83, 84, 86, 90, 97, 99, 101,
540
104, 108, 109, 113, 115, 116, 118, 122,
541
9, 10, 43, 45, 48, 57, 43, 45,
542
48, 57, 48, 57, 13, 32, 44, 46,
543
9, 10, 43, 45, 48, 57, 0, 13,
544
32, 44, 46, 65, 67, 69, 72, 76,
545
77, 81, 83, 84, 86, 90, 97, 99,
546
101, 104, 108, 109, 113, 115, 116, 118,
547
122, 9, 10, 43, 45, 48, 57, 43,
548
45, 48, 57, 48, 57, 13, 32, 44,
549
46, 9, 10, 43, 45, 48, 57, 43,
550
45, 48, 57, 48, 57, 13, 32, 44,
551
46, 9, 10, 43, 45, 48, 57, 43,
552
45, 48, 57, 48, 57, 13, 32, 44,
553
46, 9, 10, 43, 45, 48, 57, 43,
554
45, 48, 57, 48, 57, 13, 32, 44,
555
46, 9, 10, 43, 45, 48, 57, 43,
556
45, 48, 57, 48, 57, 13, 32, 44,
557
46, 9, 10, 43, 45, 48, 57, 43,
558
45, 48, 57, 48, 57, 13, 32, 44,
559
46, 9, 10, 43, 45, 48, 57, 43,
560
45, 48, 57, 48, 57, 13, 32, 44,
561
46, 9, 10, 43, 45, 48, 57, 0,
562
13, 32, 44, 46, 65, 67, 69, 72,
563
76, 77, 81, 83, 84, 86, 90, 97,
564
99, 101, 104, 108, 109, 113, 115, 116,
565
118, 122, 9, 10, 43, 45, 48, 57,
566
43, 45, 48, 57, 48, 57, 13, 32,
567
44, 46, 9, 10, 43, 45, 48, 57,
568
43, 45, 48, 57, 48, 57, 13, 32,
569
44, 46, 9, 10, 43, 45, 48, 57,
570
43, 45, 48, 57, 48, 57, 13, 32,
571
44, 46, 9, 10, 43, 45, 48, 57,
572
43, 45, 48, 57, 48, 57, 13, 32,
573
44, 46, 9, 10, 43, 45, 48, 57,
574
43, 45, 48, 57, 48, 57, 13, 32,
575
44, 46, 9, 10, 43, 45, 48, 57,
576
43, 45, 48, 57, 48, 57, 0, 13,
577
32, 44, 46, 65, 67, 72, 76, 77,
578
81, 83, 84, 86, 90, 97, 99, 104,
579
108, 109, 113, 115, 116, 118, 122, 9,
580
10, 48, 57, 43, 45, 48, 57, 48,
581
57, 0, 13, 32, 44, 46, 65, 67,
582
72, 76, 77, 81, 83, 84, 86, 90,
583
97, 99, 104, 108, 109, 113, 115, 116,
584
118, 122, 9, 10, 43, 45, 48, 57,
585
0, 13, 32, 44, 46, 65, 67, 69,
586
72, 76, 77, 81, 83, 84, 86, 90,
587
97, 99, 101, 104, 108, 109, 113, 115,
588
116, 118, 122, 9, 10, 43, 45, 48,
589
57, 13, 32, 43, 45, 46, 9, 10,
590
48, 57, 13, 32, 44, 46, 69, 101,
591
9, 10, 43, 45, 48, 57, 43, 45,
592
48, 57, 48, 57, 13, 32, 44, 46,
593
9, 10, 43, 45, 48, 57, 13, 32,
594
44, 46, 69, 101, 9, 10, 43, 45,
595
48, 57, 13, 32, 44, 9, 10, 13,
596
32, 44, 46, 69, 101, 9, 10, 48,
597
57, 43, 45, 48, 57, 48, 57, 13,
598
32, 44, 9, 10, 48, 57, 13, 32,
599
44, 46, 69, 101, 9, 10, 48, 57,
600
43, 45, 48, 57, 48, 57, 13, 32,
601
44, 46, 9, 10, 43, 45, 48, 57,
602
13, 32, 44, 46, 69, 101, 9, 10,
603
43, 45, 48, 57, 13, 32, 44, 46,
604
69, 101, 9, 10, 43, 45, 48, 57,
605
13, 32, 44, 46, 69, 101, 9, 10,
606
43, 45, 48, 57, 43, 45, 48, 57,
607
48, 57, 13, 32, 44, 46, 9, 10,
608
43, 45, 48, 57, 13, 32, 44, 46,
609
69, 101, 9, 10, 43, 45, 48, 57,
610
43, 45, 48, 57, 48, 57, 13, 32,
611
44, 46, 9, 10, 43, 45, 48, 57,
612
13, 32, 43, 45, 46, 9, 10, 48,
613
57, 43, 45, 48, 57, 48, 57, 13,
614
32, 44, 46, 9, 10, 48, 57, 13,
615
32, 43, 45, 46, 9, 10, 48, 57,
616
13, 32, 44, 9, 10, 13, 32, 44,
617
9, 10, 13, 32, 44, 46, 69, 101,
618
9, 10, 43, 45, 48, 57, 43, 45,
619
48, 57, 48, 57, 0, 13, 32, 44,
620
46, 65, 67, 72, 76, 77, 81, 83,
621
84, 86, 90, 97, 99, 104, 108, 109,
622
113, 115, 116, 118, 122, 9, 10, 43,
623
45, 48, 57, 43, 45, 48, 57, 48,
624
57, 13, 32, 44, 46, 9, 10, 43,
628
static const char _svg_path_single_lengths[] = {
629
5, 0, 5, 5, 1, 0, 6, 4,
630
1, 0, 27, 25, 1, 0, 6, 4,
631
1, 0, 27, 5, 6, 5, 27, 3,
632
3, 0, 6, 4, 3, 0, 6, 4,
633
1, 0, 5, 5, 4, 3, 5, 4,
634
3, 4, 1, 0, 6, 4, 1, 0,
635
27, 25, 6, 6, 4, 5, 0, 6,
636
6, 7, 6, 5, 4, 3, 6, 7,
637
6, 4, 1, 0, 27, 5, 27, 5,
638
5, 1, 0, 6, 4, 1, 0, 6,
639
4, 1, 0, 6, 4, 1, 0, 6,
640
4, 1, 0, 6, 4, 1, 0, 27,
641
25, 6, 5, 6, 5, 6, 5, 6,
642
5, 6, 5, 27, 2, 0, 25, 5,
643
5, 1, 0, 27, 25, 1, 0, 27,
644
5, 27, 2, 0, 25, 5, 5, 5,
645
1, 0, 6, 4, 1, 0, 6, 4,
646
1, 0, 6, 4, 1, 0, 27, 25,
647
6, 5, 6, 5, 6, 5, 27, 2,
648
0, 25, 5, 5, 1, 0, 6, 4,
649
1, 0, 6, 4, 1, 0, 6, 4,
650
1, 0, 27, 25, 6, 5, 6, 5,
651
6, 5, 27, 2, 0, 25, 5, 5,
652
1, 0, 6, 4, 1, 0, 27, 25,
653
6, 5, 27, 2, 0, 25, 5, 5,
654
1, 0, 27, 25, 1, 0, 27, 5,
655
27, 2, 0, 25, 23, 23, 3, 5,
656
5, 27, 2, 0, 25, 27, 5, 5,
657
6, 5, 27, 2, 0, 25, 5, 5,
658
5, 5, 27, 2, 0, 25, 27, 2,
659
0, 4, 27, 2, 0, 4, 2, 0,
660
4, 2, 0, 4, 2, 0, 4, 2,
661
0, 4, 2, 0, 4, 2, 0, 4,
662
27, 2, 0, 4, 2, 0, 4, 2,
663
0, 4, 2, 0, 4, 2, 0, 4,
664
2, 0, 25, 2, 0, 25, 27, 5,
665
6, 2, 0, 4, 6, 3, 6, 2,
666
0, 3, 6, 2, 0, 4, 6, 6,
667
6, 2, 0, 4, 6, 2, 0, 4,
668
5, 2, 0, 4, 5, 3, 3, 6,
672
static const char _svg_path_range_lengths[] = {
673
1, 0, 2, 2, 1, 1, 3, 3,
674
1, 1, 3, 3, 1, 1, 3, 3,
675
1, 1, 3, 2, 3, 2, 3, 2,
676
2, 1, 2, 2, 2, 1, 3, 3,
677
1, 1, 2, 1, 1, 1, 1, 1,
678
1, 3, 1, 1, 3, 3, 1, 1,
679
2, 2, 2, 3, 3, 2, 1, 3,
680
3, 2, 2, 1, 1, 1, 3, 2,
681
3, 3, 1, 1, 3, 2, 2, 2,
682
2, 1, 1, 3, 3, 1, 1, 3,
683
3, 1, 1, 3, 3, 1, 1, 3,
684
3, 1, 1, 3, 3, 1, 1, 3,
685
3, 3, 2, 3, 2, 3, 2, 3,
686
2, 3, 2, 3, 1, 1, 3, 2,
687
2, 1, 1, 3, 3, 1, 1, 3,
688
2, 3, 1, 1, 3, 2, 2, 2,
689
1, 1, 3, 3, 1, 1, 3, 3,
690
1, 1, 3, 3, 1, 1, 3, 3,
691
3, 2, 3, 2, 3, 2, 3, 1,
692
1, 3, 2, 2, 1, 1, 3, 3,
693
1, 1, 3, 3, 1, 1, 3, 3,
694
1, 1, 3, 3, 3, 2, 3, 2,
695
3, 2, 3, 1, 1, 3, 2, 2,
696
1, 1, 3, 3, 1, 1, 3, 3,
697
3, 2, 3, 1, 1, 3, 2, 2,
698
1, 1, 3, 3, 1, 1, 3, 2,
699
3, 1, 1, 3, 1, 1, 2, 2,
700
2, 3, 1, 1, 3, 3, 2, 2,
701
3, 2, 3, 1, 1, 3, 2, 2,
702
2, 2, 3, 1, 1, 3, 3, 1,
703
1, 3, 3, 1, 1, 3, 1, 1,
704
3, 1, 1, 3, 1, 1, 3, 1,
705
1, 3, 1, 1, 3, 1, 1, 3,
706
3, 1, 1, 3, 1, 1, 3, 1,
707
1, 3, 1, 1, 3, 1, 1, 3,
708
1, 1, 2, 1, 1, 3, 3, 2,
709
3, 1, 1, 3, 3, 1, 2, 1,
710
1, 2, 2, 1, 1, 3, 3, 3,
711
3, 1, 1, 3, 3, 1, 1, 3,
712
2, 1, 1, 2, 2, 1, 1, 3,
716
static const short _svg_path_index_offsets[] = {
717
0, 7, 7, 15, 23, 26, 28, 38,
718
46, 49, 51, 82, 111, 114, 116, 126,
719
134, 137, 139, 170, 178, 188, 196, 227,
720
233, 239, 241, 250, 257, 263, 265, 275,
721
283, 286, 288, 296, 303, 309, 314, 321,
722
327, 332, 340, 343, 345, 355, 363, 366,
723
368, 398, 426, 435, 445, 453, 461, 463,
724
473, 483, 493, 502, 509, 515, 520, 530,
725
540, 550, 558, 561, 563, 594, 602, 632,
726
640, 648, 651, 653, 663, 671, 674, 676,
727
686, 694, 697, 699, 709, 717, 720, 722,
728
732, 740, 743, 745, 755, 763, 766, 768,
729
799, 828, 838, 846, 856, 864, 874, 882,
730
892, 900, 910, 918, 949, 953, 955, 984,
731
992, 1000, 1003, 1005, 1036, 1065, 1068, 1070,
732
1101, 1109, 1140, 1144, 1146, 1175, 1183, 1191,
733
1199, 1202, 1204, 1214, 1222, 1225, 1227, 1237,
734
1245, 1248, 1250, 1260, 1268, 1271, 1273, 1304,
735
1333, 1343, 1351, 1361, 1369, 1379, 1387, 1418,
736
1422, 1424, 1453, 1461, 1469, 1472, 1474, 1484,
737
1492, 1495, 1497, 1507, 1515, 1518, 1520, 1530,
738
1538, 1541, 1543, 1574, 1603, 1613, 1621, 1631,
739
1639, 1649, 1657, 1688, 1692, 1694, 1723, 1731,
740
1739, 1742, 1744, 1754, 1762, 1765, 1767, 1798,
741
1827, 1837, 1845, 1876, 1880, 1882, 1911, 1919,
742
1927, 1930, 1932, 1963, 1992, 1995, 1997, 2028,
743
2036, 2067, 2071, 2073, 2102, 2127, 2152, 2158,
744
2166, 2174, 2205, 2209, 2211, 2240, 2271, 2279,
745
2287, 2297, 2305, 2336, 2340, 2342, 2371, 2379,
746
2387, 2395, 2403, 2434, 2438, 2440, 2469, 2500,
747
2504, 2506, 2514, 2545, 2549, 2551, 2559, 2563,
748
2565, 2573, 2577, 2579, 2587, 2591, 2593, 2601,
749
2605, 2607, 2615, 2619, 2621, 2629, 2633, 2635,
750
2643, 2674, 2678, 2680, 2688, 2692, 2694, 2702,
751
2706, 2708, 2716, 2720, 2722, 2730, 2734, 2736,
752
2744, 2748, 2750, 2778, 2782, 2784, 2813, 2844,
753
2852, 2862, 2866, 2868, 2876, 2886, 2891, 2900,
754
2904, 2906, 2912, 2921, 2925, 2927, 2935, 2945,
755
2955, 2965, 2969, 2971, 2979, 2989, 2993, 2995,
756
3003, 3011, 3015, 3017, 3024, 3032, 3037, 3042,
757
3052, 3056, 3058, 3087, 3091, 3093, 3101
760
static const short _svg_path_indicies[] = {
761
73, 74, 74, 75, 76, 74, 0, 571,
762
571, 572, 572, 573, 571, 574, 0, 631,
763
631, 632, 632, 633, 631, 634, 0, 670,
764
513, 0, 512, 0, 509, 509, 511, 548,
765
514, 514, 509, 510, 512, 0, 490, 490,
766
434, 436, 490, 435, 437, 0, 393, 127,
767
0, 126, 0, 122, 123, 123, 125, 148,
768
128, 129, 130, 131, 132, 133, 134, 135,
769
136, 137, 138, 139, 140, 130, 141, 142,
770
143, 144, 145, 146, 147, 138, 123, 124,
771
126, 0, 73, 611, 611, 613, 614, 78,
772
79, 80, 81, 75, 82, 83, 84, 85,
773
86, 87, 88, 89, 90, 76, 91, 92,
774
93, 94, 86, 611, 612, 615, 0, 671,
775
519, 0, 518, 0, 515, 515, 517, 550,
776
520, 520, 515, 516, 518, 0, 491, 491,
777
438, 440, 491, 439, 441, 0, 394, 155,
778
0, 154, 0, 150, 151, 151, 153, 176,
779
156, 157, 158, 159, 160, 161, 162, 163,
780
164, 165, 166, 167, 168, 158, 169, 170,
781
171, 172, 173, 174, 175, 166, 151, 152,
782
154, 0, 613, 613, 612, 612, 614, 613,
783
615, 0, 515, 515, 517, 518, 520, 520,
784
515, 516, 519, 0, 438, 438, 439, 439,
785
440, 438, 441, 0, 150, 151, 151, 153,
786
154, 156, 157, 158, 159, 160, 161, 162,
787
163, 164, 165, 166, 167, 168, 158, 169,
788
170, 171, 172, 173, 174, 175, 166, 151,
789
152, 155, 0, 47, 47, 48, 47, 49,
790
0, 8, 8, 9, 8, 10, 0, 385,
791
0, 25, 25, 26, 27, 31, 31, 25,
792
498, 0, 12, 12, 13, 14, 12, 15,
793
0, 13, 13, 14, 13, 15, 0, 35,
794
0, 32, 32, 34, 38, 37, 37, 32,
795
33, 35, 0, 20, 20, 16, 18, 20,
796
17, 19, 0, 2, 3, 0, 23, 0,
797
21, 21, 22, 24, 24, 21, 23, 0,
798
11, 11, 5, 6, 7, 11, 0, 5,
799
5, 6, 7, 5, 0, 45, 45, 46,
800
45, 0, 722, 722, 716, 717, 718, 722,
801
0, 716, 716, 717, 718, 716, 0, 567,
802
567, 568, 567, 0, 651, 651, 647, 430,
803
651, 429, 433, 0, 676, 69, 0, 68,
804
0, 351, 351, 352, 375, 70, 70, 351,
805
66, 68, 0, 497, 497, 478, 480, 497,
806
479, 481, 0, 406, 380, 0, 379, 0,
807
350, 377, 377, 378, 382, 355, 356, 381,
808
358, 359, 360, 361, 362, 363, 364, 365,
809
366, 367, 381, 368, 369, 370, 371, 372,
810
373, 374, 365, 377, 379, 0, 73, 95,
811
95, 8, 9, 78, 79, 80, 81, 75,
812
82, 83, 84, 85, 86, 87, 88, 89,
813
90, 76, 91, 92, 93, 94, 86, 95,
814
10, 0, 25, 25, 26, 29, 31, 31,
815
25, 30, 0, 40, 40, 41, 562, 561,
816
561, 40, 33, 30, 0, 483, 483, 425,
817
426, 483, 17, 427, 0, 425, 425, 17,
818
17, 426, 425, 427, 0, 501, 0, 499,
819
499, 500, 38, 503, 503, 499, 33, 501,
820
0, 482, 482, 422, 18, 423, 424, 482,
821
17, 19, 0, 422, 422, 17, 17, 18,
822
423, 424, 422, 19, 0, 63, 63, 64,
823
23, 24, 24, 63, 3, 0, 723, 723,
824
719, 720, 721, 723, 0, 719, 719, 720,
825
721, 719, 0, 569, 569, 570, 569, 0,
826
489, 489, 428, 430, 431, 432, 489, 429,
827
433, 0, 428, 428, 429, 429, 430, 431,
828
432, 428, 433, 0, 71, 71, 72, 68,
829
70, 70, 71, 66, 69, 0, 496, 496,
830
474, 476, 496, 475, 477, 0, 405, 354,
831
0, 353, 0, 350, 351, 351, 352, 375,
832
355, 356, 357, 358, 359, 360, 361, 362,
833
363, 364, 365, 366, 367, 357, 368, 369,
834
370, 371, 372, 373, 374, 365, 351, 66,
835
353, 0, 478, 478, 479, 479, 480, 478,
836
481, 0, 350, 377, 377, 378, 379, 355,
837
356, 381, 358, 359, 360, 361, 362, 363,
838
364, 365, 366, 367, 381, 368, 369, 370,
839
371, 372, 373, 374, 365, 377, 380, 0,
840
50, 50, 51, 51, 52, 50, 53, 0,
841
98, 98, 97, 97, 99, 98, 100, 0,
842
391, 392, 0, 507, 0, 504, 504, 506,
843
546, 508, 508, 504, 505, 507, 0, 484,
844
484, 486, 487, 484, 485, 488, 0, 790,
845
788, 0, 755, 0, 751, 751, 753, 754,
846
756, 756, 751, 752, 755, 0, 787, 787,
847
773, 775, 787, 774, 776, 0, 748, 739,
848
0, 710, 0, 689, 689, 691, 692, 711,
849
711, 689, 690, 710, 0, 736, 736, 724,
850
726, 736, 725, 727, 0, 677, 656, 0,
851
655, 0, 652, 652, 654, 704, 657, 657,
852
652, 653, 655, 0, 648, 648, 635, 637,
853
648, 636, 638, 0, 672, 525, 0, 524,
854
0, 521, 521, 523, 552, 526, 526, 521,
855
522, 524, 0, 492, 492, 458, 460, 492,
856
459, 461, 0, 401, 243, 0, 242, 0,
857
238, 239, 239, 241, 264, 244, 245, 246,
858
247, 248, 249, 250, 251, 252, 253, 254,
859
255, 256, 246, 257, 258, 259, 260, 261,
860
262, 263, 254, 239, 240, 242, 0, 73,
861
96, 96, 98, 99, 78, 79, 80, 81,
862
75, 82, 83, 84, 85, 86, 87, 88,
863
89, 90, 76, 91, 92, 93, 94, 86,
864
96, 97, 100, 0, 504, 504, 506, 507,
865
508, 508, 504, 505, 392, 0, 486, 486,
866
485, 485, 487, 486, 488, 0, 751, 751,
867
753, 755, 756, 756, 751, 752, 788, 0,
868
773, 773, 774, 774, 775, 773, 776, 0,
869
689, 689, 691, 710, 711, 711, 689, 690,
870
739, 0, 724, 724, 725, 725, 726, 724,
871
727, 0, 652, 652, 654, 655, 657, 657,
872
652, 653, 656, 0, 635, 635, 636, 636,
873
637, 635, 638, 0, 521, 521, 523, 524,
874
526, 526, 521, 522, 525, 0, 458, 458,
875
459, 459, 460, 458, 461, 0, 238, 239,
876
239, 241, 242, 244, 245, 246, 247, 248,
877
249, 250, 251, 252, 253, 254, 255, 256,
878
246, 257, 258, 259, 260, 261, 262, 263,
879
254, 239, 240, 243, 0, 416, 416, 265,
880
0, 265, 0, 238, 239, 239, 241, 264,
881
244, 245, 247, 248, 249, 250, 251, 252,
882
253, 254, 255, 256, 257, 258, 259, 260,
883
261, 262, 263, 254, 239, 240, 265, 0,
884
583, 583, 584, 584, 585, 583, 586, 0,
885
446, 446, 447, 447, 448, 446, 449, 0,
886
396, 397, 0, 388, 0, 178, 179, 179,
887
181, 204, 184, 185, 624, 187, 188, 189,
888
190, 191, 192, 193, 194, 195, 196, 624,
889
197, 198, 199, 200, 201, 202, 203, 194,
890
179, 180, 623, 0, 73, 621, 621, 442,
891
444, 78, 79, 80, 81, 75, 82, 83,
892
84, 85, 86, 87, 88, 89, 90, 76,
893
91, 92, 93, 94, 86, 621, 443, 445,
894
0, 395, 183, 0, 182, 0, 178, 179,
895
179, 181, 204, 184, 185, 186, 187, 188,
896
189, 190, 191, 192, 193, 194, 195, 196,
897
186, 197, 198, 199, 200, 201, 202, 203,
898
194, 179, 180, 182, 0, 442, 442, 443,
899
443, 444, 442, 445, 0, 178, 179, 179,
900
181, 182, 184, 185, 186, 187, 188, 189,
901
190, 191, 192, 193, 194, 195, 196, 186,
902
197, 198, 199, 200, 201, 202, 203, 194,
903
179, 180, 183, 0, 412, 412, 205, 0,
904
205, 0, 178, 179, 179, 181, 204, 184,
905
185, 187, 188, 189, 190, 191, 192, 193,
906
194, 195, 196, 197, 198, 199, 200, 201,
907
202, 203, 194, 179, 180, 205, 0, 575,
908
575, 576, 576, 577, 575, 578, 0, 761,
909
761, 762, 762, 763, 761, 764, 0, 781,
910
781, 782, 782, 783, 781, 784, 0, 750,
911
741, 0, 714, 0, 699, 699, 701, 702,
912
715, 715, 699, 700, 714, 0, 738, 738,
913
732, 734, 738, 733, 735, 0, 679, 668,
914
0, 667, 0, 664, 664, 666, 708, 669,
915
669, 664, 665, 667, 0, 650, 650, 643,
916
645, 650, 644, 646, 0, 674, 537, 0,
917
536, 0, 533, 533, 535, 556, 538, 538,
918
533, 534, 536, 0, 494, 494, 466, 468,
919
494, 467, 469, 0, 403, 299, 0, 298,
920
0, 294, 295, 295, 297, 320, 300, 301,
921
302, 303, 304, 305, 306, 307, 308, 309,
922
310, 311, 312, 302, 313, 314, 315, 316,
923
317, 318, 319, 310, 295, 296, 298, 0,
924
73, 786, 786, 781, 783, 78, 79, 80,
925
81, 75, 82, 83, 84, 85, 86, 87,
926
88, 89, 90, 76, 91, 92, 93, 94,
927
86, 786, 782, 784, 0, 699, 699, 701,
928
714, 715, 715, 699, 700, 741, 0, 732,
929
732, 733, 733, 734, 732, 735, 0, 664,
930
664, 666, 667, 669, 669, 664, 665, 668,
931
0, 643, 643, 644, 644, 645, 643, 646,
932
0, 533, 533, 535, 536, 538, 538, 533,
933
534, 537, 0, 466, 466, 467, 467, 468,
934
466, 469, 0, 294, 295, 295, 297, 298,
935
300, 301, 302, 303, 304, 305, 306, 307,
936
308, 309, 310, 311, 312, 302, 313, 314,
937
315, 316, 317, 318, 319, 310, 295, 296,
938
299, 0, 418, 418, 321, 0, 321, 0,
939
294, 295, 295, 297, 320, 300, 301, 303,
940
304, 305, 306, 307, 308, 309, 310, 311,
941
312, 313, 314, 315, 316, 317, 318, 319,
942
310, 295, 296, 321, 0, 757, 757, 758,
943
758, 759, 757, 760, 0, 777, 777, 778,
944
778, 779, 777, 780, 0, 749, 740, 0,
945
712, 0, 694, 694, 696, 697, 713, 713,
946
694, 695, 712, 0, 737, 737, 728, 730,
947
737, 729, 731, 0, 678, 662, 0, 661,
948
0, 658, 658, 660, 706, 663, 663, 658,
949
659, 661, 0, 649, 649, 639, 641, 649,
950
640, 642, 0, 673, 531, 0, 530, 0,
951
527, 527, 529, 554, 532, 532, 527, 528,
952
530, 0, 493, 493, 462, 464, 493, 463,
953
465, 0, 402, 271, 0, 270, 0, 266,
954
267, 267, 269, 292, 272, 273, 274, 275,
955
276, 277, 278, 279, 280, 281, 282, 283,
956
284, 274, 285, 286, 287, 288, 289, 290,
957
291, 282, 267, 268, 270, 0, 73, 785,
958
785, 777, 779, 78, 79, 80, 81, 75,
959
82, 83, 84, 85, 86, 87, 88, 89,
960
90, 76, 91, 92, 93, 94, 86, 785,
961
778, 780, 0, 694, 694, 696, 712, 713,
962
713, 694, 695, 740, 0, 728, 728, 729,
963
729, 730, 728, 731, 0, 658, 658, 660,
964
661, 663, 663, 658, 659, 662, 0, 639,
965
639, 640, 640, 641, 639, 642, 0, 527,
966
527, 529, 530, 532, 532, 527, 528, 531,
967
0, 462, 462, 463, 463, 464, 462, 465,
968
0, 266, 267, 267, 269, 270, 272, 273,
969
274, 275, 276, 277, 278, 279, 280, 281,
970
282, 283, 284, 274, 285, 286, 287, 288,
971
289, 290, 291, 282, 267, 268, 271, 0,
972
417, 417, 293, 0, 293, 0, 266, 267,
973
267, 269, 292, 272, 273, 275, 276, 277,
974
278, 279, 280, 281, 282, 283, 284, 285,
975
286, 287, 288, 289, 290, 291, 282, 267,
976
268, 293, 0, 579, 579, 580, 580, 581,
977
579, 582, 0, 618, 618, 617, 617, 619,
978
618, 620, 0, 675, 543, 0, 542, 0,
979
539, 539, 541, 558, 544, 544, 539, 540,
980
542, 0, 495, 495, 470, 472, 495, 471,
981
473, 0, 404, 327, 0, 326, 0, 322,
982
323, 323, 325, 348, 328, 329, 330, 331,
983
332, 333, 334, 335, 336, 337, 338, 339,
984
340, 330, 341, 342, 343, 344, 345, 346,
985
347, 338, 323, 324, 326, 0, 73, 616,
986
616, 618, 619, 78, 79, 80, 81, 75,
987
82, 83, 84, 85, 86, 87, 88, 89,
988
90, 76, 91, 92, 93, 94, 86, 616,
989
617, 620, 0, 539, 539, 541, 542, 544,
990
544, 539, 540, 543, 0, 470, 470, 471,
991
471, 472, 470, 473, 0, 322, 323, 323,
992
325, 326, 328, 329, 330, 331, 332, 333,
993
334, 335, 336, 337, 338, 339, 340, 330,
994
341, 342, 343, 344, 345, 346, 347, 338,
995
323, 324, 327, 0, 419, 419, 349, 0,
996
349, 0, 322, 323, 323, 325, 348, 328,
997
329, 331, 332, 333, 334, 335, 336, 337,
998
338, 339, 340, 341, 342, 343, 344, 345,
999
346, 347, 338, 323, 324, 349, 0, 587,
1000
587, 588, 588, 589, 587, 590, 0, 454,
1001
454, 455, 455, 456, 454, 457, 0, 399,
1002
400, 0, 390, 0, 208, 209, 209, 211,
1003
234, 214, 215, 628, 217, 218, 219, 220,
1004
221, 222, 223, 224, 225, 226, 628, 227,
1005
228, 229, 230, 231, 232, 233, 224, 209,
1006
210, 627, 0, 73, 622, 622, 450, 452,
1007
78, 79, 80, 81, 75, 82, 83, 84,
1008
85, 86, 87, 88, 89, 90, 76, 91,
1009
92, 93, 94, 86, 622, 451, 453, 0,
1010
398, 213, 0, 212, 0, 208, 209, 209,
1011
211, 234, 214, 215, 216, 217, 218, 219,
1012
220, 221, 222, 223, 224, 225, 226, 216,
1013
227, 228, 229, 230, 231, 232, 233, 224,
1014
209, 210, 212, 0, 450, 450, 451, 451,
1015
452, 450, 453, 0, 208, 209, 209, 211,
1016
212, 214, 215, 216, 217, 218, 219, 220,
1017
221, 222, 223, 224, 225, 226, 216, 227,
1018
228, 229, 230, 231, 232, 233, 224, 209,
1019
210, 213, 0, 414, 414, 235, 0, 235,
1020
0, 208, 209, 209, 211, 234, 214, 215,
1021
217, 218, 219, 220, 221, 222, 223, 224,
1022
225, 226, 227, 228, 229, 230, 231, 232,
1023
233, 224, 209, 210, 235, 0, 101, 102,
1024
102, 103, 104, 105, 106, 107, 108, 109,
1025
110, 111, 112, 113, 114, 115, 116, 117,
1026
118, 119, 120, 121, 112, 102, 0, 73,
1027
77, 77, 78, 79, 80, 81, 75, 82,
1028
83, 84, 85, 86, 87, 88, 89, 90,
1029
76, 91, 92, 93, 94, 86, 77, 0,
1030
54, 54, 55, 54, 56, 0, 57, 57,
1031
58, 58, 59, 57, 60, 0, 603, 603,
1032
604, 604, 605, 603, 606, 0, 178, 179,
1033
179, 181, 625, 184, 185, 624, 187, 188,
1034
189, 190, 191, 192, 193, 194, 195, 196,
1035
624, 197, 198, 199, 200, 201, 202, 203,
1036
194, 179, 180, 626, 0, 413, 413, 387,
1037
0, 387, 0, 178, 179, 179, 181, 204,
1038
184, 185, 187, 188, 189, 190, 191, 192,
1039
193, 194, 195, 196, 197, 198, 199, 200,
1040
201, 202, 203, 194, 179, 180, 206, 0,
1041
178, 179, 179, 181, 207, 184, 185, 186,
1042
187, 188, 189, 190, 191, 192, 193, 194,
1043
195, 196, 186, 197, 198, 199, 200, 201,
1044
202, 203, 194, 179, 180, 206, 0, 595,
1045
595, 596, 596, 597, 595, 598, 0, 591,
1046
591, 592, 592, 593, 591, 594, 0, 509,
1047
509, 511, 512, 514, 514, 509, 510, 513,
1048
0, 434, 434, 435, 435, 436, 434, 437,
1049
0, 122, 123, 123, 125, 126, 128, 129,
1050
130, 131, 132, 133, 134, 135, 136, 137,
1051
138, 139, 140, 130, 141, 142, 143, 144,
1052
145, 146, 147, 138, 123, 124, 127, 0,
1053
410, 410, 149, 0, 149, 0, 122, 123,
1054
123, 125, 148, 128, 129, 131, 132, 133,
1055
134, 135, 136, 137, 138, 139, 140, 141,
1056
142, 143, 144, 145, 146, 147, 138, 123,
1057
124, 149, 0, 769, 769, 770, 770, 771,
1058
769, 772, 0, 765, 765, 766, 766, 767,
1059
765, 768, 0, 599, 599, 600, 600, 601,
1060
599, 602, 0, 607, 607, 608, 608, 609,
1061
607, 610, 0, 208, 209, 209, 211, 629,
1062
214, 215, 628, 217, 218, 219, 220, 221,
1063
222, 223, 224, 225, 226, 628, 227, 228,
1064
229, 230, 231, 232, 233, 224, 209, 210,
1065
630, 0, 415, 415, 389, 0, 389, 0,
1066
208, 209, 209, 211, 234, 214, 215, 217,
1067
218, 219, 220, 221, 222, 223, 224, 225,
1068
226, 227, 228, 229, 230, 231, 232, 233,
1069
224, 209, 210, 236, 0, 208, 209, 209,
1070
211, 237, 214, 215, 216, 217, 218, 219,
1071
220, 221, 222, 223, 224, 225, 226, 216,
1072
227, 228, 229, 230, 231, 232, 233, 224,
1073
209, 210, 236, 0, 682, 682, 549, 0,
1074
549, 0, 509, 509, 511, 548, 509, 510,
1075
549, 0, 208, 209, 209, 211, 237, 214,
1076
215, 628, 217, 218, 219, 220, 221, 222,
1077
223, 224, 225, 226, 628, 227, 228, 229,
1078
230, 231, 232, 233, 224, 209, 210, 627,
1079
0, 687, 687, 559, 0, 559, 0, 539,
1080
539, 541, 558, 539, 540, 559, 0, 685,
1081
685, 555, 0, 555, 0, 527, 527, 529,
1082
554, 527, 528, 555, 0, 746, 746, 707,
1083
0, 707, 0, 658, 658, 660, 706, 658,
1084
659, 707, 0, 743, 743, 698, 0, 698,
1085
0, 694, 694, 696, 697, 694, 695, 698,
1086
0, 686, 686, 557, 0, 557, 0, 533,
1087
533, 535, 556, 533, 534, 557, 0, 747,
1088
747, 709, 0, 709, 0, 664, 664, 666,
1089
708, 664, 665, 709, 0, 744, 744, 703,
1090
0, 703, 0, 699, 699, 701, 702, 699,
1091
700, 703, 0, 178, 179, 179, 181, 207,
1092
184, 185, 624, 187, 188, 189, 190, 191,
1093
192, 193, 194, 195, 196, 624, 197, 198,
1094
199, 200, 201, 202, 203, 194, 179, 180,
1095
623, 0, 684, 684, 553, 0, 553, 0,
1096
521, 521, 523, 552, 521, 522, 553, 0,
1097
745, 745, 705, 0, 705, 0, 652, 652,
1098
654, 704, 652, 653, 705, 0, 742, 742,
1099
693, 0, 693, 0, 689, 689, 691, 692,
1100
689, 690, 693, 0, 791, 791, 789, 0,
1101
789, 0, 751, 751, 753, 754, 751, 752,
1102
789, 0, 681, 681, 547, 0, 547, 0,
1103
504, 504, 506, 546, 504, 505, 547, 0,
1104
421, 421, 383, 0, 383, 0, 350, 377,
1105
377, 378, 382, 355, 356, 358, 359, 360,
1106
361, 362, 363, 364, 365, 366, 367, 368,
1107
369, 370, 371, 372, 373, 374, 365, 377,
1108
383, 0, 420, 420, 376, 0, 376, 0,
1109
350, 351, 351, 352, 375, 355, 356, 358,
1110
359, 360, 361, 362, 363, 364, 365, 366,
1111
367, 368, 369, 370, 371, 372, 373, 374,
1112
365, 351, 66, 376, 0, 350, 351, 351,
1113
352, 353, 355, 356, 357, 358, 359, 360,
1114
361, 362, 363, 364, 365, 366, 367, 357,
1115
368, 369, 370, 371, 372, 373, 374, 365,
1116
351, 66, 354, 0, 474, 474, 475, 475,
1117
476, 474, 477, 0, 351, 351, 352, 68,
1118
70, 70, 351, 66, 69, 0, 688, 688,
1119
560, 0, 560, 0, 351, 351, 352, 375,
1120
351, 66, 560, 0, 65, 65, 67, 68,
1121
70, 70, 65, 66, 69, 0, 565, 565,
1122
566, 565, 0, 21, 21, 22, 23, 24,
1123
24, 21, 3, 0, 4, 4, 1, 0,
1124
1, 0, 21, 21, 22, 21, 1, 0,
1125
61, 61, 62, 23, 24, 24, 61, 3,
1126
0, 680, 680, 545, 0, 545, 0, 499,
1127
499, 500, 38, 499, 33, 545, 0, 499,
1128
499, 500, 501, 503, 503, 499, 33, 502,
1129
0, 40, 40, 41, 27, 561, 561, 40,
1130
33, 498, 0, 40, 40, 41, 42, 561,
1131
561, 40, 33, 498, 0, 409, 409, 386,
1132
0, 386, 0, 40, 40, 41, 27, 40,
1133
33, 28, 0, 40, 40, 41, 42, 37,
1134
37, 40, 33, 28, 0, 408, 408, 39,
1135
0, 39, 0, 32, 32, 34, 38, 32,
1136
33, 39, 0, 16, 16, 17, 17, 18,
1137
16, 19, 0, 407, 407, 384, 0, 384,
1138
0, 25, 25, 26, 27, 25, 28, 0,
1139
647, 647, 429, 429, 430, 647, 433, 0,
1140
563, 563, 564, 563, 0, 43, 43, 44,
1141
43, 0, 32, 32, 34, 35, 37, 37,
1142
32, 33, 36, 0, 411, 411, 177, 0,
1143
177, 0, 150, 151, 151, 153, 176, 156,
1144
157, 159, 160, 161, 162, 163, 164, 165,
1145
166, 167, 168, 169, 170, 171, 172, 173,
1146
174, 175, 166, 151, 152, 177, 0, 683,
1147
683, 551, 0, 551, 0, 515, 515, 517,
1148
550, 515, 516, 551, 0, 0, 0
1151
static const short _svg_path_trans_targs_wi[] = {
1152
1, 297, 33, 294, 296, 36, 37, 318,
1153
24, 25, 50, 35, 27, 28, 29, 319,
1154
312, 32, 33, 294, 31, 35, 36, 34,
1155
295, 27, 28, 29, 308, 26, 51, 313,
1156
31, 32, 312, 30, 319, 309, 33, 311,
1157
52, 53, 30, 38, 39, 38, 39, 24,
1158
25, 50, 72, 73, 74, 97, 24, 25,
1159
50, 72, 73, 74, 97, 59, 60, 59,
1160
60, 65, 46, 287, 44, 288, 289, 65,
1161
287, 326, 0, 2, 223, 213, 23, 71,
1162
111, 125, 126, 154, 182, 198, 212, 214,
1163
215, 216, 222, 230, 231, 232, 233, 49,
1164
96, 73, 72, 74, 97, 326, 213, 23,
1165
71, 111, 125, 2, 126, 154, 182, 198,
1166
212, 214, 215, 216, 222, 223, 230, 231,
1167
232, 233, 326, 11, 12, 19, 10, 226,
1168
23, 71, 227, 111, 125, 2, 126, 154,
1169
182, 198, 212, 214, 215, 216, 222, 223,
1170
230, 231, 232, 233, 13, 229, 326, 11,
1171
12, 19, 18, 22, 23, 71, 320, 111,
1172
125, 2, 126, 154, 182, 198, 212, 214,
1173
215, 216, 222, 223, 230, 231, 232, 233,
1174
13, 322, 326, 116, 117, 120, 119, 121,
1175
23, 71, 122, 111, 125, 2, 126, 154,
1176
182, 198, 212, 214, 215, 216, 222, 223,
1177
230, 231, 232, 233, 118, 124, 221, 119,
1178
326, 203, 204, 207, 206, 208, 23, 71,
1179
209, 111, 125, 2, 126, 154, 182, 198,
1180
212, 214, 215, 216, 222, 223, 230, 231,
1181
232, 233, 205, 211, 238, 206, 326, 96,
1182
73, 72, 95, 107, 23, 71, 108, 111,
1183
125, 2, 126, 154, 182, 198, 212, 214,
1184
215, 216, 222, 223, 230, 231, 232, 233,
1185
74, 110, 326, 171, 156, 155, 170, 178,
1186
23, 71, 179, 111, 125, 2, 126, 154,
1187
182, 198, 212, 214, 215, 216, 222, 223,
1188
230, 231, 232, 233, 157, 181, 326, 143,
1189
128, 127, 142, 150, 23, 71, 151, 111,
1190
125, 2, 126, 154, 182, 198, 212, 214,
1191
215, 216, 222, 223, 230, 231, 232, 233,
1192
129, 153, 326, 191, 184, 183, 190, 194,
1193
23, 71, 195, 111, 125, 2, 126, 154,
1194
182, 198, 212, 214, 215, 216, 222, 223,
1195
230, 231, 232, 233, 185, 197, 326, 45,
1196
69, 68, 286, 23, 71, 283, 111, 125,
1197
2, 126, 154, 182, 198, 212, 214, 215,
1198
216, 222, 223, 230, 231, 232, 233, 47,
1199
285, 49, 24, 48, 70, 280, 25, 282,
1200
315, 26, 307, 220, 115, 237, 202, 74,
1201
97, 9, 17, 118, 114, 217, 205, 201,
1202
234, 94, 169, 141, 189, 67, 47, 314,
1203
310, 306, 228, 321, 123, 219, 210, 236,
1204
109, 180, 152, 196, 284, 281, 57, 58,
1205
298, 53, 54, 302, 63, 42, 43, 64,
1206
292, 288, 225, 8, 9, 226, 21, 16,
1207
17, 22, 120, 117, 118, 121, 112, 113,
1208
114, 217, 207, 204, 205, 208, 199, 200,
1209
201, 234, 106, 93, 94, 107, 177, 168,
1210
169, 178, 149, 140, 141, 150, 193, 188,
1211
189, 194, 287, 66, 67, 286, 69, 46,
1212
47, 70, 56, 52, 76, 77, 98, 78,
1213
99, 62, 7, 15, 92, 167, 139, 187,
1214
65, 45, 304, 56, 57, 55, 302, 299,
1215
76, 77, 98, 75, 277, 7, 8, 225,
1216
6, 224, 239, 15, 16, 21, 14, 20,
1217
323, 92, 93, 106, 91, 105, 265, 167,
1218
168, 177, 166, 176, 246, 139, 140, 149,
1219
138, 148, 255, 187, 188, 193, 186, 192,
1220
243, 301, 78, 279, 9, 241, 17, 325,
1221
94, 267, 169, 248, 141, 257, 189, 245,
1222
291, 305, 303, 41, 316, 62, 63, 41,
1223
316, 62, 63, 3, 4, 5, 224, 19,
1224
12, 13, 20, 183, 184, 185, 192, 112,
1225
113, 114, 217, 199, 200, 201, 234, 3,
1226
4, 5, 224, 19, 12, 13, 20, 183,
1227
184, 185, 192, 112, 113, 114, 217, 199,
1228
200, 201, 234, 11, 12, 19, 13, 20,
1229
191, 184, 183, 185, 192, 116, 203, 264,
1230
218, 115, 217, 242, 235, 202, 234, 3,
1231
4, 5, 224, 104, 89, 90, 105, 175,
1232
164, 165, 176, 147, 136, 137, 148, 316,
1233
88, 163, 135, 41, 88, 89, 104, 87,
1234
103, 268, 163, 164, 175, 162, 174, 249,
1235
135, 136, 147, 134, 146, 258, 5, 13,
1236
90, 165, 137, 185, 43, 86, 161, 133,
1237
300, 278, 240, 324, 266, 247, 256, 244,
1238
290, 84, 85, 102, 86, 273, 159, 160,
1239
173, 161, 254, 131, 132, 145, 133, 263,
1240
90, 270, 165, 251, 137, 260, 83, 271,
1241
158, 252, 130, 261, 39, 40, 317, 60,
1242
61, 293, 38, 59, 102, 85, 86, 103,
1243
173, 160, 161, 174, 145, 132, 133, 146,
1244
84, 159, 131, 101, 172, 144, 272, 253,
1245
262, 269, 250, 259, 82, 157, 129, 80,
1246
81, 100, 82, 79, 274, 155, 156, 157,
1247
172, 127, 128, 129, 144, 155, 156, 157,
1248
172, 127, 128, 129, 144, 100, 81, 82,
1249
101, 155, 156, 157, 172, 127, 128, 129,
1250
144, 171, 143, 80, 99, 276, 78, 275
1253
static const unsigned char _svg_path_trans_actions_wi[] = {
1254
0, 0, 0, 0, 0, 0, 0, 0,
1255
0, 1, 1, 0, 0, 0, 1, 1,
1256
0, 1, 1, 1, 0, 3, 3, 0,
1257
0, 3, 3, 17, 17, 17, 17, 0,
1258
3, 17, 3, 0, 0, 0, 17, 0,
1259
3, 3, 17, 5, 5, 7, 7, 9,
1260
59, 59, 9, 59, 59, 59, 11, 62,
1261
62, 11, 62, 62, 62, 20, 20, 23,
1262
23, 53, 17, 53, 0, 0, 0, 56,
1263
56, 15, 0, 0, 0, 0, 0, 0,
1264
0, 0, 0, 0, 0, 0, 0, 0,
1265
0, 0, 0, 0, 0, 0, 0, 0,
1266
0, 1, 0, 1, 1, 65, 13, 13,
1267
13, 13, 13, 13, 13, 13, 13, 13,
1268
13, 13, 13, 13, 13, 13, 13, 13,
1269
13, 13, 72, 26, 68, 26, 0, 0,
1270
26, 26, 0, 26, 26, 26, 26, 26,
1271
26, 26, 26, 26, 26, 26, 26, 26,
1272
26, 26, 26, 26, 68, 0, 80, 29,
1273
76, 29, 0, 0, 29, 29, 0, 29,
1274
29, 29, 29, 29, 29, 29, 29, 29,
1275
29, 29, 29, 29, 29, 29, 29, 29,
1276
76, 0, 88, 32, 84, 32, 0, 0,
1277
32, 32, 0, 32, 32, 32, 32, 32,
1278
32, 32, 32, 32, 32, 32, 32, 32,
1279
32, 32, 32, 32, 84, 0, 84, 84,
1280
96, 35, 92, 35, 0, 0, 35, 35,
1281
0, 35, 35, 35, 35, 35, 35, 35,
1282
35, 35, 35, 35, 35, 35, 35, 35,
1283
35, 35, 92, 0, 92, 92, 104, 38,
1284
100, 38, 0, 0, 38, 38, 0, 38,
1285
38, 38, 38, 38, 38, 38, 38, 38,
1286
38, 38, 38, 38, 38, 38, 38, 38,
1287
100, 0, 112, 41, 108, 41, 0, 0,
1288
41, 41, 0, 41, 41, 41, 41, 41,
1289
41, 41, 41, 41, 41, 41, 41, 41,
1290
41, 41, 41, 41, 108, 0, 120, 44,
1291
116, 44, 0, 0, 44, 44, 0, 44,
1292
44, 44, 44, 44, 44, 44, 44, 44,
1293
44, 44, 44, 44, 44, 44, 44, 44,
1294
116, 0, 128, 47, 124, 47, 0, 0,
1295
47, 47, 0, 47, 47, 47, 47, 47,
1296
47, 47, 47, 47, 47, 47, 47, 47,
1297
47, 47, 47, 47, 124, 0, 136, 3,
1298
3, 0, 0, 50, 50, 0, 50, 50,
1299
50, 50, 50, 50, 50, 50, 50, 50,
1300
50, 50, 50, 50, 50, 50, 50, 17,
1301
0, 50, 50, 0, 0, 0, 132, 0,
1302
0, 0, 0, 0, 0, 0, 0, 0,
1303
0, 0, 0, 0, 0, 0, 0, 0,
1304
0, 0, 0, 0, 0, 0, 0, 0,
1305
0, 0, 0, 0, 0, 0, 0, 0,
1306
0, 0, 0, 0, 0, 0, 0, 1,
1307
1, 0, 1, 1, 0, 1, 1, 1,
1308
1, 1, 0, 1, 1, 1, 0, 1,
1309
1, 1, 0, 1, 1, 1, 0, 1,
1310
1, 1, 0, 1, 1, 1, 0, 1,
1311
1, 1, 0, 1, 1, 1, 0, 1,
1312
1, 1, 0, 1, 1, 1, 0, 1,
1313
1, 1, 0, 1, 1, 1, 0, 1,
1314
1, 1, 0, 0, 0, 1, 0, 1,
1315
1, 0, 0, 0, 0, 0, 0, 0,
1316
0, 0, 17, 3, 3, 0, 0, 0,
1317
3, 17, 3, 0, 0, 3, 17, 3,
1318
0, 0, 0, 3, 17, 3, 0, 0,
1319
0, 3, 17, 3, 0, 0, 0, 3,
1320
17, 3, 0, 0, 0, 3, 17, 3,
1321
0, 0, 0, 3, 17, 3, 0, 0,
1322
0, 0, 17, 0, 17, 0, 17, 0,
1323
17, 0, 17, 0, 17, 0, 17, 0,
1324
0, 0, 17, 5, 5, 5, 5, 7,
1325
7, 7, 7, 9, 59, 59, 59, 9,
1326
59, 59, 59, 9, 59, 59, 59, 9,
1327
59, 59, 59, 9, 59, 59, 59, 11,
1328
62, 62, 62, 11, 62, 62, 62, 11,
1329
62, 62, 62, 11, 62, 62, 62, 11,
1330
62, 62, 62, 0, 1, 0, 1, 1,
1331
0, 1, 0, 1, 1, 0, 0, 84,
1332
0, 84, 84, 92, 0, 92, 92, 0,
1333
1, 1, 1, 0, 1, 1, 1, 0,
1334
1, 1, 1, 0, 1, 1, 1, 0,
1335
0, 0, 0, 0, 3, 17, 3, 0,
1336
0, 0, 3, 17, 3, 0, 0, 0,
1337
3, 17, 3, 0, 0, 0, 0, 0,
1338
0, 0, 0, 0, 0, 0, 0, 0,
1339
0, 0, 0, 0, 0, 0, 0, 0,
1340
0, 3, 17, 3, 17, 0, 3, 17,
1341
3, 17, 0, 3, 17, 3, 17, 0,
1342
17, 0, 17, 0, 17, 0, 0, 0,
1343
0, 0, 0, 0, 0, 0, 0, 0,
1344
0, 0, 0, 0, 0, 1, 1, 1,
1345
0, 1, 1, 1, 0, 1, 1, 1,
1346
0, 0, 0, 0, 0, 0, 0, 0,
1347
0, 0, 0, 0, 0, 0, 0, 3,
1348
17, 3, 17, 0, 0, 9, 59, 59,
1349
59, 9, 59, 59, 59, 11, 62, 62,
1350
62, 11, 62, 62, 62, 0, 1, 1,
1351
1, 0, 1, 1, 1, 0, 1, 1,
1352
1, 0, 0, 0, 0, 0, 0, 0
1355
static const int svg_path_start = 0;
1357
static const int svg_path_first_final = 326;
1359
#line 133 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1362
void Parser::parse(char const *str)
1363
throw(SVGPathParseError)
1365
char const *p = str;
1366
char const *start = NULL;
1372
#line 1373 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
1374
cs = svg_path_start;
1378
unsigned int _trans;
1380
unsigned int _nacts;
1386
_keys = _svg_path_trans_keys + _svg_path_key_offsets[cs];
1387
_trans = _svg_path_index_offsets[cs];
1389
_klen = _svg_path_single_lengths[cs];
1391
const char *_lower = _keys;
1393
const char *_upper = _keys + _klen - 1;
1395
if ( _upper < _lower )
1398
_mid = _lower + ((_upper-_lower) >> 1);
1401
else if ( (*p) > *_mid )
1404
_trans += (_mid - _keys);
1412
_klen = _svg_path_range_lengths[cs];
1414
const char *_lower = _keys;
1416
const char *_upper = _keys + (_klen<<1) - 2;
1418
if ( _upper < _lower )
1421
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
1422
if ( (*p) < _mid[0] )
1424
else if ( (*p) > _mid[1] )
1427
_trans += ((_mid - _keys)>>1);
1435
_trans = _svg_path_indicies[_trans];
1436
cs = _svg_path_trans_targs_wi[_trans];
1438
if ( _svg_path_trans_actions_wi[_trans] == 0 )
1441
_acts = _svg_path_actions + _svg_path_trans_actions_wi[_trans];
1442
_nacts = (unsigned int) *_acts++;
1443
while ( _nacts-- > 0 )
1448
#line 145 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1454
#line 149 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1457
std::string buf(start, end);
1458
_push(g_ascii_strtod(buf.c_str(), NULL));
1463
#line 156 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1469
#line 160 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1475
#line 164 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1481
#line 168 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1487
#line 172 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1489
_moveTo(_pop_point());
1493
#line 176 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1495
_lineTo(_pop_point());
1499
#line 180 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1501
_lineTo(Point(_pop_coord(X), _current[Y]));
1505
#line 184 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1507
_lineTo(Point(_current[X], _pop_coord(Y)));
1511
#line 188 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1513
Point p = _pop_point();
1514
Point c1 = _pop_point();
1515
Point c0 = _pop_point();
1516
_curveTo(c0, c1, p);
1520
#line 195 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1522
Point p = _pop_point();
1523
Point c1 = _pop_point();
1524
_curveTo(_cubic_tangent, c1, p);
1528
#line 201 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1530
Point p = _pop_point();
1531
Point c = _pop_point();
1536
#line 207 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1538
Point p = _pop_point();
1539
_quadTo(_quad_tangent, p);
1543
#line 212 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1545
Point point = _pop_point();
1546
bool sweep = _pop_flag();
1547
bool large_arc = _pop_flag();
1548
double angle = _pop();
1552
_arcTo(rx, ry, angle, large_arc, sweep, point);
1556
#line 223 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1562
#line 360 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1565
#line 1566 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
1574
#line 370 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
1577
if ( cs < svg_path_first_final ) {
1578
throw SVGPathParseError();
1584
void parse_svg_path(char const *str, SVGPathSink &sink)
1585
throw(SVGPathParseError)
1587
Parser parser(sink);
1597
c-file-style:"stroustrup"
1598
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
1599
indent-tabs-mode:nil
1603
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :