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