xref: /AOO41X/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx (revision 8809db7a87f97847b57a57f4cd2b0104b2b83182)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svx.hxx"
26 #include "svx/EnhancedCustomShapeGeometry.hxx"
27 #include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
28 /*
29 static const SvxMSDffVertPair Vert[] =
30 {
31     { 0, 0, }
32 };
33 static const sal_uInt16 Segm[] =
34 {
35     0x4000,
36     0x8000
37 };
38 static const SvxMSDffCalculationData Calc[] =
39 {
40     { 0x0000, 0, 0, 0 }
41 };
42 static const sal_Int32 Default[] =
43 {
44     0
45 };
46 static const SvxMSDffTextRect TextRect[] =
47 {
48     { { 0, 0 }, { 0, 0 } }
49 };
50 static const mso_CustomShape mso =
51 {
52     (SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
53     (sal_uInt16*)mso_sptSegm, sizeof( mso_sptSegm ) >> 1,
54     (SvxMSDffCalculationData*)mso_sptCalc, sizeof( mso_sptCalc ) / sizeof( SvxMSDffCalculationData ),
55     (sal_Int32*)mso_sptDefault,
56     (SvxMSDffTextRectangles*)mso_sptTextRect, sizeof( mso_sptTextRect ) / sizeof( SvxMSDffTextRectangles ),
57     21600, 21600,
58     0x80000000, 0x80000000,
59     (SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
60     (SvxMSDffHandles*)mso_sptHandles, sizeof( mso_sptHandles ) / sizeof( SvxMSDffHandles )
61 };
62 */
63 
64 static const sal_Int32 mso_sptDefault0[] =
65 {
66     1, 0
67 };
68 static const sal_Int32 mso_sptDefault1400[] =
69 {
70     1, 1400
71 };
72 static const sal_Int32 mso_sptDefault1800[] =
73 {
74     1, 1800
75 };
76 static const sal_Int32 mso_sptDefault2500[] =
77 {
78     1, 2500
79 };
80 static const sal_Int32 mso_sptDefault2700[] =
81 {
82     1, 2700
83 };
84 static const sal_Int32 mso_sptDefault3600[] =
85 {
86     1, 3600
87 };
88 static const sal_Int32 mso_sptDefault3700[] =
89 {
90     1, 3700
91 };
92 static const sal_Int32 mso_sptDefault5400[] =
93 {
94     1, 5400
95 };
96 static const sal_Int32 mso_sptDefault7200[] =
97 {
98     1, 7200
99 };
100 static const sal_Int32 mso_sptDefault8100[] =
101 {
102     1, 8100
103 };
104 static const sal_Int32 mso_sptDefault9600[] =
105 {
106     1, 9600
107 };
108 static const sal_Int32 mso_sptDefault10800[] =
109 {
110     1, 10800
111 };
112 static const sal_Int32 mso_sptDefault12000[] =
113 {
114     1, 12000
115 };
116 static const sal_Int32 mso_sptDefault13500[] =
117 {
118     1, 13500
119 };
120 static const sal_Int32 mso_sptDefault16200[] =
121 {
122     1, 16200
123 };
124 static const sal_Int32 mso_sptDefault16200and5400[] =
125 {
126     2, 16200, 5400
127 };
128 
129 static const SvxMSDffVertPair mso_sptArcVert[] =
130 {
131     { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 },
132     { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }
133 };
134 static const sal_uInt16 mso_sptArcSegm[] =
135 {
136     0xa504, 0xab00, 0x0001, 0x6001, 0x8000,
137     0xa504, 0xaa00, 0x8000
138 };
139 static const SvxMSDffCalculationData mso_sptArcCalc[] =
140 {
141     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
142     { 0x2000, { 0x400, 10800, 0 } },
143     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
144     { 0x2000, { 0x402, 10800, 0 } },
145     { 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } },
146     { 0x2000, { 0x404, 10800, 0 } },
147     { 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } },
148     { 0x2000, { 0x406, 10800, 0 } }
149 };
150 static const sal_Int32 mso_sptArcDefault[] =
151 {
152     2, 270, 0
153 };
154 static const SvxMSDffVertPair mso_sptStandardGluePoints[] =
155 {
156     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
157 };
158 static const SvxMSDffHandle mso_sptArcHandle[] =
159 {
160     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
161         10800, 0x100, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff },
162     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
163         10800, 0x101, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff }
164 };
165 static const mso_CustomShape msoArc =
166 {
167     (SvxMSDffVertPair*)mso_sptArcVert, sizeof( mso_sptArcVert ) / sizeof( SvxMSDffVertPair ),
168     (sal_uInt16*)mso_sptArcSegm, sizeof( mso_sptArcSegm ) >> 1,
169     (SvxMSDffCalculationData*)mso_sptArcCalc, sizeof( mso_sptArcCalc ) / sizeof( SvxMSDffCalculationData ),
170     (sal_Int32*)mso_sptArcDefault,
171     NULL, 0,
172     21600, 21600,
173     0x80000000, 0x80000000,
174     NULL, 0,
175     (SvxMSDffHandle*)mso_sptArcHandle, sizeof( mso_sptArcHandle ) / sizeof( SvxMSDffHandle )        // handles
176 };
177 
178 static const SvxMSDffVertPair mso_sptTextSimpleVert[] =
179 {
180     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
181 };
182 static const mso_CustomShape msoTextSimple =
183 {
184     (SvxMSDffVertPair*)mso_sptTextSimpleVert, sizeof( mso_sptTextSimpleVert ) / sizeof( SvxMSDffVertPair ),
185     NULL, 0,
186     NULL, 0,
187     NULL,
188     NULL, 0,
189     21600, 21600,
190     0x80000000, 0x80000000,
191     NULL, 0,
192     NULL, 0     // handles
193 };
194 
195 static const SvxMSDffVertPair mso_sptRectangleVert[] =
196 {
197     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
198 };
199 static const mso_CustomShape msoRectangle =
200 {
201     (SvxMSDffVertPair*)mso_sptRectangleVert, sizeof( mso_sptRectangleVert ) / sizeof( SvxMSDffVertPair ),
202     NULL, 0,
203     NULL, 0,
204     NULL,
205     NULL, 0,
206     21600, 21600,
207     0x80000000, 0x80000000,
208     NULL, 0,
209     NULL, 0     // handles
210 };
211 
212 static const SvxMSDffVertPair mso_sptRoundRectangleVert[] = // adj value 0 -> 10800
213 {
214     { 7 MSO_I, 0 }, { 0, 8 MSO_I }, { 0, 9 MSO_I }, { 7 MSO_I, 21600 },
215     { 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 }
216 };
217 static const sal_uInt16 mso_sptRoundRectangleSegm[] =
218 {
219     0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000
220 };
221 static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =
222 {
223     { 0x000e, { 0, 45, 0 } },
224     { 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } },
225     { 0x2001, { 0x401, 3163, 7636 } },
226     { 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } },
227     { 0x6000, { DFF_Prop_geoTop, 0x402, 0 } },
228     { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },
229     { 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } },
230     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
231     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
232     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
233     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }
234 };
235 static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
236 {
237     { { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } }
238 };
239 static const SvxMSDffHandle mso_sptRoundRectangleHandle[] =
240 {
241     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
242         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
243 };
244 static const mso_CustomShape msoRoundRectangle =
245 {
246     (SvxMSDffVertPair*)mso_sptRoundRectangleVert, sizeof( mso_sptRoundRectangleVert ) / sizeof( SvxMSDffVertPair ),
247     (sal_uInt16*)mso_sptRoundRectangleSegm, sizeof( mso_sptRoundRectangleSegm ) >> 1,
248     (SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ),
249     (sal_Int32*)mso_sptDefault3600,
250     (SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
251     21600, 21600,
252     10800, 10800,
253     NULL, 0,
254     (SvxMSDffHandle*)mso_sptRoundRectangleHandle, sizeof( mso_sptRoundRectangleHandle ) / sizeof( SvxMSDffHandle )      // handles
255 };
256 
257 static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
258 {
259     { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
260 };
261 static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
262 {
263     { { 1900, 12700 }, { 12700, 19700 } }
264 };
265 static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
266 {
267     { 10800, 0 }, { 5400, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 16200, 10800 }
268 };
269 static const mso_CustomShape msoRightTriangle =
270 {
271     (SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
272     NULL, 0,
273     NULL, 0,
274     NULL,
275     (SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
276     21600, 21600,
277     0x80000000, 0x80000000,
278     (SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
279     NULL, 0     // handles
280 };
281 
282 static const SvxMSDffVertPair mso_sptEllipseVert[] =
283 {
284     { 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
285 };
286 static const sal_uInt16 mso_sptEllipseSegm[] =
287 {
288     0xa203, 0x6000, 0x8000
289 };
290 static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
291 {
292     { { 3163, 3163 }, { 18437, 18437 } }
293 };
294 static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
295 {
296     { 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 }
297 };
298 static const mso_CustomShape msoEllipse =
299 {
300     (SvxMSDffVertPair*)mso_sptEllipseVert, sizeof( mso_sptEllipseVert ) / sizeof( SvxMSDffVertPair ),
301     (sal_uInt16*)mso_sptEllipseSegm, sizeof( mso_sptEllipseSegm ) >> 1,
302     NULL, 0,
303     NULL,
304     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
305     21600, 21600,
306     0x80000000, 0x80000000,
307     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
308     NULL, 0     // handles
309 };
310 
311 static const SvxMSDffVertPair mso_sptParallelogramVert[] =  // adjustment1 : 0 - 21600
312 {
313     { 0 MSO_I, 0 }, { 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
314 };
315 static const sal_uInt16 mso_sptParallelogramSegm[] =
316 {
317     0x4000, 0x0003, 0x6001, 0x8000
318 };
319 static const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
320 {
321     { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
322     { 0x8000, { 0, 21600, DFF_Prop_adjustValue } },
323     { 0x2001, { DFF_Prop_adjustValue, 10, 24 } },
324     { 0x2000, { 0x0402, 1750, 0 } },
325     { 0x8000, { 21600, 0, 0x0403 } },
326     { 0x2001, { 0x400, 1, 2 } },
327     { 0x4000, { 10800, 0x405, 0 } },
328     { 0x2000, { 0x400, 0, 10800 } },
329     { 0x6006, { 0x407, 0x40d, 0 } },
330     { 0x8000, { 10800, 0, 0x405 } },
331     { 0x6006, { 0x407, 0x40c, 21600 } },
332     { 0x8000, { 21600, 0, 0x405 } },
333     { 0x8001, { 21600, 10800, 0x400 } },
334     { 0x8000, { 21600, 0, 0x40c } }
335 };
336 static const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
337 {
338     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
339 };
340 static const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
341 {
342     { 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
343 };
344 static const SvxMSDffHandle mso_sptParallelogramHandle[] =
345 {
346     {   MSDFF_HANDLE_FLAGS_RANGE,
347         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
348 };
349 static const mso_CustomShape msoParallelogram =
350 {
351     (SvxMSDffVertPair*)mso_sptParallelogramVert, sizeof( mso_sptParallelogramVert ) / sizeof( SvxMSDffVertPair ),
352     (sal_uInt16*)mso_sptParallelogramSegm, sizeof( mso_sptParallelogramSegm ) >> 1,
353     (SvxMSDffCalculationData*)mso_sptParallelogramCalc, sizeof( mso_sptParallelogramCalc ) / sizeof( SvxMSDffCalculationData ),
354     (sal_Int32*)mso_sptDefault5400,
355     (SvxMSDffTextRectangles*)mso_sptParallelogramTextRect, sizeof( mso_sptParallelogramTextRect ) / sizeof( SvxMSDffTextRectangles ),
356     21600, 21600,
357     0x80000000, 0x80000000,
358     (SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair ),
359     (SvxMSDffHandle*)mso_sptParallelogramHandle, sizeof( mso_sptParallelogramHandle ) / sizeof( SvxMSDffHandle )        // handles
360 };
361 
362 static const SvxMSDffVertPair mso_sptDiamondVert[] =
363 {
364     { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }, { 10800, 0 }
365 };
366 static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] =
367 {
368     { { 5400, 5400 }, { 16200, 16200 } }
369 };
370 static const mso_CustomShape msoDiamond =
371 {
372     (SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
373     NULL, 0,
374     NULL, 0,
375     NULL,
376     (SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
377     21600, 21600,
378     0x80000000, 0x80000000,
379     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
380     NULL, 0     // handles
381 };
382 
383 static const SvxMSDffVertPair mso_sptTrapezoidVert[] =      // adjustment1 : 0 - 10800
384 {
385     { 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
386 };
387 static const sal_uInt16 mso_sptTrapezoidSegm[] =
388 {
389     0x4000, 0x0003, 0x6001, 0x8000
390 };
391 static const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
392 {
393     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
394     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
395     { 0x2001, { DFF_Prop_adjustValue, 10, 18 } },
396     { 0x2000, { 0x0402, 1750, 0 } },
397     { 0x8000, { 21600, 0, 0x403 } },
398     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
399     { 0x8000, { 21600, 0, 0x405 } }
400 };
401 static const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
402 {
403     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
404 };
405 static const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
406 {
407     { 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
408 };
409 static const SvxMSDffHandle mso_sptTrapezoidHandle[] =
410 {
411     {   MSDFF_HANDLE_FLAGS_RANGE,
412         0x100, 1, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
413 };
414 static const mso_CustomShape msoTrapezoid =
415 {
416     (SvxMSDffVertPair*)mso_sptTrapezoidVert, sizeof( mso_sptTrapezoidVert ) / sizeof( SvxMSDffVertPair ),
417     (sal_uInt16*)mso_sptTrapezoidSegm, sizeof( mso_sptTrapezoidSegm ) >> 1,
418     (SvxMSDffCalculationData*)mso_sptTrapezoidCalc, sizeof( mso_sptTrapezoidCalc ) / sizeof( SvxMSDffCalculationData ),
419     (sal_Int32*)mso_sptDefault5400,
420     (SvxMSDffTextRectangles*)mso_sptTrapezoidTextRect, sizeof( mso_sptTrapezoidTextRect ) / sizeof( SvxMSDffTextRectangles ),
421     21600, 21600,
422     0x80000000, 0x80000000,
423     (SvxMSDffVertPair*)mso_sptTrapezoidGluePoints, sizeof( mso_sptTrapezoidGluePoints ) / sizeof( SvxMSDffVertPair ),
424     (SvxMSDffHandle*)mso_sptTrapezoidHandle, sizeof( mso_sptTrapezoidHandle ) / sizeof( SvxMSDffHandle )        // handles
425 };
426 
427 static const SvxMSDffVertPair mso_sptOctagonVert[] =        // adjustment1 : 0 - 10800
428 {
429     { 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
430     { 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
431 };
432 static const sal_uInt16 mso_sptOctagonSegm[] =
433 {
434     0x4000, 0x0007, 0x6001, 0x8000
435 };
436 static const SvxMSDffCalculationData mso_sptOctagonCalc[] =
437 {
438     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
439     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
440     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
441     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
442     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
443     { 0x6000, { DFF_Prop_geoLeft, 0x404, 0 } },
444     { 0x6000, { DFF_Prop_geoTop, 0x404, 0 } },
445     { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
446     { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
447 };
448 static const sal_Int32 mso_sptOctagonDefault[] =
449 {
450     1, 5000
451 };
452 static const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
453 {
454     { { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
455 };
456 static const SvxMSDffHandle mso_sptOctagonHandle[] =
457 {
458     {   MSDFF_HANDLE_FLAGS_RANGE,
459         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
460 };
461 static const mso_CustomShape msoOctagon =
462 {
463     (SvxMSDffVertPair*)mso_sptOctagonVert, sizeof( mso_sptOctagonVert ) / sizeof( SvxMSDffVertPair ),
464     (sal_uInt16*)mso_sptOctagonSegm, sizeof( mso_sptOctagonSegm ) >> 1,
465     (SvxMSDffCalculationData*)mso_sptOctagonCalc, sizeof( mso_sptOctagonCalc ) / sizeof( SvxMSDffCalculationData ),
466     (sal_Int32*)mso_sptOctagonDefault,
467     (SvxMSDffTextRectangles*)mso_sptOctagonTextRect, sizeof( mso_sptOctagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
468     21600, 21600,
469     10800, 10800,
470     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
471     (SvxMSDffHandle*)mso_sptOctagonHandle, sizeof( mso_sptOctagonHandle ) / sizeof( SvxMSDffHandle )        // handles
472 };
473 
474 static const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] =   // adjustment1 : 0 - 21600
475 {
476     { 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
477 };
478 static const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
479 {
480     0x4000, 0x0002, 0x6001, 0x8000
481 };
482 static const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
483 {
484     { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
485     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
486     { 0x2000, { 0x401, 10800, 0 } },
487     { 0x2001, { DFF_Prop_adjustValue, 2, 3 } },
488     { 0x2000, { 0x403, 7200, 0 } },
489     { 0x8000, { 21600, 0, 0x400 } },
490     { 0x2001, { 0x405, 1, 2 } },
491     { 0x8000, { 21600, 0, 0x406 } }
492 };
493 static const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
494 {
495     { { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
496     { { 3 MSO_I, 7200 }, { 4 MSO_I, 21600   } }
497 };
498 static const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
499 {
500     { 10800, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
501 };
502 static const SvxMSDffHandle mso_sptIsocelesTriangleHandle[] =
503 {
504     {   MSDFF_HANDLE_FLAGS_RANGE,
505         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
506 };
507 static const mso_CustomShape msoIsocelesTriangle =
508 {
509     (SvxMSDffVertPair*)mso_sptIsocelesTriangleVert, sizeof( mso_sptIsocelesTriangleVert ) / sizeof( SvxMSDffVertPair ),
510     (sal_uInt16*)mso_sptIsocelesTriangleSegm, sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
511     (SvxMSDffCalculationData*)mso_sptIsocelesTriangleCalc, sizeof( mso_sptIsocelesTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
512     (sal_Int32*)mso_sptDefault10800,
513     (SvxMSDffTextRectangles*)mso_sptIsocelesTriangleTextRect, sizeof( mso_sptIsocelesTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
514     21600, 21600,
515     0x80000000, 0x80000000,
516     (SvxMSDffVertPair*)mso_sptIsocelesTriangleGluePoints, sizeof( mso_sptIsocelesTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
517     (SvxMSDffHandle*)mso_sptIsocelesTriangleHandle, sizeof( mso_sptIsocelesTriangleHandle ) / sizeof( SvxMSDffHandle )      // handles
518 };
519 
520 static const SvxMSDffVertPair mso_sptHexagonVert[] =                // adjustment1 : 0 - 10800
521 {
522     { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
523     { 0 MSO_I, 21600 }, { 0, 10800 }
524 };
525 static const sal_uInt16 mso_sptHexagonSegm[] =
526 {
527     0x4000, 0x0005, 0x6001, 0x8000
528 };
529 static const SvxMSDffCalculationData mso_sptHexagonCalc[] =
530 {
531     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
532     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
533     { 0x2001, { DFF_Prop_adjustValue, 100, 234 } },
534     { 0x2000, { 0x402, 1700, 0 } },
535     { 0x8000, { 21600, 0, 0x403 } }
536 };
537 static const SvxMSDffTextRectangles mso_sptHexagonTextRect[] =
538 {
539     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
540 };
541 static const SvxMSDffHandle mso_sptHexagonHandle[] =
542 {
543     {   MSDFF_HANDLE_FLAGS_RANGE,
544         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
545 };
546 static const mso_CustomShape msoHexagon =
547 {
548     (SvxMSDffVertPair*)mso_sptHexagonVert, sizeof( mso_sptHexagonVert ) / sizeof( SvxMSDffVertPair ),
549     (sal_uInt16*)mso_sptHexagonSegm, sizeof( mso_sptHexagonSegm ) >> 1,
550     (SvxMSDffCalculationData*)mso_sptHexagonCalc, sizeof( mso_sptHexagonCalc ) / sizeof( SvxMSDffCalculationData ),
551     (sal_Int32*)mso_sptDefault5400,
552     (SvxMSDffTextRectangles*)mso_sptHexagonTextRect, sizeof( mso_sptHexagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
553     21600, 21600,
554     0x80000000, 0x80000000,
555     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
556     (SvxMSDffHandle*)mso_sptHexagonHandle, sizeof( mso_sptHexagonHandle ) / sizeof( SvxMSDffHandle )        // handles
557 };
558 
559 static const SvxMSDffVertPair mso_sptPentagonVert[] =
560 {
561     { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
562     { 21600, 8260 }, { 10800, 0 }
563 };
564 static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
565 {
566     { { 4230, 5080 }, { 17370, 21600 } }
567 };
568 static const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
569 {
570     { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
571     { 17370, 21600 }, { 21600, 8260 }
572 };
573 static const mso_CustomShape msoPentagon =
574 {
575     (SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ),
576     NULL, 0,
577     NULL, 0,
578     NULL,
579     (SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
580     21600, 21600,
581     0x80000000, 0x80000000,
582     (SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair ),
583     NULL, 0     // handles
584 };
585 
586 static const SvxMSDffVertPair mso_sptPlusVert[] =               // adjustment1 : 0 - 10800
587 {
588     { 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I },
589     { 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 },
590     { 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 }
591 };
592 static const SvxMSDffCalculationData mso_sptPlusCalc[] =
593 {
594     { 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } },
595     { 0x2000, { 0x400, 0, 0 } },
596     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
597     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
598 };
599 static const SvxMSDffTextRectangles mso_sptPlusTextRect[] =
600 {
601     { { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } }
602 };
603 static const SvxMSDffHandle mso_sptPlusHandle[] =
604 {
605     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
606         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
607 };
608 static const mso_CustomShape msoPlus =
609 {
610     (SvxMSDffVertPair*)mso_sptPlusVert, sizeof( mso_sptPlusVert ) / sizeof( SvxMSDffVertPair ),
611     NULL, 0,
612     (SvxMSDffCalculationData*)mso_sptPlusCalc, sizeof( mso_sptPlusCalc ) / sizeof( SvxMSDffCalculationData ),
613     (sal_Int32*)mso_sptDefault5400,
614     (SvxMSDffTextRectangles*)mso_sptPlusTextRect, sizeof( mso_sptPlusTextRect ) / sizeof( SvxMSDffTextRectangles ),
615     21600, 21600,
616     10800, 10800,
617     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
618     (SvxMSDffHandle*)mso_sptPlusHandle, sizeof( mso_sptPlusHandle ) / sizeof( SvxMSDffHandle )      // handles
619 };
620 
621 static const SvxMSDffVertPair mso_sptCanVert[] =        // adjustment1 : 0 - 10800
622 {
623     { 44, 0 },
624     { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },          // ccp
625     { 0, 3 MSO_I },                                     // p
626     { 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 },       // ccp
627     { 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I },    // ccp
628     { 88, 0 MSO_I },                                    // p
629     { 88, 2 MSO_I }, { 68, 0 }, { 44, 0 },              // ccp
630     { 44, 0 },                                          // p
631     { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },          // ccp
632     { 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I },   // ccp
633     { 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I },   // ccp
634     { 88, 2 MSO_I },{ 68, 0 }, { 44, 0 }                // ccp
635 };
636 static const sal_uInt16 mso_sptCanSegm[] =
637 {
638     0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
639     0x4000, 0x2004, 0x6001, 0x8000
640 };
641 static const SvxMSDffCalculationData mso_sptCanCalc[] =
642 {
643     { 0x2001, { DFF_Prop_adjustValue, 2, 4 } },     // 1/4
644     { 0x2001, { 0x0400, 6, 11 } },
645     { 0xa000, { 0x0400, 0, 0x0401 } },
646     { 0x8000, { 21600, 0, 0x0400 } },
647     { 0x6000, { 0x0403, 0x0401, 0 } },
648     { 0x6000, { 0x0400, 0x0401, 0 } },
649     { 0x2001, { DFF_Prop_adjustValue, 2, 2 } },
650     { 0x0000, { 44, 0, 0 } }
651 };
652 static const SvxMSDffTextRectangles mso_sptCanTextRect[] =
653 {
654     { { 0, 6 MSO_I }, { 88, 3 MSO_I } }
655 };
656 static const SvxMSDffVertPair mso_sptCanGluePoints[] =
657 {
658     { 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 }
659 };
660 static const SvxMSDffHandle mso_sptCanHandle[] =
661 {
662     {   MSDFF_HANDLE_FLAGS_RANGE,
663         7 + 3, 0x100, 44, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
664 };
665 static const mso_CustomShape msoCan =
666 {
667     (SvxMSDffVertPair*)mso_sptCanVert, sizeof( mso_sptCanVert ) / sizeof( SvxMSDffVertPair ),
668     (sal_uInt16*)mso_sptCanSegm, sizeof( mso_sptCanSegm ) >> 1,
669     (SvxMSDffCalculationData*)mso_sptCanCalc, sizeof( mso_sptCanCalc ) / sizeof( SvxMSDffCalculationData ),
670     (sal_Int32*)mso_sptDefault5400,
671     (SvxMSDffTextRectangles*)mso_sptCanTextRect, sizeof( mso_sptCanTextRect ) / sizeof( SvxMSDffTextRectangles ),
672     88, 21600,
673     0x80000000, 0x80000000,
674     (SvxMSDffVertPair*)mso_sptCanGluePoints, sizeof( mso_sptCanGluePoints ) / sizeof( SvxMSDffVertPair ),
675     (SvxMSDffHandle*)mso_sptCanHandle, sizeof( mso_sptCanHandle ) / sizeof( SvxMSDffHandle )        // handles
676 };
677 
678 static const SvxMSDffVertPair mso_sptArrowVert[] =  // adjustment1: x 0 - 21600
679 {                                                   // adjustment2: y 0 - 10800
680     { 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
681     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }
682 };
683 static const sal_uInt16 mso_sptArrowSegm[] =
684 {
685     0x4000, 0x0006, 0x6001, 0x8000
686 };
687 static const SvxMSDffCalculationData mso_sptArrowCalc[] =
688 {
689     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
690     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
691     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
692     { 0x8000, { 21600, 0, 0x401 } },
693     { 0x6001, { 0x403, 0x400, 10800 } },
694     { 0x6000, { 0x401, 0x404, 0 } },
695     { 0x6001, { 0x401, 0x400, 10800 } },
696     { 0xa000, { 0x401, 0, 0x406 } }
697 };
698 static const SvxMSDffTextRectangles mso_sptArrowTextRect[] =
699 {
700     { { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
701 };
702 static const SvxMSDffHandle mso_sptArrowHandle[] =
703 {
704     {   MSDFF_HANDLE_FLAGS_RANGE,
705         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
706 };
707 static const mso_CustomShape msoArrow =
708 {
709     (SvxMSDffVertPair*)mso_sptArrowVert, sizeof( mso_sptArrowVert ) / sizeof( SvxMSDffVertPair ),
710     (sal_uInt16*)mso_sptArrowSegm, sizeof( mso_sptArrowSegm ) >> 1,
711     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
712     (sal_Int32*)mso_sptDefault16200and5400,
713     (SvxMSDffTextRectangles*)mso_sptArrowTextRect, sizeof( mso_sptArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
714     21600, 21600,
715     0x80000000, 0x80000000,
716     NULL, 0,
717     (SvxMSDffHandle*)mso_sptArrowHandle, sizeof( mso_sptArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
718 };
719 
720 static const SvxMSDffVertPair mso_sptLeftArrowVert[] =  // adjustment1: x 0 - 21600
721 {                                                       // adjustment2: y 0 - 10800
722     { 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
723     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
724 };
725 static const sal_uInt16 mso_sptLeftArrowSegm[] =
726 {
727     0x4000, 0x0006, 0x6001, 0x8000
728 };
729 static const sal_Int32 mso_sptLeftArrowDefault[] =
730 {
731     2, 5400, 5400
732 };
733 static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
734 {
735     { { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
736 };
737 static const SvxMSDffHandle mso_sptLeftArrowHandle[] =
738 {
739     {   MSDFF_HANDLE_FLAGS_RANGE,
740         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
741 };
742 static const mso_CustomShape msoLeftArrow =
743 {
744     (SvxMSDffVertPair*)mso_sptLeftArrowVert, sizeof( mso_sptLeftArrowVert ) / sizeof( SvxMSDffVertPair ),
745     (sal_uInt16*)mso_sptLeftArrowSegm, sizeof( mso_sptLeftArrowSegm ) >> 1,
746     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
747     (sal_Int32*)mso_sptLeftArrowDefault,
748     (SvxMSDffTextRectangles*)mso_sptLeftArrowTextRect, sizeof( mso_sptLeftArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
749     21600, 21600,
750     0x80000000, 0x80000000,
751     NULL, 0,
752     (SvxMSDffHandle*)mso_sptLeftArrowHandle, sizeof( mso_sptLeftArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
753 };
754 
755 static const SvxMSDffVertPair mso_sptDownArrowVert[] =  // adjustment1: x 0 - 21600
756 {                                                       // adjustment2: y 0 - 10800
757     { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
758     { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
759 };
760 static const sal_uInt16 mso_sptDownArrowSegm[] =
761 {
762     0x4000, 0x0006, 0x6001, 0x8000
763 };
764 static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
765 {
766     { { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
767 };
768 static const SvxMSDffHandle mso_sptDownArrowHandle[] =
769 {
770     {   MSDFF_HANDLE_FLAGS_RANGE,
771         0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
772 };
773 static const mso_CustomShape msoDownArrow =
774 {
775     (SvxMSDffVertPair*)mso_sptDownArrowVert, sizeof( mso_sptDownArrowVert ) / sizeof( SvxMSDffVertPair ),
776     (sal_uInt16*)mso_sptDownArrowSegm, sizeof( mso_sptDownArrowSegm ) >> 1,
777     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
778     (sal_Int32*)mso_sptDefault16200and5400,
779     (SvxMSDffTextRectangles*)mso_sptDownArrowTextRect, sizeof( mso_sptDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
780     21600, 21600,
781     0x80000000, 0x80000000,
782     NULL, 0,
783     (SvxMSDffHandle*)mso_sptDownArrowHandle, sizeof( mso_sptDownArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
784 };
785 
786 static const SvxMSDffVertPair mso_sptUpArrowVert[] =    // adjustment1: x 0 - 21600
787 {                                                       // adjustment2: y 0 - 10800
788     { 0 MSO_I, 21600 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
789     { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
790 };
791 static const sal_uInt16 mso_sptUpArrowSegm[] =
792 {
793     0x4000, 0x0006, 0x6001, 0x8000
794 };
795 static const sal_Int32 mso_sptUpArrowDefault[] =
796 {
797     2, 5400, 5400
798 };
799 static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
800 {
801     { { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
802 };
803 static const SvxMSDffHandle mso_sptUpArrowHandle[] =
804 {
805     {   MSDFF_HANDLE_FLAGS_RANGE,
806         0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
807 };
808 static const mso_CustomShape msoUpArrow =
809 {
810     (SvxMSDffVertPair*)mso_sptUpArrowVert, sizeof( mso_sptUpArrowVert ) / sizeof( SvxMSDffVertPair ),
811     (sal_uInt16*)mso_sptUpArrowSegm, sizeof( mso_sptUpArrowSegm ) >> 1,
812     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
813     (sal_Int32*)mso_sptUpArrowDefault,
814     (SvxMSDffTextRectangles*)mso_sptUpArrowTextRect, sizeof( mso_sptUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
815     21600, 21600,
816     0x80000000, 0x80000000,
817     NULL, 0,
818     (SvxMSDffHandle*)mso_sptUpArrowHandle, sizeof( mso_sptUpArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
819 };
820 
821 static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] = // adjustment1: x 0 - 10800
822 {                                                           // adjustment2: y 0 - 10800
823     { 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
824     { 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
825     { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
826 };
827 static const sal_uInt16 mso_sptLeftRightArrowSegm[] =
828 {
829     0x4000, 0x0009, 0x6001, 0x8000
830 };
831 static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
832 {
833     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
834     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
835     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
836     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
837     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
838     { 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } },
839     { 0x8000, { 21600, 0, 0x405 } },
840     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
841     { 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } },
842     { 0x8000, { 21600, 0, 0x408 } }
843 };
844 static const sal_Int32 mso_sptLeftRightArrowDefault[] =
845 {
846     2, 4300, 5400
847 };
848 static const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] =
849 {
850     { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } }
851 };
852 static const SvxMSDffHandle mso_sptLeftRightArrowHandle[] =
853 {
854     {   MSDFF_HANDLE_FLAGS_RANGE,
855         0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
856 };
857 static const mso_CustomShape msoLeftRightArrow =
858 {
859     (SvxMSDffVertPair*)mso_sptLeftRightArrowVert, sizeof( mso_sptLeftRightArrowVert ) / sizeof( SvxMSDffVertPair ),
860     (sal_uInt16*)mso_sptLeftRightArrowSegm, sizeof( mso_sptLeftRightArrowSegm ) >> 1,
861     (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
862     (sal_Int32*)mso_sptLeftRightArrowDefault,
863     (SvxMSDffTextRectangles*)mso_sptLeftRightArrowTextRect, sizeof( mso_sptLeftRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
864     21600, 21600,
865     0x80000000, 0x80000000,
866     NULL, 0,
867     (SvxMSDffHandle*)mso_sptLeftRightArrowHandle, sizeof( mso_sptLeftRightArrowHandle ) / sizeof( SvxMSDffHandle )      // handles
868 };
869 
870 static const SvxMSDffVertPair mso_sptUpDownArrowVert[] =    // adjustment1: x 0 - 10800
871 {                                                           // adjustment2: y 0 - 10800
872     { 0, 1 MSO_I }, { 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
873     { 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
874     { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
875 };
876 static const sal_uInt16 mso_sptUpDownArrowSegm[] =
877 {
878     0x4000, 0x0009, 0x6001, 0x8000
879 };
880 static const sal_Int32 mso_sptUpDownArrowDefault[] =
881 {
882     2, 5400, 4300
883 };
884 static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
885 {
886     { { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
887 };
888 static const SvxMSDffHandle mso_sptUpDownArrowHandle[] =
889 {
890     {   MSDFF_HANDLE_FLAGS_RANGE,
891         0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
892 };
893 static const mso_CustomShape msoUpDownArrow =
894 {
895     (SvxMSDffVertPair*)mso_sptUpDownArrowVert, sizeof( mso_sptUpDownArrowVert ) / sizeof( SvxMSDffVertPair ),
896     (sal_uInt16*)mso_sptUpDownArrowSegm, sizeof( mso_sptUpDownArrowSegm ) >> 1,
897     (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
898     (sal_Int32*)mso_sptUpDownArrowDefault,
899     (SvxMSDffTextRectangles*)mso_sptUpDownArrowTextRect, sizeof( mso_sptUpDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
900     21600, 21600,
901     0x80000000, 0x80000000,
902     NULL, 0,
903     (SvxMSDffHandle*)mso_sptUpDownArrowHandle, sizeof( mso_sptUpDownArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
904 };
905 
906 static const SvxMSDffVertPair mso_sptQuadArrowVert[] =  // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
907 {                                                       // adjustment3: y 0 - 10800
908     { 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
909     { 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
910     { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
911     { 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
912     { 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
913     { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
914 };
915 static const sal_uInt16 mso_sptQuadArrowSegm[] =
916 {
917     0x4000, 0x0017, 0x6001, 0x8000
918 };
919 static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
920 {
921     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
922     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
923     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
924     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
925     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
926     { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }
927 };
928 static const sal_Int32 mso_sptQuadArrowDefault[] =
929 {
930     3, 6500, 8600, 4300
931 };
932 static const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] =    // todo
933 {
934     { { 0, 0 }, { 21600, 21600 } }
935 };
936 static const SvxMSDffHandle mso_sptQuadArrowHandle[] =
937 {
938     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
939         0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
940     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
941         0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
942 };
943 static const mso_CustomShape msoQuadArrow =
944 {
945     (SvxMSDffVertPair*)mso_sptQuadArrowVert, sizeof( mso_sptQuadArrowVert ) / sizeof( SvxMSDffVertPair ),
946     (sal_uInt16*)mso_sptQuadArrowSegm, sizeof( mso_sptQuadArrowSegm ) >> 1,
947     (SvxMSDffCalculationData*)mso_sptQuadArrowCalc, sizeof( mso_sptQuadArrowCalc ) / sizeof( SvxMSDffCalculationData ),
948     (sal_Int32*)mso_sptQuadArrowDefault,
949     (SvxMSDffTextRectangles*)mso_sptQuadArrowTextRect, sizeof( mso_sptQuadArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
950     21600, 21600,
951     0x80000000, 0x80000000,
952     NULL, 0,
953     (SvxMSDffHandle*)mso_sptQuadArrowHandle, sizeof( mso_sptQuadArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
954 };
955 
956 static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] =   // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
957 {                                                               // adjustment3: y 0 - 21600
958     { 10800, 0 }, { 3 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
959     { 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I }, { 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
960     { 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0, 10800 },
961     { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
962     { 0 MSO_I, 2 MSO_I }
963 };
964 static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
965 {
966     0x4000, 0x0010, 0x6001, 0x8000
967 };
968 static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
969 {
970     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 0
971     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 1
972     { 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } },   // 2
973     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },         // 3
974     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },        // 4
975     { 0x8000, { 21600, 0, 0x0402 } }                        // 5
976 };
977 static const sal_Int32 mso_sptLeftRightUpArrowDefault[] =
978 {
979     3, 6500, 8600, 6200
980 };
981 static const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] =     // todo
982 {
983     { { 0, 0 }, { 21600, 21600 } }
984 };
985 static const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] =
986 {
987     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
988         0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
989     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
990         0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
991 };
992 static const mso_CustomShape msoLeftRightUpArrow =
993 {
994     (SvxMSDffVertPair*)mso_sptLeftRightUpArrowVert, sizeof( mso_sptLeftRightUpArrowVert ) / sizeof( SvxMSDffVertPair ),
995     (sal_uInt16*)mso_sptLeftRightUpArrowSegm, sizeof( mso_sptLeftRightUpArrowSegm ) >> 1,
996     (SvxMSDffCalculationData*)mso_sptLeftRightUpArrowCalc, sizeof( mso_sptLeftRightUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
997     (sal_Int32*)mso_sptLeftRightUpArrowDefault,
998     (SvxMSDffTextRectangles*)mso_sptLeftRightUpArrowTextRect, sizeof( mso_sptLeftRightUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
999     21600, 21600,
1000     0x80000000, 0x80000000,
1001     NULL, 0,
1002     (SvxMSDffHandle*)mso_sptLeftRightUpArrowHandle, sizeof( mso_sptLeftRightUpArrowHandle ) / sizeof( SvxMSDffHandle )      // handles
1003 };
1004 
1005 static const SvxMSDffVertPair mso_sptBentArrowVert[] =  // adjustment1 : x 12427 - 21600
1006 {                                                       // adjustment2 : y 0 - 6079
1007     { 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
1008     { 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
1009     { 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
1010 };
1011 static const sal_uInt16 mso_sptBentArrowSegm[] =
1012 {
1013     0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1014 };
1015 static const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
1016 {
1017     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1018     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1019     { 0x8000, { 12158, 0, DFF_Prop_adjust2Value } },
1020     { 0x8000, { 6079, 0, DFF_Prop_adjust2Value } },
1021     { 0x2001, { 0x0403, 2, 1 } }
1022 };
1023 static const sal_Int32 mso_sptBentArrowDefault[] =
1024 {
1025     2, 15100, 2900
1026 };
1027 static const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] =    // todo
1028 {
1029     { { 0, 0 }, { 21600, 21600 } }
1030 };
1031 static const SvxMSDffHandle mso_sptBentArrowHandle[] =
1032 {
1033     {   MSDFF_HANDLE_FLAGS_RANGE,
1034         0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 }
1035 };
1036 static const mso_CustomShape msoBentArrow =
1037 {
1038     (SvxMSDffVertPair*)mso_sptBentArrowVert, sizeof( mso_sptBentArrowVert ) / sizeof( SvxMSDffVertPair ),
1039     (sal_uInt16*)mso_sptBentArrowSegm, sizeof( mso_sptBentArrowSegm ) >> 1,
1040     (SvxMSDffCalculationData*)mso_sptBentArrowCalc, sizeof( mso_sptBentArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1041     (sal_Int32*)mso_sptBentArrowDefault,
1042     (SvxMSDffTextRectangles*)mso_sptBentArrowTextRect, sizeof( mso_sptBentArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1043     21600, 21600,
1044     0x80000000, 0x80000000,
1045     NULL, 0,
1046     (SvxMSDffHandle*)mso_sptBentArrowHandle, sizeof( mso_sptBentArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
1047 };
1048 
1049 static const SvxMSDffVertPair mso_sptUturnArrowVert[] =
1050 {
1051     { 0, 21600 }, { 0, 8550 },                                          // pp
1052     { 0, 3540 }, { 4370, 0 }, { 9270, 0 },                              // ccp
1053     { 13890, 0 }, { 18570, 3230 }, { 18600, 8300 },                     // ccp
1054     { 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
1055     { 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 },                   // ccp
1056     { 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 },                     // ccp
1057     { 6110, 21600 }
1058 };
1059 static const sal_uInt16 mso_sptUturnArrowSegm[] =
1060 {
1061     0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
1062 };
1063 static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] =
1064 {
1065     { { 0, 8280 }, { 6110, 21600 } }
1066 };
1067 static const mso_CustomShape msoUturnArrow =
1068 {
1069     (SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ),
1070     (sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1,
1071     NULL, 0,
1072     NULL,
1073     (SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1074     21600, 21600,
1075     0x80000000, 0x80000000,
1076     NULL, 0,
1077     NULL, 0     // handles
1078 };
1079 
1080 static const SvxMSDffVertPair mso_sptLeftUpArrowVert[] =    // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1081 {                                                           // adjustment3 : y 0 - 21600
1082     { 0, 5 MSO_I }, { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I },
1083     { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I },
1084     { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
1085 };
1086 static const sal_uInt16 mso_sptLeftUpArrowSegm[] =
1087 {
1088     0x4000, 0x000b, 0x6001, 0x8000
1089 };
1090 static const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] =
1091 {
1092     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0
1093     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 1
1094     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },        // 2
1095     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1096     { 0x2001, { 0x0403, 1, 2 } },                       // 4
1097     { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },    // 5
1098     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },    // 6
1099     { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },    // 7
1100     { 0x8000, { 21600, 0, 0x406 } },                    // 8
1101     { 0xa000, { 0x408, 0, 0x406 } }                 // 9
1102 };
1103 static const sal_Int32 mso_sptLeftUpArrowDefault[] =
1104 {
1105     3, 9340, 18500, 6200
1106 };
1107 static const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] =
1108 {
1109     { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1110     { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1111 };
1112 static const SvxMSDffHandle mso_sptLeftUpArrowHandle[] =
1113 {
1114     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1115         0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1116     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1117         0x100, 0, 10800, 10800, 0x102, 3 + 9, 0x80000000, 0x7fffffff }
1118 };
1119 static const mso_CustomShape msoLeftUpArrow =
1120 {
1121     (SvxMSDffVertPair*)mso_sptLeftUpArrowVert, sizeof( mso_sptLeftUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1122     (sal_uInt16*)mso_sptLeftUpArrowSegm, sizeof( mso_sptLeftUpArrowSegm ) >> 1,
1123     (SvxMSDffCalculationData*)mso_sptLeftUpArrowCalc, sizeof( mso_sptLeftUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1124     (sal_Int32*)mso_sptLeftUpArrowDefault,
1125     (SvxMSDffTextRectangles*)mso_sptLeftUpArrowTextRect, sizeof( mso_sptLeftUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1126     21600, 21600,
1127     0x80000000, 0x80000000,
1128     NULL, 0,
1129     (SvxMSDffHandle*)mso_sptLeftUpArrowHandle, sizeof( mso_sptLeftUpArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
1130 };
1131 
1132 static const SvxMSDffVertPair mso_sptBentUpArrowVert[] =    // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1133 {                                                           // adjustment3 : y 0 - 21600
1134     { 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
1135     { 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
1136     { 0, 21600 }
1137 };
1138 static const sal_uInt16 mso_sptBentUpArrowSegm[] =
1139 {
1140     0x4000, 0x0008, 0x6001, 0x8000
1141 };
1142 static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
1143 {
1144     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0
1145     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 1
1146     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },        // 2
1147     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1148     { 0x2001, { 0x0403, 1, 2 } },                       // 4
1149     { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },    // 5
1150     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },    // 6
1151     { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },    // 7
1152     { 0x6000, { 0x0407, 0x0406, 0 } },                  // 8
1153     { 0x8000, { 21600, 0, 0x406 } },                    // 9
1154     { 0xa000, { 0x409, 0, 0x406 } }                 // a
1155 };
1156 static const sal_Int32 mso_sptBentUpArrowDefault[] =
1157 {
1158     3, 9340, 18500, 7200
1159 };
1160 static const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] =
1161 {
1162     { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1163     { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1164 };
1165 static const SvxMSDffHandle mso_sptBentUpArrowHandle[] =
1166 {
1167     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1168         0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1169     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1170         0x100, 0, 10800, 10800, 0x102, 3 + 10, 0x80000000, 0x7fffffff }
1171 };
1172 static const mso_CustomShape msoBentUpArrow =
1173 {
1174     (SvxMSDffVertPair*)mso_sptBentUpArrowVert, sizeof( mso_sptBentUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1175     (sal_uInt16*)mso_sptBentUpArrowSegm, sizeof( mso_sptBentUpArrowSegm ) >> 1,
1176     (SvxMSDffCalculationData*)mso_sptBentUpArrowCalc, sizeof( mso_sptBentUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1177     (sal_Int32*)mso_sptBentUpArrowDefault,
1178     (SvxMSDffTextRectangles*)mso_sptBentUpArrowTextRect, sizeof( mso_sptBentUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1179     21600, 21600,
1180     0x80000000, 0x80000000,
1181     NULL, 0,
1182     (SvxMSDffHandle*)mso_sptBentUpArrowHandle, sizeof( mso_sptBentUpArrowHandle ) / sizeof( SvxMSDffHandle )
1183 };
1184 
1185 static const SvxMSDffVertPair mso_sptCurvedRightVert[] =
1186 {
1187     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I },
1188     { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I },
1189     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I },
1190     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I },
1191     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I },
1192     { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }
1193 };
1194 static const sal_uInt16 mso_sptCurvedRightSegm[] =
1195 {
1196     0xa408,
1197     0x0003,
1198     0xa508,
1199     0x6000,
1200     0x8000,
1201     0xa404,
1202     0xa304,
1203     0xa504,
1204     0x6000,
1205     0x8000
1206 };
1207 static const SvxMSDffCalculationData mso_sptCurvedRightCalc[] =
1208 {
1209     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1210     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1211     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1212     { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1213     { 0x2001, { 0x403, 1, 2 } },
1214     { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1215     { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1216     { 0x2001, { 0x406, 1, 2 } },
1217     { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1218     { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } },
1219     { 0xa00f, { 0x409, 21600, 0x404 } },
1220     { 0x6000, { 0x404, 0x40a, 0 } },
1221     { 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } },
1222     { 0x6000, { 0x407, 0x40a, 0 } },
1223     { 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } },
1224     { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1225     { 0x2001, { 0x40f, 1, 2 } },
1226     { 0x6002, { 0x404, 0x407, 0 } },
1227     { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1228     { 0x2001, { 0x412, 1, 2 } },
1229     { 0xa000, { 0x411, 0, 0x413 } },
1230     { 0x0000, { 21600, 0, 0 } },
1231     { 0x0000, { 21600, 0, 0 } },
1232     { 0x0001, { 21600, 2, 1 } },
1233     { 0xa000, { 0x411, 0, 0x404 } },
1234     { 0x600f, { 0x418, 0x404, 21600 } },
1235     { 0x8000, { 21600, 0, 0x419 } },
1236     { 0x2000, { 0x408, 128, 0 } },
1237     { 0x2001, { 0x405, 1, 2 } },
1238     { 0x2000, { 0x405, 0, 128 } },
1239     { 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } },
1240     { 0x600f, { 0x414, 0x404, 21600 } },
1241     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1242     { 0x2001, { 0x420, 1, 2 } },
1243     { 0x0001, { 21600, 21600, 1 } },
1244     { 0x6001, { 0x409, 0x409, 1 } },
1245     { 0xa000, { 0x422, 0, 0x423 } },
1246     { 0x200d, { 0x424, 0, 0 } },
1247     { 0x2000, { 0x425, 21600, 0 } },
1248     { 0x8001, { 21600, 21600, 0x426 } },
1249     { 0x2000, { 0x427, 64, 0 } },
1250     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1251     { 0x600f, { 0x421, 0x429, 21600 } },
1252     { 0x8000, { 21600, 0, 0x42a } },
1253     { 0x2000, { 0x42b, 64, 0 } },
1254     { 0x2001, { 0x404, 1, 2 } },
1255     { 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } },
1256     { 0x0001, { 21600, 2195, 16384 } },
1257     { 0x0001, { 21600, 14189, 16384 } }
1258 };
1259 static const sal_Int32 mso_sptCurvedRightDefault[] =
1260 {
1261     3, 12960, 19440, 14400
1262 };
1263 static const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] =
1264 {
1265     { { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } }
1266 };
1267 static const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] =
1268 {
1269     { 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I }
1270 };
1271 static const SvxMSDffHandle mso_sptCurvedRightHandles[] =
1272 {
1273     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1274         21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 },
1275     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1276         21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 },
1277     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1278         0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 }
1279 };
1280 static const mso_CustomShape msoCurvedRightArrow =
1281 {
1282     (SvxMSDffVertPair*)mso_sptCurvedRightVert, sizeof( mso_sptCurvedRightVert ) / sizeof( SvxMSDffVertPair ),
1283     (sal_uInt16*)mso_sptCurvedRightSegm, sizeof( mso_sptCurvedRightSegm ) >> 1,
1284     (SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1285     (sal_Int32*)mso_sptCurvedRightDefault,
1286     (SvxMSDffTextRectangles*)mso_sptCurvedRightTextRect, sizeof( mso_sptCurvedRightTextRect ) / sizeof( SvxMSDffTextRectangles ),
1287     21600, 21600,
1288     0x80000000, 0x80000000,
1289     (SvxMSDffVertPair*)mso_sptCurvedRightGluePoints, sizeof( mso_sptCurvedRightGluePoints ) / sizeof( SvxMSDffVertPair ),
1290     (SvxMSDffHandle*)mso_sptCurvedRightHandles, sizeof( mso_sptCurvedRightHandles ) / sizeof( SvxMSDffHandle )
1291 };
1292 
1293 static const SvxMSDffVertPair mso_sptCurvedDownVert[] =
1294 {
1295     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1296     { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I },
1297     { 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I },
1298     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 0 },
1299     { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I },
1300     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1301     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 26 MSO_I },
1302     { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I }
1303 };
1304 static const sal_uInt16 mso_sptCurvedDownSegm[] =
1305 {
1306     0xa608,
1307     0x0003,
1308     0xa308,
1309     0x6000,
1310     0x8000,
1311     0xa604,
1312     0xa504,
1313     0xa304,
1314     0x6000,
1315     0x8000
1316 };
1317 static const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] =
1318 {
1319     { { 45 MSO_I, 47 MSO_I }, { 46 MSO_I, 48 MSO_I } }
1320 };
1321 static const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] =
1322 {
1323     { 17 MSO_I, 0 }, { 16 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 14 MSO_I, 2 MSO_I }
1324 };
1325 static const SvxMSDffHandle mso_sptCurvedDownHandles[] =
1326 {
1327     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1328         0x100, 21600, 10800, 10800, 3 + 40, 3 + 29, 0, 10800 },
1329     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1330         0x101, 21600, 10800, 10800, 3 + 27, 3 + 21, 0, 10800 },
1331     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1332         21600, 0x102, 10800, 10800, 3375, 21600, 3 + 44, 3 + 22 }
1333 };
1334 
1335 static const mso_CustomShape msoCurvedDownArrow =
1336 {
1337     (SvxMSDffVertPair*)mso_sptCurvedDownVert, sizeof( mso_sptCurvedDownVert ) / sizeof( SvxMSDffVertPair ),
1338     (sal_uInt16*)mso_sptCurvedDownSegm, sizeof( mso_sptCurvedDownSegm ) >> 1,
1339     (SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1340     (sal_Int32*)mso_sptCurvedRightDefault,
1341     (SvxMSDffTextRectangles*)mso_sptCurvedDownTextRect, sizeof( mso_sptCurvedDownTextRect ) / sizeof( SvxMSDffTextRectangles ),
1342     21600, 21600,
1343     0x80000000, 0x80000000,
1344     (SvxMSDffVertPair*)mso_sptCurvedDownGluePoints, sizeof( mso_sptCurvedDownGluePoints ) / sizeof( SvxMSDffVertPair ),
1345     (SvxMSDffHandle*)mso_sptCurvedDownHandles, sizeof( mso_sptCurvedDownHandles ) / sizeof( SvxMSDffHandle )
1346 };
1347 
1348 static const SvxMSDffVertPair mso_sptCurvedUpVert[] =
1349 {
1350     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1351     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I },
1352     { 12 MSO_I, 2 MSO_I }, { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I },
1353     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I },
1354     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 },
1355     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1356     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I },
1357     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }
1358 };
1359 static const sal_uInt16 mso_sptCurvedUpSegm[] =
1360 {
1361     0xa408,
1362     0x0003,
1363     0xa508,
1364     0x6000,
1365     0x8000,
1366     0xa404,
1367     0xa508,
1368     0xa504,
1369     0x6000,
1370     0x8000
1371 };
1372 static const SvxMSDffCalculationData mso_sptCurvedUpCalc[] =
1373 {
1374     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1375     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1376     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1377     { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1378     { 0x2001, { 0x403, 1, 2 } },
1379     { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1380     { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1381     { 0x2001, { 0x406, 1, 2 } },
1382     { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1383     { 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } },
1384     { 0x6000, { 0x404, 0x409, 0 } },
1385     { 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } },
1386     { 0x6000, { 0x407, 0x409, 0 } },
1387     { 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } },
1388     { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1389     { 0x2001, { 0x40e, 1, 2 } },
1390     { 0x6002, { 0x404, 0x407, 0 } },
1391     { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1392     { 0x2001, { 0x411, 1, 2 } },
1393     { 0xa000, { 0x410, 0, 0x412 } },
1394     { 0x0000, { 21600, 0, 0 } },
1395     { 0x0000, { 21600, 0, 0 } },
1396     { 0x0000, { 0, 0, 21600 } },
1397     { 0xa000, { 0x410, 0, 0x404 } },
1398     { 0x600f, { 0x417, 0x404, 21600 } },
1399     { 0x2000, { 0x408, 128, 0 } },
1400     { 0x2001, { 0x405, 1, 2 } },
1401     { 0x2000, { 0x405, 0, 128 } },
1402     { 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } },
1403     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1404     { 0x2001, { 0x41d, 1, 2 } },
1405     { 0x0001, { 21600, 21600, 1 } },
1406     { 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } },
1407     { 0xa000, { 0x41f, 0, 0x420 } },
1408     { 0x200d, { 0x421, 0, 0 } },
1409     { 0x2000, { 0x422, 21600, 0 } },
1410     { 0x8001, { 21600, 21600, 0x423 } },
1411     { 0x2000, { 0x424, 64, 0 } },
1412     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1413     { 0x600f, { 0x41e, 0x426, 21600 } },
1414     { 0x2000, { 0x427, 0, 64 } },
1415     { 0x2001, { 0x404, 1, 2 } },
1416     { 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } },
1417     { 0x0001, { 21600, 2195, 16384 } },
1418     { 0x0001, { 21600, 14189, 16384 } }
1419 };
1420 static const sal_Int32 mso_sptCurvedUpDefault[] =
1421 {
1422     3, 12960, 19440, 7200
1423 };
1424 static const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] =
1425 {
1426     { { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } }
1427 };
1428 static const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] =
1429 {
1430     { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I }
1431 };
1432 static const SvxMSDffHandle mso_sptCurvedUpHandles[] =
1433 {
1434     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1435         0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 },
1436     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1437         0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 },
1438     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1439         21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 }
1440 };
1441 static const mso_CustomShape msoCurvedUpArrow =
1442 {
1443     (SvxMSDffVertPair*)mso_sptCurvedUpVert, sizeof( mso_sptCurvedUpVert ) / sizeof( SvxMSDffVertPair ),
1444     (sal_uInt16*)mso_sptCurvedUpSegm, sizeof( mso_sptCurvedUpSegm ) >> 1,
1445     (SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1446     (sal_Int32*)mso_sptCurvedUpDefault,
1447     (SvxMSDffTextRectangles*)mso_sptCurvedUpTextRect, sizeof( mso_sptCurvedUpTextRect ) / sizeof( SvxMSDffTextRectangles ),
1448     21600, 21600,
1449     0x80000000, 0x80000000,
1450     (SvxMSDffVertPair*)mso_sptCurvedUpGluePoints, sizeof( mso_sptCurvedUpGluePoints ) / sizeof( SvxMSDffVertPair ),
1451     (SvxMSDffHandle*)mso_sptCurvedUpHandles, sizeof( mso_sptCurvedUpHandles ) / sizeof( SvxMSDffHandle )
1452 };
1453 
1454 static const SvxMSDffVertPair mso_sptCurvedLeftVert[] =
1455 {
1456     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1457     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I },
1458     { 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I },
1459     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I },
1460     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I },
1461     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1462     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I },
1463     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }
1464 };
1465 static const sal_uInt16 mso_sptCurvedLeftSegm[] =
1466 {
1467     0xa608,
1468     0x0003,
1469     0xa308,
1470     0x6000,
1471     0x8000,
1472     0xa604,
1473     0xa308,
1474     0x6000,
1475     0x8000
1476 };
1477 static const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] =
1478 {
1479     { { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } }
1480 };
1481 static const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] =
1482 {
1483     { 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I }
1484 };
1485 static const SvxMSDffHandle mso_sptCurvedLeftHandles[] =
1486 {
1487     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1488         0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 },
1489     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1490         0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 },
1491     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1492         0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 }
1493 };
1494 static const mso_CustomShape msoCurvedLeftArrow =
1495 {
1496     (SvxMSDffVertPair*)mso_sptCurvedLeftVert, sizeof( mso_sptCurvedLeftVert ) / sizeof( SvxMSDffVertPair ),
1497     (sal_uInt16*)mso_sptCurvedLeftSegm, sizeof( mso_sptCurvedLeftSegm ) >> 1,
1498     (SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1499     (sal_Int32*)mso_sptCurvedUpDefault,
1500     (SvxMSDffTextRectangles*)mso_sptCurvedLeftTextRect, sizeof( mso_sptCurvedLeftTextRect ) / sizeof( SvxMSDffTextRectangles ),
1501     21600, 21600,
1502     0x80000000, 0x80000000,
1503     (SvxMSDffVertPair*)mso_sptCurvedLeftGluePoints, sizeof( mso_sptCurvedLeftGluePoints ) / sizeof( SvxMSDffVertPair ),
1504     (SvxMSDffHandle*)mso_sptCurvedLeftHandles, sizeof( mso_sptCurvedLeftHandles ) / sizeof( SvxMSDffHandle )
1505 };
1506 
1507 static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] =  // adjustment1 : x 3375 - 21600
1508 {                                                               // adjustment2 : y 0 - 10800
1509     { 3375, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
1510     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
1511     { 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
1512     { 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
1513 };
1514 static const sal_uInt16 mso_sptStripedRightArrowSegm[] =
1515 {
1516     0x4000, 0x0006, 0x6001, 0x8000,
1517     0x4000, 0x0003, 0x6001, 0x8000,
1518     0x4000, 0x0003, 0x6001, 0x8000
1519 };
1520 static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
1521 {
1522     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1523     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1524     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1525     { 0x8000, { 21600, 0, 0x401 } },
1526     { 0x6001, { 0x403, 0x400, 10800 } },
1527     { 0x6000, { 0x401, 0x404, 0 } }
1528 };
1529 static const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] =
1530 {
1531     { { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
1532 };
1533 static const SvxMSDffHandle mso_sptStripedRightArrowHandle[] =
1534 {
1535     {   MSDFF_HANDLE_FLAGS_RANGE,
1536         0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 }
1537 };
1538 static const mso_CustomShape msoStripedRightArrow =
1539 {
1540     (SvxMSDffVertPair*)mso_sptStripedRightArrowVert, sizeof( mso_sptStripedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1541     (sal_uInt16*)mso_sptStripedRightArrowSegm, sizeof( mso_sptStripedRightArrowSegm ) >> 1,
1542     (SvxMSDffCalculationData*)mso_sptStripedRightArrowCalc, sizeof( mso_sptStripedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1543     (sal_Int32*)mso_sptDefault16200and5400,
1544     (SvxMSDffTextRectangles*)mso_sptStripedRightArrowTextRect, sizeof( mso_sptStripedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1545     21600, 21600,
1546     0x80000000, 0x80000000,
1547     NULL, 0,
1548     (SvxMSDffHandle*)mso_sptStripedRightArrowHandle, sizeof( mso_sptStripedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1549 };
1550 
1551 static const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] =  // adjustment1 : x 0 - 21600    (default 16200)
1552 {                                                               // adjustment2 : y 0 - 10800    (default 5400)
1553     { 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 },
1554     { 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I }
1555 };
1556 static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
1557 {
1558     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1559     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1560     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1561     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1562     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
1563     { 0x6001, { 0x403, 0x404, 10800 } }
1564 };
1565 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =    // todo
1566 {
1567     { { 0, 0 }, { 21600, 21600 } }
1568 };
1569 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
1570 {
1571     {   MSDFF_HANDLE_FLAGS_RANGE,
1572         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
1573 };
1574 static const mso_CustomShape msoNotchedRightArrow =
1575 {
1576     (SvxMSDffVertPair*)mso_sptNotchedRightArrowVert, sizeof( mso_sptNotchedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1577     NULL, 0,
1578     (SvxMSDffCalculationData*)mso_sptNotchedRightArrowCalc, sizeof( mso_sptNotchedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1579     (sal_Int32*)mso_sptDefault16200and5400,
1580     (SvxMSDffTextRectangles*)mso_sptNotchedRightArrowTextRect, sizeof( mso_sptNotchedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1581     21600, 21600,
1582     0x80000000, 0x80000000,
1583     NULL, 0,
1584     (SvxMSDffHandle*)mso_sptNotchedRightArrowHandle, sizeof( mso_sptNotchedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1585 };
1586 
1587 static const SvxMSDffVertPair mso_sptHomePlateVert[] =  // adjustment1 : x 0 - 21600
1588 {
1589     { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1590     { 0, 21600 }
1591 };
1592 static const sal_uInt16 mso_sptHomePlateSegm[] =
1593 {
1594     0x4000, 0x0004, 0x6001, 0x8000
1595 };
1596 static const SvxMSDffCalculationData mso_sptHomePlateCalc[] =
1597 {
1598     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
1599 };
1600 static const sal_Int32 mso_sptHomePlateDefault[] =
1601 {
1602     1, 16200
1603 };
1604 static const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] =    // todo
1605 {
1606     { { 0, 0 }, { 21600, 21600 } }
1607 };
1608 static const SvxMSDffHandle mso_sptHomePlateHandle[] =
1609 {
1610     {   MSDFF_HANDLE_FLAGS_RANGE,
1611         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1612 };
1613 static const mso_CustomShape msoHomePlate =
1614 {
1615     (SvxMSDffVertPair*)mso_sptHomePlateVert, sizeof( mso_sptHomePlateVert ) / sizeof( SvxMSDffVertPair ),
1616     (sal_uInt16*)mso_sptHomePlateSegm, sizeof( mso_sptHomePlateSegm ) >> 1,
1617     (SvxMSDffCalculationData*)mso_sptHomePlateCalc, sizeof( mso_sptHomePlateCalc ) / sizeof( SvxMSDffCalculationData ),
1618     (sal_Int32*)mso_sptHomePlateDefault,
1619     (SvxMSDffTextRectangles*)mso_sptHomePlateTextRect, sizeof( mso_sptHomePlateTextRect ) / sizeof( SvxMSDffTextRectangles ),
1620     21600, 21600,
1621     0x80000000, 0x80000000,
1622     NULL, 0,
1623     (SvxMSDffHandle*)mso_sptHomePlateHandle, sizeof( mso_sptHomePlateHandle ) / sizeof( SvxMSDffHandle )
1624 };
1625 
1626 static const SvxMSDffVertPair mso_sptChevronVert[] =    // adjustment1 : x 0 - 21600
1627 {
1628     { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1629     { 0, 21600 }, { 1 MSO_I, 10800 }
1630 };
1631 static const sal_uInt16 mso_sptChevronSegm[] =
1632 {
1633     0x4000, 0x0005, 0x6001, 0x8000
1634 };
1635 static const SvxMSDffCalculationData mso_sptChevronCalc[] =
1636 {
1637     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1638     { 0x8000, { 21600, 0, 0x0400 } }
1639 };
1640 static const sal_Int32 mso_sptChevronDefault[] =
1641 {
1642     1, 16200
1643 };
1644 static const SvxMSDffTextRectangles mso_sptChevronTextRect[] =  // todo
1645 {
1646     { { 0, 0 }, { 21600, 21600 } }
1647 };
1648 static const SvxMSDffHandle mso_sptChevronHandle[] =
1649 {
1650     {   MSDFF_HANDLE_FLAGS_RANGE,
1651         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1652 };
1653 static const mso_CustomShape msoChevron =
1654 {
1655     (SvxMSDffVertPair*)mso_sptChevronVert, sizeof( mso_sptChevronVert ) / sizeof( SvxMSDffVertPair ),
1656     (sal_uInt16*)mso_sptChevronSegm, sizeof( mso_sptChevronSegm ) >> 1,
1657     (SvxMSDffCalculationData*)mso_sptChevronCalc, sizeof( mso_sptChevronCalc ) / sizeof( SvxMSDffCalculationData ),
1658     (sal_Int32*)mso_sptChevronDefault,
1659     (SvxMSDffTextRectangles*)mso_sptChevronTextRect, sizeof( mso_sptChevronTextRect ) / sizeof( SvxMSDffTextRectangles ),
1660     21600, 21600,
1661     0x80000000, 0x80000000,
1662     NULL, 0,
1663     (SvxMSDffHandle*)mso_sptChevronHandle, sizeof( mso_sptChevronHandle ) / sizeof( SvxMSDffHandle )
1664 };
1665 
1666 static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] =  // adjustment1 : x 0 - 21000
1667 {                                                               // adjustment2 : y 0 - 10800
1668     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
1669     { 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
1670     { 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
1671 };
1672 static const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
1673 {
1674     0x4000, 0x000a, 0x6001, 0x8000
1675 };
1676 static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
1677 {
1678     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1679     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1680     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1681     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1682     { 0x8000, { 21600, 0, 0x0401 } },
1683     { 0x8000, { 21600, 0, 0x0403 } }
1684 };
1685 static const sal_Int32 mso_sptRightArrowCalloutDefault[] =
1686 {
1687     4, 14400, 5400, 18000, 8100
1688 };
1689 static const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] =
1690 {
1691     { { 0, 0 }, { 0 MSO_I, 21600 } }
1692 };
1693 static const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] =
1694 {
1695     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1696         0x100, 0, 10800, 10800, 0, 0x102, 0x80000000, 0x7fffffff },
1697     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1698         0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 },
1699     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1700         1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1701 };
1702 static const mso_CustomShape msoRightArrowCallout =
1703 {
1704     (SvxMSDffVertPair*)mso_sptRightArrowCalloutVert, sizeof( mso_sptRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1705     (sal_uInt16*)mso_sptRightArrowCalloutSegm, sizeof( mso_sptRightArrowCalloutSegm ) >> 1,
1706     (SvxMSDffCalculationData*)mso_sptRightArrowCalloutCalc, sizeof( mso_sptRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1707     (sal_Int32*)mso_sptRightArrowCalloutDefault,
1708     (SvxMSDffTextRectangles*)mso_sptRightArrowCalloutTextRect, sizeof( mso_sptRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1709     21600, 21600,
1710     0x80000000, 0x80000000,
1711     NULL, 0,
1712     (SvxMSDffHandle*)mso_sptRightArrowCalloutHandle, sizeof( mso_sptRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1713 };
1714 
1715 static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] =   // adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
1716 {                                                               // adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
1717     { 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
1718     { 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
1719     { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1720 };
1721 static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
1722 {
1723     0x4000, 0x000a, 0x6001, 0x8000
1724 };
1725 static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
1726 {
1727     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1728     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1729     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1730     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1731     { 0x8000, { 21600, 0, 0x0401 } },
1732     { 0x8000, { 21600, 0, 0x0403 } }
1733 };
1734 static const sal_Int32 mso_sptLeftArrowCalloutDefault[] =
1735 {
1736     4, 7200, 5400, 3600, 8100
1737 };
1738 static const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] =
1739 {
1740     { { 0 MSO_I, 0 }, { 21600, 21600 } }
1741 };
1742 static const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] =
1743 {
1744     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1745         0x100, 0, 10800, 10800, 0x102, 21600, 0x80000000, 0x7fffffff },
1746     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1747         0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1748     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1749         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1750 };
1751 static const mso_CustomShape msoLeftArrowCallout =
1752 {
1753     (SvxMSDffVertPair*)mso_sptLeftArrowCalloutVert, sizeof( mso_sptLeftArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1754     (sal_uInt16*)mso_sptLeftArrowCalloutSegm, sizeof( mso_sptLeftArrowCalloutSegm ) >> 1,
1755     (SvxMSDffCalculationData*)mso_sptLeftArrowCalloutCalc, sizeof( mso_sptLeftArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1756     (sal_Int32*)mso_sptLeftArrowCalloutDefault,
1757     (SvxMSDffTextRectangles*)mso_sptLeftArrowCalloutTextRect, sizeof( mso_sptLeftArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1758     21600, 21600,
1759     0x80000000, 0x80000000,
1760     NULL, 0,
1761     (SvxMSDffHandle*)mso_sptLeftArrowCalloutHandle, sizeof( mso_sptLeftArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1762 };
1763 
1764 static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
1765 {
1766     { 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
1767     { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
1768     { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
1769 };
1770 static const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
1771 {
1772     0x4000, 0x000a, 0x6001, 0x8000
1773 };
1774 static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
1775 {
1776     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1777     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1778     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1779     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1780     { 0x8000, { 21600, 0, 0x0401 } },
1781     { 0x8000, { 21600, 0, 0x0403 } }
1782 };
1783 static const sal_Int32 mso_sptUpArrowCalloutDefault[] =
1784 {
1785     4, 7200, 5400, 3600, 8100
1786 };
1787 static const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] =
1788 {
1789     { { 0, 0 MSO_I }, { 21600, 21600 } }
1790 };
1791 static const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] =
1792 {
1793     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1794         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 21600 },
1795     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1796         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1797     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1798         0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1799 };
1800 static const mso_CustomShape msoUpArrowCallout =
1801 {
1802     (SvxMSDffVertPair*)mso_sptUpArrowCalloutVert, sizeof( mso_sptUpArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1803     (sal_uInt16*)mso_sptUpArrowCalloutSegm, sizeof( mso_sptUpArrowCalloutSegm ) >> 1,
1804     (SvxMSDffCalculationData*)mso_sptUpArrowCalloutCalc, sizeof( mso_sptUpArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1805     (sal_Int32*)mso_sptUpArrowCalloutDefault,
1806     (SvxMSDffTextRectangles*)mso_sptUpArrowCalloutTextRect, sizeof( mso_sptUpArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1807     21600, 21600,
1808     0x80000000, 0x80000000,
1809     NULL, 0,
1810     (SvxMSDffHandle*)mso_sptUpArrowCalloutHandle, sizeof( mso_sptUpArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1811 };
1812 
1813 static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
1814 {
1815     { 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
1816     { 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 },
1817     { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1818 };
1819 static const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
1820 {
1821     0x4000, 0x000a, 0x6001, 0x8000
1822 };
1823 static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
1824 {
1825     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1826     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1827     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1828     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1829     { 0x8000, { 21600, 0, 0x0401 } },
1830     { 0x8000, { 21600, 0, 0x0403 } }
1831 };
1832 static const sal_Int32 mso_sptDownArrowCalloutDefault[] =
1833 {
1834     4, 14400, 5400, 18000, 8100
1835 };
1836 static const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] =
1837 {
1838     { { 0, 0 }, { 21600, 0 MSO_I } }
1839 };
1840 static const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] =
1841 {
1842     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1843         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x102 },
1844     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1845         0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 },
1846     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1847         0x101, 1, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1848 };
1849 static const mso_CustomShape msoDownArrowCallout =
1850 {
1851     (SvxMSDffVertPair*)mso_sptDownArrowCalloutVert, sizeof( mso_sptDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1852     (sal_uInt16*)mso_sptDownArrowCalloutSegm, sizeof( mso_sptDownArrowCalloutSegm ) >> 1,
1853     (SvxMSDffCalculationData*)mso_sptDownArrowCalloutCalc, sizeof( mso_sptDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1854     (sal_Int32*)mso_sptDownArrowCalloutDefault,
1855     (SvxMSDffTextRectangles*)mso_sptDownArrowCalloutTextRect, sizeof( mso_sptDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1856     21600, 21600,
1857     0x80000000, 0x80000000,
1858     NULL, 0,
1859     (SvxMSDffHandle*)mso_sptDownArrowCalloutHandle, sizeof( mso_sptDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1860 };
1861 
1862 static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
1863 {
1864     { 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
1865     { 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
1866     { 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
1867     { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
1868     { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1869 };
1870 static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
1871 {
1872     0x4000, 0x0011, 0x6001, 0x8000
1873 };
1874 static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
1875 {
1876     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1877     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1878     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1879     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1880     { 0x8000, { 21600, 0, 0x0400 } },
1881     { 0x8000, { 21600, 0, 0x0401 } },
1882     { 0x8000, { 21600, 0, 0x0402 } },
1883     { 0x8000, { 21600, 0, 0x0403 } }
1884 };
1885 static const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] =
1886 {
1887     4, 5400, 5500, 2700, 8100
1888 };
1889 static const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] =
1890 {
1891     { { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } }
1892 };
1893 static const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] =
1894 {
1895     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1896         0x100, 0, 10800, 10800, 0x102, 10800, 0x80000000, 0x7fffffff },
1897     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1898         0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1899     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1900         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1901 };
1902 static const mso_CustomShape msoLeftRightArrowCallout =
1903 {
1904     (SvxMSDffVertPair*)mso_sptLeftRightArrowCalloutVert, sizeof( mso_sptLeftRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1905     (sal_uInt16*)mso_sptLeftRightArrowCalloutSegm, sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1,
1906     (SvxMSDffCalculationData*)mso_sptLeftRightArrowCalloutCalc, sizeof( mso_sptLeftRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1907     (sal_Int32*)mso_sptLeftRightArrowCalloutDefault,
1908     (SvxMSDffTextRectangles*)mso_sptLeftRightArrowCalloutTextRect, sizeof( mso_sptLeftRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1909     21600, 21600,
1910     0x80000000, 0x80000000,
1911     NULL, 0,
1912     (SvxMSDffHandle*)mso_sptLeftRightArrowCalloutHandle, sizeof( mso_sptLeftRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1913 };
1914 
1915 static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
1916 {
1917     { 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
1918     { 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
1919     { 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
1920     { 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
1921     { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1922 };
1923 static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
1924 {
1925     0x4000, 0x0011, 0x6001, 0x8000
1926 };
1927 static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
1928 {
1929     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1930     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1931     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1932     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1933     { 0x8000, { 21600, 0, 0x0400 } },
1934     { 0x8000, { 21600, 0, 0x0401 } },
1935     { 0x8000, { 21600, 0, 0x0402 } },
1936     { 0x8000, { 21600, 0, 0x0403 } }
1937 };
1938 static const sal_Int32 mso_sptUpDownArrowCalloutDefault[] =
1939 {
1940     4, 5400, 5500, 2700, 8100
1941 };
1942 static const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] =
1943 {
1944     { { 0, 0 MSO_I }, { 21600, 4 MSO_I } }
1945 };
1946 static const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] =
1947 {
1948     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1949         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 10800 },
1950     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1951         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1952     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1953         0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1954 };
1955 static const mso_CustomShape msoUpDownArrowCallout =
1956 {
1957     (SvxMSDffVertPair*)mso_sptUpDownArrowCalloutVert, sizeof( mso_sptUpDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1958     (sal_uInt16*)mso_sptUpDownArrowCalloutSegm, sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1,
1959     (SvxMSDffCalculationData*)mso_sptUpDownArrowCalloutCalc, sizeof( mso_sptUpDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1960     (sal_Int32*)mso_sptUpDownArrowCalloutDefault,
1961     (SvxMSDffTextRectangles*)mso_sptUpDownArrowCalloutTextRect, sizeof( mso_sptUpDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1962     21600, 21600,
1963     0x80000000, 0x80000000,
1964     NULL, 0,
1965     (SvxMSDffHandle*)mso_sptUpDownArrowCalloutHandle, sizeof( mso_sptUpDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1966 };
1967 
1968 static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
1969 {
1970     { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
1971     { 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
1972     { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
1973     { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
1974     { 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
1975     { 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
1976     { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
1977     { 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1978 };
1979 static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
1980 {
1981     0x4000, 0x001f, 0x6001, 0x8000
1982 };
1983 static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
1984 {
1985     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1986     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1987     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1988     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1989     { 0x8000, { 21600, 0, 0x0400 } },
1990     { 0x8000, { 21600, 0, 0x0401 } },
1991     { 0x8000, { 21600, 0, 0x0402 } },
1992     { 0x8000, { 21600, 0, 0x0403 } }
1993 };
1994 static const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
1995 {
1996     4, 5400, 8100, 2700, 9400
1997 };
1998 static const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] =
1999 {
2000     { { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } }
2001 };
2002 static const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] =
2003 {
2004     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2005         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 0x101 },
2006     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
2007         0x101, 0, 10800, 10800, 0x100, 10800, 0x80000000, 0x7fffffff },
2008     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2009         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }
2010 };
2011 static const mso_CustomShape msoQuadArrowCallout =
2012 {
2013     (SvxMSDffVertPair*)mso_sptQuadArrowCalloutVert, sizeof( mso_sptQuadArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
2014     (sal_uInt16*)mso_sptQuadArrowCalloutSegm, sizeof( mso_sptQuadArrowCalloutSegm ) >> 1,
2015     (SvxMSDffCalculationData*)mso_sptQuadArrowCalloutCalc, sizeof( mso_sptQuadArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
2016     (sal_Int32*)mso_sptQuadArrowCalloutDefault,
2017     (SvxMSDffTextRectangles*)mso_sptQuadArrowCalloutTextRect, sizeof( mso_sptQuadArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
2018     21600, 21600,
2019     0x80000000, 0x80000000,
2020     NULL, 0,
2021     (SvxMSDffHandle*)mso_sptQuadArrowCalloutHandle, sizeof( mso_sptQuadArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
2022 };
2023 
2024 static const SvxMSDffVertPair mso_sptCircularArrowVert[] =
2025 {
2026     { 0x03 MSO_I, 0x03 MSO_I },
2027     { 0x14 MSO_I, 0x14 MSO_I },
2028     { 0x13 MSO_I, 0x12 MSO_I },
2029     { 0x11 MSO_I, 0x10 MSO_I },
2030     { 0, 0 }, { 21600, 21600 },
2031     { 0x09 MSO_I, 0x08 MSO_I },
2032     { 0x0B MSO_I, 0x0A MSO_I },
2033     { 0x18 MSO_I, 0x17 MSO_I },
2034     { 0x2F MSO_I, 0x2E MSO_I },
2035     { 0x1D MSO_I, 0x1C MSO_I }
2036 };
2037 static const sal_uInt16 mso_sptCircularArrowSegm[] =
2038 {
2039     0xa404, 0xa504, 0x0003, 0x6001, 0x8000
2040 };
2041 static const SvxMSDffCalculationData mso_sptCircularArrowCalc[] =
2042 {
2043     { 0x2000, { 0x0147, 0x0000, 0x0000 } },
2044     { 0x2000, { 0x0148, 0x0000, 0x0000 } },
2045     { 0x2000, { 0x0149, 0x0000, 0x0000 } },
2046     { 0x4000, { 0x2A30, 0x0149, 0x0000 } },
2047     { 0x4009, { 0x2A30, 0x0147, 0x0000 } },
2048     { 0x400A, { 0x2A30, 0x0147, 0x0000 } },
2049     { 0x4009, { 0x2A30, 0x0148, 0x0000 } },
2050     { 0x400A, { 0x2A30, 0x0148, 0x0000 } },
2051     { 0x2000, { 0x0404, 0x2A30, 0x0000 } },
2052     { 0x2000, { 0x0405, 0x2A30, 0x0000 } },
2053     { 0x2000, { 0x0406, 0x2A30, 0x0000 } },
2054     { 0x2000, { 0x0407, 0x2A30, 0x0000 } },
2055     { 0x6009, { 0x0403, 0x0147, 0x0000 } },
2056     { 0x600A, { 0x0403, 0x0147, 0x0000 } },
2057     { 0x6009, { 0x0403, 0x0148, 0x0000 } },
2058     { 0x600A, { 0x0403, 0x0148, 0x0000 } },
2059     { 0x2000, { 0x040C, 0x2A30, 0x0000 } },
2060     { 0x2000, { 0x040D, 0x2A30, 0x0000 } },
2061     { 0x2000, { 0x040E, 0x2A30, 0x0000 } },
2062     { 0x2000, { 0x040F, 0x2A30, 0x0000 } },
2063     { 0x8000, { 0x5460, 0x0000, 0x0403 } },
2064     { 0x4009, { 0x34BC, 0x0148, 0x0000 } },
2065     { 0x400A, { 0x34BC, 0x0148, 0x0000 } },
2066     { 0x2000, { 0x0415, 0x2A30, 0x0000 } },
2067     { 0x2000, { 0x0416, 0x2A30, 0x0000 } },
2068     { 0x2000, { 0x0149, 0x0000, 0x0A8C } },
2069     { 0x6009, { 0x0419, 0x0148, 0x0000 } },
2070     { 0x600A, { 0x0419, 0x0148, 0x0000 } },
2071     { 0x2000, { 0x041A, 0x2A30, 0x0000 } },
2072     { 0x2000, { 0x041B, 0x2A30, 0x0000 } },
2073     { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2074     { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2075     { 0x6001, { 0x041E, 0x041F, 0x0001 } },
2076     { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2077     { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2078     { 0x6001, { 0x0421, 0x0422, 0x0001 } },
2079     { 0x6000, { 0x0420, 0x0423, 0x0000 } },
2080     { 0x200D, { 0x0424, 0x0000, 0x0000 } },
2081     { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2082     { 0x6009, { 0x0425, 0x0426, 0x0000 } },
2083     { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2084     { 0x600A, { 0x0425, 0x0428, 0x0000 } },
2085     { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2086     { 0x6009, { 0x0427, 0x042A, 0x0000 } },
2087     { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2088     { 0x6009, { 0x0429, 0x042C, 0x0000 } },
2089     { 0x6000, { 0x041C, 0x042B, 0x0000 } },
2090     { 0x6000, { 0x041D, 0x042D, 0x0000 } }
2091 };
2092 static const sal_Int32 mso_sptCircularArrowDefault[] =
2093 {
2094     3, 180, 0, 5500
2095 };
2096 static const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] =    // todo
2097 {
2098     { { 0, 0 }, { 21600, 21600 } }
2099 };
2100 static const SvxMSDffHandle mso_sptCircularArrowHandle[] =
2101 {
2102     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2103         10800, 0x100, 10800, 10800, 10800, 10800, 0xff4c0000, 0x00b40000 },
2104     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2105         0x102, 0x101, 10800, 10800, 0, 10800, 0xff4c0000, 0x00b40000 }
2106 };
2107 static const mso_CustomShape msoCircularArrow =
2108 {
2109     (SvxMSDffVertPair*)mso_sptCircularArrowVert, sizeof( mso_sptCircularArrowVert ) / sizeof( SvxMSDffVertPair ),
2110     (sal_uInt16*)mso_sptCircularArrowSegm, sizeof( mso_sptCircularArrowSegm ) >> 1,
2111     (SvxMSDffCalculationData*)mso_sptCircularArrowCalc, sizeof( mso_sptCircularArrowCalc ) / sizeof( SvxMSDffCalculationData ),
2112     (sal_Int32*)mso_sptCircularArrowDefault,
2113     (SvxMSDffTextRectangles*)mso_sptCircularArrowTextRect, sizeof( mso_sptCircularArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
2114     21600, 21600,
2115     0x80000000, 0x80000000,
2116     NULL, 0,
2117     (SvxMSDffHandle*)mso_sptCircularArrowHandle, sizeof( mso_sptCircularArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
2118 };
2119 
2120 static const SvxMSDffVertPair mso_sptCubeVert[] =
2121 {
2122     { 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I },
2123     { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I },
2124     { 4 MSO_I, 12 MSO_I  }, { 4 MSO_I, 1 MSO_I },   { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }
2125 };
2126 static const sal_uInt16 mso_sptCubeSegm[] =
2127 {
2128     0x4000, 0x0005, 0x6001, 0x8000,
2129     0x4000, 0x0003, 0x6001, 0x8000,
2130     0x4000, 0x0003, 0x6001, 0x8000
2131 };
2132 static const SvxMSDffCalculationData mso_sptCubeCalc[] =
2133 {
2134     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2135     { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
2136     { 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } },
2137     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
2138     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2139     { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },    // 5
2140     { 0x2001, { 0x405, 1, 2 } },                    // 6
2141     { 0x6000, { 0x402, 0x406, 0 } },                // 7
2142     { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },   // 8
2143     { 0x2001, { 0x408, 1, 2 } },                    // 9
2144     { 0x6000, { 0x401, 0x409, 0 } },                // 10
2145     { 0x2000, { DFF_Prop_geoRight, 0, 0 } },        // 11
2146     { 0x2000, { DFF_Prop_geoBottom, 0, 0 } }        // 12
2147 };
2148 static const SvxMSDffTextRectangles mso_sptCubeTextRect[] =
2149 {
2150     { { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } }
2151 };
2152 static const SvxMSDffHandle mso_sptCubeHandle[] =
2153 {
2154     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2155         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
2156 };
2157 static const SvxMSDffVertPair mso_sptCubeGluePoints[] =
2158 {
2159     { 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I }
2160 };
2161 static const mso_CustomShape msoCube =
2162 {
2163     (SvxMSDffVertPair*)mso_sptCubeVert, sizeof( mso_sptCubeVert ) / sizeof( SvxMSDffVertPair ),
2164     (sal_uInt16*)mso_sptCubeSegm, sizeof( mso_sptCubeSegm ) >> 1,
2165     (SvxMSDffCalculationData*)mso_sptCubeCalc, sizeof( mso_sptCubeCalc ) / sizeof( SvxMSDffCalculationData ),
2166     (sal_Int32*)mso_sptDefault5400,
2167     (SvxMSDffTextRectangles*)mso_sptCubeTextRect, sizeof( mso_sptCubeTextRect ) / sizeof( SvxMSDffTextRectangles ),
2168     21600, 21600,
2169     10800, 10800,
2170     (SvxMSDffVertPair*)mso_sptCubeGluePoints, sizeof( mso_sptCubeGluePoints ) / sizeof( SvxMSDffVertPair ),
2171     (SvxMSDffHandle*)mso_sptCubeHandle, sizeof( mso_sptCubeHandle ) / sizeof( SvxMSDffHandle )
2172 };
2173 
2174 static const SvxMSDffVertPair mso_sptBevelVert[] =
2175 {
2176     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2177     { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2178     { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2179     { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2180     { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2181 };
2182 static const sal_uInt16 mso_sptBevelSegm[] =
2183 {
2184     0x4000, 0x0003, 0x6001, 0x8000,
2185     0x4000, 0x0003, 0x6001, 0x8000,
2186     0x4000, 0x0003, 0x6001, 0x8000,
2187     0x4000, 0x0003, 0x6001, 0x8000,
2188     0x4000, 0x0003, 0x6001, 0x8000
2189 };
2190 static const SvxMSDffCalculationData mso_sptBevelCalc[] =
2191 {
2192     { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2193     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2194     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2195 };
2196 
2197 static const SvxMSDffTextRectangles mso_sptBevelTextRect[] =
2198 {
2199     { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2200 };
2201 static const SvxMSDffHandle mso_sptBevelHandle[] =
2202 {
2203     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2204         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
2205 };
2206 static const mso_CustomShape msoBevel =
2207 {
2208     (SvxMSDffVertPair*)mso_sptBevelVert, sizeof( mso_sptBevelVert ) / sizeof( SvxMSDffVertPair ),
2209     (sal_uInt16*)mso_sptBevelSegm, sizeof( mso_sptBevelSegm ) >> 1,
2210     (SvxMSDffCalculationData*)mso_sptBevelCalc, sizeof( mso_sptBevelCalc ) / sizeof( SvxMSDffCalculationData ),
2211     (sal_Int32*)mso_sptDefault2700,
2212     (SvxMSDffTextRectangles*)mso_sptBevelTextRect, sizeof( mso_sptBevelTextRect ) / sizeof( SvxMSDffTextRectangles ),
2213     21600, 21600,
2214     10800, 10800,
2215     NULL, 0,
2216     (SvxMSDffHandle*)mso_sptBevelHandle, sizeof( mso_sptBevelHandle ) / sizeof( SvxMSDffHandle )
2217 };
2218 
2219 static const SvxMSDffVertPair mso_sptFoldedCornerVert[] =   // adjustment1 : x 10800 - 21600
2220 {
2221     { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
2222     { 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
2223     { 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
2224 };
2225 static const sal_uInt16 mso_sptFoldedCornerSegm[] =
2226 {
2227     0x4000, 0x0004, 0x6001, 0x8000,
2228     0x4000, 0x0001, 0x2001, 0x6001, 0x8000
2229 };
2230 static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
2231 {
2232     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2233     { 0x8000, { 21600, 0, 0x400 } },
2234     { 0x2001, { 0x0401, 8000, 10800 } },
2235     { 0x8000, { 21600, 0, 0x0402 } },
2236     { 0x2001, { 0x0401, 1, 2 } },
2237     { 0x2001, { 0x0401, 1, 4 } },
2238     { 0x2001, { 0x0401, 1, 7 } },
2239     { 0x2001, { 0x0401, 1, 16 } },
2240     { 0x6000, { 0x0403, 0x405, 0 } },
2241     { 0x6000, { 0x0400, 0x406, 0 } },
2242     { 0x8000, { 21600, 0, 0x404 } },
2243     { 0x6000, { 0x400, 0x407, 0 } }
2244 };
2245 static const sal_Int32 mso_sptFoldedCornerDefault[] =
2246 {
2247     1, 18900
2248 };
2249 static const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] =
2250 {
2251     { { 0, 0 }, { 21600, 11 MSO_I } }
2252 };
2253 static const SvxMSDffHandle mso_sptFoldedCornerHandle[] =
2254 {
2255     {   MSDFF_HANDLE_FLAGS_RANGE,
2256         0x100, 1, 10800, 10800, 10800, 21600, 0x80000000, 0x7fffffff }
2257 };
2258 static const mso_CustomShape msoFoldedCorner =
2259 {
2260     (SvxMSDffVertPair*)mso_sptFoldedCornerVert, sizeof( mso_sptFoldedCornerVert ) / sizeof( SvxMSDffVertPair ),
2261     (sal_uInt16*)mso_sptFoldedCornerSegm, sizeof( mso_sptFoldedCornerSegm ) >> 1,
2262     (SvxMSDffCalculationData*)mso_sptFoldedCornerCalc, sizeof( mso_sptFoldedCornerCalc ) / sizeof( SvxMSDffCalculationData ),
2263     (sal_Int32*)mso_sptFoldedCornerDefault,
2264     (SvxMSDffTextRectangles*)mso_sptFoldedCornerTextRect, sizeof( mso_sptFoldedCornerTextRect ) / sizeof( SvxMSDffTextRectangles ),
2265     21600, 21600,
2266     0x80000000, 0x80000000,
2267     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
2268     (SvxMSDffHandle*)mso_sptFoldedCornerHandle, sizeof( mso_sptFoldedCornerHandle ) / sizeof( SvxMSDffHandle )
2269 };
2270 
2271 static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
2272 {
2273     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2274     { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2275     { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2276     { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2277     { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2278 };
2279 static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
2280 {
2281     0x4000, 0x0003, 0x6001, 0x8000,
2282     0x4000, 0x0003, 0x6001, 0x8000,
2283     0x4000, 0x0003, 0x6001, 0x8000,
2284     0x4000, 0x0003, 0x6001, 0x8000,
2285     0x4000, 0x0003, 0x6001, 0x8000
2286 };
2287 static const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] =
2288 {
2289     { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2290     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2291     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2292 };
2293 static const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] =
2294 {
2295     { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2296 };
2297 static const SvxMSDffHandle mso_sptButtonHandle[] =
2298 {
2299     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2300         0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
2301 };
2302 static const mso_CustomShape msoActionButtonBlank =
2303 {
2304     (SvxMSDffVertPair*)mso_sptActionButtonBlankVert, sizeof( mso_sptActionButtonBlankVert ) / sizeof( SvxMSDffVertPair ),
2305     (sal_uInt16*)mso_sptActionButtonBlankSegm, sizeof( mso_sptActionButtonBlankSegm ) >> 1,
2306     (SvxMSDffCalculationData*)mso_sptActionButtonBlankCalc, sizeof( mso_sptActionButtonBlankCalc ) / sizeof( SvxMSDffCalculationData ),
2307     (sal_Int32*)mso_sptDefault1400,
2308     (SvxMSDffTextRectangles*)mso_sptActionButtonBlankTextRect, sizeof( mso_sptActionButtonBlankTextRect ) / sizeof( SvxMSDffTextRectangles ),
2309     21600, 21600,
2310     10800, 10800,
2311     NULL, 0,
2312     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2313 };
2314 
2315 static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
2316 {
2317     { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
2318 };
2319 static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
2320 {
2321     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2322     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2323     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2324     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2325     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2326 
2327     { 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
2328     { 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2329     { 0x1c MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I },
2330 
2331     { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I },
2332 
2333     { 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2334     { 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
2335 
2336 };
2337 static const sal_uInt16 mso_sptActionButtonHomeSegm[] =
2338 {
2339     0x4000, 0x0003, 0x6001, 0x8000,
2340     0x4000, 0x0003, 0x6001, 0x8000,
2341     0x4000, 0x0003, 0x6001, 0x8000,
2342     0x4000, 0x0003, 0x6001, 0x8000,
2343     0x4000, 0x0003, 0x6001, 0x8000,
2344     0x4000, 0x000a, 0x6001, 0x8000,
2345     0x4000, 0x0003, 0x6001, 0x8000,
2346     0x4000, 0x0007, 0x6001, 0x8000
2347 };
2348 static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] =    // adj value 0 - 5400
2349 {
2350     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2351     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2352     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2353     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2354     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2355     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2356     { 0x2001, { 0x0405, 1, 10800 } },                           // scaling   6
2357     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2358     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2359 
2360     { 0x4001, { -8000, 0x0406, 1 } },   // 9
2361     { 0x6000, { 0x0409, 0x0408, 0 } },  // a
2362     { 0x4001, { 2960, 0x0406, 1 } },    // b
2363     { 0x6000, { 0x040b, 0x0407, 0 } },  // c
2364     { 0x4001, { -5000, 0x0406, 1 } },   // d
2365     { 0x6000, { 0x040d, 0x0408, 0 } },  // e
2366     { 0x4001, { -7000, 0x0406, 1 } },   // f
2367     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2368     { 0x4001, { 5000, 0x0406, 1 } },    // 11
2369     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2370     { 0x4001, { -2960, 0x0406, 1 } },   // 13
2371     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2372     { 0x4001, { 8000, 0x0406, 1 } },    // 15
2373     { 0x6000, { 0x0415,0x0407, 0 } },   // 16
2374     { 0x4001, { 6100, 0x0406, 1 } },    // 17
2375     { 0x6000, { 0x0417,0x0407, 0 } },   // 18
2376     { 0x4001, { 8260, 0x0406, 1 } },    // 19
2377     { 0x6000, { 0x0419, 0x0408, 0 } },  // 1a
2378     { 0x4001, { -6100, 0x0406, 1 } },   // 1b
2379     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2380     { 0x4001, { -8000, 0x0406, 1 } },   // 1d
2381     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2382     { 0x4001, { -1060, 0x0406, 1 } },   // 1f
2383     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
2384     { 0x4001, { 1060, 0x0406, 1 } },    // 21
2385     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2386     { 0x4001, { 4020, 0x0406, 1 } },    // 23
2387     { 0x6000, { 0x0423, 0x0408, 0 } }   // 24
2388 
2389 };
2390 static const mso_CustomShape msoActionButtonHome =
2391 {
2392     (SvxMSDffVertPair*)mso_sptActionButtonHomeVert, sizeof( mso_sptActionButtonHomeVert ) / sizeof( SvxMSDffVertPair ),
2393     (sal_uInt16*)mso_sptActionButtonHomeSegm, sizeof( mso_sptActionButtonHomeSegm ) >> 1,
2394     (SvxMSDffCalculationData*)mso_sptActionButtonHomeCalc, sizeof( mso_sptActionButtonHomeCalc ) / sizeof( SvxMSDffCalculationData ),
2395     (sal_Int32*)mso_sptDefault1400,
2396     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2397     21600, 21600,
2398     10800, 10800,
2399     NULL, 0,
2400     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2401 };
2402 
2403 static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
2404 {
2405     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2406     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2407     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2408     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2409     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
2410     { 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
2411     { 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I },                             // pp
2412     { 0x12 MSO_I, 0x18 MSO_I }, { 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I },       // ccp
2413     { 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I },    // ccp
2414     { 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },    // ccp
2415     { 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I }, // ccp
2416     { 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I }, // ccp
2417     { 7 MSO_I, 0x36 MSO_I },                                                            // p
2418     { 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I }, // ccp
2419     { 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I }, // ccp
2420     { 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I },       // ccp
2421     { 0x34 MSO_I, 0x14 MSO_I }
2422 };
2423 static const sal_uInt16 mso_sptActionButtonHelpSegm[] =
2424 {
2425     0x4000, 0x0003, 0x6001, 0x8000,
2426     0x4000, 0x0003, 0x6001, 0x8000,
2427     0x4000, 0x0003, 0x6001, 0x8000,
2428     0x4000, 0x0003, 0x6001, 0x8000,
2429     0x4000, 0x0003, 0x6001, 0x8000,
2430     0x4000, 0xa704, 0x6000, 0x8000,
2431     0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
2432 };
2433 static const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] =    // adj value 0 - 5400
2434 {
2435     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2436     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2437     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2438     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2439     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2440     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2441     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2442     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2443     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2444 
2445     { 0x4001, { -1690, 0x0406, 1 } },   // 9
2446     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2447     { 0x4001, { 4600, 0x0406, 1 } },    // b
2448     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2449     { 0x4001, { 1690, 0x0406, 1 } },    // d
2450     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2451     { 0x4001, { 7980, 0x0406, 1 } },    // f
2452     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2453     { 0x4001, { 1270, 0x0406, 1 } },    // 11
2454     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2455     { 0x4001, { 4000, 0x0406, 1 } },    // 13
2456     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2457     { 0x4001, { 1750, 0x0406, 1 } },    // 15
2458     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2459     { 0x4001, { 800, 0x0406, 1 } },     // 17
2460     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
2461     { 0x4001, { 1650, 0x0406, 1 } },    // 19
2462     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2463     { 0x4001, { 2340, 0x0406, 1 } },    // 1b
2464     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2465     { 0x4001, { 3640, 0x0406, 1 } },    // 1d
2466     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2467     { 0x4001, { 4670, 0x0406, 1 } },    // 1f
2468     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
2469     { 0x4001, { -1570, 0x0406, 1 } },   // 21
2470     { 0x6000, { 0x0421, 0x0408, 0 } },  // 22
2471     { 0x4001, { -3390, 0x0406, 1 } },   // 23
2472     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
2473     { 0x4001, { -6050, 0x0406, 1 } },   // 25
2474     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
2475     { 0x4001, { 2540, 0x0406, 1 } },    // 27
2476     { 0x6000, { 0x0427, 0x0407, 0 } },  // 28
2477     { 0x4001, { -8050, 0x0406, 1 } },   // 29
2478     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2479     { 0x4001, { -2540, 0x0406, 1 } },   // 2b
2480     { 0x6000, { 0x042b, 0x0407, 0 } },  // 2c
2481     { 0x4001, { -4460, 0x0406, 1 } },   // 2d
2482     { 0x6000, { 0x042d, 0x0407, 0 } },  // 2e
2483     { 0x4001, { -2330, 0x0406, 1 } },   // 2f
2484     { 0x6000, { 0x042f, 0x0407, 0 } },  // 30
2485     { 0x4001, { -4700, 0x0406, 1 } },   // 31
2486     { 0x6000, { 0x0431, 0x0408, 0 } },  // 32
2487     { 0x4001, { -1270, 0x0406, 1 } },   // 33
2488     { 0x6000, { 0x0433, 0x0407, 0 } },  // 34
2489     { 0x4001, { -5720, 0x0406, 1 } },   // 35
2490     { 0x6000, { 0x0435, 0x0408, 0 } },  // 36
2491     { 0x4001, { -2540, 0x0406, 1 } },   // 37
2492     { 0x6000, { 0x0437, 0x0408, 0 } },  // 38
2493     { 0x4001, { 1800, 0x0406, 1 } },    // 39
2494     { 0x6000, { 0x0439, 0x0407, 0 } },  // 3a
2495     { 0x4001, { -1700, 0x0406, 1 } },   // 3b
2496     { 0x6000, { 0x043b, 0x0408, 0 } },  // 3c
2497     { 0x4001, { 6290, 0x0406, 1 } },    // 3d
2498     { 0x6000, { 0x043d, 0x0408, 0 } }   // 3e
2499 };
2500 static const mso_CustomShape msoActionButtonHelp =
2501 {
2502     (SvxMSDffVertPair*)mso_sptActionButtonHelpVert, sizeof( mso_sptActionButtonHelpVert ) / sizeof( SvxMSDffVertPair ),
2503     (sal_uInt16*)mso_sptActionButtonHelpSegm, sizeof( mso_sptActionButtonHelpSegm ) >> 1,
2504     (SvxMSDffCalculationData*)mso_sptActionButtonHelpCalc, sizeof( mso_sptActionButtonHelpCalc ) / sizeof( SvxMSDffCalculationData ),
2505     (sal_Int32*)mso_sptDefault1400,
2506     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2507     21600, 21600,
2508     10800, 10800,
2509     NULL, 0,
2510     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2511 };
2512 
2513 static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
2514 {
2515     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2516     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2517     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2518     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2519     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2520     { 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I },
2521     { 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I },
2522     { 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
2523     { 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
2524     { 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
2525 };
2526 static const sal_uInt16 mso_sptActionButtonInformationSegm[] =
2527 {
2528     0x4000, 0x0003, 0x6001, 0x8000,
2529     0x4000, 0x0003, 0x6001, 0x8000,
2530     0x4000, 0x0003, 0x6001, 0x8000,
2531     0x4000, 0x0003, 0x6001, 0x8000,
2532     0x4000, 0x0003, 0x6001, 0x8000,
2533     0x4000, 0xa704, 0x6000, 0x8000,
2534     0x4000, 0xa704, 0x6000, 0x8000,
2535     0x4000, 0x0009, 0x6001, 0x8000
2536 };
2537 static const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] = // adj value 0 - 5400
2538 {
2539     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2540     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2541     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2542     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2543     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2544     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2545     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2546     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2547     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2548 
2549     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2550     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2551     { 0x4001, { -8050, 0x0406, 1 } },   // b
2552     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2553     { 0x4001, { 8050, 0x0406, 1 } },    // d
2554     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2555     { 0x4001, { 8050, 0x0406, 1 } },    // f
2556     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2557 
2558     { 0x4001, { -2060, 0x0406, 1 } },   // 11
2559     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2560     { 0x4001, { -7620, 0x0406, 1 } },   // 13
2561     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2562     { 0x4001, { 2060, 0x0406, 1 } },    // 15
2563     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
2564     { 0x4001, { -3500, 0x0406, 1 } },   // 17
2565     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
2566 
2567     { 0x4001, { -2960, 0x0406, 1 } },   // 19
2568     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2569     { 0x4001, { -2960, 0x0406, 1 } },   // 1b
2570     { 0x6000, { 0x041b, 0x0408, 0 } },  // 1c
2571     { 0x4001, { 1480, 0x0406, 1 } },    // 1d
2572     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2573     { 0x4001, { 5080, 0x0406, 1 } },    // 1f
2574     { 0x6000, { 0x041f, 0x0408, 0 } },  // 20
2575     { 0x4001, { 2960, 0x0406, 1 } },    // 21
2576     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2577     { 0x4001, { 6140, 0x0406, 1 } },    // 23
2578     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
2579     { 0x4001, { -1480, 0x0406, 1 } },   // 25
2580     { 0x6000, { 0x0425, 0x0407, 0 } },  // 26
2581     { 0x4001, { -1920, 0x0406, 1 } },   // 27
2582     { 0x6000, { 0x0427, 0x0408, 0 } },  // 28
2583 
2584     { 0x4001, { -5560, 0x0406, 1 } },   // 29
2585     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2586 
2587 };
2588 static const mso_CustomShape msoActionButtonInformation =
2589 {
2590     (SvxMSDffVertPair*)mso_sptActionButtonInformationVert, sizeof( mso_sptActionButtonInformationVert ) / sizeof( SvxMSDffVertPair ),
2591     (sal_uInt16*)mso_sptActionButtonInformationSegm, sizeof( mso_sptActionButtonInformationSegm ) >> 1,
2592     (SvxMSDffCalculationData*)mso_sptActionButtonInformationCalc, sizeof( mso_sptActionButtonInformationCalc ) / sizeof( SvxMSDffCalculationData ),
2593     (sal_Int32*)mso_sptDefault1400,
2594     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2595     21600, 21600,
2596     10800, 10800,
2597     NULL, 0,
2598     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2599 };
2600 
2601 static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
2602 {
2603     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2604     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2605     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2606     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
2607     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2608 
2609     { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
2610 };
2611 static const sal_uInt16 mso_sptActionButtonForwardBackSegm[] =
2612 {
2613     0x4000, 0x0003, 0x6001, 0x8000,
2614     0x4000, 0x0003, 0x6001, 0x8000,
2615     0x4000, 0x0003, 0x6001, 0x8000,
2616     0x4000, 0x0003, 0x6001, 0x8000,
2617     0x4000, 0x0003, 0x6001, 0x8000,
2618     0x4000, 0x0002, 0x6001, 0x8000
2619 };
2620 static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] = // adj value 0 - 5400
2621 {
2622     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2623     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2624     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2625     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2626     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2627     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2628     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2629     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2630     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2631 
2632     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2633     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2634     { 0x4001, { -8050, 0x0406, 1 } },   // b
2635     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2636     { 0x4001, { 8050, 0x0406, 1 } },    // d
2637     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2638     { 0x4001, { 8050, 0x0406, 1 } },    // f
2639     { 0x6000, { 0x040f, 0x0408, 0 } }   // 10
2640 };
2641 static const mso_CustomShape msoActionButtonBackPrevious =
2642 {
2643     (SvxMSDffVertPair*)mso_sptActionButtonBackPreviousVert, sizeof( mso_sptActionButtonBackPreviousVert ) / sizeof( SvxMSDffVertPair ),
2644     (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2645     (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2646     (sal_Int32*)mso_sptDefault1400,
2647     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2648     21600, 21600,
2649     10800, 10800,
2650     NULL, 0,
2651     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2652 };
2653 
2654 static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
2655 {
2656     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2657     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2658     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2659     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2660     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2661 
2662     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
2663 };
2664 static const mso_CustomShape msoActionButtonForwardNext =
2665 {
2666     (SvxMSDffVertPair*)mso_sptActionButtonForwardNextVert, sizeof( mso_sptActionButtonForwardNextVert ) / sizeof( SvxMSDffVertPair ),
2667     (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2668     (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2669     (sal_Int32*)mso_sptDefault1400,
2670     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2671     21600, 21600,
2672     10800, 10800,
2673     NULL, 0,
2674     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2675 };
2676 
2677 static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
2678 {
2679     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2680     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2681     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2682     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2683     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2684 
2685     { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2686     { 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
2687 };
2688 static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
2689 {
2690     0x4000, 0x0003, 0x6001, 0x8000,
2691     0x4000, 0x0003, 0x6001, 0x8000,
2692     0x4000, 0x0003, 0x6001, 0x8000,
2693     0x4000, 0x0003, 0x6001, 0x8000,
2694     0x4000, 0x0003, 0x6001, 0x8000,
2695 
2696     0x4000, 0x0002, 0x6001, 0x8000,
2697     0x4000, 0x0003, 0x6001, 0x8000
2698 };
2699 static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] =    // adj value 0 - 5400
2700 {
2701     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2702     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2703     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2704     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2705     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2706     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2707     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2708     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2709     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2710 
2711     { 0x4001, { -4020, 0x0406, 1 } },   // 9
2712     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2713     { 0x4001, { -8050, 0x0406, 1 } },   // b
2714     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2715     { 0x4001, { 8050, 0x0406, 1 } },    // d
2716     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2717     { 0x4001, { 8050, 0x0406, 1 } },    // f
2718     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2719 
2720     { 0x4001, { -8050, 0x0406, 1 } },   // 11
2721     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2722     { 0x4001, { -6140, 0x0406, 1 } },   // 13
2723     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
2724 
2725 
2726     { 0x4001, { 4020, 0x0406, 1 } },    // 15
2727     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
2728     { 0x4001, { 6140, 0x0406, 1 } },    // 17
2729     { 0x6000, { 0x0417, 0x0407, 0 } }   // 18
2730 };
2731 static const mso_CustomShape msoActionButtonBeginning =
2732 {
2733     (SvxMSDffVertPair*)mso_sptActionButtonBeginningVert, sizeof( mso_sptActionButtonBeginningVert ) / sizeof( SvxMSDffVertPair ),
2734     (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2735     (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2736     (sal_Int32*)mso_sptDefault1400,
2737     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2738     21600, 21600,
2739     10800, 10800,
2740     NULL, 0,
2741     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2742 };
2743 
2744 static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
2745 {
2746     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2747     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2748     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2749     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2750     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2751 
2752     { 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2753 
2754     { 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
2755 };
2756 static const mso_CustomShape msoActionButtonEnd =
2757 {
2758     (SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ),
2759     (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2760     (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2761     (sal_Int32*)mso_sptDefault1400,
2762     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2763     21600, 21600,
2764     10800, 10800,
2765     NULL, 0,
2766     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2767 };
2768 
2769 static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
2770 {
2771     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2772     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2773     { 21600, 0 }, { 21600,  21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2774     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2775     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2776 
2777     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I },                          // ppp
2778     { 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I },                      // ccp
2779     { 7 MSO_I, 0x16 MSO_I },                                                                                // p
2780     { 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I },                     // ccp
2781     { 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp
2782     { 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I },                                                  // pp
2783     { 0x24 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },                        // ccp
2784     { 0x18 MSO_I, 0x2a MSO_I },                                                                             // p
2785     { 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }                        // ccp
2786 };
2787 static const sal_uInt16 mso_sptActionButtonReturnSegm[] =
2788 {
2789     0x4000, 0x0003, 0x6001, 0x8000,
2790     0x4000, 0x0003, 0x6001, 0x8000,
2791     0x4000, 0x0003, 0x6001, 0x8000,
2792     0x4000, 0x0003, 0x6001, 0x8000,
2793     0x4000, 0x0003, 0x6001, 0x8000,
2794     0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
2795 };
2796 static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] =  // adj value 0 - 5400
2797 {
2798     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2799     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2800     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2801     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2802     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2803     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2804     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2805     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2806     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2807 
2808     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2809     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2810     { 0x4001, { -3800, 0x0406, 1 } },   // b
2811     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2812     { 0x4001, { -4020, 0x0406, 1 } },   // d
2813     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2814     { 0x4001, { 2330, 0x0406, 1 } },    // f
2815     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2816     { 0x4001, { 3390, 0x0406, 1 } },    // 11
2817     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2818     { 0x4001, { -3100, 0x0406, 1 } },   // 13
2819     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
2820     { 0x4001, { 4230, 0x0406, 1 } },    // 15
2821     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2822     { 0x4001, { -1910, 0x0406, 1 } },   // 17
2823     { 0x6000, { 0x0417, 0x0407, 0 } },  // 18
2824     { 0x4001, { 1190, 0x0406, 1 } },    // 19
2825     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2826     { 0x4001, { 2110, 0x0406, 1 } },    // 1b
2827     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2828     { 0x4001, { 4030, 0x0406, 1 } },    // 1d
2829     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2830     { 0x4001, { -7830, 0x0406, 1 } },   // 1f
2831     { 0x6000, { 0x041f, 0x0408, 0 } },  // 20
2832     { 0x4001, { 8250, 0x0406, 1 } },    // 21
2833     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2834     { 0x4001, { 6140, 0x0406, 1 } },    // 23
2835     { 0x6000, { 0x0423, 0x0407, 0 } },  // 24
2836     { 0x4001, { 5510, 0x0406, 1 } },    // 25
2837     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
2838     { 0x4001, { 3180, 0x0406, 1 } },    // 27
2839     { 0x6000, { 0x0427, 0x0407, 0 } },  // 28
2840     { 0x4001, { 8450, 0x0406, 1 } },    // 29
2841     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2842     { 0x4001, { -5090, 0x0406, 1 } },   // 2b
2843     { 0x6000, { 0x042b, 0x0407, 0 } }   // 2c
2844 };
2845 static const mso_CustomShape msoActionButtonReturn =
2846 {
2847     (SvxMSDffVertPair*)mso_sptActionButtonReturnVert, sizeof( mso_sptActionButtonReturnVert ) / sizeof( SvxMSDffVertPair ),
2848     (sal_uInt16*)mso_sptActionButtonReturnSegm, sizeof( mso_sptActionButtonReturnSegm ) >> 1,
2849     (SvxMSDffCalculationData*)mso_sptActionButtonReturnCalc, sizeof( mso_sptActionButtonReturnCalc ) / sizeof( SvxMSDffCalculationData ),
2850     (sal_Int32*)mso_sptDefault1400,
2851     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2852     21600, 21600,
2853     10800, 10800,
2854     NULL, 0,
2855     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2856 };
2857 
2858 static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
2859 {
2860     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2861     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2862     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2863     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2864     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2865 
2866     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2867     { 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
2868 };
2869 static const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
2870 {
2871     0x4000, 0x0003, 0x6001, 0x8000,
2872     0x4000, 0x0003, 0x6001, 0x8000,
2873     0x4000, 0x0003, 0x6001, 0x8000,
2874     0x4000, 0x0003, 0x6001, 0x8000,
2875     0x4000, 0x0003, 0x6001, 0x8000,
2876 
2877     0x4000, 0x0004, 0x6001, 0x8000,
2878     0x4000, 0x0002, 0x6001, 0x8000
2879 };
2880 static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =    // adj value 0 - 5400
2881 {
2882     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2883     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2884     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2885     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2886     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2887     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2888     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2889     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2890     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2891 
2892     { 0x4001, { -6350, 0x0406, 1 } },   // 9
2893     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2894     { 0x4001, { -7830, 0x0406, 1 } },   // b
2895     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2896     { 0x4001, { 1690, 0x0406, 1 } },    // d
2897     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2898     { 0x4001, { 6350, 0x0406, 1 } },    // f
2899     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
2900     { 0x4001, { -3810, 0x0406, 1 } },   // 11
2901     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2902     { 0x4001, { 7830, 0x0406, 1 } },    // 13
2903     { 0x6000, { 0x0413, 0x0408, 0 } }   // 14
2904 };
2905 static const mso_CustomShape msoActionButtonDocument =
2906 {
2907     (SvxMSDffVertPair*)mso_sptActionButtonDocumentVert, sizeof( mso_sptActionButtonDocumentVert ) / sizeof( SvxMSDffVertPair ),
2908     (sal_uInt16*)mso_sptActionButtonDocumentSegm, sizeof( mso_sptActionButtonDocumentSegm ) >> 1,
2909     (SvxMSDffCalculationData*)mso_sptActionButtonDocumentCalc, sizeof( mso_sptActionButtonDocumentCalc ) / sizeof( SvxMSDffCalculationData ),
2910     (sal_Int32*)mso_sptDefault1400,
2911     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2912     21600, 21600,
2913     10800, 10800,
2914     NULL, 0,
2915     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2916 };
2917 
2918 static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
2919 {
2920     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2921     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2922     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2923     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2924     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2925 
2926     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2927     { 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
2928 
2929     { 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
2930 
2931     { 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
2932 };
2933 static const sal_uInt16 mso_sptActionButtonSoundSegm[] =
2934 {
2935     0x4000, 0x0003, 0x6001, 0x8000,
2936     0x4000, 0x0003, 0x6001, 0x8000,
2937     0x4000, 0x0003, 0x6001, 0x8000,
2938     0x4000, 0x0003, 0x6001, 0x8000,
2939     0x4000, 0x0003, 0x6001, 0x8000,
2940 
2941     0x4000, 0x0005, 0x6001, 0x8000,
2942     0x4000, 0x0001, 0x8000,
2943     0x4000, 0x0001, 0x8000,
2944     0x4000, 0x0001, 0x8000
2945 };
2946 static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] =   // adj value 0 - 5400
2947 {
2948     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2949     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2950     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2951     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2952     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2953     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2954     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2955     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2956     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2957 
2958     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2959     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2960     { 0x4001, { -2750, 0x0406, 1 } },   // b
2961     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2962     { 0x4001, { -2960, 0x0406, 1 } },   // d
2963     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2964     { 0x4001, { 2120, 0x0406, 1 } },    // f
2965     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
2966     { 0x4001, { -8050, 0x0406, 1 } },   // 11
2967     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2968     { 0x4001, { 8050, 0x0406, 1 } },    // 13
2969     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2970     { 0x4001, { 2750, 0x0406, 1 } },    // 15
2971     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2972     { 0x4001, { 4020, 0x0406, 1 } },    // 17
2973     { 0x6000, { 0x0417, 0x0407, 0 } },  // 18
2974     { 0x4001, { 8050, 0x0406, 1 } },    // 19
2975     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2976     { 0x4001, { -5930, 0x0406, 1 } },   // 1b
2977     { 0x6000, { 0x041b, 0x0408, 0 } },  // 1c
2978     { 0x4001, { 5930, 0x0406, 1 } },    // 1d
2979     { 0x6000, { 0x041d, 0x0408, 0 } }   // 1e
2980 };
2981 static const mso_CustomShape msoActionButtonSound =
2982 {
2983     (SvxMSDffVertPair*)mso_sptActionButtonSoundVert, sizeof( mso_sptActionButtonSoundVert ) / sizeof( SvxMSDffVertPair ),
2984     (sal_uInt16*)mso_sptActionButtonSoundSegm, sizeof( mso_sptActionButtonSoundSegm ) >> 1,
2985     (SvxMSDffCalculationData*)mso_sptActionButtonSoundCalc, sizeof( mso_sptActionButtonSoundCalc ) / sizeof( SvxMSDffCalculationData ),
2986     (sal_Int32*)mso_sptDefault1400,
2987     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2988     21600, 21600,
2989     10800, 10800,
2990     NULL, 0,
2991     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2992 };
2993 
2994 static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
2995 {
2996     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2997     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2998     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2999     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
3000     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
3001 
3002     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
3003     { 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
3004     { 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
3005     { 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
3006     { 0x10 MSO_I, 0x28 MSO_I }, { 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
3007 };
3008 static const sal_uInt16 mso_sptActionButtonMovieSegm[] =
3009 {
3010     0x4000, 0x0003, 0x6001, 0x8000,
3011     0x4000, 0x0003, 0x6001, 0x8000,
3012     0x4000, 0x0003, 0x6001, 0x8000,
3013     0x4000, 0x0003, 0x6001, 0x8000,
3014     0x4000, 0x0003, 0x6001, 0x8000,
3015     0x4000, 0x0012, 0x6001, 0x8000
3016 };
3017 static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =   // adj value 0 - 5400
3018 {
3019     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3020     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3021     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3022     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3023     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3024     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
3025     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
3026     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
3027     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
3028 
3029     { 0x4001, { -8050, 0x0406, 1 } },   // 9
3030     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
3031     { 0x4001, { -4020, 0x0406, 1 } },   // b
3032     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
3033     { 0x4001, { -7000, 0x0406, 1 } },   // d
3034     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
3035     { 0x4001, { -6560, 0x0406, 1 } },   // f
3036     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
3037     { 0x4001, { -3600, 0x0406, 1 } },   // 11
3038     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
3039     { 0x4001, { 4020, 0x0406, 1 } },    // 13
3040     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
3041     { 0x4001, { 4660, 0x0406, 1 } },    // 15
3042     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
3043     { 0x4001, { -2960, 0x0406, 1 } },   // 17
3044     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
3045     { 0x4001, { -2330, 0x0406, 1 } },   // 19
3046     { 0x6000, { 0x0419, 0x0408, 0 } },  // 1a
3047     { 0x4001, { 6780, 0x0406, 1 } },    // 1b
3048     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
3049     { 0x4001, { 7200, 0x0406, 1 } },    // 1d
3050     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
3051     { 0x4001, { 8050, 0x0406, 1 } },    // 1f
3052     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
3053     { 0x4001, { 2960, 0x0406, 1 } },    // 21
3054     { 0x6000, { 0x0421, 0x0408, 0 } },  // 22
3055     { 0x4001, { 2330, 0x0406, 1 } },    // 23
3056     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
3057     { 0x4001, { 3800, 0x0406, 1 } },    // 25
3058     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
3059     { 0x4001, { -1060, 0x0406, 1 } },   // 27
3060     { 0x6000, { 0x0427, 0x0408, 0 } },  // 28
3061     { 0x4001, { -6350, 0x0406, 1 } },   // 29
3062     { 0x6000, { 0x0429, 0x0407, 0 } },  // 2a
3063     { 0x4001, { -640, 0x0406, 1 } },    // 2b
3064     { 0x6000, { 0x042b, 0x0408, 0 } }   // 2c
3065 };
3066 static const mso_CustomShape msoActionButtonMovie =
3067 {
3068     (SvxMSDffVertPair*)mso_sptActionButtonMovieVert, sizeof( mso_sptActionButtonMovieVert ) / sizeof( SvxMSDffVertPair ),
3069     (sal_uInt16*)mso_sptActionButtonMovieSegm, sizeof( mso_sptActionButtonMovieSegm ) >> 1,
3070     (SvxMSDffCalculationData*)mso_sptActionButtonMovieCalc, sizeof( mso_sptActionButtonMovieCalc ) / sizeof( SvxMSDffCalculationData ),
3071     (sal_Int32*)mso_sptDefault1400,
3072     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3073     21600, 21600,
3074     10800, 10800,
3075     NULL, 0,
3076     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
3077 };
3078 
3079 static const SvxMSDffVertPair mso_sptSmileyFaceVert[] = // adj value 15510 - 17520
3080 {
3081     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3082     { 7305, 7515 }, { 1165, 1165 }, { 0, 360 },
3083     { 14295, 7515 }, { 1165, 1165 }, { 0, 360 },
3084     { 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I }
3085 };
3086 static const sal_uInt16 mso_sptSmileyFaceSegm[] =
3087 {
3088     0xa203, 0x6000, 0x8000,
3089     0xa203, 0x6000, 0x8000,
3090     0xa203, 0x6000, 0x8000,
3091     0x4000, 0x2001, 0xaa00, 0x8000
3092 };
3093 static const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] =
3094 {
3095     { 0x2000, { DFF_Prop_adjustValue, 0, 15510 } },
3096     { 0x8000, { 17520, 0, 0x400 } },
3097     { 0x4000, { 15510, 0x400, 0 } }
3098 };
3099 
3100 static const SvxMSDffTextRectangles mso_sptSmileyFaceTextRect[] =
3101 {
3102     { { 0, 1 MSO_I }, { 4 MSO_I, 21600 } }
3103 };
3104 static const sal_Int32 mso_sptSmileyFaceDefault[] =
3105 {
3106     1, 17520
3107 };
3108 static const SvxMSDffHandle mso_sptSmileyHandle[] =
3109 {
3110     {   MSDFF_HANDLE_FLAGS_RANGE,
3111         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 15510, 17520 }
3112 };
3113 static const mso_CustomShape msoSmileyFace =
3114 {
3115     (SvxMSDffVertPair*)mso_sptSmileyFaceVert, sizeof( mso_sptSmileyFaceVert ) / sizeof( SvxMSDffVertPair ),
3116     (sal_uInt16*)mso_sptSmileyFaceSegm, sizeof( mso_sptSmileyFaceSegm ) >> 1,
3117     (SvxMSDffCalculationData*)mso_sptSmileyFaceCalc, sizeof( mso_sptSmileyFaceCalc ) / sizeof( SvxMSDffCalculationData ),
3118     (sal_Int32*)mso_sptSmileyFaceDefault,
3119     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3120     21600, 21600,
3121     0x80000000, 0x80000000,
3122     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3123     (SvxMSDffHandle*)mso_sptSmileyHandle, sizeof( mso_sptSmileyHandle ) / sizeof( SvxMSDffHandle )      // handles
3124 };
3125 
3126 static const SvxMSDffVertPair mso_sptDonutVert[] =  // adj value 0 - 10800
3127 {
3128     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3129     { 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 }
3130 };
3131 static const sal_uInt16 mso_sptDonutSegm[] =
3132 {
3133     0xa203, 0x6000, 0xa203, 0x8000
3134 };
3135 static const SvxMSDffCalculationData mso_sptDonutCalc[] =
3136 {
3137     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3138     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3139 };
3140 static const SvxMSDffHandle mso_sptDonutHandle[] =
3141 {
3142     {   MSDFF_HANDLE_FLAGS_RANGE,
3143         0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3144 };
3145 static const mso_CustomShape msoDonut =
3146 {
3147     (SvxMSDffVertPair*)mso_sptDonutVert, sizeof( mso_sptDonutVert ) / sizeof( SvxMSDffVertPair ),
3148     (sal_uInt16*)mso_sptDonutSegm, sizeof( mso_sptDonutSegm ) >> 1,
3149     (SvxMSDffCalculationData*)mso_sptDonutCalc, sizeof( mso_sptDonutCalc ) / sizeof( SvxMSDffCalculationData ),
3150     (sal_Int32*)mso_sptDefault5400,
3151     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3152     21600, 21600,
3153     0x80000000, 0x80000000,
3154     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3155     (SvxMSDffHandle*)mso_sptDonutHandle, sizeof( mso_sptDonutHandle ) / sizeof( SvxMSDffHandle )        // handles
3156 };
3157 
3158 static const SvxMSDffVertPair mso_sptNoSmokingVert[] =  // adj value 0 - 7200
3159 {
3160     { 10800, 10800 },  { 10800, 10800 }, { 0, 360 },
3161     { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3162     { 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3163     { 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I }
3164 };
3165 static const sal_uInt16 mso_sptNoSmokingSegm[] =
3166 {
3167     0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
3168 };
3169 static const SvxMSDffCalculationData mso_sptNoSmokingCalc[] =
3170 {
3171     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         // 0
3172     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },     // 1
3173     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },     // 2
3174     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },         // 3
3175     { 0xa080, { 0x403, 0, 0x402 } },                    // 4
3176     { 0x8000, { 10800, 0, 0x403 } },                    // 5 x1
3177     { 0x4000, { 10800, 0x403, 0 } },                    // 6 x2
3178     { 0x8000, { 10800, 0, 0x404 } },                    // 7 y1
3179     { 0x4000, { 10800, 0x404, 0 } },                    // 8 y2
3180     { 0x6081, { 0x405, 0x407, 45 } },                   // 9
3181     { 0x6082, { 0x405, 0x407, 45 } },                   // a
3182     { 0x6081, { 0x405, 0x408, 45 } },                   // b
3183     { 0x6082, { 0x405, 0x408, 45 } },                   // c
3184     { 0x6081, { 0x406, 0x408, 45 } },                   // d
3185     { 0x6082, { 0x406, 0x408, 45 } },                   // e
3186     { 0x6081, { 0x406, 0x407, 45 } },                   // f
3187     { 0x6082, { 0x406, 0x407, 45 } }                    // 10
3188 };
3189 static const SvxMSDffHandle mso_sptNoSmokingHandle[] =
3190 {
3191     {   MSDFF_HANDLE_FLAGS_RANGE,
3192         0x100, 10800, 10800, 10800, 0, 7200, 0x80000000, 0x7fffffff }
3193 };
3194 static const mso_CustomShape msoNoSmoking =
3195 {
3196     (SvxMSDffVertPair*)mso_sptNoSmokingVert, sizeof( mso_sptNoSmokingVert ) / sizeof( SvxMSDffVertPair ),
3197     (sal_uInt16*)mso_sptNoSmokingSegm, sizeof( mso_sptNoSmokingSegm ) >> 1,
3198     (SvxMSDffCalculationData*)mso_sptNoSmokingCalc, sizeof( mso_sptNoSmokingCalc ) / sizeof( SvxMSDffCalculationData ),
3199     (sal_Int32*)mso_sptDefault2700,
3200     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3201     21600, 21600,
3202     0x80000000, 0x80000000,
3203     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3204     (SvxMSDffHandle*)mso_sptNoSmokingHandle, sizeof( mso_sptNoSmokingHandle ) / sizeof( SvxMSDffHandle )        // handles
3205 };
3206 
3207 static const SvxMSDffVertPair mso_sptBlockArcVert[] =   // adj value 0 (degrees)
3208 {                                                       // adj value 1: 0 -> 10800;
3209     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
3210     { 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
3211 };
3212 static const sal_uInt16 mso_sptBlockArcSegm[] =
3213 {
3214     0xA404, 0xa504, 0x6001, 0x8000
3215 };
3216 static const sal_Int32 mso_sptBlockArcDefault[] =
3217 {
3218     2, 180, 5400
3219 };
3220 static const SvxMSDffCalculationData mso_sptBlockArcCalc[] =
3221 {
3222     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
3223     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
3224     { 0x2000, { 0x400, 10800, 0 } },
3225     { 0x2000, { 0x401, 10800, 0 } },
3226     { 0x8000, { 21600, 0, 0x402 } },
3227     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
3228     { 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } },
3229     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },
3230     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }
3231 };
3232 static const SvxMSDffHandle mso_sptBlockArcHandle[] =
3233 {
3234     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
3235         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3236 };
3237 static const mso_CustomShape msoBlockArc =
3238 {
3239     (SvxMSDffVertPair*)mso_sptBlockArcVert, sizeof( mso_sptBlockArcVert ) / sizeof( SvxMSDffVertPair ),
3240     (sal_uInt16*)mso_sptBlockArcSegm, sizeof( mso_sptBlockArcSegm ) >> 1,
3241     (SvxMSDffCalculationData*)mso_sptBlockArcCalc, sizeof( mso_sptBlockArcCalc ) / sizeof( SvxMSDffCalculationData ),
3242     (sal_Int32*)mso_sptBlockArcDefault,
3243     NULL, 0,
3244     21600, 21600,
3245     0x80000000, 0x80000000,
3246     NULL, 0,
3247     (SvxMSDffHandle*)mso_sptBlockArcHandle, sizeof( mso_sptBlockArcHandle ) / sizeof( SvxMSDffHandle )      // handles
3248 };
3249 
3250 // aware : control points are always part of the bounding box
3251 static const SvxMSDffVertPair mso_sptHeartVert[] =
3252 {
3253     { 10800, 21599 }, { 321, 6886 }, { 70, 6036 },      // ppp
3254     { -9, 5766 }, { -1, 5474 }, { 2, 5192 },            // ccp
3255     { 6, 4918 }, { 43, 4641 }, { 101, 4370 },           // ccp
3256     { 159, 4103 }, { 245, 3837 }, { 353, 3582 },        // ccp
3257     { 460, 3326 }, { 591, 3077 }, { 741, 2839 },        // ccp
3258     { 892, 2598 }, { 1066, 2369 }, { 1253, 2155 },      // ccp
3259     { 1443, 1938 }, { 1651, 1732 }, { 1874, 1543 },     // ccp
3260     { 2097, 1351 }, { 2337, 1174 }, { 2587, 1014 },     // ccp
3261     { 2839, 854 }, { 3106, 708 }, { 3380, 584 },        // ccp
3262     { 3656, 459 }, { 3945, 350 }, { 4237, 264 },        // ccp
3263     { 4533, 176 }, { 4838, 108 }, { 5144, 66 },         // ccp
3264     { 5454, 22 }, { 5771, 1 }, { 6086, 3 },             // ccp
3265     { 6407, 7 }, { 6731, 35 }, { 7048, 89 },            // ccp
3266     { 7374, 144 }, { 7700, 226 }, { 8015, 335 },        // ccp
3267     { 8344, 447 }, { 8667, 590 }, { 8972, 756 },        // ccp
3268     { 9297, 932 }, { 9613, 1135 }, { 9907, 1363 },      // ccp
3269     { 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 },  // ccp
3270     { 11697, 1363 },                                    // p
3271     { 11971, 1116 }, { 12304, 934 }, { 12630, 756 },    // ccp
3272     { 12935, 590 }, { 13528, 450 }, { 13589, 335 },     // ccp
3273     { 13901, 226 }, { 14227, 144 }, { 14556, 89 },      // ccp
3274     { 14872, 35 }, { 15195, 7 }, { 15517, 3 },          // ccp
3275     { 15830, 0 }, { 16147, 22 }, { 16458, 66 },         // ccp
3276     { 16764, 109 }, { 17068, 177 }, { 17365, 264 },     // ccp
3277     { 17658, 349 }, { 17946, 458 }, { 18222, 584 },     // ccp
3278     { 18496, 708 }, { 18762, 854 }, { 19015, 1014 },    // ccp
3279     { 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 },  // ccp
3280     { 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 },  // ccp
3281     { 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 },  // ccp
3282     { 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 },  // ccp
3283     { 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 },  // ccp
3284     { 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 },  // ccp
3285     { 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 },  // ccp
3286     { 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 },  // ccp
3287     { 10802, 21602 }                                    // p
3288 };
3289 static const sal_uInt16 mso_sptHeartSegm[] =
3290 {
3291     0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
3292 };
3293 static const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
3294 {
3295     { { 5080, 2540 }, { 16520, 13550 } }
3296 };
3297 static const SvxMSDffVertPair mso_sptHeartGluePoints[] =
3298 {
3299     { 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 }
3300 };
3301 static const mso_CustomShape msoHeart =
3302 {
3303     (SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ),
3304     (sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1,
3305     NULL, 0,
3306     NULL,
3307     (SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ),
3308     21615, 21602,
3309     0x80000000, 0x80000000,
3310     (SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair ),
3311     NULL, 0     // handles
3312 };
3313 
3314 static const SvxMSDffVertPair mso_sptLightningBoldVert[] =
3315 {
3316     { 8458, 0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
3317     { 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
3318     { 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
3319 };
3320 static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
3321 {
3322     { { 8680, 7410 }, { 13970, 14190 } }
3323 };
3324 static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
3325 {
3326     { 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
3327     { 16558, 12016 }, { 12831, 6120 }
3328 };
3329 static const mso_CustomShape msoLightningBold =
3330 {
3331     (SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ),
3332     NULL, 0,
3333     NULL, 0,
3334     NULL,
3335     (SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ),
3336     21600, 21600,
3337     0x80000000, 0x80000000,
3338     (SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair ),
3339     NULL, 0     // handles
3340 };
3341 
3342 static const SvxMSDffVertPair mso_sptSunVert[] =    // adj value 2700 -> 10125
3343 {
3344     { 0, 10800 },               { 4 MSO_I, 8 MSO_I },       { 4 MSO_I, 9 MSO_I },
3345     { 0x0a MSO_I, 0x0b MSO_I }, { 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
3346     { 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
3347     { 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
3348     { 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
3349     { 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
3350     { 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
3351     { 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
3352     { 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I },   { 0, 360 }
3353 };
3354 static const sal_uInt16 mso_sptSunSegm[] =
3355 {
3356     0x4000, 0x0002, 0x6001, 0x8000,
3357     0x4000, 0x0002, 0x6001, 0x8000,
3358     0x4000, 0x0002, 0x6001, 0x8000,
3359     0x4000, 0x0002, 0x6001, 0x8000,
3360     0x4000, 0x0002, 0x6001, 0x8000,
3361     0x4000, 0x0002, 0x6001, 0x8000,
3362     0x4000, 0x0002, 0x6001, 0x8000,
3363     0x4000, 0x0002, 0x6001, 0x8000,
3364     0xa203, 0x6000, 0x8000
3365 };
3366 static const SvxMSDffCalculationData mso_sptSunCalc[] =
3367 {
3368     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3369     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3370     { 0x2000, { DFF_Prop_adjustValue, 0, 2700 } },
3371     { 0x2001, { 0x402, 5080, 7425 } },
3372     { 0x2000, { 0x403, 2540, 0 } },
3373     { 0x8000, { 10125, 0, DFF_Prop_adjustValue } },
3374     { 0x2001, { 0x405, 2120, 7425 } },
3375     { 0x2000, { 0x406, 210, 0 } },
3376     { 0x4000, { 10800, 0x407, 0 } },    // y1 (0x8)
3377     { 0x8000, { 10800, 0, 0x407 } },    // y2 (0x9)
3378     { 0x0081, { 0, 10800, 45 } },       // 0xa
3379     { 0x0082, { 0, 10800, 45 } },       // 0xb
3380     { 0x6081, { 0x404, 0x408, 45 } },   // 0xc
3381     { 0x6082, { 0x404, 0x408, 45 } },   // 0xd
3382     { 0x6081, { 0x404, 0x409, 45 } },   // 0xe
3383     { 0x6082, { 0x404, 0x409, 45 } },   // 0xf
3384     { 0x0081, { 0, 10800, 90 } },       // 0x10
3385     { 0x0082, { 0, 10800, 90 } },       // 0x11
3386     { 0x6081, { 0x404, 0x408, 90 } },   // 0x12
3387     { 0x6082, { 0x404, 0x408, 90 } },   // 0x13
3388     { 0x6081, { 0x404, 0x409, 90 } },   // 0x14
3389     { 0x6082, { 0x404, 0x409, 90 } },   // 0x15
3390     { 0x0081, { 0, 10800, 135 } },      // 0x16
3391     { 0x0082, { 0, 10800, 135 } },      // 0x17
3392     { 0x6081, { 0x404, 0x408, 135 } },  // 0x18
3393     { 0x6082, { 0x404, 0x408, 135 } },  // 0x19
3394     { 0x6081, { 0x404, 0x409, 135 } },  // 0x1a
3395     { 0x6082, { 0x404, 0x409, 135 } },  // 0x1b
3396     { 0x0081, { 0, 10800, 180 } },      // 0x1c
3397     { 0x0082, { 0, 10800, 180 } },      // 0x1d
3398     { 0x6081, { 0x404, 0x408, 180 } },  // 0x1e
3399     { 0x6082, { 0x404, 0x408, 180 } },  // 0x1f
3400     { 0x6081, { 0x404, 0x409, 180 } },  // 0x20
3401     { 0x6082, { 0x404, 0x409, 180 } },  // 0x21
3402     { 0x0081, { 0, 10800, 225 } },      // 0x22
3403     { 0x0082, { 0, 10800, 225 } },      // 0x23
3404     { 0x6081, { 0x404, 0x408, 225 } },  // 0x24
3405     { 0x6082, { 0x404, 0x408, 225 } },  // 0x25
3406     { 0x6081, { 0x404, 0x409, 225 } },  // 0x26
3407     { 0x6082, { 0x404, 0x409, 225 } },  // 0x27
3408     { 0x0081, { 0, 10800, 270 } },      // 0x28
3409     { 0x0082, { 0, 10800, 270 } },      // 0x29
3410     { 0x6081, { 0x404, 0x408, 270 } },  // 0x2a
3411     { 0x6082, { 0x404, 0x408, 270 } },  // 0x2b
3412     { 0x6081, { 0x404, 0x409, 270 } },  // 0x2c
3413     { 0x6082, { 0x404, 0x409, 270 } },  // 0x2d
3414     { 0x0081, { 0, 10800, 315 } },      // 0x2e
3415     { 0x0082, { 0, 10800, 315 } },      // 0x2f
3416     { 0x6081, { 0x404, 0x408, 315 } },  // 0x30
3417     { 0x6082, { 0x404, 0x408, 315 } },  // 0x31
3418     { 0x6081, { 0x404, 0x409, 315 } },  // 0x32
3419     { 0x6082, { 0x404, 0x409, 315 } },  // 0x33
3420     { 0x2081, { DFF_Prop_adjustValue, 10800, 45 } },    // 0x34 ( textbox )
3421     { 0x2081, { DFF_Prop_adjustValue, 10800, 225 } },   // 0x35
3422     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3423 };
3424 static const SvxMSDffTextRectangles mso_sptSunTextRect[] =
3425 {
3426     { { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } }
3427 };
3428 static const SvxMSDffHandle mso_sptSunHandle[] =
3429 {
3430     {   MSDFF_HANDLE_FLAGS_RANGE,
3431         0x100, 10800, 10800, 10800, 2700, 10125, 0x80000000, 0x7fffffff }
3432 };
3433 static const mso_CustomShape msoSun =
3434 {
3435     (SvxMSDffVertPair*)mso_sptSunVert, sizeof( mso_sptSunVert ) / sizeof( SvxMSDffVertPair ),
3436     (sal_uInt16*)mso_sptSunSegm, sizeof( mso_sptSunSegm ) >> 1,
3437     (SvxMSDffCalculationData*)mso_sptSunCalc, sizeof( mso_sptSunCalc ) / sizeof( SvxMSDffCalculationData ),
3438     (sal_Int32*)mso_sptDefault5400,
3439     (SvxMSDffTextRectangles*)mso_sptSunTextRect, sizeof( mso_sptSunTextRect ) / sizeof( SvxMSDffTextRectangles ),
3440     21600, 21600,
3441     0x80000000, 0x80000000,
3442     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3443     (SvxMSDffHandle*)mso_sptSunHandle, sizeof( mso_sptSunHandle ) / sizeof( SvxMSDffHandle )        // handles
3444 };
3445 
3446 static const SvxMSDffVertPair mso_sptMoonVert[] =   // adj value 0 -> 18900
3447 {
3448     { 21600, 0 },
3449     { 3 MSO_I, 4 MSO_I },   { 0 MSO_I, 5080 },      { 0 MSO_I, 10800 }, // ccp
3450     { 0 MSO_I, 16520 },     { 3 MSO_I, 5 MSO_I },   { 21600, 21600 },   // ccp
3451     { 9740, 21600 },        { 0, 16730 },           { 0, 10800 },       // ccp
3452     { 0, 4870 },            { 9740, 0 },            { 21600, 0  }       // ccp
3453 };
3454 static const sal_uInt16 mso_sptMoonSegm[] =
3455 {
3456     0x4000, 0x2004, 0x6000, 0x8000
3457 };
3458 static const SvxMSDffCalculationData mso_sptMoonCalc[] =
3459 {
3460     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3461     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3462     { 0x2001, { 0x401, 1, 2 } },
3463     { 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } },
3464     { 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } },
3465     { 0x8000, { 21600, 0, 0x0404 } },
3466     { 0x2001, { DFF_Prop_adjustValue, 400, 18900 } },
3467     { 0x8081, { 0, 10800, 0x406 } },
3468     { 0x8082, { 0, 10800, 0x406 } },
3469     { 0x6000, { 0x407, 0x407, 0 } },
3470     { 0x8000, { 21600, 0, 0x408 } }
3471 };
3472 static const SvxMSDffTextRectangles mso_sptMoonTextRect[] =
3473 {
3474     { { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } }
3475 };
3476 static const SvxMSDffVertPair mso_sptMoonGluePoints[] =
3477 {
3478     { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 }
3479 };
3480 static const SvxMSDffHandle mso_sptMoonHandle[] =
3481 {
3482     {   MSDFF_HANDLE_FLAGS_RANGE,
3483         0x100, 10800, 10800, 10800, 0, 18900, 0x80000000, 0x7fffffff }
3484 };
3485 static const mso_CustomShape msoMoon =
3486 {
3487     (SvxMSDffVertPair*)mso_sptMoonVert, sizeof( mso_sptMoonVert ) / sizeof( SvxMSDffVertPair ),
3488     (sal_uInt16*)mso_sptMoonSegm, sizeof( mso_sptMoonSegm ) >> 1,
3489     (SvxMSDffCalculationData*)mso_sptMoonCalc, sizeof( mso_sptMoonCalc ) / sizeof( SvxMSDffCalculationData ),
3490     (sal_Int32*)mso_sptDefault10800,
3491     (SvxMSDffTextRectangles*)mso_sptMoonTextRect, sizeof( mso_sptMoonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3492     21600, 21600,
3493     0x80000000, 0x80000000,
3494     (SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair ),
3495     (SvxMSDffHandle*)mso_sptMoonHandle, sizeof( mso_sptMoonHandle ) / sizeof( SvxMSDffHandle )      // handles
3496 };
3497 
3498 static const SvxMSDffVertPair mso_sptBracketPairVert[] =    // adj value 0 -> 10800
3499 {
3500     { 0 MSO_I, 0 },     { 0, 1 MSO_I },     // left top alignment
3501     { 0, 2 MSO_I },     { 0 MSO_I, 21600 }, // left  bottom "
3502     { 3 MSO_I, 21600 }, { 21600, 2 MSO_I }, // right bottom "
3503     { 21600, 1 MSO_I }, { 3 MSO_I, 0 }      // right top    "
3504 };
3505 static const sal_uInt16 mso_sptBracketPairSegm[] =
3506 {
3507     0x4000, 0xa701, 0x0001, 0xa801, 0x8000,
3508     0x4000, 0xa701, 0x0001, 0xa801, 0x8000
3509 };
3510 static const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
3511 {
3512     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3513     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3514     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3515     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3516     { 0x2082, { DFF_Prop_adjustValue, 0, 45 } },
3517     { 0x2000, { 0x404, 0, 10800 } },
3518     { 0x8000, { 0, 0, DFF_Prop_adjustValue } },
3519     { 0xa000, { 0x406, 0, 0x405 } },
3520     { 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } },
3521     { 0xa000, { DFF_Prop_geoTop, 0, 0x407 } },
3522     { 0x6000, { DFF_Prop_geoRight, 0x407, 0 } },
3523     { 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } },
3524     { 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } },
3525     { 0xa000, { DFF_Prop_geoTop, 0, 0x405 } },
3526     { 0x6000, { DFF_Prop_geoRight, 0x405, 0 } },
3527     { 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } }
3528 };
3529 static const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] =
3530 {
3531     { { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } }
3532 };
3533 static const SvxMSDffHandle mso_sptBracketPairHandle[] =
3534 {
3535     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3536         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3537 };
3538 static const mso_CustomShape msoBracketPair =
3539 {
3540     (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3541     (sal_uInt16*)mso_sptBracketPairSegm, sizeof( mso_sptBracketPairSegm ) >> 1,
3542     (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3543     (sal_Int32*)mso_sptDefault3700,
3544     (SvxMSDffTextRectangles*)mso_sptBracketPairTextRect, sizeof( mso_sptBracketPairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3545     21600, 21600,
3546     10800, 0x80000000,
3547     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3548     (SvxMSDffHandle*)mso_sptBracketPairHandle, sizeof( mso_sptBracketPairHandle ) / sizeof( SvxMSDffHandle )        // handles
3549 };
3550 
3551 static const sal_uInt16 mso_sptPlaqueSegm[] =
3552 {
3553     0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
3554 };
3555 static const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] =
3556 {
3557     { { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } }
3558 };
3559 static const SvxMSDffHandle mso_sptPlaqueHandle[] =
3560 {
3561     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3562         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3563 };
3564 static const mso_CustomShape msoPlaque =
3565 {
3566     (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3567     (sal_uInt16*)mso_sptPlaqueSegm, sizeof( mso_sptPlaqueSegm ) >> 1,
3568     (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3569     (sal_Int32*)mso_sptDefault3600,
3570     (SvxMSDffTextRectangles*)mso_sptPlaqueTextRect, sizeof( mso_sptPlaqueTextRect ) / sizeof( SvxMSDffTextRectangles ),
3571     21600, 21600,
3572     10800, 10800,
3573     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3574     (SvxMSDffHandle*)mso_sptPlaqueHandle, sizeof( mso_sptPlaqueHandle ) / sizeof( SvxMSDffHandle )      // handles
3575 };
3576 
3577 static const SvxMSDffVertPair mso_sptBracePairVert[] =  // adj value 0 -> 5400
3578 {
3579     { 4 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 },           // left bracket
3580     { 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 4 MSO_I, 21600 },
3581     { 8 MSO_I, 21600 }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },   // right bracket
3582     { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
3583 };
3584 static const sal_uInt16 mso_sptBracePairSegm[] =
3585 {
3586     0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000,
3587     0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
3588 };
3589 static const SvxMSDffCalculationData mso_sptBracePairCalc[] =
3590 {
3591     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3592     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3593     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3594     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3595     { 0x2001, { 0x400, 2, 1 } },                                    //  4
3596     { 0x2001, { DFF_Prop_adjustValue, 2, 1 } },                     //  5
3597     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },                 //  6
3598     { 0x8000, { 21600, 0, 0x406 } },                                //  7
3599     { 0xa000, { DFF_Prop_geoRight, 0, 0x405 } },                    //  8
3600     { 0x2001, { DFF_Prop_adjustValue, 1, 3 } },                     //  9
3601     { 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } },                 // xa
3602     { 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } },                     // xb
3603     { 0x6000, { DFF_Prop_geoTop, 0x409, 0 } },                      // xc
3604     { 0xa000, { DFF_Prop_geoRight, 0, 0x40a } },                    // xd
3605     { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } }                    // xe
3606 };
3607 static const SvxMSDffTextRectangles mso_sptBracePairTextRect[] =
3608 {
3609     { { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } }
3610 };
3611 static const SvxMSDffHandle mso_sptBracePairHandle[] =
3612 {
3613     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3614         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
3615 };
3616 static const mso_CustomShape msoBracePair =
3617 {
3618     (SvxMSDffVertPair*)mso_sptBracePairVert, sizeof( mso_sptBracePairVert ) / sizeof( SvxMSDffVertPair ),
3619     (sal_uInt16*)mso_sptBracePairSegm, sizeof( mso_sptBracePairSegm ) >> 1,
3620     (SvxMSDffCalculationData*)mso_sptBracePairCalc, sizeof( mso_sptBracePairCalc ) / sizeof( SvxMSDffCalculationData ),
3621     (sal_Int32*)mso_sptDefault1800,
3622     (SvxMSDffTextRectangles*)mso_sptBracePairTextRect, sizeof( mso_sptBracePairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3623     21600, 21600,
3624     10800, 0x80000000,
3625     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3626     (SvxMSDffHandle*)mso_sptBracePairHandle, sizeof( mso_sptBracePairHandle ) / sizeof( SvxMSDffHandle )        // handles
3627 };
3628 
3629 static const SvxMSDffCalculationData mso_sptBracketCalc[] =
3630 {
3631     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3632     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3633     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3634     { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
3635     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
3636 };
3637 static const sal_uInt16 mso_sptBracketSegm[] =
3638 {
3639     0x4000, 0x2001, 0x0001, 0x2001, 0x8000
3640 };
3641 static const SvxMSDffVertPair mso_sptLeftBracketVert[] =    // adj value 0 -> 10800
3642 {
3643     { 21600, 0 }, { 10800,  0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
3644     { 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
3645 };
3646 static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
3647 {
3648     { { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
3649 };
3650 static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
3651 {
3652     { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
3653 };
3654 static const SvxMSDffHandle mso_sptLeftBracketHandle[] =
3655 {
3656     {   MSDFF_HANDLE_FLAGS_RANGE,
3657         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3658 };
3659 static const mso_CustomShape msoLeftBracket =
3660 {
3661     (SvxMSDffVertPair*)mso_sptLeftBracketVert, sizeof( mso_sptLeftBracketVert ) / sizeof( SvxMSDffVertPair ),
3662     (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3663     (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3664     (sal_Int32*)mso_sptDefault1800,
3665     (SvxMSDffTextRectangles*)mso_sptLeftBracketTextRect, sizeof( mso_sptLeftBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3666     21600, 21600,
3667     0x80000000, 0x80000000,
3668     (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3669     (SvxMSDffHandle*)mso_sptLeftBracketHandle, sizeof( mso_sptLeftBracketHandle ) / sizeof( SvxMSDffHandle )        // handles
3670 };
3671 static const SvxMSDffVertPair mso_sptRightBracketVert[] =   // adj value 0 -> 10800
3672 {
3673     { 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
3674     { 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
3675 };
3676 static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
3677 {
3678     { { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
3679 };
3680 static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
3681 {
3682     { 0, 0 }, { 0, 21600 }, { 21600, 10800 }
3683 };
3684 static const SvxMSDffHandle mso_sptRightBracketHandle[] =
3685 {
3686     {   MSDFF_HANDLE_FLAGS_RANGE,
3687         1, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3688 };
3689 static const mso_CustomShape msoRightBracket =
3690 {
3691     (SvxMSDffVertPair*)mso_sptRightBracketVert, sizeof( mso_sptRightBracketVert ) / sizeof( SvxMSDffVertPair ),
3692     (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3693     (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3694     (sal_Int32*)mso_sptDefault1800,
3695     (SvxMSDffTextRectangles*)mso_sptRightBracketTextRect, sizeof( mso_sptRightBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3696     21600, 21600,
3697     0x80000000, 0x80000000,
3698     (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3699     (SvxMSDffHandle*)mso_sptRightBracketHandle, sizeof( mso_sptRightBracketHandle ) / sizeof( SvxMSDffHandle )      // handles
3700 };
3701 
3702 static const SvxMSDffCalculationData mso_sptBraceCalc[] =
3703 {
3704     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3705     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3706     { 0xa000, { 0x404, 0, DFF_Prop_adjustValue } },
3707     { 0xa000, { 0x404, 0, 0x400 } },
3708     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
3709     { 0x6000, { 0x404, 0x400, 0 } },
3710     { 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } },
3711     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3712     { 0x8000, { 21600, 0, 0x400 } },
3713     { 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } },
3714     { 0x8000, { 21600, 0, 0x409 } }
3715 };
3716 static const sal_uInt16 mso_sptBraceSegm[] =
3717 {
3718     0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
3719 };
3720 static const sal_Int32 mso_sptBraceDefault[] =
3721 {
3722     2, 1800, 10800
3723 };
3724 static const SvxMSDffVertPair mso_sptLeftBraceVert[] =
3725 {
3726     { 21600, 0 },                                               // p
3727     { 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },       // ccp
3728     { 10800, 2 MSO_I },                                         // p
3729     { 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I },      // ccp
3730     { 5400, 4 MSO_I },  { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3731     { 10800, 7 MSO_I },                                         // p
3732     { 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 }      // ccp
3733 };
3734 static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
3735 {
3736     { { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
3737 };
3738 static const SvxMSDffHandle mso_sptLeftBraceHandle[] =
3739 {
3740     {   MSDFF_HANDLE_FLAGS_RANGE,
3741         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3742     {   MSDFF_HANDLE_FLAGS_RANGE,
3743         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3744 };
3745 static const mso_CustomShape msoLeftBrace =     // adj value0 0 -> 5400
3746 {                                               // adj value1 0 -> 21600
3747     (SvxMSDffVertPair*)mso_sptLeftBraceVert, sizeof( mso_sptLeftBraceVert ) / sizeof( SvxMSDffVertPair ),
3748     (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3749     (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3750     (sal_Int32*)mso_sptBraceDefault,
3751     (SvxMSDffTextRectangles*)mso_sptLeftBraceTextRect, sizeof( mso_sptLeftBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3752     21600, 21600,
3753     0x80000000, 0x80000000,
3754     (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3755     (SvxMSDffHandle*)mso_sptLeftBraceHandle, sizeof( mso_sptLeftBraceHandle ) / sizeof( SvxMSDffHandle )        // handles
3756 };
3757 static const SvxMSDffVertPair mso_sptRightBraceVert[] =
3758 {
3759     { 0, 0 },                                                   // p
3760     { 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },        // ccp
3761     { 10800, 2 MSO_I },                                         // p
3762     { 10800, 3 MSO_I }, { 16200, 4 MSO_I }, { 21600, 4 MSO_I }, // ccp
3763     { 16200, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3764     { 10800, 7 MSO_I },                                         // p
3765     { 10800, 8 MSO_I }, { 5400, 21600 }, { 0, 21600 }           // ccp
3766 };
3767 static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
3768 {
3769     { { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
3770 };
3771 static const SvxMSDffHandle mso_sptRightBraceHandle[] =
3772 {
3773     {   MSDFF_HANDLE_FLAGS_RANGE,
3774         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3775     {   MSDFF_HANDLE_FLAGS_RANGE,
3776         1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3777 };
3778 static const mso_CustomShape msoRightBrace =        // adj value0 0 -> 5400
3779 {                                               // adj value1 0 -> 21600
3780     (SvxMSDffVertPair*)mso_sptRightBraceVert, sizeof( mso_sptRightBraceVert ) / sizeof( SvxMSDffVertPair ),
3781     (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3782     (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3783     (sal_Int32*)mso_sptBraceDefault,
3784     (SvxMSDffTextRectangles*)mso_sptRightBraceTextRect, sizeof( mso_sptRightBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3785     21600, 21600,
3786     0x80000000, 0x80000000,
3787     (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3788     (SvxMSDffHandle*)mso_sptRightBraceHandle, sizeof( mso_sptRightBraceHandle ) / sizeof( SvxMSDffHandle )      // handles
3789 };
3790 
3791 static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
3792 {
3793     { 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
3794     { 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
3795     { 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
3796     { 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
3797     { 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
3798     { 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
3799 };
3800 static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
3801 {
3802     { { 4680, 6570 }, { 16140, 13280 } }
3803 };
3804 static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
3805 {
3806     { 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
3807 };
3808 static const mso_CustomShape msoIrregularSeal1 =
3809 {
3810     (SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ),
3811     NULL, 0,
3812     NULL, 0,
3813     NULL,
3814     (SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ),
3815     21600, 21600,
3816     0x80000000, 0x80000000,
3817     (SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair ),
3818     NULL, 0     // handles
3819 };
3820 
3821 static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
3822 {
3823     { 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
3824     { 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
3825     { 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
3826     { 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
3827     { 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
3828     { 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
3829     { 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
3830     { 11464, 4340 }
3831 };
3832 static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
3833 {
3834     { { 5400, 6570 }, { 14160, 15290 } }
3835 };
3836 static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
3837 {
3838     { 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
3839 };
3840 static const mso_CustomShape msoIrregularSeal2 =
3841 {
3842     (SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ),
3843     NULL, 0,
3844     NULL, 0,
3845     NULL,
3846     (SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ),
3847     21600, 21600,
3848     0x80000000, 0x80000000,
3849     (SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair ),
3850     NULL, 0     // handles
3851 };
3852 
3853 static const SvxMSDffVertPair mso_sptSeal4Vert[] =      // adjustment1 : 0 - 10800
3854 {
3855     { 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I },
3856     { 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I },
3857     { 0, 10800 }
3858 };
3859 static const SvxMSDffCalculationData mso_sptSeal4Calc[] =
3860 {
3861     { 0x0000, { 7600, 0, 0 } },
3862     { 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } },
3863     { 0xa000, { 0x400, 0, 0x401 } },
3864     { 0x4000, { 10800, 0x402, 0 } },
3865     { 0x8000, { 10800, 0, 0x402 } }
3866 };
3867 static const SvxMSDffTextRectangles mso_sptSeal4TextRect[] =
3868 {
3869     { { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } }
3870 };
3871 static const SvxMSDffHandle mso_sptSealHandle[] =
3872 {
3873     {   MSDFF_HANDLE_FLAGS_RANGE,
3874         0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3875 };
3876 static const mso_CustomShape msoSeal4 =
3877 {
3878     (SvxMSDffVertPair*)mso_sptSeal4Vert, sizeof( mso_sptSeal4Vert ) / sizeof( SvxMSDffVertPair ),
3879     NULL, 0,
3880     (SvxMSDffCalculationData*)mso_sptSeal4Calc, sizeof( mso_sptSeal4Calc ) / sizeof( SvxMSDffCalculationData ),
3881     (sal_Int32*)mso_sptDefault8100,
3882     (SvxMSDffTextRectangles*)mso_sptSeal4TextRect, sizeof( mso_sptSeal4TextRect ) / sizeof( SvxMSDffTextRectangles ),
3883     21600, 21600,
3884     0x80000000, 0x80000000,
3885     NULL, 0,
3886     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
3887 };
3888 
3889 static const SvxMSDffVertPair mso_sptStarVert[] =
3890 {
3891     { 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
3892     { 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
3893     { 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
3894 };
3895 static const SvxMSDffTextRectangles mso_sptStarTextRect[] =
3896 {
3897     { { 6722, 8256 }, { 14878, 15460 } }
3898 };
3899 static const mso_CustomShape msoStar =
3900 {
3901     (SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ),
3902     NULL, 0,
3903     NULL, 0,
3904     NULL,
3905     (SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ),
3906     21600, 21600,
3907     0x80000000, 0x80000000,
3908     NULL, 0,
3909     NULL, 0     // handles
3910 };
3911 
3912 static const SvxMSDffCalculationData mso_sptSeal24Calc[] =
3913 {
3914     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
3915     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
3916     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
3917     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
3918     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
3919     { 0x0081, { 0,   10800, 0 } },
3920     { 0x0082, { 0,   10800, 0 } },
3921     { 0x2081, { 0x400, 10800, 7 } },
3922     { 0x2082, { 0x400, 10800, 7 } },
3923     { 0x0081, { 0,   10800, 15 } },
3924     { 0x0082, { 0,   10800, 15 } },
3925     { 0x2081, { 0x400, 10800, 22 } },
3926     { 0x2082, { 0x400, 10800, 22 } },
3927     { 0x0081, { 0,   10800, 30 } },
3928     { 0x0082, { 0,   10800, 30 } },
3929     { 0x2081, { 0x400, 10800, 37 } },
3930     { 0x2082, { 0x400, 10800, 37 } },
3931     { 0x0081, { 0,   10800, 45 } },
3932     { 0x0082, { 0,   10800, 45 } },
3933     { 0x2081, { 0x400, 10800, 52 } },
3934     { 0x2082, { 0x400, 10800, 52 } },
3935     { 0x0081, { 0,   10800, 60 } },
3936     { 0x0082, { 0,   10800, 60 } },
3937     { 0x2081, { 0x400, 10800, 67 } },
3938     { 0x2082, { 0x400, 10800, 67 } },
3939     { 0x0081, { 0,   10800, 75 } },
3940     { 0x0082, { 0,   10800, 75 } },
3941     { 0x2081, { 0x400, 10800, 82 } },
3942     { 0x2082, { 0x400, 10800, 82 } },
3943     { 0x0081, { 0,   10800, 90 } },
3944     { 0x0082, { 0,   10800, 90 } },
3945     { 0x2081, { 0x400, 10800, 97 } },
3946     { 0x2082, { 0x400, 10800, 97 } },
3947     { 0x0081, { 0,   10800, 105 } },
3948     { 0x0082, { 0,   10800, 105 } },
3949     { 0x2081, { 0x400, 10800, 112 } },
3950     { 0x2082, { 0x400, 10800, 112 } },
3951     { 0x0081, { 0,   10800, 120 } },
3952     { 0x0082, { 0,   10800, 120 } },
3953     { 0x2081, { 0x400, 10800, 127 } },
3954     { 0x2082, { 0x400, 10800, 127 } },
3955     { 0x0081, { 0,   10800, 135 } },
3956     { 0x0082, { 0,   10800, 135 } },
3957     { 0x2081, { 0x400, 10800, 142 } },
3958     { 0x2082, { 0x400, 10800, 142 } },
3959     { 0x0081, { 0,   10800, 150 } },
3960     { 0x0082, { 0,   10800, 150 } },
3961     { 0x2081, { 0x400, 10800, 157 } },
3962     { 0x2082, { 0x400, 10800, 157 } },
3963     { 0x0081, { 0,   10800, 165 } },
3964     { 0x0082, { 0,   10800, 165 } },
3965     { 0x2081, { 0x400, 10800, 172 } },
3966     { 0x2082, { 0x400, 10800, 172 } },
3967     { 0x0081, { 0,   10800, 180 } },
3968     { 0x0082, { 0,   10800, 180 } },
3969     { 0x2081, { 0x400, 10800, 187 } },
3970     { 0x2082, { 0x400, 10800, 187 } },
3971     { 0x0081, { 0,   10800, 195 } },
3972     { 0x0082, { 0,   10800, 195 } },
3973     { 0x2081, { 0x400, 10800, 202 } },
3974     { 0x2082, { 0x400, 10800, 202 } },
3975     { 0x0081, { 0,   10800, 210 } },
3976     { 0x0082, { 0,   10800, 210 } },
3977     { 0x2081, { 0x400, 10800, 217 } },
3978     { 0x2082, { 0x400, 10800, 217 } },
3979     { 0x0081, { 0,   10800, 225 } },
3980     { 0x0082, { 0,   10800, 225 } },
3981     { 0x2081, { 0x400, 10800, 232 } },
3982     { 0x2082, { 0x400, 10800, 232 } },
3983     { 0x0081, { 0,   10800, 240 } },
3984     { 0x0082, { 0,   10800, 240 } },
3985     { 0x2081, { 0x400, 10800, 247 } },
3986     { 0x2082, { 0x400, 10800, 247 } },
3987     { 0x0081, { 0,   10800, 255 } },
3988     { 0x0082, { 0,   10800, 255 } },
3989     { 0x2081, { 0x400, 10800, 262 } },
3990     { 0x2082, { 0x400, 10800, 262 } },
3991     { 0x0081, { 0,   10800, 270 } },
3992     { 0x0082, { 0,   10800, 270 } },
3993     { 0x2081, { 0x400, 10800, 277 } },
3994     { 0x2082, { 0x400, 10800, 277 } },
3995     { 0x0081, { 0,   10800, 285 } },
3996     { 0x0082, { 0,   10800, 285 } },
3997     { 0x2081, { 0x400, 10800, 292 } },
3998     { 0x2082, { 0x400, 10800, 292 } },
3999     { 0x0081, { 0,   10800, 300 } },
4000     { 0x0082, { 0,   10800, 300 } },
4001     { 0x2081, { 0x400, 10800, 307 } },
4002     { 0x2082, { 0x400, 10800, 307 } },
4003     { 0x0081, { 0,   10800, 315 } },
4004     { 0x0082, { 0,   10800, 315 } },
4005     { 0x2081, { 0x400, 10800, 322 } },
4006     { 0x2082, { 0x400, 10800, 322 } },
4007     { 0x0081, { 0,   10800, 330 } },
4008     { 0x0082, { 0,   10800, 330 } },
4009     { 0x2081, { 0x400, 10800, 337 } },
4010     { 0x2082, { 0x400, 10800, 337 } },
4011     { 0x0081, { 0,   10800, 345 } },
4012     { 0x0082, { 0,   10800, 345 } },
4013     { 0x2081, { 0x400, 10800, 352 } },
4014     { 0x2082, { 0x400, 10800, 352 } }
4015 };
4016 static const SvxMSDffVertPair mso_sptSeal8Vert[] =  // adj value 0 -> 10800
4017 {
4018     { 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
4019     { 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
4020     { 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
4021     { 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
4022     { 5 MSO_I, 6 MSO_I }
4023 };
4024 static const SvxMSDffTextRectangles mso_sptSealTextRect[] =
4025 {
4026     { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
4027 };
4028 static const mso_CustomShape msoSeal8 =
4029 {
4030     (SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ),
4031     NULL, 0,
4032     (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4033     (sal_Int32*)mso_sptDefault2500,
4034     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4035     21600, 21600,
4036     0x80000000, 0x80000000,
4037     NULL, 0,
4038     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4039 };
4040 static const SvxMSDffVertPair mso_sptSeal16Vert[] = // adj value 0 -> 10800
4041 {
4042     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4043     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4044     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4045     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4046     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4047     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4048     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4049     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4050     { 0x05 MSO_I, 0x06 MSO_I }
4051 };
4052 static const SvxMSDffCalculationData mso_sptSeal16Calc[] =
4053 {
4054     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
4055     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
4056     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
4057     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
4058     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
4059     { 0x0081, { 0,   10800, 0 } },
4060     { 0x0082, { 0,   10800, 0 } },
4061     { 0x2081, { 0x400, 10800, 11 } },
4062     { 0x2082, { 0x400, 10800, 11 } },
4063     { 0x0081, { 0,   10800, 22 } },
4064     { 0x0082, { 0,   10800, 22 } },
4065     { 0x2081, { 0x400, 10800, 33 } },
4066     { 0x2082, { 0x400, 10800, 33 } },
4067     { 0x0081, { 0,   10800, 45 } },
4068     { 0x0082, { 0,   10800, 45 } },
4069     { 0x2081, { 0x400, 10800, 56 } },
4070     { 0x2082, { 0x400, 10800, 56 } },
4071     { 0x0081, { 0,   10800, 67 } },
4072     { 0x0082, { 0,   10800, 67 } },
4073     { 0x2081, { 0x400, 10800, 78 } },
4074     { 0x2082, { 0x400, 10800, 78 } },
4075     { 0x0081, { 0,   10800, 90 } },
4076     { 0x0082, { 0,   10800, 90 } },
4077     { 0x2081, { 0x400, 10800, 101 } },
4078     { 0x2082, { 0x400, 10800, 101 } },
4079     { 0x0081, { 0,   10800, 112 } },
4080     { 0x0082, { 0,   10800, 112 } },
4081     { 0x2081, { 0x400, 10800, 123 } },
4082     { 0x2082, { 0x400, 10800, 123 } },
4083     { 0x0081, { 0,   10800, 135 } },
4084     { 0x0082, { 0,   10800, 135 } },
4085     { 0x2081, { 0x400, 10800, 146 } },
4086     { 0x2082, { 0x400, 10800, 146 } },
4087     { 0x0081, { 0,   10800, 157 } },
4088     { 0x0082, { 0,   10800, 157 } },
4089     { 0x2081, { 0x400, 10800, 168 } },
4090     { 0x2082, { 0x400, 10800, 168 } },
4091     { 0x0081, { 0,   10800, 180 } },
4092     { 0x0082, { 0,   10800, 180 } },
4093     { 0x2081, { 0x400, 10800, 191 } },
4094     { 0x2082, { 0x400, 10800, 191 } },
4095     { 0x0081, { 0,   10800, 202 } },
4096     { 0x0082, { 0,   10800, 202 } },
4097     { 0x2081, { 0x400, 10800, 213 } },
4098     { 0x2082, { 0x400, 10800, 213 } },
4099     { 0x0081, { 0,   10800, 225 } },
4100     { 0x0082, { 0,   10800, 225 } },
4101     { 0x2081, { 0x400, 10800, 236 } },
4102     { 0x2082, { 0x400, 10800, 236 } },
4103     { 0x0081, { 0,   10800, 247 } },
4104     { 0x0082, { 0,   10800, 247 } },
4105     { 0x2081, { 0x400, 10800, 258 } },
4106     { 0x2082, { 0x400, 10800, 258 } },
4107     { 0x0081, { 0,   10800, 270 } },
4108     { 0x0082, { 0,   10800, 270 } },
4109     { 0x2081, { 0x400, 10800, 281 } },
4110     { 0x2082, { 0x400, 10800, 281 } },
4111     { 0x0081, { 0,   10800, 292 } },
4112     { 0x0082, { 0,   10800, 292 } },
4113     { 0x2081, { 0x400, 10800, 303 } },
4114     { 0x2082, { 0x400, 10800, 303 } },
4115     { 0x0081, { 0,   10800, 315 } },
4116     { 0x0082, { 0,   10800, 315 } },
4117     { 0x2081, { 0x400, 10800, 326 } },
4118     { 0x2082, { 0x400, 10800, 326 } },
4119     { 0x0081, { 0,   10800, 337 } },
4120     { 0x0082, { 0,   10800, 337 } },
4121     { 0x2081, { 0x400, 10800, 348 } },
4122     { 0x2082, { 0x400, 10800, 348 } }
4123 };
4124 static const mso_CustomShape msoSeal16 =
4125 {
4126     (SvxMSDffVertPair*)mso_sptSeal16Vert, sizeof( mso_sptSeal16Vert ) / sizeof( SvxMSDffVertPair ),
4127     NULL, 0,
4128     (SvxMSDffCalculationData*)mso_sptSeal16Calc, sizeof( mso_sptSeal16Calc ) / sizeof( SvxMSDffCalculationData ),
4129     (sal_Int32*)mso_sptDefault2500,
4130     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4131     21600, 21600,
4132     0x80000000, 0x80000000,
4133     NULL, 0,
4134     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4135 };
4136 static const SvxMSDffVertPair mso_sptSeal24Vert[] =
4137 {
4138     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4139     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4140     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4141     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4142     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4143     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4144     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4145     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4146     { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4147     { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4148     { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4149     { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4150     { 0x05 MSO_I, 0x06 MSO_I }
4151 };
4152 static const mso_CustomShape msoSeal24 =
4153 {
4154     (SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ),
4155     NULL, 0,
4156     (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4157     (sal_Int32*)mso_sptDefault2500,
4158     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4159     21600, 21600,
4160     0x80000000, 0x80000000,
4161     NULL, 0,
4162     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4163 };
4164 static const SvxMSDffCalculationData mso_sptSeal32Calc[] =
4165 {
4166     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
4167     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
4168     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
4169     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
4170     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
4171     { 0x0081, { 0,   10800, 0 } },
4172     { 0x0082, { 0,   10800, 0 } },
4173     { 0x2081, { 0x400, 10800, 5 } },
4174     { 0x2082, { 0x400, 10800, 5 } },
4175     { 0x0081, { 0,   10800, 11 } },
4176     { 0x0082, { 0,   10800, 11 } },
4177     { 0x2081, { 0x400, 10800, 16 } },
4178     { 0x2082, { 0x400, 10800, 16 } },
4179     { 0x0081, { 0,   10800, 22 } },
4180     { 0x0082, { 0,   10800, 22 } },
4181     { 0x2081, { 0x400, 10800, 28 } },
4182     { 0x2082, { 0x400, 10800, 28 } },
4183     { 0x0081, { 0,   10800, 33 } },
4184     { 0x0082, { 0,   10800, 33 } },
4185     { 0x2081, { 0x400, 10800, 39 } },
4186     { 0x2082, { 0x400, 10800, 39 } },
4187     { 0x0081, { 0,   10800, 45 } },
4188     { 0x0082, { 0,   10800, 45 } },
4189     { 0x2081, { 0x400, 10800, 50 } },
4190     { 0x2082, { 0x400, 10800, 50 } },
4191     { 0x0081, { 0,   10800, 56 } },
4192     { 0x0082, { 0,   10800, 56 } },
4193     { 0x2081, { 0x400, 10800, 61 } },
4194     { 0x2082, { 0x400, 10800, 61 } },
4195     { 0x0081, { 0,   10800, 67 } },
4196     { 0x0082, { 0,   10800, 67 } },
4197     { 0x2081, { 0x400, 10800, 73 } },
4198     { 0x2082, { 0x400, 10800, 73 } },
4199     { 0x0081, { 0,   10800, 78 } },
4200     { 0x0082, { 0,   10800, 78 } },
4201     { 0x2081, { 0x400, 10800, 84 } },
4202     { 0x2082, { 0x400, 10800, 84 } },
4203     { 0x0081, { 0,   10800, 90 } },
4204     { 0x0082, { 0,   10800, 90 } },
4205     { 0x2081, { 0x400, 10800, 95 } },
4206     { 0x2082, { 0x400, 10800, 95 } },
4207     { 0x0081, { 0,   10800, 101 } },
4208     { 0x0082, { 0,   10800, 101 } },
4209     { 0x2081, { 0x400, 10800, 106 } },
4210     { 0x2082, { 0x400, 10800, 106 } },
4211     { 0x0081, { 0,   10800, 112 } },
4212     { 0x0082, { 0,   10800, 112 } },
4213     { 0x2081, { 0x400, 10800, 118 } },
4214     { 0x2082, { 0x400, 10800, 118 } },
4215     { 0x0081, { 0,   10800, 123 } },
4216     { 0x0082, { 0,   10800, 123 } },
4217     { 0x2081, { 0x400, 10800, 129 } },
4218     { 0x2082, { 0x400, 10800, 129 } },
4219     { 0x0081, { 0,   10800, 135 } },
4220     { 0x0082, { 0,   10800, 135 } },
4221     { 0x2081, { 0x400, 10800, 140 } },
4222     { 0x2082, { 0x400, 10800, 140 } },
4223     { 0x0081, { 0,   10800, 146 } },
4224     { 0x0082, { 0,   10800, 146 } },
4225     { 0x2081, { 0x400, 10800, 151 } },
4226     { 0x2082, { 0x400, 10800, 151 } },
4227     { 0x0081, { 0,   10800, 157 } },
4228     { 0x0082, { 0,   10800, 157 } },
4229     { 0x2081, { 0x400, 10800, 163 } },
4230     { 0x2082, { 0x400, 10800, 163 } },
4231     { 0x0081, { 0,   10800, 168 } },
4232     { 0x0082, { 0,   10800, 168 } },
4233     { 0x2081, { 0x400, 10800, 174 } },
4234     { 0x2082, { 0x400, 10800, 174 } },
4235     { 0x0081, { 0,   10800, 180 } },
4236     { 0x0082, { 0,   10800, 180 } },
4237     { 0x2081, { 0x400, 10800, 185 } },
4238     { 0x2082, { 0x400, 10800, 185 } },
4239     { 0x0081, { 0,   10800, 191 } },
4240     { 0x0082, { 0,   10800, 191 } },
4241     { 0x2081, { 0x400, 10800, 196 } },
4242     { 0x2082, { 0x400, 10800, 196 } },
4243     { 0x0081, { 0,   10800, 202 } },
4244     { 0x0082, { 0,   10800, 202 } },
4245     { 0x2081, { 0x400, 10800, 208 } },
4246     { 0x2082, { 0x400, 10800, 208 } },
4247     { 0x0081, { 0,   10800, 213 } },
4248     { 0x0082, { 0,   10800, 213 } },
4249     { 0x2081, { 0x400, 10800, 219 } },
4250     { 0x2082, { 0x400, 10800, 219 } },
4251     { 0x0081, { 0,   10800, 225 } },
4252     { 0x0082, { 0,   10800, 225 } },
4253     { 0x2081, { 0x400, 10800, 230 } },
4254     { 0x2082, { 0x400, 10800, 230 } },
4255     { 0x0081, { 0,   10800, 236 } },
4256     { 0x0082, { 0,   10800, 236 } },
4257     { 0x2081, { 0x400, 10800, 241 } },
4258     { 0x2082, { 0x400, 10800, 241 } },
4259     { 0x0081, { 0,   10800, 247 } },
4260     { 0x0082, { 0,   10800, 247 } },
4261     { 0x2081, { 0x400, 10800, 253 } },
4262     { 0x2082, { 0x400, 10800, 253 } },
4263     { 0x0081, { 0,   10800, 258 } },
4264     { 0x0082, { 0,   10800, 258 } },
4265     { 0x2081, { 0x400, 10800, 264 } },
4266     { 0x2082, { 0x400, 10800, 264 } },
4267     { 0x0081, { 0,   10800, 270 } },
4268     { 0x0082, { 0,   10800, 270 } },
4269     { 0x2081, { 0x400, 10800, 275 } },
4270     { 0x2082, { 0x400, 10800, 275 } },
4271     { 0x0081, { 0,   10800, 281 } },
4272     { 0x0082, { 0,   10800, 281 } },
4273     { 0x2081, { 0x400, 10800, 286 } },
4274     { 0x2082, { 0x400, 10800, 286 } },
4275     { 0x0081, { 0,   10800, 292 } },
4276     { 0x0082, { 0,   10800, 292 } },
4277     { 0x2081, { 0x400, 10800, 298 } },
4278     { 0x2082, { 0x400, 10800, 298 } },
4279     { 0x0081, { 0,   10800, 303 } },
4280     { 0x0082, { 0,   10800, 303 } },
4281     { 0x2081, { 0x400, 10800, 309 } },
4282     { 0x2082, { 0x400, 10800, 309 } },
4283     { 0x0081, { 0,   10800, 315 } },
4284     { 0x0082, { 0,   10800, 315 } },
4285     { 0x2081, { 0x400, 10800, 320 } },
4286     { 0x2082, { 0x400, 10800, 320 } },
4287     { 0x0081, { 0,   10800, 326 } },
4288     { 0x0082, { 0,   10800, 326 } },
4289     { 0x2081, { 0x400, 10800, 331 } },
4290     { 0x2082, { 0x400, 10800, 331 } },
4291     { 0x0081, { 0,   10800, 337 } },
4292     { 0x0082, { 0,   10800, 337 } },
4293     { 0x2081, { 0x400, 10800, 343 } },
4294     { 0x2082, { 0x400, 10800, 343 } },
4295     { 0x0081, { 0,   10800, 348 } },
4296     { 0x0082, { 0,   10800, 348 } },
4297     { 0x2081, { 0x400, 10800, 354 } },
4298     { 0x2082, { 0x400, 10800, 354 } }
4299 };
4300 static const SvxMSDffVertPair mso_sptSeal32Vert[] =
4301 {
4302     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4303     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4304     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4305     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4306     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4307     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4308     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4309     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4310     { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4311     { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4312     { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4313     { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4314     { 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
4315     { 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
4316     { 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
4317     { 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
4318     { 0x05 MSO_I, 0x06 MSO_I }
4319 };
4320 static const mso_CustomShape msoSeal32 =
4321 {
4322     (SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ),
4323     NULL, 0,
4324     (SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ),
4325     (sal_Int32*)mso_sptDefault2500,
4326     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4327     21600, 21600,
4328     0x80000000, 0x80000000,
4329     NULL, 0,
4330     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )
4331 };
4332 
4333 static const SvxMSDffVertPair mso_sptRibbon2Vert[] =    // adjustment1 : x 2700  - 8100     def 5400
4334 {                                                       // adjustment2 : y 14400 - 21600    def 18900
4335     { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },                                      // pp
4336     { 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 },                   // ccp
4337     { 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },              // pppp
4338     { 0 MSO_I, 4 MSO_I },                                                               // p
4339     { 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 },                             // ccp
4340     { 17 MSO_I, 0 },                                                                    // p
4341     { 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I },                      // ccp
4342     { 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 },    // pppp
4343     { 20 MSO_I, 21600 },                                                                // p
4344     { 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I },                // ccp
4345     { 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },               // ppp
4346     { 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I },             // ccp
4347     { 11 MSO_I, 24 MSO_I },                                                             // p
4348     { 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I },               // ccp
4349     { 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I },                // ccp
4350 
4351     { 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I },                                      // pp
4352     { 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I },             // ccp
4353     { 17 MSO_I, 24 MSO_I },                                                             // p
4354     { 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I },             // ccp
4355     { 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I },               // ccp
4356 
4357     { 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I },                                        // pp
4358 
4359     { 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I }                                       // pp
4360 };
4361 static const sal_uInt16 mso_sptRibbon2Segm[] =
4362 {
4363     0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
4364     0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4365     0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4366     0x4000, 0x0001, 0x8000,
4367     0x4000, 0x0001, 0x8000
4368 };
4369 static const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
4370 {
4371     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 00
4372     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 01
4373     { 0x8000, { 21600, 0, 0x401 } },                        // 02
4374     { 0x2001, { 0x402, 1, 2 } },                            // 03
4375     { 0x2001, { 0x403, 1, 2 } },                            // 04
4376     { 0x2001, { 0x404, 1, 2 } },                            // 05
4377     { 0x2001, { 0x401, 1, 2 } },                            // 06
4378     { 0x8000, { 21600, 0, 0x406 } },                        // 07
4379     { 0x0000, { 420, 0, 0 } },                              // 08
4380     { 0x2001, { 0x408, 2, 1 } },                            // 09
4381     { 0x6000, { 0x400, 0x408, 0 } },                        // 10
4382     { 0x6000, { 0x400, 0x409, 0 } },                        // 11
4383     { 0x2000, { 0x400, 2700, 0 } },                         // 12
4384     { 0x8000, { 21600, 0, 0x404 } },                        // 13
4385     { 0x8000, { 21600, 0, 0x405 } },                        // 14
4386     { 0xa000, { 0x40c, 0, 0x408 } },                        // 15
4387     { 0xa000, { 0x40c, 0, 0x409 } },                        // 16
4388 
4389     { 0x8000, { 21600, 0, 0x40b } },                        // 17
4390     { 0x8000, { 21600, 0, 0x40a } },                        // 18
4391     { 0x8000, { 21600, 0, 0x400 } },                        // 19
4392     { 0x8000, { 21600, 0, 0x410 } },                        // 20
4393     { 0x8000, { 21600, 0, 0x40f } },                        // 21
4394     { 0x8000, { 21600, 0, 0x40c } },                        // 22
4395 
4396     { 0xa000, { 0x40d, 0, 0x405 } },                        // 23
4397     { 0x6000, { 0x401, 0x403, 0 } },                        // 24
4398     { 0x6000, { 0x401, 0x404, 0 } },                        // 25
4399     { 0x6000, { 0x419, 0x405, 0 } },                        // 26
4400     { 0xa000, { 0x419, 0, 0x405 } }                         // 27
4401 };
4402 static const sal_Int32 mso_sptRibbon2Default[] =
4403 {
4404     2, 5400, 18900
4405 };
4406 static const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] =
4407 {
4408     { { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } }
4409 };
4410 static const SvxMSDffHandle mso_sptRibbon2Handle[] =
4411 {
4412     {   MSDFF_HANDLE_FLAGS_RANGE,
4413         0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4414     {   MSDFF_HANDLE_FLAGS_RANGE,
4415         10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
4416 };
4417 static const mso_CustomShape msoRibbon2 =
4418 {
4419     (SvxMSDffVertPair*)mso_sptRibbon2Vert, sizeof( mso_sptRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
4420     (sal_uInt16*)mso_sptRibbon2Segm, sizeof( mso_sptRibbon2Segm ) >> 1,
4421     (SvxMSDffCalculationData*)mso_sptRibbon2Calc, sizeof( mso_sptRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
4422     (sal_Int32*)mso_sptRibbon2Default,
4423     (SvxMSDffTextRectangles*)mso_sptRibbon2TextRect, sizeof( mso_sptRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
4424     21600, 21600,
4425     0x80000000, 0x80000000,
4426     NULL, 0,
4427     (SvxMSDffHandle*)mso_sptRibbon2Handle, sizeof( mso_sptRibbon2Handle ) / sizeof( SvxMSDffHandle )
4428 };
4429 
4430 static const SvxMSDffVertPair mso_sptRibbonVert[] =
4431 {
4432     { 0, 0 }, { 3 MSO_I, 0 },
4433     { 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I },
4434     { 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 },
4435     { 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I },
4436 
4437     { 4 MSO_I, 11 MSO_I },
4438     { 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I },
4439     { 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I },
4440     { 5 MSO_I, 11 MSO_I },
4441     { 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I },
4442     { 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I },
4443     { 0 MSO_I, 13 MSO_I },
4444     { 0 MSO_I, 15 MSO_I },
4445     { 9 MSO_I, 13 MSO_I },
4446     { 9 MSO_I, 15 MSO_I }
4447 };
4448 static const sal_uInt16 mso_sptRibbonSegm[] =
4449 {
4450     0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000,
4451     0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4452     0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4453     0x4000, 0xaa00, 0x0001, 0x8000,
4454     0x4000, 0xaa00, 0x0001, 0x8000
4455 };
4456 static const SvxMSDffCalculationData mso_sptRibbonCalc[] =
4457 {
4458     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 00
4459     { 0x2000, { 0x400, 675, 0 } },                          // 01
4460     { 0x2000, { 0x401, 675, 0 } },                          // 02
4461     { 0x2000, { 0x402, 675, 0 } },                          // 03
4462     { 0x2000, { 0x403, 675, 0 } },                          // 04
4463     { 0x8000, { 21600, 0, 0x404 } },                        // 05
4464     { 0x8000, { 21600, 0, 0x403 } },                        // 06
4465     { 0x8000, { 21600, 0, 0x402 } },                        // 07
4466     { 0x8000, { 21600, 0, 0x401 } },                        // 08
4467     { 0x8000, { 21600, 0, 0x400 } },                        // 09
4468     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 10
4469     { 0x2001, { 0x40a, 1, 4 } },                            // 11
4470     { 0x2001, { 0x40b, 2, 1 } },                            // 12
4471     { 0x2001, { 0x40b, 3, 1 } },                            // 13
4472     { 0x8000, { 10800, 0, 0x40c } },                        // 14
4473     { 0x8000, { 21600, 0, 0x40a } },                        // 15
4474     { 0x8000, { 21600, 0, 0x40b } },                        // 16
4475     { 0x0001, { 21600, 1, 2 } },                            // 17
4476     { 0x0000, { 21600, 0, 2700 } },                         // 18
4477     { 0x2000, { 0x411, 0, 2700 } }                          // 19
4478 };
4479 static const sal_Int32 mso_sptRibbonDefault[] =
4480 {
4481     2, 5400, 2700
4482 };
4483 static const SvxMSDffTextRectangles mso_sptRibbonTextRect[] =
4484 {
4485     { { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } }
4486 };
4487 static const SvxMSDffVertPair mso_sptRibbonGluePoints[] =
4488 {
4489     { 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I }
4490 };
4491 static const SvxMSDffHandle mso_sptRibbonHandle[] =
4492 {
4493     {   MSDFF_HANDLE_FLAGS_RANGE,
4494         0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4495     {   MSDFF_HANDLE_FLAGS_RANGE,
4496         10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
4497 };
4498 static const mso_CustomShape msoRibbon =
4499 {
4500     (SvxMSDffVertPair*)mso_sptRibbonVert, sizeof( mso_sptRibbonVert ) / sizeof( SvxMSDffVertPair ),
4501     (sal_uInt16*)mso_sptRibbonSegm, sizeof( mso_sptRibbonSegm ) >> 1,
4502     (SvxMSDffCalculationData*)mso_sptRibbonCalc, sizeof( mso_sptRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
4503     (sal_Int32*)mso_sptRibbonDefault,
4504     (SvxMSDffTextRectangles*)mso_sptRibbonTextRect, sizeof( mso_sptRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
4505     21600, 21600,
4506     0x80000000, 0x80000000,
4507     (SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof( SvxMSDffVertPair ),
4508     (SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle )
4509 };
4510 
4511 static const SvxMSDffVertPair mso_sptVerticalScrollVert[] = // adjustment1 : 0 - 5400
4512 {
4513     { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
4514     { 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I },
4515     { 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 },
4516 
4517     { 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I },
4518 
4519     { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I },
4520     { 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I },
4521 
4522     { 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I },
4523 
4524     { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
4525 
4526     { 4 MSO_I, 0 MSO_I },
4527     { 2 MSO_I, 0 MSO_I }
4528 };
4529 static const sal_uInt16 mso_sptVerticalScrollSegm[] =
4530 {
4531     0x4000, 0xa702, 0x0002, 0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000,
4532     0x4000, 0xa801, 0xa702, 0x6000, 0x8000,
4533     0x4000, 0xa803, 0xa702, 0x6001, 0x8000,
4534     0x4000, 0xa701, 0x8000,
4535     0x4000, 0x0001, 0x8000,
4536     0x4000, 0x0001, 0x8000
4537 };
4538 static const SvxMSDffCalculationData mso_sptScrollCalc[] =
4539 {
4540     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
4541     { 0x2001, { 0x400, 1, 2 } },
4542     { 0xa000, { DFF_Prop_geoRight, 0, 0x401 } },
4543     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
4544     { 0x6000, { 0x400, 0x401, 0 } },
4545     { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
4546     { 0x2001, { 0x400, 2, 1 } },
4547     { 0x2001, { 0x401, 1, 2 } },
4548     { 0x6000, { 0x400, 0x407, 0 } },
4549     { 0x6000, { 0x401, 0x407, 0 } },
4550     { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } },
4551     { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },
4552     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
4553     { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
4554 };
4555 static const SvxMSDffTextRectangles mso_sptScrollTextRect[] =
4556 {
4557     { { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } }
4558 };
4559 static const SvxMSDffHandle mso_sptVerticalScrollHandle[] =
4560 {
4561     {   MSDFF_HANDLE_FLAGS_RANGE,
4562         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
4563 };
4564 static const mso_CustomShape msoVerticalScroll =
4565 {
4566     (SvxMSDffVertPair*)mso_sptVerticalScrollVert, sizeof( mso_sptVerticalScrollVert ) / sizeof( SvxMSDffVertPair ),
4567     (sal_uInt16*)mso_sptVerticalScrollSegm, sizeof( mso_sptVerticalScrollSegm ) >> 1,
4568     (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4569     (sal_Int32*)mso_sptDefault2700,
4570     (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4571     21600, 21600,
4572     11000, 10800,
4573     NULL, 0,
4574     (SvxMSDffHandle*)mso_sptVerticalScrollHandle, sizeof( mso_sptVerticalScrollHandle ) / sizeof( SvxMSDffHandle )
4575 };
4576 static const SvxMSDffVertPair mso_sptHorizontalScrollVert[] =   // adjustment1 : 0 - 5400
4577 {
4578     { 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I },
4579     { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I },
4580     { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I },
4581 
4582     { 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I },
4583 
4584     { 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 },
4585     { 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I },
4586 
4587     { 1 MSO_I, 6 MSO_I },
4588     { 0, 4 MSO_I },
4589 
4590     { 2 MSO_I, 0 MSO_I },
4591     { 3 MSO_I, 0 MSO_I },
4592 
4593     { 0 MSO_I, 4 MSO_I },
4594     { 0 MSO_I, 11 MSO_I }
4595 };
4596 static const sal_uInt16 mso_sptHorizontalScrollSegm[] =
4597 {
4598     0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000,
4599     0x4000, 0xa803, 0x6000, 0x8000,
4600     0x4000, 0xa803, 0xa702, 0x6000, 0x8000,
4601     0x4000, 0xa701, 0x8000,
4602     0x4000, 0x0001, 0x8000,
4603     0x4000, 0x0001, 0x8000
4604 };
4605 static const SvxMSDffHandle mso_sptHorizontalScrollHandle[] =
4606 {
4607     {   MSDFF_HANDLE_FLAGS_RANGE,
4608         0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
4609 };
4610 static const mso_CustomShape msoHorizontalScroll =
4611 {
4612     (SvxMSDffVertPair*)mso_sptHorizontalScrollVert, sizeof( mso_sptHorizontalScrollVert ) / sizeof( SvxMSDffVertPair ),
4613     (sal_uInt16*)mso_sptHorizontalScrollSegm, sizeof( mso_sptHorizontalScrollSegm ) >> 1,
4614     (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4615     (sal_Int32*)mso_sptDefault2700,
4616     (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4617     21600, 21600,
4618     10800, 11000,
4619     NULL, 0,
4620     (SvxMSDffHandle*)mso_sptHorizontalScrollHandle, sizeof( mso_sptHorizontalScrollHandle ) / sizeof( SvxMSDffHandle )
4621 };
4622 
4623 static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
4624 {
4625     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
4626 };
4627 static const mso_CustomShape msoFlowChartProcess =
4628 {
4629     (SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ),
4630     NULL, 0,
4631     NULL, 0,
4632     NULL,
4633     NULL, 0,
4634     21600, 21600,
4635     0x80000000, 0x80000000,
4636     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4637     NULL, 0     // handles
4638 };
4639 
4640 static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
4641 {
4642     { 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
4643     { 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
4644 };
4645 static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
4646 {
4647     0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4648 };
4649 static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
4650 {
4651     { 0x2000, { DFF_Prop_geoLeft, 2540, 0 } },
4652     { 0x2000, { DFF_Prop_geoRight, 0, 2540 } },
4653     { 0x2000, { DFF_Prop_geoTop, 2540, 0 } },
4654     { 0x2000, { DFF_Prop_geoBottom, 0, 2540 } },
4655     { 0x2000, { DFF_Prop_geoLeft, 800, 0 } },
4656     { 0x2000, { DFF_Prop_geoRight, 0, 800 } },
4657     { 0x2000, { DFF_Prop_geoTop, 800, 0 } },
4658     { 0x2000, { DFF_Prop_geoBottom,0, 800 } }
4659 };
4660 static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] =
4661 {
4662     { { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
4663 };
4664 static const mso_CustomShape msoFlowChartAlternateProcess =
4665 {
4666     (SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ),
4667     (sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
4668     (SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ),
4669     NULL,
4670     (SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4671     21600, 21600,
4672     0x80000000, 0x80000000,
4673     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4674     NULL, 0     // handles
4675 };
4676 
4677 static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
4678 {
4679     { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
4680 };
4681 static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] =
4682 {
4683     { { 5400, 5400 }, { 16200, 16200 } }
4684 };
4685 static const mso_CustomShape msoFlowChartDecision =
4686 {
4687     (SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ),
4688     NULL, 0,
4689     NULL, 0,
4690     NULL,
4691     (SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ),
4692     21600, 21600,
4693     0x80000000, 0x80000000,
4694     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4695     NULL, 0     // handles
4696 };
4697 
4698 static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
4699 {
4700     { 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
4701 };
4702 static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] =
4703 {
4704     { { 4230, 0 }, { 17370, 21600 } }
4705 };
4706 static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
4707 {
4708     { 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
4709 };
4710 static const mso_CustomShape msoFlowChartInputOutput =
4711 {
4712     (SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ),
4713     NULL, 0,
4714     NULL, 0,
4715     NULL,
4716     (SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4717     21600, 21600,
4718     0x80000000, 0x80000000,
4719     (SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair ),
4720     NULL, 0     // handles
4721 };
4722 
4723 static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
4724 {
4725     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4726 
4727     { 2540, 0 }, { 2540, 21600 },
4728 
4729     { 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
4730 };
4731 static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
4732 {
4733     0x4000, 0x0003, 0x6000, 0x8000,
4734     0x4000, 0x0001, 0x8000,
4735     0x4000, 0x0001, 0x8000
4736 };
4737 static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] =
4738 {
4739     { { 2540, 0 }, { 21600 - 2540, 21600 } }
4740 };
4741 static const mso_CustomShape msoFlowChartPredefinedProcess =
4742 {
4743     (SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ),
4744     (sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
4745     NULL, 0,
4746     NULL,
4747     (SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4748     21600, 21600,
4749     0x80000000, 0x80000000,
4750     NULL, 0,
4751     NULL, 0     // handles
4752 };
4753 
4754 static const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] =
4755 {
4756     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4757 
4758     { 4230, 0 }, { 4230, 21600 },
4759 
4760     { 0, 4230 }, { 21600, 4230 }
4761 };
4762 static const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] =
4763 {
4764     0x4000, 0x0003, 0x6000, 0x8000,
4765     0x4000, 0x0001, 0x8000,
4766     0x4000, 0x0001, 0x8000
4767 };
4768 static const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] =
4769 {
4770     { { 4230, 4230 }, { 21600, 21600 } }
4771 };
4772 static const mso_CustomShape msoFlowChartInternalStorage =
4773 {
4774     (SvxMSDffVertPair*)mso_sptFlowChartInternalStorageVert, sizeof( mso_sptFlowChartInternalStorageVert ) / sizeof( SvxMSDffVertPair ),
4775     (sal_uInt16*)mso_sptFlowChartInternalStorageSegm, sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1,
4776     NULL, 0,
4777     NULL,
4778     (SvxMSDffTextRectangles*)mso_sptFlowChartInternalStorageTextRect, sizeof( mso_sptFlowChartInternalStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
4779     21600, 21600,
4780     0x80000000, 0x80000000,
4781     NULL, 0,
4782     NULL, 0     // handles
4783 };
4784 
4785 static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
4786 {
4787     { 0, 0 }, { 21600, 0 }, { 21600, 17360 },
4788     { 13050, 17220 }, { 13340, 20770 }, { 5620, 21600 },    // ccp
4789     { 2860, 21100 }, { 1850, 20700 }, { 0,  20120 }         // ccp
4790 };
4791 static const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
4792 {
4793     0x4000, 0x0002, 0x2002, 0x6000, 0x8000
4794 };
4795 static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] =
4796 {
4797     { { 0, 0 }, { 21600, 17360 } }
4798 };
4799 static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
4800 {
4801     { 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
4802 };
4803 static const mso_CustomShape msoFlowChartDocument =
4804 {
4805     (SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ),
4806     (sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
4807     NULL, 0,
4808     NULL,
4809     (SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4810     21600, 21600,
4811     0x80000000, 0x80000000,
4812     (SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4813     NULL, 0     // handles
4814 };
4815 
4816 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
4817 {
4818     { 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
4819     { 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
4820     { 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
4821     { 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 },                       // ccp
4822     { 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 },                            // ccp
4823 
4824     { 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
4825 
4826     { 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
4827 };
4828 static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
4829 {
4830     0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
4831     0x4000, 0xaa00, 0x0002, 0x8000,         // NO FILL
4832     0x4000, 0xaa00, 0x0002, 0x8000          // NO FILL
4833 };
4834 static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] =
4835 {
4836     { { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
4837 };
4838 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
4839 {
4840     { 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4841 };
4842 static const mso_CustomShape msoFlowChartMultidocument =
4843 {
4844     (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ),
4845     (sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
4846     NULL, 0,
4847     NULL,
4848     (SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4849     21600, 21600,
4850     0x80000000, 0x80000000,
4851     (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4852     NULL, 0     // handles
4853 };
4854 
4855 static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
4856 {
4857     { 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
4858     { 21600, 10800 }, { 18130, 21600 }
4859 };
4860 static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
4861 {
4862     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
4863 };
4864 static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] =
4865 {
4866     { { 1060, 3180 }, { 20540, 18420 } }
4867 };
4868 static const mso_CustomShape msoFlowChartTerminator =
4869 {
4870     (SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ),
4871     (sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
4872     NULL, 0,
4873     NULL,
4874     (SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4875     21600, 21600,
4876     0x80000000, 0x80000000,
4877     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4878     NULL, 0     // handles
4879 };
4880 
4881 static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
4882 {
4883     { 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
4884     { 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
4885 };
4886 static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] =
4887 {
4888     { { 4350, 0 }, { 17250, 21600 } }
4889 };
4890 static const mso_CustomShape msoFlowChartPreparation =
4891 {
4892     (SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ),
4893     NULL, 0,
4894     NULL, 0,
4895     NULL,
4896     (SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4897     21600, 21600,
4898     0x80000000, 0x80000000,
4899     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4900     NULL, 0     // handles
4901 };
4902 
4903 static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
4904 {
4905     { 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
4906 };
4907 static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] =
4908 {
4909     { { 0, 4300 }, { 21600, 21600 } }
4910 };
4911 static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
4912 {
4913     { 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4914 };
4915 static const mso_CustomShape msoFlowChartManualInput =
4916 {
4917     (SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ),
4918     NULL, 0,
4919     NULL, 0,
4920     NULL,
4921     (SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4922     21600, 21600,
4923     0x80000000, 0x80000000,
4924     (SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair ),
4925     NULL, 0     // handles
4926 };
4927 
4928 static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
4929 {
4930     { 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
4931 };
4932 static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] =
4933 {
4934     { { 4350, 0 }, { 17250, 21600 } }
4935 };
4936 static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
4937 {
4938     { 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
4939 };
4940 static const mso_CustomShape msoFlowChartManualOperation =
4941 {
4942     (SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ),
4943     NULL, 0,
4944     NULL, 0,
4945     NULL,
4946     (SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4947     21600, 21600,
4948     0x80000000, 0x80000000,
4949     (SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair ),
4950     NULL, 0     // handles
4951 };
4952 
4953 static const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] =
4954 {
4955     { 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
4956 };
4957 static const sal_uInt16 mso_sptFlowChartConnectorSegm[] =
4958 {
4959     0xa203, 0x6000, 0x8000
4960 };
4961 static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] =
4962 {
4963     { { 3180, 3180 }, { 18420, 18420 } }
4964 };
4965 static const mso_CustomShape msoFlowChartConnector =
4966 {
4967     (SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ),
4968     (sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
4969     NULL, 0,
4970     NULL,
4971     (SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4972     21600, 21600,
4973     0x80000000, 0x80000000,
4974     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
4975     NULL, 0     // handles
4976 };
4977 
4978 static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
4979 {
4980     { 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
4981     { 0, 17150 }, { 0, 0 }
4982 };
4983 static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] =
4984 {
4985     { { 0, 0 }, { 21600, 17150 } }
4986 };
4987 static const mso_CustomShape msoFlowChartOffpageConnector =
4988 {
4989     (SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ),
4990     NULL, 0,
4991     NULL, 0,
4992     NULL,
4993     (SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4994     21600, 21600,
4995     0x80000000, 0x80000000,
4996     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4997     NULL, 0     // handles
4998 };
4999 
5000 static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
5001 {
5002     { 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5003     { 0, 4300 }, { 4300, 0 }
5004 };
5005 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] =
5006 {
5007     { { 0, 4300 }, { 21600, 21600 } }
5008 };
5009 static const mso_CustomShape msoFlowChartPunchedCard =
5010 {
5011     (SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ),
5012     NULL, 0,
5013     NULL, 0,
5014     NULL,
5015     (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ),
5016     21600, 21600,
5017     0x80000000, 0x80000000,
5018     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5019     NULL, 0     // handles
5020 };
5021 
5022 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
5023 {
5024     { 0, 2230 },                                            // p
5025     { 820, 3990 }, { 3410, 3980 }, { 5370, 4360 },          // ccp
5026     { 7430, 4030 }, { 10110, 3890 }, { 10690, 2270 },       // ccp
5027     { 11440, 300 }, { 14200, 160 }, { 16150, 0 },           // ccp
5028     { 18670, 170 }, {  20690, 390 }, { 21600, 2230 },       // ccp
5029     { 21600, 19420 },                                       // p
5030     { 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 },   // ccp
5031     { 14710, 17370 }, { 11310, 17510 }, { 10770, 19430 },   // ccp
5032     { 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 },     // ccp
5033     { 3220, 21250 }, { 610, 21130 }, { 0, 19420 }           // ccp
5034 };
5035 static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
5036 {
5037     0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
5038 };
5039 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] =
5040 {
5041     { { 0, 4360 }, { 21600, 17240 } }
5042 };
5043 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
5044 {
5045     { 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
5046 };
5047 static const mso_CustomShape msoFlowChartPunchedTape =
5048 {
5049     (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ),
5050     (sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
5051     NULL, 0,
5052     NULL,
5053     (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5054     21600, 21600,
5055     0x80000000, 0x80000000,
5056     (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair ),
5057     NULL, 0     // handles
5058 };
5059 
5060 static const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] =
5061 {
5062     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5063 
5064     { 3100, 3100 },
5065     { 18500, 18500 },
5066 
5067     { 3100, 18500 },
5068     { 18500, 3100 }
5069 };
5070 static const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] =
5071 {
5072     0xa203, 0x6000, 0x8000,
5073     0x4000, 0x0001, 0x8000,
5074     0x4000, 0x0001, 0x8000
5075 };
5076 static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] =
5077 {
5078     { { 3100, 3100 }, { 18500, 18500 } }
5079 };
5080 static const mso_CustomShape msoFlowChartSummingJunction =
5081 {
5082     (SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ),
5083     (sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
5084     NULL, 0,
5085     NULL,
5086     (SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ),
5087     21600, 21600,
5088     0x80000000, 0x80000000,
5089     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5090     NULL, 0     // handles
5091 };
5092 
5093 static const SvxMSDffVertPair mso_sptFlowChartOrVert[] =
5094 {
5095     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5096 
5097     { 0, 10800 }, { 21600, 10800 },
5098 
5099     { 10800, 0 }, { 10800, 21600 }
5100 };
5101 static const sal_uInt16 mso_sptFlowChartOrSegm[] =
5102 {
5103     0xa203, 0x6000, 0x8000,
5104     0x4000, 0x0001, 0x8000,
5105     0x4000, 0x0001, 0x8000
5106 };
5107 static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] =
5108 {
5109     { { 3100, 3100 }, { 18500, 18500 } }
5110 };
5111 static const mso_CustomShape msoFlowChartOr =
5112 {
5113     (SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ),
5114     (sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1,
5115     NULL, 0,
5116     NULL,
5117     (SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ),
5118     21600, 21600,
5119     0x80000000, 0x80000000,
5120     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5121     NULL, 0     // handles
5122 };
5123 
5124 static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
5125 {
5126     { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
5127 };
5128 static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] =
5129 {
5130     { { 5400, 5400 }, { 16200, 16200 } }
5131 };
5132 static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
5133 {
5134     { 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
5135 };
5136 static const mso_CustomShape msoFlowChartCollate =
5137 {
5138     (SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ),
5139     NULL, 0,
5140     NULL, 0,
5141     NULL,
5142     (SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ),
5143     21600, 21600,
5144     0x80000000, 0x80000000,
5145     (SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair ),
5146     NULL, 0     // handles
5147 };
5148 
5149 static const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
5150 {
5151     { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
5152 
5153     { 0, 10800 }, { 21600, 10800 }
5154 };
5155 static const sal_uInt16 mso_sptFlowChartSortSegm[] =
5156 {
5157     0x4000, 0x0003, 0x6000, 0x8000,
5158     0x4000, 0x0001, 0x8000
5159 };
5160 static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] =
5161 {
5162     { { 5400, 5400 }, { 16200, 16200 } }
5163 };
5164 static const mso_CustomShape msoFlowChartSort =
5165 {
5166     (SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ),
5167     (sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1,
5168     NULL, 0,
5169     NULL,
5170     (SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ),
5171     21600, 21600,
5172     0x80000000, 0x80000000,
5173     NULL, 0,
5174     NULL, 0     // handles
5175 };
5176 
5177 static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
5178 {
5179     { 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
5180 };
5181 static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] =
5182 {
5183     { { 5400, 10800 }, { 16200, 21600 } }
5184 };
5185 static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
5186 {
5187     { 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
5188 };
5189 static const mso_CustomShape msoFlowChartExtract =
5190 {
5191     (SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ),
5192     NULL, 0,
5193     NULL, 0,
5194     NULL,
5195     (SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ),
5196     21600, 21600,
5197     0x80000000, 0x80000000,
5198     (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5199     NULL, 0     // handles
5200 };
5201 
5202 static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
5203 {
5204     { 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
5205 };
5206 static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] =
5207 {
5208     { { 5400, 0 }, { 16200, 10800 } }
5209 };
5210 static const mso_CustomShape msoFlowChartMerge =
5211 {
5212     (SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ),
5213     NULL, 0,
5214     NULL, 0,
5215     NULL,
5216     (SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5217     21600, 21600,
5218     0x80000000, 0x80000000,
5219     (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5220     NULL, 0     // handles
5221 };
5222 
5223 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
5224 {
5225     { 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
5226     { 18000, 10800 }, { 21600, 21600 }
5227 };
5228 static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
5229 {
5230     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5231 };
5232 static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] =
5233 {
5234     { { 3600, 0 }, { 18000, 21600 } }
5235 };
5236 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
5237 {
5238     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
5239 };
5240 static const mso_CustomShape msoFlowChartOnlineStorage =
5241 {
5242     (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ),
5243     (sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
5244     NULL, 0,
5245     NULL,
5246     (SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
5247     21600, 21600,
5248     0x80000000, 0x80000000,
5249     (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair ),
5250     NULL, 0     // handles
5251 };
5252 
5253 static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
5254 {
5255     { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 21600 },
5256     { 0, 0 }
5257 };
5258 static const sal_uInt16 mso_sptFlowChartDelaySegm[] =
5259 {
5260     0x4000, 0xa702, 0x0002, 0x6000, 0x8000
5261 };
5262 static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] =
5263 {
5264     { { 0, 3100 }, { 18500, 18500 } }
5265 };
5266 static const mso_CustomShape msoFlowChartDelay =
5267 {
5268     (SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ),
5269     (sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1,
5270     NULL, 0,
5271     NULL,
5272     (SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5273     21600, 21600,
5274     0x80000000, 0x80000000,
5275     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5276     NULL, 0     // handles
5277 };
5278 
5279 static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
5280 {
5281     { 20980, 18150 }, { 20980, 21600 }, { 10670, 21600 },
5282     { 4770, 21540 }, { 0, 16720 }, { 0, 10800 },            // ccp
5283     { 0, 4840 }, { 4840, 0 }, { 10800, 0 },                 // ccp
5284     { 16740, 0 }, { 21600, 4840 }, { 21600, 10800 },        // ccp
5285     { 21600, 13520 }, { 20550, 16160 }, { 18670, 18170 }    // ccp
5286 };
5287 static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
5288 {
5289     0x4000, 0x0002, 0x2004, 0x6000, 0x8000
5290 };
5291 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] =
5292 {
5293     { { 3100, 3100 }, { 18500, 18500 } }
5294 };
5295 static const mso_CustomShape msoFlowChartMagneticTape =
5296 {
5297     (SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ),
5298     (sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
5299     NULL, 0,
5300     NULL,
5301     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5302     21600, 21600,
5303     0x80000000, 0x80000000,
5304     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5305     NULL, 0     // handles
5306 };
5307 
5308 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
5309 {
5310     { 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
5311     { 10800, 21600 }, { 0, 18200 },
5312 
5313     { 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
5314 };
5315 static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
5316 {
5317     0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
5318     0x4000, 0xa802, 0x8000
5319 };
5320 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] =
5321 {
5322     { { 0, 6800 }, { 21600, 18200 } }
5323 };
5324 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
5325 {
5326     { 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
5327 };
5328 static const mso_CustomShape msoFlowChartMagneticDisk =
5329 {
5330     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ),
5331     (sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
5332     NULL, 0,
5333     NULL,
5334     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ),
5335     21600, 21600,
5336     0x80000000, 0x80000000,
5337     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair ),
5338     NULL, 0     // handles
5339 };
5340 
5341 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
5342 {
5343     { 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
5344     { 0, 10800 }, { 3400, 0 },
5345 
5346     { 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
5347 };
5348 static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
5349 {
5350     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
5351     0x4000, 0xa702, 0x8000
5352 };
5353 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] =
5354 {
5355     { { 3400, 0 }, { 14800, 21600 } }
5356 };
5357 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
5358 {
5359     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
5360 };
5361 static const mso_CustomShape msoFlowChartMagneticDrum =
5362 {
5363     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ),
5364     (sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
5365     NULL, 0,
5366     NULL,
5367     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ),
5368     21600, 21600,
5369     0x80000000, 0x80000000,
5370     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair ),
5371     NULL, 0     // handles
5372 };
5373 
5374 static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
5375 {
5376     { 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
5377     { 3600, 21600 }, { 0, 10800 }
5378 };
5379 static const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
5380 {
5381     0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
5382 };
5383 static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] =
5384 {
5385     { { 3600, 0 }, { 17800, 21600 } }
5386 };
5387 static const mso_CustomShape msoFlowChartDisplay =
5388 {
5389     (SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ),
5390     (sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
5391     NULL, 0,
5392     NULL,
5393     (SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5394     21600, 21600,
5395     0x80000000, 0x80000000,
5396     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5397     NULL, 0     // handles
5398 };
5399 
5400 static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
5401 {
5402     { 0, 0 },
5403     { 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5404     { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5405     { 0, 21600 },
5406     { 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5407     { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5408     { 21600, 21600 },
5409     { 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5410     { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5411     { 21600, 0 },
5412     { 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5413     { 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
5414     { 0, 0 }
5415 };
5416 static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
5417 {
5418     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },     //0x400
5419     { 0x2000, { DFF_Prop_adjust2Value, 0,10800 } },
5420     { 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } },     //0x402
5421     { 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } },
5422     { 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } },     //0x404
5423     { 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } },
5424     { 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } },  //0x406
5425     { 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } },
5426     { 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } }, //0x408
5427     { 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } },
5428     { 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } }, //0x40a
5429     { 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } },
5430     { 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } }, //0x40c
5431     { 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } },
5432     { 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } }, //0x40e
5433     { 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } },
5434     { 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } },  //0x410
5435     { 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } },
5436     { 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } },    //0x412
5437     { 0xa006, { 0x401, -1, 0x416 } },
5438     { 0x2003, { 0x400, 0, 0 } },                        //0x414
5439     { 0x2003, { 0x401, 0, 0 } },
5440     { 0xa000, { 0x414, 0, 0x415 } },                    //0x416
5441     { 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } },
5442     { 0x6006, { 0x401, 0x416, -1 } },                   //0x418
5443     { 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } },
5444     { 0x6006, { 0x419, 0x41b, -1 } },                   //0x41a
5445     { 0xa006, { 0x400, -1, 0x41c } },
5446     { 0xa000, { 0x415, 0, 0x414 } },                    //0x41c
5447     { 0x6006, { 0x419, 0x41e, -1 } },
5448     { 0x6006, { 0x400, 0x41c, -1 } },                   //0x41e
5449     { 0x2000, { DFF_Prop_adjustValue, 0, 21600 } },
5450     { 0x6006, { 0x41f, 0x421, -1 } },                   //0x420
5451     { 0x6006, { 0x401, 0x416, -1 } },
5452     { 0x6006, { 0x41f, 0x423, -1 } },                   //0x422
5453     { 0xa006, { 0x401, -1, 0x416 } },
5454     { 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } },   //0x424
5455     { 0x6006, { 0x400, 0x41c, -1 } },
5456     { 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } },   //0x426
5457     { 0xa006, { 0x400, -1, 0x41c } },
5458     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         //0x428
5459     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }
5460 };
5461 static const sal_Int32 mso_sptWedgeRectCalloutDefault[] =
5462 {
5463     2, 1400, 25920
5464 };
5465 static const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] =
5466 {
5467     { { 0, 0 }, { 21600, 21600 } }
5468 };
5469 static const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] =
5470 {
5471     { 10800, 0 }, { 0, 10800 },  { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I }
5472 };
5473 static const SvxMSDffHandle mso_sptCalloutHandle[] =
5474 {
5475     {
5476         0,
5477         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff
5478     }
5479 };
5480 static const mso_CustomShape msoWedgeRectCallout =
5481 {
5482     (SvxMSDffVertPair*)mso_sptWedgeRectCalloutVert, sizeof( mso_sptWedgeRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5483     NULL, 0,
5484     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5485     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5486     (SvxMSDffTextRectangles*)mso_sptWedgeRectCalloutTextRect, sizeof( mso_sptWedgeRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5487     21600, 21600,
5488     0x80000000, 0x80000000,
5489     (SvxMSDffVertPair*)mso_sptWedgeRectCalloutGluePoints, sizeof( mso_sptWedgeRectCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5490     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5491 };
5492 static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
5493 {
5494     { 3590, 0 },
5495     { 0, 3590 },
5496     { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5497     { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5498     { 3590, 21600 },
5499     { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5500     { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5501     { 21600, 18010 },
5502     { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5503     { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5504     { 18010, 0 },
5505     { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5506     { 8970, 0 }, { 16 MSO_I, 17 MSO_I }
5507 };
5508 static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
5509 {
5510     0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
5511 };
5512 static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
5513 {
5514     { { 800, 800 }, { 20800, 20800 } }
5515 };
5516 static const mso_CustomShape msoWedgeRRectCallout =
5517 {
5518     (SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5519     (sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
5520     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5521     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5522     (SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5523     21600, 21600,
5524     0x80000000, 0x80000000,
5525     NULL, 0,
5526     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5527 };
5528 static const SvxMSDffVertPair mso_sptBalloonVert[] =
5529 {
5530     { 3590, 0 },
5531     { 0, 3590 },
5532     { 0, 14460 },
5533     { 3590, 18050 },
5534     { 40 MSO_I, 21600 }, { 5420, 18050 },
5535     { 18010, 18050 },
5536     { 21600, 14460 },
5537     { 21600, 3590 },
5538     { 18010, 0 }
5539 };
5540 static const sal_uInt16 mso_sptBalloonSegm[] =
5541 {
5542     0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000
5543 };
5544 static const SvxMSDffHandle mso_sptBalloonHandle[] =
5545 {
5546     {
5547         MSDFF_HANDLE_FLAGS_RANGE,
5548         0x100, 1, 10800, 10800, 0, 8990, 0x80000000, 0x7fffffff
5549     }
5550 };
5551 static const SvxMSDffTextRectangles mso_sptBalloonTextRect[] =
5552 {
5553     { { 800, 800 }, { 20800, 17250 } }
5554 };
5555 static const mso_CustomShape msoBalloon =
5556 {
5557     (SvxMSDffVertPair*)mso_sptBalloonVert, sizeof( mso_sptBalloonVert ) / sizeof( SvxMSDffVertPair ),
5558     (sal_uInt16*)mso_sptBalloonSegm, sizeof( mso_sptBalloonSegm ) >> 1,
5559     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5560     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5561     (SvxMSDffTextRectangles*)mso_sptBalloonTextRect, sizeof( mso_sptBalloonTextRect ) / sizeof( SvxMSDffTextRectangles ),
5562     21600, 21600,
5563     0x80000000, 0x80000000,
5564     NULL, 0,
5565     (SvxMSDffHandle*)mso_sptBalloonHandle, sizeof( mso_sptBalloonHandle ) / sizeof( SvxMSDffHandle )        // handles
5566 };
5567 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] =
5568 {
5569     { 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I }
5570 };
5571 static const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] =
5572 {
5573     0xa504, 0x0001, 0x6001, 0x8000
5574 };
5575 static const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] =
5576 {
5577     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },     // 00 rad x
5578     { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },    // 01 rad y
5579     { 0x6001, { 0x400, 0x400, 1 } },                    // 02 rad x^2
5580     { 0x6001, { 0x401, 0x401, 1 } },                    // 03 rad y^2
5581     { 0x6000, { 0x402, 0x403, 0 } },                    // 04
5582     { 0x200d, { 0x404, 0, 0 } },                        // 05
5583     { 0x2000, { 0x405, 0, 10800 } },                    // 06 > 0 ? spur needs to be drawn : 10800
5584     { 0x6008, { 0x400, 0x401, 0 } },                    // 07 atan2 -> angle
5585     { 0x2000, { 0x407, 0, 10 } },                       // 08
5586     { 0x2000, { 0x407, 10, 0 } },                       // 09
5587     { 0x400a, { 10800, 0x407, 0 } },                    // 0a
5588     { 0x4009, { 10800, 0x407, 0 } },                    // 0b
5589     { 0x2000, { 0x40a, 10800, 0 } },                    // 0c
5590     { 0x2000, { 0x40b, 10800, 0 } },                    // 0d
5591     { 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } }, // 0e
5592     { 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f
5593     { 0x400a, { 10800, 0x408, 0 } },                    // 10
5594     { 0x4009, { 10800, 0x408, 0 } },                    // 11
5595     { 0x2000, { 0x410, 10800, 0 } },                    // 12
5596     { 0x2000, { 0x411, 10800, 0 } },                    // 13
5597     { 0x400a, { 10800, 0x409, 0 } },                    // 14
5598     { 0x4009, { 10800, 0x409, 0 } },                    // 15
5599     { 0x2000, { 0x414, 10800, 0 } },                    // 16
5600     { 0x2000, { 0x415, 10800, 0 } }                     // 17
5601 };
5602 static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
5603 {
5604     2, 1350, 25920
5605 };
5606 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
5607 {
5608     { 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
5609 };
5610 static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
5611 {
5612     { { 3200, 3200 }, { 18400, 18400 } }
5613 };
5614 static const mso_CustomShape msoWedgeEllipseCallout =
5615 {
5616     (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ),
5617     (sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
5618     (SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5619     (sal_Int32*)mso_sptWedgeEllipseCalloutDefault,
5620     (SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5621     21600, 21600,
5622     0x80000000, 0x80000000,
5623     (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5624     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5625 };
5626 
5627 static const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
5628 {
5629     { 1930,7160 },                                      // p
5630     { 1530,4490 }, { 3400,1970 }, { 5270,1970 },        // ccp
5631     { 5860,1950 }, { 6470,2210 }, { 6970,2600 },        // ccp
5632     { 7450,1390 }, { 8340,650 }, { 9340,650 },          // ccp
5633     { 10004,690 }, { 10710,1050 }, { 11210,1700 },      // ccp
5634     { 11570,630 }, { 12330,0 }, { 13150,0 },            // ccp
5635     { 13840,0 }, { 14470,460 }, { 14870,1160 },         // ccp
5636     { 15330,440 }, { 16020,0 }, { 16740,0 },            // ccp
5637     { 17910,0 }, { 18900,1130 }, { 19110,2710 },        // ccp
5638     { 20240,3150 }, { 21060,4580 }, { 21060,6220 },     // ccp
5639     { 21060,6720 }, { 21000,7200 }, { 20830,7660 },     // ccp
5640     { 21310,8460 }, { 21600,9450 }, { 21600,10460 },    // ccp
5641     { 21600,12750 }, { 20310,14680 }, { 18650,15010 },  // ccp
5642     { 18650,17200 }, { 17370,18920 }, { 15770,18920 },  // ccp
5643     { 15220,18920 }, { 14700,18710 }, { 14240,18310 },  // ccp
5644     { 13820,20240 }, { 12490,21600 }, { 11000,21600 },  // ccp
5645     { 9890,21600 }, { 8840,20790 }, { 8210,19510 },     // ccp
5646     { 7620,20000 }, { 7930,20290 }, { 6240,20290 },     // ccp
5647     { 4850,20290 }, { 3570,19280 }, { 2900,17640 },     // ccp
5648     { 1300,17600 }, { 480,16300 }, { 480,14660 },       // ccp
5649     { 480,13900 }, { 690,13210 }, { 1070,12640 },       // ccp
5650     { 380,12160 }, { 0,11210 }, { 0,10120 },            // ccp
5651     { 0,8590 }, { 840,7330 }, { 1930,7160 },            // ccp
5652 
5653     { 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 },         // pccp
5654     { 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 },         // pccp
5655     { 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 },     // pccp
5656     { 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 },     // pccp
5657     { 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 },     // pccp
5658     { 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 },     // pccp
5659     { 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 }, // pccp
5660     { 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 }, // pccp
5661     { 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 },     // pccp
5662     { 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 },     // pccp
5663     { 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 },     // pccp
5664 
5665     { 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 },                 // circ1
5666     { 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 },                 // circ2
5667     { 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 }                      // circ3
5668 };
5669 static const sal_uInt16 mso_sptCloudCalloutSegm[] =
5670 {
5671     0x4000, 0x2016, 0x6001, 0x8000,
5672     0x4000, 0x2001, 0xaa00, 0x8000,
5673     0x4000, 0x2001, 0xaa00, 0x8000,
5674     0x4000, 0x2001, 0xaa00, 0x8000,
5675     0x4000, 0x2001, 0xaa00, 0x8000,
5676     0x4000, 0x2001, 0xaa00, 0x8000,
5677     0x4000, 0x2001, 0xaa00, 0x8000,
5678     0x4000, 0x2001, 0xaa00, 0x8000,
5679     0x4000, 0x2001, 0xaa00, 0x8000,
5680     0x4000, 0x2001, 0xaa00, 0x8000,
5681     0x4000, 0x2001, 0xaa00, 0x8000,
5682     0x4000, 0x2001, 0xaa00, 0x8000,
5683     0xa203, 0x6001, 0x8000,
5684     0xa203, 0x6001, 0x8000,
5685     0xa203, 0x6001, 0x8000
5686 };
5687 static const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] =
5688 {
5689     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
5690     { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },
5691     { 0x6008, { 0x400, 0x401, 0 } },
5692     { 0x400a, { 10800, 0x402, 0 } },                    // 3
5693     { 0x4009, { 10800, 0x402, 0 } },                    // 4
5694     { 0x2000, { 0x403, 10800, 0 } },                    // 5
5695     { 0x2000, { 0x404, 10800, 0 } },                    // 6
5696     { 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } },     // 7
5697     { 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } },     // 8
5698     { 0x2001, { 0x407, 1, 3 } },                        // 9
5699     { 0x2001, { 0x408, 1, 3 } },                        // 0xa
5700     { 0x2001, { 0x407, 2, 3 } },                        // 0xb
5701     { 0x2001, { 0x408, 2, 3 } },                        // 0xc
5702     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         // 0xd
5703     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 0xe
5704     { 0x2001, { 0x403, 1, 10800 / 900 } },              // 0xf  taking half x distance of the radius from the first bobble
5705     { 0x2001, { 0x404, 1, 10800 / 900 } },              // 0x10
5706     { 0xe000, { 0x409, 0x405, 0x40f } },                // 0x11
5707     { 0xe000, { 0x40a, 0x406, 0x410 } },                // 0x12
5708     { 0x6000, { 0x40b, 0x405, 0 } },                    // 0x13
5709     { 0x6000, { 0x40c, 0x406, 0 } }                     // 0x14
5710 };
5711 static const sal_Int32 mso_sptCloudCalloutDefault[] =
5712 {
5713     2, 1350, 25920
5714 };
5715 static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
5716 {
5717     { { 3000, 3320 }, { 17110, 17330 } }
5718 };
5719 static const mso_CustomShape msoCloudCallout =
5720 {
5721     (SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ),
5722     (sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1,
5723     (SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5724     (sal_Int32*)mso_sptCloudCalloutDefault,
5725     (SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5726     21600, 21600,
5727     0x80000000, 0x80000000,
5728     NULL, 0,
5729     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5730 };
5731 
5732 static const SvxMSDffVertPair mso_sptWaveVert[] =   // adjustment1 : 0 - 4460
5733 {                                                   // adjustment2 : 8640 - 12960
5734     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5735     { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5736 };
5737 static const SvxMSDffCalculationData mso_sptWaveCalc[] =
5738 {
5739     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
5740     { 0x8000, { 21600, 0, 0x400 } },            //401
5741     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5742     { 0x2000, { 0x402, 0, 10800 } },            //403 -2160 -> 2160 (horz.adj)
5743     { 0x2001, { 0x403, 2, 1 } },                //404 -4320 -> 4320 (horz.adj)
5744     { 0x2003, { 0x404, 0, 0 } },                //405 abs( 0x404 )  (horz.adj)
5745     { 0x8000, { 4320, 0, 0x405 } },             //406
5746     { 0xa006, { 0x403, 0, 0x405 } },            //407
5747     { 0x4001, { 15800, 0x400, 4460 } },         //408 0 -> 15800    (vert.adj)
5748     { 0xa000, { 0x400, 0, 0x408 } },            //409
5749     { 0x6000, { 0x400, 0x408, 0 } },            //40a
5750     { 0x8000, { 21600, 0, 0x404 } },            //40b
5751     { 0x6006, { 0x403, 0x40b, 21600 } },        //40c
5752     { 0xa000, { 0x40c, 0, 0x407 } },            //40d width between p0 and p1
5753     { 0x2001, { 0x405, 1, 2 } },                //40e
5754     { 0xa000, { 0x407, 7200, 0x40e } },         //40f
5755     { 0x6000, { 0x40c, 0x40e, 7200 } },         //410
5756     { 0x2001, { 0x40d, 1, 2 } },                //411 1/2 width
5757     { 0x6000, { 0x407, 0x411, 0 } },            //412 top center glue xpos
5758     { 0x8000, { 21600, 0, 0x412 } },            //413 bottom center glue xpos
5759     { 0x2001, { 0x405, 1, 2 } },                //414 left glue x pos
5760     { 0x8000, { 21600, 0, 0x414 } },            //415 right glue x pos
5761     { 0x2001, { 0x400, 2, 1 } },                //416 y1 (textbox)
5762     { 0x8000, { 21600, 0, 0x416 } },            //417 y2 (textbox)
5763 
5764     { 0x8000, { 21600, 0, 0x407 } },            //418 p2
5765 
5766     { 0x8000, { 21600, 0, 0x40f } },            //419 c
5767     { 0x6000, { 0x401, 0x408, 0 } },            //41a
5768 
5769     { 0x8000, { 21600, 0, 0x410 } },            //41b c
5770     { 0xa000, { 0x401, 0, 0x408 } },            //41c
5771 
5772     { 0x8000, { 21600, 0, 0x40c } }             //41d p3
5773 };
5774 static const SvxMSDffVertPair mso_sptWaveGluePoints[] =
5775 {
5776     { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5777 };
5778 static const sal_uInt16 mso_sptWaveSegm[] =
5779 {
5780     0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
5781 };
5782 static const SvxMSDffHandle mso_sptWaveHandle[] =
5783 {
5784     {   MSDFF_HANDLE_FLAGS_RANGE,
5785         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4460 },
5786     {   MSDFF_HANDLE_FLAGS_RANGE,
5787         0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5788 };
5789 static const sal_Int32 mso_sptWaveDefault[] =
5790 {
5791     2, 1400, 10800
5792 };
5793 static const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
5794 {
5795     { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5796 };
5797 static const mso_CustomShape msoWave =
5798 {
5799     (SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ),
5800     (sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1,
5801     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5802     (sal_Int32*)mso_sptWaveDefault,
5803     (SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5804     21600, 21600,
5805     0x80000000, 0x80000000,
5806     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5807     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
5808 };
5809 
5810 static const SvxMSDffVertPair mso_sptDoubleWaveVert[] = // adjustment1 : 0 - 2230
5811 {                                                       // adjustment2 : 8640 - 12960
5812     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5813     { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5814 };
5815 static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
5816 {
5817     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
5818     { 0x8000, { 21600, 0, 0x400 } },            //401
5819     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5820     { 0x2000, { 0x402, 0, 10800 } },            //403 -2160 -> 2160 (horz.adj)
5821     { 0x2001, { 0x403, 2, 1 } },                //404 -4320 -> 4320 (horz.adj)
5822     { 0x2003, { 0x404, 0, 0 } },                //405 abs( 0x404 )  (horz.adj)
5823     { 0x8000, { 4320, 0, 0x405 } },             //406 -> not used
5824     { 0xa006, { 0x403, 0, 0x405 } },            //407
5825     { 0x4001, { 7900, 0x400, 2230 } },          //408 0 -> 7900 (vert.adj)
5826     { 0xa000, { 0x400, 0, 0x408 } },            //409
5827     { 0x6000, { 0x400, 0x408, 0 } },            //40a
5828     { 0x8000, { 21600, 0, 0x404 } },            //40b
5829     { 0x6006, { 0x403, 0x40b, 21600 } },        //40c
5830     { 0xa000, { 0x40c, 0, 0x407 } },            //40d width between p0 and p1
5831     { 0x2001, { 0x405, 1, 2 } },                //40e
5832     { 0xa000, { 0x407, 3600, 0x40e } },         //40f
5833     { 0x6000, { 0x40c, 0x40e, 3600 } },         //410
5834     { 0x2001, { 0x40d, 1, 2 } },                //411 1/2 width
5835     { 0x6000, { 0x407, 0x411, 0 } },            //412 top center glue xpos
5836     { 0x8000, { 21600, 0, 0x412 } },            //413 bottom center glue xpos
5837     { 0x2001, { 0x405, 1, 2 } },                //414 left glue x pos
5838     { 0x8000, { 21600, 0, 0x414 } },            //415 right glue x pos
5839     { 0x2001, { 0x400, 2, 1 } },                //416 y1 (textbox)
5840     { 0x8000, { 21600, 0, 0x416 } },            //417 y2 (textbox)
5841 
5842     { 0x8000, { 21600, 0, 0x407 } },            //418 p2
5843 
5844     { 0x8000, { 21600, 0, 0x40f } },            //419 c
5845     { 0x6000, { 0x401, 0x408, 0 } },            //41a
5846 
5847     { 0x8000, { 21600, 0, 0x410 } },            //41b c
5848     { 0xa000, { 0x401, 0, 0x408 } },            //41c
5849 
5850     { 0x8000, { 21600, 0, 0x40c } },            //41d p3
5851     { 0xa000, { 0x412, 0, 0x40e } },            //41e
5852     { 0x6000, { 0x412, 0x40e, 0 } },            //41f
5853     { 0xa000, { 0x413, 0, 0x40e } },            //420
5854     { 0x6000, { 0x413, 0x40e, 0 } }             //421
5855 };
5856 static const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] =
5857 {
5858     { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5859 };
5860 static const sal_uInt16 mso_sptDoubleWaveSegm[] =
5861 {
5862     0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
5863 };
5864 static const SvxMSDffHandle mso_sptDoubleWaveHandle[] =
5865 {
5866     {   MSDFF_HANDLE_FLAGS_RANGE,
5867         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 2230 },
5868     {   MSDFF_HANDLE_FLAGS_RANGE,
5869         0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5870 };
5871 static const sal_Int32 mso_sptDoubleWaveDefault[] =
5872 {
5873     2, 1400, 10800
5874 };
5875 static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
5876 {
5877     { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5878 };
5879 static const mso_CustomShape msoDoubleWave =
5880 {
5881     (SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ),
5882     (sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1,
5883     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5884     (sal_Int32*)mso_sptDoubleWaveDefault,
5885     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5886     21600, 21600,
5887     0x80000000, 0x80000000,
5888     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5889     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
5890 };
5891 
5892 // for each shapetype a bit of 1 is indicating that the shape is NOT filled by default
5893 static const sal_uInt16 mso_DefaultFillingTable[] =
5894 {
5895     0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000
5896 };
5897 sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType )
5898 {
5899     sal_Bool bIsFilledByDefault = sal_True;
5900     sal_uInt32 i = (sal_uInt32)eSpType;
5901     if ( i < 0x100 )
5902         bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5903     return bIsFilledByDefault;
5904 }
5905 sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType )
5906 {
5907     sal_Int16 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::SEGMENTS;
5908     const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType );
5909     if ( pDefCustomShape && pDefCustomShape->nGluePoints )
5910         nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::CUSTOM;
5911     else
5912     {
5913         switch( eSpType )
5914         {
5915             case mso_sptRectangle :
5916             case mso_sptRoundRectangle :
5917             case mso_sptPictureFrame :
5918             case mso_sptFlowChartProcess :
5919             case mso_sptFlowChartPredefinedProcess :
5920             case mso_sptFlowChartInternalStorage :
5921             case mso_sptTextPlainText :
5922             case mso_sptTextBox :
5923             case mso_sptVerticalScroll :
5924             case mso_sptHorizontalScroll :
5925                 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::RECT;
5926             default: break;
5927         }
5928     }
5929     return nGluePointType;
5930 }
5931 
5932 // for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default
5933 // #i28269#
5934 static const sal_uInt16 mso_DefaultStrokingTable[] =
5935 {
5936     0x0000, 0x0000, 0x0000, 0x0000,
5937     0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame)
5938     0x0000, 0x0000, 0x0000, 0x0000,
5939     0x0000, 0x0000, 0x0000, 0x0000
5940 };
5941 // #i28269#
5942 sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType )
5943 {
5944     sal_Bool bIsStrokedByDefault = sal_True;
5945     sal_uInt32 i = (sal_uInt32)eSpType;
5946     if ( i < 0x100 )
5947         bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5948     return bIsStrokedByDefault;
5949 }
5950 
5951 static const sal_uInt16 msoSortFilledObjectsToBackTable[] =
5952 {
5953     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
5954 };
5955 sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType )
5956 {
5957     sal_Bool bSortFilledObjectsToBackByDefault = sal_True;
5958     sal_uInt32 i = (sal_uInt32)eSpType;
5959     if ( i < 0x100 )
5960         bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0;
5961     return bSortFilledObjectsToBackByDefault;
5962 }
5963 
5964 static const SvxMSDffVertPair mso_sptFontWorkVert[] =
5965 {
5966     { 0, 0 }, { 21600, 0 }, { 0, 21600 }, { 21600, 21600 }
5967 };
5968 static const sal_uInt16 mso_sptFontWorkSegm[] =
5969 {
5970     0x4000, 0x0001, 0x8000,
5971     0x4000, 0x0001, 0x8000
5972 };
5973 static const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] =
5974 {
5975     { { 0, 0 }, { 21600, 21600 } }
5976 };
5977 static const mso_CustomShape msoFontWork =
5978 {
5979     (SvxMSDffVertPair*)mso_sptFontWorkVert, sizeof( mso_sptFontWorkVert ) / sizeof( SvxMSDffVertPair ),
5980     (sal_uInt16*)mso_sptFontWorkSegm, sizeof( mso_sptFontWorkSegm ) >> 1,
5981     NULL, 0,
5982     NULL,
5983     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
5984     21600, 21600,
5985     0x80000000, 0x80000000,
5986     NULL, 0,
5987     NULL, 0 // Handles
5988 };
5989 
5990 static const SvxMSDffVertPair mso_sptTextPlainTextVert[] =
5991 {
5992     { 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 }
5993 };
5994 static const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] =   // adjustment1 : 6629 - 14971
5995 {
5996     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
5997     { 0x2001, { 0x400, 2, 1 } },
5998     { 0x2003, { 0x401, 0, 0 } },
5999     { 0xa006, { 0x401, 0, 0x402 } },        // x1(3)
6000     { 0x8000, { 21600, 0, 0x402 } },
6001     { 0x6006, { 0x401, 0x404, 21600 } },    // x2(5)
6002     { 0x6006, { 0x401, 0x402, 0 } },        // x2
6003     { 0xa006, { 0x401, 21600, 0x404 } }     // x3(7)
6004 };
6005 static const sal_uInt16 mso_sptTextPlainTextSegm[] =
6006 {
6007     0x4000, 0x0001, 0x8000,
6008     0x4000, 0x0001, 0x8000
6009 };
6010 static const SvxMSDffHandle mso_sptTextPlainTextHandle[] =
6011 {
6012     {   MSDFF_HANDLE_FLAGS_RANGE,
6013         0x100, 21600, 10800, 10800, 6629, 14971, 0x80000000, 0x7fffffff }
6014 };
6015 static const mso_CustomShape msoTextPlainText =
6016 {
6017     (SvxMSDffVertPair*)mso_sptTextPlainTextVert, sizeof( mso_sptTextPlainTextVert ) / sizeof( SvxMSDffVertPair ),
6018     (sal_uInt16*)mso_sptTextPlainTextSegm, sizeof( mso_sptTextPlainTextSegm ) >> 1,
6019     (SvxMSDffCalculationData*)mso_sptTextPlainTextCalc, sizeof( mso_sptTextPlainTextCalc ) / sizeof( SvxMSDffCalculationData ),
6020     (sal_Int32*)mso_sptDefault10800,
6021     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6022     21600, 21600,
6023     0x80000000, 0x80000000,
6024     NULL, 0,
6025     (SvxMSDffHandle*)mso_sptTextPlainTextHandle, sizeof( mso_sptTextPlainTextHandle ) / sizeof( SvxMSDffHandle )
6026 };
6027 
6028 static const SvxMSDffVertPair mso_sptTextStopVert[] =
6029 {
6030     { 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I },
6031     { 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I }
6032 };
6033 static const SvxMSDffCalculationData mso_sptTextStopCalc[] =    // adjustment1 : 3080 - 10800
6034 {
6035     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6036     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6037 };
6038 static const sal_uInt16 mso_sptTextStopSegm[] =
6039 {
6040     0x4000, 0x0003, 0x8000,
6041     0x4000, 0x0003, 0x8000
6042 };
6043 static const sal_Int32 mso_sptTextStopDefault[] =
6044 {
6045     1, 2700
6046 };
6047 static const SvxMSDffHandle mso_sptTextStopHandle[] =
6048 {
6049     {   MSDFF_HANDLE_FLAGS_RANGE,
6050         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 3080, 10800 }
6051 };
6052 static const mso_CustomShape msoTextStop =
6053 {
6054     (SvxMSDffVertPair*)mso_sptTextStopVert, sizeof( mso_sptTextStopVert ) / sizeof( SvxMSDffVertPair ),
6055     (sal_uInt16*)mso_sptTextStopSegm, sizeof( mso_sptTextStopSegm ) >> 1,
6056     (SvxMSDffCalculationData*)mso_sptTextStopCalc, sizeof( mso_sptTextStopCalc ) / sizeof( SvxMSDffCalculationData ),
6057     (sal_Int32*)mso_sptTextStopDefault,
6058     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6059     21600, 21600,
6060     0x80000000, 0x80000000,
6061     NULL, 0,
6062     (SvxMSDffHandle*)mso_sptTextStopHandle, sizeof( mso_sptTextStopHandle ) / sizeof( SvxMSDffHandle )
6063 };
6064 
6065 static const SvxMSDffVertPair mso_sptTextTriangleVert[] =
6066 {
6067     { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 }
6068 };
6069 static const SvxMSDffCalculationData mso_sptTextTriangleCalc[] =    // adjustment1 : 6629 - 14971
6070 {
6071     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
6072 };
6073 static const sal_uInt16 mso_sptTextTriangleSegm[] =
6074 {
6075     0x4000, 0x0002, 0x8000,
6076     0x4000, 0x0001, 0x8000
6077 };
6078 static const SvxMSDffHandle mso_sptTextTriangleHandle[] =
6079 {
6080     {   MSDFF_HANDLE_FLAGS_RANGE,
6081         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
6082 };
6083 static const mso_CustomShape msoTextTriangle =
6084 {
6085     (SvxMSDffVertPair*)mso_sptTextTriangleVert, sizeof( mso_sptTextTriangleVert ) / sizeof( SvxMSDffVertPair ),
6086     (sal_uInt16*)mso_sptTextTriangleSegm, sizeof( mso_sptTextTriangleSegm ) >> 1,
6087     (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6088     (sal_Int32*)mso_sptDefault10800,
6089     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6090     21600, 21600,
6091     0x80000000, 0x80000000,
6092     NULL, 0,
6093     (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6094 };
6095 static const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] =
6096 {
6097     { 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6098 };
6099 static const sal_uInt16 mso_sptTextTriangleInvertedSegm[] =
6100 {
6101     0x4000, 0x0001, 0x8000,
6102     0x4000, 0x0002, 0x8000
6103 };
6104 static const mso_CustomShape msoTextTriangleInverted =
6105 {
6106     (SvxMSDffVertPair*)mso_sptTextTriangleInvertedVert, sizeof( mso_sptTextTriangleInvertedVert ) / sizeof( SvxMSDffVertPair ),
6107     (sal_uInt16*)mso_sptTextTriangleInvertedSegm, sizeof( mso_sptTextTriangleInvertedSegm ) >> 1,
6108     (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6109     (sal_Int32*)mso_sptDefault10800,
6110     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6111     21600, 21600,
6112     0x80000000, 0x80000000,
6113     NULL, 0,
6114     (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6115 };
6116 
6117 static const SvxMSDffVertPair mso_sptTextChevronVert[] =
6118 {
6119     { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 }
6120 };
6121 static const SvxMSDffCalculationData mso_sptTextChevronCalc[] = // adjustment1 : 6629 - 14971
6122 {
6123     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6124     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6125 };
6126 static const sal_uInt16 mso_sptTextChevronSegm[] =
6127 {
6128     0x4000, 0x0002, 0x8000,
6129     0x4000, 0x0002, 0x8000
6130 };
6131 static const SvxMSDffHandle mso_sptTextChevronHandle[] =
6132 {
6133     {   MSDFF_HANDLE_FLAGS_RANGE,
6134         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6135 };
6136 static const mso_CustomShape msoTextChevron =
6137 {
6138     (SvxMSDffVertPair*)mso_sptTextChevronVert, sizeof( mso_sptTextChevronVert ) / sizeof( SvxMSDffVertPair ),
6139     (sal_uInt16*)mso_sptTextChevronSegm, sizeof( mso_sptTextChevronSegm ) >> 1,
6140     (SvxMSDffCalculationData*)mso_sptTextChevronCalc, sizeof( mso_sptTextChevronCalc ) / sizeof( SvxMSDffCalculationData ),
6141     (sal_Int32*)mso_sptDefault5400,
6142     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6143     21600, 21600,
6144     0x80000000, 0x80000000,
6145     NULL, 0,
6146     (SvxMSDffHandle*)mso_sptTextChevronHandle, sizeof( mso_sptTextChevronHandle ) / sizeof( SvxMSDffHandle )
6147 };
6148 
6149 static const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] =
6150 {
6151     { 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6152 };
6153 static const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] = // adjustment1 : 6629 - 14971
6154 {
6155     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6156     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6157 };
6158 static const sal_uInt16 mso_sptTextChevronInvertedSegm[] =
6159 {
6160     0x4000, 0x0002, 0x8000,
6161     0x4000, 0x0002, 0x8000
6162 };
6163 static const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] =
6164 {
6165     {   MSDFF_HANDLE_FLAGS_RANGE,
6166         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6167 };
6168 static const mso_CustomShape msoTextChevronInverted =
6169 {
6170     (SvxMSDffVertPair*)mso_sptTextChevronInvertedVert, sizeof( mso_sptTextChevronInvertedVert ) / sizeof( SvxMSDffVertPair ),
6171     (sal_uInt16*)mso_sptTextChevronInvertedSegm, sizeof( mso_sptTextChevronInvertedSegm ) >> 1,
6172     (SvxMSDffCalculationData*)mso_sptTextChevronInvertedCalc, sizeof( mso_sptTextChevronInvertedCalc ) / sizeof( SvxMSDffCalculationData ),
6173     (sal_Int32*)mso_sptDefault16200,
6174     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6175     21600, 21600,
6176     0x80000000, 0x80000000,
6177     NULL, 0,
6178     (SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, sizeof( mso_sptTextChevronInvertedHandle ) / sizeof( SvxMSDffHandle )
6179 };
6180 
6181 static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
6182 {
6183     { 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
6184     { 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
6185 };
6186 static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] = // adjustment1 : 6629 - 14971
6187 {
6188     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6189     { 0x8000, { 21600, 0, 0x400 } }
6190 };
6191 static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
6192 {
6193     0xA203, 0x8000,
6194     0xA203, 0x8000
6195 };
6196 static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
6197 {
6198     {   MSDFF_HANDLE_FLAGS_RANGE,
6199         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6200 };
6201 static const mso_CustomShape msoTextRingOutside =
6202 {
6203     (SvxMSDffVertPair*)mso_sptTextRingOutsideVert, sizeof( mso_sptTextRingOutsideVert ) / sizeof( SvxMSDffVertPair ),
6204     (sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1,
6205     (SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, sizeof( mso_sptTextRingOutsideCalc ) / sizeof( SvxMSDffCalculationData ),
6206     (sal_Int32*)mso_sptDefault16200,
6207     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6208     21600, 21600,
6209     0x80000000, 0x80000000,
6210     NULL, 0,
6211     (SvxMSDffHandle*)mso_sptTextRingOutsideHandle, sizeof( mso_sptTextRingOutsideHandle ) / sizeof( SvxMSDffHandle )
6212 };
6213 
6214 static const SvxMSDffVertPair mso_sptTextFadeRightVert[] =
6215 {
6216     { 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I }
6217 };
6218 static const SvxMSDffCalculationData mso_sptTextFadeCalc[] =
6219 {
6220     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6221     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6222 };
6223 static const sal_uInt16 mso_sptTextFadeSegm[] =
6224 {
6225     0x4000, 0x0001, 0x8000,
6226     0x4000, 0x0001, 0x8000
6227 };
6228 static const SvxMSDffHandle mso_sptTextFadeRightHandle[] =
6229 {
6230     {   MSDFF_HANDLE_FLAGS_RANGE,
6231         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6232 };
6233 static const mso_CustomShape msoTextFadeRight =
6234 {
6235     (SvxMSDffVertPair*)mso_sptTextFadeRightVert, sizeof( mso_sptTextFadeRightVert ) / sizeof( SvxMSDffVertPair ),
6236     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6237     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6238     (sal_Int32*)mso_sptDefault7200,
6239     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6240     21600, 21600,
6241     0x80000000, 0x80000000,
6242     NULL, 0,
6243     (SvxMSDffHandle*)mso_sptTextFadeRightHandle, sizeof( mso_sptTextFadeRightHandle ) / sizeof( SvxMSDffHandle )
6244 };
6245 
6246 static const SvxMSDffVertPair mso_sptTextFadeLeftVert[] =
6247 {
6248     { 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 }
6249 };
6250 static const SvxMSDffHandle mso_sptTextFadeLeftHandle[] =
6251 {
6252     {   MSDFF_HANDLE_FLAGS_RANGE,
6253         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6254 };
6255 static const mso_CustomShape msoTextFadeLeft =
6256 {
6257     (SvxMSDffVertPair*)mso_sptTextFadeLeftVert, sizeof( mso_sptTextFadeLeftVert ) / sizeof( SvxMSDffVertPair ),
6258     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6259     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6260     (sal_Int32*)mso_sptDefault7200,
6261     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6262     21600, 21600,
6263     0x80000000, 0x80000000,
6264     NULL, 0,
6265     (SvxMSDffHandle*)mso_sptTextFadeLeftHandle, sizeof( mso_sptTextFadeLeftHandle ) / sizeof( SvxMSDffHandle )
6266 };
6267 
6268 static const SvxMSDffVertPair mso_sptTextFadeUpVert[] =
6269 {
6270     { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 }
6271 };
6272 static const SvxMSDffHandle mso_sptTextFadeUpHandle[] =
6273 {
6274     {   MSDFF_HANDLE_FLAGS_RANGE,
6275         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6276 };
6277 static const mso_CustomShape msoTextFadeUp =
6278 {
6279     (SvxMSDffVertPair*)mso_sptTextFadeUpVert, sizeof( mso_sptTextFadeUpVert ) / sizeof( SvxMSDffVertPair ),
6280     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6281     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6282     (sal_Int32*)mso_sptDefault7200,
6283     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6284     21600, 21600,
6285     0x80000000, 0x80000000,
6286     NULL, 0,
6287     (SvxMSDffHandle*)mso_sptTextFadeUpHandle, sizeof( mso_sptTextFadeUpHandle ) / sizeof( SvxMSDffHandle )
6288 };
6289 
6290 static const SvxMSDffVertPair mso_sptTextFadeDownVert[] =
6291 {
6292     { 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
6293 };
6294 static const SvxMSDffHandle mso_sptTextFadeDownHandle[] =
6295 {
6296     {   MSDFF_HANDLE_FLAGS_RANGE,
6297         0x100, 21600, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6298 };
6299 static const mso_CustomShape msoTextFadeDown =
6300 {
6301     (SvxMSDffVertPair*)mso_sptTextFadeDownVert, sizeof( mso_sptTextFadeDownVert ) / sizeof( SvxMSDffVertPair ),
6302     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6303     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6304     (sal_Int32*)mso_sptDefault7200,
6305     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6306     21600, 21600,
6307     0x80000000, 0x80000000,
6308     NULL, 0,
6309     (SvxMSDffHandle*)mso_sptTextFadeDownHandle, sizeof( mso_sptTextFadeDownHandle ) / sizeof( SvxMSDffHandle )
6310 };
6311 
6312 static const SvxMSDffVertPair mso_sptTextSlantUpVert[] =
6313 {
6314     { 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I }
6315 };
6316 static const SvxMSDffHandle mso_sptTextSlantUpHandle[] =
6317 {
6318     {   MSDFF_HANDLE_FLAGS_RANGE,
6319         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 15400 }
6320 };
6321 static const mso_CustomShape msoTextSlantUp =
6322 {
6323     (SvxMSDffVertPair*)mso_sptTextSlantUpVert, sizeof( mso_sptTextSlantUpVert ) / sizeof( SvxMSDffVertPair ),
6324     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6325     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6326     (sal_Int32*)mso_sptDefault12000,
6327     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6328     21600, 21600,
6329     0x80000000, 0x80000000,
6330     NULL, 0,
6331     (SvxMSDffHandle*)mso_sptTextSlantUpHandle, sizeof( mso_sptTextSlantUpHandle ) / sizeof( SvxMSDffHandle )
6332 };
6333 
6334 static const SvxMSDffVertPair mso_sptTextSlantDownVert[] =
6335 {
6336     { 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6337 };
6338 static const SvxMSDffHandle mso_sptTextSlantDownHandle[] =
6339 {
6340     {   MSDFF_HANDLE_FLAGS_RANGE,
6341         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6342 };
6343 static const mso_CustomShape msoTextSlantDown =
6344 {
6345     (SvxMSDffVertPair*)mso_sptTextSlantDownVert, sizeof( mso_sptTextSlantDownVert ) / sizeof( SvxMSDffVertPair ),
6346     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6347     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6348     (sal_Int32*)mso_sptDefault12000,
6349     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6350     21600, 21600,
6351     0x80000000, 0x80000000,
6352     NULL, 0,
6353     (SvxMSDffHandle*)mso_sptTextSlantDownHandle, sizeof( mso_sptTextSlantDownHandle ) / sizeof( SvxMSDffHandle )
6354 };
6355 
6356 static const SvxMSDffVertPair mso_sptTextCascadeUpVert[] =
6357 {
6358     { 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I }
6359 };
6360 static const SvxMSDffCalculationData mso_sptTextCascadeCalc[] =
6361 {
6362     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6363     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
6364     { 0x2001, { 0x401, 1, 4 } }
6365 };
6366 static const SvxMSDffHandle mso_sptTextCascadeUpHandle[] =
6367 {
6368     {   MSDFF_HANDLE_FLAGS_RANGE,
6369         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6370 };
6371 static const mso_CustomShape msoTextCascadeUp =
6372 {
6373     (SvxMSDffVertPair*)mso_sptTextCascadeUpVert, sizeof( mso_sptTextCascadeUpVert ) / sizeof( SvxMSDffVertPair ),
6374     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6375     (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6376     (sal_Int32*)mso_sptDefault9600,
6377     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6378     21600, 21600,
6379     0x80000000, 0x80000000,
6380     NULL, 0,
6381     (SvxMSDffHandle*)mso_sptTextCascadeUpHandle, sizeof( mso_sptTextCascadeUpHandle ) / sizeof( SvxMSDffHandle )
6382 };
6383 
6384 static const SvxMSDffVertPair mso_sptTextCascadeDownVert[] =
6385 {
6386     { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6387 };
6388 static const SvxMSDffHandle mso_sptTextCascadeDownHandle[] =
6389 {
6390     {   MSDFF_HANDLE_FLAGS_RANGE,
6391         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6392 };
6393 static const mso_CustomShape msoTextCascadeDown =
6394 {
6395     (SvxMSDffVertPair*)mso_sptTextCascadeDownVert, sizeof( mso_sptTextCascadeDownVert ) / sizeof( SvxMSDffVertPair ),
6396     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6397     (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6398     (sal_Int32*)mso_sptDefault9600,
6399     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6400     21600, 21600,
6401     0x80000000, 0x80000000,
6402     NULL, 0,
6403     (SvxMSDffHandle*)mso_sptTextCascadeDownHandle, sizeof( mso_sptTextCascadeDownHandle ) / sizeof( SvxMSDffHandle )
6404 };
6405 
6406 static const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] =
6407 {
6408     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
6409 };
6410 static const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] =
6411 {
6412     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6413     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6414     { 0x2000, { 0x400, 10800, 0 } },
6415     { 0x2000, { 0x401, 10800, 0 } },
6416     { 0x8000, { 21600, 0, 0x402 } }
6417 };
6418 static const sal_uInt16 mso_sptTextArchUpCurveSegm[] =
6419 {
6420     0xA504, 0x8000      // clockw�se arc
6421 };
6422 static const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] =
6423 {
6424     {   MSDFF_HANDLE_FLAGS_POLAR,
6425         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6426 };
6427 static const sal_Int32 mso_sptTextArchUpCurveDefault[] =
6428 {
6429     1, 180
6430 };
6431 static const mso_CustomShape msoTextArchUpCurve =
6432 {
6433     (SvxMSDffVertPair*)mso_sptTextArchUpCurveVert, sizeof( mso_sptTextArchUpCurveVert ) / sizeof( SvxMSDffVertPair ),
6434     (sal_uInt16*)mso_sptTextArchUpCurveSegm, sizeof( mso_sptTextArchUpCurveSegm ) >> 1,
6435     (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6436     (sal_Int32*)mso_sptTextArchUpCurveDefault,
6437     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6438     21600, 21600,
6439     0x80000000, 0x80000000,
6440     NULL, 0,
6441     (SvxMSDffHandle*)mso_sptTextArchUpCurveHandle, sizeof( mso_sptTextArchUpCurveHandle ) / sizeof( SvxMSDffHandle )
6442 };
6443 
6444 static const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] =
6445 {
6446     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6447 };
6448 static const sal_uInt16 mso_sptTextArchDownCurveSegm[] =
6449 {
6450     0xA304, 0x8000      // counter clockwise arc to
6451 };
6452 static const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] =
6453 {
6454     {   MSDFF_HANDLE_FLAGS_POLAR,
6455         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6456 };
6457 static const sal_Int32 mso_sptTextArchDownCurveDefault[] =
6458 {
6459     1, 0
6460 };
6461 static const mso_CustomShape msoTextArchDownCurve =
6462 {
6463     (SvxMSDffVertPair*)mso_sptTextArchDownCurveVert, sizeof( mso_sptTextArchDownCurveVert ) / sizeof( SvxMSDffVertPair ),
6464     (sal_uInt16*)mso_sptTextArchDownCurveSegm, sizeof( mso_sptTextArchDownCurveSegm ) >> 1,
6465     (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6466     (sal_Int32*)mso_sptTextArchDownCurveDefault,
6467     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6468     21600, 21600,
6469     0x80000000, 0x80000000,
6470     NULL, 0,
6471     (SvxMSDffHandle*)mso_sptTextArchDownCurveHandle, sizeof( mso_sptTextArchDownCurveHandle ) / sizeof( SvxMSDffHandle )
6472 };
6473 
6474 static const SvxMSDffVertPair mso_sptTextCircleCurveVert[] =
6475 {
6476     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }
6477 };
6478 static const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] =
6479 {
6480     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6481     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6482     { 0x2000, { 0x400, 10800, 0 } },
6483     { 0x2000, { 0x401, 10800, 0 } },
6484     { 0x8000, { 21600, 0, 0x403 } }
6485 };
6486 static const sal_uInt16 mso_sptTextCircleCurveSegm[] =
6487 {
6488     0xA504, 0x8000      // clockwise arc to
6489 };
6490 static const SvxMSDffHandle mso_sptTextCircleCurveHandle[] =
6491 {
6492     {   MSDFF_HANDLE_FLAGS_POLAR,
6493         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6494 };
6495 static const sal_Int32 mso_sptTextCircleCurveDefault[] =
6496 {
6497     1, -179
6498 };
6499 static const mso_CustomShape msoTextCircleCurve =
6500 {
6501     (SvxMSDffVertPair*)mso_sptTextCircleCurveVert, sizeof( mso_sptTextCircleCurveVert ) / sizeof( SvxMSDffVertPair ),
6502     (sal_uInt16*)mso_sptTextCircleCurveSegm, sizeof( mso_sptTextCircleCurveSegm ) >> 1,
6503     (SvxMSDffCalculationData*)mso_sptTextCircleCurveCalc, sizeof( mso_sptTextCircleCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6504     (sal_Int32*)mso_sptTextCircleCurveDefault,
6505     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6506     21600, 21600,
6507     0x80000000, 0x80000000,
6508     NULL, 0,
6509     (SvxMSDffHandle*)mso_sptTextCircleCurveHandle, sizeof( mso_sptTextCircleCurveHandle ) / sizeof( SvxMSDffHandle )
6510 };
6511 
6512 static const SvxMSDffVertPair mso_sptTextButtonCurveVert[] =
6513 {
6514     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6515     { 0, 10800 }, { 21600, 10800 },
6516     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6517 };
6518 static const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] =
6519 {
6520     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6521     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6522     { 0x2000, { 0x400, 10800, 0 } },
6523     { 0x2000, { 0x401, 10800, 0 } },
6524     { 0x8000, { 21600, 0, 0x402 } },
6525     { 0x8000, { 21600, 0, 0x403 } }
6526 };
6527 static const sal_uInt16 mso_sptTextButtonCurveSegm[] =
6528 {
6529     0xA504, 0x8000,     // clockwise arc
6530     0x4000, 0x0001, 0x8000,
6531     0xA304, 0x8000      // counter clockwise
6532 };
6533 static const SvxMSDffHandle mso_sptTextButtonCurveHandle[] =
6534 {
6535     {   MSDFF_HANDLE_FLAGS_POLAR,
6536         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6537 };
6538 static const sal_Int32 mso_sptTextButtonCurveDefault[] =
6539 {
6540     1, 180
6541 };
6542 static const mso_CustomShape msoTextButtonCurve =
6543 {
6544     (SvxMSDffVertPair*)mso_sptTextButtonCurveVert, sizeof( mso_sptTextButtonCurveVert ) / sizeof( SvxMSDffVertPair ),
6545     (sal_uInt16*)mso_sptTextButtonCurveSegm, sizeof( mso_sptTextButtonCurveSegm ) >> 1,
6546     (SvxMSDffCalculationData*)mso_sptTextButtonCurveCalc, sizeof( mso_sptTextButtonCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6547     (sal_Int32*)mso_sptTextButtonCurveDefault,
6548     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6549     21600, 21600,
6550     0x80000000, 0x80000000,
6551     NULL, 0,
6552     (SvxMSDffHandle*)mso_sptTextButtonCurveHandle, sizeof( mso_sptTextButtonCurveHandle ) / sizeof( SvxMSDffHandle )
6553 };
6554 
6555 static const SvxMSDffVertPair mso_sptTextArchUpPourVert[] =
6556 {
6557     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6558     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I }
6559 };
6560 static const SvxMSDffCalculationData mso_sptTextArchPourCalc[] =
6561 {
6562     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6563     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6564     { 0x2000, { 0x400, 10800, 0 } },
6565     { 0x2000, { 0x401, 10800, 0 } },
6566     { 0x8000, { 21600, 0, 0x402 } },
6567     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6568     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6569     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6570     { 0x2000, { 0x406, 10800, 0 } },                // 8
6571     { 0x2000, { 0x407, 10800, 0 } },
6572     { 0x8000, { 21600, 0, 0x408 } },                // 10
6573     { 0x8000, { 21600, 0, 0x405 } }
6574 };
6575 static const sal_uInt16 mso_sptTextArchUpPourSegm[] =
6576 {
6577     0xA504, 0x8000, 0xA504, 0x8000
6578 };
6579 static const SvxMSDffHandle mso_sptTextArchPourHandle[] =
6580 {
6581     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6582         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6583 };
6584 static const sal_Int32 mso_sptTextArchUpPourDefault[] =
6585 {
6586     2, 180, 5400
6587 };
6588 static const mso_CustomShape msoTextArchUpPour =
6589 {
6590     (SvxMSDffVertPair*)mso_sptTextArchUpPourVert, sizeof( mso_sptTextArchUpPourVert ) / sizeof( SvxMSDffVertPair ),
6591     (sal_uInt16*)mso_sptTextArchUpPourSegm, sizeof( mso_sptTextArchUpPourSegm ) >> 1,
6592     (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6593     (sal_Int32*)mso_sptTextArchUpPourDefault,
6594     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6595     21600, 21600,
6596     0x80000000, 0x80000000,
6597     NULL, 0,
6598     (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6599 };
6600 
6601 static const SvxMSDffVertPair mso_sptTextArchDownPourVert[] =
6602 {
6603     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I },
6604     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6605 };
6606 static const sal_uInt16 mso_sptTextArchDownPourSegm[] =
6607 {
6608     0xA304, 0x8000, 0xA304, 0x8000
6609 };
6610 static const sal_Int32 mso_sptTextArchDownPourDefault[] =
6611 {
6612     2, 0, 5400
6613 };
6614 static const mso_CustomShape msoTextArchDownPour =
6615 {
6616     (SvxMSDffVertPair*)mso_sptTextArchDownPourVert, sizeof( mso_sptTextArchDownPourVert ) / sizeof( SvxMSDffVertPair ),
6617     (sal_uInt16*)mso_sptTextArchDownPourSegm, sizeof( mso_sptTextArchDownPourSegm ) >> 1,
6618     (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6619     (sal_Int32*)mso_sptTextArchDownPourDefault,
6620     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6621     21600, 21600,
6622     0x80000000, 0x80000000,
6623     NULL, 0,
6624     (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6625 };
6626 
6627 static const SvxMSDffVertPair mso_sptTextCirclePourVert[] =
6628 {
6629     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I },
6630     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I }
6631 };
6632 static const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] =
6633 {
6634     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6635     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6636     { 0x2000, { 0x400, 10800, 0 } },
6637     { 0x2000, { 0x401, 10800, 0 } },
6638     { 0x8000, { 21600, 0, 0x403 } },
6639     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6640     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6641     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6642     { 0x2000, { 0x406, 10800, 0 } },                // 8
6643     { 0x2000, { 0x407, 10800, 0 } },
6644     { 0x8000, { 21600, 0, 0x409 } },                // 10
6645     { 0x8000, { 21600, 0, 0x405 } },
6646     { 0x000, { 21600, 0, 0 } }
6647 };
6648 static const sal_uInt16 mso_sptTextCirclePourSegm[] =
6649 {
6650     0xA504, 0x8000, 0xA504, 0x8000
6651 };
6652 static const SvxMSDffHandle mso_sptTextCirclePourHandle[] =
6653 {
6654     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6655         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6656 };
6657 static const sal_Int32 mso_sptTextCirclePourDefault[] =
6658 {
6659     2,  -179, 5400
6660 };
6661 static const mso_CustomShape msoTextCirclePour =
6662 {
6663     (SvxMSDffVertPair*)mso_sptTextCirclePourVert, sizeof( mso_sptTextCirclePourVert ) / sizeof( SvxMSDffVertPair ),
6664     (sal_uInt16*)mso_sptTextCirclePourSegm, sizeof( mso_sptTextCirclePourSegm ) >> 1,
6665     (SvxMSDffCalculationData*)mso_sptTextCirclePourCalc, sizeof( mso_sptTextCirclePourCalc ) / sizeof( SvxMSDffCalculationData ),
6666     (sal_Int32*)mso_sptTextCirclePourDefault,
6667     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6668     21600, 21600,
6669     0x80000000, 0x80000000,
6670     NULL, 0,
6671     (SvxMSDffHandle*)mso_sptTextCirclePourHandle, sizeof( mso_sptTextCirclePourHandle ) / sizeof( SvxMSDffHandle )
6672 };
6673 
6674 static const SvxMSDffVertPair mso_sptTextButtonPourVert[] =
6675 {
6676     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6677     { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I },
6678     { 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I },
6679     { 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I },
6680     { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I },
6681     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6682 };
6683 static const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] =
6684 {
6685     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },                 // 0x00
6686     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },                 // 0x01
6687     { 0x2000, { 0x400, 10800, 0 } },                                // 0x02
6688     { 0x2000, { 0x401, 10800, 0 } },                                // 0x03
6689     { 0x8000, { 21600, 0, 0x402 } },                                // 0x04
6690     { 0x8000, { 21600, 0, 0x403 } },                                // 0x05
6691 
6692     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },                // 0x06
6693     { 0x8000, { 21600, 0, 0x406 } },                                // 0x07
6694 
6695     { 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x08
6696     { 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x09
6697     { 0x2000, { 0x408, 10800, 0 } },    // 0x0a
6698     { 0x2000, { 0x409, 10800, 0 } },    // 0x0b
6699     { 0x8000, { 21600, 0, 0x40a } },    // 0x0c
6700     { 0x8000, { 21600, 0, 0x40b } },    // 0x0d
6701     { 0x2001, { 0x406, 1, 2 } },        // 0x0e
6702     { 0x4000, { 10800, 0x40e, 0 } },    // 0x0f
6703     { 0x8000, { 10800, 0, 0x40e } },    // 0x10
6704     { 0x6001, { 0x40e, 0x40e, 1 } },    // 0x11
6705     { 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } },    // 0x12
6706     { 0xA000, { 0x412, 0, 0x411 } },    // 0x13
6707     { 0x200d, { 0x413, 0, 0 } },        // 0x14
6708     { 0x4000, { 10800, 0x414, 0 } },    // 0x15
6709     { 0x8000, { 10800, 0, 0x414 } }     // 0x16
6710 };
6711 static const sal_uInt16 mso_sptTextButtonPourSegm[] =
6712 {
6713     0xA504, 0x8000,     // clockwise arc
6714     0xA504, 0x8000,     // clockwise arc
6715     0x4000, 0x0001, 0x8000,
6716     0x4000, 0x0001, 0x8000,
6717     0xA304, 0x8000,     // counter clockwise
6718     0xA304, 0x8000      // counter clockwise
6719 };
6720 static const SvxMSDffHandle mso_sptTextButtonPourHandle[] =
6721 {
6722     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6723         0x101, 0x100, 10800, 10800, 4320, 10800, 0x80000000, 0x7fffffff }
6724 };
6725 static const sal_Int32 mso_sptTextButtonPourDefault[] =
6726 {
6727     2, 180, 5400
6728 };
6729 static const mso_CustomShape msoTextButtonPour =
6730 {
6731     (SvxMSDffVertPair*)mso_sptTextButtonPourVert, sizeof( mso_sptTextButtonPourVert ) / sizeof( SvxMSDffVertPair ),
6732     (sal_uInt16*)mso_sptTextButtonPourSegm, sizeof( mso_sptTextButtonPourSegm ) >> 1,
6733     (SvxMSDffCalculationData*)mso_sptTextButtonPourCalc, sizeof( mso_sptTextButtonPourCalc ) / sizeof( SvxMSDffCalculationData ),
6734     (sal_Int32*)mso_sptTextButtonPourDefault,
6735     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6736     21600, 21600,
6737     0x80000000, 0x80000000,
6738     NULL, 0,
6739     (SvxMSDffHandle*)mso_sptTextButtonPourHandle, sizeof( mso_sptTextButtonPourHandle ) / sizeof( SvxMSDffHandle )
6740 };
6741 
6742 static const SvxMSDffVertPair mso_sptTextCurveUpVert[] =
6743 {
6744     { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6745     { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6746 };
6747 static const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] =
6748 {
6749     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6750     { 0x4001, { 14250, 0x400, 12170 } },        // 401
6751     { 0x4001, { 12800, 0x400, 12170 } },        // 402
6752     { 0x4001, { 6380, 0x400, 12170 } },         // 403
6753     { 0x8000, { 21600, 0, 0x403 } }             // 404
6754 };
6755 static const sal_uInt16 mso_sptTextCurveUpSegm[] =
6756 {
6757     0x4000, 0x2001, 0x8000,
6758     0x4000, 0x2002, 0x8000
6759 };
6760 static const SvxMSDffHandle mso_sptTextCurveUpHandle[] =
6761 {
6762     {   MSDFF_HANDLE_FLAGS_RANGE,
6763         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6764 };
6765 static const sal_Int32 mso_sptTextCurveUpDefault[] =
6766 {
6767     1, 9900
6768 };
6769 static const mso_CustomShape msoTextCurveUp =
6770 {
6771     (SvxMSDffVertPair*)mso_sptTextCurveUpVert, sizeof( mso_sptTextCurveUpVert ) / sizeof( SvxMSDffVertPair ),
6772     (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6773     (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6774     (sal_Int32*)mso_sptTextCurveUpDefault,
6775     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6776     21600, 21600,
6777     0x80000000, 0x80000000,
6778     NULL, 0,
6779     (SvxMSDffHandle*)mso_sptTextCurveUpHandle, sizeof( mso_sptTextCurveUpHandle ) / sizeof( SvxMSDffHandle )
6780 };
6781 
6782 static const SvxMSDffVertPair mso_sptTextCurveDownVert[] =
6783 {
6784 //  { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6785     { 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I },
6786 
6787 //  { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6788     { 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I }
6789 };
6790 static const SvxMSDffHandle mso_sptTextCurveDownHandle[] =
6791 {
6792     {   MSDFF_HANDLE_FLAGS_RANGE,
6793         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6794 };
6795 static const mso_CustomShape msoTextCurveDown =
6796 {
6797     (SvxMSDffVertPair*)mso_sptTextCurveDownVert, sizeof( mso_sptTextCurveDownVert ) / sizeof( SvxMSDffVertPair ),
6798     (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6799     (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6800     (sal_Int32*)mso_sptTextCurveUpDefault,
6801     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6802     21600, 21600,
6803     0x80000000, 0x80000000,
6804     NULL, 0,
6805     (SvxMSDffHandle*)mso_sptTextCurveDownHandle, sizeof( mso_sptTextCurveDownHandle ) / sizeof( SvxMSDffHandle )
6806 };
6807 
6808 static const SvxMSDffVertPair mso_sptTextCanUpVert[] =
6809 {
6810     { 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I },
6811     { 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 }
6812 };
6813 static const SvxMSDffCalculationData mso_sptTextCanUpCalc[] =
6814 {
6815     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 400
6816     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
6817     { 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402
6818     { 0x4001, { 5470, 0x402, 7200 } },              // 403
6819     { 0x4000, { 16130, 0x403, 0 } }                 // 404
6820 };
6821 static const sal_uInt16 mso_sptTextCanUpSegm[] =
6822 {
6823     0x4000, 0x2002, 0x8000,
6824     0x4000, 0x2002, 0x8000
6825 };
6826 static const SvxMSDffHandle mso_sptTextCanUpHandle[] =
6827 {
6828     {   MSDFF_HANDLE_FLAGS_RANGE,
6829         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
6830 };
6831 static const sal_Int32 mso_sptTextCanUpDefault[] =
6832 {
6833     1, 18500
6834 };
6835 static const mso_CustomShape msoTextCanUp =
6836 {
6837     (SvxMSDffVertPair*)mso_sptTextCanUpVert, sizeof( mso_sptTextCanUpVert ) / sizeof( SvxMSDffVertPair ),
6838     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6839     (SvxMSDffCalculationData*)mso_sptTextCanUpCalc, sizeof( mso_sptTextCanUpCalc ) / sizeof( SvxMSDffCalculationData ),
6840     (sal_Int32*)mso_sptTextCanUpDefault,
6841     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6842     21600, 21600,
6843     0x80000000, 0x80000000,
6844     NULL, 0,
6845     (SvxMSDffHandle*)mso_sptTextCanUpHandle, sizeof( mso_sptTextCanUpHandle ) / sizeof( SvxMSDffHandle )
6846 };
6847 
6848 static const SvxMSDffVertPair mso_sptTextCanDownVert[] =
6849 {
6850     { 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 },
6851     { 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I }
6852 };
6853 static const SvxMSDffCalculationData mso_sptTextCanDownCalc[] =
6854 {
6855     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 400
6856     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
6857     { 0x4001, { 5470, 0x400, 7200 } }               // 402
6858 };
6859 static const SvxMSDffHandle mso_sptTextCanDownHandle[] =
6860 {
6861     {   MSDFF_HANDLE_FLAGS_RANGE,
6862         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
6863 };
6864 static const sal_Int32 mso_sptTextCanDownDefault[] =
6865 {
6866     1, 3100
6867 };
6868 static const mso_CustomShape msoTextCanDown =
6869 {
6870     (SvxMSDffVertPair*)mso_sptTextCanDownVert, sizeof( mso_sptTextCanDownVert ) / sizeof( SvxMSDffVertPair ),
6871     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6872     (SvxMSDffCalculationData*)mso_sptTextCanDownCalc, sizeof( mso_sptTextCanDownCalc ) / sizeof( SvxMSDffCalculationData ),
6873     (sal_Int32*)mso_sptTextCanDownDefault,
6874     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6875     21600, 21600,
6876     0x80000000, 0x80000000,
6877     NULL, 0,
6878     (SvxMSDffHandle*)mso_sptTextCanDownHandle, sizeof( mso_sptTextCanDownHandle ) / sizeof( SvxMSDffHandle )
6879 };
6880 
6881 static const SvxMSDffVertPair mso_sptTextInflateVert[] =
6882 {
6883     { 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I },
6884     { 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I }
6885 };
6886 static const SvxMSDffCalculationData mso_sptTextInflateCalc[] =
6887 {
6888     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6889     { 0x4001, { 1530, 0x400, 4650 } },          // 401
6890     { 0x8000, { 21600, 0, 0x400 } },            // 402
6891     { 0x8000, { 21600, 0, 0x401 } }             // 403
6892 };
6893 static const SvxMSDffHandle mso_sptTextInflateHandle[] =
6894 {
6895     {   MSDFF_HANDLE_FLAGS_RANGE,
6896         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4650 }
6897 };
6898 static const sal_Int32 mso_sptTextInflateDefault[] =
6899 {
6900     1, 2950
6901 };
6902 static const mso_CustomShape msoTextInflate =
6903 {
6904     (SvxMSDffVertPair*)mso_sptTextInflateVert, sizeof( mso_sptTextInflateVert ) / sizeof( SvxMSDffVertPair ),
6905     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6906     (SvxMSDffCalculationData*)mso_sptTextInflateCalc, sizeof( mso_sptTextInflateCalc ) / sizeof( SvxMSDffCalculationData ),
6907     (sal_Int32*)mso_sptTextInflateDefault,
6908     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6909     21600, 21600,
6910     0x80000000, 0x80000000,
6911     NULL, 0,
6912     (SvxMSDffHandle*)mso_sptTextInflateHandle, sizeof( mso_sptTextInflateHandle ) / sizeof( SvxMSDffHandle )
6913 };
6914 
6915 static const SvxMSDffVertPair mso_sptTextDeflateVert[] =
6916 {
6917     { 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 },
6918     { 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 }
6919 };
6920 static const SvxMSDffCalculationData mso_sptTextDeflateCalc[] =
6921 {
6922     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6923     { 0x2001, { 0x400, 5320, 7100 } },          // 401
6924     { 0x8000, { 21600, 0, 0x400 } },            // 402
6925     { 0x8000, { 21600, 0, 0x401 } }             // 403
6926 };
6927 static const SvxMSDffHandle mso_sptTextDeflateHandle[] =
6928 {
6929     {   MSDFF_HANDLE_FLAGS_RANGE,
6930         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 8100 }
6931 };
6932 static const mso_CustomShape msoTextDeflate =
6933 {
6934     (SvxMSDffVertPair*)mso_sptTextDeflateVert, sizeof( mso_sptTextDeflateVert ) / sizeof( SvxMSDffVertPair ),
6935     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6936     (SvxMSDffCalculationData*)mso_sptTextDeflateCalc, sizeof( mso_sptTextDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
6937     (sal_Int32*)mso_sptDefault8100,
6938     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6939     21600, 21600,
6940     0x80000000, 0x80000000,
6941     NULL, 0,
6942     (SvxMSDffHandle*)mso_sptTextDeflateHandle, sizeof( mso_sptTextDeflateHandle ) / sizeof( SvxMSDffHandle )
6943 };
6944 
6945 static const SvxMSDffVertPair mso_sptTextInflateBottomVert[] =
6946 {
6947     { 0, 0 }, { 21600, 0 },
6948     { 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I }
6949 };
6950 static const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] =
6951 {
6952     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6953     { 0x2000, { 0x400, 0, 11150 } },            // 401 0->10450
6954     { 0x2001, { 0x401, 3900, 10450 } },         // 402
6955     { 0x2000, { 0x402, 17700, 0 } }             // 403
6956 };
6957 static const sal_uInt16 mso_sptTextInflateBottomSegm[] =
6958 {
6959     0x4000, 0x0001, 0x8000,
6960     0x4000, 0x2002, 0x8000
6961 };
6962 static const SvxMSDffHandle mso_sptTextInflateBottomHandle[] =
6963 {
6964     {   MSDFF_HANDLE_FLAGS_RANGE,
6965         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 11150, 21600 }
6966 };
6967 static const sal_Int32 mso_sptTextInflateBottomDefault[] =
6968 {
6969     1, 14700
6970 };
6971 static const mso_CustomShape msoTextInflateBottom =
6972 {
6973     (SvxMSDffVertPair*)mso_sptTextInflateBottomVert, sizeof( mso_sptTextInflateBottomVert ) / sizeof( SvxMSDffVertPair ),
6974     (sal_uInt16*)mso_sptTextInflateBottomSegm, sizeof( mso_sptTextInflateBottomSegm ) >> 1,
6975     (SvxMSDffCalculationData*)mso_sptTextInflateBottomCalc, sizeof( mso_sptTextInflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
6976     (sal_Int32*)mso_sptTextInflateBottomDefault,
6977     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6978     21600, 21600,
6979     0x80000000, 0x80000000,
6980     NULL, 0,
6981     (SvxMSDffHandle*)mso_sptTextInflateBottomHandle, sizeof( mso_sptTextInflateBottomHandle ) / sizeof( SvxMSDffHandle )
6982 };
6983 
6984 static const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] =
6985 {
6986     { 0, 0 }, { 21600, 0 },
6987     { 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 }
6988 };
6989 static const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] =
6990 {
6991     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6992     { 0x2000, { 0x400, 0, 1350 } },             // 401 0->20250
6993     { 0x2001, { 0x401, 12070, 20250 } },        // 402
6994     { 0x2000, { 0x402, 9530, 0 } }              // 403
6995 };
6996 static const sal_uInt16 mso_sptTextDeflateBottomSegm[] =
6997 {
6998     0x4000, 0x0001, 0x8000,
6999     0x4000, 0x2002, 0x8000
7000 };
7001 static const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] =
7002 {
7003     {   MSDFF_HANDLE_FLAGS_RANGE,
7004         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1350, 21600 }
7005 };
7006 static const sal_Int32 mso_sptTextDeflateBottomDefault[] =
7007 {
7008     1, 11500
7009 };
7010 static const mso_CustomShape msoTextDeflateBottom =
7011 {
7012     (SvxMSDffVertPair*)mso_sptTextDeflateBottomVert, sizeof( mso_sptTextDeflateBottomVert ) / sizeof( SvxMSDffVertPair ),
7013     (sal_uInt16*)mso_sptTextDeflateBottomSegm, sizeof( mso_sptTextDeflateBottomSegm ) >> 1,
7014     (SvxMSDffCalculationData*)mso_sptTextDeflateBottomCalc, sizeof( mso_sptTextDeflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
7015     (sal_Int32*)mso_sptTextDeflateBottomDefault,
7016     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7017     21600, 21600,
7018     0x80000000, 0x80000000,
7019     NULL, 0,
7020     (SvxMSDffHandle*)mso_sptTextDeflateBottomHandle, sizeof( mso_sptTextDeflateBottomHandle ) / sizeof( SvxMSDffHandle )
7021 };
7022 
7023 static const SvxMSDffVertPair mso_sptTextInflateTopVert[] =
7024 {
7025     { 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I },
7026     { 0, 21600 }, { 21600, 21600 }
7027 };
7028 static const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] =
7029 {
7030     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7031     { 0x2001, { 0x400, 3900, 10450 } }          // 401
7032 };
7033 static const sal_uInt16 mso_sptTextInflateTopSegm[] =
7034 {
7035     0x4000, 0x2002, 0x8000,
7036     0x4000, 0x0001, 0x8000
7037 };
7038 static const SvxMSDffHandle mso_sptTextInflateTopHandle[] =
7039 {
7040     {   MSDFF_HANDLE_FLAGS_RANGE,
7041         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10450 }
7042 };
7043 static const sal_Int32 mso_sptTextInflateTopDefault[] =
7044 {
7045     1, 6900
7046 };
7047 static const mso_CustomShape msoTextInflateTop =
7048 {
7049     (SvxMSDffVertPair*)mso_sptTextInflateTopVert, sizeof( mso_sptTextInflateTopVert ) / sizeof( SvxMSDffVertPair ),
7050     (sal_uInt16*)mso_sptTextInflateTopSegm, sizeof( mso_sptTextInflateTopSegm ) >> 1,
7051     (SvxMSDffCalculationData*)mso_sptTextInflateTopCalc, sizeof( mso_sptTextInflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7052     (sal_Int32*)mso_sptTextInflateTopDefault,
7053     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7054     21600, 21600,
7055     0x80000000, 0x80000000,
7056     NULL, 0,
7057     (SvxMSDffHandle*)mso_sptTextInflateTopHandle, sizeof( mso_sptTextInflateTopHandle ) / sizeof( SvxMSDffHandle )
7058 };
7059 
7060 static const SvxMSDffVertPair mso_sptTextDeflateTopVert[] =
7061 {
7062     { 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 },
7063     { 0, 21600 }, { 21600, 21600 }
7064 };
7065 static const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] =
7066 {
7067     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7068     { 0x2001, { 0x400, 12070, 20250 } }         // 402
7069 };
7070 static const sal_uInt16 mso_sptTextDeflateTopSegm[] =
7071 {
7072     0x4000, 0x2002, 0x8000,
7073     0x4000, 0x0001, 0x8000
7074 };
7075 static const SvxMSDffHandle mso_sptTextDeflateTopHandle[] =
7076 {
7077     {   MSDFF_HANDLE_FLAGS_RANGE,
7078         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 20250 }
7079 };
7080 static const sal_Int32 mso_sptTextDeflateTopDefault[] =
7081 {
7082     1, 10100
7083 };
7084 static const mso_CustomShape msoTextDeflateTop =
7085 {
7086     (SvxMSDffVertPair*)mso_sptTextDeflateTopVert, sizeof( mso_sptTextDeflateTopVert ) / sizeof( SvxMSDffVertPair ),
7087     (sal_uInt16*)mso_sptTextDeflateTopSegm, sizeof( mso_sptTextDeflateTopSegm ) >> 1,
7088     (SvxMSDffCalculationData*)mso_sptTextDeflateTopCalc, sizeof( mso_sptTextDeflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7089     (sal_Int32*)mso_sptTextDeflateTopDefault,
7090     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7091     21600, 21600,
7092     0x80000000, 0x80000000,
7093     NULL, 0,
7094     (SvxMSDffHandle*)mso_sptTextDeflateTopHandle, sizeof( mso_sptTextDeflateTopHandle ) / sizeof( SvxMSDffHandle )
7095 };
7096 
7097 static const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] =
7098 {
7099     { 0, 0 }, { 21600, 0 },
7100     { 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 },
7101     { 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 },
7102     { 0, 21600 }, { 21600, 21600 }
7103 };
7104 static const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] =
7105 {
7106     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7107     { 0x8000, { 10800, 0, 0x400 } },            // 401
7108     { 0x2001, { 0x401, 5770, 9500 } },          // 402
7109     { 0x8000, { 10100, 0, 0x402 } },            // 403
7110     { 0x8000, { 11500, 0, 0x402 } },            // 404
7111     { 0x2000, { 0x400, 0, 700 } },              // 405
7112     { 0x2000, { 0x400, 700, 0 } }               // 406
7113 };
7114 static const sal_uInt16 mso_sptTextDeflateInflateSegm[] =
7115 {
7116     0x4000, 0x0001, 0x8000,
7117     0x4000, 0x2002, 0x8000,
7118     0x4000, 0x2002, 0x8000,
7119     0x4000, 0x0001, 0x8000
7120 };
7121 static const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] =
7122 {
7123     {   MSDFF_HANDLE_FLAGS_RANGE,
7124         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1300, 20300 }
7125 };
7126 static const sal_Int32 mso_sptTextDeflateInflateDefault[] =
7127 {
7128     1, 6500
7129 };
7130 static const mso_CustomShape msoTextDeflateInflate =
7131 {
7132     (SvxMSDffVertPair*)mso_sptTextDeflateInflateVert, sizeof( mso_sptTextDeflateInflateVert ) / sizeof( SvxMSDffVertPair ),
7133     (sal_uInt16*)mso_sptTextDeflateInflateSegm, sizeof( mso_sptTextDeflateInflateSegm ) >> 1,
7134     (SvxMSDffCalculationData*)mso_sptTextDeflateInflateCalc, sizeof( mso_sptTextDeflateInflateCalc ) / sizeof( SvxMSDffCalculationData ),
7135     (sal_Int32*)mso_sptTextDeflateInflateDefault,
7136     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7137     21600, 21600,
7138     0x80000000, 0x80000000,
7139     NULL, 0,
7140     (SvxMSDffHandle*)mso_sptTextDeflateInflateHandle, sizeof( mso_sptTextDeflateInflateHandle ) / sizeof( SvxMSDffHandle )
7141 };
7142 
7143 static const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] =
7144 {
7145     { 0, 0 }, { 21600, 0 },
7146     { 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 },
7147     { 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 },
7148     { 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 },
7149     { 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 },
7150     { 0, 21600 }, { 21600, 21600 }
7151 };
7152 static const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] =
7153 {
7154     { 0x2000, { DFF_Prop_adjustValue, 0, 850 } },       // 400
7155     { 0x2001, { 0x400, 6120, 8700 } },
7156     { 0x2000, { 0x401, 0, 4280 } },
7157     { 0x4000, { 6600, 0x402, 0 } },
7158     { 0x2000, { DFF_Prop_adjustValue, 0, 450 } },       // 404
7159     { 0x2000, { 0x403, 900, 0 } },                      // 405
7160     { 0x2000, { 0x404, 900, 0 } },                      // 406
7161     { 0x8000, { 21600, 0, 0x403 } },                    // 407
7162     { 0x8000, { 21600, 0, 0x404 } },                    // 408
7163     { 0x8000, { 21600, 0, 0x405 } },                    // 409
7164     { 0x8000, { 21600, 0, 0x406 } }                     // 410
7165 };
7166 static const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] =
7167 {
7168     0x4000, 0x0001, 0x8000,
7169     0x4000, 0x2002, 0x8000,
7170     0x4000, 0x2002, 0x8000,
7171     0x4000, 0x2002, 0x8000,
7172     0x4000, 0x2002, 0x8000,
7173     0x4000, 0x0001, 0x8000
7174 };
7175 static const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] =
7176 {
7177     {   MSDFF_HANDLE_FLAGS_RANGE,
7178         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 850, 9550 }
7179 };
7180 static const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] =
7181 {
7182     1, 6050
7183 };
7184 static const mso_CustomShape msoTextDeflateInflateDeflate =
7185 {
7186     (SvxMSDffVertPair*)mso_sptTextDeflateInflateDeflateVert, sizeof( mso_sptTextDeflateInflateDeflateVert ) / sizeof( SvxMSDffVertPair ),
7187     (sal_uInt16*)mso_sptTextDeflateInflateDeflateSegm, sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1,
7188     (SvxMSDffCalculationData*)mso_sptTextDeflateInflateDeflateCalc, sizeof( mso_sptTextDeflateInflateDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
7189     (sal_Int32*)mso_sptTextDeflateInflateDeflateDefault,
7190     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7191     21600, 21600,
7192     0x80000000, 0x80000000,
7193     NULL, 0,
7194     (SvxMSDffHandle*)mso_sptTextDeflateInflateDeflateHandle, sizeof( mso_sptTextDeflateInflateDeflateHandle ) / sizeof( SvxMSDffHandle )
7195 };
7196 
7197 static const SvxMSDffVertPair mso_sptTextWave1Vert[] =  // adjustment1 : 0 - 4459
7198 {                                                   // adjustment2 : 8640 - 12960
7199     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7200     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7201 };
7202 static const sal_uInt16 mso_sptTextWave1Segm[] =
7203 {
7204     0x4000, 0x2001, 0x8000,
7205     0x4000, 0x2001, 0x8000
7206 };
7207 static const mso_CustomShape msoTextWave1 =
7208 {
7209     (SvxMSDffVertPair*)mso_sptTextWave1Vert, sizeof( mso_sptTextWave1Vert ) / sizeof( SvxMSDffVertPair ),
7210     (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7211     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7212     (sal_Int32*)mso_sptWaveDefault,
7213     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7214     21600, 21600,
7215     0x80000000, 0x80000000,
7216     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7217     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7218 };
7219 
7220 static const SvxMSDffVertPair mso_sptTextWave2Vert[] =  // adjustment1 : 0 - 4459
7221 {                                                   // adjustment2 : 8640 - 12960
7222     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7223     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7224 };
7225 static const mso_CustomShape msoTextWave2 =
7226 {
7227     (SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ),
7228     (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7229     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7230     (sal_Int32*)mso_sptWaveDefault,
7231     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7232     21600, 21600,
7233     0x80000000, 0x80000000,
7234     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7235     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7236 };
7237 
7238 static const SvxMSDffVertPair mso_sptTextWave3Vert[] =  // adjustment1 : 0 - 2230
7239 {                                                       // adjustment2 : 8640 - 12960
7240     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7241     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7242 };
7243 static const sal_uInt16 mso_sptTextWave3Segm[] =
7244 {
7245     0x4000, 0x2002, 0x8000,
7246     0x4000, 0x2002, 0x8000
7247 };
7248 static const mso_CustomShape msoTextWave3 =
7249 {
7250     (SvxMSDffVertPair*)mso_sptTextWave3Vert, sizeof( mso_sptTextWave3Vert ) / sizeof( SvxMSDffVertPair ),
7251     (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7252     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7253     (sal_Int32*)mso_sptDoubleWaveDefault,
7254     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7255     21600, 21600,
7256     0x80000000, 0x80000000,
7257     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7258     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7259 };
7260 
7261 static const SvxMSDffVertPair mso_sptTextWave4Vert[] =  // adjustment1 : 0 - 2230
7262 {                                                       // adjustment2 : 8640 - 12960
7263     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7264     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7265 };
7266 static const mso_CustomShape msoTextWave4 =
7267 {
7268     (SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ),
7269     (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7270     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7271     (sal_Int32*)mso_sptDoubleWaveDefault,
7272     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7273     21600, 21600,
7274     0x80000000, 0x80000000,
7275     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7276     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7277 };
7278 
7279 static const sal_Int32 mso_sptCalloutDefault1[] =
7280 {
7281     4, -1800, 24500, -1800, 4000
7282 };
7283 static const sal_Int32 mso_sptCalloutDefault2[] =
7284 {
7285     4, -8300, 24500, -1800, 4000
7286 };
7287 static const sal_Int32 mso_sptCalloutDefault3[] =
7288 {
7289     6, -10000, 24500, -3600, 4000, -1800, 4000
7290 };
7291 static const sal_Int32 mso_sptCalloutDefault4[] =
7292 {
7293     8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
7294 };
7295 static const SvxMSDffVertPair mso_sptCalloutVert1[] =
7296 {
7297     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }
7298 };
7299 static const SvxMSDffHandle mso_sptCalloutHandle1[] =
7300 {
7301     {   0,
7302         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7303     {   0,
7304         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7305 };
7306 static const sal_uInt16 mso_sptCalloutSegm1a[] =
7307 {
7308     0x4000, 0x0003, 0x6000, 0x8000,
7309     0x4000, 0x0001, 0x8000
7310 };
7311 static const sal_uInt16 mso_sptCalloutSegm1b[] =
7312 {
7313     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7314     0x4000, 0x0001, 0x8000
7315 };
7316 static const SvxMSDffVertPair mso_sptCallout1Vert[] =
7317 {
7318     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 }
7319 };
7320 static const sal_uInt16 mso_sptCallout1Segm1a[] =
7321 {
7322     0x4000, 0x0003, 0x6000, 0x8000,
7323     0x4000, 0x0001, 0x8000,
7324     0x4000, 0x0001, 0x8000
7325 };
7326 static const sal_uInt16 mso_sptCallout1Segm1b[] =
7327 {
7328     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7329     0x4000, 0x0001, 0x8000,
7330     0x4000, 0x0001, 0x8000
7331 };
7332 static const SvxMSDffVertPair mso_sptCallout2Verta[] =
7333 {
7334     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }
7335 };
7336 static const SvxMSDffVertPair mso_sptCallout2Vertb[] =
7337 {
7338     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 }
7339 };
7340 static const SvxMSDffHandle mso_sptCalloutHandle2[] =
7341 {
7342     {   0,
7343         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7344     {   0,
7345         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7346     {   0,
7347         0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7348 };
7349 static const sal_uInt16 mso_sptCallout2Segm1a[] =
7350 {
7351     0x4000, 0x0003, 0x6000, 0x8000,
7352     0x4000, 0x0001, 0x8000,
7353     0x4000, 0x0001, 0x8000,
7354     0x4000, 0x0001, 0x8000
7355 };
7356 static const sal_uInt16 mso_sptCallout2Segm1b[] =
7357 {
7358     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7359     0x4000, 0x0001, 0x8000,
7360     0x4000, 0x0001, 0x8000,
7361     0x4000, 0x0001, 0x8000
7362 };
7363 static const sal_uInt16 mso_sptCallout2Segm1c[] =
7364 {
7365     0x4000, 0x0003, 0x6000, 0x8000,
7366     0x4000, 0x0001, 0x8000,
7367     0x4000, 0x0001, 0x8000,
7368     0x4000, 0x0001, 0x8000,
7369     0x4000, 0x0001, 0x8000
7370 };
7371 static const sal_uInt16 mso_sptCallout2Segm1d[] =
7372 {
7373     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7374     0x4000, 0x0001, 0x8000,
7375     0x4000, 0x0001, 0x8000,
7376     0x4000, 0x0001, 0x8000,
7377     0x4000, 0x0001, 0x8000
7378 };
7379 static const SvxMSDffVertPair mso_sptCallout3Verta[] =
7380 {
7381     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
7382 };
7383 static const SvxMSDffVertPair mso_sptCallout3Vertb[] =
7384 {
7385     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 }
7386 };
7387 static const SvxMSDffHandle mso_sptCalloutHandle3[] =
7388 {
7389     {   0,
7390         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7391     {   0,
7392         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7393     {   0,
7394         0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7395     {   0,
7396         0x106, 0x107, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7397 };
7398 static const sal_uInt16 mso_sptCallout3Segm1a[] =
7399 {
7400     0x4000, 0x0003, 0x6000, 0x8000,
7401     0x4000, 0xaa00, 0x0003, 0x8000          // NO_FILL
7402 };
7403 static const sal_uInt16 mso_sptCallout3Segm1b[] =
7404 {
7405     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7406     0x4000, 0xaa00, 0x0003, 0x8000          // NO FILL
7407 };
7408 static const sal_uInt16 mso_sptCallout3Segm1c[] =
7409 {
7410     0x4000, 0x0003, 0x6000, 0x8000,
7411     0x4000, 0xaa00, 0x0003, 0x8000,         // NO FILL
7412     0x4000, 0x0001, 0x8000
7413 };
7414 static const sal_uInt16 mso_sptCallout3Segm1d[] =
7415 {
7416     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7417     0x4000, 0xaa00, 0x0003, 0x8000,         // NO FILL
7418     0x4000, 0x0001, 0x8000
7419 };
7420 
7421 static const SvxMSDffCalculationData mso_sptCalloutCalc[] =
7422 {
7423     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7424     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7425     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7426     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
7427     { 0x2000, { DFF_Prop_adjust5Value, 0, 0 } },
7428     { 0x2000, { DFF_Prop_adjust6Value, 0, 0 } },
7429     { 0x2000, { DFF_Prop_adjust7Value, 0, 0 } },
7430     { 0x2000, { DFF_Prop_adjust8Value, 0, 0 } }
7431 };
7432 
7433 static const mso_CustomShape msoCallout90 =
7434 {
7435     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7436     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7437     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7438     (sal_Int32*)mso_sptCalloutDefault1,
7439     NULL, 0,
7440     21600, 21600,
7441     0x80000000, 0x80000000,
7442     NULL, 0,
7443     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7444 };
7445 static const mso_CustomShape msoCallout1 =
7446 {
7447     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7448     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7449     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7450     (sal_Int32*)mso_sptCalloutDefault2,
7451     NULL, 0,
7452     21600, 21600,
7453     0x80000000, 0x80000000,
7454     NULL, 0,
7455     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7456 };
7457 static const mso_CustomShape msoCallout2 =
7458 {
7459     (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7460     (sal_uInt16*)mso_sptCallout2Segm1b, sizeof( mso_sptCallout2Segm1b ) >> 1,
7461     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7462     (sal_Int32*)mso_sptCalloutDefault3,
7463     NULL, 0,
7464     21600, 21600,
7465     0x80000000, 0x80000000,
7466     NULL, 0,
7467     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7468 };
7469 static const mso_CustomShape msoCallout3 =
7470 {
7471     (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7472     (sal_uInt16*)mso_sptCallout3Segm1b, sizeof( mso_sptCallout3Segm1b ) >> 1,
7473     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7474     (sal_Int32*)mso_sptCalloutDefault4,
7475     NULL, 0,
7476     21600, 21600,
7477     0x80000000, 0x80000000,
7478     NULL, 0,
7479     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7480 };
7481 static const mso_CustomShape msoAccentCallout90 =
7482 {
7483     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7484     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7485     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7486     (sal_Int32*)mso_sptCalloutDefault1,
7487     NULL, 0,
7488     21600, 21600,
7489     0x80000000, 0x80000000,
7490     NULL, 0,
7491     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7492 };
7493 static const mso_CustomShape msoAccentCallout1 =
7494 {
7495     (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7496     (sal_uInt16*)mso_sptCallout1Segm1b, sizeof( mso_sptCallout1Segm1b ) >> 1,
7497     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7498     (sal_Int32*)mso_sptCalloutDefault2,
7499     NULL, 0,
7500     21600, 21600,
7501     0x80000000, 0x80000000,
7502     NULL, 0,
7503     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7504 };
7505 static const mso_CustomShape msoAccentCallout2 =
7506 {
7507     (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7508     (sal_uInt16*)mso_sptCallout2Segm1d, sizeof( mso_sptCallout2Segm1d ) >> 1,
7509     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7510     (sal_Int32*)mso_sptCalloutDefault3,
7511     NULL, 0,
7512     21600, 21600,
7513     0x80000000, 0x80000000,
7514     NULL, 0,
7515     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7516 };
7517 static const mso_CustomShape msoAccentCallout3 =
7518 {
7519     (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7520     (sal_uInt16*)mso_sptCallout3Segm1d, sizeof( mso_sptCallout3Segm1d ) >> 1,
7521     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7522     (sal_Int32*)mso_sptCalloutDefault4,
7523     NULL, 0,
7524     21600, 21600,
7525     0x80000000, 0x80000000,
7526     NULL, 0,
7527     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7528 };
7529 static const mso_CustomShape msoBorderCallout90 =
7530 {
7531     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7532     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7533     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7534     (sal_Int32*)mso_sptCalloutDefault1,
7535     NULL, 0,
7536     21600, 21600,
7537     0x80000000, 0x80000000,
7538     NULL, 0,
7539     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7540 };
7541 static const mso_CustomShape msoBorderCallout1 =
7542 {
7543     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7544     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7545     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7546     (sal_Int32*)mso_sptCalloutDefault2,
7547     NULL, 0,
7548     21600, 21600,
7549     0x80000000, 0x80000000,
7550     NULL, 0,
7551     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7552 };
7553 static const mso_CustomShape msoBorderCallout2 =
7554 {
7555     (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7556     (sal_uInt16*)mso_sptCallout2Segm1a, sizeof( mso_sptCallout2Segm1a ) >> 1,
7557     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7558     (sal_Int32*)mso_sptCalloutDefault3,
7559     NULL, 0,
7560     21600, 21600,
7561     0x80000000, 0x80000000,
7562     NULL, 0,
7563     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7564 };
7565 static const mso_CustomShape msoBorderCallout3 =
7566 {
7567     (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7568     (sal_uInt16*)mso_sptCallout3Segm1a, sizeof( mso_sptCallout3Segm1a ) >> 1,
7569     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7570     (sal_Int32*)mso_sptCalloutDefault4,
7571     NULL, 0,
7572     21600, 21600,
7573     0x80000000, 0x80000000,
7574     NULL, 0,
7575     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7576 };
7577 static const mso_CustomShape msoAccentBorderCallout90 =
7578 {
7579     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7580     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7581     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7582     (sal_Int32*)mso_sptCalloutDefault1,
7583     NULL, 0,
7584     21600, 21600,
7585     0x80000000, 0x80000000,
7586     NULL, 0,
7587     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7588 };
7589 static const mso_CustomShape msoAccentBorderCallout1 =
7590 {
7591     (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7592     (sal_uInt16*)mso_sptCallout1Segm1a, sizeof( mso_sptCallout1Segm1a ) >> 1,
7593     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7594     (sal_Int32*)mso_sptCalloutDefault2,
7595     NULL, 0,
7596     21600, 21600,
7597     0x80000000, 0x80000000,
7598     NULL, 0,
7599     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7600 };
7601 static const mso_CustomShape msoAccentBorderCallout2 =
7602 {
7603     (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7604     (sal_uInt16*)mso_sptCallout2Segm1c, sizeof( mso_sptCallout2Segm1c ) >> 1,
7605     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7606     (sal_Int32*)mso_sptCalloutDefault3,
7607     NULL, 0,
7608     21600, 21600,
7609     0x80000000, 0x80000000,
7610     NULL, 0,
7611     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7612 };
7613 static const mso_CustomShape msoAccentBorderCallout3 =
7614 {
7615     (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7616     (sal_uInt16*)mso_sptCallout3Segm1c, sizeof( mso_sptCallout3Segm1c ) >> 1,
7617     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7618     (sal_Int32*)mso_sptCalloutDefault4,
7619     NULL, 0,
7620     21600, 21600,
7621     0x80000000, 0x80000000,
7622     NULL, 0,
7623     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7624 };
7625 
7626 static const SvxMSDffVertPair mso_sptStraightConnector1Vert[] =
7627 {
7628     { 0, 0 }, { 21600, 21600 }
7629 };
7630 static const sal_uInt16 mso_sptStraightConnector1Segm[] =
7631 {
7632     0x4000, 0x0001, 0x8000
7633 };
7634 static const mso_CustomShape msoStraightConnector1 =
7635 {
7636     (SvxMSDffVertPair*)mso_sptStraightConnector1Vert, sizeof( mso_sptStraightConnector1Vert ) / sizeof( SvxMSDffVertPair ),
7637     (sal_uInt16*)mso_sptStraightConnector1Segm, sizeof( mso_sptStraightConnector1Segm ) >> 1,
7638     (SvxMSDffCalculationData*)NULL, 0,
7639     (sal_Int32*)NULL,
7640     NULL, 0,
7641     21600, 21600,
7642     0x80000000, 0x80000000,
7643     NULL, 0,
7644     (SvxMSDffHandle*)NULL, 0
7645 };
7646 
7647 static const SvxMSDffVertPair mso_sptBentConnector2Vert[] =
7648 {
7649     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }
7650 };
7651 static const sal_uInt16 mso_sptBentConnector2Segm[] =
7652 {
7653     0x4000, 0x0002, 0x8000
7654 };
7655 static const mso_CustomShape msoBentConnector2 =
7656 {
7657     (SvxMSDffVertPair*)mso_sptBentConnector2Vert, sizeof( mso_sptBentConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7658     (sal_uInt16*)mso_sptBentConnector2Segm, sizeof( mso_sptBentConnector2Segm ) >> 1,
7659     (SvxMSDffCalculationData*)NULL, 0,
7660     (sal_Int32*)NULL,
7661     NULL, 0,
7662     21600, 21600,
7663     0x80000000, 0x80000000,
7664     NULL, 0,
7665     (SvxMSDffHandle*)NULL, 0
7666 };
7667 
7668 static const SvxMSDffVertPair mso_sptBentConnector3Vert[] =
7669 {
7670     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 }
7671 };
7672 static const sal_uInt16 mso_sptBentConnector3Segm[] =
7673 {
7674     0x4000, 0x0003, 0x8000
7675 };
7676 static const SvxMSDffCalculationData mso_sptBentConnector3Calc[] =
7677 {
7678     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
7679 };
7680 static const sal_Int32 mso_sptBentConnector3Default[] =
7681 {
7682     1, 10800
7683 };
7684 static const SvxMSDffHandle mso_sptBentConnector3Handle[] =
7685 {
7686     {   MSDFF_HANDLE_FLAGS_RANGE,
7687         0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7688 };
7689 static const mso_CustomShape msoBentConnector3 =
7690 {
7691     (SvxMSDffVertPair*)mso_sptBentConnector3Vert, sizeof( mso_sptBentConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7692     (sal_uInt16*)mso_sptBentConnector3Segm, sizeof( mso_sptBentConnector3Segm ) >> 1,
7693     (SvxMSDffCalculationData*)mso_sptBentConnector3Calc, sizeof( mso_sptBentConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7694     (sal_Int32*)mso_sptBentConnector3Default,
7695     NULL, 0,
7696     21600, 21600,
7697     0x80000000, 0x80000000,
7698     NULL, 0,
7699     (SvxMSDffHandle*)mso_sptBentConnector3Handle, sizeof( mso_sptBentConnector3Handle ) / sizeof( SvxMSDffHandle )
7700 };
7701 
7702 static const SvxMSDffVertPair mso_sptBentConnector4Vert[] =
7703 {
7704     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 }
7705 };
7706 static const sal_uInt16 mso_sptBentConnector4Segm[] =
7707 {
7708     0x4000, 0x0004, 0x8000
7709 };
7710 static const SvxMSDffCalculationData mso_sptBentConnector4Calc[] =
7711 {
7712     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7713     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7714     { 0x2000, { 0x400, 21600, 0 } },
7715     { 0x2001, { 0x402, 1, 2 } },
7716     { 0x2001, { 0x401, 1, 2 } }
7717 };
7718 static const sal_Int32 mso_sptBentConnector4Default[] =
7719 {
7720     2, 10800, 10800
7721 };
7722 static const SvxMSDffHandle mso_sptBentConnector4Handle[] =
7723 {
7724     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7725         0x100, 4 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 4 + 3, 4 + 3 },
7726     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7727         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7728 };
7729 static const mso_CustomShape msoBentConnector4 =
7730 {
7731     (SvxMSDffVertPair*)mso_sptBentConnector4Vert, sizeof( mso_sptBentConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7732     (sal_uInt16*)mso_sptBentConnector4Segm, sizeof( mso_sptBentConnector4Segm ) >> 1,
7733     (SvxMSDffCalculationData*)mso_sptBentConnector4Calc, sizeof( mso_sptBentConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7734     (sal_Int32*)mso_sptBentConnector4Default,
7735     NULL, 0,
7736     21600, 21600,
7737     0x80000000, 0x80000000,
7738     NULL, 0,
7739     (SvxMSDffHandle*)mso_sptBentConnector4Handle, sizeof( mso_sptBentConnector4Handle ) / sizeof( SvxMSDffHandle )
7740 };
7741 
7742 static const SvxMSDffVertPair mso_sptBentConnector5Vert[] =
7743 {
7744     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 }
7745 };
7746 static const sal_uInt16 mso_sptBentConnector5Segm[] =
7747 {
7748     0x4000, 0x0005, 0x8000
7749 };
7750 static const SvxMSDffCalculationData mso_sptBentConnector5Calc[] =
7751 {
7752     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7753     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7754     { 0x6000, { 0x400, 0x401, 0 } },
7755     { 0x2001, { 0x402, 1, 2 } },
7756     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7757     { 0x2001, { 0x404, 1, 2 } },
7758     { 0x4000, { 21600, 0x404, 0 } },
7759     { 0x2001, { 0x406, 1, 2 } }
7760 };
7761 static const sal_Int32 mso_sptBentConnector5Default[] =
7762 {
7763     3, 10800, 10800, 10800
7764 };
7765 static const SvxMSDffHandle mso_sptBentConnector5Handle[] =
7766 {
7767     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7768         0x100, 5 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 5 + 3, 5 + 3 },
7769     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7770         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7771     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7772         0x102, 7 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 7 + 3, 7 + 3 }
7773 };
7774 static const mso_CustomShape msoBentConnector5 =
7775 {
7776     (SvxMSDffVertPair*)mso_sptBentConnector5Vert, sizeof( mso_sptBentConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7777     (sal_uInt16*)mso_sptBentConnector5Segm, sizeof( mso_sptBentConnector5Segm ) >> 1,
7778     (SvxMSDffCalculationData*)mso_sptBentConnector5Calc, sizeof( mso_sptBentConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7779     (sal_Int32*)mso_sptBentConnector5Default,
7780     NULL, 0,
7781     21600, 21600,
7782     0x80000000, 0x80000000,
7783     NULL, 0,
7784     (SvxMSDffHandle*)mso_sptBentConnector5Handle, sizeof( mso_sptBentConnector5Handle ) / sizeof( SvxMSDffHandle )
7785 };
7786 
7787 static const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] =
7788 {
7789     { 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 }
7790 };
7791 static const sal_uInt16 mso_sptCurvedConnector2Segm[] =
7792 {
7793     0x4000, 0x2001, 0x8000
7794 };
7795 static const mso_CustomShape msoCurvedConnector2 =
7796 {
7797     (SvxMSDffVertPair*)mso_sptCurvedConnector2Vert, sizeof( mso_sptCurvedConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7798     (sal_uInt16*)mso_sptCurvedConnector2Segm, sizeof( mso_sptCurvedConnector2Segm ) >> 1,
7799     (SvxMSDffCalculationData*)NULL, 0,
7800     (sal_Int32*)NULL,
7801     NULL, 0,
7802     21600, 21600,
7803     0x80000000, 0x80000000,
7804     NULL, 0,
7805     (SvxMSDffHandle*)NULL, 0
7806 };
7807 
7808 static const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] =
7809 {
7810     { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 }
7811 };
7812 static const sal_uInt16 mso_sptCurvedConnector3Segm[] =
7813 {
7814     0x4000, 0x2002, 0x8000
7815 };
7816 static const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] =
7817 {
7818     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7819     { 0x2001, { 0x400, 1, 2 } },
7820     { 0x2000, { 0x400, 21600, 0 } },
7821     { 0x2001, { 0x402, 1, 2 } }
7822 };
7823 static const sal_Int32 mso_sptCurvedConnector3Default[] =
7824 {
7825     1, 10800
7826 };
7827 static const SvxMSDffHandle mso_sptCurvedConnector3Handle[] =
7828 {
7829     {   MSDFF_HANDLE_FLAGS_RANGE,
7830         0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7831 };
7832 static const mso_CustomShape msoCurvedConnector3 =
7833 {
7834     (SvxMSDffVertPair*)mso_sptCurvedConnector3Vert, sizeof( mso_sptCurvedConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7835     (sal_uInt16*)mso_sptCurvedConnector3Segm, sizeof( mso_sptCurvedConnector3Segm ) >> 1,
7836     (SvxMSDffCalculationData*)mso_sptCurvedConnector3Calc, sizeof( mso_sptCurvedConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7837     (sal_Int32*)mso_sptCurvedConnector3Default,
7838     NULL, 0,
7839     21600, 21600,
7840     0x80000000, 0x80000000,
7841     NULL, 0,
7842     (SvxMSDffHandle*)mso_sptCurvedConnector3Handle, sizeof( mso_sptCurvedConnector3Handle ) / sizeof( SvxMSDffHandle )
7843 };
7844 
7845 static const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] =
7846 {
7847     { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I },
7848     { 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I },
7849     { 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 }
7850 
7851 };
7852 static const sal_uInt16 mso_sptCurvedConnector4Segm[] =
7853 {
7854     0x4000, 0x2003, 0x8000
7855 };
7856 static const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] =
7857 {
7858     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7859     { 0x2001, { 0x400, 1, 2 } },
7860     { 0x4000, { 21600, 0x400, 0 } },
7861     { 0x2001, { 0x402, 1, 2 } },
7862     { 0x6000, { 0x400, 0x403, 0 } },
7863     { 0x2001, { 0x404, 1, 2 } },
7864     { 0x2000, { 0x403, 21600, 0 } },
7865     { 0x2001, { 0x406, 1, 2 } },
7866     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7867     { 0x2001, { DFF_Prop_adjust2Value, 1, 2 } },
7868     { 0x2001, { DFF_Prop_adjust2Value, 1, 4 } },
7869     { 0x6000, { 0x408, 0x409, 0 } },
7870     { 0x2001, { 0x40b, 1, 2 } },
7871     { 0x2000, { 0x408, 21600, 0 } },
7872     { 0x2001, { 0x40d, 1, 2 } }
7873 };
7874 static const sal_Int32 mso_sptCurvedConnector4Default[] =
7875 {
7876     2, 10800, 10800
7877 };
7878 static const SvxMSDffHandle mso_sptCurvedConnector4Handle[] =
7879 {
7880     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7881         0x100, 9 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 9 + 3, 9 + 3 },
7882     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7883         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7884 };
7885 static const mso_CustomShape msoCurvedConnector4 =
7886 {
7887     (SvxMSDffVertPair*)mso_sptCurvedConnector4Vert, sizeof( mso_sptCurvedConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7888     (sal_uInt16*)mso_sptCurvedConnector4Segm, sizeof( mso_sptCurvedConnector4Segm ) >> 1,
7889     (SvxMSDffCalculationData*)mso_sptCurvedConnector4Calc, sizeof( mso_sptCurvedConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7890     (sal_Int32*)mso_sptCurvedConnector4Default,
7891     NULL, 0,
7892     21600, 21600,
7893     0x80000000, 0x80000000,
7894     NULL, 0,
7895     (SvxMSDffHandle*)mso_sptCurvedConnector4Handle, sizeof( mso_sptCurvedConnector4Handle ) / sizeof( SvxMSDffHandle )
7896 };
7897 
7898 static const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] =
7899 {
7900     { 0, 0 },
7901     { 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
7902     { 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
7903     { 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I },
7904     { 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 }
7905 };
7906 static const sal_uInt16 mso_sptCurvedConnector5Segm[] =
7907 {
7908     0x4000, 0x2004, 0x8000
7909 };
7910 static const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] =
7911 {
7912     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7913     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7914     { 0x6000, { 0x400, 0x401, 0 } },
7915     { 0x2001, { 0x402, 1, 2 } },
7916     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7917     { 0x6000, { 0x400, 0x403, 0 } },
7918     { 0x2001, { 0x405, 1, 2 } },
7919     { 0x6000, { 0x401, 0x403, 0 } },
7920     { 0x2001, { 0x407, 1, 2 } },
7921     { 0x2000, { 0x401, 21600, 0 } },
7922     { 0x2001, { 0x409, 1, 2 } },
7923     { 0x2001, { 0x404, 1, 2 } },
7924     { 0x2001, { 0x40b, 1, 2 } },
7925     { 0x6000, { 0x404, 0x40b, 0 } },
7926     { 0x2001, { 0x40d, 1, 2 } },
7927     { 0x2000, { 0x404, 21600, 0 } },
7928     { 0x2001, { 0x40f, 1, 2 } },
7929     { 0x6000, { 0x404, 0x410, 0 } },
7930     { 0x2001, { 0x411, 1, 2 } },
7931     { 0x2000, { 0x410, 21600, 0 } },
7932     { 0x2001, { 0x413, 1, 2 } },
7933     { 0x2001, { 0x400, 1, 2 } }
7934 };
7935 static const sal_Int32 mso_sptCurvedConnector5Default[] =
7936 {
7937     3, 10800, 10800, 10800
7938 };
7939 static const SvxMSDffHandle mso_sptCurvedConnector5Handle[] =
7940 {
7941     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7942         0x100, 11 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 11 + 3, 11 + 3 },
7943     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7944         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7945     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7946         0x102, 16 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 16 + 3, 16 + 3 }
7947 };
7948 static const mso_CustomShape msoCurvedConnector5 =
7949 {
7950     (SvxMSDffVertPair*)mso_sptCurvedConnector5Vert, sizeof( mso_sptCurvedConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7951     (sal_uInt16*)mso_sptCurvedConnector5Segm, sizeof( mso_sptCurvedConnector5Segm ) >> 1,
7952     (SvxMSDffCalculationData*)mso_sptCurvedConnector5Calc, sizeof( mso_sptCurvedConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7953     (sal_Int32*)mso_sptCurvedConnector5Default,
7954     NULL, 0,
7955     21600, 21600,
7956     0x80000000, 0x80000000,
7957     NULL, 0,
7958     (SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle )
7959 };
7960 
7961 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
7962 {
7963     const mso_CustomShape* pCustomShape = NULL;
7964     switch( eSpType )
7965     {
7966         case mso_sptArc :                       pCustomShape = &msoArc; break;
7967         case mso_sptRectangle :                 pCustomShape = &msoRectangle; break;
7968         case mso_sptParallelogram :             pCustomShape = &msoParallelogram; break;
7969         case mso_sptTrapezoid :                 pCustomShape = &msoTrapezoid; break;
7970         case mso_sptDiamond :                   pCustomShape = &msoDiamond; break;
7971         case mso_sptRoundRectangle :            pCustomShape = &msoRoundRectangle; break;
7972         case mso_sptOctagon :                   pCustomShape = &msoOctagon; break;
7973         case mso_sptIsocelesTriangle :          pCustomShape = &msoIsocelesTriangle; break;
7974         case mso_sptRightTriangle :             pCustomShape = &msoRightTriangle; break;
7975         case mso_sptEllipse :                   pCustomShape = &msoEllipse; break;
7976         case mso_sptHexagon :                   pCustomShape = &msoHexagon; break;
7977         case mso_sptPlus :                      pCustomShape = &msoPlus; break;
7978         case mso_sptPentagon :                  pCustomShape = &msoPentagon; break;
7979         case mso_sptCan :                       pCustomShape = &msoCan; break;
7980         case mso_sptCube :                      pCustomShape = &msoCube; break;
7981         case mso_sptBalloon :                   pCustomShape = &msoBalloon; break;
7982         case mso_sptActionButtonBlank :         pCustomShape = &msoActionButtonBlank; break;
7983         case mso_sptActionButtonHome :          pCustomShape = &msoActionButtonHome; break;
7984         case mso_sptActionButtonHelp :          pCustomShape = &msoActionButtonHelp; break;
7985         case mso_sptActionButtonInformation :   pCustomShape = &msoActionButtonInformation; break;
7986         case mso_sptActionButtonBackPrevious :  pCustomShape = &msoActionButtonBackPrevious; break;
7987         case mso_sptActionButtonForwardNext :   pCustomShape = &msoActionButtonForwardNext; break;
7988         case mso_sptActionButtonBeginning :     pCustomShape = &msoActionButtonBeginning; break;
7989         case mso_sptActionButtonEnd :           pCustomShape = &msoActionButtonEnd; break;
7990         case mso_sptActionButtonReturn :        pCustomShape = &msoActionButtonReturn;  break;
7991         case mso_sptActionButtonDocument :      pCustomShape = &msoActionButtonDocument; break;
7992         case mso_sptActionButtonSound :         pCustomShape = &msoActionButtonSound; break;
7993         case mso_sptActionButtonMovie :         pCustomShape = &msoActionButtonMovie; break;
7994         case mso_sptBevel :                     pCustomShape = &msoBevel; break;
7995         case mso_sptFoldedCorner :              pCustomShape = &msoFoldedCorner; break;
7996         case mso_sptSmileyFace :                pCustomShape = &msoSmileyFace;  break;
7997         case mso_sptDonut :                     pCustomShape = &msoDonut; break;
7998         case mso_sptNoSmoking :                 pCustomShape = &msoNoSmoking; break;
7999         case mso_sptBlockArc :                  pCustomShape = &msoBlockArc; break;
8000         case mso_sptHeart :                     pCustomShape = &msoHeart; break;
8001         case mso_sptLightningBolt :             pCustomShape = &msoLightningBold; break;
8002         case mso_sptSun :                       pCustomShape = &msoSun; break;
8003         case mso_sptMoon :                      pCustomShape = &msoMoon; break;
8004         case mso_sptBracketPair :               pCustomShape = &msoBracketPair; break;
8005         case mso_sptBracePair :                 pCustomShape = &msoBracePair; break;
8006         case mso_sptPlaque :                    pCustomShape = &msoPlaque; break;
8007         case mso_sptLeftBracket :               pCustomShape = &msoLeftBracket; break;
8008         case mso_sptRightBracket :              pCustomShape = &msoRightBracket; break;
8009         case mso_sptLeftBrace :                 pCustomShape = &msoLeftBrace; break;
8010         case mso_sptRightBrace :                pCustomShape = &msoRightBrace; break;
8011         case mso_sptArrow :                     pCustomShape = &msoArrow; break;
8012         case mso_sptUpArrow :                   pCustomShape = &msoUpArrow; break;
8013         case mso_sptDownArrow :                 pCustomShape = &msoDownArrow; break;
8014         case mso_sptLeftArrow :                 pCustomShape = &msoLeftArrow; break;
8015         case mso_sptLeftRightArrow :            pCustomShape = &msoLeftRightArrow; break;
8016         case mso_sptUpDownArrow :               pCustomShape = &msoUpDownArrow; break;
8017         case mso_sptQuadArrow :                 pCustomShape = &msoQuadArrow; break;
8018         case mso_sptLeftRightUpArrow :          pCustomShape = &msoLeftRightUpArrow; break;
8019         case mso_sptBentArrow :                 pCustomShape = &msoBentArrow; break;
8020         case mso_sptUturnArrow :                pCustomShape = &msoUturnArrow; break;
8021         case mso_sptLeftUpArrow :               pCustomShape = &msoLeftUpArrow; break;
8022         case mso_sptBentUpArrow :               pCustomShape = &msoBentUpArrow; break;
8023         case mso_sptCurvedRightArrow :          pCustomShape = &msoCurvedRightArrow; break;
8024         case mso_sptCurvedLeftArrow :           pCustomShape = &msoCurvedLeftArrow; break;
8025         case mso_sptCurvedUpArrow :             pCustomShape = &msoCurvedUpArrow; break;
8026         case mso_sptCurvedDownArrow :           pCustomShape = &msoCurvedDownArrow; break;
8027         case mso_sptStripedRightArrow :         pCustomShape = &msoStripedRightArrow; break;
8028         case mso_sptNotchedRightArrow :         pCustomShape = &msoNotchedRightArrow; break;
8029         case mso_sptHomePlate :                 pCustomShape = &msoHomePlate; break;
8030         case mso_sptChevron :                   pCustomShape = &msoChevron; break;
8031         case mso_sptRightArrowCallout :         pCustomShape = &msoRightArrowCallout; break;
8032         case mso_sptLeftArrowCallout :          pCustomShape = &msoLeftArrowCallout; break;
8033         case mso_sptUpArrowCallout :            pCustomShape = &msoUpArrowCallout; break;
8034         case mso_sptDownArrowCallout :          pCustomShape = &msoDownArrowCallout; break;
8035         case mso_sptLeftRightArrowCallout :     pCustomShape = &msoLeftRightArrowCallout; break;
8036         case mso_sptUpDownArrowCallout :        pCustomShape = &msoUpDownArrowCallout; break;
8037         case mso_sptQuadArrowCallout :          pCustomShape = &msoQuadArrowCallout; break;
8038         case mso_sptCircularArrow :             pCustomShape = &msoCircularArrow; break;
8039         case mso_sptIrregularSeal1 :            pCustomShape = &msoIrregularSeal1; break;
8040         case mso_sptIrregularSeal2 :            pCustomShape = &msoIrregularSeal2; break;
8041         case mso_sptSeal4 :                     pCustomShape = &msoSeal4; break;
8042         case mso_sptStar :                      pCustomShape = &msoStar; break;
8043         case mso_sptSeal8 :                     pCustomShape = &msoSeal8; break;
8044         case mso_sptSeal :
8045         case mso_sptSeal16 :                    pCustomShape = &msoSeal16; break;
8046         case mso_sptSeal24 :                    pCustomShape = &msoSeal24; break;
8047         case mso_sptSeal32 :                    pCustomShape = &msoSeal32; break;
8048         case mso_sptRibbon2 :                   pCustomShape = &msoRibbon2; break;
8049         case mso_sptRibbon :                    pCustomShape = &msoRibbon; break;
8050         case mso_sptEllipseRibbon2 :            pCustomShape = &msoRibbon2; break;  // SJ: TODO
8051         case mso_sptEllipseRibbon :             pCustomShape = &msoRibbon; break;   // SJ: TODO
8052         case mso_sptVerticalScroll :            pCustomShape = &msoVerticalScroll;  break;
8053         case mso_sptHorizontalScroll :          pCustomShape = &msoHorizontalScroll; break;
8054         case mso_sptFlowChartProcess :          pCustomShape = &msoFlowChartProcess; break;
8055         case mso_sptFlowChartAlternateProcess : pCustomShape = &msoFlowChartAlternateProcess; break;
8056         case mso_sptFlowChartDecision :         pCustomShape = &msoFlowChartDecision; break;
8057         case mso_sptFlowChartInputOutput :      pCustomShape = &msoFlowChartInputOutput; break;
8058         case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
8059         case mso_sptFlowChartInternalStorage :  pCustomShape = &msoFlowChartInternalStorage; break;
8060         case mso_sptFlowChartDocument :         pCustomShape = &msoFlowChartDocument; break;
8061         case mso_sptFlowChartMultidocument :    pCustomShape = &msoFlowChartMultidocument; break;
8062         case mso_sptFlowChartTerminator :       pCustomShape = &msoFlowChartTerminator; break;
8063         case mso_sptFlowChartPreparation :      pCustomShape = &msoFlowChartPreparation; break;
8064         case mso_sptFlowChartManualInput :      pCustomShape = &msoFlowChartManualInput; break;
8065         case mso_sptFlowChartManualOperation :  pCustomShape = &msoFlowChartManualOperation; break;
8066         case mso_sptFlowChartConnector :        pCustomShape = &msoFlowChartConnector; break;
8067         case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
8068         case mso_sptFlowChartPunchedCard :      pCustomShape = &msoFlowChartPunchedCard; break;
8069         case mso_sptFlowChartPunchedTape :      pCustomShape = &msoFlowChartPunchedTape; break;
8070         case mso_sptFlowChartSummingJunction :  pCustomShape = &msoFlowChartSummingJunction; break;
8071         case mso_sptFlowChartOr :               pCustomShape = &msoFlowChartOr; break;
8072         case mso_sptFlowChartCollate :          pCustomShape = &msoFlowChartCollate; break;
8073         case mso_sptFlowChartSort :             pCustomShape = &msoFlowChartSort; break;
8074         case mso_sptFlowChartExtract :          pCustomShape = &msoFlowChartExtract; break;
8075         case mso_sptFlowChartMerge :            pCustomShape = &msoFlowChartMerge; break;
8076         case mso_sptFlowChartOnlineStorage :    pCustomShape = &msoFlowChartOnlineStorage; break;
8077         case mso_sptFlowChartDelay :            pCustomShape = &msoFlowChartDelay; break;
8078         case mso_sptFlowChartMagneticTape :     pCustomShape = &msoFlowChartMagneticTape; break;
8079         case mso_sptFlowChartMagneticDisk :     pCustomShape = &msoFlowChartMagneticDisk; break;
8080         case mso_sptFlowChartMagneticDrum :     pCustomShape = &msoFlowChartMagneticDrum; break;
8081         case mso_sptFlowChartDisplay :          pCustomShape = &msoFlowChartDisplay; break;
8082         case mso_sptWedgeRectCallout :          pCustomShape = &msoWedgeRectCallout; break;
8083         case mso_sptWedgeRRectCallout :         pCustomShape = &msoWedgeRRectCallout; break;
8084         case mso_sptWedgeEllipseCallout :       pCustomShape = &msoWedgeEllipseCallout; break;
8085         case mso_sptCloudCallout :              pCustomShape = &msoCloudCallout; break;
8086         case mso_sptWave :                      pCustomShape = &msoWave; break;
8087         case mso_sptDoubleWave :                pCustomShape = &msoDoubleWave; break;
8088 
8089         // callout
8090         case mso_sptCallout1 :                  pCustomShape = &msoCallout1; break;
8091         case mso_sptCallout2 :                  pCustomShape = &msoCallout2; break;
8092         case mso_sptCallout3 :                  pCustomShape = &msoCallout3; break;
8093         case mso_sptAccentCallout1 :            pCustomShape = &msoAccentCallout1; break;
8094         case mso_sptAccentCallout2 :            pCustomShape = &msoAccentCallout2; break;
8095         case mso_sptAccentCallout3 :            pCustomShape = &msoAccentCallout3; break;
8096         case mso_sptBorderCallout1 :            pCustomShape = &msoBorderCallout1; break;
8097         case mso_sptBorderCallout2 :            pCustomShape = &msoBorderCallout2; break;
8098         case mso_sptBorderCallout3 :            pCustomShape = &msoBorderCallout3; break;
8099         case mso_sptAccentBorderCallout1 :      pCustomShape = &msoAccentBorderCallout1; break;
8100         case mso_sptAccentBorderCallout2 :      pCustomShape = &msoAccentBorderCallout2; break;
8101         case mso_sptAccentBorderCallout3 :      pCustomShape = &msoAccentBorderCallout3; break;
8102         case mso_sptCallout90 :                 pCustomShape = &msoCallout90; break;
8103         case mso_sptAccentCallout90 :           pCustomShape = &msoAccentCallout90; break;
8104         case mso_sptBorderCallout90 :           pCustomShape = &msoBorderCallout90; break;
8105         case mso_sptAccentBorderCallout90 :     pCustomShape = &msoAccentBorderCallout90; break;
8106 
8107         // connectors
8108         case mso_sptStraightConnector1 :        pCustomShape = &msoStraightConnector1; break;
8109         case mso_sptBentConnector2 :            pCustomShape = &msoBentConnector2; break;
8110         case mso_sptBentConnector3 :            pCustomShape = &msoBentConnector3; break;
8111         case mso_sptBentConnector4 :            pCustomShape = &msoBentConnector4; break;
8112         case mso_sptBentConnector5 :            pCustomShape = &msoBentConnector5; break;
8113         case mso_sptCurvedConnector2 :          pCustomShape = &msoCurvedConnector2; break;
8114         case mso_sptCurvedConnector3 :          pCustomShape = &msoCurvedConnector3; break;
8115         case mso_sptCurvedConnector4 :          pCustomShape = &msoCurvedConnector4; break;
8116         case mso_sptCurvedConnector5 :          pCustomShape = &msoCurvedConnector5; break;
8117 
8118         // Dont know, simply mapping to TextSimple
8119         case mso_sptTextOnRing :
8120         case mso_sptTextOnCurve :
8121         case mso_sptTextRing :
8122         case mso_sptTextWave :
8123         case mso_sptTextCurve :
8124         case mso_sptTextHexagon :
8125         case mso_sptTextOctagon :
8126         case mso_sptTextBox :                   pCustomShape = &msoTextSimple; break;
8127 
8128         // FontWork
8129         case mso_sptTextSimple :
8130         case mso_sptTextPlainText :             pCustomShape = &msoTextPlainText; break;
8131         case mso_sptTextStop :                  pCustomShape = &msoTextStop; break;
8132         case mso_sptTextTriangle :              pCustomShape = &msoTextTriangle; break;
8133         case mso_sptTextTriangleInverted :      pCustomShape = &msoTextTriangleInverted; break;
8134         case mso_sptTextChevron :               pCustomShape = &msoTextChevron; break;
8135         case mso_sptTextChevronInverted :       pCustomShape = &msoTextChevronInverted; break;
8136         case mso_sptTextRingInside :            pCustomShape = &msoTextRingOutside; break;  // SJ: TODO->the orientation of the ellipse needs to be changed
8137         case mso_sptTextRingOutside :           pCustomShape = &msoTextRingOutside; break;
8138         case mso_sptTextFadeRight :             pCustomShape = &msoTextFadeRight; break;
8139         case mso_sptTextFadeLeft :              pCustomShape = &msoTextFadeLeft; break;
8140         case mso_sptTextFadeUp :                pCustomShape = &msoTextFadeUp; break;
8141         case mso_sptTextFadeDown :              pCustomShape = &msoTextFadeDown; break;
8142         case mso_sptTextSlantUp :               pCustomShape = &msoTextSlantUp; break;
8143         case mso_sptTextSlantDown :             pCustomShape = &msoTextSlantDown; break;
8144         case mso_sptTextCascadeUp :             pCustomShape = &msoTextCascadeUp; break;
8145         case mso_sptTextCascadeDown :           pCustomShape = &msoTextCascadeDown; break;
8146         case mso_sptTextArchUpCurve :           pCustomShape = &msoTextArchUpCurve; break;
8147         case mso_sptTextArchDownCurve :         pCustomShape = &msoTextArchDownCurve; break;
8148         case mso_sptTextCircleCurve :           pCustomShape = &msoTextCircleCurve; break;
8149         case mso_sptTextButtonCurve :           pCustomShape = &msoTextButtonCurve; break;
8150         case mso_sptTextArchUpPour :            pCustomShape = &msoTextArchUpPour; break;
8151         case mso_sptTextArchDownPour :          pCustomShape = &msoTextArchDownPour; break;
8152         case mso_sptTextCirclePour :            pCustomShape = &msoTextCirclePour; break;
8153         case mso_sptTextButtonPour :            pCustomShape = &msoTextButtonPour; break;
8154         case mso_sptTextCurveUp :               pCustomShape = &msoTextCurveUp; break;
8155         case mso_sptTextCurveDown :             pCustomShape = &msoTextCurveDown; break;
8156         case mso_sptTextCanUp :                 pCustomShape = &msoTextCanUp; break;
8157         case mso_sptTextCanDown :               pCustomShape = &msoTextCanDown; break;
8158         case mso_sptTextInflate :               pCustomShape = &msoTextInflate; break;
8159         case mso_sptTextDeflate :               pCustomShape = &msoTextDeflate; break;
8160         case mso_sptTextInflateBottom :         pCustomShape = &msoTextInflateBottom; break;
8161         case mso_sptTextDeflateBottom :         pCustomShape = &msoTextDeflateBottom; break;
8162         case mso_sptTextInflateTop :            pCustomShape = &msoTextInflateTop; break;
8163         case mso_sptTextDeflateTop :            pCustomShape = &msoTextDeflateTop; break;
8164         case mso_sptTextDeflateInflate :        pCustomShape = &msoTextDeflateInflate; break;
8165         case mso_sptTextDeflateInflateDeflate : pCustomShape = &msoTextDeflateInflateDeflate; break;
8166         case mso_sptTextWave1 :                 pCustomShape = &msoTextWave1; break;
8167         case mso_sptTextWave2 :                 pCustomShape = &msoTextWave2; break;
8168         case mso_sptTextWave3 :                 pCustomShape = &msoTextWave3; break;
8169         case mso_sptTextWave4 :                 pCustomShape = &msoTextWave4; break;
8170         default :
8171         break;
8172     }
8173     return pCustomShape;
8174 }
8175