summaryrefslogtreecommitdiffstats
path: root/sd/qa
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /sd/qa
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--sd/qa/filter/eppt/data/custom-shape-bitmap-fill.pptxbin0 -> 24802 bytes
-rw-r--r--sd/qa/filter/eppt/eppt.cxx83
-rw-r--r--sd/qa/uitest/findReplace/findReplace.py109
-rw-r--r--sd/qa/uitest/impress_tests/autocorrectOptions.py96
-rw-r--r--sd/qa/uitest/impress_tests/customSlideShow.py81
-rw-r--r--sd/qa/uitest/impress_tests/data/findReplace.odpbin0 -> 12804 bytes
-rw-r--r--sd/qa/uitest/impress_tests/documentProperties.py99
-rw-r--r--sd/qa/uitest/impress_tests/insertSlide.py55
-rw-r--r--sd/qa/uitest/impress_tests/masterElements.py52
-rw-r--r--sd/qa/uitest/impress_tests/renameSlide.py41
-rw-r--r--sd/qa/uitest/impress_tests/slideShowSettings.py62
-rw-r--r--sd/qa/uitest/impress_tests/tdf126605.py28
-rw-r--r--sd/qa/uitest/impress_tests/tdf130440.py57
-rw-r--r--sd/qa/uitest/impress_tests/tdf91762.py48
-rw-r--r--sd/qa/unit/HtmlExportTest.cxx60
-rw-r--r--sd/qa/unit/SVGExportTests.cxx135
-rw-r--r--sd/qa/unit/SdrPdfImportTest.cxx128
-rw-r--r--sd/qa/unit/activex-controls-tests.cxx1195
-rw-r--r--sd/qa/unit/data/AllTransitions.odpbin0 -> 15719 bytes
-rw-r--r--sd/qa/unit/data/HtmlExportTestDocument.odpbin0 -> 25480 bytes
-rw-r--r--sd/qa/unit/data/README7
-rw-r--r--sd/qa/unit/data/SimplePDF.pdfbin0 -> 8136 bytes
-rw-r--r--sd/qa/unit/data/bnc822347_EmptyBullet.odpbin0 -> 11589 bytes
-rw-r--r--sd/qa/unit/data/cgm/fail/.gitignore0
-rw-r--r--sd/qa/unit/data/cgm/fail/ooo6420-1.cgm400
-rw-r--r--sd/qa/unit/data/cgm/fail/recurse-1.cgmbin0 -> 162 bytes
-rw-r--r--sd/qa/unit/data/cgm/indeterminate/.gitignore0
-rw-r--r--sd/qa/unit/data/cgm/pass/.gitignore0
-rw-r--r--sd/qa/unit/data/cgm/pass/binary_corvette.cgmbin0 -> 31788 bytes
-rw-r--r--sd/qa/unit/data/cgm/pass/circles.cgmbin0 -> 4400 bytes
-rw-r--r--sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgmbin0 -> 25558 bytes
-rw-r--r--sd/qa/unit/data/dialogs-test.txt75
-rw-r--r--sd/qa/unit/data/empty.fodp2
-rw-r--r--sd/qa/unit/data/fdo47434.pptxbin0 -> 32477 bytes
-rw-r--r--sd/qa/unit/data/fdo64512.odpbin0 -> 14699 bytes
-rw-r--r--sd/qa/unit/data/fdo64586.pptbin0 -> 71680 bytes
-rw-r--r--sd/qa/unit/data/fdo71075.odpbin0 -> 15574 bytes
-rw-r--r--sd/qa/unit/data/fdo71434.pptxbin0 -> 155595 bytes
-rw-r--r--sd/qa/unit/data/fdo71961.odpbin0 -> 23506 bytes
-rw-r--r--sd/qa/unit/data/fdo79731.odpbin0 -> 11008 bytes
-rw-r--r--sd/qa/unit/data/fdo84043.odpbin0 -> 7718 bytes
-rw-r--r--sd/qa/unit/data/fdo90607.pptxbin0 -> 34719 bytes
-rw-r--r--sd/qa/unit/data/fit-to-size.fodp724
-rw-r--r--sd/qa/unit/data/media_embedding.odpbin0 -> 228295 bytes
-rw-r--r--sd/qa/unit/data/n593612.pptxbin0 -> 23024 bytes
-rw-r--r--sd/qa/unit/data/n758621.pptbin0 -> 115712 bytes
-rw-r--r--sd/qa/unit/data/n759180.pptxbin0 -> 39463 bytes
-rw-r--r--sd/qa/unit/data/n762695.pptxbin0 -> 46216 bytes
-rw-r--r--sd/qa/unit/data/n819614.pptxbin0 -> 138478 bytes
-rw-r--r--sd/qa/unit/data/n820786.pptxbin0 -> 43286 bytes
-rw-r--r--sd/qa/unit/data/n828390_4.odpbin0 -> 13928 bytes
-rw-r--r--sd/qa/unit/data/n828390_5.odpbin0 -> 9716 bytes
-rw-r--r--sd/qa/unit/data/n902652.pptxbin0 -> 39315 bytes
-rw-r--r--sd/qa/unit/data/objectwithtext.fodg189
-rw-r--r--sd/qa/unit/data/odg/fail/.gitignore0
-rw-r--r--sd/qa/unit/data/odg/glow.odgbin0 -> 8873 bytes
-rw-r--r--sd/qa/unit/data/odg/gradient-angle.fodg211
-rw-r--r--sd/qa/unit/data/odg/indeterminate/.gitignore0
-rw-r--r--sd/qa/unit/data/odg/ooo124143-1.odgbin0 -> 14818 bytes
-rw-r--r--sd/qa/unit/data/odg/pass/.gitignore0
-rw-r--r--sd/qa/unit/data/odg/pass/CVE-2012-4233-2.odgbin0 -> 67721 bytes
-rw-r--r--sd/qa/unit/data/odg/softedges.odgbin0 -> 10130 bytes
-rw-r--r--sd/qa/unit/data/odg/tdf114488.fodg365
-rw-r--r--sd/qa/unit/data/odp/BulletsAsImage.odpbin0 -> 10754 bytes
-rw-r--r--sd/qa/unit/data/odp/LineStylesOwn.odpbin0 -> 15253 bytes
-rw-r--r--sd/qa/unit/data/odp/Table_with_Cell_Fill.odpbin0 -> 28869 bytes
-rw-r--r--sd/qa/unit/data/odp/Tdf62176.odpbin0 -> 10358 bytes
-rw-r--r--sd/qa/unit/data/odp/author_field.odpbin0 -> 10518 bytes
-rw-r--r--sd/qa/unit/data/odp/author_fixed.odpbin0 -> 10680 bytes
-rw-r--r--sd/qa/unit/data/odp/bnc822341.odpbin0 -> 15983 bytes
-rw-r--r--sd/qa/unit/data/odp/bulletCharAndFont.odpbin0 -> 11279 bytes
-rw-r--r--sd/qa/unit/data/odp/cellspan.odpbin0 -> 13489 bytes
-rw-r--r--sd/qa/unit/data/odp/closed-shapes.odpbin0 -> 16370 bytes
-rw-r--r--sd/qa/unit/data/odp/document_with_linked_graphic.odpbin0 -> 49906 bytes
-rw-r--r--sd/qa/unit/data/odp/document_with_two_images.odpbin0 -> 202183 bytes
-rw-r--r--sd/qa/unit/data/odp/embedded-pdf.odpbin0 -> 25002 bytes
-rw-r--r--sd/qa/unit/data/odp/extfile_field.odpbin0 -> 10918 bytes
-rw-r--r--sd/qa/unit/data/odp/fail/.gitignore0
-rw-r--r--sd/qa/unit/data/odp/fdo77027.odpbin0 -> 13229 bytes
-rw-r--r--sd/qa/unit/data/odp/group_rotation.odpbin0 -> 10429 bytes
-rw-r--r--sd/qa/unit/data/odp/image_transparency.odpbin0 -> 24448 bytes
-rw-r--r--sd/qa/unit/data/odp/images_with_special_IDs.odpbin0 -> 169241 bytes
-rw-r--r--sd/qa/unit/data/odp/indeterminate/.gitignore0
-rw-r--r--sd/qa/unit/data/odp/linked_graphic.jpgbin0 -> 35738 bytes
-rw-r--r--sd/qa/unit/data/odp/loopNoPause.odpbin0 -> 10998 bytes
-rw-r--r--sd/qa/unit/data/odp/loopPause10.odpbin0 -> 10960 bytes
-rw-r--r--sd/qa/unit/data/odp/masterpage_style_parent.odpbin0 -> 17790 bytes
-rw-r--r--sd/qa/unit/data/odp/math.odpbin0 -> 12269 bytes
-rw-r--r--sd/qa/unit/data/odp/numfmt.odpbin0 -> 10608 bytes
-rw-r--r--sd/qa/unit/data/odp/page_transparent_background.odpbin0 -> 11508 bytes
-rw-r--r--sd/qa/unit/data/odp/pass/.gitignore0
-rw-r--r--sd/qa/unit/data/odp/pass/EDB-26517-1.odpbin0 -> 12752 bytes
-rw-r--r--sd/qa/unit/data/odp/pass/ooo56974-1.odpbin0 -> 11326 bytes
-rw-r--r--sd/qa/unit/data/odp/pass/ooo72169-1.odpbin0 -> 4740 bytes
-rw-r--r--sd/qa/unit/data/odp/pass/test-embedded-dejavu.odpbin0 -> 2225735 bytes
-rw-r--r--sd/qa/unit/data/odp/pass/test-slide-name-fields.odpbin0 -> 10916 bytes
-rw-r--r--sd/qa/unit/data/odp/preset-shapes-export.odpbin0 -> 21208 bytes
-rw-r--r--sd/qa/unit/data/odp/rotate_flip.odpbin0 -> 12254 bytes
-rw-r--r--sd/qa/unit/data/odp/shapes-test.odpbin0 -> 61333 bytes
-rw-r--r--sd/qa/unit/data/odp/slidecount_field.odpbin0 -> 9918 bytes
-rw-r--r--sd/qa/unit/data/odp/slidename_field.odpbin0 -> 10089 bytes
-rw-r--r--sd/qa/unit/data/odp/slidenum_field.odpbin0 -> 9882 bytes
-rw-r--r--sd/qa/unit/data/odp/svg-export-text-decorations.odpbin0 -> 12407 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odpbin0 -> 14788 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf100387.odpbin0 -> 10810 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf103567.odpbin0 -> 62137 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf106026.odpbin0 -> 10876 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf108925.odpbin0 -> 11219 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf111798.odpbin0 -> 11183 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf112552.odpbin0 -> 11331 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf112557.odpbin0 -> 12749 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf112647.odpbin0 -> 11172 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf115005.odpbin0 -> 51823 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf115005_no_fallback_images.odpbin0 -> 21100 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf116266.odpbin0 -> 43204 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf116266_chart.svg99
-rw-r--r--sd/qa/unit/data/odp/tdf118768-brake.odpbin0 -> 10742 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf118783.odpbin0 -> 11644 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf118806.odpbin0 -> 11999 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf118825-motionpath.odpbin0 -> 12646 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf118835.odpbin0 -> 11973 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf118836.odpbin0 -> 11655 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf127267DashOnHairline.odpbin0 -> 11874 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf127372.odpbin0 -> 13009 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf127379.odpbin0 -> 19471 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf127901.odpbin0 -> 53808 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128049.odpbin0 -> 18269 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128096.odpbin0 -> 10992 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128345_FullTransparentGradient.odpbin0 -> 11244 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128345_GradientAxial.odpbin0 -> 12561 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128345_GradientLinear.odpbin0 -> 13384 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf128345_GradientRadial.odpbin0 -> 14774 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf48735.odpbin0 -> 15137 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf59046.odpbin0 -> 10800 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf68759.odpbin0 -> 11250 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf80020.odpbin0 -> 13068 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf80224.odpbin0 -> 23894 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf90626.odpbin0 -> 12363 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf90627.odpbin0 -> 38499 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf92076.odpbin0 -> 11185 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf93883.odpbin0 -> 11057 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf96206.odpbin0 -> 12545 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf96708.odpbin0 -> 7758 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf99213-target-missing.odpbin0 -> 11088 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf99224.odpbin0 -> 11212 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf99497_CircleKind.odpbin0 -> 12196 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf99729-legacy.odpbin0 -> 11064 bytes
-rw-r--r--sd/qa/unit/data/odp/tdf99729-new.odpbin0 -> 11149 bytes
-rw-r--r--sd/qa/unit/data/odp/testLegacyShapeAutofit.odpbin0 -> 13611 bytes
-rw-r--r--sd/qa/unit/data/odp/text-test.odpbin0 -> 16596 bytes
-rw-r--r--sd/qa/unit/data/odp/textbox-link-javascript.odpbin0 -> 23573 bytes
-rw-r--r--sd/qa/unit/data/odp/transparent_background.odpbin0 -> 11687 bytes
-rw-r--r--sd/qa/unit/data/pdf/multipage.pdfbin0 -> 13155 bytes
-rw-r--r--sd/qa/unit/data/pdf/txtpic.pdfbin0 -> 21201 bytes
-rw-r--r--sd/qa/unit/data/ppt/FillPatterns.pptbin0 -> 19968 bytes
-rw-r--r--sd/qa/unit/data/ppt/crop.pptbin0 -> 147456 bytes
-rw-r--r--sd/qa/unit/data/ppt/fail/.gitignore0
-rw-r--r--sd/qa/unit/data/ppt/fail/CVE-2010-0033-1.pptbin0 -> 3072 bytes
-rw-r--r--sd/qa/unit/data/ppt/fdo68594.pptbin0 -> 100864 bytes
-rw-r--r--sd/qa/unit/data/ppt/indeterminate/.gitignore0
-rw-r--r--sd/qa/unit/data/ppt/loopNoPause.pptbin0 -> 87552 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/.gitignore0
-rw-r--r--sd/qa/unit/data/ppt/pass/CVE-2006-3655-1.pptbin0 -> 35840 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/CVE-2006-3656-1.pptbin0 -> 35840 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/CVE-2006-3660-1.pptbin0 -> 35840 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/CVE-2006-5296-1.pptbin0 -> 8704 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/CVE-2012-4233-3.pptbin0 -> 423424 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/EDB-39395-1.pptbin0 -> 259072 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/EDB-39397-1.pptbin0 -> 302080 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/crash-1.pptbin0 -> 7677 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/crash-2.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/crash-3.pptbin0 -> 7681 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-1.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-10.pptbin0 -> 7648 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-11.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-12.pptbin0 -> 7705 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-13.pptbin0 -> 7659 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-14.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-15.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-16.pptbin0 -> 7693 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-17.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-18.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-19.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-2.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-20.pptbin0 -> 7732 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-21.pptbin0 -> 7659 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-22.pptbin0 -> 15872 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-3.pptbin0 -> 7680 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-4.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-5.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-6.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-7.pptbin0 -> 7691 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-8.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/hang-9.pptbin0 -> 7712 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/ofz14989-1.pptbin0 -> 60108 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/ofz21531-1.pptbin0 -> 35567 bytes
-rw-r--r--sd/qa/unit/data/ppt/pass/ofz7469-leak-1.pptbin0 -> 4341 bytes
-rw-r--r--sd/qa/unit/data/ppt/placeholder-priority.pptxbin0 -> 26091 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf105150.pptbin0 -> 138752 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf115394.pptbin0 -> 90112 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf116899.pptbin0 -> 113152 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf119629.pptbin0 -> 112128 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf122899_Arc_90_to_91_clockwise.pptbin0 -> 8192 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf126761.pptbin0 -> 100352 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf49561.pptbin0 -> 14336 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf77747.pptbin0 -> 147968 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf79082.pptbin0 -> 72704 bytes
-rw-r--r--sd/qa/unit/data/ppt/tdf93124.pptbin0 -> 85504 bytes
-rw-r--r--sd/qa/unit/data/pptm/macro.pptmbin0 -> 35129 bytes
-rw-r--r--sd/qa/unit/data/pptx/Math.pptxbin0 -> 35240 bytes
-rw-r--r--sd/qa/unit/data/pptx/ShapeLineProperties.pptxbin0 -> 25433 bytes
-rw-r--r--sd/qa/unit/data/pptx/accent-color.pptxbin0 -> 1079347 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_checkbox.pptxbin0 -> 39828 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_combobox.pptxbin0 -> 39414 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_commandbutton.pptxbin0 -> 39860 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_fontproperties.pptxbin0 -> 48562 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_label.pptxbin0 -> 39637 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_listbox.pptxbin0 -> 39370 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_optionbutton.pptxbin0 -> 39586 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_picture.pptxbin0 -> 236898 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_scrollbar.pptxbin0 -> 39882 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_spinbutton.pptxbin0 -> 40850 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_textbox.pptxbin0 -> 41657 bytes
-rw-r--r--sd/qa/unit/data/pptx/activex_togglebutton.pptxbin0 -> 39698 bytes
-rw-r--r--sd/qa/unit/data/pptx/altdescription.pptxbin0 -> 156788 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc480256.pptxbin0 -> 35990 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc584721_1_2.pptxbin0 -> 15008 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc584721_4.pptxbin0 -> 34738 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc591147.pptxbin0 -> 34591 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc862510_5.pptxbin0 -> 63675 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc862510_6.pptxbin0 -> 48707 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc862510_7.pptxbin0 -> 24443 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc870233_1.pptxbin0 -> 34111 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc870233_2.pptxbin0 -> 55758 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc870237.pptxbin0 -> 40889 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc880763.pptxbin0 -> 45631 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc887225.pptxbin0 -> 32814 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc904423.pptxbin0 -> 25119 bytes
-rw-r--r--sd/qa/unit/data/pptx/bnc910045.pptxbin0 -> 37522 bytes
-rw-r--r--sd/qa/unit/data/pptx/bulletColor.pptxbin0 -> 32946 bytes
-rw-r--r--sd/qa/unit/data/pptx/bulletMarginAndIndent.pptxbin0 -> 32905 bytes
-rw-r--r--sd/qa/unit/data/pptx/control_background_color.pptxbin0 -> 85895 bytes
-rw-r--r--sd/qa/unit/data/pptx/crop-to-shape.pptxbin0 -> 83338 bytes
-rw-r--r--sd/qa/unit/data/pptx/cshapes.pptxbin0 -> 173125 bytes
-rw-r--r--sd/qa/unit/data/pptx/customshape-bitmapfill-srcrect.pptxbin0 -> 34892 bytes
-rw-r--r--sd/qa/unit/data/pptx/customxml.pptxbin0 -> 44229 bytes
-rw-r--r--sd/qa/unit/data/pptx/effectOrder.pptxbin0 -> 30482 bytes
-rw-r--r--sd/qa/unit/data/pptx/fail/.gitignore0
-rw-r--r--sd/qa/unit/data/pptx/fail/CVE-2014-6352-1.ppsx1
-rw-r--r--sd/qa/unit/data/pptx/fdo83751.pptxbin0 -> 33818 bytes
-rw-r--r--sd/qa/unit/data/pptx/fill-color-list.pptxbin0 -> 42946 bytes
-rw-r--r--sd/qa/unit/data/pptx/font-scale.pptxbin0 -> 40239 bytes
-rw-r--r--sd/qa/unit/data/pptx/group-rot.pptxbin0 -> 39796 bytes
-rw-r--r--sd/qa/unit/data/pptx/group.pptxbin0 -> 50247 bytes
-rw-r--r--sd/qa/unit/data/pptx/hyperlinktest.pptxbin0 -> 33633 bytes
-rw-r--r--sd/qa/unit/data/pptx/indeterminate/.gitignore0
-rw-r--r--sd/qa/unit/data/pptx/lineStyle.pptxbin0 -> 31446 bytes
-rw-r--r--sd/qa/unit/data/pptx/loopNoPause.pptxbin0 -> 32373 bytes
-rw-r--r--sd/qa/unit/data/pptx/multicol.pptxbin0 -> 25935 bytes
-rw-r--r--sd/qa/unit/data/pptx/n778859.pptxbin0 -> 32444 bytes
-rw-r--r--sd/qa/unit/data/pptx/n80340.pptxbin0 -> 83909 bytes
-rw-r--r--sd/qa/unit/data/pptx/n821567.pptxbin0 -> 179901 bytes
-rw-r--r--sd/qa/unit/data/pptx/n828390.pptxbin0 -> 32803 bytes
-rw-r--r--sd/qa/unit/data/pptx/n828390_2.pptxbin0 -> 32749 bytes
-rw-r--r--sd/qa/unit/data/pptx/n828390_3.pptxbin0 -> 34098 bytes
-rw-r--r--sd/qa/unit/data/pptx/n83889.pptxbin0 -> 33401 bytes
-rw-r--r--sd/qa/unit/data/pptx/n862510_1.pptxbin0 -> 34576 bytes
-rw-r--r--sd/qa/unit/data/pptx/n862510_2.pptxbin0 -> 48923 bytes
-rw-r--r--sd/qa/unit/data/pptx/n862510_4.pptxbin0 -> 32840 bytes
-rw-r--r--sd/qa/unit/data/pptx/n90190.pptxbin0 -> 33256 bytes
-rw-r--r--sd/qa/unit/data/pptx/n90223.pptxbin0 -> 83910 bytes
-rw-r--r--sd/qa/unit/data/pptx/n90255.pptxbin0 -> 32622 bytes
-rw-r--r--sd/qa/unit/data/pptx/numfmt.pptxbin0 -> 41105 bytes
-rw-r--r--sd/qa/unit/data/pptx/ooxtheme.pptxbin0 -> 44886 bytes
-rw-r--r--sd/qa/unit/data/pptx/open-as-read-only.pptxbin0 -> 21569 bytes
-rw-r--r--sd/qa/unit/data/pptx/page_transparent_bitmap.pptxbin0 -> 29823 bytes
-rw-r--r--sd/qa/unit/data/pptx/paraMarginAndIndentation.pptxbin0 -> 32854 bytes
-rw-r--r--sd/qa/unit/data/pptx/pass/.gitignore0
-rw-r--r--sd/qa/unit/data/pptx/pass/CVE-2014-4114.ppsxbin0 -> 109961 bytes
-rw-r--r--sd/qa/unit/data/pptx/predefined-table-style.pptxbin0 -> 36430 bytes
-rw-r--r--sd/qa/unit/data/pptx/presetDashDot.pptxbin0 -> 11273 bytes
-rw-r--r--sd/qa/unit/data/pptx/rightToLeftParagraph.pptxbin0 -> 31841 bytes
-rw-r--r--sd/qa/unit/data/pptx/shape-glow-effect.pptxbin0 -> 13691 bytes
-rw-r--r--sd/qa/unit/data/pptx/shape-soft-edges.pptxbin0 -> 32995 bytes
-rw-r--r--sd/qa/unit/data/pptx/shape-text-rotate.pptxbin0 -> 33784 bytes
-rw-r--r--sd/qa/unit/data/pptx/slidenum_field.pptxbin0 -> 34130 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-accent-process.pptxbin0 -> 46326 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-autoTxRot.pptxbin0 -> 58937 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-autofit-sync.pptxbin0 -> 41874 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptxbin0 -> 40964 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-background.pptxbin0 -> 50424 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-basicprocess.pptxbin0 -> 41154 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-basicradicals.pptxbin0 -> 45602 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-bullet-list.pptxbin0 -> 40468 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-center-cycle.pptxbin0 -> 44405 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-chevron.pptxbin0 -> 34076 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-children.pptxbin0 -> 53014 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-cnt.pptxbin0 -> 47360 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-continuous-block-process.pptxbin0 -> 46204 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-cycle-matrix.pptxbin0 -> 56986 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-cycle.pptxbin0 -> 35322 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-data-follow.pptxbin0 -> 56896 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-dir.pptxbin0 -> 41593 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-equation.pptxbin0 -> 43208 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-font-size.pptxbin0 -> 63915 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-hierarchy.pptxbin0 -> 48933 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-horizontalbulletlist.pptxbin0 -> 44704 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-interopgrabbag.pptxbin0 -> 39419 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-invertedPyramid.pptxbin0 -> 44650 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptxbin0 -> 73085 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-linear-rule.pptxbin0 -> 43743 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-matrix.pptxbin0 -> 44186 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-maxdepth.pptxbin0 -> 43256 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-missing-bullet.pptxbin0 -> 30139 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-multidirectional.pptxbin0 -> 43588 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-org-chart.pptxbin0 -> 57764 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-org-chart2.pptxbin0 -> 64524 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-picture-strip.pptxbin0 -> 52395 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-preserve.pptxbin0 -> 40598 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-pyramid.pptxbin0 -> 44629 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-recursion.pptxbin0 -> 52943 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptxbin0 -> 43399 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-rotation.pptxbin0 -> 43886 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-rotation2.pptxbin0 -> 43658 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-segmentedcycle.pptxbin0 -> 53007 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-snake-rows.pptxbin0 -> 52877 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-text.pptxbin0 -> 38762 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-venndiagram.pptxbin0 -> 47013 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-vertical-block-list.pptxbin0 -> 47533 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart-vertical-box-list.pptxbin0 -> 43018 bytes
-rw-r--r--sd/qa/unit/data/pptx/smartart1.pptxbin0 -> 43385 bytes
-rw-r--r--sd/qa/unit/data/pptx/table-list.pptxbin0 -> 52249 bytes
-rw-r--r--sd/qa/unit/data/pptx/tableBorderLineStyle.pptxbin0 -> 51776 bytes
-rw-r--r--sd/qa/unit/data/pptx/tablescale.pptxbin0 -> 44606 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf100065.pptxbin0 -> 36317 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf100926.pptxbin0 -> 32382 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf100926_ODP.pptxbin0 -> 32382 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf103473.pptxbin0 -> 26752 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf103477.pptxbin0 -> 64312 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf103792.pptxbin0 -> 14273 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf103876.pptxbin0 -> 29585 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104015.pptxbin0 -> 19185 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104201.pptxbin0 -> 15979 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104445.pptxbin0 -> 14291 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104786.pptxbin0 -> 35818 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104788.pptxbin0 -> 82873 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104789.pptxbin0 -> 22544 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptxbin0 -> 41239 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf105150.pptxbin0 -> 31961 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf105739.pptxbin0 -> 30709 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf106638.pptxbin0 -> 447309 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf106867.pptxbin0 -> 52203 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf107608.pptxbin0 -> 31369 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf108926.pptbin0 -> 164864 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf109067.pptxbin0 -> 20183 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf109187.pptxbin0 -> 34647 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf111518.pptxbin0 -> 30463 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf111786.pptxbin0 -> 24566 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf111789.pptxbin0 -> 33637 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf111863.pptxbin0 -> 30755 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf111884.pptxbin0 -> 30898 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112086.pptxbin0 -> 30542 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112088.pptxbin0 -> 30317 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112089.pptxbin0 -> 46671 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112280.pptxbin0 -> 30309 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112333.pptxbin0 -> 30459 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112334.pptxbin0 -> 30041 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf112633.pptxbin0 -> 33697 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf113198.pptxbin0 -> 13847 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf113818-swivel.pptxbin0 -> 33604 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf113822underline.pptxbin0 -> 34449 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf114821.pptxbin0 -> 50235 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf114845_rotateShape.pptxbin0 -> 45018 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf114848.pptxbin0 -> 117854 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf114913.pptxbin0 -> 33238 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf115394-zero.pptxbin0 -> 34352 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf115394.pptxbin0 -> 31282 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf116350-texteffects.pptxbin0 -> 38333 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf119015.pptxbin0 -> 11652 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf119087.pptxbin0 -> 15035 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf119118.pptxbin0 -> 31815 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf119187.pptxbin0 -> 18886 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf120028.pptxbin0 -> 30465 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf120028b.pptxbin0 -> 29838 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf120573.pptxbin0 -> 243853 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf123090.pptxbin0 -> 34570 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf123684.pptxbin0 -> 142961 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125346.pptxbin0 -> 22079 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125346_2.pptxbin0 -> 24482 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125360.pptxbin0 -> 15379 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125360_1.pptxbin0 -> 15480 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125360_2.pptxbin0 -> 15213 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125551.pptxbin0 -> 131374 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125554.pptxbin0 -> 32967 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptxbin0 -> 34718 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf126234.pptxbin0 -> 34091 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf126324.pptxbin0 -> 30634 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf126741.pptxbin0 -> 32437 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf127090.odpbin0 -> 12415 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf127129.pptxbin0 -> 30143 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf127237.pptxbin0 -> 34180 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf127964.pptxbin0 -> 34018 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf128684.pptxbin0 -> 58086 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf128952.pptxbin0 -> 25578 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf129372.pptxbin0 -> 33865 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf129686.pptxbin0 -> 35331 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf131553.pptxbin0 -> 70111 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf131554.pptxbin0 -> 21065 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf132282.pptxbin0 -> 56323 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf134053_dashdot.pptxbin0 -> 14891 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf134174.pptxbin0 -> 186296 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf44223.pptxbin0 -> 63723 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf50499.pptxbin0 -> 40344 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf51340.pptxbin0 -> 16503 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf62255.pptxbin0 -> 31427 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf79007.pptxbin0 -> 46828 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf79082.pptxbin0 -> 24786 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf84205.pptxbin0 -> 45600 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf89064.pptxbin0 -> 24629 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf89927.pptxbin0 -> 417178 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf90626.pptxbin0 -> 24027 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf91378.pptxbin0 -> 33866 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf91999_rotateShape.pptxbin0 -> 21431 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf93097.pptxbin0 -> 29386 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf93830.pptxbin0 -> 64463 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf93868.pptxbin0 -> 69213 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf94238.pptxbin0 -> 35015 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf95932.pptxbin0 -> 66621 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf98477grow.pptxbin0 -> 30023 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf98603.pptxbin0 -> 46390 bytes
-rw-r--r--sd/qa/unit/data/pptx/tdf99030.pptxbin0 -> 59514 bytes
-rw-r--r--sd/qa/unit/data/pptx/testShapeAutofit.pptxbin0 -> 35044 bytes
-rw-r--r--sd/qa/unit/data/pptx/trigger.pptxbin0 -> 32278 bytes
-rw-r--r--sd/qa/unit/data/pptx/vertical-bracket-list.pptxbin0 -> 42124 bytes
-rw-r--r--sd/qa/unit/data/smoketest.pptxbin0 -> 29956 bytes
-rw-r--r--sd/qa/unit/data/strict_ooxml.pptxbin0 -> 29966 bytes
-rw-r--r--sd/qa/unit/data/svg/test.svg105
-rw-r--r--sd/qa/unit/data/sxi/ooo41061-1.sxibin0 -> 42492 bytes
-rw-r--r--sd/qa/unit/data/tdf100491.pptxbin0 -> 30914 bytes
-rw-r--r--sd/qa/unit/data/tdf101242_ODF.odgbin0 -> 9140 bytes
-rw-r--r--sd/qa/unit/data/tdf101242_settings.odgbin0 -> 9233 bytes
-rw-r--r--sd/qa/unit/data/tdf109317.pptxbin0 -> 39405 bytes
-rw-r--r--sd/qa/unit/data/tdf111522.odpbin0 -> 10869 bytes
-rw-r--r--sd/qa/unit/data/tdf119392_InsertLayer.odgbin0 -> 12765 bytes
-rw-r--r--sd/qa/unit/data/tdf119956.odgbin0 -> 11124 bytes
-rw-r--r--sd/qa/unit/data/tdf120527.jpgbin0 -> 1136 bytes
-rw-r--r--sd/qa/unit/data/tdf123841.odgbin0 -> 8590 bytes
-rw-r--r--sd/qa/unit/data/tdf126197.odpbin0 -> 10501 bytes
-rw-r--r--sd/qa/unit/data/tdf128651_CustomShapeUndo.odpbin0 -> 13504 bytes
-rw-r--r--sd/qa/unit/data/tdf129898_faulty_DrawnInSlideshow.odpbin0 -> 12607 bytes
-rw-r--r--sd/qa/unit/data/tdf130988_3D_create_lathe.odgbin0 -> 8874 bytes
-rw-r--r--sd/qa/unit/data/tdf131033_3D_SceneSizeIn2d.odgbin0 -> 9744 bytes
-rw-r--r--sd/qa/unit/data/tdf67248.odgbin0 -> 10302 bytes
-rw-r--r--sd/qa/unit/data/tdf80194_defaultSubscripts.fodg407
-rw-r--r--sd/qa/unit/data/tdf90338.odpbin0 -> 12553 bytes
-rw-r--r--sd/qa/unit/data/tdf90403.pptxbin0 -> 39815 bytes
-rw-r--r--sd/qa/unit/data/tdf92001.odpbin0 -> 11063 bytes
-rw-r--r--sd/qa/unit/data/tdf97808.fodp30
-rw-r--r--sd/qa/unit/data/tdf98839_ShearVFlipH.odgbin0 -> 9070 bytes
-rw-r--r--sd/qa/unit/data/tdf99396.odpbin0 -> 10956 bytes
-rw-r--r--sd/qa/unit/data/tolerance.xml3
-rw-r--r--sd/qa/unit/data/transparent-text.fodg64
-rw-r--r--sd/qa/unit/data/unknown-attribute.fodp26
-rw-r--r--sd/qa/unit/data/xml/fdo47434_0.xml255
-rw-r--r--sd/qa/unit/data/xml/fdo64586_0.xml31
-rw-r--r--sd/qa/unit/data/xml/fdo71434_0.xml10
-rw-r--r--sd/qa/unit/data/xml/n593612_0.xml67
-rw-r--r--sd/qa/unit/data/xml/n758621_0.xml31
-rw-r--r--sd/qa/unit/data/xml/n758621_1.xml31
-rw-r--r--sd/qa/unit/data/xml/n762695_0.xml243
-rw-r--r--sd/qa/unit/data/xml/n762695_1.xml634
-rw-r--r--sd/qa/unit/data/xml/n819614_0.xml6947
-rw-r--r--sd/qa/unit/data/xml/n820786_0.xml3316
-rw-r--r--sd/qa/unit/data/xml/n902652_0.xml309
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page0.xml1666
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page1.xml2425
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page2.xml3104
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page3.xml714
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page4.xml611
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page5.xml664
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page6.xml5
-rw-r--r--sd/qa/unit/data/xml/shapes-test_page7.xml10
-rw-r--r--sd/qa/unit/data/xml/tdf100491_0.xml563
-rw-r--r--sd/qa/unit/data/xml/tdf109317_0.xml492
-rw-r--r--sd/qa/unit/data/xml/tdf90338_0.xml561
-rw-r--r--sd/qa/unit/data/xml/tdf90403_0.xml4
-rw-r--r--sd/qa/unit/data/xml/tdf92001_0.xml44
-rw-r--r--sd/qa/unit/dialogs-test.cxx648
-rw-r--r--sd/qa/unit/export-tests-ooxml1.cxx1182
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx2930
-rw-r--r--sd/qa/unit/export-tests.cxx1314
-rw-r--r--sd/qa/unit/filters-test.cxx118
-rw-r--r--sd/qa/unit/import-tests-smartart.cxx1647
-rw-r--r--sd/qa/unit/import-tests.cxx3214
-rw-r--r--sd/qa/unit/misc-tests.cxx886
-rw-r--r--sd/qa/unit/sdmodeltestbase.hxx490
-rw-r--r--sd/qa/unit/tiledrendering/data/2slides.odpbin0 -> 10984 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/cut_selection_change.odpbin0 -> 10983 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/dummy.odpbin0 -> 10763 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/insert-delete.odpbin0 -> 13178 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/language-all-text.odpbin0 -> 13083 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/notes-view.odpbin0 -> 11184 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/paste_text_onslide.odpbin0 -> 10587 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/regenerate-diagram.pptxbin0 -> 41813 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/search-all.odpbin0 -> 10974 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/shape.odpbin0 -> 10446 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/table-column.odpbin0 -> 10526 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/table.odpbin0 -> 10559 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf102223.odpbin0 -> 17335 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf103083.fodp932
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf104405.fodp1103
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf105502.odpbin0 -> 11629 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf115783.fodp52
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf115873-group.fodp36
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf115873.fodp29
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf118354.odpbin0 -> 14518 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/tdf81754.pptxbin0 -> 35503 bytes
-rw-r--r--sd/qa/unit/tiledrendering/data/title-shape.odpbin0 -> 11406 bytes
-rw-r--r--sd/qa/unit/tiledrendering/tiledrendering.cxx2481
-rw-r--r--sd/qa/unit/uiimpress.cxx384
-rw-r--r--sd/qa/unit/uimpress.cxx115
-rw-r--r--sd/qa/unoapi/knownissues.xcl86
-rw-r--r--sd/qa/unoapi/sd.sce41
523 files changed, 45462 insertions, 0 deletions
diff --git a/sd/qa/filter/eppt/data/custom-shape-bitmap-fill.pptx b/sd/qa/filter/eppt/data/custom-shape-bitmap-fill.pptx
new file mode 100644
index 000000000..b37d7b6a8
--- /dev/null
+++ b/sd/qa/filter/eppt/data/custom-shape-bitmap-fill.pptx
Binary files differ
diff --git a/sd/qa/filter/eppt/eppt.cxx b/sd/qa/filter/eppt/eppt.cxx
new file mode 100644
index 000000000..d1d7cdd02
--- /dev/null
+++ b/sd/qa/filter/eppt/eppt.cxx
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+
+#include <unotools/mediadescriptor.hxx>
+#include <unotools/tempfile.hxx>
+
+using namespace ::com::sun::star;
+
+namespace
+{
+/// Covers sd/source/filter/eppt/ fixes.
+class Test : public test::BootstrapFixture, public unotest::MacrosTest
+{
+private:
+ uno::Reference<lang::XComponent> mxComponent;
+
+public:
+ void setUp() override;
+ void tearDown() override;
+ uno::Reference<lang::XComponent>& getComponent() { return mxComponent; }
+};
+
+void Test::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ mxDesktop.set(frame::Desktop::create(mxComponentContext));
+}
+
+void Test::tearDown()
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ test::BootstrapFixture::tearDown();
+}
+
+char const DATA_DIRECTORY[] = "/sd/qa/filter/eppt/data/";
+
+CPPUNIT_TEST_FIXTURE(Test, testOOXMLCustomShapeBitmapFill)
+{
+ // Save the bugdoc to PPT.
+ OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "custom-shape-bitmap-fill.pptx";
+ getComponent() = loadFromDesktop(aURL);
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ uno::Reference<frame::XStorable> xStorable(getComponent(), uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OUString("MS PowerPoint 97");
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ getComponent()->dispose();
+ getComponent() = loadFromDesktop(aTempFile.GetURL());
+
+ // Check if the bitmap shape was lost.
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(getComponent(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPages> xDrawPages = xDrawPagesSupplier->getDrawPages();
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: com.sun.star.drawing.GraphicObjectShape
+ // - Actual : com.sun.star.drawing.CustomShape
+ // i.e. the custom shape geometry was kept, but the actual bitmap was lost.
+ CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.GraphicObjectShape"),
+ xShape->getShapeType());
+}
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/uitest/findReplace/findReplace.py b/sd/qa/uitest/findReplace/findReplace.py
new file mode 100644
index 000000000..8e5cde344
--- /dev/null
+++ b/sd/qa/uitest/findReplace/findReplace.py
@@ -0,0 +1,109 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict
+from uitest.uihelper.common import select_pos
+from uitest.uihelper.calc import enter_text_to_cell
+from libreoffice.calc.document import get_cell_by_position
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict, type_text
+from uitest.debug import sleep
+import org.libreoffice.unotest
+import pathlib
+
+def get_url_for_data_file(file_name):
+ return pathlib.Path(org.libreoffice.unotest.makeCopyFromTDOC(file_name)).as_uri()
+
+#Find and replace
+
+class findReplace(UITestCase):
+ def test_find_impress(self):
+ impress_doc = self.ui_test.load_file(get_url_for_data_file("findReplace.odp"))
+ document = self.ui_test.get_component()
+ # print(dir(document))
+ # xPages= document.CurrentController.getCurrentPage().Number
+ # print(xPages)
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 1)
+ self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ searchterm = xDialog.getChild("searchterm")
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"second"})) #2nd slide
+ xsearch = xDialog.getChild("search")
+ xsearch.executeAction("CLICK", tuple())
+ #verify
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"third"}))
+ xsearch.executeAction("CLICK", tuple())
+ #verify
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 3) #3rd slide
+
+ xcloseBtn = xDialog.getChild("close")
+ self.ui_test.close_dialog_through_button(xcloseBtn)
+
+ #now open dialog and verify find="third" (remember last value); replace value with "First" ( click match case) with word "Replace" - click twice Replace button, check "Replace first first"
+ self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ searchterm = xDialog.getChild("searchterm")
+ self.assertEqual(get_state_as_dict(searchterm)["Text"], "third")
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"First"}))
+ matchcase = xDialog.getChild("matchcase")
+ matchcase.executeAction("CLICK", tuple()) #click match case
+ replaceterm = xDialog.getChild("replaceterm")
+ replaceterm.executeAction("TYPE", mkPropertyValues({"TEXT":"Replace"})) #replace textbox
+ replace = xDialog.getChild("replace")
+ replace.executeAction("CLICK", tuple())
+ replace.executeAction("CLICK", tuple()) #click twice Replace button
+ #close and reopen the dialog, because of bug 122788
+ xcloseBtn = xDialog.getChild("close")
+ self.ui_test.close_dialog_through_button(xcloseBtn)
+ self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ replaceterm = xDialog.getChild("replaceterm")
+ matchcase = xDialog.getChild("matchcase")
+ #now replace first (uncheck match case) with word "aaa" - click once Replace All button, check "Replace aaa aaa"
+ replaceterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ replaceterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ replaceterm.executeAction("TYPE", mkPropertyValues({"TEXT":"aaa"}))
+ matchcase.executeAction("CLICK", tuple()) #uncheck match case
+ replaceall = xDialog.getChild("replaceall")
+ replaceall.executeAction("CLICK", tuple())
+ xcloseBtn = xDialog.getChild("close")
+ self.ui_test.close_dialog_through_button(xcloseBtn)
+
+ #go to second page
+ self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ searchterm = xDialog.getChild("searchterm")
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"second"})) #2nd slide
+ xsearch = xDialog.getChild("search")
+ xsearch.executeAction("CLICK", tuple())
+ xcloseBtn = xDialog.getChild("close")
+ self.ui_test.close_dialog_through_button(xcloseBtn)
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+ #now check if text "Replace aaa aaa" is on first slide
+ self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ searchterm = xDialog.getChild("searchterm")
+ backsearch = xDialog.getChild("backsearch")
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"Replace aaa aaa"}))
+ backsearch.executeAction("CLICK", tuple())
+ #verify
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 1) #1st slide
+
+ xcloseBtn = xDialog.getChild("close")
+ self.ui_test.close_dialog_through_button(xcloseBtn)
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/autocorrectOptions.py b/sd/qa/uitest/impress_tests/autocorrectOptions.py
new file mode 100644
index 000000000..759304e01
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/autocorrectOptions.py
@@ -0,0 +1,96 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import time
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+
+class autocorrectOptions(UITestCase):
+
+ def test_autocorrect_options_impress(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+ document = self.ui_test.get_component()
+
+ self.ui_test.execute_dialog_through_command(".uno:AutoCorrectDlg")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xTabs = xDialog.getChild("tabcontrol")
+ select_pos(xTabs, "0") #tab replace
+ origtext = xDialog.getChild("origtext")
+ newtext = xDialog.getChild("newtext")
+ xnew = xDialog.getChild("new")
+ xdelete = xDialog.getChild("delete")
+ xtabview = xDialog.getChild("tabview")
+ xreset = xDialog.getChild("reset")
+ nrRows = get_state_as_dict(xtabview)["VisibleCount"]
+
+ #add new rule
+ origtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ origtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ origtext.executeAction("TYPE", mkPropertyValues({"TEXT":"::::"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"TEXT":"dvojtecky"}))
+ xnew.executeAction("CLICK", tuple())
+ nrRowsNew = get_state_as_dict(xtabview)["VisibleCount"]
+ nrRowsDiff = int(nrRowsNew) - int(nrRows)
+ self.assertEqual(nrRowsDiff, 1) #we have +1 rule
+ #delete rule
+ origtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ origtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ origtext.executeAction("TYPE", mkPropertyValues({"TEXT":"::::"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ newtext.executeAction("TYPE", mkPropertyValues({"TEXT":"dvojtecky"}))
+ xdelete.executeAction("CLICK", tuple())
+ self.assertEqual(get_state_as_dict(xtabview)["VisibleCount"], nrRows) #we have default nr of rules
+
+ select_pos(xTabs, "1") #tab Exceptions
+ #abbreviations
+ abbrev = xDialog.getChild("abbrev")
+ newabbrev = xDialog.getChild("newabbrev")
+ delabbrev = xDialog.getChild("delabbrev")
+ abbrevlist = xDialog.getChild("abbrevlist")
+
+ nrRowsAbb = get_state_as_dict(abbrevlist)["Children"]
+ abbrev.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ abbrev.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ abbrev.executeAction("TYPE", mkPropertyValues({"TEXT":"qqqqq"}))
+ newabbrev.executeAction("CLICK", tuple())
+ nrRowsAbbNew = get_state_as_dict(abbrevlist)["Children"]
+ nrRowsAbbDiff = int(nrRowsAbbNew) - int(nrRowsAbb)
+ self.assertEqual(nrRowsAbbDiff, 1) #we have +1 rule
+ delabbrev.executeAction("CLICK", tuple())
+ self.assertEqual(get_state_as_dict(abbrevlist)["Children"], nrRowsAbb) #we have default nr of rules
+
+ #words with two initial capitals
+ double = xDialog.getChild("double")
+ newdouble = xDialog.getChild("newdouble")
+ deldouble = xDialog.getChild("deldouble")
+ doublelist = xDialog.getChild("doublelist")
+
+ nrRowsDouble = get_state_as_dict(doublelist)["Children"]
+ double.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ double.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ double.executeAction("TYPE", mkPropertyValues({"TEXT":"QQqqq"}))
+ newdouble.executeAction("CLICK", tuple())
+ nrRowsDoubleNew = get_state_as_dict(doublelist)["Children"]
+ nrRowsDoubleDiff = int(nrRowsDoubleNew) - int(nrRowsDouble) #convert string and
+ self.assertEqual(nrRowsDoubleDiff, 1) #we have +1 rule
+ deldouble.executeAction("CLICK", tuple())
+ self.assertEqual(get_state_as_dict(doublelist)["Children"], nrRowsDouble) #we have default nr of rules
+
+ xCancelButton = xDialog.getChild("cancel")
+ xCancelButton.executeAction("CLICK", tuple())
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/customSlideShow.py b/sd/qa/uitest/impress_tests/customSlideShow.py
new file mode 100644
index 000000000..61b15cda8
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/customSlideShow.py
@@ -0,0 +1,81 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+import importlib
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+from uitest.uihelper.common import get_state_as_dict, type_text
+
+class customSlideShow(UITestCase):
+ def test_customSlideShow(self):
+ MainDoc = self.ui_test.create_doc_in_start_center("impress")
+ MainWindow = self.xUITest.getTopFocusWindow()
+ TemplateDialog = self.xUITest.getTopFocusWindow()
+ cancel = TemplateDialog.getChild("cancel")
+ self.ui_test.close_dialog_through_button(cancel)
+ self.ui_test.execute_dialog_through_command(".uno:CustomShowDialog")
+ CustomSlideShows = self.xUITest.getTopFocusWindow()
+ new = CustomSlideShows.getChild("new")
+ ok = CustomSlideShows.getChild("ok")
+
+ def handle_new_dlg(DefineCustomSlideShow):
+ customname = DefineCustomSlideShow.getChild("customname")
+ customname.executeAction("TYPE", mkPropertyValues({"KEYCODE": "BACKSPACE"}))
+ customname.executeAction("TYPE", mkPropertyValues({"TEXT": "a"}))
+ customname.executeAction("TYPE", mkPropertyValues({"TEXT": "a"}))
+ pages = DefineCustomSlideShow.getChild("pages")
+ xEntry = pages.getChild("0")
+ xEntry.executeAction("SELECT", tuple())
+ add = DefineCustomSlideShow.getChild("add")
+ add.executeAction("CLICK",tuple())
+ ok = DefineCustomSlideShow.getChild("ok")
+ self.ui_test.close_dialog_through_button(ok)
+
+ self.ui_test.execute_blocking_action(new.executeAction, args=('CLICK', ()),
+ dialog_handler=handle_new_dlg)
+ self.ui_test.close_dialog_through_button(ok)
+ #verify
+ self.ui_test.execute_dialog_through_command(".uno:CustomShowDialog")
+ CustomSlideShows = self.xUITest.getTopFocusWindow()
+ edit = CustomSlideShows.getChild("edit")
+ customshowlist = CustomSlideShows.getChild("customshowlist")
+ self.assertEqual(get_state_as_dict(customshowlist)["SelectionCount"], "1")
+ select_pos(customshowlist, "1")
+ ok = CustomSlideShows.getChild("ok")
+
+ def handle_edit_dlg(DefineCustomSlideShow):
+ customname = DefineCustomSlideShow.getChild("customname")
+ self.assertEqual(get_state_as_dict(customname)["Text"], "aa")
+# print(DefineCustomSlideShow.getChildren())
+ custompages = DefineCustomSlideShow.getChild("custompages")
+ pages = DefineCustomSlideShow.getChild("pages")
+ remove = DefineCustomSlideShow.getChild("remove")
+# print(get_state_as_dict(custompages))
+ self.assertEqual(get_state_as_dict(custompages)["Children"], "1")
+ self.assertEqual(get_state_as_dict(pages)["Children"], "1")
+ xEntry = custompages.getChild("0")
+ xEntry.executeAction("SELECT", tuple())
+# remove.executeAction("CLICK",tuple()) #tdf126951
+ self.assertEqual(get_state_as_dict(custompages)["Children"], "1")
+ self.assertEqual(get_state_as_dict(pages)["Children"], "1")
+ cancel = DefineCustomSlideShow.getChild("cancel")
+ self.ui_test.close_dialog_through_button(cancel)
+
+ self.ui_test.execute_blocking_action(edit.executeAction, args=('CLICK', ()),
+ dialog_handler=handle_edit_dlg)
+
+ CustomSlideShows = self.xUITest.getTopFocusWindow()
+ delete = CustomSlideShows.getChild("delete")
+ customshowlist = CustomSlideShows.getChild("customshowlist")
+ self.assertEqual(get_state_as_dict(customshowlist)["Children"], "1")
+
+# delete.executeAction("CLICK",tuple())
+# self.assertEqual(get_state_as_dict(customshowlist)["Children"], "0")
+
+ ok = CustomSlideShows.getChild("ok")
+ self.ui_test.close_dialog_through_button(ok)
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/data/findReplace.odp b/sd/qa/uitest/impress_tests/data/findReplace.odp
new file mode 100644
index 000000000..6ccbfcfed
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/data/findReplace.odp
Binary files differ
diff --git a/sd/qa/uitest/impress_tests/documentProperties.py b/sd/qa/uitest/impress_tests/documentProperties.py
new file mode 100644
index 000000000..54ad2947b
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/documentProperties.py
@@ -0,0 +1,99 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import time
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+
+
+class ImpressDocumentProperties(UITestCase):
+
+ def test_open_document_properties_impress(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+
+ self.ui_test.execute_dialog_through_command(".uno:SetDocumentProperties")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xResetBtn = xDialog.getChild("reset")
+ xResetBtn.executeAction("CLICK", tuple())
+ xTabs = xDialog.getChild("tabcontrol")
+
+ select_pos(xTabs, "0") #first tab
+ xUserDataCheckbox = xDialog.getChild("userdatacb") # apply user data
+ xUserDataCheckbox.executeAction("CLICK", tuple())
+ xThumbSaveCheckbox = xDialog.getChild("thumbnailsavecb") # save preview image with document
+ xThumbSaveCheckbox.executeAction("CLICK", tuple())
+
+ #digital signature
+ xDigSignBtn = xDialog.getChild("signature")
+ def handle_sign_dlg(dialog):
+ xNoBtn = dialog.getChild("no")
+ self.ui_test.close_dialog_through_button(xNoBtn)
+ self.ui_test.execute_blocking_action(xDigSignBtn.executeAction, args=('CLICK', ()),
+ dialog_handler=handle_sign_dlg)
+
+ select_pos(xTabs, "1") #tab Description
+
+ xTitleText = xDialog.getChild("title")
+ xTitleText.executeAction("TYPE", mkPropertyValues({"TEXT":"Title text"}))
+ xSubjectText = xDialog.getChild("subject")
+ xSubjectText.executeAction("TYPE", mkPropertyValues({"TEXT":"Subject text"}))
+ xKeywordsText = xDialog.getChild("keywords")
+ xKeywordsText.executeAction("TYPE", mkPropertyValues({"TEXT":"Keywords text"}))
+ xCommentsText = xDialog.getChild("comments")
+ xCommentsText.executeAction("TYPE", mkPropertyValues({"TEXT":"Comments text"}))
+
+ #Font tab
+ select_pos(xTabs, "4") #tab Fonts
+ xFontEmbedCheckbox = xDialog.getChild("embedFonts")
+ xFontEmbedCheckbox.executeAction("CLICK", tuple())
+
+ #Security tab
+ select_pos(xTabs, "3") #tab Security
+ xReadOnlyCheckbox = xDialog.getChild("readonly")
+ xReadOnlyCheckbox.executeAction("CLICK", tuple())
+
+ select_pos(xTabs, "2") #tab Custom properties
+ #add custom properties ------>>>>>>>>>>> not supported
+ xAddBtn = xDialog.getChild("add")
+ xAddBtn.executeAction("CLICK", tuple())
+
+ xOkBtn = xDialog.getChild("ok")
+ xOkBtn.executeAction("CLICK", tuple())
+
+ #now open the dialog again and read the properties
+ self.ui_test.execute_dialog_through_command(".uno:SetDocumentProperties")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xTitleText = xDialog.getChild("title")
+ xSubjectText = xDialog.getChild("subject")
+ xKeywordsText = xDialog.getChild("keywords")
+ xCommentsText = xDialog.getChild("comments")
+ xReadOnlyCheckbox = xDialog.getChild("readonly")
+ xRecordChangesCheckbox = xDialog.getChild("recordchanges")
+ xFontEmbedCheckbox = xDialog.getChild("embedFonts")
+ xUserDataCheckbox = xDialog.getChild("userdatacb")
+ xThumbSaveCheckbox = xDialog.getChild("thumbnailsavecb")
+ self.assertEqual(get_state_as_dict(xTitleText)["Text"], "Title text")
+ self.assertEqual(get_state_as_dict(xSubjectText)["Text"], "Subject text")
+ self.assertEqual(get_state_as_dict(xKeywordsText)["Text"], "Keywords text")
+ self.assertEqual(get_state_as_dict(xReadOnlyCheckbox)["Selected"], "true")
+ self.assertEqual(get_state_as_dict(xReadOnlyCheckbox)["Selected"], "true")
+ self.assertEqual(get_state_as_dict(xFontEmbedCheckbox)["Selected"], "true")
+ self.assertEqual(get_state_as_dict(xUserDataCheckbox)["Selected"], "false")
+ self.assertEqual(get_state_as_dict(xThumbSaveCheckbox)["Selected"], "false")
+ self.assertEqual(get_state_as_dict(xCommentsText)["Text"], "Comments text")
+ xResetBtn = xDialog.getChild("reset")
+ xResetBtn.executeAction("CLICK", tuple())
+ xCancBtn = xDialog.getChild("cancel")
+ xCancBtn.executeAction("CLICK", tuple())
+
+ self.ui_test.close_doc()
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/insertSlide.py b/sd/qa/uitest/impress_tests/insertSlide.py
new file mode 100644
index 000000000..396079d3f
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/insertSlide.py
@@ -0,0 +1,55 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import time
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+#Bug 85360 - LibreOffice crashes and crashes desktop too on inserting 4th slide
+
+class insertSlide(UITestCase):
+
+ def test_insert_slide(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+ document = self.ui_test.get_component()
+ self.assertEqual(document.DrawPages.getCount(), 1) #nr. of pages
+
+ self.xUITest.executeCommand(".uno:InsertPage")
+
+ #verify
+ self.assertEqual(document.DrawPages.getCount(), 2) #nr. of pages
+ #undo
+ self.xUITest.executeCommand(".uno:Undo")
+ self.assertEqual(document.DrawPages.getCount(), 1) #nr. of pages
+ self.ui_test.close_doc()
+
+ def test_tdf85360_insert_4th_slide(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+ document = self.ui_test.get_component()
+ self.assertEqual(document.DrawPages.getCount(), 1) #nr. of pages
+
+ self.xUITest.executeCommand(".uno:InsertPage")
+ self.xUITest.executeCommand(".uno:InsertPage")
+ self.xUITest.executeCommand(".uno:InsertPage")
+ self.xUITest.executeCommand(".uno:InsertPage")
+ #verify
+ self.assertEqual(document.DrawPages.getCount(), 5) #nr. of pages
+ #undo
+ self.xUITest.executeCommand(".uno:Undo")
+ self.xUITest.executeCommand(".uno:Undo")
+ self.xUITest.executeCommand(".uno:Undo")
+ self.xUITest.executeCommand(".uno:Undo")
+ self.assertEqual(document.DrawPages.getCount(), 1) #nr. of pages
+ self.ui_test.close_doc()
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/masterElements.py b/sd/qa/uitest/impress_tests/masterElements.py
new file mode 100644
index 000000000..73c944074
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/masterElements.py
@@ -0,0 +1,52 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import time
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+
+class masterElements(UITestCase):
+
+ def test_master_elements(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+ document = self.ui_test.get_component()
+
+ self.ui_test.execute_dialog_through_command(".uno:MasterLayouts")
+ xDialog = self.xUITest.getTopFocusWindow()
+
+ xpagenumber = xDialog.getChild("pagenumber")
+ xfooter = xDialog.getChild("footer")
+ datetime = xDialog.getChild("datetime")
+ xpagenumber.executeAction("CLICK", tuple())
+ xfooter.executeAction("CLICK", tuple())
+ datetime.executeAction("CLICK", tuple())
+
+ xOKButton = xDialog.getChild("ok")
+ xOKButton.executeAction("CLICK", tuple())
+
+ #verify
+ self.ui_test.execute_dialog_through_command(".uno:MasterLayouts")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xfooter = xDialog.getChild("footer")
+ datetime = xDialog.getChild("datetime")
+ xpagenumber = xDialog.getChild("pagenumber")
+
+ self.assertEqual(get_state_as_dict(xfooter)["Selected"], "false")
+ self.assertEqual(get_state_as_dict(datetime)["Selected"], "false")
+ self.assertEqual(get_state_as_dict(xpagenumber)["Selected"], "false")
+
+ xOKButton = xDialog.getChild("ok")
+ xOKButton.executeAction("CLICK", tuple())
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/renameSlide.py b/sd/qa/uitest/impress_tests/renameSlide.py
new file mode 100644
index 000000000..da203fd21
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/renameSlide.py
@@ -0,0 +1,41 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+import time
+from uitest.debug import sleep
+from uitest.uihelper.common import select_pos
+
+class renameSlide(UITestCase):
+
+ def test_rename_slide(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+
+ self.ui_test.execute_dialog_through_command(".uno:RenamePage")
+ xDialog = self.xUITest.getTopFocusWindow()
+
+ name_entry = xDialog.getChild("name_entry")
+ name_entry.executeAction("TYPE", mkPropertyValues({"TEXT":"NewName"}))
+
+ xOKBtn = xDialog.getChild("ok")
+ self.ui_test.close_dialog_through_button(xOKBtn)
+
+ #verify
+ self.ui_test.execute_dialog_through_command(".uno:RenamePage")
+ xDialog = self.xUITest.getTopFocusWindow()
+
+ name_entry = xDialog.getChild("name_entry")
+ self.assertEqual(get_state_as_dict(name_entry)["Text"], "NewName")
+ xOKBtn = xDialog.getChild("ok")
+ self.ui_test.close_dialog_through_button(xOKBtn)
+
+ self.ui_test.close_doc()
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/slideShowSettings.py b/sd/qa/uitest/impress_tests/slideShowSettings.py
new file mode 100644
index 000000000..2d2a5920d
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/slideShowSettings.py
@@ -0,0 +1,62 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+import importlib
+from uitest.debug import sleep
+from uitest.uihelper.common import get_state_as_dict, type_text
+
+class slideShowSettings(UITestCase):
+ def test_slideShowSettings(self):
+ MainDoc = self.ui_test.create_doc_in_start_center("impress")
+ MainWindow = self.xUITest.getTopFocusWindow()
+ TemplateDialog = self.xUITest.getTopFocusWindow()
+ cancel = TemplateDialog.getChild("cancel")
+ self.ui_test.close_dialog_through_button(cancel)
+ self.xUITest.executeCommand(".uno:InsertPage")
+ self.ui_test.execute_dialog_through_command(".uno:PresentationDialog")
+ PresentationDialog = self.xUITest.getTopFocusWindow()
+
+ xfrom = PresentationDialog.getChild("from")
+ xfrom.executeAction("CLICK",tuple())
+ from_cb = PresentationDialog.getChild("from_cb")
+ from_cb.executeAction("SELECT", mkPropertyValues({"POS": "0"}))
+ window = PresentationDialog.getChild("window")
+ window.executeAction("CLICK",tuple())
+ manualslides = PresentationDialog.getChild("manualslides")
+ manualslides.executeAction("CLICK",tuple())
+ pointervisible = PresentationDialog.getChild("pointervisible")
+ pointervisible.executeAction("CLICK",tuple())
+ pointeraspen = PresentationDialog.getChild("pointeraspen")
+ pointeraspen.executeAction("CLICK",tuple())
+ animationsallowed = PresentationDialog.getChild("animationsallowed")
+ animationsallowed.executeAction("CLICK",tuple())
+ changeslidesbyclick = PresentationDialog.getChild("changeslidesbyclick")
+ changeslidesbyclick.executeAction("CLICK",tuple())
+
+ ok = PresentationDialog.getChild("ok")
+ self.ui_test.close_dialog_through_button(ok)
+ #verify
+ self.ui_test.execute_dialog_through_command(".uno:PresentationDialog")
+ PresentationDialog = self.xUITest.getTopFocusWindow()
+ xfrom = PresentationDialog.getChild("from")
+ self.assertEqual(get_state_as_dict(xfrom)["Checked"], "true")
+ from_cb = PresentationDialog.getChild("from_cb")
+ self.assertEqual(get_state_as_dict(from_cb)["SelectEntryText"], "Slide 1")
+ manualslides = PresentationDialog.getChild("manualslides")
+ self.assertEqual(get_state_as_dict(manualslides)["Selected"], "true")
+ pointervisible = PresentationDialog.getChild("pointervisible")
+ self.assertEqual(get_state_as_dict(pointervisible)["Selected"], "true")
+ pointeraspen = PresentationDialog.getChild("pointeraspen")
+ self.assertEqual(get_state_as_dict(pointeraspen)["Selected"], "true")
+ animationsallowed = PresentationDialog.getChild("animationsallowed")
+ self.assertEqual(get_state_as_dict(animationsallowed)["Selected"], "false")
+ changeslidesbyclick = PresentationDialog.getChild("changeslidesbyclick")
+ self.assertEqual(get_state_as_dict(changeslidesbyclick)["Selected"], "false")
+
+ cancel = PresentationDialog.getChild("cancel")
+ self.ui_test.close_dialog_through_button(cancel)
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/tdf126605.py b/sd/qa/uitest/impress_tests/tdf126605.py
new file mode 100644
index 000000000..744324717
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/tdf126605.py
@@ -0,0 +1,28 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+
+class tdf126605(UITestCase):
+
+ def test_run(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+
+ xDoc = self.xUITest.getTopFocusWindow()
+ xEdit = xDoc.getChild("impress_win")
+ xEdit.executeAction("TYPE", mkPropertyValues({"TEXT":"test"}))
+
+ # Without the accompanying fix in place, it would crash at this point
+ self.xUITest.executeCommand(".uno:ParaRightToLeft")
+ self.xUITest.executeCommand(".uno:ParaLeftToRight")
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/tdf130440.py b/sd/qa/uitest/impress_tests/tdf130440.py
new file mode 100644
index 000000000..348feb33c
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/tdf130440.py
@@ -0,0 +1,57 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+
+class tdf129346(UITestCase):
+
+ def test_run(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+
+ xToolkit = self.xContext.ServiceManager.createInstance('com.sun.star.awt.Toolkit')
+
+ document = self.ui_test.get_component()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 1)
+ self.xUITest.executeCommand(".uno:DuplicatePage")
+ xToolkit.processEventsToIdle()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+
+ xDoc = self.xUITest.getTopFocusWindow()
+ xEdit = xDoc.getChild("impress_win")
+ xEdit.executeAction("TYPE", mkPropertyValues({"TEXT":"test"}))
+
+ self.xUITest.executeCommand(".uno:Undo")
+ xToolkit.processEventsToIdle()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+
+ self.xUITest.executeCommand(".uno:Undo")
+ xToolkit.processEventsToIdle()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+
+ self.xUITest.executeCommand(".uno:Undo")
+ xToolkit.processEventsToIdle()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 1)
+
+ self.xUITest.executeCommand(".uno:Redo")
+ xToolkit.processEventsToIdle()
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+
+ self.xUITest.executeCommand(".uno:Redo")
+
+ xDoc = self.xUITest.getTopFocusWindow()
+ xEdit = xDoc.getChild("impress_win")
+ xEdit.executeAction("TYPE", mkPropertyValues({"TEXT":"test"}))
+
+ xToolkit.processEventsToIdle()
+ #Without the accompanying fix in place, it would fail with AssertionError: 2 != 1
+ self.assertEqual(document.CurrentController.getCurrentPage().Number, 2)
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/uitest/impress_tests/tdf91762.py b/sd/qa/uitest/impress_tests/tdf91762.py
new file mode 100644
index 000000000..3c52b4ff9
--- /dev/null
+++ b/sd/qa/uitest/impress_tests/tdf91762.py
@@ -0,0 +1,48 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict
+from libreoffice.uno.propertyvalue import mkPropertyValues
+
+class tdf91762(UITestCase):
+
+ def test_tdf91762(self):
+ self.ui_test.create_doc_in_start_center("impress")
+ xTemplateDlg = self.xUITest.getTopFocusWindow()
+ xCancelBtn = xTemplateDlg.getChild("cancel")
+ self.ui_test.close_dialog_through_button(xCancelBtn)
+
+ self.xUITest.executeCommand(".uno:AssignLayout?WhatLayout:long=1")
+
+ self.ui_test.execute_dialog_through_command(".uno:InsertTable")
+ xDialog = self.xUITest.getTopFocusWindow()
+ self.assertEqual('5', get_state_as_dict(xDialog.getChild('columns'))['Text'])
+ self.assertEqual('2', get_state_as_dict(xDialog.getChild('rows'))['Text'])
+ xOkBtn = xDialog.getChild("ok")
+ self.ui_test.close_dialog_through_button(xOkBtn)
+
+ document = self.ui_test.get_component()
+ self.assertEqual(1929, document.DrawPages[0].getByIndex(1).BoundRect.Height)
+ self.assertEqual(25198, document.DrawPages[0].getByIndex(1).Size.Width)
+ self.assertEqual(1923, document.DrawPages[0].getByIndex(1).Size.Height)
+
+ self.assertEqual(1400, document.DrawPages[0].getByIndex(1).Position.X)
+ self.assertEqual(3685, document.DrawPages[0].getByIndex(1).Position.Y)
+
+ #The table is selected, use esc to start editing
+ xDoc = self.xUITest.getTopFocusWindow()
+ xEdit = xDoc.getChild("impress_win")
+ for i in range(5):
+ xEdit.executeAction("TYPE", mkPropertyValues({"TEXT":"test"}))
+ xEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"}))
+
+ # tdf#138011: Without the fix in place, this test would have failed with
+ self.assertEqual(5494, document.DrawPages[0].getByIndex(1).BoundRect.Height)
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sd/qa/unit/HtmlExportTest.cxx b/sd/qa/unit/HtmlExportTest.cxx
new file mode 100644
index 000000000..551433c13
--- /dev/null
+++ b/sd/qa/unit/HtmlExportTest.cxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "sdmodeltestbase.hxx"
+
+#include <test/htmltesttools.hxx>
+#include <test/xmltesttools.hxx>
+
+using namespace css;
+
+class SdHTMLFilterTest : public SdModelTestBase, public XmlTestTools, public HtmlTestTools
+{
+private:
+ htmlDocUniquePtr exportAndParseHtml(sd::DrawDocShellRef const& xDocShRef)
+ {
+ FileFormat* pFormat = getFormat(HTML);
+ OUString aExt = "." + OUString::createFromAscii(pFormat->pName);
+ utl::TempFile aTempFile(OUString(), true, &aExt);
+ aTempFile.EnableKillingFile();
+ exportTo(xDocShRef.get(), pFormat, aTempFile);
+ return parseHtml(aTempFile);
+ }
+
+public:
+ void testHTMLExport()
+ {
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/HtmlExportTestDocument.odp"), ODP);
+ htmlDocUniquePtr htmlDoc = exportAndParseHtml(xDocShRef);
+
+ assertXPath(htmlDoc, "/html", 1);
+ assertXPath(htmlDoc, "/html/body", 1);
+ assertXPath(htmlDoc, "/html/body/h1", 4);
+ assertXPath(htmlDoc, "/html/body/table", 1);
+ assertXPath(htmlDoc, "/html/body/table/tr", 5);
+ assertXPath(htmlDoc, "/html/body/ul", 1);
+ assertXPath(htmlDoc, "/html/body/ul/li", 2);
+
+ assertXPath(htmlDoc, "/html/head/meta[1]", "content", "text/html; charset=utf-8");
+ assertXPath(htmlDoc, "/html/head/meta[2]", "name", "generator");
+ assertXPath(htmlDoc, "/html/head/meta[3]", "name", "created");
+ assertXPath(htmlDoc, "/html/head/meta[3]", "content", "2014-04-09T17:05:41.987922038");
+ }
+
+ CPPUNIT_TEST_SUITE(SdHTMLFilterTest);
+ CPPUNIT_TEST(testHTMLExport);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdHTMLFilterTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/SVGExportTests.cxx b/sd/qa/unit/SVGExportTests.cxx
new file mode 100644
index 000000000..35adb1ea0
--- /dev/null
+++ b/sd/qa/unit/SVGExportTests.cxx
@@ -0,0 +1,135 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/bootstrapfixture.hxx>
+
+#include <sal/macros.h>
+#include <test/xmltesttools.hxx>
+#include <unotest/macros_test.hxx>
+#include <unotools/mediadescriptor.hxx>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <comphelper/processfactory.hxx>
+
+#define SVG_SVG *[name()='svg']
+#define SVG_G *[name()='g']
+#define SVG_TEXT *[name()='text']
+#define SVG_TSPAN *[name()='tspan']
+
+using namespace css;
+
+class SdSVGFilterTest : public test::BootstrapFixture, public unotest::MacrosTest, public XmlTestTools
+{
+ uno::Reference<lang::XComponent> mxComponent;
+ utl::TempFile maTempFile;
+
+protected:
+ virtual void registerNamespaces(xmlXPathContextPtr& pXmlXpathCtx) override
+ {
+ xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("svg"), BAD_CAST("urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"));
+ }
+
+ void load(const OUString& pDir, const char* pName)
+ {
+ return loadURL(m_directories.getURLFromSrc(pDir) + OUString::createFromAscii(pName), pName);
+ }
+
+ void loadURL(OUString const& rURL, const char* pName)
+ {
+ if (mxComponent.is())
+ mxComponent->dispose();
+ // Output name early, so in the case of a hang, the name of the hanging input file is visible.
+ if (pName)
+ std::cout << pName << ",";
+ mxComponent = loadFromDesktop(rURL);
+ CPPUNIT_ASSERT(mxComponent.is());
+ }
+
+ void save()
+ {
+ uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OUString("impress_svg_Export");
+ xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ }
+
+public:
+ SdSVGFilterTest()
+ {
+ maTempFile.EnableKillingFile();
+ }
+
+ virtual void setUp() override
+ {
+ test::BootstrapFixture::setUp();
+
+ mxDesktop.set(css::frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory())));
+ }
+
+ virtual void tearDown() override
+ {
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ test::BootstrapFixture::tearDown();
+ }
+
+ void executeExport(const char* pName)
+ {
+ load( "/sd/qa/unit/data/odp/", pName );
+ save();
+ }
+
+ void testSVGExportTextDecorations()
+ {
+ executeExport( "svg-export-text-decorations.odp" );
+
+ xmlDocUniquePtr svgDoc = parseXml(maTempFile);
+ CPPUNIT_ASSERT(svgDoc);
+
+ svgDoc->name = reinterpret_cast<char *>(xmlStrdup(reinterpret_cast<xmlChar const *>(OUStringToOString(maTempFile.GetURL(), RTL_TEXTENCODING_UTF8).getStr())));
+
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG ), 1);
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2] ), "class", "SlideGroup");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G ), "class", "Slide");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[1] ), "class", "TitleText");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[1]/SVG_G/SVG_TEXT ), "class", "TextShape");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[1]/SVG_G/SVG_TEXT/SVG_TSPAN ), "class", "TextParagraph");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[1]/SVG_G/SVG_TEXT/SVG_TSPAN ), "text-decoration", "underline");
+
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[2]/SVG_G/SVG_TEXT ), "class", "TextShape");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[2]/SVG_G/SVG_TEXT/SVG_TSPAN ), "class", "TextParagraph");
+ assertXPath(svgDoc, SAL_STRINGIFY( /SVG_SVG/SVG_G[2]/SVG_G/SVG_G/SVG_G/SVG_G/SVG_G[2]/SVG_G/SVG_TEXT/SVG_TSPAN ), "text-decoration", "line-through");
+ }
+
+ void testSVGExportJavascriptURL()
+ {
+ executeExport("textbox-link-javascript.odp");
+
+ xmlDocUniquePtr svgDoc = parseXml(maTempFile);
+ CPPUNIT_ASSERT(svgDoc);
+
+ // There should be only one child (no link to javascript url)
+ assertXPathChildren(svgDoc,
+ SAL_STRINGIFY(/ SVG_SVG / SVG_G[2] / SVG_G / SVG_G / SVG_G / SVG_G
+ / SVG_G[4] / SVG_G),
+ 1);
+ }
+
+ CPPUNIT_TEST_SUITE(SdSVGFilterTest);
+ CPPUNIT_TEST(testSVGExportTextDecorations);
+ CPPUNIT_TEST(testSVGExportJavascriptURL);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdSVGFilterTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/SdrPdfImportTest.cxx b/sd/qa/unit/SdrPdfImportTest.cxx
new file mode 100644
index 000000000..9f30ff500
--- /dev/null
+++ b/sd/qa/unit/SdrPdfImportTest.cxx
@@ -0,0 +1,128 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+
+#include <svdpdf.hxx>
+
+#include <config_features.h>
+
+#include <comphelper/scopeguard.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <svx/svdograf.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/editobj.hxx>
+
+#include <DrawDocShell.hxx>
+#include <DrawController.hxx>
+#include <ViewShell.hxx>
+#include <drawdoc.hxx>
+#include <sdpage.hxx>
+#include <unomodel.hxx>
+
+#include <com/sun/star/frame/Desktop.hpp>
+
+using namespace css;
+
+class SdrPdfImportTest : public test::BootstrapFixture, public unotest::MacrosTest
+{
+protected:
+ uno::Reference<lang::XComponent> mxComponent;
+
+public:
+ virtual void setUp() override;
+ virtual void tearDown() override;
+};
+
+void SdrPdfImportTest::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ mxDesktop.set(frame::Desktop::create(mxComponentContext));
+}
+
+void SdrPdfImportTest::tearDown()
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ test::BootstrapFixture::tearDown();
+}
+
+// Load the PDF in Draw, which will load the PDF as an Graphic, then
+// mark the graphic object and trigger "break" function. This should
+// convert the PDF content into objects/shapes.
+CPPUNIT_TEST_FIXTURE(SdrPdfImportTest, testImportSimpleText)
+{
+#if HAVE_FEATURE_PDFIUM && !defined(_WIN32)
+ // We need to enable PDFium import (and make sure to disable after the test)
+ bool bResetEnvVar = false;
+ if (getenv("LO_IMPORT_USE_PDFIUM") == nullptr)
+ {
+ bResetEnvVar = true;
+ setenv("LO_IMPORT_USE_PDFIUM", "1", false);
+ }
+ comphelper::ScopeGuard aPDFiumEnvVarGuard([&]() {
+ if (bResetEnvVar)
+ unsetenv("LO_IMPORT_USE_PDFIUM");
+ });
+
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc("sd/qa/unit/data/SimplePDF.pdf"));
+ auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell();
+ CPPUNIT_ASSERT(pViewShell);
+
+ // Get the first page - there should be only one.
+ SdPage* pPage = pViewShell->GetActualPage();
+ CPPUNIT_ASSERT(pPage);
+
+ // Get the first object - there should be only one.
+ SdrObject* pObject = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pObject);
+
+ // Check the object is a graphic object
+ SdrGrafObj* pGraphicObject = dynamic_cast<SdrGrafObj*>(pObject);
+ CPPUNIT_ASSERT(pGraphicObject);
+ // Check the graphic is a vector graphic and that it is PDF
+ Graphic aGraphic = pGraphicObject->GetGraphic();
+ auto const& pVectorGraphicData = aGraphic.getVectorGraphicData();
+ CPPUNIT_ASSERT(pVectorGraphicData);
+ CPPUNIT_ASSERT_EQUAL(VectorGraphicDataType::Pdf,
+ pVectorGraphicData->getVectorGraphicDataType());
+
+ // Mark the object
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+
+ // Execute the break operation - to turn the PDF into shapes/objects
+ pViewShell->GetDrawView()->DoImportMarkedMtf();
+
+ // Check Objects after import
+
+ SdrObject* pImportedObject = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pImportedObject);
+
+ // Object should be a text object containing one paragraph with
+ // content "This is PDF!"
+
+ SdrTextObj* pTextObject = dynamic_cast<SdrTextObj*>(pImportedObject);
+ CPPUNIT_ASSERT(pTextObject);
+ OutlinerParaObject* pOutlinerParagraphObject = pTextObject->GetOutlinerParaObject();
+ const EditTextObject& aEdit = pOutlinerParagraphObject->GetTextObject();
+ OUString sText = aEdit.GetText(0);
+ CPPUNIT_ASSERT_EQUAL(OUString("This is PDF!"), sText);
+
+#endif // HAVE_FEATURE_PDFIUM
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/activex-controls-tests.cxx b/sd/qa/unit/activex-controls-tests.cxx
new file mode 100644
index 000000000..4903d25b0
--- /dev/null
+++ b/sd/qa/unit/activex-controls-tests.cxx
@@ -0,0 +1,1195 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "sdmodeltestbase.hxx"
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/drawing/XControlShape.hpp>
+#include <com/sun/star/awt/TextAlign.hpp>
+#include <com/sun/star/style/VerticalAlignment.hpp>
+#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+#include <com/sun/star/awt/VisualEffect.hpp>
+#include <com/sun/star/awt/ImagePosition.hpp>
+#include <com/sun/star/awt/ImageScaleMode.hpp>
+#include <com/sun/star/awt/FontWeight.hpp>
+#include <com/sun/star/awt/FontSlant.hpp>
+#include <com/sun/star/awt/FontUnderline.hpp>
+#include <com/sun/star/awt/FontStrikeout.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+
+
+class SdActiveXControlsTest: public SdModelTestBase
+{
+public:
+ void testBackgroundColor();
+ void testLabelProperties();
+ void testTextBoxProperties();
+ void testSpinButtonProperties();
+ void testCommandButtonProperties();
+ void testScrollBarProperties();
+ void testCheckBoxProperties();
+ void testOptionButtonProperties();
+ void testComboBoxProperties();
+ void testListBoxProperties();
+ void testToggleButtonProperties();
+ void testPictureProperties();
+ void testFontProperties();
+
+ CPPUNIT_TEST_SUITE(SdActiveXControlsTest);
+
+ CPPUNIT_TEST(testBackgroundColor);
+ CPPUNIT_TEST(testLabelProperties);
+ CPPUNIT_TEST(testTextBoxProperties);
+ CPPUNIT_TEST(testSpinButtonProperties);
+ CPPUNIT_TEST(testCommandButtonProperties);
+ CPPUNIT_TEST(testScrollBarProperties);
+ CPPUNIT_TEST(testCheckBoxProperties);
+ CPPUNIT_TEST(testOptionButtonProperties);
+ CPPUNIT_TEST(testComboBoxProperties);
+ CPPUNIT_TEST(testListBoxProperties);
+ CPPUNIT_TEST(testToggleButtonProperties);
+ CPPUNIT_TEST(testPictureProperties);
+ CPPUNIT_TEST(testFontProperties);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void SdActiveXControlsTest::testBackgroundColor()
+{
+ // Check whether all system colors are imported correctly
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/control_background_color.pptx"), PPTX);
+
+ const std::vector<sal_Int32> vBackgroundColors =
+ {
+ 0xD4D0C8, // Scroll Bars
+ 0x004E98, // Desktop
+ 0x0054E3, // Active Title Bar
+ 0x7A96DF, // Inactive Title Bar
+ 0xFFFFFF, // Menu Bar
+ 0xFFFFFF, // Window Background
+ 0x000000, // Window Frame
+ 0x000000, // Menu Text
+ 0x000000, // Window Text
+ 0xFFFFFF, // Active Title Bar Text
+ 0xD4D0C8, // Active Border
+ 0xD4D0C8, // Inactive Border
+ 0x808080, // Application Workspace
+ 0x316AC5, // Highlight
+ 0xFFFFFF, // Highlight Text
+ 0xECE9D8, // Button Face
+ 0xACA899, // Button Shadow
+ 0xACA899, // Disabled Text
+ 0x000000, // Button Text
+ 0xD8E4F8, // Inactive Title Bar Text
+ 0xFFFFFF, // Button Highlight
+ 0x716F64, // Button Dark Shadow
+ 0xF1EFE2, // Button Light Shadow
+ 0x000000, // Tooltip Text
+ 0xFFFFE1, // Tooltip
+ 0xFF0000, // Custom red color
+ };
+
+ for (size_t i = 0; i < vBackgroundColors.size(); ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), vBackgroundColors[i], nColor);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testLabelProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_label.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Label1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ style::VerticalAlignment eAlign;
+ xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign;
+ CPPUNIT_ASSERT_EQUAL(style::VerticalAlignment_TOP, eAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Label"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xE0E0E0), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000FF), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FF00), nBorderColor);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign;
+ CPPUNIT_ASSERT_EQUAL(style::VerticalAlignment_TOP, eAlign);
+
+ // Third control has transparent background
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testTextBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_textbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sText;
+ xPropertySet->getPropertyValue("Text") >>= sText;
+ CPPUNIT_ASSERT_EQUAL(OUString(), sText);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ style::VerticalAlignment eAlign;
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign);
+
+ bool bHideSelection;
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bHideSelection);
+
+ sal_Int16 nMaxLength;
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxLength;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nMaxLength);
+
+ sal_Int16 nEchoChar;
+ xPropertySet->getPropertyValue("EchoChar") >>= nEchoChar;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nEchoChar);
+
+ bool bHScroll;
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bHScroll);
+
+ bool bVScroll;
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bVScroll);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Text") >>= sText;
+ CPPUNIT_ASSERT_EQUAL(OUString("Some Text"), sText);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ // These textfields are not multilines in the pptx testfile
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x404040), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00C000), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign);
+
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bHideSelection);
+
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxLength;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(50), nMaxLength);
+
+ xPropertySet->getPropertyValue("EchoChar") >>= nEchoChar;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16('x'), nEchoChar);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bVScroll);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(true, bReadOnly);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bVScroll);
+
+ // Fourth shape has both scroll bar
+ xControlShape.set(getShapeFromPage(3, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bVScroll);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testSpinButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_spinbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ sal_Int32 nMax;
+ xPropertySet->getPropertyValue("SpinValueMax") >>= nMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), nMax);
+
+ sal_Int32 nMin;
+ xPropertySet->getPropertyValue("SpinValueMin") >>= nMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nMin);
+
+ sal_Int32 nIncrement;
+ xPropertySet->getPropertyValue("SpinIncrement") >>= nIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nIncrement);
+
+ bool bRepeat;
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(true, bRepeat);
+
+ sal_Int32 nDelay;
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(50), nDelay);
+
+ sal_Int32 nArrowColor;
+ xPropertySet->getPropertyValue("SymbolColor") >>= nArrowColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nArrowColor);
+
+ sal_Int32 nOrientation;
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ sal_Int32 nSpinValue;
+ xPropertySet->getPropertyValue("SpinValue") >>= nSpinValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nSpinValue);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF00), nColor);
+
+ xPropertySet->getPropertyValue("SpinValueMax") >>= nMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(320), nMax);
+
+ xPropertySet->getPropertyValue("SpinValueMin") >>= nMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nMin);
+
+ xPropertySet->getPropertyValue("SpinIncrement") >>= nIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), nIncrement);
+
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(true, bRepeat);
+
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nDelay);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nArrowColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FF00), nArrowColor);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ xPropertySet->getPropertyValue("SpinValue") >>= nSpinValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nSpinValue);
+
+ // Third control has horizontal orientation
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testCommandButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_commandbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("CommandButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bFocusOnClick;
+ xPropertySet->getPropertyValue("FocusOnClick") >>= bFocusOnClick;
+ CPPUNIT_ASSERT_EQUAL(true, bFocusOnClick);
+
+ bool bRepeat;
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(false, bRepeat);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000FF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF80), nColor);
+
+ xPropertySet->getPropertyValue("FocusOnClick") >>= bFocusOnClick;
+ CPPUNIT_ASSERT_EQUAL(false, bFocusOnClick);
+
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(false, bRepeat);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ // Transparent background
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testScrollBarProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_scrollbar.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ sal_Int32 nDelay;
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(50), nDelay);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ sal_Int32 nVisibleSize;
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nVisibleSize);
+
+ sal_Int32 nScrollValueMin;
+ xPropertySet->getPropertyValue("ScrollValueMin") >>= nScrollValueMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nScrollValueMin);
+
+ sal_Int32 nScrollValueMax;
+ xPropertySet->getPropertyValue("ScrollValueMax") >>= nScrollValueMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(32767), nScrollValueMax);
+
+ sal_Int32 nScrollValue;
+ xPropertySet->getPropertyValue("DefaultScrollValue") >>= nScrollValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nScrollValue);
+
+ sal_Int32 nLineIncrement;
+ xPropertySet->getPropertyValue("LineIncrement") >>= nLineIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nLineIncrement);
+
+ sal_Int32 nBlockIncrement;
+ xPropertySet->getPropertyValue("BlockIncrement") >>= nBlockIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nBlockIncrement);
+
+ sal_Int32 nOrientation;
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FFFF), nColor);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(230), nDelay);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nVisibleSize);
+
+ xPropertySet->getPropertyValue("ScrollValueMin") >>= nScrollValueMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nScrollValueMin);
+
+ xPropertySet->getPropertyValue("ScrollValueMax") >>= nScrollValueMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1234567), nScrollValueMax);
+
+ xPropertySet->getPropertyValue("DefaultScrollValue") >>= nScrollValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(125), nScrollValue);
+
+ xPropertySet->getPropertyValue("LineIncrement") >>= nLineIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), nLineIncrement);
+
+ xPropertySet->getPropertyValue("BlockIncrement") >>= nBlockIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), nBlockIncrement);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nVisibleSize);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testCheckBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_checkbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("CheckBox1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int16 nVisualEffect;
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::LOOK3D), nVisualEffect);
+
+ bool bTriState;
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(false, bTriState);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF80FF), nColor);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::FLAT), nVisualEffect);
+
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(true, bTriState);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(true, bTriState);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testOptionButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_optionbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("OptionButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int16 nVisualEffect;
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::LOOK3D), nVisualEffect);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::FLAT), nVisualEffect);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState); // TriState / undefined imported as unchecked
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testComboBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_combobox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bAutocomplete;
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(true, bAutocomplete);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nBorderColor);
+
+ bool bDropdown;
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(true, bDropdown);
+
+ bool bHideInactiveSelection;
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideInactiveSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bHideInactiveSelection);
+
+ sal_Int16 nLineCount;
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(8), nLineCount);
+
+ sal_Int16 nMaxTextLen;
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxTextLen;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nMaxTextLen);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x800000), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(true, bAutocomplete);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x404040), nBorderColor);
+
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(true, bDropdown);
+
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideInactiveSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bHideInactiveSelection);
+
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(12), nLineCount);
+
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxTextLen;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(130), nMaxTextLen);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly); // Bogus, should be true (tdf#111417)
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(false, bAutocomplete);
+
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(false, bDropdown);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testListBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_listbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nBorderColor);
+
+ bool bDropdown;
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(false, bDropdown);
+
+ bool bMultiSelection;
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiSelection);
+
+ sal_Int16 nLineCount;
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(5), nLineCount);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF00), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF00FF), nBorderColor);
+
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiSelection);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly); // Bogus, should be true (tdf#111417)
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiSelection);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testToggleButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_togglebutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("ToggleButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bToggle;
+ xPropertySet->getPropertyValue("Toggle") >>= bToggle;
+ CPPUNIT_ASSERT_EQUAL(true, bToggle);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF80FF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x808080), nColor);
+
+ xPropertySet->getPropertyValue("Toggle") >>= bToggle;
+ CPPUNIT_ASSERT_EQUAL(true, bToggle);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState); // Undefined state
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testPictureProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_picture.pptx"), PPTX);
+
+ // Different controls has different image positioning
+
+ // Command buttons here with icons
+ const std::vector<sal_Int16> vImagePositions =
+ {
+ awt::ImagePosition::AboveCenter,
+ awt::ImagePosition::LeftTop,
+ awt::ImagePosition::LeftCenter,
+ awt::ImagePosition::LeftBottom,
+ awt::ImagePosition::RightTop,
+ awt::ImagePosition::RightCenter,
+ awt::ImagePosition::RightBottom,
+ awt::ImagePosition::AboveLeft,
+ awt::ImagePosition::AboveRight,
+ awt::ImagePosition::BelowLeft,
+ awt::ImagePosition::BelowCenter,
+ awt::ImagePosition::BelowRight,
+ awt::ImagePosition::Centered,
+ };
+
+ for (size_t i = 0; i < vImagePositions.size(); ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xPropertySet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT(xGraphic.is());
+
+ sal_Int16 nColor;
+ xPropertySet->getPropertyValue("ImagePosition") >>= nColor;
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), vImagePositions[i], nColor);
+ }
+
+ // Picture controls with different properties
+ for (size_t i = 0; i < 4; ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(vImagePositions.size() + i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xPropertySet->getPropertyValue("Graphic") >>= xGraphic;
+ if (i == 0) // First control has no image specified
+ CPPUNIT_ASSERT_MESSAGE(sMessage.getStr(), !xGraphic.is());
+ else
+ CPPUNIT_ASSERT_MESSAGE(sMessage.getStr(), xGraphic.is());
+
+ sal_Int16 nScaleMode;
+ xPropertySet->getPropertyValue("ScaleMode") >>= nScaleMode;
+ if (i == 2) // Stretch mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::ANISOTROPIC, nScaleMode);
+ else if (i == 3) // Zoom mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::ISOTROPIC, nScaleMode);
+ else // Clip mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::NONE, nScaleMode);
+ }
+
+ // Note: LO picture control does not support tiled image and also image positioning
+ // When there is no scaling picture positioned to center.
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testFontProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_fontproperties.pptx"), PPTX);
+
+ // Different controls has different font properties
+
+ for (size_t i = 0; i < 8; ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+
+ OUString sFontName;
+ xPropertySet->getPropertyValue("FontName") >>= sFontName;
+ if (i == 4 || i == 5)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), OUString("Times New Roman"), sFontName);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), OUString("Arial"), sFontName);
+
+ float fFontWeight;
+ xPropertySet->getPropertyValue("FontWeight") >>= fFontWeight;
+ if (i == 2 || i == 4)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::FontWeight::BOLD, fFontWeight);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::FontWeight::NORMAL, fFontWeight);
+
+ sal_Int16 nFontSlant;
+ xPropertySet->getPropertyValue("FontSlant") >>= nFontSlant;
+ if (i == 3 || i == 4)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontSlant_ITALIC), nFontSlant);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontSlant_NONE), nFontSlant);
+
+ sal_Int16 nFontUnderline;
+ xPropertySet->getPropertyValue("FontUnderline") >>= nFontUnderline;
+ if (i == 7)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontUnderline::SINGLE), nFontUnderline);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontUnderline::NONE), nFontUnderline);
+
+ sal_Int16 nFontStrikeout;
+ xPropertySet->getPropertyValue("FontStrikeout") >>= nFontStrikeout;
+ if (i == 6 || i == 7)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontStrikeout::SINGLE), nFontStrikeout);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontStrikeout::NONE), nFontStrikeout);
+
+ float fFontHeight;
+ xPropertySet->getPropertyValue("FontHeight") >>= fFontHeight;
+ if (i == 1)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 24.0f, fFontHeight);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 14.0f, fFontHeight);
+ }
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdActiveXControlsTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/sd/qa/unit/data/AllTransitions.odp b/sd/qa/unit/data/AllTransitions.odp
new file mode 100644
index 000000000..8922a0756
--- /dev/null
+++ b/sd/qa/unit/data/AllTransitions.odp
Binary files differ
diff --git a/sd/qa/unit/data/HtmlExportTestDocument.odp b/sd/qa/unit/data/HtmlExportTestDocument.odp
new file mode 100644
index 000000000..3c1661471
--- /dev/null
+++ b/sd/qa/unit/data/HtmlExportTestDocument.odp
Binary files differ
diff --git a/sd/qa/unit/data/README b/sd/qa/unit/data/README
new file mode 100644
index 000000000..2cc9fb3cb
--- /dev/null
+++ b/sd/qa/unit/data/README
@@ -0,0 +1,7 @@
+Files with the string 'CVE' in their name are encrypted to avoid
+problems with virus checkers on source code download.; use:
+
+mdecrypt --bare -a arcfour -o hex -k 435645 -s 3 foo.doc # to unencrypt
+mcrypt --bare -a arcfour -o hex -k 435645 -s 3 foo.doc # to create new tests
+
+to get access to the plain files for manual testing.
diff --git a/sd/qa/unit/data/SimplePDF.pdf b/sd/qa/unit/data/SimplePDF.pdf
new file mode 100644
index 000000000..5d6fdb191
--- /dev/null
+++ b/sd/qa/unit/data/SimplePDF.pdf
Binary files differ
diff --git a/sd/qa/unit/data/bnc822347_EmptyBullet.odp b/sd/qa/unit/data/bnc822347_EmptyBullet.odp
new file mode 100644
index 000000000..73f7e0296
--- /dev/null
+++ b/sd/qa/unit/data/bnc822347_EmptyBullet.odp
Binary files differ
diff --git a/sd/qa/unit/data/cgm/fail/.gitignore b/sd/qa/unit/data/cgm/fail/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/cgm/fail/.gitignore
diff --git a/sd/qa/unit/data/cgm/fail/ooo6420-1.cgm b/sd/qa/unit/data/cgm/fail/ooo6420-1.cgm
new file mode 100644
index 000000000..5b42b6ff7
--- /dev/null
+++ b/sd/qa/unit/data/cgm/fail/ooo6420-1.cgm
@@ -0,0 +1,400 @@
+BEGMF 'xfig-fig012228';
+mfversion 1;
+mfdesc 'Converted from /tmp/xfig-fig012228 using fig2dev -Lcgm';
+mfelemlist 'DRAWINGPLUS';
+vdctype integer;
+fontlist 'Hardware',
+ 'Times New Roman', 'Times New Roman Bold', 'Times New Roman Italic',
+ 'Helvetica', 'Courier',
+ 'Times-Roman', 'Times-Italic',
+ 'Times-Bold', 'Times-BoldItalic',
+ 'AvantGarde-Book', 'AvantGarde-BookOblique',
+ 'AvantGarde-Demi', 'AvantGarde-DemiOblique',
+ 'Bookman-light', 'Bookman-lightItalic',
+ 'Bookman-Demi', 'Bookman-DemiItalic',
+ 'Courier', 'Courier-Oblique',
+ 'Courier-Bold', 'Courier-BoldOblique',
+ 'Helvetica', 'Helvetica-Oblique',
+ 'Helvetica-Bold', 'Helvetica-BoldOblique',
+ 'Helvetica-Narrow', 'Helvetica-Narrow-Oblique',
+ 'Helvetica-Narrow-Bold', 'Helvetica-Narrow-BoldOblique',
+ 'NewCenturySchlbk-Roman', 'NewCenturySchlbk-Italic',
+ 'NewCenturySchlbk-Bold', 'NewCenturySchlbk-BoldItalic',
+ 'Palatino-Roman', 'Palatino-Italic',
+ 'Palatino-Bold', 'Palatino-BoldItalic',
+ 'Symbol', 'ZapfChancery-MediumItalic', 'ZapfDingbats';
+BEGMFDEFAULTS;
+ vdcext (0,0) (12974,8467);
+ clip off;
+ colrmode indexed;
+ colrtable 1
+ 0 0 0
+ 0 0 255
+ 0 255 0
+ 0 255 255
+ 255 0 0
+ 255 0 255
+ 255 255 0
+ 255 255 255
+ 0 0 142
+ 0 0 175
+ 0 0 209
+ 135 206 255
+ 0 142 0
+ 0 175 0
+ 0 209 0
+ 0 142 142
+ 0 175 175
+ 0 209 209
+ 142 0 0
+ 175 0 0
+ 209 0 0
+ 142 0 142
+ 175 0 175
+ 209 0 209
+ 127 48 0
+ 160 63 0
+ 191 96 0
+ 255 127 127
+ 255 160 160
+ 255 191 191
+ 255 224 224
+ 255 214 0;
+ linewidthmode abs;
+ edgewidthmode abs;
+ backcolr 255 255 255;
+ textprec stroke;
+ transparency ON;
+ENDMFDEFAULTS;
+BEGPIC 'xfig-fig012228';
+BEGPICBODY;
+% Circle %
+intstyle EMPTY;
+edgevis ON;
+edgetype 1;
+edgewidth 30;
+edgecolr 1;
+circle (7747,5647) 225;
+% Polygon %
+polygon (2797,6997) (3697,5197) (2797,3397) (2797,6997);
+% Polyline %
+linetype 1;
+linewidth 30;
+linecolr 1;
+line (3697,5197) (3907,5197);
+intstyle SOLID;
+fillcolr 1;
+polygon (3847,5257)(4087,5197)(3847,5137);
+% Polyline %
+line (772,4747) (2797,4747);
+% Polyline %
+line (772,3847) (2797,3847);
+% Polyline %
+line (997,472) (8422,472);
+% Polyline %
+line (997,1372) (8422,1372);
+% Polyline %
+line (6622,2272) (8422,2272);
+% Box %
+intstyle EMPTY;
+rect (5497,4522) (6622,3622);
+% Polyline %
+line (6622,4072) (6880,4072);
+intstyle SOLID;
+fillcolr 8;
+polygon (6772,4132)(7012,4072)(6772,4012)(6820,4072);
+% Polygon %
+intstyle EMPTY;
+polygon (8422,3622) (9322,1822) (8422,22) (8422,3622);
+% Polyline %
+line (9322,1822) (9532,1822);
+intstyle SOLID;
+fillcolr 1;
+polygon (9472,1882)(9712,1822)(9472,1762);
+% Polyline %
+line (9772,3397) (9772,4522) (7747,4522) (7747,5182);
+polygon (7687,5122)(7747,5362)(7807,5122);
+% Polyline %
+line (772,6322) (772,7387);
+line (712,7147)(772,7387)(832,7147);
+% Polyline %
+line (772,5647) (2797,5647);
+% Polyline %
+line (322,6322) (1672,6322) (1672,5647);
+% Polyline %
+line (9772,4522) (10222,4522);
+% Polyline %
+line (10447,4522) (12472,4522) (12472,8122) (322,8122) (322,6322);
+% Polyline %
+line (9772,3397) (9772,697) (11062,697);
+line (10822,757)(11062,697)(10822,637);
+% Polyline %
+line (9772,2722) (11962,2722);
+line (11722,2782)(11962,2722)(11722,2662);
+% Polyline %
+line (10537,3622) (10537,3847) (12022,3847);
+% Polyline %
+line (10222,4522) (10222,3397) (11962,3397);
+line (11722,3457)(11962,3397)(11722,3337);
+% Polyline %
+line (10222,4072) (11962,4072);
+line (11722,4132)(11962,4072)(11722,4012);
+% Polyline %
+line (4147,7222) (4147,4072) (5257,4072);
+polygon (5197,4132)(5437,4072)(5197,4012);
+% Polyline %
+line (4147,7222) (8182,7222);
+polygon (8122,7282)(8362,7222)(8122,7162);
+% Polyline %
+line (10837,7672) (8422,7672) (8422,6772) (10837,6772);
+line (10597,7732)(10837,7672)(10597,7612);
+line (10597,6832)(10837,6772)(10597,6712);
+% Polyline %
+line (4147,6322) (7747,6322) (7747,6112);
+polygon (7807,6172)(7747,5932)(7687,6172);
+% Polyline %
+line (7972,5647) (8182,5647);
+polygon (8122,5707)(8362,5647)(8122,5587);
+% Polyline %
+line (1672,6547) (1882,6547);
+polygon (1822,6607)(2062,6547)(1822,6487);
+% Polyline %
+line (10987,3847) (10777,3847);
+polygon (10837,3787)(10597,3847)(10837,3907);
+% Polyline %
+line (9772,4522) (9982,4522);
+polygon (9922,4582)(10162,4522)(9922,4462);
+% Polyline %
+line (10942,4522) (10732,4522);
+polygon (10792,4462)(10552,4522)(10792,4582);
+% Box %
+intstyle EMPTY;
+rect (5497,2722) (6622,1822);
+% Polyline %
+line (5047,2272) (5305,2272);
+intstyle SOLID;
+fillcolr 8;
+polygon (5197,2332)(5437,2272)(5197,2212)(5245,2272);
+% Polyline %
+line (1447,7447) (1447,6547) (2572,6547);
+% Polyline %
+line (10837,6097) (8422,6097) (8422,5197) (10837,5197);
+line (10597,6157)(10837,6097)(10597,6037);
+line (10597,5257)(10837,5197)(10597,5137);
+% Polyline %
+line (2077,6547) (2797,6547);
+% Text %
+textfontindex 25;
+textalign right base 0.0 0.0;
+textcolr 1;
+charheight 140;
+charori (0,1200) (1200,0);
+text (862,1282) final 'FMS_IN';
+% Text %
+text (862,382) final 'WFB_IN';
+% Text %
+textalign left base 0.0 0.0;
+text (7162,3982) final 'NET';
+% Text %
+text (5767,4207) final 'PCM';
+% Text %
+text (5767,3892) final 'capture';
+% Text %
+textalign ctr base 0.0 0.0;
+text (1222,7582) final 'DECRYPT';
+% Text %
+textalign left base 0.0 0.0;
+text (12067,3892) final 'CRYPT';
+% Text %
+text (10042,2047) final 'SE_OUT';
+% Text %
+text (9997,1012) final 'GS_OUT';
+% Text %
+textalign right base 0.0 0.0;
+text (8197,1642) final 'FMS_IN';
+% Text %
+text (8197,742) final 'WFB_IN';
+% Text %
+text (4912,2182) final 'NET';
+% Text %
+textalign left base 0.0 0.0;
+text (5767,2407) final 'PCM';
+% Text %
+text (5767,2092) final 'receive';
+% Text %
+text (4327,4612) final 'NET_CAPTURE';
+% Text %
+text (4372,6592) final 'LSTA_OUT';
+% Text %
+text (4372,7492) final 'FMS_OUT';
+% Text %
+textalign right base 0.0 0.0;
+text (2662,6817) final 'CYUN_IN';
+% Text %
+text (2572,5917) final 'SE_IN';
+% Text %
+text (2572,5017) final 'PA_IN';
+% Text %
+text (2572,4117) final 'GS_IN';
+% Text %
+text (8332,2542) final 'NET_RECEIVE';
+% Text %
+textalign left base 0.0 0.0;
+text (2932,5107) final 'LEFT';
+% Text %
+text (8512,1732) final 'RIGHT';
+% Text %
+textalign right base 0.0 0.0;
+text (682,4657) final 'PA_IN';
+% Text %
+text (682,3757) final 'GS_IN';
+% Text %
+text (682,5557) final 'SE_IN';
+% Text %
+textalign left base 0.0 0.0;
+text (10987,7582) final 'FMS_OUT';
+% Text %
+text (10987,6682) final 'WFB_OUT';
+% Text %
+text (10987,6007) final 'TA_OUT';
+% Text %
+text (10987,5107) final 'LS_OUT';
+% Text %
+text (12067,2632) final 'PA_OUT';
+% Text %
+text (11212,607) final 'GS_OUT';
+% Text %
+textalign ctr base 0.0 0.0;
+text (11302,3577) final 'OL-SE';
+% Text %
+text (9997,5377) final 'OL-LS';
+% Text %
+text (9997,6277) final 'OL-TA';
+% Text %
+text (6172,8302) final 'LOOP-RS';
+% Text %
+text (1222,5827) final 'IL-SE';
+% Text %
+text (11347,2902) final 'OL-PA';
+% Text %
+textalign left base 0.0 0.0;
+text (12067,3307) final 'SE_OUT';
+% Text %
+textalign ctr base 0.0 0.0;
+text (10312,4612) final 'RS1';
+% Text %
+textalign left base 0.0 0.0;
+text (8197,4657) final 'TA_BACK';
+% Text %
+textalign ctr base 0.0 0.0;
+text (9097,5512) final 'LS_ON';
+% Text %
+text (9097,6412) final 'TA_ON';
+% Text %
+text (10357,2992) final 'PA_ON';
+% Polygon %
+colrtable 33 255 255 255;
+fillcolr 33;
+polygon (2122,6772) (2122,6322) (2572,6547) (2122,6772);
+% Polygon %
+polygon (2122,5872) (2122,5422) (2572,5647) (2122,5872);
+% Polygon %
+polygon (2122,4972) (2122,4522) (2572,4747) (2122,4972);
+% Polygon %
+polygon (2122,4072) (2122,3622) (2572,3847) (2122,4072);
+% Polygon %
+polygon (4372,4297) (4372,3847) (4822,4072) (4372,4297);
+% Polygon %
+polygon (9997,922) (9997,472) (10447,697) (9997,922);
+% Polygon %
+polygon (7747,2497) (7747,2047) (8197,2272) (7747,2497);
+% Polygon %
+polygon (7747,1597) (7747,1147) (8197,1372) (7747,1597);
+% Polygon %
+polygon (7747,697) (7747,247) (8197,472) (7747,697);
+% Polygon %
+polygon (9547,2047) (9997,2047) (9772,2497) (9547,2047);
+% Box %
+rect (997,5782) (1447,5512);
+% Box %
+rect (5947,8257) (6397,7987);
+% Box %
+rect (11122,2857) (11572,2587);
+% Box %
+rect (11122,3532) (11572,3262);
+% Polygon %
+polygon (4372,7447) (4372,6997) (4822,7222) (4372,7447);
+% Polygon %
+polygon (4372,6547) (4372,6097) (4822,6322) (4372,6547);
+% Box %
+rect (9772,6232) (10222,5962);
+% Box %
+rect (9772,5332) (10222,5062);
+% Polyline %
+linewidth 45;
+linecolr 8;
+line (8332,4522) (8017,4522);
+% Polyline %
+line (10222,4207) (10222,4522);
+% Polyline %
+line (10222,2722) (10537,2722);
+% Polyline %
+line (10852,3397) (10537,3397);
+% Polyline %
+line (8917,5197) (9232,5197);
+% Polyline %
+line (8917,6097) (9232,6097);
+% Polyline %
+linewidth 30;
+linecolr 1;
+line (8332,4522) (8017,4657);
+% Polyline %
+line (10222,4207) (10357,4522);
+% Polyline %
+line (10222,2722) (10537,2857);
+% Polyline %
+line (10852,3397) (10537,3532);
+% Polyline %
+line (8917,5197) (9232,5332);
+% Polyline %
+line (8917,6097) (9232,6232);
+% Circle %
+edgewidth 15;
+circle (8332,4522) 45;
+% Circle %
+circle (8017,4522) 45;
+% Circle %
+circle (8017,4747) 45;
+% Circle %
+circle (10222,4207) 45;
+% Circle %
+circle (10222,4522) 45;
+% Circle %
+circle (10447,4522) 45;
+% Circle %
+circle (10222,2722) 45;
+% Circle %
+circle (10537,2722) 45;
+% Circle %
+circle (10537,2947) 45;
+% Circle %
+circle (10852,3397) 45;
+% Circle %
+circle (10537,3397) 45;
+% Circle %
+circle (10537,3622) 45;
+% Circle %
+circle (8917,5197) 45;
+% Circle %
+circle (9232,5197) 45;
+% Circle %
+circle (9232,5422) 45;
+% Circle %
+circle (8917,6097) 45;
+% Circle %
+circle (9232,6322) 45;
+% Circle %
+circle (9232,6097) 45;
+% End of Picture %
+ENDPIC;
+ENDMF;
diff --git a/sd/qa/unit/data/cgm/fail/recurse-1.cgm b/sd/qa/unit/data/cgm/fail/recurse-1.cgm
new file mode 100644
index 000000000..4ba3b95de
--- /dev/null
+++ b/sd/qa/unit/data/cgm/fail/recurse-1.cgm
Binary files differ
diff --git a/sd/qa/unit/data/cgm/indeterminate/.gitignore b/sd/qa/unit/data/cgm/indeterminate/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/cgm/indeterminate/.gitignore
diff --git a/sd/qa/unit/data/cgm/pass/.gitignore b/sd/qa/unit/data/cgm/pass/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/cgm/pass/.gitignore
diff --git a/sd/qa/unit/data/cgm/pass/binary_corvette.cgm b/sd/qa/unit/data/cgm/pass/binary_corvette.cgm
new file mode 100644
index 000000000..2b38c4834
--- /dev/null
+++ b/sd/qa/unit/data/cgm/pass/binary_corvette.cgm
Binary files differ
diff --git a/sd/qa/unit/data/cgm/pass/circles.cgm b/sd/qa/unit/data/cgm/pass/circles.cgm
new file mode 100644
index 000000000..d31c1b4f3
--- /dev/null
+++ b/sd/qa/unit/data/cgm/pass/circles.cgm
Binary files differ
diff --git a/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm b/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm
new file mode 100644
index 000000000..9695f9bba
--- /dev/null
+++ b/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm
Binary files differ
diff --git a/sd/qa/unit/data/dialogs-test.txt b/sd/qa/unit/data/dialogs-test.txt
new file mode 100644
index 000000000..63ee21c95
--- /dev/null
+++ b/sd/qa/unit/data/dialogs-test.txt
@@ -0,0 +1,75 @@
+# -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+# This file contains all dialogs that the unit tests in the module
+# will work on if it is in script mode. It will read one-by-one,
+# try to open it and create a screenshot that will be saved in
+# workdir/screenshots using the pattern of the ui-file name.
+#
+# Syntax:
+# - empty lines are allowed
+# - lines starting with '#' are treated as comment
+# - all other lines should contain a *.ui filename in the same
+# notation as in the dialog constructors (see code)
+
+#
+# The 'known' dialogs which have a hard-coded representation
+# in registerKnownDialogsByID/createDialogByID
+#
+
+modules/sdraw/ui/breakdialog.ui
+modules/sdraw/ui/copydlg.ui
+modules/sdraw/ui/drawchardialog.ui
+modules/sdraw/ui/drawpagedialog.ui
+modules/sdraw/ui/dlgsnap.ui
+modules/sdraw/ui/insertlayer.ui
+modules/sdraw/ui/insertslidesdialog.ui
+modules/sdraw/ui/crossfadedialog.ui
+modules/sdraw/ui/bulletsandnumbering.ui
+modules/sdraw/ui/drawparadialog.ui
+modules/sdraw/ui/drawprtldialog.ui
+modules/sdraw/ui/vectorize.ui
+
+modules/simpress/ui/publishingdialog.ui
+modules/simpress/ui/customslideshows.ui
+modules/simpress/ui/dlgfield.ui
+modules/simpress/ui/presentationdialog.ui
+modules/simpress/ui/remotedialog.ui
+modules/simpress/ui/templatedialog.ui
+modules/simpress/ui/slidedesigndialog.ui
+modules/simpress/ui/interactiondialog.ui
+modules/simpress/ui/photoalbum.ui
+modules/simpress/ui/masterlayoutdlg.ui
+modules/simpress/ui/headerfooterdialog.ui
+
+#
+# Dialogs without a hard-coded representation. These will
+# be visualized using a fallback based on VclBuilder
+#
+
+modules/sdraw/ui/paranumberingtab.ui
+modules/sdraw/ui/namedesign.ui
+
+# currently deactivated, leads to problems and the test to not work
+# This is typically a hint that these should be hard-coded in the
+# test case since they need some document and model data to work
+#
+# modules/simpress/ui/assistentdialog.ui
+
+modules/simpress/ui/headerfootertab.ui
+modules/simpress/ui/customanimationproperties.ui
+modules/simpress/ui/customanimationeffecttab.ui
+modules/simpress/ui/customanimationtimingtab.ui
+modules/simpress/ui/customanimationtexttab.ui
+modules/simpress/ui/sdviewpage.ui
+modules/simpress/ui/prntopts.ui
+modules/simpress/ui/optimpressgeneralpage.ui
+modules/simpress/ui/interactionpage.ui
+modules/simpress/ui/definecustomslideshow.ui
+modules/simpress/ui/insertslides.ui
diff --git a/sd/qa/unit/data/empty.fodp b/sd/qa/unit/data/empty.fodp
new file mode 100644
index 000000000..3c2a4cf2c
--- /dev/null
+++ b/sd/qa/unit/data/empty.fodp
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation"><office:body><office:presentation><draw:page/></office:presentation></office:body></office:document>
diff --git a/sd/qa/unit/data/fdo47434.pptx b/sd/qa/unit/data/fdo47434.pptx
new file mode 100644
index 000000000..1ecb8a9de
--- /dev/null
+++ b/sd/qa/unit/data/fdo47434.pptx
Binary files differ
diff --git a/sd/qa/unit/data/fdo64512.odp b/sd/qa/unit/data/fdo64512.odp
new file mode 100644
index 000000000..ffb9f044b
--- /dev/null
+++ b/sd/qa/unit/data/fdo64512.odp
Binary files differ
diff --git a/sd/qa/unit/data/fdo64586.ppt b/sd/qa/unit/data/fdo64586.ppt
new file mode 100644
index 000000000..62a4b11a1
--- /dev/null
+++ b/sd/qa/unit/data/fdo64586.ppt
Binary files differ
diff --git a/sd/qa/unit/data/fdo71075.odp b/sd/qa/unit/data/fdo71075.odp
new file mode 100644
index 000000000..b418faf39
--- /dev/null
+++ b/sd/qa/unit/data/fdo71075.odp
Binary files differ
diff --git a/sd/qa/unit/data/fdo71434.pptx b/sd/qa/unit/data/fdo71434.pptx
new file mode 100644
index 000000000..384f1f31e
--- /dev/null
+++ b/sd/qa/unit/data/fdo71434.pptx
Binary files differ
diff --git a/sd/qa/unit/data/fdo71961.odp b/sd/qa/unit/data/fdo71961.odp
new file mode 100644
index 000000000..323fbe82a
--- /dev/null
+++ b/sd/qa/unit/data/fdo71961.odp
Binary files differ
diff --git a/sd/qa/unit/data/fdo79731.odp b/sd/qa/unit/data/fdo79731.odp
new file mode 100644
index 000000000..d5d094ae0
--- /dev/null
+++ b/sd/qa/unit/data/fdo79731.odp
Binary files differ
diff --git a/sd/qa/unit/data/fdo84043.odp b/sd/qa/unit/data/fdo84043.odp
new file mode 100644
index 000000000..eed9e79ef
--- /dev/null
+++ b/sd/qa/unit/data/fdo84043.odp
Binary files differ
diff --git a/sd/qa/unit/data/fdo90607.pptx b/sd/qa/unit/data/fdo90607.pptx
new file mode 100644
index 000000000..0c01aa81e
--- /dev/null
+++ b/sd/qa/unit/data/fdo90607.pptx
Binary files differ
diff --git a/sd/qa/unit/data/fit-to-size.fodp b/sd/qa/unit/data/fit-to-size.fodp
new file mode 100644
index 000000000..734cf8a3a
--- /dev/null
+++ b/sd/qa/unit/data/fit-to-size.fodp
@@ -0,0 +1,724 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:meta><meta:creation-date>2017-10-18T22:06:17.203271648</meta:creation-date><dc:date>2017-10-19T22:51:45.845520353</dc:date><meta:editing-duration>PT31M43S</meta:editing-duration><meta:editing-cycles>4</meta:editing-cycles><meta:generator>LibreOfficeDev/5.3.8.0.0$Linux_X86_64 LibreOffice_project/a0fae00a2d52960eebbb14f08d2de251e0a8ff3f</meta:generator><meta:document-statistic meta:object-count="31"/></office:meta>
+ <office:font-face-decls>
+ <style:font-face style:name="Arial Black" svg:font-family="&apos;Arial Black&apos;" style:font-family-generic="roman"/>
+ <style:font-face style:name="MS Gothic" svg:font-family="&apos;MS Gothic&apos;" style:font-pitch="variable"/>
+ <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Lohit Devanagari" svg:font-family="&apos;Lohit Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Source Han Sans CN Regular" svg:font-family="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="de" fo:country="DE" style:font-name-asian="DejaVu Sans" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="36pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="Default-background" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="Default-backgroundobjects" style:family="presentation">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:text-properties style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="Default-notes" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0.6cm" fo:margin-right="0cm" fo:text-indent="-0.6cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="20pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="20pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="20pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-outline1" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:auto-grow-height="false" draw:fit-to-size="shrink-to-fit">
+ <text:list-style style:name="Default-outline1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.3cm" text:min-label-width="0.9cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="–">
+ <style:list-level-properties text:space-before="1.5cm" text:min-label-width="0.9cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="75%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.8cm" text:min-label-width="0.8cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="–">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="75%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="6.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="7.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="9cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="10.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="11.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-top="0.5cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="32pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-outline2" style:family="presentation" style:parent-style-name="Default-outline1">
+ <style:paragraph-properties fo:margin-top="0.4cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="28pt" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
+ </style:style>
+ <style:style style:name="Default-outline3" style:family="presentation" style:parent-style-name="Default-outline2">
+ <style:paragraph-properties fo:margin-top="0.3cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="24pt" style:font-size-asian="24pt" style:font-size-complex="24pt"/>
+ </style:style>
+ <style:style style:name="Default-outline4" style:family="presentation" style:parent-style-name="Default-outline3">
+ <style:paragraph-properties fo:margin-top="0.2cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline5" style:family="presentation" style:parent-style-name="Default-outline4">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline6" style:family="presentation" style:parent-style-name="Default-outline5">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline7" style:family="presentation" style:parent-style-name="Default-outline6">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline8" style:family="presentation" style:parent-style-name="Default-outline7">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline9" style:family="presentation" style:parent-style-name="Default-outline8">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-subtitle" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="Default-subtitle">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="32pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-title" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="Default-title">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="44pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="44pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="44pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:presentation-page-layout style:name="AL0T26">
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ </style:presentation-page-layout>
+ <style:presentation-page-layout style:name="AL1T0">
+ <presentation:placeholder presentation:object="title" svg:x="2.058cm" svg:y="1.743cm" svg:width="23.912cm" svg:height="3.507cm"/>
+ <presentation:placeholder presentation:object="subtitle" svg:x="2.058cm" svg:y="5.838cm" svg:width="23.912cm" svg:height="13.23cm"/>
+ </style:presentation-page-layout>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="21cm" fo:page-height="29.7cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:page-layout style:name="PM1">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="28cm" fo:page-height="21cm" style:print-orientation="landscape"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page">
+ <style:drawing-page-properties presentation:display-header="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="dp3" style:family="drawing-page">
+ <style:drawing-page-properties presentation:background-visible="true" presentation:background-objects-visible="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="gr3" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.026cm" svg:stroke-color="#000000" draw:marker-start="" draw:marker-start-width="0.3cm" draw:marker-start-center="false" draw:marker-end="" draw:marker-end-width="0.3cm" draw:marker-end-center="false" draw:stroke-linejoin="miter" draw:fill="solid" draw:fill-color="#000000" draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" draw:fit-to-size="false" fo:min-height="1.14cm" fo:min-width="9.501cm" fo:padding-top="0.13cm" fo:padding-bottom="0.13cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" fo:wrap-option="wrap" draw:shadow="hidden" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="gr4" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.026cm" svg:stroke-color="#000000" draw:marker-start="" draw:marker-start-width="0.3cm" draw:marker-start-center="false" draw:marker-end="" draw:marker-end-width="0.3cm" draw:marker-end-center="false" draw:stroke-linejoin="miter" draw:fill="solid" draw:fill-color="#000000" draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" draw:fit-to-size="all" fo:min-height="1.14cm" fo:min-width="9.501cm" fo:padding-top="0.13cm" fo:padding-bottom="0.13cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" fo:wrap-option="wrap" draw:shadow="hidden" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="gr5" style:family="graphic">
+ <style:graphic-properties style:protect="size"/>
+ </style:style>
+ <style:style style:name="pr1" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.449cm"/>
+ </style:style>
+ <style:style style:name="pr2" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="pr3" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="pr4" style:family="presentation" style:parent-style-name="Default-subtitle">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:fit-to-size="false" fo:min-height="4.686cm"/>
+ </style:style>
+ <style:style style:name="pr5" style:family="presentation" style:parent-style-name="Default-subtitle">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:fit-to-size="true" fo:min-height="5.085cm"/>
+ </style:style>
+ <style:style style:name="pr6" style:family="presentation" style:parent-style-name="Default-subtitle">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:fit-to-size="all" fo:min-height="4.485cm"/>
+ </style:style>
+ <style:style style:name="pr7" style:family="presentation" style:parent-style-name="Default-subtitle">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:fit-to-size="shrink-to-fit" fo:min-height="3.885cm"/>
+ </style:style>
+ <style:style style:name="pr8" style:family="presentation" style:parent-style-name="Default-notes">
+ <style:graphic-properties draw:fill-color="#ffffff" fo:min-height="13.364cm"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P3" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P4" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P5" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P6" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P7" style:family="paragraph">
+ <loext:graphic-properties draw:fill-color="#ffffff"/>
+ </style:style>
+ <style:style style:name="P8" style:family="paragraph">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-align="start" fo:text-indent="0cm" style:punctuation-wrap="simple" style:line-break="normal" style:writing-mode="lr-tb">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="P9" style:family="paragraph">
+ <loext:graphic-properties draw:fill="solid" draw:fill-color="#000000"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-align="start" fo:text-indent="0cm" style:punctuation-wrap="simple" style:line-break="normal" style:writing-mode="lr-tb">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Arial Black" fo:font-size="24pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="MS Gothic" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Tahoma" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="T2" style:family="text">
+ <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Arial Black" fo:font-size="24pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="MS Gothic" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Tahoma" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <text:list-style style:name="L1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L2">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:handout-master presentation:presentation-page-layout-name="AL0T26" style:page-layout-name="PM0" draw:style-name="dp2">
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="2.898cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="11.474cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="20.05cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="2.898cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="11.474cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="20.05cm"/>
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:header/></text:span><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><presentation:date-time/></text:span><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr2" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="28.215cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:footer/></text:span><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="28.215cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </style:handout-master>
+ <style:master-page style:name="Default" style:page-layout-name="PM1" draw:style-name="dp1">
+ <draw:frame presentation:style-name="Default-title" draw:layer="backgroundobjects" svg:width="25.199cm" svg:height="3.506cm" svg:x="1.4cm" svg:y="0.837cm" presentation:class="title" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="Default-outline1" draw:layer="backgroundobjects" svg:width="25.199cm" svg:height="12.179cm" svg:x="1.4cm" svg:y="4.914cm" presentation:class="outline" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="Default-outline1" draw:layer="backgroundobjects" svg:width="25.199cm" svg:height="12.179cm" svg:x="1.4cm" svg:y="4.914cm" presentation:class="outline" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="6.523cm" svg:height="1.448cm" svg:x="1.4cm" svg:y="19.131cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:date-time/></text:span><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P6" draw:layer="backgroundobjects" svg:width="8.875cm" svg:height="1.448cm" svg:x="9.576cm" svg:y="19.131cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P5"><text:span text:style-name="T1"><presentation:footer/></text:span><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="6.523cm" svg:height="1.448cm" svg:x="20.076cm" svg:y="19.131cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <presentation:notes style:page-layout-name="PM0">
+ <draw:page-thumbnail presentation:style-name="Default-title" draw:layer="backgroundobjects" svg:width="14.848cm" svg:height="11.136cm" svg:x="3.075cm" svg:y="2.257cm" presentation:class="page"/>
+ <draw:frame presentation:style-name="Default-notes" draw:layer="backgroundobjects" svg:width="16.799cm" svg:height="13.364cm" svg:x="2.1cm" svg:y="14.107cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="Default-notes" draw:layer="backgroundobjects" svg:width="16.799cm" svg:height="13.364cm" svg:x="2.1cm" svg:y="14.107cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:header/></text:span><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><presentation:date-time/></text:span><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr3" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="28.215cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:footer/></text:span><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr3" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="28.215cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </presentation:notes>
+ </style:master-page>
+ </office:master-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1" draw:style-name="dp3" draw:master-page-name="Default" presentation:presentation-page-layout-name="AL1T0">
+ <draw:frame presentation:style-name="pr4" draw:text-style-name="P7" draw:layer="layout" svg:width="12.4cm" svg:height="4.686cm" svg:x="1.4cm" svg:y="2cm" presentation:class="subtitle" presentation:user-transformed="true">
+ <draw:text-box>
+ <text:p>1</text:p>
+ <text:p>foo</text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr5" draw:text-style-name="P7" draw:layer="layout" svg:width="12.599cm" svg:height="5.085cm" svg:x="14cm" svg:y="2.4cm">
+ <draw:text-box>
+ <text:p>2</text:p>
+ <text:p>foo</text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr6" draw:text-style-name="P7" draw:layer="layout" svg:width="12.599cm" svg:height="4.485cm" svg:x="1.201cm" svg:y="10.115cm">
+ <draw:text-box>
+ <text:p>3</text:p>
+ <text:p>foo</text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr7" draw:text-style-name="P7" draw:layer="layout" svg:width="12.399cm" svg:height="3.885cm" svg:x="14.2cm" svg:y="10.2cm">
+ <draw:text-box>
+ <text:p>4</text:p>
+ <text:p>foo</text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:custom-shape draw:style-name="gr3" draw:text-style-name="P9" draw:layer="layout" svg:width="10cm" svg:height="1.4cm" svg:x="2.6cm" svg:y="18cm">
+ <text:p text:style-name="P8"><text:span text:style-name="T2">5</text:span></text:p>
+ <text:p text:style-name="P8"><text:span text:style-name="T2">Fontwork</text:span></text:p>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:glue-points="?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800" draw:text-areas="0 0 21600 21600" draw:text-path="true" draw:text-path-mode="shape" draw:text-path-scale="path" draw:text-path-same-letter-heights="false" draw:type="fontwork-wave" draw:modifiers="4460 10800" draw:enhanced-path="M ?f7 ?f0 C ?f15 ?f9 ?f16 ?f10 ?f12 ?f0 N M ?f29 ?f1 C ?f27 ?f28 ?f25 ?f26 ?f24 ?f1 N">
+ <draw:equation draw:name="f0" draw:formula="$0 "/>
+ <draw:equation draw:name="f1" draw:formula="21600-?f0 "/>
+ <draw:equation draw:name="f2" draw:formula="$1 "/>
+ <draw:equation draw:name="f3" draw:formula="?f2 -10800"/>
+ <draw:equation draw:name="f4" draw:formula="?f3 *2"/>
+ <draw:equation draw:name="f5" draw:formula="abs(?f4 )"/>
+ <draw:equation draw:name="f6" draw:formula="4320-?f5 "/>
+ <draw:equation draw:name="f7" draw:formula="if(?f3 ,0,?f5 )"/>
+ <draw:equation draw:name="f8" draw:formula="15800*?f0 /4460"/>
+ <draw:equation draw:name="f9" draw:formula="?f0 -?f8 "/>
+ <draw:equation draw:name="f10" draw:formula="?f0 +?f8 "/>
+ <draw:equation draw:name="f11" draw:formula="21600-?f4 "/>
+ <draw:equation draw:name="f12" draw:formula="if(?f3 ,?f11 ,21600)"/>
+ <draw:equation draw:name="f13" draw:formula="?f12 -?f7 "/>
+ <draw:equation draw:name="f14" draw:formula="?f5 /2"/>
+ <draw:equation draw:name="f15" draw:formula="?f7 +7200-?f14 "/>
+ <draw:equation draw:name="f16" draw:formula="?f12 +?f14 -7200"/>
+ <draw:equation draw:name="f17" draw:formula="?f13 /2"/>
+ <draw:equation draw:name="f18" draw:formula="?f7 +?f17 "/>
+ <draw:equation draw:name="f19" draw:formula="21600-?f18 "/>
+ <draw:equation draw:name="f20" draw:formula="?f5 /2"/>
+ <draw:equation draw:name="f21" draw:formula="21600-?f20 "/>
+ <draw:equation draw:name="f22" draw:formula="?f0 *2"/>
+ <draw:equation draw:name="f23" draw:formula="21600-?f22 "/>
+ <draw:equation draw:name="f24" draw:formula="21600-?f7 "/>
+ <draw:equation draw:name="f25" draw:formula="21600-?f15 "/>
+ <draw:equation draw:name="f26" draw:formula="?f1 +?f8 "/>
+ <draw:equation draw:name="f27" draw:formula="21600-?f16 "/>
+ <draw:equation draw:name="f28" draw:formula="?f1 -?f8 "/>
+ <draw:equation draw:name="f29" draw:formula="21600-?f12 "/>
+ <draw:handle draw:handle-position="left $0" draw:handle-range-y-minimum="0" draw:handle-range-y-maximum="4460"/>
+ <draw:handle draw:handle-position="$1 21600" draw:handle-range-x-minimum="8640" draw:handle-range-x-maximum="12960"/>
+ </draw:enhanced-geometry>
+ </draw:custom-shape>
+ <draw:custom-shape draw:style-name="gr4" draw:text-style-name="P9" draw:layer="layout" svg:width="10cm" svg:height="1.4cm" svg:x="15cm" svg:y="18cm">
+ <text:p text:style-name="P8"><text:span text:style-name="T2">6</text:span></text:p>
+ <text:p text:style-name="P8"><text:span text:style-name="T2">Fontwork</text:span></text:p>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:glue-points="?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800" draw:text-areas="0 0 21600 21600" draw:text-path="true" draw:text-path-mode="shape" draw:text-path-scale="path" draw:text-path-same-letter-heights="false" draw:type="fontwork-wave" draw:modifiers="4460 10800" draw:enhanced-path="M ?f7 ?f0 C ?f15 ?f9 ?f16 ?f10 ?f12 ?f0 N M ?f29 ?f1 C ?f27 ?f28 ?f25 ?f26 ?f24 ?f1 N">
+ <draw:equation draw:name="f0" draw:formula="$0 "/>
+ <draw:equation draw:name="f1" draw:formula="21600-?f0 "/>
+ <draw:equation draw:name="f2" draw:formula="$1 "/>
+ <draw:equation draw:name="f3" draw:formula="?f2 -10800"/>
+ <draw:equation draw:name="f4" draw:formula="?f3 *2"/>
+ <draw:equation draw:name="f5" draw:formula="abs(?f4 )"/>
+ <draw:equation draw:name="f6" draw:formula="4320-?f5 "/>
+ <draw:equation draw:name="f7" draw:formula="if(?f3 ,0,?f5 )"/>
+ <draw:equation draw:name="f8" draw:formula="15800*?f0 /4460"/>
+ <draw:equation draw:name="f9" draw:formula="?f0 -?f8 "/>
+ <draw:equation draw:name="f10" draw:formula="?f0 +?f8 "/>
+ <draw:equation draw:name="f11" draw:formula="21600-?f4 "/>
+ <draw:equation draw:name="f12" draw:formula="if(?f3 ,?f11 ,21600)"/>
+ <draw:equation draw:name="f13" draw:formula="?f12 -?f7 "/>
+ <draw:equation draw:name="f14" draw:formula="?f5 /2"/>
+ <draw:equation draw:name="f15" draw:formula="?f7 +7200-?f14 "/>
+ <draw:equation draw:name="f16" draw:formula="?f12 +?f14 -7200"/>
+ <draw:equation draw:name="f17" draw:formula="?f13 /2"/>
+ <draw:equation draw:name="f18" draw:formula="?f7 +?f17 "/>
+ <draw:equation draw:name="f19" draw:formula="21600-?f18 "/>
+ <draw:equation draw:name="f20" draw:formula="?f5 /2"/>
+ <draw:equation draw:name="f21" draw:formula="21600-?f20 "/>
+ <draw:equation draw:name="f22" draw:formula="?f0 *2"/>
+ <draw:equation draw:name="f23" draw:formula="21600-?f22 "/>
+ <draw:equation draw:name="f24" draw:formula="21600-?f7 "/>
+ <draw:equation draw:name="f25" draw:formula="21600-?f15 "/>
+ <draw:equation draw:name="f26" draw:formula="?f1 +?f8 "/>
+ <draw:equation draw:name="f27" draw:formula="21600-?f16 "/>
+ <draw:equation draw:name="f28" draw:formula="?f1 -?f8 "/>
+ <draw:equation draw:name="f29" draw:formula="21600-?f12 "/>
+ <draw:handle draw:handle-position="left $0" draw:handle-range-y-minimum="0" draw:handle-range-y-maximum="4460"/>
+ <draw:handle draw:handle-position="$1 21600" draw:handle-range-x-minimum="8640" draw:handle-range-x-maximum="12960"/>
+ </draw:enhanced-geometry>
+ </draw:custom-shape>
+ <presentation:notes draw:style-name="dp2">
+ <draw:page-thumbnail draw:style-name="gr5" draw:layer="layout" svg:width="14.848cm" svg:height="11.136cm" svg:x="3.075cm" svg:y="2.257cm" draw:page-number="1" presentation:class="page"/>
+ <draw:frame presentation:style-name="pr8" draw:text-style-name="P7" draw:layer="layout" svg:width="16.799cm" svg:height="13.364cm" svg:x="2.1cm" svg:y="14.107cm" presentation:class="notes" presentation:placeholder="true" presentation:user-transformed="true">
+ <draw:text-box/>
+ </draw:frame>
+ </presentation:notes>
+ </draw:page>
+ <presentation:settings presentation:mouse-visible="false"/>
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/media_embedding.odp b/sd/qa/unit/data/media_embedding.odp
new file mode 100644
index 000000000..8069b3f57
--- /dev/null
+++ b/sd/qa/unit/data/media_embedding.odp
Binary files differ
diff --git a/sd/qa/unit/data/n593612.pptx b/sd/qa/unit/data/n593612.pptx
new file mode 100644
index 000000000..2ba3eebab
--- /dev/null
+++ b/sd/qa/unit/data/n593612.pptx
Binary files differ
diff --git a/sd/qa/unit/data/n758621.ppt b/sd/qa/unit/data/n758621.ppt
new file mode 100644
index 000000000..1470efa2b
--- /dev/null
+++ b/sd/qa/unit/data/n758621.ppt
Binary files differ
diff --git a/sd/qa/unit/data/n759180.pptx b/sd/qa/unit/data/n759180.pptx
new file mode 100644
index 000000000..16cbf9adb
--- /dev/null
+++ b/sd/qa/unit/data/n759180.pptx
Binary files differ
diff --git a/sd/qa/unit/data/n762695.pptx b/sd/qa/unit/data/n762695.pptx
new file mode 100644
index 000000000..cf547f382
--- /dev/null
+++ b/sd/qa/unit/data/n762695.pptx
Binary files differ
diff --git a/sd/qa/unit/data/n819614.pptx b/sd/qa/unit/data/n819614.pptx
new file mode 100644
index 000000000..67e8ca2d9
--- /dev/null
+++ b/sd/qa/unit/data/n819614.pptx
Binary files differ
diff --git a/sd/qa/unit/data/n820786.pptx b/sd/qa/unit/data/n820786.pptx
new file mode 100644
index 000000000..d778b7492
--- /dev/null
+++ b/sd/qa/unit/data/n820786.pptx
Binary files differ
diff --git a/sd/qa/unit/data/n828390_4.odp b/sd/qa/unit/data/n828390_4.odp
new file mode 100644
index 000000000..888611cc0
--- /dev/null
+++ b/sd/qa/unit/data/n828390_4.odp
Binary files differ
diff --git a/sd/qa/unit/data/n828390_5.odp b/sd/qa/unit/data/n828390_5.odp
new file mode 100644
index 000000000..29cb8afc0
--- /dev/null
+++ b/sd/qa/unit/data/n828390_5.odp
Binary files differ
diff --git a/sd/qa/unit/data/n902652.pptx b/sd/qa/unit/data/n902652.pptx
new file mode 100644
index 000000000..87266001b
--- /dev/null
+++ b/sd/qa/unit/data/n902652.pptx
Binary files differ
diff --git a/sd/qa/unit/data/objectwithtext.fodg b/sd/qa/unit/data/objectwithtext.fodg
new file mode 100644
index 000000000..f58a377f2
--- /dev/null
+++ b/sd/qa/unit/data/objectwithtext.fodg
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.graphics">
+ <office:meta><meta:creation-date>2017-11-06T19:36:05.770859258</meta:creation-date><dc:date>2017-11-06T19:38:11.864425937</dc:date><meta:editing-duration>PT2M6S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic meta:object-count="1"/><meta:generator>LibreOfficeDev/6.0.0.0.alpha1$Linux_X86_64 LibreOffice_project/2f8c1379a07d581ac46337ca0f91609c544c3d6e</meta:generator></office:meta>
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Lohit Devanagari" svg:font-family="&apos;Lohit Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Source Han Sans CN Regular" svg:font-family="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="de" fo:country="DE" style:font-name-asian="DejaVu Sans" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="36pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="1cm" fo:margin-right="1cm" fo:page-width="21cm" fo:page-height="29.7cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page"/>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="Object_20_with_20_no_20_fill_20_and_20_no_20_line">
+ <style:graphic-properties draw:textarea-vertical-align="middle" draw:ole-draw-aspect="1" style:protect="size"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:master-page style:name="Default" style:page-layout-name="PM0" draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+ <office:drawing>
+ <draw:page draw:name="page1" draw:style-name="dp2" draw:master-page-name="Default">
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="5cm" svg:height="2.6cm" svg:x="9.651cm" svg:y="14.29cm">
+ <draw:object>
+ <loext:p text:style-name="P1">foobar</loext:p>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <semantics>
+ <mrow>
+ <mn>1</mn>
+ <mo stretchy="false">+</mo>
+ <mn>1</mn>
+ </mrow>
+ <annotation encoding="StarMath 5.0">1+1</annotation>
+ </semantics>
+ </math>
+ </draw:object><draw:image>
+ <office:binary-data>VkNMTVRGAQAxAAAAAAAAAAEAGwAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAZYDAADX
+ AQAAHQAAAJYAAQACAAAACQCLAAEAAgAAAP//gQABABAAAAAAAAAAAAAAAJUDAADWAQAAlQAB
+ AAQAAAAAAAAAlgABAAIAAAAJAIsAAQACAAAAHwCKAAEAQgAAAAMAPAAAABAATGliZXJhdGlv
+ biBTZXJpZgAAAAAAAKYBAAAAAAAAAAAFAAAAAAAAAP8DAAAAAAAAAAEA/wMAAAAAAIgAAQAC
+ AAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcgACABcAAABqAAAAcgEAAAEAMdQAAAAA
+ AAEAAQAxAIwAAQAAAAAAiwABAAIAAAAfAIoAAQA8AAAAAwA2AAAACgBPcGVuU3ltYm9sAAAA
+ AAAApgEAAP//AAAAAAUAAAAAAAAA/wMAAAAAAAAAAQD/AwAAAAAAiAABAAIAAAABAIcAAQAF
+ AAAA/////wCGAAEABAAAAAAAAAByAAIAGgAAAFgBAAByAQAAAQAAACsA9gAAAAAAAQABACsA
+ jAABAAAAAACLAAEAAgAAAB8AigABAEIAAAADADwAAAAQAExpYmVyYXRpb24gU2VyaWYAAAAA
+ AACmAQAAAAAAAAAABQAAAAAAAAD/AwAAAAAAAAABAP8DAAAAAACIAAEAAgAAAAEAhwABAAUA
+ AAD/////AIYAAQAEAAAAAAAAAHIAAgAXAAAAYQIAAHIBAAABADHUAAAAAAABAAEAMQCMAAEA
+ AAAAAJUAAQAEAAAAAAAAAJYAAQACAAAACQCMAAEAAAAAAA==
+ </office:binary-data>
+ </draw:image>
+ </draw:frame>
+ </draw:page>
+ </office:drawing>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/odg/fail/.gitignore b/sd/qa/unit/data/odg/fail/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odg/fail/.gitignore
diff --git a/sd/qa/unit/data/odg/glow.odg b/sd/qa/unit/data/odg/glow.odg
new file mode 100644
index 000000000..9020f663b
--- /dev/null
+++ b/sd/qa/unit/data/odg/glow.odg
Binary files differ
diff --git a/sd/qa/unit/data/odg/gradient-angle.fodg b/sd/qa/unit/data/odg/gradient-angle.fodg
new file mode 100644
index 000000000..6ad3b1ddf
--- /dev/null
+++ b/sd/qa/unit/data/odg/gradient-angle.fodg
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.graphics">
+ <office:meta><meta:initial-creator>ms </meta:initial-creator><meta:creation-date>2015-10-09T14:51:21.086447801</meta:creation-date><dc:date>2015-10-09T14:54:47.829092906</dc:date><dc:creator>ms </dc:creator><meta:editing-duration>PT3M27S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:generator>LibreOfficeDev/5.1.0.0.alpha1$Linux_X86_64 LibreOffice_project/83c5214889c712646e45dc1c19b6d3c13a05aa83</meta:generator><meta:document-statistic meta:object-count="1"/></office:meta>
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Lohit Devanagari" svg:font-family="&apos;Lohit Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Source Han Sans CN Regular" svg:font-family="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:gradient draw:name="Gradient_20_10" draw:display-name="Gradient 10" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="27deg" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_11" draw:display-name="Gradient 11" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="2rad" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_12" draw:display-name="Gradient 12" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="100grad" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_13" draw:display-name="Gradient 13" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="-1" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_14" draw:display-name="Gradient 14" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="-1rad" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_15" draw:display-name="Gradient 15" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="3900" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_16" draw:display-name="Gradient 16" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="10.5deg" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_17" draw:display-name="Gradient 17" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="3.14159265358979323846rad" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_18" draw:display-name="Gradient 18" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="190" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_19" draw:display-name="Gradient 19" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="180" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_2" draw:display-name="Gradient 2" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="320" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_20" draw:display-name="Gradient 20" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="170" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_21" draw:display-name="Gradient 21" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="160" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_22" draw:display-name="Gradient 22" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="150" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_23" draw:display-name="Gradient 23" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="140" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_24" draw:display-name="Gradient 24" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="130" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_25" draw:display-name="Gradient 25" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="120" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_26" draw:display-name="Gradient 26" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="110" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_27" draw:display-name="Gradient 27" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="100" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_28" draw:display-name="Gradient 28" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="90" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_29" draw:display-name="Gradient 29" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="80" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_3" draw:display-name="Gradient 3" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="330" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_30" draw:display-name="Gradient 30" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="70" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_31" draw:display-name="Gradient 31" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="60" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_32" draw:display-name="Gradient 32" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="50" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_33" draw:display-name="Gradient 33" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="40" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_34" draw:display-name="Gradient 34" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="30" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_35" draw:display-name="Gradient 35" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="20" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_36" draw:display-name="Gradient 36" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="10" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_37" draw:display-name="Gradient 37" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_38" draw:display-name="Gradient 38" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="3600" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_39" draw:display-name="Gradient 39" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="3590" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_4" draw:display-name="Gradient 4" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="340" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_40" draw:display-name="Gradient 40" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="3580" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_5" draw:display-name="Gradient 5" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="350" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_6" draw:display-name="Gradient 6" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="360" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_7" draw:display-name="Gradient 7" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_8" draw:display-name="Gradient 8" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="290" draw:border="0%"/>
+ <draw:gradient draw:name="Gradient_20_9" draw:display-name="Gradient 9" draw:style="linear" draw:start-color="#8ae234" draw:end-color="#4e9a06" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="280" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_1" draw:display-name="Transparency 1" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="90deg" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_2" draw:display-name="Transparency 2" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="10" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_3" draw:display-name="Transparency 3" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="1.0rad" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_4" draw:display-name="Transparency 4" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="1000grad" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_5" draw:display-name="Transparency 5" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="3580" draw:border="0%"/>
+ <draw:opacity draw:name="Transparency_20_6" draw:display-name="Transparency 6" draw:style="linear" draw:start="100%" draw:end="0%" draw:angle="3570" draw:border="0%"/>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="de" fo:country="DE" style:font-name-asian="DejaVu Sans" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Source Han Sans CN Regular" style:font-family-asian="&apos;Source Han Sans CN Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lohit Devanagari" style:font-family-complex="&apos;Lohit Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="36pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="1cm" fo:margin-right="1cm" fo:page-width="21cm" fo:page-height="29.7cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page"/>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:fill="gradient" draw:fill-gradient-name="Gradient_20_38" draw:opacity="100%" draw:opacity-name="Transparency_20_2" draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="4.35cm" fo:min-width="10.1cm"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <loext:graphic-properties draw:fill="gradient" draw:fill-gradient-name="Gradient_20_38" draw:opacity="100%" draw:opacity-name="Transparency_20_2"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:master-page style:name="Default" style:page-layout-name="PM0" draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+ <office:drawing>
+ <draw:page draw:name="page1" draw:style-name="dp2" draw:master-page-name="Default">
+ <draw:custom-shape draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="10.6cm" svg:height="4.6cm" svg:x="3.9cm" svg:y="2.5cm">
+ <text:p/>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ </draw:page>
+ </office:drawing>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/odg/indeterminate/.gitignore b/sd/qa/unit/data/odg/indeterminate/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odg/indeterminate/.gitignore
diff --git a/sd/qa/unit/data/odg/ooo124143-1.odg b/sd/qa/unit/data/odg/ooo124143-1.odg
new file mode 100644
index 000000000..8e341cbc7
--- /dev/null
+++ b/sd/qa/unit/data/odg/ooo124143-1.odg
Binary files differ
diff --git a/sd/qa/unit/data/odg/pass/.gitignore b/sd/qa/unit/data/odg/pass/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odg/pass/.gitignore
diff --git a/sd/qa/unit/data/odg/pass/CVE-2012-4233-2.odg b/sd/qa/unit/data/odg/pass/CVE-2012-4233-2.odg
new file mode 100644
index 000000000..321bd9cdb
--- /dev/null
+++ b/sd/qa/unit/data/odg/pass/CVE-2012-4233-2.odg
Binary files differ
diff --git a/sd/qa/unit/data/odg/softedges.odg b/sd/qa/unit/data/odg/softedges.odg
new file mode 100644
index 000000000..a1fcab90e
--- /dev/null
+++ b/sd/qa/unit/data/odg/softedges.odg
Binary files differ
diff --git a/sd/qa/unit/data/odg/tdf114488.fodg b/sd/qa/unit/data/odg/tdf114488.fodg
new file mode 100644
index 000000000..41a3c497d
--- /dev/null
+++ b/sd/qa/unit/data/odg/tdf114488.fodg
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.graphics">
+ <office:meta><dc:date>2016-12-14T10:36:44.079000000</dc:date><meta:editing-duration>PT2M21S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:generator>LibreOfficeDev/6.1.0.0.alpha0$Linux_X86_64 LibreOffice_project/d36007ffd98bc9ed2f8ca6151a5283bd46a92485</meta:generator><meta:document-statistic meta:object-count="1"/></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-817</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">-127</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">10457</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">6649</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item config:name="GridIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridIsFront" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToPageMargins" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToSnapLines" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectFrame" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPlusHandlesAlwaysVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsFrameDragSingles" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EliminatePolyPointLimitAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="IsEliminatePolyPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="VisibleLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="PrintableLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="LockedLayers" config:type="base64Binary"/>
+ <config:config-item config:name="NoAttribs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoColors" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="RulerIsVisible" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PageKind" config:type="short">0</config:config-item>
+ <config:config-item config:name="SelectedPage" config:type="short">0</config:config-item>
+ <config:config-item config:name="IsLayerMode" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsDoubleClickTextEdit" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsClickChangeRotation" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SlidesPerRow" config:type="short">4</config:config-item>
+ <config:config-item config:name="EditMode" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-940</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">787</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">8624</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">6889</config:config-item>
+ <config:config-item config:name="GridCoarseWidth" config:type="int">1270</config:config-item>
+ <config:config-item config:name="GridCoarseHeight" config:type="int">1270</config:config-item>
+ <config:config-item config:name="GridFineWidth" config:type="int">127</config:config-item>
+ <config:config-item config:name="GridFineHeight" config:type="int">127</config:config-item>
+ <config:config-item config:name="GridSnapWidthXNumerator" config:type="int">127</config:config-item>
+ <config:config-item config:name="GridSnapWidthXDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="GridSnapWidthYNumerator" config:type="int">127</config:config-item>
+ <config:config-item config:name="GridSnapWidthYDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="IsAngleSnapEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SnapAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="ZoomOnPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="BitmapTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sob</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ColorTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soc</config:config-item>
+ <config:config-item config:name="DashTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sod</config:config-item>
+ <config:config-item config:name="DefaultTabStop" config:type="int">1270</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GradientTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sog</config:config-item>
+ <config:config-item config:name="HatchTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soh</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBooklet" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBookletBack" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintBookletFront" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintDate" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintFitPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHiddenPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintPageName" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTilePage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTime" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LineEndTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soe</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="MeasureUnit" config:type="short">7</config:config-item>
+ <config:config-item config:name="PageNumberFormat" config:type="int">4</config:config-item>
+ <config:config-item config:name="ParagraphSummation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintQuality" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string"/>
+ <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ScaleDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="ScaleNumerator" config:type="int">1</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Lohit Devanagari" svg:font-family="&apos;Lohit Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Lucida Sans" svg:font-family="&apos;Lucida Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans CJK SC Regular" svg:font-family="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Segoe UI" svg:font-family="&apos;Segoe UI&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="en" fo:country="US" style:font-name-asian="Segoe UI" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Tahoma" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lucida Sans" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="36pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="10.16cm" fo:page-height="5.08cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page"/>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="Object_20_with_20_no_20_fill_20_and_20_no_20_line">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle" draw:color-mode="standard" draw:luminance="0%" draw:contrast="0%" draw:gamma="100%" draw:red="0%" draw:green="0%" draw:blue="0%" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:image-opacity="100%" style:mirror="none"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:master-page style:name="Default" style:page-layout-name="PM0" draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+ <office:drawing>
+ <draw:page draw:name="page1" draw:style-name="dp2" draw:master-page-name="Default">
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="4.69cm" svg:height="0.776cm" svg:x="2.413cm" svg:y="2.272cm">
+ <draw:image xlink:href="" loext:mime-type="image/x-wmf">
+ <office:binary-data>183GmgAAAAAAAKAQwAIBCQAAAABwTAEACQAAAz0CAAACABwAAAAAAAUAAAAJAgAAAAAFAAAA
+ AgEBAAAABQAAAAEC////AAUAAAAuARgAAAAFAAAACwIAAAAABQAAAAwCwAKgEBIAAAAmBg8A
+ GgD/////AAAQAAAAwP///8D///9gEAAAgAIAAAsAAAAmBg8ADABNYXRoVHlwZQAAgAAcAAAA
+ +wKA/gAAAAAAAJABAQAAAAQCABBUaW1lcyBOZXcgUm9tYW4AdPEtAIlAg30gAIZ9IAdmwAQA
+ AAAtAQAACAAAADIKwAHCDwEAAAByeQgAAAAyCsABUA4BAAAAZHkIAAAAMgrAARgNAQAAAHJ5
+ CAAAADIKwAFDCgEAAABoeQgAAAAyCsABKQkBAAAAcnkIAAAAMgrAAdwDAQAAAGp5CAAAADIK
+ wAHwAQEAAABoeQgAAAAyCsABmgABAAAAaXkcAAAA+wIg/wAAAAAAAJABAQAAAAQCABBUaW1l
+ cyBOZXcgUm9tYW4AdPEtAIlAg30gAIZ9IAdmwAQAAAAtAQEABAAAAPABAAAIAAAAMgogAvsL
+ AQAAAGp5CAAAADIKIALnBwEAAABpeRwAAAD7AiD/AAAAAAAAkAEAAAAABAIAEFRpbWVzIE5l
+ dyBSb21hbgB08S0AiUCDfSAAhn0gB2bABAAAAC0BAAAEAAAA8AEBAAgAAAAyChQBRA8BAAAA
+ M3kIAAAAMgoUAQwIAQAAACp5HAAAAPsCgP4AAAAAAACQAQAAAAAEAgAQVGltZXMgTmV3IFJv
+ bWFuAHTxLQCJQIN9IACGfSAHZsAEAAAALQEBAAQAAADwAQAACAAAADIKwAHGDQEAAAApeQgA
+ AAAyCsABjgwBAAAAKHkIAAAAMgpOAYMKAQAAAIh5CAAAADIKwAHXCQEAAAApeQgAAAAyCsAB
+ nwgBAAAAKHkIAAAAMgrAAVoEAQAAAF15CAAAADIKwAH4AgEAAAB8eQgAAAAyCk4BMAIBAAAA
+ iHkIAAAAMgrAAVQBAQAAAHx5CAAAADIKwAEcAAEAAABbeRwAAAD7AoD+AAAAAAAAkAEBAAAC
+ BAIAEFN5bWJvbAAABQcK/CAAhn108S0AiUCDfSAAhn0gB2bABAAAAC0BAAAEAAAA8AEBAAgA
+ AAAyCsABAwsBAAAAZnkIAAAAMgrAAR8HAQAAAGZ5HAAAAPsCwP0AAAAAAACQAQAAAAIAAgAQ
+ U3ltYm9sAACsAgoAIACGfXTxLQCJQIN9IACGfSAHZsAEAAAALQEBAAQAAADwAQAACAAAADIK
+ SgJeBgEAAADyeRwAAAD7AoD+AAAAAAAAkAEAAAACAAIAEFN5bWJvbAAABQcK/SAAhn108S0A
+ iUCDfSAAhn0gB2bABAAAAC0BAAAEAAAA8AEBAAgAAAAyCsABJgUBAAAAPXkKAAAAJgYPAAoA
+ /////wEAAAAAABwAAAD7AhAABwAAAAAAvAIAAAAAAQICIlN5c3RlbQDAIAdmwAAACgAhAIoB
+ AAAAAAEAAACQ8y0ABAAAAC0BAQAEAAAA8AEAAAMAAAAAAA==
+ </office:binary-data>
+ <text:p/>
+ </draw:image>
+ <draw:image loext:mime-type="image/png">
+ <office:binary-data>iVBORw0KGgoAAAANSUhEUgAAALEAAAAdCAYAAADl941QAAAACXBIWXMAAA69AAAOlAEDvQ9G
+ AAAPp0lEQVR4nO2bd1wU59bHn2e20pcuRTq7gCwWCGJU7CZ4NTaaBYMgalCB1ysWYsGCKEJU
+ MBoboqAgdjHBHjs2sAC7sAurgCgqgtJ2ly1zFxEEwmyhaPKG7z98mHnmnN8czsycc2bAoygK
+ eujhnwz+awvooYfO0u1JzM1JpcWeYHqKaZOKgrz7HlEBQNjdPv9t/Ntj3K1JjFZc0g71DIy/
+ bjawHsYdsSrSuC3a5aZzBEp2dafffxM9Me7OJEbf4E6H7wrGrb594J43LQGyUk3DloevOdE/
+ LtO9F8zrNr//Jnpi/JHuS2KoJ5oce3L15KbfqZ6FW096zuo2f18AtDJDMzZ4RcSeW0VjlVxC
+ H+3dFxjYXxm8bW8tl/3QlEUsVDl2yHCi338o51T60Qv0EcDtUkH/r2KMwsoTq0av4JgPcuI/
+ qM/qFVy7fY7trwQAxLKObExiEZO0cWC/szH1Y0wmDKP/aeM6/U6QBz1FWVptJWIRo0atPWhx
+ 4fAydxIobiuoKjPBPjhg0W/JWlsA59JPow0hxh9Qqh1sarOP2cQduTEzL+cG/dwl0rAljzMm
+ LLfB3ZT3eIURlxISAxZHsuYcvrUBDBK6H14dGOcz50y8GzHpr4tRKKjNVtu/4uDPuW9Vej0T
+ LlDb6EDfCJA2q6pz1FJSSqa4+rsdM0JAHYZj+CJ9v+ttE+86zz5qDxvLBAXi2wV0XGe71uDb
+ 23udtkRsWrH1nuvgU6UJjuPJ4IXkikSJ1lOeLZ404B5VoAN8Rx9NyvUNT+qHB5Wy9LW4E+PR
+ Pv47jsYHm61FmgVw4bXFjqu978/+/vL1UDd7HHgv32lDVH3AD4xhBgs5l8xoUAcCvnzHSUMI
+ n24e9tOYg4MCU7OiRw+je+Qtj/RYKS7ZYTLK9tCNztuX4f3pHlrMHfvhUYcN1qs/pGvTh/S9
+ 5e5EyGi15slmu+UPZ7pG+RvuRoW6wG3V3F91/9AdNLoP4SkKW9sTPEs1XTDv5DaHqL3bDKXe
+ oRHUaLDTozdz3bcEeuyhx001TcADKO5ofD9rNNqNyFE3d05ne3dRiOoO9n/oO3jP1V8r7Eyp
+ BFDVtEfFYUABVfITff9Bj6djWKODyHdeMsoJPNChDuA41ps90YCgXh6DzQjZJAYbtbAeR03H
+ d0mTgQCKWb8SJ0frLB084HXeniKIIDv9D9d80mCiMqIkGLTy8vbHK8H21mu48FZy0Tj7EMPz
+ iOQPpeE0PsdNXIdzMcNla2qQPrRaWn1TI2zy6ni46W78gn5qN2Q1YVC9f9XC30JWzHWZlLZS
+ /2b5piGqZzsW35Ya5TimK3S2iwAU5j+zVqLZFpvgQO3n7ZK79L3kfgePXvMy9gy72kVJTEDt
+ 5ycl/g5AojzGWoLWsFTySilGNJoeW66AyQRBTbx+TfvdC6R13pai1MGnWXn9hAJnggBtWxQ0
+ gr4/r5XydpD5On1Y0LwRURZpaoDWCSx5ouTGLfb5jeynkTmGkibvFAFSxlYumb028ZvFO8Jn
+ ZSy/blvDIioa33Y1YtI1Ou1wbc8ffCzNWIU8c8uJtNyWNS+/jkfWGjj98RLnsU/jJ0/ftWfw
+ +cdBpshDWT6xk1j8Cv9nXKh/SNjxDfpbi6IvzNWPUmRsI2IzjFioNXmE2o3qSI9lCXEXWBMJ
+ QzZkpp0O9nQgggp57XwELcfd3r3SZ+mqA+uq5t8982h9/+D2H1XtCeHj6ngCshgFEGsJhASU
+ rEKqw2Gdn+gl4Xkx3xjl1pF4oGUS18OSS7GuMWfLp+CenzPK1h0tChx7+fi42L3r/WyJ99q1
+ JXxETkrM8bL03n/TAgdqmrdzM1V2+s7etuKMtseGzC2TSDGLpqw7UTXN5/KTWZHf4NMBwKGW
+ bt/fNA8/FH748RKXtSLGa/ni2wGNWDplamygtc4IR/yFhjvshydJdhGRJ0KfE5SJ/KJHhney
+ yI7jlpuc+BxzIWQfjRqfjqNSjETPRY+MPWrnGSCF8vjETmLEQDh8xsjTRmE3V1jRtNiKzh1r
+ WEzTEqRC6Xx8hueiTTdiCpdGbHd23X/+BHNBf4e++CuK2AJQRzTYb8rxPuGHF5fbWubJncAS
+ 6m+EOtMnxqe9FgMypnlVz/dHiuJdJpAaGox2EJfjXr8V66C8OmKduClmtUjWL+4BftfHj09M
+ 9Jt30as4cmF01EbLzQ5Txkf8vsIzabK7ajuNsbg0Q+8OB7G2srE40uo8lBxr/X2/SQpPz510
+ MXL7Ty7eu07Fqu8r51rhC5uW4C1sX1JxHO6djFfOVRRmtuz4dkwjpk45NLbVKXbsfbH2zhqn
+ sdPvJnidObUgqq/KNRFzI22g05krdjRCiycCHrWfveaY/affps9u2u4IZMal3T/aJ4RshnHD
+ 1f6DdWuRshHCAgbbRtRrePmSzSvXjKHAImE13h4iGiJNdaRaMVuNiMvytVlVxpqDrJU5ihxH
+ HBGbUVgVq9MRn82gXMjloSRUzEW4PMnFQEZhZfriYV479ENi7gdOsGGv1gnUnoJP00KeFSmR
+ eHXl7zTrUIBXhX9NEFExR78YVSfbahHbdN1iWJqXb1VFUANjwvbFBtmRbotHR5OEZEkB2Xwy
+ OvW6GuIPmRyOOYvMFkiPb8c1YuuUQ2MrnUXmovo3ylHzt21GFjw4E9xX5XrDbj4zx7SQTEPs
+ THBFsoMv26eUJEZhVX6e2SttGx5NF5bJdtaSWshiFlM1RkzMHEaBJQ1beOy83kUqVDHNEClV
+ zFYjwgKmUQFiTfCzwimUxF2DANYLAAGg9QhfgBIkLT5p+4rknw2CHqWO1+Fxrq1NX2PhHnqF
+ glaITj183t/IgZ6nhdEIozVVStUoGU8mwzbNqRCwJRc+Yfi2LF870v2GLQiZzCe2XALJKJmM
+ 8muqytVZz4ppUuPbCY3YOuXQ2EpnjRrvVnL/hAIn+vJp1v9tLB1EsDCHacu38i5rOZnARrZP
+ KUksAgUMFg21Hid5NADF7p7CQiKDJbaydrW+3tg5CyFHYkto5dMg/K+FvkxQWM5imVUY9K+m
+ qsJ3imnh4qtq+SrSa2IiqqyhXI09WEcB2nS85KfgfpJ9UuG3dsu8LBYjH05TDlzr6+odqf6j
+ mBNvmnDLfOi0CMc5mCUPhCiU7BKL2zSI4pd4Zn61tYkrja3cEPx2aTwOomU4JktsKYnvNaz4
+ dkojlk65NLbQCVH0RVZWn3Idp9o++sjLxn1cyMwptCPTbItNW00msEzJ9omdxGg1kp9XStO0
+ oT3TRRQcaXFZysxiVWOajRGrsXPmIyzGMxslmk2RcYfeWglBAZNNg9bTS63wil1QgtsrHV08
+ Dp58IwYkrDVQZeqHg6zdruNIQI6nhBi8efzI5pXF0HfOuqCkLPHAqAffLnyxW7n89bkNsZGl
+ HjsyghzwtzB9UbRqKJAnkJQnrWt0IZvEZCEW1HmWlzGTC+VJyhlI0lCrrMsvVu2LHV8x7IxG
+ TJ3yaGypU5Pynl/HU0JRFDY3VIJ80pNcoY2VDy1Dnrdx8vjETmJRgeRuilpSx1IvKDrnFRYy
+ DFkiK2Vf6qfCXcQhMPIFVtYzqPcUacqaQSsRVn65tb4dlaMB29RfMiAMi7nHeBNjpLBPTCBQ
+ UlOtIYiEUCTiEJMT8rxHr3FKfb53jueqF/PoySdHzmJELApgz9h+e7Y58qjt0Xhz6isLXFVd
+ WVmtHgqIsKlhFpcxtfOqemt+S1XB7j9qXym9eo/TNNeorGSLrJSw4ytL4zgfreYXJEKYuSVo
+ zr3xcTmBtrjmlzft6ZRLYwudFlRLtoVOH4Za2e/a8amL3PsMLT93Knr5woMs8oARdiYJmNOg
+ FsjjEzuJa/JV8kpEvcuu7XNJdA5xneWsKXPY3QSPxTQpUqGJbY2RksYN+UoMjtC88v5x3sVn
+ S23dzHEMeew0IywgMQuAufVU61Nd8+KkM0CgNTns6s/HlmStD8qNZjzW+HbQlfUl8bpBpefT
+ h080wIM6sDJuxxCso3WGVoygg6f7c/LthMAFEj6dj5DFMGYjVOIcK+wmWpCf0zsP0EkzKUVl
+ 0TLiK1NjM3jUMXTnXkc5dMqjsaVOvyHad9Utw+9vnTF1f0jAwE13h86fumnhsF26u5/Ozk5N
+ Hpft5neaTpD+Wlken9hJTJlZfrp2pqk0B1ioeh77o8oTfL77qbi/T6lyt+yIrQbQarZqfplu
+ L5sOjPq6BdWBVaFnr/yYEdo3LGB+Qs2eiIH/JX56wohepRj+OCNnZ8jFDX5O+Hbm4Thq/cz5
+ ow5E/5K26slGF00nAvhY4xNH/3b7ZQ3Qx3YqgE/T0kdVjAzJ9gv2/2X1/4ENzbvai68UjS0R
+ v07Tn+d+Ya/3lR1zRxHB5wa+HZ2yNbbWOZOKywSIFX9mwpPgmQkguGnFVP6GY9JtfEYeny2S
+ WAhz9y/08i900G34AGiRu/1RqR8AfUGEzCcmTPwAwjQ6PrdpW8MHQDuSb87Iy77ukC0kUb7r
+ VgWIpM9puHjwKIHwqZzh3lRNOqnyH68zTmEtkwMh8kQCA/sKKmbtjqDGPjFn16b+MHHdoYDZ
+ p/zNYuR5rIqKEnuvO27oEX5mVrAx5kc4bcDQ2EqNupgr0rOvtP1Lw/0FdXaSxiTG2fLDHvK/
+ C/sSHuVGBHP37Z/6bpbvTdXzV4dz3VZmfk+BzXNFFbpH3jK6x6ovowWPEhuSF5JQEhF+HEtV
+ X05yPmc4XXzVDtfqtaiQmWvCt/V5KfW/Kwg0XmDKoQXcgAXRIZQ43+ipFodIUrp9PueEWWjQ
+ +c2uh47+vMCGcFde1VgaWyIqzDWqNB/6Tre9j4i+kM7O8jf+HzsheM06TFs/5ViAQDhWvDd+
+ Soh2l3wN1wE+zj0hH1HVrKMQGjWoTThwpWgCaPPmEYXluUzLWgiQahQQKFLmsJAy8P2SlISf
+ 7l/mDPmAWhD0IOZYDX54q6rhk5C85BsdXIkistvX2Boug2lGsAsoxuo1voTOztLxJJbUTEuv
+ HZ7WaQWYdkjoyKjrESMBiOi0j84iSWIlMuQhygaVelLHjRA1mHcu5RIAKXLZxekKnL/T/VP6
+ IgTVG/jdEz0F5MqPEObn8qh9JmnmSO01vrpO6fyN78R/IyBZrESC9SRz2xJLBefUf1uEj8mH
+ t16cy6ifoD3bAY/9IdA/gJ4kxgSFvIq3GjxVPT4Fh4pRSV1MH/TNA6wPZv5x4PvxZoT2i/3a
+ MrqCniTGQJSzycbVeeV1zqTUuwX7VX1fvHdU85hkcU6eDr2HL0tPEmMgfvdK/XU9UIbcYqUr
+ v1zzZ7uvfxBthd3l9/D16EliDAhDlmXtixQvTXzKdMnUXVqXvGzwMnUFX3n38GXoSWIscEaC
+ MaE7do4BYOfXltKDdP4HEfnvnktJxIAAAAAASUVORK5CYII=
+ </office:binary-data>
+ </draw:image>
+ </draw:frame>
+ </draw:page>
+ </office:drawing>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/sd/qa/unit/data/odp/BulletsAsImage.odp b/sd/qa/unit/data/odp/BulletsAsImage.odp
new file mode 100644
index 000000000..7094d34af
--- /dev/null
+++ b/sd/qa/unit/data/odp/BulletsAsImage.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/LineStylesOwn.odp b/sd/qa/unit/data/odp/LineStylesOwn.odp
new file mode 100644
index 000000000..8a145bb9f
--- /dev/null
+++ b/sd/qa/unit/data/odp/LineStylesOwn.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/Table_with_Cell_Fill.odp b/sd/qa/unit/data/odp/Table_with_Cell_Fill.odp
new file mode 100644
index 000000000..1a06f235e
--- /dev/null
+++ b/sd/qa/unit/data/odp/Table_with_Cell_Fill.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/Tdf62176.odp b/sd/qa/unit/data/odp/Tdf62176.odp
new file mode 100644
index 000000000..1139dd048
--- /dev/null
+++ b/sd/qa/unit/data/odp/Tdf62176.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/author_field.odp b/sd/qa/unit/data/odp/author_field.odp
new file mode 100644
index 000000000..ace132df4
--- /dev/null
+++ b/sd/qa/unit/data/odp/author_field.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/author_fixed.odp b/sd/qa/unit/data/odp/author_fixed.odp
new file mode 100644
index 000000000..2e666ad17
--- /dev/null
+++ b/sd/qa/unit/data/odp/author_fixed.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/bnc822341.odp b/sd/qa/unit/data/odp/bnc822341.odp
new file mode 100644
index 000000000..28fe2f4f4
--- /dev/null
+++ b/sd/qa/unit/data/odp/bnc822341.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/bulletCharAndFont.odp b/sd/qa/unit/data/odp/bulletCharAndFont.odp
new file mode 100644
index 000000000..51277b272
--- /dev/null
+++ b/sd/qa/unit/data/odp/bulletCharAndFont.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/cellspan.odp b/sd/qa/unit/data/odp/cellspan.odp
new file mode 100644
index 000000000..775e1e400
--- /dev/null
+++ b/sd/qa/unit/data/odp/cellspan.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/closed-shapes.odp b/sd/qa/unit/data/odp/closed-shapes.odp
new file mode 100644
index 000000000..d422c74a0
--- /dev/null
+++ b/sd/qa/unit/data/odp/closed-shapes.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/document_with_linked_graphic.odp b/sd/qa/unit/data/odp/document_with_linked_graphic.odp
new file mode 100644
index 000000000..b0c327d44
--- /dev/null
+++ b/sd/qa/unit/data/odp/document_with_linked_graphic.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/document_with_two_images.odp b/sd/qa/unit/data/odp/document_with_two_images.odp
new file mode 100644
index 000000000..33fb9bb56
--- /dev/null
+++ b/sd/qa/unit/data/odp/document_with_two_images.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/embedded-pdf.odp b/sd/qa/unit/data/odp/embedded-pdf.odp
new file mode 100644
index 000000000..d67584d19
--- /dev/null
+++ b/sd/qa/unit/data/odp/embedded-pdf.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/extfile_field.odp b/sd/qa/unit/data/odp/extfile_field.odp
new file mode 100644
index 000000000..e5425bead
--- /dev/null
+++ b/sd/qa/unit/data/odp/extfile_field.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/fail/.gitignore b/sd/qa/unit/data/odp/fail/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odp/fail/.gitignore
diff --git a/sd/qa/unit/data/odp/fdo77027.odp b/sd/qa/unit/data/odp/fdo77027.odp
new file mode 100644
index 000000000..4d834d468
--- /dev/null
+++ b/sd/qa/unit/data/odp/fdo77027.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/group_rotation.odp b/sd/qa/unit/data/odp/group_rotation.odp
new file mode 100644
index 000000000..92568c150
--- /dev/null
+++ b/sd/qa/unit/data/odp/group_rotation.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/image_transparency.odp b/sd/qa/unit/data/odp/image_transparency.odp
new file mode 100644
index 000000000..6d3f6c232
--- /dev/null
+++ b/sd/qa/unit/data/odp/image_transparency.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/images_with_special_IDs.odp b/sd/qa/unit/data/odp/images_with_special_IDs.odp
new file mode 100644
index 000000000..f6a5545a8
--- /dev/null
+++ b/sd/qa/unit/data/odp/images_with_special_IDs.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/indeterminate/.gitignore b/sd/qa/unit/data/odp/indeterminate/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odp/indeterminate/.gitignore
diff --git a/sd/qa/unit/data/odp/linked_graphic.jpg b/sd/qa/unit/data/odp/linked_graphic.jpg
new file mode 100644
index 000000000..2218cdd72
--- /dev/null
+++ b/sd/qa/unit/data/odp/linked_graphic.jpg
Binary files differ
diff --git a/sd/qa/unit/data/odp/loopNoPause.odp b/sd/qa/unit/data/odp/loopNoPause.odp
new file mode 100644
index 000000000..d9be1c2dc
--- /dev/null
+++ b/sd/qa/unit/data/odp/loopNoPause.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/loopPause10.odp b/sd/qa/unit/data/odp/loopPause10.odp
new file mode 100644
index 000000000..0e3e316db
--- /dev/null
+++ b/sd/qa/unit/data/odp/loopPause10.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/masterpage_style_parent.odp b/sd/qa/unit/data/odp/masterpage_style_parent.odp
new file mode 100644
index 000000000..e9f637849
--- /dev/null
+++ b/sd/qa/unit/data/odp/masterpage_style_parent.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/math.odp b/sd/qa/unit/data/odp/math.odp
new file mode 100644
index 000000000..c7605c571
--- /dev/null
+++ b/sd/qa/unit/data/odp/math.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/numfmt.odp b/sd/qa/unit/data/odp/numfmt.odp
new file mode 100644
index 000000000..6fd32ce0a
--- /dev/null
+++ b/sd/qa/unit/data/odp/numfmt.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/page_transparent_background.odp b/sd/qa/unit/data/odp/page_transparent_background.odp
new file mode 100644
index 000000000..02b11976a
--- /dev/null
+++ b/sd/qa/unit/data/odp/page_transparent_background.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/pass/.gitignore b/sd/qa/unit/data/odp/pass/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/.gitignore
diff --git a/sd/qa/unit/data/odp/pass/EDB-26517-1.odp b/sd/qa/unit/data/odp/pass/EDB-26517-1.odp
new file mode 100644
index 000000000..8367930bf
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/EDB-26517-1.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/pass/ooo56974-1.odp b/sd/qa/unit/data/odp/pass/ooo56974-1.odp
new file mode 100644
index 000000000..6a48db41a
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/ooo56974-1.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/pass/ooo72169-1.odp b/sd/qa/unit/data/odp/pass/ooo72169-1.odp
new file mode 100644
index 000000000..7a024b8f8
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/ooo72169-1.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/pass/test-embedded-dejavu.odp b/sd/qa/unit/data/odp/pass/test-embedded-dejavu.odp
new file mode 100644
index 000000000..d539e8cfa
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/test-embedded-dejavu.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/pass/test-slide-name-fields.odp b/sd/qa/unit/data/odp/pass/test-slide-name-fields.odp
new file mode 100644
index 000000000..3de53f931
--- /dev/null
+++ b/sd/qa/unit/data/odp/pass/test-slide-name-fields.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/preset-shapes-export.odp b/sd/qa/unit/data/odp/preset-shapes-export.odp
new file mode 100644
index 000000000..30668535b
--- /dev/null
+++ b/sd/qa/unit/data/odp/preset-shapes-export.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/rotate_flip.odp b/sd/qa/unit/data/odp/rotate_flip.odp
new file mode 100644
index 000000000..675b3fb85
--- /dev/null
+++ b/sd/qa/unit/data/odp/rotate_flip.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/shapes-test.odp b/sd/qa/unit/data/odp/shapes-test.odp
new file mode 100644
index 000000000..fa202104b
--- /dev/null
+++ b/sd/qa/unit/data/odp/shapes-test.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/slidecount_field.odp b/sd/qa/unit/data/odp/slidecount_field.odp
new file mode 100644
index 000000000..c8f5bd46d
--- /dev/null
+++ b/sd/qa/unit/data/odp/slidecount_field.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/slidename_field.odp b/sd/qa/unit/data/odp/slidename_field.odp
new file mode 100644
index 000000000..e1a119b9f
--- /dev/null
+++ b/sd/qa/unit/data/odp/slidename_field.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/slidenum_field.odp b/sd/qa/unit/data/odp/slidenum_field.odp
new file mode 100644
index 000000000..e7789a3a0
--- /dev/null
+++ b/sd/qa/unit/data/odp/slidenum_field.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/svg-export-text-decorations.odp b/sd/qa/unit/data/odp/svg-export-text-decorations.odp
new file mode 100644
index 000000000..d51661716
--- /dev/null
+++ b/sd/qa/unit/data/odp/svg-export-text-decorations.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odp b/sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odp
new file mode 100644
index 000000000..9df8d6615
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf100387.odp b/sd/qa/unit/data/odp/tdf100387.odp
new file mode 100644
index 000000000..72c7ba385
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf100387.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf103567.odp b/sd/qa/unit/data/odp/tdf103567.odp
new file mode 100644
index 000000000..a6f72c414
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf103567.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf106026.odp b/sd/qa/unit/data/odp/tdf106026.odp
new file mode 100644
index 000000000..0d77f755b
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf106026.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf108925.odp b/sd/qa/unit/data/odp/tdf108925.odp
new file mode 100644
index 000000000..5b6dfc4ca
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf108925.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf111798.odp b/sd/qa/unit/data/odp/tdf111798.odp
new file mode 100644
index 000000000..f00c0bec7
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf111798.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf112552.odp b/sd/qa/unit/data/odp/tdf112552.odp
new file mode 100644
index 000000000..df4afb76b
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf112552.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf112557.odp b/sd/qa/unit/data/odp/tdf112557.odp
new file mode 100644
index 000000000..5587e7fce
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf112557.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf112647.odp b/sd/qa/unit/data/odp/tdf112647.odp
new file mode 100644
index 000000000..72a6621b8
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf112647.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf115005.odp b/sd/qa/unit/data/odp/tdf115005.odp
new file mode 100644
index 000000000..764a862fe
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf115005.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp b/sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp
new file mode 100644
index 000000000..2f88282af
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf116266.odp b/sd/qa/unit/data/odp/tdf116266.odp
new file mode 100644
index 000000000..17ce46ea5
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf116266.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf116266_chart.svg b/sd/qa/unit/data/odp/tdf116266_chart.svg
new file mode 100644
index 000000000..3a3ef2d0e
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf116266_chart.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="120mm" height="110mm" viewBox="0 0 12000 11000" version="1.1" xmlns="http://www.w3.org/2000/svg" stroke-width="28.222" stroke-linejoin="round" xml:space="preserve">
+ <path fill="rgb(255,255,255)" stroke="none" d="M 6000,11000 L 0,11000 0,0 12000,0 12000,11000 6000,11000 Z"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 7008,10247 L 2399,10247 2399,249 11617,249 11617,10247 7008,10247 Z"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,10246 L 2399,10246"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,8930 L 2399,8930"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,7614 L 2399,7614"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,6299 L 2399,6299"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,4984 L 2399,4984"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,3668 L 2399,3668"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,2353 L 2399,2353"/>
+ <path fill="none" stroke="rgb(178,178,178)" stroke-width="30" stroke-linejoin="round" d="M 11617,1037 L 2399,1037"/>
+ <path fill="none" stroke="rgb(179,179,179)" stroke-linejoin="round" d="M 2399,10246 L 11617,10246"/>
+ <path fill="none" stroke="rgb(179,179,179)" stroke-linejoin="round" d="M 2399,10246 L 2399,248"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 11504,10246 L 11594,10246 11594,2205 11504,2205 11504,10246 Z"/>
+ <path fill="rgb(255,51,51)" stroke="none" d="M 11368,10246 L 11458,10246 11458,2271 11368,2271 11368,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 11232,10246 L 11323,10246 11323,2405 11232,2405 11232,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 11097,10246 L 11187,10246 11187,2213 11097,2213 11097,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10961,10246 L 11052,10246 11052,1684 10961,1684 10961,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10826,10246 L 10916,10246 10916,946 10826,946 10826,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10690,10246 L 10780,10246 10780,385 10690,385 10690,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10555,10246 L 10645,10246 10645,262 10555,262 10555,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10419,10246 L 10509,10246 10509,529 10419,529 10419,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10283,10246 L 10374,10246 10374,1250 10283,1250 10283,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 10148,10246 L 10238,10246 10238,1870 10148,1870 10148,10246 Z"/>
+ <path fill="rgb(255,51,51)" stroke="none" d="M 10012,10246 L 10103,10246 10103,2084 10012,2084 10012,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9877,10246 L 9967,10246 9967,2209 9877,2209 9877,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9741,10246 L 9831,10246 9831,2575 9741,2575 9741,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9605,10246 L 9696,10246 9696,3208 9605,3208 9605,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9470,10246 L 9560,10246 9560,4062 9470,4062 9470,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9334,10246 L 9425,10246 9425,4739 9334,4739 9334,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9199,10246 L 9289,10246 9289,4783 9199,4783 9199,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 9063,10246 L 9154,10246 9154,4987 9063,4987 9063,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8928,10246 L 9018,10246 9018,5000 8928,5000 8928,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8792,10246 L 8882,10246 8882,4878 8792,4878 8792,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8656,10246 L 8747,10246 8747,4850 8656,4850 8656,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8521,10246 L 8611,10246 8611,4540 8521,4540 8521,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8385,10246 L 8476,10246 8476,4186 8385,4186 8385,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8250,10246 L 8340,10246 8340,3822 8250,3822 8250,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 8114,10246 L 8205,10246 8205,3465 8114,3465 8114,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7979,10246 L 8069,10246 8069,3829 7979,3829 7979,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7843,10246 L 7933,10246 7933,2939 7843,2939 7843,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7707,10246 L 7798,10246 7798,2597 7707,2597 7707,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7572,10246 L 7662,10246 7662,2518 7572,2518 7572,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7436,10246 L 7527,10246 7527,2344 7436,2344 7436,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7301,10246 L 7391,10246 7391,2249 7301,2249 7301,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7165,10246 L 7256,10246 7256,2765 7165,2765 7165,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 7030,10246 L 7120,10246 7120,3300 7030,3300 7030,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6894,10246 L 6984,10246 6984,3558 6894,3558 6894,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6758,10246 L 6849,10246 6849,3343 6758,3343 6758,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6623,10246 L 6713,10246 6713,4418 6623,4418 6623,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6487,10246 L 6578,10246 6578,5017 6487,5017 6487,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6352,10246 L 6442,10246 6442,4994 6352,4994 6352,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6216,10246 L 6307,10246 6307,5025 6216,5025 6216,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 6081,10246 L 6171,10246 6171,5054 6081,5054 6081,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5946,10246 L 6035,10246 6035,5260 5946,5260 5946,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5810,10246 L 5901,10246 5901,5125 5810,5125 5810,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5675,10246 L 5765,10246 5765,4815 5675,4815 5675,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5539,10246 L 5630,10246 5630,4746 5539,4746 5539,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5404,10246 L 5494,10246 5494,4457 5404,4457 5404,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5268,10246 L 5359,10246 5359,4480 5268,4480 5268,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 5133,10246 L 5223,10246 5223,3834 5133,3834 5133,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4997,10246 L 5087,10246 5087,3320 4997,3320 4997,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4861,10246 L 4952,10246 4952,3009 4861,3009 4861,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4726,10246 L 4816,10246 4816,3198 4726,3198 4726,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4590,10246 L 4681,10246 4681,4142 4590,4142 4590,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4455,10246 L 4545,10246 4545,5121 4455,5121 4455,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4319,10246 L 4410,10246 4410,5097 4319,5097 4319,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4184,10246 L 4274,10246 4274,4920 4184,4920 4184,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 4048,10246 L 4138,10246 4138,4846 4048,4846 4048,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3912,10246 L 4003,10246 4003,5263 3912,5263 3912,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3777,10246 L 3867,10246 3867,5465 3777,5465 3777,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3641,10246 L 3732,10246 3732,5344 3641,5344 3641,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3506,10246 L 3596,10246 3596,5378 3506,5378 3506,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3370,10246 L 3460,10246 3460,5349 3370,5349 3370,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3235,10246 L 3325,10246 3325,5485 3235,5485 3235,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 3099,10246 L 3189,10246 3189,5546 3099,5546 3099,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 2963,10246 L 3054,10246 3054,5281 2963,5281 2963,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 2828,10246 L 2918,10246 2918,4492 2828,4492 2828,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 2692,10246 L 2783,10246 2783,4657 2692,4657 2692,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 2557,10246 L 2647,10246 2647,6278 2557,6278 2557,10246 Z"/>
+ <path fill="rgb(0,69,134)" stroke="none" d="M 2421,10246 L 2511,10246 2511,8391 2421,8391 2421,10246 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1831" y="10830"><tspan fill="rgb(0,0,0)" stroke="none">1950</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="4543" y="10830"><tspan fill="rgb(0,0,0)" stroke="none">1970</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="7254" y="10830"><tspan fill="rgb(0,0,0)" stroke="none">1990</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="9966" y="10830"><tspan fill="rgb(0,0,0)" stroke="none">2010</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1981" y="10406"><tspan fill="rgb(0,0,0)" stroke="none">0</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="9090"><tspan fill="rgb(0,0,0)" stroke="none">100</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="7774"><tspan fill="rgb(0,0,0)" stroke="none">200</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="6459"><tspan fill="rgb(0,0,0)" stroke="none">300</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="5143"><tspan fill="rgb(0,0,0)" stroke="none">400</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="3827"><tspan fill="rgb(0,0,0)" stroke="none">500</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="2512"><tspan fill="rgb(0,0,0)" stroke="none">600</tspan></tspan></tspan></text>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="1346" y="1196"><tspan fill="rgb(0,0,0)" stroke="none">700</tspan></tspan></tspan></text>
+ <text class="TextShape" transform="translate(675,5848) rotate(-90) translate(-675,-5848)"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="675" y="5848"><tspan fill="rgb(0,0,0)" stroke="none">Data</tspan></tspan></tspan></text>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 6490,1975 L 3170,1975 3170,1324 9810,1324 9810,1975 6490,1975 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="3217" y="1808"><tspan fill="rgb(255,51,51)" stroke="none">2016 vs 2006 ≙- 0,23 %/a</tspan></tspan></tspan></text>
+</svg> \ No newline at end of file
diff --git a/sd/qa/unit/data/odp/tdf118768-brake.odp b/sd/qa/unit/data/odp/tdf118768-brake.odp
new file mode 100644
index 000000000..1f3abbcc0
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118768-brake.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf118783.odp b/sd/qa/unit/data/odp/tdf118783.odp
new file mode 100644
index 000000000..719db63d1
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118783.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf118806.odp b/sd/qa/unit/data/odp/tdf118806.odp
new file mode 100644
index 000000000..7120fd968
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118806.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf118825-motionpath.odp b/sd/qa/unit/data/odp/tdf118825-motionpath.odp
new file mode 100644
index 000000000..c070b0ae2
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118825-motionpath.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf118835.odp b/sd/qa/unit/data/odp/tdf118835.odp
new file mode 100644
index 000000000..c3e15a6dc
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118835.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf118836.odp b/sd/qa/unit/data/odp/tdf118836.odp
new file mode 100644
index 000000000..50857b79d
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf118836.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf127267DashOnHairline.odp b/sd/qa/unit/data/odp/tdf127267DashOnHairline.odp
new file mode 100644
index 000000000..08aed1758
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf127267DashOnHairline.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf127372.odp b/sd/qa/unit/data/odp/tdf127372.odp
new file mode 100644
index 000000000..adf5ad589
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf127372.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf127379.odp b/sd/qa/unit/data/odp/tdf127379.odp
new file mode 100644
index 000000000..91602c796
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf127379.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf127901.odp b/sd/qa/unit/data/odp/tdf127901.odp
new file mode 100644
index 000000000..e1c5dfad3
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf127901.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128049.odp b/sd/qa/unit/data/odp/tdf128049.odp
new file mode 100644
index 000000000..8b9990a5c
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128049.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128096.odp b/sd/qa/unit/data/odp/tdf128096.odp
new file mode 100644
index 000000000..827239973
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128096.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128345_FullTransparentGradient.odp b/sd/qa/unit/data/odp/tdf128345_FullTransparentGradient.odp
new file mode 100644
index 000000000..904490d43
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128345_FullTransparentGradient.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128345_GradientAxial.odp b/sd/qa/unit/data/odp/tdf128345_GradientAxial.odp
new file mode 100644
index 000000000..55b8ec1aa
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128345_GradientAxial.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128345_GradientLinear.odp b/sd/qa/unit/data/odp/tdf128345_GradientLinear.odp
new file mode 100644
index 000000000..1eadfa11f
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128345_GradientLinear.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf128345_GradientRadial.odp b/sd/qa/unit/data/odp/tdf128345_GradientRadial.odp
new file mode 100644
index 000000000..634d1dc1b
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf128345_GradientRadial.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf48735.odp b/sd/qa/unit/data/odp/tdf48735.odp
new file mode 100644
index 000000000..9a1593a0d
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf48735.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf59046.odp b/sd/qa/unit/data/odp/tdf59046.odp
new file mode 100644
index 000000000..5c56acb95
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf59046.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf68759.odp b/sd/qa/unit/data/odp/tdf68759.odp
new file mode 100644
index 000000000..db3e51e97
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf68759.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf80020.odp b/sd/qa/unit/data/odp/tdf80020.odp
new file mode 100644
index 000000000..dade8d659
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf80020.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf80224.odp b/sd/qa/unit/data/odp/tdf80224.odp
new file mode 100644
index 000000000..5712c1a7d
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf80224.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf90626.odp b/sd/qa/unit/data/odp/tdf90626.odp
new file mode 100644
index 000000000..cea98fcd7
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf90626.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf90627.odp b/sd/qa/unit/data/odp/tdf90627.odp
new file mode 100644
index 000000000..dfa28c9b0
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf90627.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf92076.odp b/sd/qa/unit/data/odp/tdf92076.odp
new file mode 100644
index 000000000..ab0a20ba2
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf92076.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf93883.odp b/sd/qa/unit/data/odp/tdf93883.odp
new file mode 100644
index 000000000..54d589ca0
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf93883.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf96206.odp b/sd/qa/unit/data/odp/tdf96206.odp
new file mode 100644
index 000000000..faebfd153
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf96206.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf96708.odp b/sd/qa/unit/data/odp/tdf96708.odp
new file mode 100644
index 000000000..bb602f390
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf96708.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf99213-target-missing.odp b/sd/qa/unit/data/odp/tdf99213-target-missing.odp
new file mode 100644
index 000000000..3bc8c7260
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf99213-target-missing.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf99224.odp b/sd/qa/unit/data/odp/tdf99224.odp
new file mode 100644
index 000000000..e52a000de
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf99224.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf99497_CircleKind.odp b/sd/qa/unit/data/odp/tdf99497_CircleKind.odp
new file mode 100644
index 000000000..f3749dfdf
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf99497_CircleKind.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf99729-legacy.odp b/sd/qa/unit/data/odp/tdf99729-legacy.odp
new file mode 100644
index 000000000..899b55c09
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf99729-legacy.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/tdf99729-new.odp b/sd/qa/unit/data/odp/tdf99729-new.odp
new file mode 100644
index 000000000..1c5a9cd5a
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf99729-new.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp b/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp
new file mode 100644
index 000000000..16a900b63
--- /dev/null
+++ b/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/text-test.odp b/sd/qa/unit/data/odp/text-test.odp
new file mode 100644
index 000000000..415e05c7c
--- /dev/null
+++ b/sd/qa/unit/data/odp/text-test.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/textbox-link-javascript.odp b/sd/qa/unit/data/odp/textbox-link-javascript.odp
new file mode 100644
index 000000000..c046cf0c7
--- /dev/null
+++ b/sd/qa/unit/data/odp/textbox-link-javascript.odp
Binary files differ
diff --git a/sd/qa/unit/data/odp/transparent_background.odp b/sd/qa/unit/data/odp/transparent_background.odp
new file mode 100644
index 000000000..ce599db54
--- /dev/null
+++ b/sd/qa/unit/data/odp/transparent_background.odp
Binary files differ
diff --git a/sd/qa/unit/data/pdf/multipage.pdf b/sd/qa/unit/data/pdf/multipage.pdf
new file mode 100644
index 000000000..65c8eeaa3
--- /dev/null
+++ b/sd/qa/unit/data/pdf/multipage.pdf
Binary files differ
diff --git a/sd/qa/unit/data/pdf/txtpic.pdf b/sd/qa/unit/data/pdf/txtpic.pdf
new file mode 100644
index 000000000..220c5822b
--- /dev/null
+++ b/sd/qa/unit/data/pdf/txtpic.pdf
Binary files differ
diff --git a/sd/qa/unit/data/ppt/FillPatterns.ppt b/sd/qa/unit/data/ppt/FillPatterns.ppt
new file mode 100644
index 000000000..bbd353b52
--- /dev/null
+++ b/sd/qa/unit/data/ppt/FillPatterns.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/crop.ppt b/sd/qa/unit/data/ppt/crop.ppt
new file mode 100644
index 000000000..844a4392a
--- /dev/null
+++ b/sd/qa/unit/data/ppt/crop.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/fail/.gitignore b/sd/qa/unit/data/ppt/fail/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/ppt/fail/.gitignore
diff --git a/sd/qa/unit/data/ppt/fail/CVE-2010-0033-1.ppt b/sd/qa/unit/data/ppt/fail/CVE-2010-0033-1.ppt
new file mode 100644
index 000000000..0e4f50239
--- /dev/null
+++ b/sd/qa/unit/data/ppt/fail/CVE-2010-0033-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/fdo68594.ppt b/sd/qa/unit/data/ppt/fdo68594.ppt
new file mode 100644
index 000000000..83a95cd4d
--- /dev/null
+++ b/sd/qa/unit/data/ppt/fdo68594.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/indeterminate/.gitignore b/sd/qa/unit/data/ppt/indeterminate/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/ppt/indeterminate/.gitignore
diff --git a/sd/qa/unit/data/ppt/loopNoPause.ppt b/sd/qa/unit/data/ppt/loopNoPause.ppt
new file mode 100644
index 000000000..d82879a52
--- /dev/null
+++ b/sd/qa/unit/data/ppt/loopNoPause.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/.gitignore b/sd/qa/unit/data/ppt/pass/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/.gitignore
diff --git a/sd/qa/unit/data/ppt/pass/CVE-2006-3655-1.ppt b/sd/qa/unit/data/ppt/pass/CVE-2006-3655-1.ppt
new file mode 100644
index 000000000..3cbcb724a
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/CVE-2006-3655-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/CVE-2006-3656-1.ppt b/sd/qa/unit/data/ppt/pass/CVE-2006-3656-1.ppt
new file mode 100644
index 000000000..a1fd65a19
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/CVE-2006-3656-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/CVE-2006-3660-1.ppt b/sd/qa/unit/data/ppt/pass/CVE-2006-3660-1.ppt
new file mode 100644
index 000000000..1289cfa22
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/CVE-2006-3660-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/CVE-2006-5296-1.ppt b/sd/qa/unit/data/ppt/pass/CVE-2006-5296-1.ppt
new file mode 100644
index 000000000..5d50f905b
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/CVE-2006-5296-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/CVE-2012-4233-3.ppt b/sd/qa/unit/data/ppt/pass/CVE-2012-4233-3.ppt
new file mode 100644
index 000000000..625c116fd
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/CVE-2012-4233-3.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/EDB-39395-1.ppt b/sd/qa/unit/data/ppt/pass/EDB-39395-1.ppt
new file mode 100644
index 000000000..64043235b
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/EDB-39395-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/EDB-39397-1.ppt b/sd/qa/unit/data/ppt/pass/EDB-39397-1.ppt
new file mode 100644
index 000000000..091fb653a
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/EDB-39397-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/crash-1.ppt b/sd/qa/unit/data/ppt/pass/crash-1.ppt
new file mode 100644
index 000000000..5d1a04b33
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/crash-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/crash-2.ppt b/sd/qa/unit/data/ppt/pass/crash-2.ppt
new file mode 100644
index 000000000..78a4da466
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/crash-2.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/crash-3.ppt b/sd/qa/unit/data/ppt/pass/crash-3.ppt
new file mode 100644
index 000000000..daa0102db
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/crash-3.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-1.ppt b/sd/qa/unit/data/ppt/pass/hang-1.ppt
new file mode 100644
index 000000000..d30cb8472
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-10.ppt b/sd/qa/unit/data/ppt/pass/hang-10.ppt
new file mode 100644
index 000000000..99a81c4a3
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-10.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-11.ppt b/sd/qa/unit/data/ppt/pass/hang-11.ppt
new file mode 100644
index 000000000..2d9ef1837
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-11.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-12.ppt b/sd/qa/unit/data/ppt/pass/hang-12.ppt
new file mode 100644
index 000000000..921481c93
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-12.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-13.ppt b/sd/qa/unit/data/ppt/pass/hang-13.ppt
new file mode 100644
index 000000000..04fbdc558
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-13.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-14.ppt b/sd/qa/unit/data/ppt/pass/hang-14.ppt
new file mode 100644
index 000000000..8dd397bb3
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-14.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-15.ppt b/sd/qa/unit/data/ppt/pass/hang-15.ppt
new file mode 100644
index 000000000..b93255a7f
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-15.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-16.ppt b/sd/qa/unit/data/ppt/pass/hang-16.ppt
new file mode 100644
index 000000000..c398d2ba1
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-16.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-17.ppt b/sd/qa/unit/data/ppt/pass/hang-17.ppt
new file mode 100644
index 000000000..de876ff37
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-17.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-18.ppt b/sd/qa/unit/data/ppt/pass/hang-18.ppt
new file mode 100644
index 000000000..3b3e9f744
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-18.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-19.ppt b/sd/qa/unit/data/ppt/pass/hang-19.ppt
new file mode 100644
index 000000000..942a58a66
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-19.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-2.ppt b/sd/qa/unit/data/ppt/pass/hang-2.ppt
new file mode 100644
index 000000000..c6880b771
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-2.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-20.ppt b/sd/qa/unit/data/ppt/pass/hang-20.ppt
new file mode 100644
index 000000000..7bfe75d7b
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-20.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-21.ppt b/sd/qa/unit/data/ppt/pass/hang-21.ppt
new file mode 100644
index 000000000..99cf49f8d
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-21.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-22.ppt b/sd/qa/unit/data/ppt/pass/hang-22.ppt
new file mode 100644
index 000000000..c869b3937
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-22.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-3.ppt b/sd/qa/unit/data/ppt/pass/hang-3.ppt
new file mode 100644
index 000000000..156a9d0e5
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-3.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-4.ppt b/sd/qa/unit/data/ppt/pass/hang-4.ppt
new file mode 100644
index 000000000..f5aa24752
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-4.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-5.ppt b/sd/qa/unit/data/ppt/pass/hang-5.ppt
new file mode 100644
index 000000000..cfaa8f4c6
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-5.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-6.ppt b/sd/qa/unit/data/ppt/pass/hang-6.ppt
new file mode 100644
index 000000000..f5aa24752
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-6.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-7.ppt b/sd/qa/unit/data/ppt/pass/hang-7.ppt
new file mode 100644
index 000000000..8c05271f9
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-7.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-8.ppt b/sd/qa/unit/data/ppt/pass/hang-8.ppt
new file mode 100644
index 000000000..0f52bd5d2
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-8.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/hang-9.ppt b/sd/qa/unit/data/ppt/pass/hang-9.ppt
new file mode 100644
index 000000000..97e0158ac
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/hang-9.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/ofz14989-1.ppt b/sd/qa/unit/data/ppt/pass/ofz14989-1.ppt
new file mode 100644
index 000000000..b470ebecd
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/ofz14989-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/ofz21531-1.ppt b/sd/qa/unit/data/ppt/pass/ofz21531-1.ppt
new file mode 100644
index 000000000..0d93e5b84
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/ofz21531-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/pass/ofz7469-leak-1.ppt b/sd/qa/unit/data/ppt/pass/ofz7469-leak-1.ppt
new file mode 100644
index 000000000..d52f795e6
--- /dev/null
+++ b/sd/qa/unit/data/ppt/pass/ofz7469-leak-1.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/placeholder-priority.pptx b/sd/qa/unit/data/ppt/placeholder-priority.pptx
new file mode 100644
index 000000000..d11dc4785
--- /dev/null
+++ b/sd/qa/unit/data/ppt/placeholder-priority.pptx
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf105150.ppt b/sd/qa/unit/data/ppt/tdf105150.ppt
new file mode 100644
index 000000000..c832371e9
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf105150.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf115394.ppt b/sd/qa/unit/data/ppt/tdf115394.ppt
new file mode 100644
index 000000000..1fd299a5e
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf115394.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf116899.ppt b/sd/qa/unit/data/ppt/tdf116899.ppt
new file mode 100644
index 000000000..edad3356d
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf116899.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf119629.ppt b/sd/qa/unit/data/ppt/tdf119629.ppt
new file mode 100644
index 000000000..b9c90e916
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf119629.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf122899_Arc_90_to_91_clockwise.ppt b/sd/qa/unit/data/ppt/tdf122899_Arc_90_to_91_clockwise.ppt
new file mode 100644
index 000000000..9df17e9a8
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf122899_Arc_90_to_91_clockwise.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf126761.ppt b/sd/qa/unit/data/ppt/tdf126761.ppt
new file mode 100644
index 000000000..186799ec5
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf126761.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf49561.ppt b/sd/qa/unit/data/ppt/tdf49561.ppt
new file mode 100644
index 000000000..c80bf1252
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf49561.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf77747.ppt b/sd/qa/unit/data/ppt/tdf77747.ppt
new file mode 100644
index 000000000..e011be717
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf77747.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf79082.ppt b/sd/qa/unit/data/ppt/tdf79082.ppt
new file mode 100644
index 000000000..259b88085
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf79082.ppt
Binary files differ
diff --git a/sd/qa/unit/data/ppt/tdf93124.ppt b/sd/qa/unit/data/ppt/tdf93124.ppt
new file mode 100644
index 000000000..fad847898
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf93124.ppt
Binary files differ
diff --git a/sd/qa/unit/data/pptm/macro.pptm b/sd/qa/unit/data/pptm/macro.pptm
new file mode 100644
index 000000000..54e81db2a
--- /dev/null
+++ b/sd/qa/unit/data/pptm/macro.pptm
Binary files differ
diff --git a/sd/qa/unit/data/pptx/Math.pptx b/sd/qa/unit/data/pptx/Math.pptx
new file mode 100644
index 000000000..fef20675b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/Math.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/ShapeLineProperties.pptx b/sd/qa/unit/data/pptx/ShapeLineProperties.pptx
new file mode 100644
index 000000000..36ece8cae
--- /dev/null
+++ b/sd/qa/unit/data/pptx/ShapeLineProperties.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/accent-color.pptx b/sd/qa/unit/data/pptx/accent-color.pptx
new file mode 100644
index 000000000..59591606e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/accent-color.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_checkbox.pptx b/sd/qa/unit/data/pptx/activex_checkbox.pptx
new file mode 100644
index 000000000..acca5f696
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_checkbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_combobox.pptx b/sd/qa/unit/data/pptx/activex_combobox.pptx
new file mode 100644
index 000000000..21bb21a1b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_combobox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_commandbutton.pptx b/sd/qa/unit/data/pptx/activex_commandbutton.pptx
new file mode 100644
index 000000000..29a255617
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_commandbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_fontproperties.pptx b/sd/qa/unit/data/pptx/activex_fontproperties.pptx
new file mode 100644
index 000000000..2f117d326
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_fontproperties.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_label.pptx b/sd/qa/unit/data/pptx/activex_label.pptx
new file mode 100644
index 000000000..3e1404e68
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_label.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_listbox.pptx b/sd/qa/unit/data/pptx/activex_listbox.pptx
new file mode 100644
index 000000000..5e232579f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_listbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_optionbutton.pptx b/sd/qa/unit/data/pptx/activex_optionbutton.pptx
new file mode 100644
index 000000000..e75498484
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_optionbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_picture.pptx b/sd/qa/unit/data/pptx/activex_picture.pptx
new file mode 100644
index 000000000..425a909e1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_picture.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_scrollbar.pptx b/sd/qa/unit/data/pptx/activex_scrollbar.pptx
new file mode 100644
index 000000000..ba7c14d93
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_scrollbar.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_spinbutton.pptx b/sd/qa/unit/data/pptx/activex_spinbutton.pptx
new file mode 100644
index 000000000..32b5f73e8
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_spinbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_textbox.pptx b/sd/qa/unit/data/pptx/activex_textbox.pptx
new file mode 100644
index 000000000..68dec15d5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_textbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_togglebutton.pptx b/sd/qa/unit/data/pptx/activex_togglebutton.pptx
new file mode 100644
index 000000000..3d4bfd287
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_togglebutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/altdescription.pptx b/sd/qa/unit/data/pptx/altdescription.pptx
new file mode 100644
index 000000000..f116efe41
--- /dev/null
+++ b/sd/qa/unit/data/pptx/altdescription.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc480256.pptx b/sd/qa/unit/data/pptx/bnc480256.pptx
new file mode 100644
index 000000000..71e91c2f4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc480256.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc584721_1_2.pptx b/sd/qa/unit/data/pptx/bnc584721_1_2.pptx
new file mode 100644
index 000000000..dbbcabddc
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc584721_1_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc584721_4.pptx b/sd/qa/unit/data/pptx/bnc584721_4.pptx
new file mode 100644
index 000000000..102ee0b14
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc584721_4.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc591147.pptx b/sd/qa/unit/data/pptx/bnc591147.pptx
new file mode 100644
index 000000000..afa382e65
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc591147.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc862510_5.pptx b/sd/qa/unit/data/pptx/bnc862510_5.pptx
new file mode 100644
index 000000000..ed145e4cf
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc862510_5.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc862510_6.pptx b/sd/qa/unit/data/pptx/bnc862510_6.pptx
new file mode 100644
index 000000000..fc5f008c5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc862510_6.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc862510_7.pptx b/sd/qa/unit/data/pptx/bnc862510_7.pptx
new file mode 100644
index 000000000..0eb3bbec7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc862510_7.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc870233_1.pptx b/sd/qa/unit/data/pptx/bnc870233_1.pptx
new file mode 100644
index 000000000..0659e30b3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc870233_1.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc870233_2.pptx b/sd/qa/unit/data/pptx/bnc870233_2.pptx
new file mode 100644
index 000000000..7f4fc715a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc870233_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc870237.pptx b/sd/qa/unit/data/pptx/bnc870237.pptx
new file mode 100644
index 000000000..245ef51f8
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc870237.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc880763.pptx b/sd/qa/unit/data/pptx/bnc880763.pptx
new file mode 100644
index 000000000..f45eb13ec
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc880763.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc887225.pptx b/sd/qa/unit/data/pptx/bnc887225.pptx
new file mode 100644
index 000000000..e5c528f18
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc887225.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc904423.pptx b/sd/qa/unit/data/pptx/bnc904423.pptx
new file mode 100644
index 000000000..618ad1b47
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc904423.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bnc910045.pptx b/sd/qa/unit/data/pptx/bnc910045.pptx
new file mode 100644
index 000000000..5788ea929
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bnc910045.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bulletColor.pptx b/sd/qa/unit/data/pptx/bulletColor.pptx
new file mode 100644
index 000000000..61bb834e4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bulletColor.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/bulletMarginAndIndent.pptx b/sd/qa/unit/data/pptx/bulletMarginAndIndent.pptx
new file mode 100644
index 000000000..3ecfb5a74
--- /dev/null
+++ b/sd/qa/unit/data/pptx/bulletMarginAndIndent.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/control_background_color.pptx b/sd/qa/unit/data/pptx/control_background_color.pptx
new file mode 100644
index 000000000..5d3fe61c5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/control_background_color.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/crop-to-shape.pptx b/sd/qa/unit/data/pptx/crop-to-shape.pptx
new file mode 100644
index 000000000..929b07e00
--- /dev/null
+++ b/sd/qa/unit/data/pptx/crop-to-shape.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/cshapes.pptx b/sd/qa/unit/data/pptx/cshapes.pptx
new file mode 100644
index 000000000..b54620625
--- /dev/null
+++ b/sd/qa/unit/data/pptx/cshapes.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/customshape-bitmapfill-srcrect.pptx b/sd/qa/unit/data/pptx/customshape-bitmapfill-srcrect.pptx
new file mode 100644
index 000000000..e162f7e99
--- /dev/null
+++ b/sd/qa/unit/data/pptx/customshape-bitmapfill-srcrect.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/customxml.pptx b/sd/qa/unit/data/pptx/customxml.pptx
new file mode 100644
index 000000000..ca9e8fe70
--- /dev/null
+++ b/sd/qa/unit/data/pptx/customxml.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/effectOrder.pptx b/sd/qa/unit/data/pptx/effectOrder.pptx
new file mode 100644
index 000000000..7f913b372
--- /dev/null
+++ b/sd/qa/unit/data/pptx/effectOrder.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/fail/.gitignore b/sd/qa/unit/data/pptx/fail/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/fail/.gitignore
diff --git a/sd/qa/unit/data/pptx/fail/CVE-2014-6352-1.ppsx b/sd/qa/unit/data/pptx/fail/CVE-2014-6352-1.ppsx
new file mode 100644
index 000000000..f88506ff7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/fail/CVE-2014-6352-1.ppsx
@@ -0,0 +1 @@
+ת.Gx©Š}Ø'[eë2Î~ \ No newline at end of file
diff --git a/sd/qa/unit/data/pptx/fdo83751.pptx b/sd/qa/unit/data/pptx/fdo83751.pptx
new file mode 100644
index 000000000..be0dfe43d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/fdo83751.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/fill-color-list.pptx b/sd/qa/unit/data/pptx/fill-color-list.pptx
new file mode 100644
index 000000000..c88434952
--- /dev/null
+++ b/sd/qa/unit/data/pptx/fill-color-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/font-scale.pptx b/sd/qa/unit/data/pptx/font-scale.pptx
new file mode 100644
index 000000000..df33b20ce
--- /dev/null
+++ b/sd/qa/unit/data/pptx/font-scale.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/group-rot.pptx b/sd/qa/unit/data/pptx/group-rot.pptx
new file mode 100644
index 000000000..11b2d6367
--- /dev/null
+++ b/sd/qa/unit/data/pptx/group-rot.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/group.pptx b/sd/qa/unit/data/pptx/group.pptx
new file mode 100644
index 000000000..f0b739ee2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/group.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/hyperlinktest.pptx b/sd/qa/unit/data/pptx/hyperlinktest.pptx
new file mode 100644
index 000000000..dac61c023
--- /dev/null
+++ b/sd/qa/unit/data/pptx/hyperlinktest.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/indeterminate/.gitignore b/sd/qa/unit/data/pptx/indeterminate/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/indeterminate/.gitignore
diff --git a/sd/qa/unit/data/pptx/lineStyle.pptx b/sd/qa/unit/data/pptx/lineStyle.pptx
new file mode 100644
index 000000000..0af7efabf
--- /dev/null
+++ b/sd/qa/unit/data/pptx/lineStyle.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/loopNoPause.pptx b/sd/qa/unit/data/pptx/loopNoPause.pptx
new file mode 100644
index 000000000..f0c9966ce
--- /dev/null
+++ b/sd/qa/unit/data/pptx/loopNoPause.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/multicol.pptx b/sd/qa/unit/data/pptx/multicol.pptx
new file mode 100644
index 000000000..3590d84c1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/multicol.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n778859.pptx b/sd/qa/unit/data/pptx/n778859.pptx
new file mode 100644
index 000000000..034cfc544
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n778859.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n80340.pptx b/sd/qa/unit/data/pptx/n80340.pptx
new file mode 100644
index 000000000..670207559
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n80340.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n821567.pptx b/sd/qa/unit/data/pptx/n821567.pptx
new file mode 100644
index 000000000..9f365ad02
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n821567.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n828390.pptx b/sd/qa/unit/data/pptx/n828390.pptx
new file mode 100644
index 000000000..e28a78559
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n828390.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n828390_2.pptx b/sd/qa/unit/data/pptx/n828390_2.pptx
new file mode 100644
index 000000000..e30948fd7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n828390_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n828390_3.pptx b/sd/qa/unit/data/pptx/n828390_3.pptx
new file mode 100644
index 000000000..ad9575858
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n828390_3.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n83889.pptx b/sd/qa/unit/data/pptx/n83889.pptx
new file mode 100644
index 000000000..e2f0b1386
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n83889.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n862510_1.pptx b/sd/qa/unit/data/pptx/n862510_1.pptx
new file mode 100644
index 000000000..2a16a4b66
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n862510_1.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n862510_2.pptx b/sd/qa/unit/data/pptx/n862510_2.pptx
new file mode 100644
index 000000000..b46cea502
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n862510_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n862510_4.pptx b/sd/qa/unit/data/pptx/n862510_4.pptx
new file mode 100644
index 000000000..0a461eee6
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n862510_4.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n90190.pptx b/sd/qa/unit/data/pptx/n90190.pptx
new file mode 100644
index 000000000..caeabe710
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n90190.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n90223.pptx b/sd/qa/unit/data/pptx/n90223.pptx
new file mode 100644
index 000000000..0a9ee82d8
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n90223.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/n90255.pptx b/sd/qa/unit/data/pptx/n90255.pptx
new file mode 100644
index 000000000..2263d89bb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/n90255.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/numfmt.pptx b/sd/qa/unit/data/pptx/numfmt.pptx
new file mode 100644
index 000000000..aca692710
--- /dev/null
+++ b/sd/qa/unit/data/pptx/numfmt.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/ooxtheme.pptx b/sd/qa/unit/data/pptx/ooxtheme.pptx
new file mode 100644
index 000000000..f0f3f2575
--- /dev/null
+++ b/sd/qa/unit/data/pptx/ooxtheme.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/open-as-read-only.pptx b/sd/qa/unit/data/pptx/open-as-read-only.pptx
new file mode 100644
index 000000000..57a4d32de
--- /dev/null
+++ b/sd/qa/unit/data/pptx/open-as-read-only.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/page_transparent_bitmap.pptx b/sd/qa/unit/data/pptx/page_transparent_bitmap.pptx
new file mode 100644
index 000000000..ac1dd074b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/page_transparent_bitmap.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/paraMarginAndIndentation.pptx b/sd/qa/unit/data/pptx/paraMarginAndIndentation.pptx
new file mode 100644
index 000000000..a6164a227
--- /dev/null
+++ b/sd/qa/unit/data/pptx/paraMarginAndIndentation.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/pass/.gitignore b/sd/qa/unit/data/pptx/pass/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/pass/.gitignore
diff --git a/sd/qa/unit/data/pptx/pass/CVE-2014-4114.ppsx b/sd/qa/unit/data/pptx/pass/CVE-2014-4114.ppsx
new file mode 100644
index 000000000..ee80cbe4e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/pass/CVE-2014-4114.ppsx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/predefined-table-style.pptx b/sd/qa/unit/data/pptx/predefined-table-style.pptx
new file mode 100644
index 000000000..5c3429f9e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/predefined-table-style.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/presetDashDot.pptx b/sd/qa/unit/data/pptx/presetDashDot.pptx
new file mode 100644
index 000000000..ae1525c97
--- /dev/null
+++ b/sd/qa/unit/data/pptx/presetDashDot.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/rightToLeftParagraph.pptx b/sd/qa/unit/data/pptx/rightToLeftParagraph.pptx
new file mode 100644
index 000000000..8c3a46c8b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/rightToLeftParagraph.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/shape-glow-effect.pptx b/sd/qa/unit/data/pptx/shape-glow-effect.pptx
new file mode 100644
index 000000000..6a33aa58f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/shape-glow-effect.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/shape-soft-edges.pptx b/sd/qa/unit/data/pptx/shape-soft-edges.pptx
new file mode 100644
index 000000000..cafb8cf4c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/shape-soft-edges.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/shape-text-rotate.pptx b/sd/qa/unit/data/pptx/shape-text-rotate.pptx
new file mode 100644
index 000000000..4a433c748
--- /dev/null
+++ b/sd/qa/unit/data/pptx/shape-text-rotate.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/slidenum_field.pptx b/sd/qa/unit/data/pptx/slidenum_field.pptx
new file mode 100644
index 000000000..f3c184056
--- /dev/null
+++ b/sd/qa/unit/data/pptx/slidenum_field.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-accent-process.pptx b/sd/qa/unit/data/pptx/smartart-accent-process.pptx
new file mode 100644
index 000000000..8710e7f17
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-accent-process.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-autoTxRot.pptx b/sd/qa/unit/data/pptx/smartart-autoTxRot.pptx
new file mode 100644
index 000000000..30e69a6de
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-autoTxRot.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx b/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx
new file mode 100644
index 000000000..9a6ce0f49
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptx b/sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptx
new file mode 100644
index 000000000..d89f28a21
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-background.pptx b/sd/qa/unit/data/pptx/smartart-background.pptx
new file mode 100644
index 000000000..beb862dc1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-background.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-basicprocess.pptx b/sd/qa/unit/data/pptx/smartart-basicprocess.pptx
new file mode 100644
index 000000000..b1f10c385
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-basicprocess.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-basicradicals.pptx b/sd/qa/unit/data/pptx/smartart-basicradicals.pptx
new file mode 100644
index 000000000..1a99daeeb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-basicradicals.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-bullet-list.pptx b/sd/qa/unit/data/pptx/smartart-bullet-list.pptx
new file mode 100644
index 000000000..d95bdb769
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-bullet-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-center-cycle.pptx b/sd/qa/unit/data/pptx/smartart-center-cycle.pptx
new file mode 100644
index 000000000..72f3685fb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-center-cycle.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-chevron.pptx b/sd/qa/unit/data/pptx/smartart-chevron.pptx
new file mode 100644
index 000000000..883fbeb49
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-chevron.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-children.pptx b/sd/qa/unit/data/pptx/smartart-children.pptx
new file mode 100644
index 000000000..8eca2f21e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-children.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-cnt.pptx b/sd/qa/unit/data/pptx/smartart-cnt.pptx
new file mode 100644
index 000000000..4ab27d169
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-cnt.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx b/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx
new file mode 100644
index 000000000..b2ef58f0b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx b/sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx
new file mode 100644
index 000000000..fb1cb7ea2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-cycle.pptx b/sd/qa/unit/data/pptx/smartart-cycle.pptx
new file mode 100644
index 000000000..bea0524d3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-cycle.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-data-follow.pptx b/sd/qa/unit/data/pptx/smartart-data-follow.pptx
new file mode 100644
index 000000000..7e906462d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-data-follow.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-dir.pptx b/sd/qa/unit/data/pptx/smartart-dir.pptx
new file mode 100644
index 000000000..ab94459d2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-dir.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-equation.pptx b/sd/qa/unit/data/pptx/smartart-equation.pptx
new file mode 100644
index 000000000..dbd6ad2e4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-equation.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-font-size.pptx b/sd/qa/unit/data/pptx/smartart-font-size.pptx
new file mode 100644
index 000000000..253cd4c73
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-font-size.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-hierarchy.pptx b/sd/qa/unit/data/pptx/smartart-hierarchy.pptx
new file mode 100644
index 000000000..8a556e26f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-hierarchy.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-horizontalbulletlist.pptx b/sd/qa/unit/data/pptx/smartart-horizontalbulletlist.pptx
new file mode 100644
index 000000000..c3cd64218
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-horizontalbulletlist.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-interopgrabbag.pptx b/sd/qa/unit/data/pptx/smartart-interopgrabbag.pptx
new file mode 100644
index 000000000..ef678b6c3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-interopgrabbag.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-invertedPyramid.pptx b/sd/qa/unit/data/pptx/smartart-invertedPyramid.pptx
new file mode 100644
index 000000000..3fb3dcaf5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-invertedPyramid.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptx b/sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptx
new file mode 100644
index 000000000..cf1a23a61
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-linear-rule.pptx b/sd/qa/unit/data/pptx/smartart-linear-rule.pptx
new file mode 100644
index 000000000..05905299e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-linear-rule.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-matrix.pptx b/sd/qa/unit/data/pptx/smartart-matrix.pptx
new file mode 100644
index 000000000..3a8354e81
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-matrix.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-maxdepth.pptx b/sd/qa/unit/data/pptx/smartart-maxdepth.pptx
new file mode 100644
index 000000000..545d744bd
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-maxdepth.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx b/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx
new file mode 100644
index 000000000..2917875a0
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-multidirectional.pptx b/sd/qa/unit/data/pptx/smartart-multidirectional.pptx
new file mode 100644
index 000000000..fd723982a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-multidirectional.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-org-chart.pptx b/sd/qa/unit/data/pptx/smartart-org-chart.pptx
new file mode 100644
index 000000000..08c9a4fc9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-org-chart.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-org-chart2.pptx b/sd/qa/unit/data/pptx/smartart-org-chart2.pptx
new file mode 100644
index 000000000..5e2be2167
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-org-chart2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-picture-strip.pptx b/sd/qa/unit/data/pptx/smartart-picture-strip.pptx
new file mode 100644
index 000000000..bfb8d4f2c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-picture-strip.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-preserve.pptx b/sd/qa/unit/data/pptx/smartart-preserve.pptx
new file mode 100644
index 000000000..6108a8c77
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-preserve.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-pyramid.pptx b/sd/qa/unit/data/pptx/smartart-pyramid.pptx
new file mode 100644
index 000000000..7c2296f9d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-pyramid.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-recursion.pptx b/sd/qa/unit/data/pptx/smartart-recursion.pptx
new file mode 100644
index 000000000..205db6b70
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-recursion.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptx b/sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptx
new file mode 100644
index 000000000..1a6421b9b
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-rotation.pptx b/sd/qa/unit/data/pptx/smartart-rotation.pptx
new file mode 100644
index 000000000..e938d9a29
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-rotation.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-rotation2.pptx b/sd/qa/unit/data/pptx/smartart-rotation2.pptx
new file mode 100644
index 000000000..e1c4493a7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-rotation2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-segmentedcycle.pptx b/sd/qa/unit/data/pptx/smartart-segmentedcycle.pptx
new file mode 100644
index 000000000..b3c92a491
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-segmentedcycle.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-snake-rows.pptx b/sd/qa/unit/data/pptx/smartart-snake-rows.pptx
new file mode 100644
index 000000000..7f5e82df3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-snake-rows.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-text.pptx b/sd/qa/unit/data/pptx/smartart-text.pptx
new file mode 100644
index 000000000..9656e4fab
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-text.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-venndiagram.pptx b/sd/qa/unit/data/pptx/smartart-venndiagram.pptx
new file mode 100644
index 000000000..f69fd26da
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-venndiagram.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-vertical-block-list.pptx b/sd/qa/unit/data/pptx/smartart-vertical-block-list.pptx
new file mode 100644
index 000000000..923f03c0e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-vertical-block-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart-vertical-box-list.pptx b/sd/qa/unit/data/pptx/smartart-vertical-box-list.pptx
new file mode 100644
index 000000000..b67d99e70
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart-vertical-box-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/smartart1.pptx b/sd/qa/unit/data/pptx/smartart1.pptx
new file mode 100644
index 000000000..2a8817f15
--- /dev/null
+++ b/sd/qa/unit/data/pptx/smartart1.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/table-list.pptx b/sd/qa/unit/data/pptx/table-list.pptx
new file mode 100644
index 000000000..bc5fe7418
--- /dev/null
+++ b/sd/qa/unit/data/pptx/table-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tableBorderLineStyle.pptx b/sd/qa/unit/data/pptx/tableBorderLineStyle.pptx
new file mode 100644
index 000000000..c46b7bcee
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tableBorderLineStyle.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tablescale.pptx b/sd/qa/unit/data/pptx/tablescale.pptx
new file mode 100644
index 000000000..c4d946e5c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tablescale.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf100065.pptx b/sd/qa/unit/data/pptx/tdf100065.pptx
new file mode 100644
index 000000000..c6125dc6d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf100065.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf100926.pptx b/sd/qa/unit/data/pptx/tdf100926.pptx
new file mode 100644
index 000000000..71627394e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf100926.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf100926_ODP.pptx b/sd/qa/unit/data/pptx/tdf100926_ODP.pptx
new file mode 100644
index 000000000..71627394e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf100926_ODP.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf103473.pptx b/sd/qa/unit/data/pptx/tdf103473.pptx
new file mode 100644
index 000000000..5b31b761d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf103473.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf103477.pptx b/sd/qa/unit/data/pptx/tdf103477.pptx
new file mode 100644
index 000000000..0ee96462c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf103477.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf103792.pptx b/sd/qa/unit/data/pptx/tdf103792.pptx
new file mode 100644
index 000000000..e48d25e40
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf103792.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf103876.pptx b/sd/qa/unit/data/pptx/tdf103876.pptx
new file mode 100644
index 000000000..5eb7e869e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf103876.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104015.pptx b/sd/qa/unit/data/pptx/tdf104015.pptx
new file mode 100644
index 000000000..f3675f9e8
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104015.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104201.pptx b/sd/qa/unit/data/pptx/tdf104201.pptx
new file mode 100644
index 000000000..99a6532a6
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104201.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104445.pptx b/sd/qa/unit/data/pptx/tdf104445.pptx
new file mode 100644
index 000000000..bee32dc00
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104445.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104786.pptx b/sd/qa/unit/data/pptx/tdf104786.pptx
new file mode 100644
index 000000000..165b5676e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104786.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104788.pptx b/sd/qa/unit/data/pptx/tdf104788.pptx
new file mode 100644
index 000000000..c46fb3da5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104788.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104789.pptx b/sd/qa/unit/data/pptx/tdf104789.pptx
new file mode 100644
index 000000000..d5ead6a93
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104789.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptx b/sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptx
new file mode 100644
index 000000000..ac72639ef
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf105150.pptx b/sd/qa/unit/data/pptx/tdf105150.pptx
new file mode 100644
index 000000000..48a2e01dc
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf105150.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf105739.pptx b/sd/qa/unit/data/pptx/tdf105739.pptx
new file mode 100644
index 000000000..08e26f55a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf105739.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf106638.pptx b/sd/qa/unit/data/pptx/tdf106638.pptx
new file mode 100644
index 000000000..6a4d7819e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf106638.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf106867.pptx b/sd/qa/unit/data/pptx/tdf106867.pptx
new file mode 100644
index 000000000..5bf16d690
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf106867.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf107608.pptx b/sd/qa/unit/data/pptx/tdf107608.pptx
new file mode 100644
index 000000000..52973c8ed
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf107608.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf108926.ppt b/sd/qa/unit/data/pptx/tdf108926.ppt
new file mode 100644
index 000000000..c8455e226
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf108926.ppt
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf109067.pptx b/sd/qa/unit/data/pptx/tdf109067.pptx
new file mode 100644
index 000000000..ef213774c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf109067.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf109187.pptx b/sd/qa/unit/data/pptx/tdf109187.pptx
new file mode 100644
index 000000000..0fd03c81e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf109187.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf111518.pptx b/sd/qa/unit/data/pptx/tdf111518.pptx
new file mode 100644
index 000000000..a0d77617f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf111518.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf111786.pptx b/sd/qa/unit/data/pptx/tdf111786.pptx
new file mode 100644
index 000000000..5d8f62b24
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf111786.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf111789.pptx b/sd/qa/unit/data/pptx/tdf111789.pptx
new file mode 100644
index 000000000..32d7d754a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf111789.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf111863.pptx b/sd/qa/unit/data/pptx/tdf111863.pptx
new file mode 100644
index 000000000..19579ada5
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf111863.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf111884.pptx b/sd/qa/unit/data/pptx/tdf111884.pptx
new file mode 100644
index 000000000..9d08b668d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf111884.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112086.pptx b/sd/qa/unit/data/pptx/tdf112086.pptx
new file mode 100644
index 000000000..ba125df45
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112086.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112088.pptx b/sd/qa/unit/data/pptx/tdf112088.pptx
new file mode 100644
index 000000000..5ad58192e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112088.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112089.pptx b/sd/qa/unit/data/pptx/tdf112089.pptx
new file mode 100644
index 000000000..d0cafcd91
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112089.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112280.pptx b/sd/qa/unit/data/pptx/tdf112280.pptx
new file mode 100644
index 000000000..39c2aa4cb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112280.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112333.pptx b/sd/qa/unit/data/pptx/tdf112333.pptx
new file mode 100644
index 000000000..c381ed8b3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112333.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112334.pptx b/sd/qa/unit/data/pptx/tdf112334.pptx
new file mode 100644
index 000000000..1e57d41ca
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112334.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf112633.pptx b/sd/qa/unit/data/pptx/tdf112633.pptx
new file mode 100644
index 000000000..b9e062967
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112633.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf113198.pptx b/sd/qa/unit/data/pptx/tdf113198.pptx
new file mode 100644
index 000000000..a541a2b26
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf113198.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf113818-swivel.pptx b/sd/qa/unit/data/pptx/tdf113818-swivel.pptx
new file mode 100644
index 000000000..f39225223
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf113818-swivel.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf113822underline.pptx b/sd/qa/unit/data/pptx/tdf113822underline.pptx
new file mode 100644
index 000000000..2d0d07654
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf113822underline.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf114821.pptx b/sd/qa/unit/data/pptx/tdf114821.pptx
new file mode 100644
index 000000000..3813b0607
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf114821.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf114845_rotateShape.pptx b/sd/qa/unit/data/pptx/tdf114845_rotateShape.pptx
new file mode 100644
index 000000000..e9fcb92d8
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf114845_rotateShape.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf114848.pptx b/sd/qa/unit/data/pptx/tdf114848.pptx
new file mode 100644
index 000000000..5b8b6c3fa
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf114848.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf114913.pptx b/sd/qa/unit/data/pptx/tdf114913.pptx
new file mode 100644
index 000000000..cf031aba0
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf114913.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf115394-zero.pptx b/sd/qa/unit/data/pptx/tdf115394-zero.pptx
new file mode 100644
index 000000000..e8fb0cfa2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf115394-zero.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf115394.pptx b/sd/qa/unit/data/pptx/tdf115394.pptx
new file mode 100644
index 000000000..d01c90270
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf115394.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf116350-texteffects.pptx b/sd/qa/unit/data/pptx/tdf116350-texteffects.pptx
new file mode 100644
index 000000000..2a5067ae1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf116350-texteffects.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf119015.pptx b/sd/qa/unit/data/pptx/tdf119015.pptx
new file mode 100644
index 000000000..8c2313ad9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf119015.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf119087.pptx b/sd/qa/unit/data/pptx/tdf119087.pptx
new file mode 100644
index 000000000..d70bc8b0d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf119087.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf119118.pptx b/sd/qa/unit/data/pptx/tdf119118.pptx
new file mode 100644
index 000000000..8eba15328
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf119118.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf119187.pptx b/sd/qa/unit/data/pptx/tdf119187.pptx
new file mode 100644
index 000000000..0c4501abb
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf119187.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf120028.pptx b/sd/qa/unit/data/pptx/tdf120028.pptx
new file mode 100644
index 000000000..035c36730
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf120028.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf120028b.pptx b/sd/qa/unit/data/pptx/tdf120028b.pptx
new file mode 100644
index 000000000..7d50da36c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf120028b.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf120573.pptx b/sd/qa/unit/data/pptx/tdf120573.pptx
new file mode 100644
index 000000000..3c8070fc9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf120573.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf123090.pptx b/sd/qa/unit/data/pptx/tdf123090.pptx
new file mode 100644
index 000000000..c219f52de
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf123090.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf123684.pptx b/sd/qa/unit/data/pptx/tdf123684.pptx
new file mode 100644
index 000000000..872434227
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf123684.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125346.pptx b/sd/qa/unit/data/pptx/tdf125346.pptx
new file mode 100644
index 000000000..32fbbdf52
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125346.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125346_2.pptx b/sd/qa/unit/data/pptx/tdf125346_2.pptx
new file mode 100644
index 000000000..532255810
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125346_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125360.pptx b/sd/qa/unit/data/pptx/tdf125360.pptx
new file mode 100644
index 000000000..c1a3045bc
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125360.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125360_1.pptx b/sd/qa/unit/data/pptx/tdf125360_1.pptx
new file mode 100644
index 000000000..cfc579836
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125360_1.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125360_2.pptx b/sd/qa/unit/data/pptx/tdf125360_2.pptx
new file mode 100644
index 000000000..4f6b16455
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125360_2.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125551.pptx b/sd/qa/unit/data/pptx/tdf125551.pptx
new file mode 100644
index 000000000..fb7c106d2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125551.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125554.pptx b/sd/qa/unit/data/pptx/tdf125554.pptx
new file mode 100644
index 000000000..b78bc43fa
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125554.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptx b/sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptx
new file mode 100644
index 000000000..e8d1938a2
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf126234.pptx b/sd/qa/unit/data/pptx/tdf126234.pptx
new file mode 100644
index 000000000..7db54f822
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf126234.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf126324.pptx b/sd/qa/unit/data/pptx/tdf126324.pptx
new file mode 100644
index 000000000..d5540cdc4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf126324.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf126741.pptx b/sd/qa/unit/data/pptx/tdf126741.pptx
new file mode 100644
index 000000000..ca74d1c34
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf126741.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf127090.odp b/sd/qa/unit/data/pptx/tdf127090.odp
new file mode 100644
index 000000000..bbdc79958
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf127090.odp
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf127129.pptx b/sd/qa/unit/data/pptx/tdf127129.pptx
new file mode 100644
index 000000000..680fcf631
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf127129.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf127237.pptx b/sd/qa/unit/data/pptx/tdf127237.pptx
new file mode 100644
index 000000000..f63423cd4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf127237.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf127964.pptx b/sd/qa/unit/data/pptx/tdf127964.pptx
new file mode 100644
index 000000000..89482a4ce
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf127964.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf128684.pptx b/sd/qa/unit/data/pptx/tdf128684.pptx
new file mode 100644
index 000000000..80a5f3056
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf128684.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf128952.pptx b/sd/qa/unit/data/pptx/tdf128952.pptx
new file mode 100644
index 000000000..242a3ee9a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf128952.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf129372.pptx b/sd/qa/unit/data/pptx/tdf129372.pptx
new file mode 100644
index 000000000..ff172c9cd
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf129372.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf129686.pptx b/sd/qa/unit/data/pptx/tdf129686.pptx
new file mode 100644
index 000000000..9aeb396f6
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf129686.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf131553.pptx b/sd/qa/unit/data/pptx/tdf131553.pptx
new file mode 100644
index 000000000..106067d51
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf131553.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf131554.pptx b/sd/qa/unit/data/pptx/tdf131554.pptx
new file mode 100644
index 000000000..a65f423ad
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf131554.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf132282.pptx b/sd/qa/unit/data/pptx/tdf132282.pptx
new file mode 100644
index 000000000..cc1d7df4c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf132282.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf134053_dashdot.pptx b/sd/qa/unit/data/pptx/tdf134053_dashdot.pptx
new file mode 100644
index 000000000..f2d951c57
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf134053_dashdot.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf134174.pptx b/sd/qa/unit/data/pptx/tdf134174.pptx
new file mode 100644
index 000000000..ef722dc50
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf134174.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf44223.pptx b/sd/qa/unit/data/pptx/tdf44223.pptx
new file mode 100644
index 000000000..6f0af688c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf44223.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf50499.pptx b/sd/qa/unit/data/pptx/tdf50499.pptx
new file mode 100644
index 000000000..2cdcbfa98
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf50499.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf51340.pptx b/sd/qa/unit/data/pptx/tdf51340.pptx
new file mode 100644
index 000000000..090ea1be1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf51340.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf62255.pptx b/sd/qa/unit/data/pptx/tdf62255.pptx
new file mode 100644
index 000000000..fc06a9ea7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf62255.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf79007.pptx b/sd/qa/unit/data/pptx/tdf79007.pptx
new file mode 100644
index 000000000..65e94f1a9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf79007.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf79082.pptx b/sd/qa/unit/data/pptx/tdf79082.pptx
new file mode 100644
index 000000000..8dcf4ff0a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf79082.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf84205.pptx b/sd/qa/unit/data/pptx/tdf84205.pptx
new file mode 100644
index 000000000..211cea6d0
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf84205.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf89064.pptx b/sd/qa/unit/data/pptx/tdf89064.pptx
new file mode 100644
index 000000000..312496f79
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf89064.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf89927.pptx b/sd/qa/unit/data/pptx/tdf89927.pptx
new file mode 100644
index 000000000..c71e55702
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf89927.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf90626.pptx b/sd/qa/unit/data/pptx/tdf90626.pptx
new file mode 100644
index 000000000..ef31fc92f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf90626.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf91378.pptx b/sd/qa/unit/data/pptx/tdf91378.pptx
new file mode 100644
index 000000000..361be2c9a
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf91378.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf91999_rotateShape.pptx b/sd/qa/unit/data/pptx/tdf91999_rotateShape.pptx
new file mode 100644
index 000000000..7559597b7
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf91999_rotateShape.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf93097.pptx b/sd/qa/unit/data/pptx/tdf93097.pptx
new file mode 100644
index 000000000..687110db3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf93097.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf93830.pptx b/sd/qa/unit/data/pptx/tdf93830.pptx
new file mode 100644
index 000000000..8415daff3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf93830.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf93868.pptx b/sd/qa/unit/data/pptx/tdf93868.pptx
new file mode 100644
index 000000000..f54fb0496
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf93868.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf94238.pptx b/sd/qa/unit/data/pptx/tdf94238.pptx
new file mode 100644
index 000000000..6f61cc5b4
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf94238.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf95932.pptx b/sd/qa/unit/data/pptx/tdf95932.pptx
new file mode 100644
index 000000000..5e22b1158
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf95932.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf98477grow.pptx b/sd/qa/unit/data/pptx/tdf98477grow.pptx
new file mode 100644
index 000000000..5761c7b07
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf98477grow.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf98603.pptx b/sd/qa/unit/data/pptx/tdf98603.pptx
new file mode 100644
index 000000000..92c717721
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf98603.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/tdf99030.pptx b/sd/qa/unit/data/pptx/tdf99030.pptx
new file mode 100644
index 000000000..38448f93f
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf99030.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/testShapeAutofit.pptx b/sd/qa/unit/data/pptx/testShapeAutofit.pptx
new file mode 100644
index 000000000..fd402c01c
--- /dev/null
+++ b/sd/qa/unit/data/pptx/testShapeAutofit.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/trigger.pptx b/sd/qa/unit/data/pptx/trigger.pptx
new file mode 100644
index 000000000..fdfb39740
--- /dev/null
+++ b/sd/qa/unit/data/pptx/trigger.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/vertical-bracket-list.pptx b/sd/qa/unit/data/pptx/vertical-bracket-list.pptx
new file mode 100644
index 000000000..bef9d7481
--- /dev/null
+++ b/sd/qa/unit/data/pptx/vertical-bracket-list.pptx
Binary files differ
diff --git a/sd/qa/unit/data/smoketest.pptx b/sd/qa/unit/data/smoketest.pptx
new file mode 100644
index 000000000..e0cfe4900
--- /dev/null
+++ b/sd/qa/unit/data/smoketest.pptx
Binary files differ
diff --git a/sd/qa/unit/data/strict_ooxml.pptx b/sd/qa/unit/data/strict_ooxml.pptx
new file mode 100644
index 000000000..534b483ff
--- /dev/null
+++ b/sd/qa/unit/data/strict_ooxml.pptx
Binary files differ
diff --git a/sd/qa/unit/data/svg/test.svg b/sd/qa/unit/data/svg/test.svg
new file mode 100644
index 000000000..74e01e644
--- /dev/null
+++ b/sd/qa/unit/data/svg/test.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<svg version="1.2" baseProfile="tiny" viewBox="0 0 28002 20999" preserveAspectRatio="xMidYMid" fill-rule="evenodd" clip-path="url(#presentation_clip_path)" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs>
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="28002" height="20999"/>
+ </clipPath>
+ </defs>
+ <g id="id2" class="Master_Slide" clip-path="url(#presentation_clip_path)">
+ <g id="bo-id2" visibility="visible" class="BackgroundObjects">
+ <g class="com.sun.star.presentation.TitleTextShape">
+ <g>
+ <rect fill="none" stroke="none" x="1400" y="837" width="25199" height="3507"/>
+ <g font-family="Liberation Sans" font-size="635px" font-style="normal" font-weight="400">
+ <g fill="rgb(0,0,0)" stroke="none">
+ <text x="9662" y="2844">C</text>
+ <text x="10119" y="2844">l</text>
+ <text x="10259" y="2844">i</text>
+ <text x="10399" y="2844">c</text>
+ <text x="10716" y="2844">k</text>
+ <text x="11034" y="2844"> </text>
+ <text x="11211" y="2844">t</text>
+ <text x="11389" y="2844">o</text>
+ <text x="11741" y="2844"> </text>
+ <text x="11918" y="2844">e</text>
+ <text x="12270" y="2844">d</text>
+ <text x="12621" y="2844">i</text>
+ <text x="12761" y="2844">t</text>
+ <text x="12939" y="2844"> </text>
+ <text x="13116" y="2844">t</text>
+ <text x="13294" y="2844">h</text>
+ <text x="13646" y="2844">e</text>
+ <text x="13997" y="2844"> </text>
+ <text x="14175" y="2844">t</text>
+ <text x="14353" y="2844">i</text>
+ <text x="14492" y="2844">t</text>
+ <text x="14670" y="2844">l</text>
+ <text x="14810" y="2844">e</text>
+ <text x="15161" y="2844"> </text>
+ <text x="15339" y="2844">t</text>
+ <text x="15517" y="2844">e</text>
+ <text x="15868" y="2844">x</text>
+ <text x="16181" y="2844">t</text>
+ <text x="16359" y="2844"> </text>
+ <text x="16537" y="2844">f</text>
+ <text x="16715" y="2844">o</text>
+ <text x="17066" y="2844">r</text>
+ <text x="17278" y="2844">m</text>
+ <text x="17807" y="2844">a</text>
+ <text x="18158" y="2844">t</text></g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g id="id1" class="Slide" visibility="visible" clip-path="url(#presentation_clip_path)">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g>
+ <g font-family="Liberation Sans" font-size="635px" font-style="normal" font-weight="400">
+ <g fill="rgb(0,0,0)" stroke="none">
+ <text x="13280" y="2844">H</text>
+ <text x="13737" y="2844">e</text>
+ <text x="14089" y="2844">l</text>
+ <text x="14228" y="2844">l</text>
+ <text x="14368" y="2844">o</text></g>
+ <rect fill="none" stroke="none" x="1400" y="837" width="25199" height="3506"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g>
+ <g font-family="Liberation Sans" font-size="635px" font-style="normal" font-weight="700">
+ <g fill="rgb(0,0,0)" stroke="none">
+ <text x="12200" y="12097">R</text>
+ <text x="12657" y="12097">a</text>
+ <text x="13009" y="12097">d</text>
+ <text x="13398" y="12097">e</text>
+ <text x="13749" y="12097">k</text>
+ <text x="14101" y="12097">s</text>
+ <text x="14452" y="12097">k</text>
+ <text x="14804" y="12097">i</text>
+ <text x="14981" y="12097"> </text>
+ <text x="15159" y="12097">:</text>
+ <text x="15375" y="12097">-</text>
+ <text x="15587" y="12097">)</text></g>
+ <rect fill="none" stroke="none" x="1400" y="4914" width="25199" height="13859"/>
+ </g>
+ </g>
+ </g>
+ <g class="Graphic">
+ <g>
+ <path fill="none" stroke="rgb(128,128,128)" d="M 12267,5588 L 15493,5588 15493,8761 12267,8761 12267,5588"/>
+ <g font-family="Liberation Sans" font-size="635px" font-style="normal" font-weight="400">
+ <g fill="rgb(255,0,0)" stroke="none">
+ <text x="12467" y="6364"> </text></g>
+ <g fill="rgb(255,0,0)" stroke="none">
+ <text x="12645" y="6364">.</text>
+ <text x="12823" y="6364">.</text>
+ <text x="13001" y="6364">.</text></g>
+ <rect fill="none" stroke="none" x="12267" y="5588" width="3227" height="3174"/>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/sd/qa/unit/data/sxi/ooo41061-1.sxi b/sd/qa/unit/data/sxi/ooo41061-1.sxi
new file mode 100644
index 000000000..4c2482a58
--- /dev/null
+++ b/sd/qa/unit/data/sxi/ooo41061-1.sxi
Binary files differ
diff --git a/sd/qa/unit/data/tdf100491.pptx b/sd/qa/unit/data/tdf100491.pptx
new file mode 100644
index 000000000..d25388d23
--- /dev/null
+++ b/sd/qa/unit/data/tdf100491.pptx
Binary files differ
diff --git a/sd/qa/unit/data/tdf101242_ODF.odg b/sd/qa/unit/data/tdf101242_ODF.odg
new file mode 100644
index 000000000..98934c7f7
--- /dev/null
+++ b/sd/qa/unit/data/tdf101242_ODF.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf101242_settings.odg b/sd/qa/unit/data/tdf101242_settings.odg
new file mode 100644
index 000000000..5bea0d072
--- /dev/null
+++ b/sd/qa/unit/data/tdf101242_settings.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf109317.pptx b/sd/qa/unit/data/tdf109317.pptx
new file mode 100644
index 000000000..427108069
--- /dev/null
+++ b/sd/qa/unit/data/tdf109317.pptx
Binary files differ
diff --git a/sd/qa/unit/data/tdf111522.odp b/sd/qa/unit/data/tdf111522.odp
new file mode 100644
index 000000000..fd6ebeb6e
--- /dev/null
+++ b/sd/qa/unit/data/tdf111522.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf119392_InsertLayer.odg b/sd/qa/unit/data/tdf119392_InsertLayer.odg
new file mode 100644
index 000000000..617624ce9
--- /dev/null
+++ b/sd/qa/unit/data/tdf119392_InsertLayer.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf119956.odg b/sd/qa/unit/data/tdf119956.odg
new file mode 100644
index 000000000..eb1104035
--- /dev/null
+++ b/sd/qa/unit/data/tdf119956.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf120527.jpg b/sd/qa/unit/data/tdf120527.jpg
new file mode 100644
index 000000000..12b393569
--- /dev/null
+++ b/sd/qa/unit/data/tdf120527.jpg
Binary files differ
diff --git a/sd/qa/unit/data/tdf123841.odg b/sd/qa/unit/data/tdf123841.odg
new file mode 100644
index 000000000..a92477e83
--- /dev/null
+++ b/sd/qa/unit/data/tdf123841.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf126197.odp b/sd/qa/unit/data/tdf126197.odp
new file mode 100644
index 000000000..cbe5b0744
--- /dev/null
+++ b/sd/qa/unit/data/tdf126197.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf128651_CustomShapeUndo.odp b/sd/qa/unit/data/tdf128651_CustomShapeUndo.odp
new file mode 100644
index 000000000..9e820da09
--- /dev/null
+++ b/sd/qa/unit/data/tdf128651_CustomShapeUndo.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf129898_faulty_DrawnInSlideshow.odp b/sd/qa/unit/data/tdf129898_faulty_DrawnInSlideshow.odp
new file mode 100644
index 000000000..796b57b2c
--- /dev/null
+++ b/sd/qa/unit/data/tdf129898_faulty_DrawnInSlideshow.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf130988_3D_create_lathe.odg b/sd/qa/unit/data/tdf130988_3D_create_lathe.odg
new file mode 100644
index 000000000..e2b37ef60
--- /dev/null
+++ b/sd/qa/unit/data/tdf130988_3D_create_lathe.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf131033_3D_SceneSizeIn2d.odg b/sd/qa/unit/data/tdf131033_3D_SceneSizeIn2d.odg
new file mode 100644
index 000000000..f6cfc96e6
--- /dev/null
+++ b/sd/qa/unit/data/tdf131033_3D_SceneSizeIn2d.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf67248.odg b/sd/qa/unit/data/tdf67248.odg
new file mode 100644
index 000000000..03417effa
--- /dev/null
+++ b/sd/qa/unit/data/tdf67248.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf80194_defaultSubscripts.fodg b/sd/qa/unit/data/tdf80194_defaultSubscripts.fodg
new file mode 100644
index 000000000..12efa023b
--- /dev/null
+++ b/sd/qa/unit/data/tdf80194_defaultSubscripts.fodg
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ooo="http://openoffice.org/2004/office" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.graphics">
+ <office:meta><meta:creation-date>2020-02-17T15:21:21.927256142</meta:creation-date><dc:date>2020-02-17T16:18:41.297941901</dc:date><meta:editing-duration>PT17M53S</meta:editing-duration><meta:editing-cycles>8</meta:editing-cycles><meta:generator>LibreOfficeDev/7.0.0.0.alpha0$Linux_X86_64 LibreOffice_project/76fec020a99a41a06176307cb2c31f9494867dd0</meta:generator><meta:document-statistic meta:object-count="2"/></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">19876</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">6602</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">3646</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">3659</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item config:name="GridIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridIsFront" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToPageMargins" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToSnapLines" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectFrame" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPlusHandlesAlwaysVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsFrameDragSingles" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EliminatePolyPointLimitAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="IsEliminatePolyPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="VisibleLayers" config:type="base64Binary">Hw==</config:config-item>
+ <config:config-item config:name="PrintableLayers" config:type="base64Binary">Hw==</config:config-item>
+ <config:config-item config:name="LockedLayers" config:type="base64Binary"/>
+ <config:config-item config:name="NoAttribs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoColors" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="RulerIsVisible" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PageKind" config:type="short">0</config:config-item>
+ <config:config-item config:name="SelectedPage" config:type="short">0</config:config-item>
+ <config:config-item config:name="IsLayerMode" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsDoubleClickTextEdit" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsClickChangeRotation" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SlidesPerRow" config:type="short">4</config:config-item>
+ <config:config-item config:name="EditMode" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaTop" config:type="int">20184</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">6885</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">3052</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">3063</config:config-item>
+ <config:config-item config:name="GridCoarseWidth" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridCoarseHeight" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridFineWidth" config:type="int">100</config:config-item>
+ <config:config-item config:name="GridFineHeight" config:type="int">100</config:config-item>
+ <config:config-item config:name="GridSnapWidthXNumerator" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridSnapWidthXDenominator" config:type="int">10</config:config-item>
+ <config:config-item config:name="GridSnapWidthYNumerator" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridSnapWidthYDenominator" config:type="int">10</config:config-item>
+ <config:config-item config:name="IsAngleSnapEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SnapAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="ZoomOnPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="BitmapTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sob</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ColorTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soc</config:config-item>
+ <config:config-item config:name="DashTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sod</config:config-item>
+ <config:config-item config:name="DefaultTabStop" config:type="int">1250</config:config-item>
+ <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item-map-indexed config:name="ForbiddenCharacters">
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">en</config:config-item>
+ <config:config-item config:name="Country" config:type="string">GB</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ <config:config-item config:name="GradientTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sog</config:config-item>
+ <config:config-item config:name="HatchTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soh</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBooklet" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBookletBack" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintBookletFront" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintDate" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintFitPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHiddenPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintPageName" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTilePage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTime" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LineEndTableURL" config:type="string">$(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soe</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="MeasureUnit" config:type="short">3</config:config-item>
+ <config:config-item config:name="PageNumberFormat" config:type="int">4</config:config-item>
+ <config:config-item config:name="ParagraphSummation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintQuality" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string">Boomaga</config:config-item>
+ <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary">lwH+/0Jvb21hZ2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpCb29tYWdhAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMAuAAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9Qm9vbWFnYQpvcmllbnRhdGlvbj1Qb3J0cmFpdApjb3BpZXM9MQpjb2xsYXRlPWZhbHNlCm1hcmdpbmRhanVzdG1lbnQ9MCwwLDAsMApjb2xvcmRlcHRoPTI0CnBzbGV2ZWw9MApwZGZkZXZpY2U9MQpjb2xvcmRldmljZT0wClBQRENvbnRleERhdGEKRHVwbGV4Ok5vbmUAUGFnZVNpemU6QTQAABIAQ09NUEFUX0RVUExFWF9NT0RFDwBEdXBsZXhNb2RlOjpPZmY=</config:config-item>
+ <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ScaleDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="ScaleNumerator" config:type="int">1</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans" svg:font-family="&apos;Noto Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans CJK SC Regular" svg:font-family="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:gradient draw:name="Filled" draw:style="linear" draw:start-color="#ffffff" draw:end-color="#cccccc" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Filled_20_Blue" draw:display-name="Filled Blue" draw:style="linear" draw:start-color="#729fcf" draw:end-color="#355269" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Filled_20_Green" draw:display-name="Filled Green" draw:style="linear" draw:start-color="#77bc65" draw:end-color="#127622" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Filled_20_Red" draw:display-name="Filled Red" draw:style="linear" draw:start-color="#ff6d6d" draw:end-color="#c9211e" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Filled_20_Yellow" draw:display-name="Filled Yellow" draw:style="linear" draw:start-color="#ffde59" draw:end-color="#b47804" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Pastel_20_Bouquet" draw:display-name="Pastel Bouquet" draw:style="linear" draw:start-color="#e8a202" draw:end-color="#5b277d" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="300" draw:border="0%"/>
+ <draw:gradient draw:name="Shapes" draw:style="rectangular" draw:cx="50%" draw:cy="50%" draw:start-color="#cccccc" draw:end-color="#ffffff" draw:start-intensity="100%" draw:end-intensity="100%" draw:angle="0" draw:border="0%"/>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="en" fo:country="GB" style:font-name-asian="DejaVu Sans" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" loext:opacity="0%" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Text" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#cccccc" draw:fill="solid" draw:fill-color="#eeeeee"/>
+ <style:text-properties style:font-name="Noto Sans" fo:font-family="&apos;Noto Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ </style:style>
+ <style:style style:name="A4" style:family="graphic" style:parent-style-name="Text">
+ <style:graphic-properties draw:fill="none"/>
+ <style:text-properties fo:font-size="18pt"/>
+ </style:style>
+ <style:style style:name="Title_20_A4" style:display-name="Title A4" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="Heading_20_A4" style:display-name="Heading A4" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="Text_20_A4" style:display-name="Text A4" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ </style:style>
+ <style:style style:name="A4" style:family="graphic" style:parent-style-name="Text">
+ <style:graphic-properties draw:fill="none"/>
+ <style:text-properties fo:font-size="18pt"/>
+ </style:style>
+ <style:style style:name="Title_20_A0" style:display-name="Title A0" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ <style:text-properties fo:font-size="96pt"/>
+ </style:style>
+ <style:style style:name="Heading_20_A0" style:display-name="Heading A0" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ <style:text-properties fo:font-size="72pt"/>
+ </style:style>
+ <style:style style:name="Text_20_A0" style:display-name="Text A0" style:family="graphic" style:parent-style-name="A4">
+ <style:graphic-properties draw:stroke="none"/>
+ </style:style>
+ <style:style style:name="Graphic" style:family="graphic">
+ <style:graphic-properties draw:fill="solid" draw:fill-color="#ffffff"/>
+ <style:text-properties style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt"/>
+ </style:style>
+ <style:style style:name="Shapes" style:family="graphic" style:parent-style-name="Graphic">
+ <style:graphic-properties draw:stroke="none" draw:fill="gradient" draw:fill-gradient-name="Shapes"/>
+ <style:text-properties fo:font-size="14pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Filled" style:family="graphic" style:parent-style-name="Shapes">
+ <style:graphic-properties draw:fill="gradient" draw:fill-gradient-name="Filled"/>
+ </style:style>
+ <style:style style:name="Filled_20_Blue" style:display-name="Filled Blue" style:family="graphic" style:parent-style-name="Filled">
+ <style:graphic-properties draw:fill-gradient-name="Filled_20_Blue"/>
+ <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Filled_20_Green" style:display-name="Filled Green" style:family="graphic" style:parent-style-name="Filled">
+ <style:graphic-properties draw:fill-gradient-name="Filled_20_Green"/>
+ <style:text-properties fo:color="#ffffff" loext:opacity="100%" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ </style:style>
+ <style:style style:name="Filled_20_Red" style:display-name="Filled Red" style:family="graphic" style:parent-style-name="Filled">
+ <style:graphic-properties draw:fill-gradient-name="Filled_20_Red"/>
+ <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Filled_20_Yellow" style:display-name="Filled Yellow" style:family="graphic" style:parent-style-name="Filled">
+ <style:graphic-properties draw:fill-gradient-name="Filled_20_Yellow"/>
+ <style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Outlined" style:family="graphic" style:parent-style-name="Shapes">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.081cm" svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Outlined_20_Blue" style:display-name="Outlined Blue" style:family="graphic" style:parent-style-name="Outlined">
+ <style:graphic-properties svg:stroke-color="#355269"/>
+ <style:text-properties fo:color="#355269" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Outlined_20_Green" style:display-name="Outlined Green" style:family="graphic" style:parent-style-name="Outlined">
+ <style:graphic-properties svg:stroke-color="#127622"/>
+ <style:text-properties fo:color="#127622" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Outlined_20_Red" style:display-name="Outlined Red" style:family="graphic" style:parent-style-name="Outlined">
+ <style:graphic-properties svg:stroke-color="#c9211e"/>
+ <style:text-properties fo:color="#c9211e" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Outlined_20_Yellow" style:display-name="Outlined Yellow" style:family="graphic" style:parent-style-name="Outlined">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#b47804"/>
+ <style:text-properties fo:color="#b47804" loext:opacity="100%"/>
+ </style:style>
+ <style:style style:name="Lines" style:family="graphic" style:parent-style-name="Graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Arrow_20_Line" style:display-name="Arrow Line" style:family="graphic" style:parent-style-name="Lines">
+ <style:graphic-properties draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:show-unit="true"/>
+ </style:style>
+ <style:style style:name="Arrow_20_Dashed" style:display-name="Arrow Dashed" style:family="graphic" style:parent-style-name="Lines">
+ <style:graphic-properties draw:stroke="dash"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="1cm" fo:margin-right="1cm" fo:page-width="21cm" fo:page-height="29.7cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page"/>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" svg:stroke-color="#000000" draw:fill="gradient" draw:fill-color="#ffffff" draw:fill-gradient-name="Pastel_20_Bouquet" fo:min-height="4.25cm"/>
+ <style:paragraph-properties style:writing-mode="lr-tb"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" svg:stroke-color="#000000" draw:fill="none" draw:fill-color="#ffffff" fo:min-height="16.354cm"/>
+ <style:paragraph-properties style:writing-mode="lr-tb"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <loext:graphic-properties draw:fill="gradient" draw:fill-color="#ffffff" draw:fill-gradient-name="Pastel_20_Bouquet"/>
+ <style:paragraph-properties style:writing-mode="lr-tb"/>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ </style:style>
+ <style:style style:name="P3" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties style:writing-mode="lr-tb"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties style:text-position="sub 58%" fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
+ </style:style>
+ <style:style style:name="T2" style:family="text">
+ <style:text-properties style:text-position="0% 100%" fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
+ </style:style>
+ <style:style style:name="T3" style:family="text">
+ <style:text-properties style:text-position="super 58%" fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
+ </style:style>
+ <text:list-style style:name="L1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:master-page style:name="Default" style:page-layout-name="PM0" draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+ <office:drawing>
+ <draw:page draw:name="page1" draw:style-name="dp2" draw:master-page-name="Default">
+ <draw:frame draw:name="Zoomed Textbox" draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="8.2cm" svg:height="4.5cm" svg:x="3.9cm" svg:y="19.2cm">
+ <draw:text-box>
+ <text:p>Subscript shouldn’t drop below descender: q<text:span text:style-name="T1">p</text:span></text:p>
+ <text:p><text:span text:style-name="T2"/></text:p>
+ <text:p><text:span text:style-name="T2">Superscript shouldn’t raise above ascender: d</text:span><text:span text:style-name="T3">L</text:span></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:name="Overgrown textbox" draw:style-name="gr2" draw:text-style-name="P3" draw:layer="layout" svg:width="16.9cm" svg:height="16.604cm" svg:x="1.6cm" svg:y="2.6cm">
+ <draw:text-box>
+ <text:p>Text with a<text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">A normal line of text</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T1">Subscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T3">Superscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T3">Superscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">Text with a</text:span><text:span text:style-name="T3">Superscript</text:span></text:p>
+ <text:p text:style-name="P2"><text:span text:style-name="T2">The spacing between all of these rows should be identical. There should not be big gaps caused by default subscripts or superscripts.</text:span></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </draw:page>
+ </office:drawing>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/tdf90338.odp b/sd/qa/unit/data/tdf90338.odp
new file mode 100644
index 000000000..55739bb98
--- /dev/null
+++ b/sd/qa/unit/data/tdf90338.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf90403.pptx b/sd/qa/unit/data/tdf90403.pptx
new file mode 100644
index 000000000..fd48d058a
--- /dev/null
+++ b/sd/qa/unit/data/tdf90403.pptx
Binary files differ
diff --git a/sd/qa/unit/data/tdf92001.odp b/sd/qa/unit/data/tdf92001.odp
new file mode 100644
index 000000000..886826f0b
--- /dev/null
+++ b/sd/qa/unit/data/tdf92001.odp
Binary files differ
diff --git a/sd/qa/unit/data/tdf97808.fodp b/sd/qa/unit/data/tdf97808.fodp
new file mode 100644
index 000000000..ac2d3e2d8
--- /dev/null
+++ b/sd/qa/unit/data/tdf97808.fodp
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:styles>
+
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <draw:stroke-dash draw:name="Dashed_20__28_var_29__20_2" draw:display-name="Dashed (var) 2" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
+ <style:style style:name="objectwithoutfill" style:family="graphic">
+ <style:graphic-properties draw:stroke-dash="Dashed_20__28_var_29__20_2" svg:stroke-color="#000000" draw:marker-end="Arrow" draw:marker-end-width="0.6cm" draw:fill="solid" draw:fill-color="#008000"/>
+ </style:style>
+
+ </office:styles>
+ <office:automatic-styles>
+
+ <style:style style:name="gr12" style:family="graphic" style:parent-style-name="objectwithoutfill">
+ <style:graphic-properties svg:stroke-color="#999999" draw:marker-end="" draw:marker-end-width="0.3cm" draw:fill="solid" draw:textarea-vertical-align="middle"/>
+ </style:style>
+
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+
+ <draw:page>
+ <draw:line draw:style-name="gr12" svg:x1="7.152cm" svg:y1="17.473cm" svg:x2="6.89cm" svg:y2="15.718cm">
+ <text:p/>
+ </draw:line>
+ </draw:page>
+
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/tdf98839_ShearVFlipH.odg b/sd/qa/unit/data/tdf98839_ShearVFlipH.odg
new file mode 100644
index 000000000..88763f8d3
--- /dev/null
+++ b/sd/qa/unit/data/tdf98839_ShearVFlipH.odg
Binary files differ
diff --git a/sd/qa/unit/data/tdf99396.odp b/sd/qa/unit/data/tdf99396.odp
new file mode 100644
index 000000000..636260020
--- /dev/null
+++ b/sd/qa/unit/data/tdf99396.odp
Binary files differ
diff --git a/sd/qa/unit/data/tolerance.xml b/sd/qa/unit/data/tolerance.xml
new file mode 100644
index 000000000..167dfb61b
--- /dev/null
+++ b/sd/qa/unit/data/tolerance.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<tolerances>
+</tolerances>
diff --git a/sd/qa/unit/data/transparent-text.fodg b/sd/qa/unit/data/transparent-text.fodg
new file mode 100644
index 000000000..697f2a22b
--- /dev/null
+++ b/sd/qa/unit/data/transparent-text.fodg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.graphics">
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans" svg:font-family="&apos;Noto Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Lucida Sans" svg:font-family="&apos;Lucida Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Segoe UI" svg:font-family="&apos;Segoe UI&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="hu" fo:country="HU" style:font-name-asian="Segoe UI" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Tahoma" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" loext:opacity="0%" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Tahoma" style:font-family-asian="Tahoma" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Lucida Sans" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard"/>
+ <style:style style:name="Text" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#cccccc" draw:fill="solid" draw:fill-color="#eeeeee"/>
+ <style:text-properties style:font-name="Noto Sans" fo:font-family="&apos;Noto Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="1cm" fo:margin-bottom="1cm" fo:margin-left="1cm" fo:margin-right="1cm" fo:page-width="21.59cm" fo:page-height="27.94cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page"/>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" svg:stroke-color="#3465a4" draw:fill="none" draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="5.148cm" fo:min-width="7.491cm"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none"/>
+ <style:text-properties fo:color="#ff0000" loext:opacity="25%" fo:font-size="66pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties fo:color="#ff0000" loext:opacity="25%" fo:font-size="66pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Default" style:page-layout-name="PM0" draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+ <office:drawing>
+ <draw:page draw:name="page1" draw:style-name="dp2" draw:master-page-name="Default">
+ <draw:custom-shape draw:name="Shape3" draw:style-name="gr1" draw:text-style-name="P1" draw:layer="layout" svg:width="7.991cm" svg:height="5.398cm" svg:x="6.43cm" svg:y="14.304cm">
+ <text:p><text:span text:style-name="T1">asdf</text:span></text:p>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ </draw:page>
+ </office:drawing>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/unknown-attribute.fodp b/sd/qa/unit/data/unknown-attribute.fodp
new file mode 100644
index 000000000..3aa39b666
--- /dev/null
+++ b/sd/qa/unit/data/unknown-attribute.fodp
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:styles>
+
+ </office:styles>
+ <office:automatic-styles>
+
+ <style:style style:name="gr1" style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="solid" draw:fill-color="#008000"
+ svg:fill-rule="evenodd"
+ svg:non-existent-attr="blah"
+ xmlns:foo="http://example.com/" foo:non-existent-att="bar"
+ />
+ </style:style>
+
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+
+ <draw:page>
+ <draw:polygon draw:style-name="gr1" svg:width="3.2cm" svg:height="2cm" svg:x="4cm" svg:y="11.7cm" svg:viewBox="0 0 3201 2001" draw:points="0,2001 3201,2001 3201,0 0,0"/>
+ </draw:page>
+
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/data/xml/fdo47434_0.xml b/sd/qa/unit/data/xml/fdo47434_0.xml
new file mode 100644
index 000000000..512f422fd
--- /dev/null
+++ b/sd/qa/unit/data/xml/fdo47434_0.xml
@@ -0,0 +1,255 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="5358" positionY="4366" sizeX="5555" sizeY="1" type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="322" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="27" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineEnd>
+ <Transformation>
+ <Line1 column1="5556.000000" column2="0.000000" column3="5358.000000"/>
+ <Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5356" positionY="5159" sizeX="5555" sizeY="1" type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="322" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="27" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineEnd>
+ <Transformation>
+ <Line1 column1="5556.000000" column2="0.000000" column3="5356.000000"/>
+ <Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14486" positionY="4366" sizeX="5555" sizeY="1" type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="322" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="27" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineEnd>
+ <Transformation>
+ <Line1 column1="5556.000000" column2="0.000000" column3="14486.000000"/>
+ <Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14484" positionY="5159" sizeX="5555" sizeY="1" type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 8" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="322" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="193" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="156" positionY="102" polygonFlags="NORMAL"/>
+ <point positionX="27" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="322" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineEnd>
+ <Transformation>
+ <Line1 column1="5556.000000" column2="0.000000" column3="14484.000000"/>
+ <Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/fdo64586_0.xml b/sd/qa/unit/data/xml/fdo64586_0.xml
new file mode 100644
index 000000000..d8ae74578
--- /dev/null
+++ b/sd/qa/unit/data/xml/fdo64586_0.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1397" positionY="838" sizeX="25197" sizeY="3506" type="com.sun.star.presentation.TitleTextShape" fontHeight="44.000000" fontColor="000000" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="0" textRightDistance="0" textUpperDistance="0" textLowerDistance="0" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="3506" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="25198.000000" column2="0.000000" column3="1397.000000"/>
+ <Line2 column1="0.000000" column2="3507.000000" column3="838.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="1397" positionY="4912" sizeX="25197" sizeY="12180" type="com.sun.star.presentation.SubtitleShape" text="Blah" fontHeight="32.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="0" textRightDistance="0" textUpperDistance="78" textLowerDistance="0" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="12103" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="25198.000000" column2="0.000000" column3="1397.000000"/>
+ <Line2 column1="0.000000" column2="12181.000000" column3="4912.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/fdo71434_0.xml b/sd/qa/unit/data/xml/fdo71434_0.xml
new file mode 100644
index 000000000..0ec2570dc
--- /dev/null
+++ b/sd/qa/unit/data/xml/fdo71434_0.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="2823" positionY="-75" sizeX="19753" sizeY="19045" type="com.sun.star.drawing.GraphicObjectShape" name="Picture 5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" shadow="false" shadowColor="808080" shadowTransparence="0" shadowXDistance="200" shadowYDistance="200" zOrder="0" layerID="0" layerName="layout" visible="true" printable="true" moveProtect="false" sizeProtect="false">
+ <Transformation>
+ <Line1 column1="19754.000000" column2="0.000000" column3="2823.000000"/>
+ <Line2 column1="0.000000" column2="19046.000000" column3="-75.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n593612_0.xml b/sd/qa/unit/data/xml/n593612_0.xml
new file mode 100644
index 000000000..7c93f494e
--- /dev/null
+++ b/sd/qa/unit/data/xml/n593612_0.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="11429" positionY="1324" sizeX="2259" sizeY="15209" type="com.sun.star.drawing.CustomShape" name="Rectangle 52" text="&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="254" textRightDistance="254" textUpperDistance="127" textLowerDistance="127" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="3c8c93" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2260.000000" column2="0.000000" column3="11429.000000"/>
+ <Line2 column1="0.000000" column2="15210.000000" column3="1324.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n758621_0.xml b/sd/qa/unit/data/xml/n758621_0.xml
new file mode 100644
index 000000000..aba12ebe6
--- /dev/null
+++ b/sd/qa/unit/data/xml/n758621_0.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="12042" positionY="1904" sizeX="12087" sizeY="9521" type="com.sun.star.presentation.TitleTextShape" fontHeight="60.000000" fontColor="004990" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="RIGHT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="130" textLowerDistance="130" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="9261" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="12088.000000" column2="0.000000" column3="12042.000000"/>
+ <Line2 column1="0.000000" column2="9522.000000" column3="1904.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="14176" positionY="13123" sizeX="9953" sizeY="3810" type="com.sun.star.presentation.SubtitleShape" fontHeight="36.000000" fontColor="92d050" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="RIGHT" textVerticalAdjust="TOP" textLeftDistance="0" textRightDistance="0" textUpperDistance="0" textLowerDistance="0" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="3810" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="9954.000000" column2="0.000000" column3="14176.000000"/>
+ <Line2 column1="0.000000" column2="3811.000000" column3="13123.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n758621_1.xml b/sd/qa/unit/data/xml/n758621_1.xml
new file mode 100644
index 000000000..556c18673
--- /dev/null
+++ b/sd/qa/unit/data/xml/n758621_1.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1485" positionY="610" sizeX="18411" sizeY="1954" type="com.sun.star.presentation.TitleTextShape" fontHeight="40.000000" fontColor="ff0000" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="130" textLowerDistance="130" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="1645" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="18412.000000" column2="0.000000" column3="1485.000000"/>
+ <Line2 column1="0.000000" column2="1955.000000" column3="610.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="1692" positionY="4444" sizeX="22217" sizeY="12061" type="com.sun.star.presentation.OutlinerShape" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="AUTOFIT" textHorizontalAdjust="LEFT" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="130" textLowerDistance="130" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="11811" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="22218.000000" column2="0.000000" column3="1692.000000"/>
+ <Line2 column1="0.000000" column2="12062.000000" column3="4444.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n762695_0.xml b/sd/qa/unit/data/xml/n762695_0.xml
new file mode 100644
index 000000000..710a5039a
--- /dev/null
+++ b/sd/qa/unit/data/xml/n762695_0.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="5769" positionY="5160" sizeX="13390" sizeY="10855" type="com.sun.star.drawing.CustomShape" name="Freeform 3" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="c3d69b" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="13391.000000" column2="0.000000" column3="5769.000000"/>
+ <Line2 column1="0.000000" column2="10856.000000" column3="5160.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4572508" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1524525" type="0"/>
+ <Second value="2755361" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1521154" type="0"/>
+ <Second value="1860047" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5441" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4567067" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3003587" type="0"/>
+ <Second value="1854731" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3015827" type="0"/>
+ <Second value="2721006" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4572508" type="0"/>
+ <Second value="4572508" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4572508" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5291" positionY="7175" sizeX="1419" sizeY="1450" type="com.sun.star.drawing.CustomShape" name="Left Arrow 9" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="b29dde" endColor="ffffff" angle="1350" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1004.091629" column2="1026.011940" column3="5291.000000"/>
+ <Line2 column1="-1004.091629" column2="1026.011940" column3="7175.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="50000" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="50000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="14" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="6"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-leftArrow" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="17594" positionY="7175" sizeX="1418" sizeY="1450" type="com.sun.star.drawing.CustomShape" name="Left Arrow 13" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="b29dde" endColor="ffffff" angle="2250" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1003.384523" column2="1026.011940" column3="17594.000000"/>
+ <Line2 column1="-1003.384523" column2="1026.011940" column3="7175.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="50000" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="50000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="14" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="6"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-leftArrow" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n762695_1.xml b/sd/qa/unit/data/xml/n762695_1.xml
new file mode 100644
index 000000000..54b383db4
--- /dev/null
+++ b/sd/qa/unit/data/xml/n762695_1.xml
@@ -0,0 +1,634 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="3175" positionY="7197" sizeX="17991" sizeY="7619" type="com.sun.star.drawing.CustomShape" name="Freeform 15" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="17992.000000" column2="0.000000" column3="3175.000000"/>
+ <Line2 column1="0.000000" column2="7620.000000" column3="7197.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1882502" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="330926" type="0"/>
+ <Second value="2481216" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="912223" type="0"/>
+ <Second value="2807788" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1423852" type="0"/>
+ <Second value="2496457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1935481" type="0"/>
+ <Second value="2185126" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2240282" type="0"/>
+ <Second value="197393" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3069773" type="0"/>
+ <Second value="14513" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3899265" type="0"/>
+ <Second value="-168367" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4996543" type="0"/>
+ <Second value="1438364" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6400801" type="0"/>
+ <Second value="1399177" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="3387" positionY="4229" sizeX="17682" sizeY="9528" type="com.sun.star.drawing.CustomShape" name="Freeform 16" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="17683.000000" column2="0.000000" column3="3387.000000"/>
+ <Line2 column1="0.000000" column2="9529.000000" column3="4229.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2732828" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="330926" type="0"/>
+ <Second value="3331542" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="531223" type="0"/>
+ <Second value="3917194" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="862149" type="0"/>
+ <Second value="3451286" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1193075" type="0"/>
+ <Second value="2985378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1774372" type="0"/>
+ <Second value="773399" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2690949" type="0"/>
+ <Second value="250885" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3607526" type="0"/>
+ <Second value="-271629" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4944292" type="0"/>
+ <Second value="159444" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6361612" type="0"/>
+ <Second value="316200" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="3598" positionY="5715" sizeX="4929" sizeY="1273" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangular Callout 19" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="msTransGradient 1">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="cccccc" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="fff88d" endColor="ffd560" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4930.000000" column2="0.000000" column3="3598.000000"/>
+ <Line2 column1="0.000000" column2="1274.000000" column3="5715.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="-19361" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="567694" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="43" type="1"/>
+ <Second value="44" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21" type="1"/>
+ <Second value="29" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="36" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45" type="1"/>
+ <Second value="46" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="23" type="1"/>
+ <Second value="31" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="37" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="47" type="1"/>
+ <Second value="48" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="25" type="1"/>
+ <Second value="33" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="1"/>
+ <Second value="50" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19" type="1"/>
+ <Second value="27" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10689" positionY="6125" sizeX="4131" sizeY="1273" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangular Callout 20" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="msTransGradient 2">
+ <FillTransparenceGradient style="LINEAR" startColor="cccccc" endColor="000000" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="fff88d" endColor="fff88d" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4132.000000" column2="0.000000" column3="10689.000000"/>
+ <Line2 column1="0.000000" column2="1274.000000" column3="6125.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="-21713" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="-165440" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="43" type="1"/>
+ <Second value="44" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21" type="1"/>
+ <Second value="29" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="36" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45" type="1"/>
+ <Second value="46" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="23" type="1"/>
+ <Second value="31" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="37" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="47" type="1"/>
+ <Second value="48" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="25" type="1"/>
+ <Second value="33" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="1"/>
+ <Second value="50" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19" type="1"/>
+ <Second value="27" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15910" positionY="6125" sizeX="4978" sizeY="2671" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangular Callout 21" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="msTransGradient 3">
+ <FillTransparenceGradient style="LINEAR" startColor="cccccc" endColor="000000" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="fff88d" endColor="fff88d" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4979.000000" column2="0.000000" column3="15910.000000"/>
+ <Line2 column1="0.000000" column2="2672.000000" column3="6125.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="-22292" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="-100356" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="43" type="1"/>
+ <Second value="44" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21" type="1"/>
+ <Second value="29" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="36" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45" type="1"/>
+ <Second value="46" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="23" type="1"/>
+ <Second value="31" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="37" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="47" type="1"/>
+ <Second value="48" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="25" type="1"/>
+ <Second value="33" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="1"/>
+ <Second value="50" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19" type="1"/>
+ <Second value="27" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n819614_0.xml b/sd/qa/unit/data/xml/n819614_0.xml
new file mode 100644
index 000000000..e28d86fb5
--- /dev/null
+++ b/sd/qa/unit/data/xml/n819614_0.xml
@@ -0,0 +1,6947 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1270" positionY="763" sizeX="21166" sizeY="1564" type="com.sun.star.presentation.TitleTextShape" name="Title 1" text="Test" fontHeight="44.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="AUTOFIT" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="254" textRightDistance="254" textUpperDistance="127" textLowerDistance="127" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="3181" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="21167.000000" column2="0.000000" column3="1270.000000"/>
+ <Line2 column1="0.000000" column2="1565.000000" column3="763.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="0" positionY="2328" sizeX="25399" sizeY="16509" type="com.sun.star.drawing.GroupShape" name="Content Placeholder 4">
+ <XShapes>
+ <XShape positionX="0" positionY="2328" sizeX="25399" sizeY="16509" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="25400.000000" column2="0.000000" column3="0.000000"/>
+ <Line2 column1="0.000000" column2="16510.000000" column3="2328.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10751" positionY="3496" sizeX="1563" sizeY="253" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1564.000000" column2="0.000000" column3="10751.000000"/>
+ <Line2 column1="0.000000" column2="254.000000" column3="3496.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="563107" type="0"/>
+ <Second value="45720" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="563107" type="0"/>
+ <Second value="121221" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="121221" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="563107" height="91440"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22386" positionY="5702" sizeX="363" sizeY="2071" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="364.000000" column2="0.000000" column3="22386.000000"/>
+ <Line2 column1="0.000000" column2="2072.000000" column3="5702.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="745970" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="131086" type="0"/>
+ <Second value="745970" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="131086" height="745970"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22386" positionY="5702" sizeX="363" sizeY="810" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="364.000000" column2="0.000000" column3="22386.000000"/>
+ <Line2 column1="0.000000" column2="811.000000" column3="5702.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="291846" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="131086" type="0"/>
+ <Second value="291846" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="131086" height="291846"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12315" positionY="3623" sizeX="11167" sizeY="833" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="11168.000000" column2="0.000000" column3="12315.000000"/>
+ <Line2 column1="0.000000" column2="834.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="273703" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4020393" type="0"/>
+ <Second value="273703" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4020393" type="0"/>
+ <Second value="300220" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="4020393" height="300220"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18514" positionY="5771" sizeX="457" sizeY="4508" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="458.000000" column2="0.000000" column3="18514.000000"/>
+ <Line2 column1="0.000000" column2="4509.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1623395" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="165038" type="0"/>
+ <Second value="1623395" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="165038" height="1623395"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18514" positionY="5771" sizeX="457" sizeY="3164" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="458.000000" column2="0.000000" column3="18514.000000"/>
+ <Line2 column1="0.000000" column2="3165.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1139459" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="165040" type="0"/>
+ <Second value="1139459" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="165040" height="1139459"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18514" positionY="5771" sizeX="362" sizeY="7482" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="363.000000" column2="0.000000" column3="18514.000000"/>
+ <Line2 column1="0.000000" column2="7483.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2693873" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="130616" type="0"/>
+ <Second value="2693873" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="130616" height="2693873"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18514" positionY="5771" sizeX="457" sizeY="5902" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="458.000000" column2="0.000000" column3="18514.000000"/>
+ <Line2 column1="0.000000" column2="5903.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2125235" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="165038" type="0"/>
+ <Second value="2125235" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="165038" height="2125235"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="19023" positionY="7078" sizeX="253" sizeY="629" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="254.000000" column2="0.000000" column3="19023.000000"/>
+ <Line2 column1="0.000000" column2="630.000000" column3="7078.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45720" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45720" type="0"/>
+ <Second value="226704" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="100129" type="0"/>
+ <Second value="226704" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="91440" height="226704"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18514" positionY="5771" sizeX="361" sizeY="740" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="362.000000" column2="0.000000" column3="18514.000000"/>
+ <Line2 column1="0.000000" column2="741.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="266850" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="130264" type="0"/>
+ <Second value="266850" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="130264" height="266850"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12315" positionY="3623" sizeX="7295" sizeY="902" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="7296.000000" column2="0.000000" column3="12315.000000"/>
+ <Line2 column1="0.000000" column2="903.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2626458" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2626458" type="0"/>
+ <Second value="325065" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="2626458" height="325065"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15231" positionY="5771" sizeX="411" sizeY="3271" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="15231.000000"/>
+ <Line2 column1="0.000000" column2="3272.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1177815" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="1177815" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="1177815"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15231" positionY="5771" sizeX="411" sizeY="1991" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="15231.000000"/>
+ <Line2 column1="0.000000" column2="1992.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="717254" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="717254" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="717254"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15231" positionY="5771" sizeX="411" sizeY="712" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="15231.000000"/>
+ <Line2 column1="0.000000" column2="713.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="256693"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12315" positionY="3623" sizeX="4012" sizeY="902" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4013.000000" column2="0.000000" column3="12315.000000"/>
+ <Line2 column1="0.000000" column2="903.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1444590" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1444590" type="0"/>
+ <Second value="325065" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="1444590" height="325065"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12289" positionY="13817" sizeX="337" sizeY="1988" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="338.000000" column2="0.000000" column3="12289.000000"/>
+ <Line2 column1="0.000000" column2="1989.000000" column3="13817.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="715909" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121763" type="0"/>
+ <Second value="715909" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121763" height="715909"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12289" positionY="13817" sizeX="337" sizeY="736" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="338.000000" column2="0.000000" column3="12289.000000"/>
+ <Line2 column1="0.000000" column2="737.000000" column3="13817.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="265474" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121763" type="0"/>
+ <Second value="265474" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121763" height="265474"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11527" positionY="5771" sizeX="463" sizeY="7376" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="464.000000" column2="0.000000" column3="11527.000000"/>
+ <Line2 column1="0.000000" column2="7377.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2655568" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="167040" type="0"/>
+ <Second value="2655568" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="167040" height="2655568"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11527" positionY="5771" sizeX="463" sizeY="5850" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="464.000000" column2="0.000000" column3="11527.000000"/>
+ <Line2 column1="0.000000" column2="5851.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2106248" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="166927" type="0"/>
+ <Second value="2106248" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="166927" height="2106248"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11527" positionY="5771" sizeX="458" sizeY="12372" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="459.000000" column2="0.000000" column3="11527.000000"/>
+ <Line2 column1="0.000000" column2="12373.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4454427" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="165333" type="0"/>
+ <Second value="4454427" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="165333" height="4454427"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11527" positionY="5771" sizeX="462" sizeY="11249" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="463.000000" column2="0.000000" column3="11527.000000"/>
+ <Line2 column1="0.000000" column2="11250.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4050135" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="166687" type="0"/>
+ <Second value="4050135" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="166687" height="4050135"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12091" positionY="7232" sizeX="397" sizeY="3176" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="398.000000" column2="0.000000" column3="12091.000000"/>
+ <Line2 column1="0.000000" column2="3177.000000" column3="7232.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1143610" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="143281" type="0"/>
+ <Second value="1143610" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="143281" height="1143610"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12091" positionY="7232" sizeX="397" sizeY="1948" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="398.000000" column2="0.000000" column3="12091.000000"/>
+ <Line2 column1="0.000000" column2="1949.000000" column3="7232.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="701811" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="143281" type="0"/>
+ <Second value="701811" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="143281" height="701811"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12091" positionY="7232" sizeX="389" sizeY="727" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="390.000000" column2="0.000000" column3="12091.000000"/>
+ <Line2 column1="0.000000" column2="728.000000" column3="7232.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="262128" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="140344" type="0"/>
+ <Second value="262128" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="140344" height="262128"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11527" positionY="5771" sizeX="289" sizeY="776" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="290.000000" column2="0.000000" column3="11527.000000"/>
+ <Line2 column1="0.000000" column2="777.000000" column3="5771.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="279885" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="104258" type="0"/>
+ <Second value="279885" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="104258" height="279885"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12315" positionY="3623" sizeX="309" sizeY="902" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="310.000000" column2="0.000000" column3="12315.000000"/>
+ <Line2 column1="0.000000" column2="903.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="111428" type="0"/>
+ <Second value="298548" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="111428" type="0"/>
+ <Second value="325065" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="111428" height="325065"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="438" sizeY="7084" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="439.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="7085.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2550748" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="157913" type="0"/>
+ <Second value="2550748" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="157913" height="2550748"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="411" sizeY="5829" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="5830.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2098937" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="2098937" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="2098937"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="411" sizeY="4550" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="4551.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1638376" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="1638376" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="1638376"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="411" sizeY="3271" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="3272.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1177815" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="1177815" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="1177815"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="411" sizeY="1991" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="1992.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="717254" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="717254" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="717254"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8247" positionY="5774" sizeX="411" sizeY="712" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="8247.000000"/>
+ <Line2 column1="0.000000" column2="713.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="256693"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="9345" positionY="3623" sizeX="2970" sizeY="905" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2971.000000" column2="0.000000" column3="9345.000000"/>
+ <Line2 column1="0.000000" column2="906.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1069491" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1069491" type="0"/>
+ <Second value="299631" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="299631" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="326148" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="1069491" height="326148"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="11223" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="11224.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4040595" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126691" type="0"/>
+ <Second value="4040595" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126691" height="4040595"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="9915" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="9916.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3569738" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126691" type="0"/>
+ <Second value="3569738" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126691" height="3569738"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="8607" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="8608.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3098881" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126689" type="0"/>
+ <Second value="3098881" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126689" height="3098881"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5093" positionY="12333" sizeX="253" sizeY="780" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="254.000000" column2="0.000000" column3="5093.000000"/>
+ <Line2 column1="0.000000" column2="781.000000" column3="12333.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45720" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45720" type="0"/>
+ <Second value="281292" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103887" type="0"/>
+ <Second value="281292" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="91440" height="281292"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="5991" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="5992.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2157166" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126691" type="0"/>
+ <Second value="2157166" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126691" height="2157166"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="4683" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="4684.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1686309" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126689" type="0"/>
+ <Second value="1686309" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126689" height="1686309"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="3375" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="3376.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1215450" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126691" type="0"/>
+ <Second value="1215450" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126691" height="1215450"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="351" sizeY="2067" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="352.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="2068.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="744593" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="126691" type="0"/>
+ <Second value="744593" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="126691" height="744593"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="290" sizeY="12489" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="291.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="12490.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4496230" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="104725" type="0"/>
+ <Second value="4496230" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="104725" height="4496230"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4594" positionY="5774" sizeX="411" sizeY="712" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="412.000000" column2="0.000000" column3="4594.000000"/>
+ <Line2 column1="0.000000" column2="713.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="148175" type="0"/>
+ <Second value="256693" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="148175" height="256693"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5691" positionY="3623" sizeX="6623" sizeY="905" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="6624.000000" column2="0.000000" column3="5691.000000"/>
+ <Line2 column1="0.000000" column2="906.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2384666" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2384666" type="0"/>
+ <Second value="299633" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="299633" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="326150" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="2384666" height="326150"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="273" sizeY="10862" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="274.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="10863.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3910684" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="98745" type="0"/>
+ <Second value="3910684" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="98745" height="3910684"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1067" positionY="13615" sizeX="301" sizeY="1816" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="302.000000" column2="0.000000" column3="1067.000000"/>
+ <Line2 column1="0.000000" column2="1817.000000" column3="13615.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="654273" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="108799" type="0"/>
+ <Second value="654273" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="108799" height="654273"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1067" positionY="13615" sizeX="362" sizeY="656" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="363.000000" column2="0.000000" column3="1067.000000"/>
+ <Line2 column1="0.000000" column2="657.000000" column3="13615.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="236424" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="130697" type="0"/>
+ <Second value="236424" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="130697" height="236424"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="335" sizeY="7274" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="336.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="7275.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2618886" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121032" type="0"/>
+ <Second value="2618886" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121032" height="2618886"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="283" sizeY="6011" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="284.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="6012.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2164416" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="102407" type="0"/>
+ <Second value="2164416" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="102407" height="2164416"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="334" sizeY="4730" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="335.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="4731.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1703047" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="120545" type="0"/>
+ <Second value="1703047" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="120545" height="1703047"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="335" sizeY="3474" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="336.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="3475.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1250852" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121032" type="0"/>
+ <Second value="1250852" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121032" height="1250852"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="335" sizeY="2048" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="336.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="2049.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="737655" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121032" type="0"/>
+ <Second value="737655" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121032" height="737655"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="336" sizeY="12186" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="337.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="12187.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4387295" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121476" type="0"/>
+ <Second value="4387295" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121476" height="4387295"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="456" positionY="5774" sizeX="335" sizeY="709" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="336.000000" column2="0.000000" column3="456.000000"/>
+ <Line2 column1="0.000000" column2="710.000000" column3="5774.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="255779" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="121032" type="0"/>
+ <Second value="255779" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="121032" height="255779"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1554" positionY="3623" sizeX="10761" sizeY="905" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="10762.000000" column2="0.000000" column3="1554.000000"/>
+ <Line2 column1="0.000000" column2="906.000000" column3="3623.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3874249" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3874249" type="0"/>
+ <Second value="299633" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="299633" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="326150" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="3874249" height="326150"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11049" positionY="2544" sizeX="2531" sizeY="1078" type="com.sun.star.drawing.CustomShape" text="Test1&#10;" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2532.000000" column2="0.000000" column3="11049.000000"/>
+ <Line2 column1="0.000000" column2="1079.000000" column3="2544.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="182" positionY="4529" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="A " fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="182.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4529.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="792" positionY="5919" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="A1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="792.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="5919.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="794" positionY="17350" sizeX="2761" sizeY="1222" type="com.sun.star.drawing.CustomShape" text="A2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="ddd9c3" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2762.000000" column2="0.000000" column3="794.000000"/>
+ <Line2 column1="0.000000" column2="1223.000000" column3="17350.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="792" positionY="7189" sizeX="2728" sizeY="1268" type="com.sun.star.drawing.CustomShape" text="A3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2729.000000" column2="0.000000" column3="792.000000"/>
+ <Line2 column1="0.000000" column2="1269.000000" column3="7189.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="792" positionY="8671" sizeX="2653" sizeY="1156" type="com.sun.star.drawing.CustomShape" text="A4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2654.000000" column2="0.000000" column3="792.000000"/>
+ <Line2 column1="0.000000" column2="1157.000000" column3="8671.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="791" positionY="9939" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="A5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="791.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="9939.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="741" positionY="11210" sizeX="2850" sizeY="1151" type="com.sun.star.drawing.CustomShape" text="A6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2851.000000" column2="0.000000" column3="741.000000"/>
+ <Line2 column1="0.000000" column2="1152.000000" column3="11210.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="792" positionY="12483" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="A7" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="792.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="12483.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1430" positionY="13753" sizeX="2683" sizeY="1036" type="com.sun.star.drawing.CustomShape" text="A7i" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2684.000000" column2="0.000000" column3="1430.000000"/>
+ <Line2 column1="0.000000" column2="1037.000000" column3="13753.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1369" positionY="14901" sizeX="2694" sizeY="1062" type="com.sun.star.drawing.CustomShape" text="A7ii" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2695.000000" column2="0.000000" column3="1369.000000"/>
+ <Line2 column1="0.000000" column2="1063.000000" column3="14901.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="730" positionY="16071" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="A8" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="730.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="16071.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4319" positionY="4529" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="B" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4319.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4529.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5005" positionY="5921" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="5005.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="5921.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4885" positionY="17689" sizeX="2922" sizeY="1148" type="com.sun.star.drawing.CustomShape" text="B2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2923.000000" column2="0.000000" column3="4885.000000"/>
+ <Line2 column1="0.000000" column2="1149.000000" column3="17689.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="7277" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="7277.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="8585" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="8585.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="9893" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="9893.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="11200" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="11200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5382" positionY="12508" sizeX="2663" sizeY="1210" type="com.sun.star.drawing.CustomShape" text="B6i" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2664.000000" column2="0.000000" column3="5382.000000"/>
+ <Line2 column1="0.000000" column2="1211.000000" column3="12508.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="13816" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B7" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="13816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="15124" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B8" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="15124.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="4946" positionY="16432" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="B9" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="4946.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="16432.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="7973" positionY="4529" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="C" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="7973.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4529.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8659" positionY="5921" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="C1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="8659.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="5921.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8659" positionY="7201" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="C2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="8659.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="7201.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8659" positionY="8480" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="C3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="8659.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="8480.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8659" positionY="9759" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="C4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="8659.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="9759.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8659" positionY="11039" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="C5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="8659.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="11039.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8686" positionY="12309" sizeX="2663" sizeY="1100" type="com.sun.star.drawing.CustomShape" text="C6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2664.000000" column2="0.000000" column3="8686.000000"/>
+ <Line2 column1="0.000000" column2="1101.000000" column3="12309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11253" positionY="4526" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="D" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="11253.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4526.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11817" positionY="5866" sizeX="2743" sizeY="1365" type="com.sun.star.drawing.CustomShape" text="D1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="11817.000000"/>
+ <Line2 column1="0.000000" column2="1366.000000" column3="5866.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12481" positionY="7416" sizeX="2477" sizeY="1087" type="com.sun.star.drawing.CustomShape" text="D1i" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2478.000000" column2="0.000000" column3="12481.000000"/>
+ <Line2 column1="0.000000" column2="1088.000000" column3="7416.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12489" positionY="8677" sizeX="2466" sizeY="1007" type="com.sun.star.drawing.CustomShape" text="D1ii" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2467.000000" column2="0.000000" column3="12489.000000"/>
+ <Line2 column1="0.000000" column2="1008.000000" column3="8677.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12489" positionY="9946" sizeX="2398" sizeY="924" type="com.sun.star.drawing.CustomShape" text="D1iii" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="ddd9c3" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2399.000000" column2="0.000000" column3="12489.000000"/>
+ <Line2 column1="0.000000" column2="925.000000" column3="9946.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11990" positionY="16505" sizeX="2743" sizeY="1033" type="com.sun.star.drawing.CustomShape" text="D2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="11990.000000"/>
+ <Line2 column1="0.000000" column2="1034.000000" column3="16505.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11987" positionY="17689" sizeX="2688" sizeY="911" type="com.sun.star.drawing.CustomShape" text="D3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="ddd9c3" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2689.000000" column2="0.000000" column3="11987.000000"/>
+ <Line2 column1="0.000000" column2="912.000000" column3="17689.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11991" positionY="10999" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="D4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="11991.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="10999.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11991" positionY="12479" sizeX="2973" sizeY="1337" type="com.sun.star.drawing.CustomShape" text="D5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2974.000000" column2="0.000000" column3="11991.000000"/>
+ <Line2 column1="0.000000" column2="1338.000000" column3="12479.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12627" positionY="13962" sizeX="2444" sizeY="1183" type="com.sun.star.drawing.CustomShape" text="D5i" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2445.000000" column2="0.000000" column3="12627.000000"/>
+ <Line2 column1="0.000000" column2="1184.000000" column3="13962.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12627" positionY="15233" sizeX="2444" sizeY="1143" type="com.sun.star.drawing.CustomShape" text="D5ii" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2445.000000" column2="0.000000" column3="12627.000000"/>
+ <Line2 column1="0.000000" column2="1144.000000" column3="15233.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14956" positionY="4526" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="E" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="14956.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4526.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15642" positionY="5918" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="E1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="15642.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="5918.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15642" positionY="7198" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="E2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="15642.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="7198.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15642" positionY="8477" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="E3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="15642.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="8477.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18239" positionY="4526" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="F" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="18239.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4526.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18875" positionY="5947" sizeX="2740" sizeY="1130" type="com.sun.star.drawing.CustomShape" text="F1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2741.000000" column2="0.000000" column3="18875.000000"/>
+ <Line2 column1="0.000000" column2="1131.000000" column3="5947.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="19301" positionY="7223" sizeX="2636" sizeY="968" type="com.sun.star.drawing.CustomShape" text="F1i" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2637.000000" column2="0.000000" column3="19301.000000"/>
+ <Line2 column1="0.000000" column2="969.000000" column3="7223.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18972" positionY="11059" sizeX="2629" sizeY="1230" type="com.sun.star.drawing.CustomShape" text="F2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2630.000000" column2="0.000000" column3="18972.000000"/>
+ <Line2 column1="0.000000" column2="1231.000000" column3="11059.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18876" positionY="12543" sizeX="2813" sizeY="1421" type="com.sun.star.drawing.CustomShape" text="F3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="ddd9c3" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2814.000000" column2="0.000000" column3="18876.000000"/>
+ <Line2 column1="0.000000" column2="1422.000000" column3="12543.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18972" positionY="8371" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="F4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="18972.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="8371.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18972" positionY="9715" sizeX="2743" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="F5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="18972.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="9715.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22111" positionY="4457" sizeX="2743" sizeY="1244" type="com.sun.star.drawing.CustomShape" text="G" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2744.000000" column2="0.000000" column3="22111.000000"/>
+ <Line2 column1="0.000000" column2="1245.000000" column3="4457.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22750" positionY="5947" sizeX="2557" sizeY="1131" type="com.sun.star.drawing.CustomShape" text="G1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2558.000000" column2="0.000000" column3="22750.000000"/>
+ <Line2 column1="0.000000" column2="1132.000000" column3="5947.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22750" positionY="7224" sizeX="2421" sizeY="1100" type="com.sun.star.drawing.CustomShape" text="G2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffffff" endColor="ffffff" angle="1800" border="35" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2422.000000" column2="0.000000" column3="22750.000000"/>
+ <Line2 column1="0.000000" column2="1101.000000" column3="7224.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8389" positionY="3341" sizeX="2361" sizeY="982" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="12" textRightDistance="12" textUpperDistance="12" textLowerDistance="12" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2362.000000" column2="0.000000" column3="8389.000000"/>
+ <Line2 column1="0.000000" column2="983.000000" column3="3341.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ </XShapes>
+ <Transformation>
+ <Line1 column1="25400.000000" column2="0.000000" column3="0.000000"/>
+ <Line2 column1="0.000000" column2="16510.000000" column3="2328.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n820786_0.xml b/sd/qa/unit/data/xml/n820786_0.xml
new file mode 100644
index 000000000..ebf229faf
--- /dev/null
+++ b/sd/qa/unit/data/xml/n820786_0.xml
@@ -0,0 +1,3316 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="23154" positionY="6036" sizeX="1370" sizeY="3655" type="com.sun.star.drawing.CustomShape" name="Rectangle 20" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffcc" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="ff0000" distance="50" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="0.000000" column2="-3656.000000" column3="23154.000000"/>
+ <Line2 column1="1371.000000" column2="0.000000" column3="6036.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="20904" positionY="11701" sizeX="846" sizeY="1057" type="com.sun.star.drawing.GroupShape" name="Group 43">
+ <XShapes>
+ <XShape positionX="21750" positionY="12758" sizeX="846" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 44" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="175" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="-847.000000" column2="-0.000000" column3="21750.000000"/>
+ <Line2 column1="0.000000" column2="-1058.000000" column3="12758.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-ellipse" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="21750" positionY="12758" sizeX="211" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 45" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="175" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="-212.000000" column2="-0.000000" column3="21750.000000"/>
+ <Line2 column1="0.000000" column2="-1058.000000" column3="12758.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-ellipse" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ </XShapes>
+ <Transformation>
+ <Line1 column1="847.000000" column2="0.000000" column3="20904.000000"/>
+ <Line2 column1="0.000000" column2="1058.000000" column3="11701.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="6985" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 1" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="250" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 6" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="200" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 7" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="150" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 8" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="200" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 12" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="175" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="2309" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 13" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="150" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 16" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="125" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 17" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="150" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 18" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="125" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 19" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="100" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 20" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="75" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="4145" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 21" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="50" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 24" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="1350"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 25" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 26" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="1350"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 27" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 28" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="100" angle="1350"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="5981" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 29" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="100" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 32" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 33" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 34" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 35" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="50" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 36" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="25" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="7816" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 37" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="25" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 40" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="150" angle="1350"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 41" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="150" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 42" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="150" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 43" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="150" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 44" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="200" angle="600"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="9652" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 45" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="100" angle="600"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 48" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="75" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 49" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="100" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 50" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="300" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 51" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="300" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 52" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="150" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="11488" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 53" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="200" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 56" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="400" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 57" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="400" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 58" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="300" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 59" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="200" angle="1350"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 60" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="75" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="13323" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 61" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="000000" distance="100" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6985" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 64" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="50" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="6985.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="8890" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 65" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="100" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="8890.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10795" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 66" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="50" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="10795.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12700" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 67" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="100" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="12700.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14510" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 68" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="100" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="14510.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16415" positionY="15159" sizeX="1481" sizeY="1481" type="com.sun.star.drawing.CustomShape" name="Rectangle 69" fontHeight="24.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="000000" distance="100" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1482.000000" column2="0.000000" column3="16415.000000"/>
+ <Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/n902652_0.xml b/sd/qa/unit/data/xml/n902652_0.xml
new file mode 100644
index 000000000..b5fd7740e
--- /dev/null
+++ b/sd/qa/unit/data/xml/n902652_0.xml
@@ -0,0 +1,309 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="899" positionY="9525" sizeX="9000" sizeY="4800" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangle 3" text=" LibreOffice" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="3000" textRightDistance="500" textUpperDistance="300" textLowerDistance="3000" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="9bbb59" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="0.000000" column2="4801.000000" column3="899.000000"/>
+ <Line2 column1="-9001.000000" column2="0.000000" column3="9525.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15800" positionY="7848" sizeX="9000" sizeY="4800" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangle 4" text=" LibreOffice" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="1000" textRightDistance="0" textUpperDistance="3000" textLowerDistance="300" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="9bbb59" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="-9001.000000" column2="-0.000000" column3="15800.000000"/>
+ <Line2 column1="0.000000" column2="-4801.000000" column3="7848.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="-90" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16224" positionY="14365" sizeX="9000" sizeY="4800" type="com.sun.star.drawing.CustomShape" name="Rounded Rectangle 5" text=" LibreOffice" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="0" textRightDistance="1000" textUpperDistance="900" textLowerDistance="3000" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="9bbb59" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="-9001.000000" column2="-0.000000" column3="16224.000000"/>
+ <Line2 column1="0.000000" column2="-4801.000000" column3="14365.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="16667" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="17" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextPreRotateAngle" value="-270" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page0.xml b/sd/qa/unit/data/xml/shapes-test_page0.xml
new file mode 100644
index 000000000..60afef280
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page0.xml
@@ -0,0 +1,1666 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1000" positionY="1200" sizeX="3000" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3001.000000" column2="0.000000" column3="1000.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="1200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="rectangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6200" positionY="1000" sizeX="3600" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3601.000000" column2="0.000000" column3="6200.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="1000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="round-rectangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="3600" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11400" positionY="1400" sizeX="2200" sizeY="2200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2201.000000" column2="0.000000" column3="11400.000000"/>
+ <Line2 column1="0.000000" column2="2201.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="rectangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15200" positionY="1400" sizeX="2400" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="15200.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="round-rectangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="3600" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18600" positionY="1200" sizeX="2800" sizeY="2800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2801.000000" column2="0.000000" column3="18600.000000"/>
+ <Line2 column1="0.000000" column2="2801.000000" column3="1200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ellipse" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="22800" positionY="2200" sizeX="3600" sizeY="1200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3601.000000" column2="0.000000" column3="22800.000000"/>
+ <Line2 column1="0.000000" column2="1201.000000" column3="2200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ellipse" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1400" positionY="4600" sizeX="3200" sizeY="3200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="1400.000000"/>
+ <Line2 column1="0.000000" column2="3201.000000" column3="4600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="Type" value="mso-spt100" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="-90" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="0" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePointType" value="1" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="13" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5000" positionY="5200" sizeX="4400" sizeY="2000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4401.000000" column2="0.000000" column3="5000.000000"/>
+ <Line2 column1="0.000000" column2="2001.000000" column3="5200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="isosceles-triangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="10800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10400" positionY="5200" sizeX="1400" sizeY="2000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1401.000000" column2="0.000000" column3="10400.000000"/>
+ <Line2 column1="0.000000" column2="2001.000000" column3="5200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="right-triangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="13400" positionY="5000" sizeX="2600" sizeY="2000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="13400.000000"/>
+ <Line2 column1="0.000000" column2="2001.000000" column3="5000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="trapezoid" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="17400" positionY="5200" sizeX="1400" sizeY="2800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1401.000000" column2="0.000000" column3="17400.000000"/>
+ <Line2 column1="0.000000" column2="2801.000000" column3="5200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="diamond" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="21000" positionY="5600" sizeX="3200" sizeY="2000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="21000.000000"/>
+ <Line2 column1="0.000000" column2="2001.000000" column3="5600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="parallelogram" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1600" positionY="9400" sizeX="2600" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="1600.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="9400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="pentagon" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="8260" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4230" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17370" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="8260" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5600" positionY="9400" sizeX="3400" sizeY="2800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3401.000000" column2="0.000000" column3="5600.000000"/>
+ <Line2 column1="0.000000" column2="2801.000000" column3="9400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="hexagon" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10600" positionY="9200" sizeX="3000" sizeY="3200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3001.000000" column2="0.000000" column3="10600.000000"/>
+ <Line2 column1="0.000000" column2="3201.000000" column3="9200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="octagon" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="7"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15800" positionY="9400" sizeX="2600" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="15800.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="9400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="cross" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="12"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="19800" positionY="9400" sizeX="2600" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="19800.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="9400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ring" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="23800" positionY="9200" sizeX="2400" sizeY="5200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="23800.000000"/>
+ <Line2 column1="0.000000" column2="5201.000000" column3="9200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="block-arc" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="180" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="11" count="1"/>
+ <EnhancedCustomShapeSegment command="12" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1600" positionY="14600" sizeX="2200" sizeY="3800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2201.000000" column2="0.000000" column3="1600.000000"/>
+ <Line2 column1="0.000000" column2="3801.000000" column3="14600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="88" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="can" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5800" positionY="14800" sizeX="3000" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3001.000000" column2="0.000000" column3="5800.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="14800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="cube" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10400" positionY="15200" sizeX="2200" sizeY="3600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2201.000000" column2="0.000000" column3="10400.000000"/>
+ <Line2 column1="0.000000" column2="3601.000000" column3="15200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="paper" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="18900" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15400" positionY="15200" sizeX="4800" sizeY="3200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4801.000000" column2="0.000000" column3="15400.000000"/>
+ <Line2 column1="0.000000" column2="3201.000000" column3="15200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="frame" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Extrusion">
+ <Extrusion>
+ <PropertyValue name="Origin" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewPoint" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Skew" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ProjectionMode" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Depth" handle="0" propertyState="DIRECT_VALUE"/>
+ </Extrusion>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="GluePointType" value="1" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page1.xml b/sd/qa/unit/data/xml/shapes-test_page1.xml
new file mode 100644
index 000000000..b5d97b558
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page1.xml
@@ -0,0 +1,2425 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1800" positionY="1600" sizeX="1800" sizeY="1600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1801.000000" column2="0.000000" column3="1800.000000"/>
+ <Line2 column1="0.000000" column2="1601.000000" column3="1600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="bang" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11464" type="0"/>
+ <Second value="4340" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9722" type="0"/>
+ <Second value="1887" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8548" type="0"/>
+ <Second value="6383" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4503" type="0"/>
+ <Second value="3626" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5373" type="0"/>
+ <Second value="7816" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1174" type="0"/>
+ <Second value="8270" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3934" type="0"/>
+ <Second value="11592" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="12875" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3329" type="0"/>
+ <Second value="15372" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1283" type="0"/>
+ <Second value="17824" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4804" type="0"/>
+ <Second value="18239" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4918" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7525" type="0"/>
+ <Second value="18125" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8698" type="0"/>
+ <Second value="19712" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9871" type="0"/>
+ <Second value="17371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11614" type="0"/>
+ <Second value="18844" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12178" type="0"/>
+ <Second value="15937" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14943" type="0"/>
+ <Second value="17371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14640" type="0"/>
+ <Second value="14348" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18878" type="0"/>
+ <Second value="15632" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16382" type="0"/>
+ <Second value="12311" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18270" type="0"/>
+ <Second value="11292" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16986" type="0"/>
+ <Second value="9404" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="6646" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16382" type="0"/>
+ <Second value="6533" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18005" type="0"/>
+ <Second value="3172" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14524" type="0"/>
+ <Second value="5778" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14789" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11464" type="0"/>
+ <Second value="4340" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="28"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6000" positionY="800" sizeX="2800" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2801.000000" column2="0.000000" column3="6000.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="star4" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="8100" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="8"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11000" positionY="1000" sizeX="3200" sizeY="3200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="11000.000000"/>
+ <Line2 column1="0.000000" column2="3201.000000" column3="1000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="star5" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10797" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8278" type="0"/>
+ <Second value="8256" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="8256" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6722" type="0"/>
+ <Second value="13405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4198" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10797" type="0"/>
+ <Second value="16580" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17401" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14878" type="0"/>
+ <Second value="13405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="8256" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13321" type="0"/>
+ <Second value="8256" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10797" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="10"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16200" positionY="1000" sizeX="1400" sizeY="3400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1401.000000" column2="0.000000" column3="16200.000000"/>
+ <Line2 column1="0.000000" column2="3401.000000" column3="1000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="780" height="907"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="390" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="492" type="0"/>
+ <Second value="276" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="780" type="0"/>
+ <Second value="228" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="594" type="0"/>
+ <Second value="457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="780" type="0"/>
+ <Second value="679" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="492" type="0"/>
+ <Second value="631" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="390" type="0"/>
+ <Second value="907" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="288" type="0"/>
+ <Second value="631" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="679" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="186" type="0"/>
+ <Second value="457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="228" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="288" type="0"/>
+ <Second value="276" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="390" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="12"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="19400" positionY="1200" sizeX="3600" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3601.000000" column2="0.000000" column3="19400.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="1200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="star8" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2500" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="23" type="1"/>
+ <Second value="24" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="29" type="1"/>
+ <Second value="30" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="36" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="41" type="1"/>
+ <Second value="42" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="47" type="1"/>
+ <Second value="48" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="53" type="1"/>
+ <Second value="54" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="59" type="1"/>
+ <Second value="60" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="65" type="1"/>
+ <Second value="66" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="71" type="1"/>
+ <Second value="72" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="77" type="1"/>
+ <Second value="78" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="83" type="1"/>
+ <Second value="84" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="89" type="1"/>
+ <Second value="90" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="95" type="1"/>
+ <Second value="96" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="16"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="24000" positionY="1400" sizeX="3200" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="24000.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="858" height="864"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="426" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="480" type="0"/>
+ <Second value="246" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="642" type="0"/>
+ <Second value="60" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="564" type="0"/>
+ <Second value="294" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="804" type="0"/>
+ <Second value="216" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="618" type="0"/>
+ <Second value="384" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="858" type="0"/>
+ <Second value="432" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="618" type="0"/>
+ <Second value="480" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="804" type="0"/>
+ <Second value="648" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="564" type="0"/>
+ <Second value="570" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="642" type="0"/>
+ <Second value="804" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="480" type="0"/>
+ <Second value="618" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="426" type="0"/>
+ <Second value="864" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="378" type="0"/>
+ <Second value="618" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="216" type="0"/>
+ <Second value="804" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="294" type="0"/>
+ <Second value="570" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="54" type="0"/>
+ <Second value="648" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="240" type="0"/>
+ <Second value="480" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="432" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="240" type="0"/>
+ <Second value="384" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="54" type="0"/>
+ <Second value="216" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="294" type="0"/>
+ <Second value="294" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="216" type="0"/>
+ <Second value="60" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="378" type="0"/>
+ <Second value="246" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="426" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="24"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="800" positionY="4800" sizeX="3400" sizeY="3400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3401.000000" column2="0.000000" column3="800.000000"/>
+ <Line2 column1="0.000000" column2="3401.000000" column3="4800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="star24" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2500" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="14" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19" type="1"/>
+ <Second value="20" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21" type="1"/>
+ <Second value="22" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="23" type="1"/>
+ <Second value="24" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="25" type="1"/>
+ <Second value="26" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="27" type="1"/>
+ <Second value="28" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="29" type="1"/>
+ <Second value="30" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="31" type="1"/>
+ <Second value="32" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="33" type="1"/>
+ <Second value="34" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="1"/>
+ <Second value="36" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="37" type="1"/>
+ <Second value="38" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="39" type="1"/>
+ <Second value="40" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="41" type="1"/>
+ <Second value="42" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="43" type="1"/>
+ <Second value="44" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45" type="1"/>
+ <Second value="46" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="47" type="1"/>
+ <Second value="48" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="1"/>
+ <Second value="50" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="51" type="1"/>
+ <Second value="52" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="53" type="1"/>
+ <Second value="54" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="55" type="1"/>
+ <Second value="56" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="57" type="1"/>
+ <Second value="58" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="59" type="1"/>
+ <Second value="60" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="61" type="1"/>
+ <Second value="62" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="63" type="1"/>
+ <Second value="64" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="65" type="1"/>
+ <Second value="66" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="67" type="1"/>
+ <Second value="68" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="69" type="1"/>
+ <Second value="70" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="71" type="1"/>
+ <Second value="72" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="73" type="1"/>
+ <Second value="74" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="75" type="1"/>
+ <Second value="76" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="77" type="1"/>
+ <Second value="78" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="79" type="1"/>
+ <Second value="80" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="81" type="1"/>
+ <Second value="82" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="83" type="1"/>
+ <Second value="84" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="85" type="1"/>
+ <Second value="86" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="87" type="1"/>
+ <Second value="88" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="89" type="1"/>
+ <Second value="90" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="91" type="1"/>
+ <Second value="92" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="93" type="1"/>
+ <Second value="94" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="95" type="1"/>
+ <Second value="96" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="97" type="1"/>
+ <Second value="98" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="99" type="1"/>
+ <Second value="100" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="48"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5800" positionY="5000" sizeX="5000" sizeY="4000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5001.000000" column2="0.000000" column3="5800.000000"/>
+ <Line2 column1="0.000000" column2="4001.000000" column3="5000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="153" height="132"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="123" type="0"/>
+ <Second value="39" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="116" type="0"/>
+ <Second value="26" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="113" type="0"/>
+ <Second value="13" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="114" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103" type="0"/>
+ <Second value="7" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="90" type="0"/>
+ <Second value="11" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="76" type="0"/>
+ <Second value="11" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="62" type="0"/>
+ <Second value="11" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="0"/>
+ <Second value="7" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="37" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="37" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="37" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="13" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="0"/>
+ <Second value="27" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="28" type="0"/>
+ <Second value="39" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="22" type="0"/>
+ <Second value="51" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="0"/>
+ <Second value="60" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="67" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="67" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="67" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="0"/>
+ <Second value="73" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="22" type="0"/>
+ <Second value="82" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="28" type="0"/>
+ <Second value="93" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="35" type="0"/>
+ <Second value="105" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="119" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="131" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="49" type="0"/>
+ <Second value="125" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="62" type="0"/>
+ <Second value="121" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="76" type="0"/>
+ <Second value="121" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="90" type="0"/>
+ <Second value="121" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103" type="0"/>
+ <Second value="125" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="114" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="114" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="114" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="114" type="0"/>
+ <Second value="132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="113" type="0"/>
+ <Second value="119" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="116" type="0"/>
+ <Second value="106" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="123" type="0"/>
+ <Second value="93" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="130" type="0"/>
+ <Second value="81" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="141" type="0"/>
+ <Second value="72" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="153" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="153" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="153" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="153" type="0"/>
+ <Second value="66" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="141" type="0"/>
+ <Second value="60" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="130" type="0"/>
+ <Second value="51" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="123" type="0"/>
+ <Second value="39" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="19"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12600" positionY="5600" sizeX="4000" sizeY="4400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4001.000000" column2="0.000000" column3="12600.000000"/>
+ <Line2 column1="0.000000" column2="4401.000000" column3="5600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="vertical-scroll" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="11000" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="3"/>
+ <EnhancedCustomShapeSegment command="14" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18600" positionY="6200" sizeX="5600" sizeY="3600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5601.000000" column2="0.000000" column3="18600.000000"/>
+ <Line2 column1="0.000000" column2="3601.000000" column3="6200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="horizontal-scroll" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="11000" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="15" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="15" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="3"/>
+ <EnhancedCustomShapeSegment command="14" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1200" positionY="11000" sizeX="2400" sizeY="4000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="1200.000000"/>
+ <Line2 column1="0.000000" column2="4001.000000" column3="11000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="14810" height="25050"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="NonPrimitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6714" type="0"/>
+ <Second value="22049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5942" type="0"/>
+ <Second value="21405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5839" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6214" type="0"/>
+ <Second value="17249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="17549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="14049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7839" type="0"/>
+ <Second value="14049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8589" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="17549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="17749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="21409" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8214" type="0"/>
+ <Second value="21549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8589" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8214" type="0"/>
+ <Second value="23049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="25049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11314" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9042" type="0"/>
+ <Second value="21405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8939" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9314" type="0"/>
+ <Second value="17249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10314" type="0"/>
+ <Second value="17049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9314" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11189" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11814" type="0"/>
+ <Second value="17049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="17749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="21409" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="22249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14814" type="0"/>
+ <Second value="24549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13314" type="0"/>
+ <Second value="24049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13314" type="0"/>
+ <Second value="24549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="25049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3812" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="4389" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="7366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="10343" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3812" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9766" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="10343" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="7366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="4389" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9766" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14339" type="0"/>
+ <Second value="7122" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14363" type="0"/>
+ <Second value="8236" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12802" type="0"/>
+ <Second value="9487" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12339" type="0"/>
+ <Second value="10501" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11876" type="0"/>
+ <Second value="11515" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12522" type="0"/>
+ <Second value="12368" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11665" type="0"/>
+ <Second value="13081" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10808" type="0"/>
+ <Second value="13794" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9466" type="0"/>
+ <Second value="12917" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8415" type="0"/>
+ <Second value="13181" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7304" type="0"/>
+ <Second value="13459" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6459" type="0"/>
+ <Second value="14938" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5338" type="0"/>
+ <Second value="14707" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4277" type="0"/>
+ <Second value="14488" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4096" type="0"/>
+ <Second value="12885" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3234" type="0"/>
+ <Second value="12227" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2324" type="0"/>
+ <Second value="11533" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="641" type="0"/>
+ <Second value="11794" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="123" type="0"/>
+ <Second value="10774" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-368" type="0"/>
+ <Second value="9807" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="772" type="0"/>
+ <Second value="8666" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="749" type="0"/>
+ <Second value="7582" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="725" type="0"/>
+ <Second value="6438" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-135" type="0"/>
+ <Second value="5541" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="339" type="0"/>
+ <Second value="4500" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="789" type="0"/>
+ <Second value="3513" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1999" type="0"/>
+ <Second value="3437" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2831" type="0"/>
+ <Second value="2744" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3711" type="0"/>
+ <Second value="2011" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3831" type="0"/>
+ <Second value="313" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4942" type="0"/>
+ <Second value="34" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5993" type="0"/>
+ <Second value="-229" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6852" type="0"/>
+ <Second value="1136" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7913" type="0"/>
+ <Second value="1355" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9034" type="0"/>
+ <Second value="1586" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10437" type="0"/>
+ <Second value="621" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11347" type="0"/>
+ <Second value="1315" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12208" type="0"/>
+ <Second value="1973" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11676" type="0"/>
+ <Second value="3496" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12167" type="0"/>
+ <Second value="4462" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12686" type="0"/>
+ <Second value="5483" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14315" type="0"/>
+ <Second value="6008" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14339" type="0"/>
+ <Second value="7122" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6714" type="0"/>
+ <Second value="22049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5942" type="0"/>
+ <Second value="21405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5839" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6214" type="0"/>
+ <Second value="17249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="17549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="14049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7839" type="0"/>
+ <Second value="14049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8589" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="17549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="17749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7714" type="0"/>
+ <Second value="21409" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8214" type="0"/>
+ <Second value="21549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8589" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8214" type="0"/>
+ <Second value="23049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7214" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="25049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11314" type="0"/>
+ <Second value="23549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9042" type="0"/>
+ <Second value="21405" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8939" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9314" type="0"/>
+ <Second value="17249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10314" type="0"/>
+ <Second value="17049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9314" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11189" type="0"/>
+ <Second value="13549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11814" type="0"/>
+ <Second value="17049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="17749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="19749" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10814" type="0"/>
+ <Second value="21409" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="22249" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14814" type="0"/>
+ <Second value="24549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13314" type="0"/>
+ <Second value="24049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13314" type="0"/>
+ <Second value="24549" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12814" type="0"/>
+ <Second value="25049" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3812" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="4389" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="7366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1539" type="0"/>
+ <Second value="10343" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3812" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9766" type="0"/>
+ <Second value="12616" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="10343" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="7366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12039" type="0"/>
+ <Second value="4389" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9766" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6789" type="0"/>
+ <Second value="2116" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14339" type="0"/>
+ <Second value="7122" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14363" type="0"/>
+ <Second value="8236" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12802" type="0"/>
+ <Second value="9487" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12339" type="0"/>
+ <Second value="10501" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11876" type="0"/>
+ <Second value="11515" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12522" type="0"/>
+ <Second value="12368" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11665" type="0"/>
+ <Second value="13081" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10808" type="0"/>
+ <Second value="13794" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9466" type="0"/>
+ <Second value="12917" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8415" type="0"/>
+ <Second value="13181" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7304" type="0"/>
+ <Second value="13459" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6459" type="0"/>
+ <Second value="14938" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5338" type="0"/>
+ <Second value="14707" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4277" type="0"/>
+ <Second value="14488" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4096" type="0"/>
+ <Second value="12885" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3234" type="0"/>
+ <Second value="12227" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2324" type="0"/>
+ <Second value="11533" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="641" type="0"/>
+ <Second value="11794" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="123" type="0"/>
+ <Second value="10774" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-368" type="0"/>
+ <Second value="9807" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="772" type="0"/>
+ <Second value="8666" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="749" type="0"/>
+ <Second value="7582" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="725" type="0"/>
+ <Second value="6438" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-135" type="0"/>
+ <Second value="5541" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="339" type="0"/>
+ <Second value="4500" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="789" type="0"/>
+ <Second value="3513" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1999" type="0"/>
+ <Second value="3437" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2831" type="0"/>
+ <Second value="2744" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3711" type="0"/>
+ <Second value="2011" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3831" type="0"/>
+ <Second value="313" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4942" type="0"/>
+ <Second value="34" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5993" type="0"/>
+ <Second value="-229" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6852" type="0"/>
+ <Second value="1136" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7913" type="0"/>
+ <Second value="1355" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9034" type="0"/>
+ <Second value="1586" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10437" type="0"/>
+ <Second value="621" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11347" type="0"/>
+ <Second value="1315" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12208" type="0"/>
+ <Second value="1973" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11676" type="0"/>
+ <Second value="3496" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12167" type="0"/>
+ <Second value="4462" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12686" type="0"/>
+ <Second value="5483" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14315" type="0"/>
+ <Second value="6008" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14339" type="0"/>
+ <Second value="7122" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="6"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="14"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="6"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="3"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="14"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="5800" positionY="11000" sizeX="4400" sizeY="4200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4401.000000" column2="0.000000" column3="5800.000000"/>
+ <Line2 column1="0.000000" column2="4201.000000" column3="11000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="mso-spt21" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="3600" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page2.xml b/sd/qa/unit/data/xml/shapes-test_page2.xml
new file mode 100644
index 000000000..e9f3139fd
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page2.xml
@@ -0,0 +1,3104 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1400" positionY="1200" sizeX="2800" sizeY="2200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2801.000000" column2="0.000000" column3="1400.000000"/>
+ <Line2 column1="0.000000" column2="2201.000000" column3="1200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="smiley" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="17520" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7305" type="0"/>
+ <Second value="7515" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1165" type="0"/>
+ <Second value="1165" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14295" type="0"/>
+ <Second value="7515" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1165" type="0"/>
+ <Second value="1165" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4870" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8680" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12920" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16730" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6000" positionY="1000" sizeX="3200" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="6000.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="1000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="sun" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10" type="1"/>
+ <Second value="11" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="13" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="15" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="1"/>
+ <Second value="21" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="22" type="1"/>
+ <Second value="23" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="24" type="1"/>
+ <Second value="25" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="26" type="1"/>
+ <Second value="27" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="28" type="1"/>
+ <Second value="29" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="30" type="1"/>
+ <Second value="31" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="32" type="1"/>
+ <Second value="33" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="34" type="1"/>
+ <Second value="35" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="36" type="1"/>
+ <Second value="37" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="38" type="1"/>
+ <Second value="39" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="40" type="1"/>
+ <Second value="41" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="42" type="1"/>
+ <Second value="43" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="1"/>
+ <Second value="45" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="46" type="1"/>
+ <Second value="47" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="48" type="1"/>
+ <Second value="49" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="50" type="1"/>
+ <Second value="51" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="54" type="1"/>
+ <Second value="54" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11000" positionY="1400" sizeX="2000" sizeY="2200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2001.000000" column2="0.000000" column3="11000.000000"/>
+ <Line2 column1="0.000000" column2="2201.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="moon" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="10800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="5080" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="16520" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9740" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="16730" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4870" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9740" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14800" positionY="1000" sizeX="2600" sizeY="3800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="14800.000000"/>
+ <Line2 column1="0.000000" column2="3801.000000" column3="1000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="640" height="861"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="640" type="0"/>
+ <Second value="233" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="221" type="0"/>
+ <Second value="293" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="506" type="0"/>
+ <Second value="12" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="367" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="29" type="0"/>
+ <Second value="406" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="431" type="0"/>
+ <Second value="347" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="145" type="0"/>
+ <Second value="645" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="99" type="0"/>
+ <Second value="520" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="861" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="326" type="0"/>
+ <Second value="765" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="209" type="0"/>
+ <Second value="711" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="640" type="0"/>
+ <Second value="233" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="640" type="0"/>
+ <Second value="233" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="12"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18600" positionY="1400" sizeX="2400" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="18600.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="11200" height="11200"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="heart" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1000" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="1000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5606" type="0"/>
+ <Second value="11198" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2606" type="0"/>
+ <Second value="-1156" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5606" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8606" type="0"/>
+ <Second value="-1156" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5606" type="0"/>
+ <Second value="11198" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="23400" positionY="1400" sizeX="2800" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2801.000000" column2="0.000000" column3="23400.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="1400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="5143" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7593" type="0"/>
+ <Second value="5143" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5143" type="0"/>
+ <Second value="7593" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5143" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5143" type="0"/>
+ <Second value="14007" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7593" type="0"/>
+ <Second value="16457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="16457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14007" type="0"/>
+ <Second value="16457" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16457" type="0"/>
+ <Second value="14007" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16457" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16457" type="0"/>
+ <Second value="7593" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14007" type="0"/>
+ <Second value="5143" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="5143" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="9159" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1010" type="0"/>
+ <Second value="7827" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2468" type="0"/>
+ <Second value="7371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2205" type="0"/>
+ <Second value="6866" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="6285" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="5657" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="3617" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3616" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5657" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6285" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6867" type="0"/>
+ <Second value="2206" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7371" type="0"/>
+ <Second value="2468" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7827" type="0"/>
+ <Second value="1010" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9158" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12442" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13773" type="0"/>
+ <Second value="1010" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14229" type="0"/>
+ <Second value="2468" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14733" type="0"/>
+ <Second value="2206" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15315" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15943" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17984" type="0"/>
+ <Second value="2057" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="3617" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="5657" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="6285" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19395" type="0"/>
+ <Second value="6866" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19132" type="0"/>
+ <Second value="7371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20590" type="0"/>
+ <Second value="7827" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="9159" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="12441" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20590" type="0"/>
+ <Second value="13773" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19132" type="0"/>
+ <Second value="14229" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19395" type="0"/>
+ <Second value="14734" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="15315" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="15943" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19543" type="0"/>
+ <Second value="17983" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17984" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15943" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15315" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14733" type="0"/>
+ <Second value="19394" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14229" type="0"/>
+ <Second value="19132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13773" type="0"/>
+ <Second value="20590" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12442" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9158" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7827" type="0"/>
+ <Second value="20590" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7371" type="0"/>
+ <Second value="19132" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6867" type="0"/>
+ <Second value="19394" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6285" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5657" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3616" type="0"/>
+ <Second value="19543" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="17983" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="15943" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2057" type="0"/>
+ <Second value="15315" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2205" type="0"/>
+ <Second value="14734" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2468" type="0"/>
+ <Second value="14229" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1010" type="0"/>
+ <Second value="13773" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="12441" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="20"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1600" positionY="5600" sizeX="2400" sizeY="1600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="1600.000000"/>
+ <Line2 column1="0.000000" column2="1601.000000" column3="5600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1930" type="0"/>
+ <Second value="7160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1530" type="0"/>
+ <Second value="4490" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3400" type="0"/>
+ <Second value="1970" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5270" type="0"/>
+ <Second value="1970" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5860" type="0"/>
+ <Second value="1950" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6470" type="0"/>
+ <Second value="2210" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6970" type="0"/>
+ <Second value="2600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7450" type="0"/>
+ <Second value="1390" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8340" type="0"/>
+ <Second value="650" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9340" type="0"/>
+ <Second value="650" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10004" type="0"/>
+ <Second value="690" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10710" type="0"/>
+ <Second value="1050" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11210" type="0"/>
+ <Second value="1700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11570" type="0"/>
+ <Second value="630" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12330" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13150" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13840" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14470" type="0"/>
+ <Second value="460" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14870" type="0"/>
+ <Second value="1160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15330" type="0"/>
+ <Second value="440" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16020" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16740" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17910" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18900" type="0"/>
+ <Second value="1130" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19110" type="0"/>
+ <Second value="2710" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20240" type="0"/>
+ <Second value="3150" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21060" type="0"/>
+ <Second value="4580" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21060" type="0"/>
+ <Second value="6220" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21060" type="0"/>
+ <Second value="6720" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21000" type="0"/>
+ <Second value="7200" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20830" type="0"/>
+ <Second value="7660" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21310" type="0"/>
+ <Second value="8460" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="9450" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10460" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="12750" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20310" type="0"/>
+ <Second value="14680" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18650" type="0"/>
+ <Second value="15010" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18650" type="0"/>
+ <Second value="17200" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17370" type="0"/>
+ <Second value="18920" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15770" type="0"/>
+ <Second value="18920" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15220" type="0"/>
+ <Second value="18920" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14700" type="0"/>
+ <Second value="18710" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14240" type="0"/>
+ <Second value="18310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13820" type="0"/>
+ <Second value="20240" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12490" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11000" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9890" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8840" type="0"/>
+ <Second value="20790" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8210" type="0"/>
+ <Second value="19510" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7620" type="0"/>
+ <Second value="20000" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7930" type="0"/>
+ <Second value="20290" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6240" type="0"/>
+ <Second value="20290" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4850" type="0"/>
+ <Second value="20290" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3570" type="0"/>
+ <Second value="19280" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2900" type="0"/>
+ <Second value="17640" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1300" type="0"/>
+ <Second value="17600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="480" type="0"/>
+ <Second value="16300" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="480" type="0"/>
+ <Second value="14660" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="480" type="0"/>
+ <Second value="13900" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="690" type="0"/>
+ <Second value="13210" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1070" type="0"/>
+ <Second value="12640" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="380" type="0"/>
+ <Second value="12160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="11210" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10120" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="8590" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="840" type="0"/>
+ <Second value="7330" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1930" type="0"/>
+ <Second value="7160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1930" type="0"/>
+ <Second value="7160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1950" type="0"/>
+ <Second value="7410" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2040" type="0"/>
+ <Second value="7690" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2090" type="0"/>
+ <Second value="7920" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6970" type="0"/>
+ <Second value="2600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7200" type="0"/>
+ <Second value="2790" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7480" type="0"/>
+ <Second value="3050" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7670" type="0"/>
+ <Second value="3310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11210" type="0"/>
+ <Second value="1700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11130" type="0"/>
+ <Second value="1910" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11080" type="0"/>
+ <Second value="2160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11030" type="0"/>
+ <Second value="2400" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14870" type="0"/>
+ <Second value="1160" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14720" type="0"/>
+ <Second value="1400" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14640" type="0"/>
+ <Second value="1720" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14540" type="0"/>
+ <Second value="2010" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19110" type="0"/>
+ <Second value="2710" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19130" type="0"/>
+ <Second value="2890" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19230" type="0"/>
+ <Second value="3290" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19190" type="0"/>
+ <Second value="3380" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20830" type="0"/>
+ <Second value="7660" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20660" type="0"/>
+ <Second value="8170" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20430" type="0"/>
+ <Second value="8620" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20110" type="0"/>
+ <Second value="8990" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18660" type="0"/>
+ <Second value="15010" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18740" type="0"/>
+ <Second value="14200" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18280" type="0"/>
+ <Second value="12200" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17000" type="0"/>
+ <Second value="11450" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14240" type="0"/>
+ <Second value="18310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14320" type="0"/>
+ <Second value="17980" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14350" type="0"/>
+ <Second value="17680" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14370" type="0"/>
+ <Second value="17360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8220" type="0"/>
+ <Second value="19510" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8060" type="0"/>
+ <Second value="19250" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7960" type="0"/>
+ <Second value="18950" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7860" type="0"/>
+ <Second value="18640" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2900" type="0"/>
+ <Second value="17640" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3090" type="0"/>
+ <Second value="17600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3280" type="0"/>
+ <Second value="17540" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3460" type="0"/>
+ <Second value="17450" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1070" type="0"/>
+ <Second value="12640" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1400" type="0"/>
+ <Second value="12900" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1780" type="0"/>
+ <Second value="13130" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2330" type="0"/>
+ <Second value="13040" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="22"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="6" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6000" positionY="5000" sizeX="3400" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3401.000000" column2="0.000000" column3="6000.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="5000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="forbidden" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9" type="1"/>
+ <Second value="10" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="14" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="11" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="11" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="10800" positionY="5200" sizeX="2400" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="10800.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="5200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="20590" height="20590"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="NonPrimitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3088" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2369" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1915" type="0"/>
+ <Second value="5963" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1288" type="0"/>
+ <Second value="5826" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="442" type="0"/>
+ <Second value="5641" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="202" type="0"/>
+ <Second value="5060" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="4390" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-110" type="0"/>
+ <Second value="3232" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="867" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="867" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="477" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="477" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="867" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="867" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3232" type="0"/>
+ <Second value="-110" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4390" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5060" type="0"/>
+ <Second value="202" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5641" type="0"/>
+ <Second value="442" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5826" type="0"/>
+ <Second value="1288" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5963" type="0"/>
+ <Second value="1915" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="2369" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="3088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="4505" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6171" type="0"/>
+ <Second value="5588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7588" type="0"/>
+ <Second value="5588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9005" type="0"/>
+ <Second value="5588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="4505" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="3088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="2369" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9213" type="0"/>
+ <Second value="1915" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9350" type="0"/>
+ <Second value="1288" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9535" type="0"/>
+ <Second value="442" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10115" type="0"/>
+ <Second value="202" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10786" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11944" type="0"/>
+ <Second value="-110" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14310" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14310" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14699" type="0"/>
+ <Second value="88" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="477" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="867" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="867" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14890" type="0"/>
+ <Second value="3232" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="4390" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15202" type="0"/>
+ <Second value="5060" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15442" type="0"/>
+ <Second value="5641" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16288" type="0"/>
+ <Second value="5826" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16915" type="0"/>
+ <Second value="5963" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17369" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18088" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19505" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20588" type="0"/>
+ <Second value="6171" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20588" type="0"/>
+ <Second value="7588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20588" type="0"/>
+ <Second value="9005" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="19505" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="18088" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="17369" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16915" type="0"/>
+ <Second value="9213" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16288" type="0"/>
+ <Second value="9350" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15442" type="0"/>
+ <Second value="9535" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15202" type="0"/>
+ <Second value="10115" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="10786" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14890" type="0"/>
+ <Second value="11944" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="14310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="14310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15088" type="0"/>
+ <Second value="14699" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14699" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14310" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14310" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11944" type="0"/>
+ <Second value="14890" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10786" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10115" type="0"/>
+ <Second value="15202" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9535" type="0"/>
+ <Second value="15442" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9350" type="0"/>
+ <Second value="16288" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9213" type="0"/>
+ <Second value="16915" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="17369" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="18088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10088" type="0"/>
+ <Second value="19505" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="9005" type="0"/>
+ <Second value="20588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="7588" type="0"/>
+ <Second value="20588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6171" type="0"/>
+ <Second value="20588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="19505" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="18088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5088" type="0"/>
+ <Second value="17369" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5963" type="0"/>
+ <Second value="16915" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5826" type="0"/>
+ <Second value="16288" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5641" type="0"/>
+ <Second value="15442" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5060" type="0"/>
+ <Second value="15202" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4390" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3232" type="0"/>
+ <Second value="14890" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="867" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="867" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="477" type="0"/>
+ <Second value="15088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="14699" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="14310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="14310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-110" type="0"/>
+ <Second value="11944" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="10786" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="202" type="0"/>
+ <Second value="10115" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="442" type="0"/>
+ <Second value="9535" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1288" type="0"/>
+ <Second value="9350" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1915" type="0"/>
+ <Second value="9213" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2369" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3088" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4505" type="0"/>
+ <Second value="10088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5588" type="0"/>
+ <Second value="9005" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5588" type="0"/>
+ <Second value="7588" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5588" type="0"/>
+ <Second value="6171" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4505" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3088" type="0"/>
+ <Second value="5088" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="36"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="15200" positionY="6000" sizeX="2000" sizeY="1200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2001.000000" column2="0.000000" column3="15200.000000"/>
+ <Line2 column1="0.000000" column2="1201.000000" column3="6000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="bracket-pair" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="3700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18200" positionY="5200" sizeX="1200" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1201.000000" column2="0.000000" column3="18200.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="5200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="left-bracket" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="21000" positionY="5400" sizeX="1400" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1401.000000" column2="0.000000" column3="21000.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="5400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="right-bracket" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="1600" positionY="9800" sizeX="2600" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2601.000000" column2="0.000000" column3="1600.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="9800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="brace-pair" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8" type="1"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="8" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="14" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="15" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6000" positionY="9800" sizeX="1000" sizeY="2800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1001.000000" column2="0.000000" column3="6000.000000"/>
+ <Line2 column1="0.000000" column2="2801.000000" column3="9800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="left-brace" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1800" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="10800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16200" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5400" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5400" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16200" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="9800" positionY="9200" sizeX="1600" sizeY="3200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="749" textMinimumFrameWidth="499" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1601.000000" column2="0.000000" column3="9800.000000"/>
+ <Line2 column1="0.000000" column2="3201.000000" column3="9200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="right-brace" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="1800" propertyState="DIRECT_VALUE"/>
+ <EnhancedCustomShapeAdjustmentValue value="10800" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5400" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16200" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="16200" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5400" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="13800" positionY="9600" sizeX="3200" sizeY="3400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3201.000000" column2="0.000000" column3="13800.000000"/>
+ <Line2 column1="0.000000" column2="3401.000000" column3="9600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="quad-bevel" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="18800" positionY="9800" sizeX="3800" sizeY="2400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="750" textMinimumFrameWidth="500" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="3801.000000" column2="0.000000" column3="18800.000000"/>
+ <Line2 column1="0.000000" column2="2401.000000" column3="9800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="col-60da8460" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="7"/>
+ <EnhancedCustomShapeSegment command="7" count="0"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="24800" positionY="9600" sizeX="2200" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="66" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2201.000000" column2="0.000000" column3="24800.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="9600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="col-502ad400" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="4000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="7" count="0"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page3.xml b/sd/qa/unit/data/xml/shapes-test_page3.xml
new file mode 100644
index 000000000..4b06ff3d1
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page3.xml
@@ -0,0 +1,714 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="2200" positionY="1800" sizeX="2600" sizeY="2800" type="com.sun.star.drawing.LineShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="4800" positionY="1800"/>
+ <point positionX="2200" positionY="4600"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="2600" positionY="0"/>
+ <point positionX="0" positionY="2800"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="2600.000000" column2="0.000000" column3="2200.000000"/>
+ <Line2 column1="0.000000" column2="2800.000000" column3="1800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="4800" positionY="3600" sizeX="1200" sizeY="200" type="com.sun.star.drawing.LineShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="4800" positionY="3600"/>
+ <point positionX="6000" positionY="3800"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="0" positionY="0"/>
+ <point positionX="1200" positionY="200"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="1200.000000" column2="0.000000" column3="4800.000000"/>
+ <Line2 column1="0.000000" column2="200.000000" column3="3600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="8629" positionY="86" sizeX="7592" sizeY="7398" type="com.sun.star.drawing.OpenBezierShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="0.000000" column2="7591.681979" column3="8629.325587"/>
+ <Line2 column1="-7398.482222" column2="0.000000" column3="7484.216507"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <pointSequence>
+ <point positionX="8632" positionY="7287" polygonFlags="NORMAL"/>
+ <point positionX="8587" positionY="6521" polygonFlags="CONTROL"/>
+ <point positionX="9125" positionY="5860" polygonFlags="CONTROL"/>
+ <point positionX="9109" positionY="5074" polygonFlags="NORMAL"/>
+ <point positionX="9094" positionY="4361" polygonFlags="CONTROL"/>
+ <point positionX="9252" positionY="3652" polygonFlags="CONTROL"/>
+ <point positionX="9369" positionY="2949" polygonFlags="NORMAL"/>
+ <point positionX="9463" positionY="2381" polygonFlags="CONTROL"/>
+ <point positionX="9761" positionY="1863" polygonFlags="CONTROL"/>
+ <point positionX="9890" positionY="1301" polygonFlags="NORMAL"/>
+ <point positionX="10046" positionY="619" polygonFlags="CONTROL"/>
+ <point positionX="10588" positionY="71" polygonFlags="CONTROL"/>
+ <point positionX="11191" positionY="86" polygonFlags="NORMAL"/>
+ <point positionX="11768" positionY="100" polygonFlags="CONTROL"/>
+ <point positionX="12092" positionY="810" polygonFlags="CONTROL"/>
+ <point positionX="12275" positionY="1344" polygonFlags="NORMAL"/>
+ <point positionX="12429" positionY="1795" polygonFlags="CONTROL"/>
+ <point positionX="12397" positionY="2270" polygonFlags="CONTROL"/>
+ <point positionX="12362" positionY="2732" polygonFlags="NORMAL"/>
+ <point positionX="12325" positionY="3216" polygonFlags="CONTROL"/>
+ <point positionX="12522" positionY="3633" polygonFlags="CONTROL"/>
+ <point positionX="12449" positionY="4120" polygonFlags="NORMAL"/>
+ <point positionX="12371" positionY="4635" polygonFlags="CONTROL"/>
+ <point positionX="12002" positionY="5300" polygonFlags="CONTROL"/>
+ <point positionX="12362" positionY="5682" polygonFlags="NORMAL"/>
+ <point positionX="12837" positionY="6186" polygonFlags="CONTROL"/>
+ <point positionX="13734" positionY="5831" polygonFlags="CONTROL"/>
+ <point positionX="14401" positionY="5682" polygonFlags="NORMAL"/>
+ <point positionX="15026" positionY="5542" polygonFlags="CONTROL"/>
+ <point positionX="15806" positionY="5330" polygonFlags="CONTROL"/>
+ <point positionX="16049" positionY="4684" polygonFlags="NORMAL"/>
+ <point positionX="16276" positionY="4079" polygonFlags="CONTROL"/>
+ <point positionX="16249" positionY="3402" polygonFlags="CONTROL"/>
+ <point positionX="16136" positionY="2776" polygonFlags="NORMAL"/>
+ <point positionX="16049" positionY="2294" polygonFlags="CONTROL"/>
+ <point positionX="16592" positionY="1463" polygonFlags="CONTROL"/>
+ <point positionX="15658" positionY="1344" polygonFlags="NORMAL"/>
+ <point positionX="14831" positionY="1238" polygonFlags="CONTROL"/>
+ <point positionX="15004" positionY="2018" polygonFlags="CONTROL"/>
+ <point positionX="14834" positionY="2429" polygonFlags="NORMAL"/>
+ <point positionX="14603" positionY="2986" polygonFlags="CONTROL"/>
+ <point positionX="14392" positionY="3574" polygonFlags="CONTROL"/>
+ <point positionX="13967" positionY="3990" polygonFlags="NORMAL"/>
+ <point positionX="13587" positionY="4362" polygonFlags="CONTROL"/>
+ <point positionX="12972" positionY="4385" polygonFlags="CONTROL"/>
+ <point positionX="12449" positionY="4380" polygonFlags="NORMAL"/>
+ <point positionX="11972" positionY="4375" polygonFlags="CONTROL"/>
+ <point positionX="11522" positionY="4205" polygonFlags="CONTROL"/>
+ <point positionX="11061" positionY="4033" polygonFlags="NORMAL"/>
+ <point positionX="10612" positionY="3865" polygonFlags="CONTROL"/>
+ <point positionX="10027" positionY="4118" polygonFlags="CONTROL"/>
+ <point positionX="9846" positionY="4727" polygonFlags="NORMAL"/>
+ <point positionX="9695" positionY="5235" polygonFlags="CONTROL"/>
+ <point positionX="9639" positionY="5679" polygonFlags="CONTROL"/>
+ <point positionX="9673" positionY="6159" polygonFlags="NORMAL"/>
+ <point positionX="9724" positionY="6890" polygonFlags="CONTROL"/>
+ <point positionX="10610" positionY="7073" polygonFlags="CONTROL"/>
+ <point positionX="11191" positionY="7243" polygonFlags="NORMAL"/>
+ <point positionX="11848" positionY="7435" polygonFlags="CONTROL"/>
+ <point positionX="12518" positionY="7533" polygonFlags="CONTROL"/>
+ <point positionX="13230" positionY="7460" polygonFlags="NORMAL"/>
+ <point positionX="13746" positionY="7407" polygonFlags="CONTROL"/>
+ <point positionX="14357" positionY="7495" polygonFlags="CONTROL"/>
+ <point positionX="14748" positionY="7070" polygonFlags="NORMAL"/>
+ <point positionX="14748" positionY="7070" polygonFlags="NORMAL"/>
+ </pointSequence>
+ <pointSequence>
+ <point positionX="197" positionY="3" polygonFlags="NORMAL"/>
+ <point positionX="963" positionY="-42" polygonFlags="CONTROL"/>
+ <point positionX="1624" positionY="496" polygonFlags="CONTROL"/>
+ <point positionX="2410" positionY="480" polygonFlags="NORMAL"/>
+ <point positionX="3123" positionY="465" polygonFlags="CONTROL"/>
+ <point positionX="3832" positionY="623" polygonFlags="CONTROL"/>
+ <point positionX="4535" positionY="740" polygonFlags="NORMAL"/>
+ <point positionX="5103" positionY="834" polygonFlags="CONTROL"/>
+ <point positionX="5621" positionY="1132" polygonFlags="CONTROL"/>
+ <point positionX="6183" positionY="1261" polygonFlags="NORMAL"/>
+ <point positionX="6865" positionY="1417" polygonFlags="CONTROL"/>
+ <point positionX="7413" positionY="1959" polygonFlags="CONTROL"/>
+ <point positionX="7398" positionY="2562" polygonFlags="NORMAL"/>
+ <point positionX="7384" positionY="3139" polygonFlags="CONTROL"/>
+ <point positionX="6674" positionY="3463" polygonFlags="CONTROL"/>
+ <point positionX="6140" positionY="3646" polygonFlags="NORMAL"/>
+ <point positionX="5689" positionY="3800" polygonFlags="CONTROL"/>
+ <point positionX="5214" positionY="3768" polygonFlags="CONTROL"/>
+ <point positionX="4752" positionY="3733" polygonFlags="NORMAL"/>
+ <point positionX="4268" positionY="3696" polygonFlags="CONTROL"/>
+ <point positionX="3851" positionY="3893" polygonFlags="CONTROL"/>
+ <point positionX="3364" positionY="3820" polygonFlags="NORMAL"/>
+ <point positionX="2849" positionY="3742" polygonFlags="CONTROL"/>
+ <point positionX="2184" positionY="3373" polygonFlags="CONTROL"/>
+ <point positionX="1802" positionY="3733" polygonFlags="NORMAL"/>
+ <point positionX="1298" positionY="4208" polygonFlags="CONTROL"/>
+ <point positionX="1653" positionY="5105" polygonFlags="CONTROL"/>
+ <point positionX="1802" positionY="5772" polygonFlags="NORMAL"/>
+ <point positionX="1942" positionY="6397" polygonFlags="CONTROL"/>
+ <point positionX="2154" positionY="7177" polygonFlags="CONTROL"/>
+ <point positionX="2800" positionY="7420" polygonFlags="NORMAL"/>
+ <point positionX="3405" positionY="7647" polygonFlags="CONTROL"/>
+ <point positionX="4082" positionY="7620" polygonFlags="CONTROL"/>
+ <point positionX="4708" positionY="7507" polygonFlags="NORMAL"/>
+ <point positionX="5190" positionY="7420" polygonFlags="CONTROL"/>
+ <point positionX="6021" positionY="7963" polygonFlags="CONTROL"/>
+ <point positionX="6140" positionY="7029" polygonFlags="NORMAL"/>
+ <point positionX="6246" positionY="6202" polygonFlags="CONTROL"/>
+ <point positionX="5466" positionY="6375" polygonFlags="CONTROL"/>
+ <point positionX="5055" positionY="6205" polygonFlags="NORMAL"/>
+ <point positionX="4498" positionY="5974" polygonFlags="CONTROL"/>
+ <point positionX="3910" positionY="5763" polygonFlags="CONTROL"/>
+ <point positionX="3494" positionY="5338" polygonFlags="NORMAL"/>
+ <point positionX="3122" positionY="4958" polygonFlags="CONTROL"/>
+ <point positionX="3099" positionY="4343" polygonFlags="CONTROL"/>
+ <point positionX="3104" positionY="3820" polygonFlags="NORMAL"/>
+ <point positionX="3109" positionY="3343" polygonFlags="CONTROL"/>
+ <point positionX="3279" positionY="2893" polygonFlags="CONTROL"/>
+ <point positionX="3451" positionY="2432" polygonFlags="NORMAL"/>
+ <point positionX="3619" positionY="1983" polygonFlags="CONTROL"/>
+ <point positionX="3366" positionY="1398" polygonFlags="CONTROL"/>
+ <point positionX="2757" positionY="1217" polygonFlags="NORMAL"/>
+ <point positionX="2249" positionY="1066" polygonFlags="CONTROL"/>
+ <point positionX="1805" positionY="1010" polygonFlags="CONTROL"/>
+ <point positionX="1325" positionY="1044" polygonFlags="NORMAL"/>
+ <point positionX="594" positionY="1095" polygonFlags="CONTROL"/>
+ <point positionX="411" positionY="1981" polygonFlags="CONTROL"/>
+ <point positionX="241" positionY="2562" polygonFlags="NORMAL"/>
+ <point positionX="49" positionY="3219" polygonFlags="CONTROL"/>
+ <point positionX="-49" positionY="3889" polygonFlags="CONTROL"/>
+ <point positionX="24" positionY="4601" polygonFlags="NORMAL"/>
+ <point positionX="77" positionY="5117" polygonFlags="CONTROL"/>
+ <point positionX="-11" positionY="5728" polygonFlags="CONTROL"/>
+ <point positionX="414" positionY="6119" polygonFlags="NORMAL"/>
+ <point positionX="414" positionY="6119" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </XShape>
+ <XShape positionX="3800" positionY="6400" sizeX="1800" sizeY="1200" type="com.sun.star.drawing.LineShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd>
+ <pointSequence>
+ <point positionX="10" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="30" polygonFlags="NORMAL"/>
+ <point positionX="20" positionY="30" polygonFlags="NORMAL"/>
+ <point positionX="10" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineEnd>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="3800" positionY="7600"/>
+ <point positionX="5600" positionY="6400"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="0" positionY="1200"/>
+ <point positionX="1800" positionY="0"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="1800.000000" column2="0.000000" column3="3800.000000"/>
+ <Line2 column1="0.000000" column2="1200.000000" column3="6400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="18348" positionY="525" sizeX="8645" sizeY="6751" type="com.sun.star.drawing.ClosedBezierShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="8645.321503" column2="0.000000" column3="18348.000000"/>
+ <Line2 column1="0.000000" column2="6751.172578" column3="525.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <pointSequence>
+ <point positionX="18348" positionY="7243" polygonFlags="NORMAL"/>
+ <point positionX="18951" positionY="7332" polygonFlags="CONTROL"/>
+ <point positionX="19562" positionY="7215" polygonFlags="CONTROL"/>
+ <point positionX="20169" positionY="7200" polygonFlags="NORMAL"/>
+ <point positionX="20809" positionY="7184" polygonFlags="CONTROL"/>
+ <point positionX="20839" positionY="6538" polygonFlags="CONTROL"/>
+ <point positionX="20950" positionY="6115" polygonFlags="NORMAL"/>
+ <point positionX="21085" positionY="5599" polygonFlags="CONTROL"/>
+ <point positionX="21023" positionY="5074" polygonFlags="CONTROL"/>
+ <point positionX="21037" positionY="4554" polygonFlags="NORMAL"/>
+ <point positionX="21049" positionY="4092" polygonFlags="CONTROL"/>
+ <point positionX="21033" positionY="3627" polygonFlags="CONTROL"/>
+ <point positionX="21037" positionY="3166" polygonFlags="NORMAL"/>
+ <point positionX="21042" positionY="2557" polygonFlags="CONTROL"/>
+ <point positionX="20311" positionY="2450" polygonFlags="CONTROL"/>
+ <point positionX="19866" positionY="2515" polygonFlags="NORMAL"/>
+ <point positionX="19390" positionY="2584" polygonFlags="CONTROL"/>
+ <point positionX="18645" positionY="2487" polygonFlags="CONTROL"/>
+ <point positionX="18608" positionY="1908" polygonFlags="NORMAL"/>
+ <point positionX="18578" positionY="1443" polygonFlags="CONTROL"/>
+ <point positionX="18333" positionY="866" polygonFlags="CONTROL"/>
+ <point positionX="19042" positionY="607" polygonFlags="NORMAL"/>
+ <point positionX="19599" positionY="403" polygonFlags="CONTROL"/>
+ <point positionX="20169" positionY="602" polygonFlags="CONTROL"/>
+ <point positionX="20560" positionY="954" polygonFlags="NORMAL"/>
+ <point positionX="20998" positionY="1348" polygonFlags="CONTROL"/>
+ <point positionX="21528" positionY="1585" polygonFlags="CONTROL"/>
+ <point positionX="21948" positionY="2038" polygonFlags="NORMAL"/>
+ <point positionX="22328" positionY="2448" polygonFlags="CONTROL"/>
+ <point positionX="22815" positionY="2752" polygonFlags="CONTROL"/>
+ <point positionX="23336" positionY="2992" polygonFlags="NORMAL"/>
+ <point positionX="23850" positionY="3228" polygonFlags="CONTROL"/>
+ <point positionX="24383" positionY="3468" polygonFlags="CONTROL"/>
+ <point positionX="24984" positionY="3426" polygonFlags="NORMAL"/>
+ <point positionX="25462" positionY="3392" polygonFlags="CONTROL"/>
+ <point positionX="26206" positionY="3798" polygonFlags="CONTROL"/>
+ <point positionX="26459" positionY="3253" polygonFlags="NORMAL"/>
+ <point positionX="26648" positionY="2847" polygonFlags="CONTROL"/>
+ <point positionX="26666" positionY="2292" polygonFlags="CONTROL"/>
+ <point positionX="26415" positionY="1908" polygonFlags="NORMAL"/>
+ <point positionX="26129" positionY="1470" polygonFlags="CONTROL"/>
+ <point positionX="25369" positionY="1324" polygonFlags="CONTROL"/>
+ <point positionX="25027" positionY="1648" polygonFlags="NORMAL"/>
+ <point positionX="24655" positionY="2001" polygonFlags="CONTROL"/>
+ <point positionX="25301" positionY="2552" polygonFlags="CONTROL"/>
+ <point positionX="25288" positionY="3036" polygonFlags="NORMAL"/>
+ <point positionX="25275" positionY="3508" polygonFlags="CONTROL"/>
+ <point positionX="25468" positionY="3950" polygonFlags="CONTROL"/>
+ <point positionX="25548" positionY="4424" polygonFlags="NORMAL"/>
+ <point positionX="25655" positionY="5059" polygonFlags="CONTROL"/>
+ <point positionX="26263" positionY="4848" polygonFlags="CONTROL"/>
+ <point positionX="26632" positionY="4988" polygonFlags="NORMAL"/>
+ <point positionX="27116" positionY="5171" polygonFlags="CONTROL"/>
+ <point positionX="27166" positionY="6200" polygonFlags="CONTROL"/>
+ <point positionX="26459" positionY="6289" polygonFlags="NORMAL"/>
+ <point positionX="25910" positionY="6358" polygonFlags="CONTROL"/>
+ <point positionX="25585" positionY="5832" polygonFlags="CONTROL"/>
+ <point positionX="25157" positionY="5595" polygonFlags="NORMAL"/>
+ <point positionX="24651" positionY="5315" polygonFlags="CONTROL"/>
+ <point positionX="24507" positionY="4749" polygonFlags="CONTROL"/>
+ <point positionX="24507" positionY="4250" polygonFlags="SMOOTH"/>
+ <point positionX="24507" positionY="3534" polygonFlags="CONTROL"/>
+ <point positionX="23865" positionY="3497" polygonFlags="CONTROL"/>
+ <point positionX="23422" positionY="3339" polygonFlags="NORMAL"/>
+ <point positionX="22949" positionY="3170" polygonFlags="CONTROL"/>
+ <point positionX="22437" positionY="3093" polygonFlags="CONTROL"/>
+ <point positionX="21991" positionY="3296" polygonFlags="NORMAL"/>
+ <point positionX="21380" positionY="3574" polygonFlags="CONTROL"/>
+ <point positionX="21765" positionY="4222" polygonFlags="CONTROL"/>
+ <point positionX="21644" positionY="4684" polygonFlags="NORMAL"/>
+ <point positionX="21542" positionY="5074" polygonFlags="CONTROL"/>
+ <point positionX="21980" positionY="5726" polygonFlags="CONTROL"/>
+ <point positionX="21167" positionY="5768" polygonFlags="NORMAL"/>
+ <point positionX="20654" positionY="5794" polygonFlags="CONTROL"/>
+ <point positionX="20256" positionY="5430" polygonFlags="CONTROL"/>
+ <point positionX="19779" positionY="5508" polygonFlags="NORMAL"/>
+ <point positionX="19306" positionY="5585" polygonFlags="CONTROL"/>
+ <point positionX="19067" positionY="6562" polygonFlags="CONTROL"/>
+ <point positionX="19866" positionY="6636" polygonFlags="NORMAL"/>
+ <point positionX="20348" positionY="6680" polygonFlags="CONTROL"/>
+ <point positionX="20787" positionY="6882" polygonFlags="CONTROL"/>
+ <point positionX="21254" positionY="6983" polygonFlags="NORMAL"/>
+ <point positionX="21739" positionY="7088" polygonFlags="CONTROL"/>
+ <point positionX="22200" positionY="6884" polygonFlags="CONTROL"/>
+ <point positionX="22642" positionY="6723" polygonFlags="NORMAL"/>
+ <point positionX="23076" positionY="6565" polygonFlags="CONTROL"/>
+ <point positionX="23842" positionY="6723" polygonFlags="CONTROL"/>
+ <point positionX="23813" positionY="5985" polygonFlags="NORMAL"/>
+ <point positionX="23769" positionY="5595" polygonFlags="NORMAL"/>
+ <point positionX="18348" positionY="7243" polygonFlags="NORMAL"/>
+ </pointSequence>
+ <pointSequence>
+ <point positionX="0" positionY="6718" polygonFlags="NORMAL"/>
+ <point positionX="603" positionY="6807" polygonFlags="CONTROL"/>
+ <point positionX="1214" positionY="6690" polygonFlags="CONTROL"/>
+ <point positionX="1821" positionY="6675" polygonFlags="NORMAL"/>
+ <point positionX="2461" positionY="6659" polygonFlags="CONTROL"/>
+ <point positionX="2491" positionY="6013" polygonFlags="CONTROL"/>
+ <point positionX="2602" positionY="5590" polygonFlags="NORMAL"/>
+ <point positionX="2737" positionY="5074" polygonFlags="CONTROL"/>
+ <point positionX="2675" positionY="4549" polygonFlags="CONTROL"/>
+ <point positionX="2689" positionY="4029" polygonFlags="NORMAL"/>
+ <point positionX="2701" positionY="3567" polygonFlags="CONTROL"/>
+ <point positionX="2685" positionY="3102" polygonFlags="CONTROL"/>
+ <point positionX="2689" positionY="2641" polygonFlags="NORMAL"/>
+ <point positionX="2694" positionY="2032" polygonFlags="CONTROL"/>
+ <point positionX="1963" positionY="1925" polygonFlags="CONTROL"/>
+ <point positionX="1518" positionY="1990" polygonFlags="NORMAL"/>
+ <point positionX="1042" positionY="2059" polygonFlags="CONTROL"/>
+ <point positionX="297" positionY="1962" polygonFlags="CONTROL"/>
+ <point positionX="260" positionY="1383" polygonFlags="NORMAL"/>
+ <point positionX="230" positionY="918" polygonFlags="CONTROL"/>
+ <point positionX="-15" positionY="341" polygonFlags="CONTROL"/>
+ <point positionX="694" positionY="82" polygonFlags="NORMAL"/>
+ <point positionX="1251" positionY="-122" polygonFlags="CONTROL"/>
+ <point positionX="1821" positionY="77" polygonFlags="CONTROL"/>
+ <point positionX="2212" positionY="429" polygonFlags="NORMAL"/>
+ <point positionX="2650" positionY="823" polygonFlags="CONTROL"/>
+ <point positionX="3180" positionY="1060" polygonFlags="CONTROL"/>
+ <point positionX="3600" positionY="1513" polygonFlags="NORMAL"/>
+ <point positionX="3980" positionY="1923" polygonFlags="CONTROL"/>
+ <point positionX="4467" positionY="2227" polygonFlags="CONTROL"/>
+ <point positionX="4988" positionY="2467" polygonFlags="NORMAL"/>
+ <point positionX="5502" positionY="2703" polygonFlags="CONTROL"/>
+ <point positionX="6035" positionY="2943" polygonFlags="CONTROL"/>
+ <point positionX="6636" positionY="2901" polygonFlags="NORMAL"/>
+ <point positionX="7114" positionY="2867" polygonFlags="CONTROL"/>
+ <point positionX="7858" positionY="3273" polygonFlags="CONTROL"/>
+ <point positionX="8111" positionY="2728" polygonFlags="NORMAL"/>
+ <point positionX="8300" positionY="2322" polygonFlags="CONTROL"/>
+ <point positionX="8318" positionY="1767" polygonFlags="CONTROL"/>
+ <point positionX="8067" positionY="1383" polygonFlags="NORMAL"/>
+ <point positionX="7781" positionY="945" polygonFlags="CONTROL"/>
+ <point positionX="7021" positionY="799" polygonFlags="CONTROL"/>
+ <point positionX="6679" positionY="1123" polygonFlags="NORMAL"/>
+ <point positionX="6307" positionY="1476" polygonFlags="CONTROL"/>
+ <point positionX="6953" positionY="2027" polygonFlags="CONTROL"/>
+ <point positionX="6940" positionY="2511" polygonFlags="NORMAL"/>
+ <point positionX="6927" positionY="2983" polygonFlags="CONTROL"/>
+ <point positionX="7120" positionY="3425" polygonFlags="CONTROL"/>
+ <point positionX="7200" positionY="3899" polygonFlags="NORMAL"/>
+ <point positionX="7307" positionY="4534" polygonFlags="CONTROL"/>
+ <point positionX="7915" positionY="4323" polygonFlags="CONTROL"/>
+ <point positionX="8284" positionY="4463" polygonFlags="NORMAL"/>
+ <point positionX="8768" positionY="4646" polygonFlags="CONTROL"/>
+ <point positionX="8818" positionY="5675" polygonFlags="CONTROL"/>
+ <point positionX="8111" positionY="5764" polygonFlags="NORMAL"/>
+ <point positionX="7562" positionY="5833" polygonFlags="CONTROL"/>
+ <point positionX="7237" positionY="5307" polygonFlags="CONTROL"/>
+ <point positionX="6809" positionY="5070" polygonFlags="NORMAL"/>
+ <point positionX="6303" positionY="4790" polygonFlags="CONTROL"/>
+ <point positionX="6159" positionY="4224" polygonFlags="CONTROL"/>
+ <point positionX="6159" positionY="3725" polygonFlags="SMOOTH"/>
+ <point positionX="6159" positionY="3009" polygonFlags="CONTROL"/>
+ <point positionX="5517" positionY="2972" polygonFlags="CONTROL"/>
+ <point positionX="5074" positionY="2814" polygonFlags="NORMAL"/>
+ <point positionX="4601" positionY="2645" polygonFlags="CONTROL"/>
+ <point positionX="4089" positionY="2568" polygonFlags="CONTROL"/>
+ <point positionX="3643" positionY="2771" polygonFlags="NORMAL"/>
+ <point positionX="3032" positionY="3049" polygonFlags="CONTROL"/>
+ <point positionX="3417" positionY="3697" polygonFlags="CONTROL"/>
+ <point positionX="3296" positionY="4159" polygonFlags="NORMAL"/>
+ <point positionX="3194" positionY="4549" polygonFlags="CONTROL"/>
+ <point positionX="3632" positionY="5201" polygonFlags="CONTROL"/>
+ <point positionX="2819" positionY="5243" polygonFlags="NORMAL"/>
+ <point positionX="2306" positionY="5269" polygonFlags="CONTROL"/>
+ <point positionX="1908" positionY="4905" polygonFlags="CONTROL"/>
+ <point positionX="1431" positionY="4983" polygonFlags="NORMAL"/>
+ <point positionX="958" positionY="5060" polygonFlags="CONTROL"/>
+ <point positionX="719" positionY="6037" polygonFlags="CONTROL"/>
+ <point positionX="1518" positionY="6111" polygonFlags="NORMAL"/>
+ <point positionX="2000" positionY="6155" polygonFlags="CONTROL"/>
+ <point positionX="2439" positionY="6357" polygonFlags="CONTROL"/>
+ <point positionX="2906" positionY="6458" polygonFlags="NORMAL"/>
+ <point positionX="3391" positionY="6563" polygonFlags="CONTROL"/>
+ <point positionX="3852" positionY="6359" polygonFlags="CONTROL"/>
+ <point positionX="4294" positionY="6198" polygonFlags="NORMAL"/>
+ <point positionX="4728" positionY="6040" polygonFlags="CONTROL"/>
+ <point positionX="5494" positionY="6198" polygonFlags="CONTROL"/>
+ <point positionX="5465" positionY="5460" polygonFlags="NORMAL"/>
+ <point positionX="5421" positionY="5070" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="6718" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </XShape>
+ <XShape positionX="7400" positionY="7886" sizeX="4479" sizeY="6914" type="com.sun.star.drawing.ClosedBezierShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4479.155188" column2="0.000000" column3="7400.000000"/>
+ <Line2 column1="0.000000" column2="6913.571703" column3="7886.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <pointSequence>
+ <point positionX="9200" positionY="13600" polygonFlags="NORMAL"/>
+ <point positionX="9200" positionY="12200" polygonFlags="CONTROL"/>
+ <point positionX="7600" positionY="10600" polygonFlags="CONTROL"/>
+ <point positionX="7600" positionY="10600" polygonFlags="NORMAL"/>
+ <point positionX="7600" positionY="10600" polygonFlags="CONTROL"/>
+ <point positionX="8600" positionY="9000" polygonFlags="CONTROL"/>
+ <point positionX="8200" positionY="9200" polygonFlags="SYMMETRIC"/>
+ <point positionX="7800" positionY="9400" polygonFlags="CONTROL"/>
+ <point positionX="9800" positionY="7800" polygonFlags="CONTROL"/>
+ <point positionX="9800" positionY="9800" polygonFlags="SYMMETRIC"/>
+ <point positionX="9800" positionY="11800" polygonFlags="CONTROL"/>
+ <point positionX="13600" positionY="11800" polygonFlags="CONTROL"/>
+ <point positionX="10800" positionY="8600" polygonFlags="SYMMETRIC"/>
+ <point positionX="8000" positionY="5400" polygonFlags="CONTROL"/>
+ <point positionX="10000" positionY="14000" polygonFlags="CONTROL"/>
+ <point positionX="11600" positionY="14000" polygonFlags="SYMMETRIC"/>
+ <point positionX="13200" positionY="14000" polygonFlags="CONTROL"/>
+ <point positionX="7400" positionY="14800" polygonFlags="CONTROL"/>
+ <point positionX="7400" positionY="14800" polygonFlags="NORMAL"/>
+ <point positionX="9200" positionY="13600" polygonFlags="NORMAL"/>
+ </pointSequence>
+ <pointSequence>
+ <point positionX="1800" positionY="5714" polygonFlags="NORMAL"/>
+ <point positionX="1800" positionY="4314" polygonFlags="CONTROL"/>
+ <point positionX="200" positionY="2714" polygonFlags="CONTROL"/>
+ <point positionX="200" positionY="2714" polygonFlags="NORMAL"/>
+ <point positionX="200" positionY="2714" polygonFlags="CONTROL"/>
+ <point positionX="1200" positionY="1114" polygonFlags="CONTROL"/>
+ <point positionX="800" positionY="1314" polygonFlags="SYMMETRIC"/>
+ <point positionX="400" positionY="1514" polygonFlags="CONTROL"/>
+ <point positionX="2400" positionY="-86" polygonFlags="CONTROL"/>
+ <point positionX="2400" positionY="1914" polygonFlags="SYMMETRIC"/>
+ <point positionX="2400" positionY="3914" polygonFlags="CONTROL"/>
+ <point positionX="6200" positionY="3914" polygonFlags="CONTROL"/>
+ <point positionX="3400" positionY="714" polygonFlags="SYMMETRIC"/>
+ <point positionX="600" positionY="-2486" polygonFlags="CONTROL"/>
+ <point positionX="2600" positionY="6114" polygonFlags="CONTROL"/>
+ <point positionX="4200" positionY="6114" polygonFlags="SYMMETRIC"/>
+ <point positionX="5800" positionY="6114" polygonFlags="CONTROL"/>
+ <point positionX="0" positionY="6914" polygonFlags="CONTROL"/>
+ <point positionX="0" positionY="6914" polygonFlags="NORMAL"/>
+ <point positionX="1800" positionY="5714" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </XShape>
+ <XShape positionX="14800" positionY="9000" sizeX="3800" sizeY="4800" type="com.sun.star.drawing.PolyLineShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="15000" positionY="13800"/>
+ <point positionX="16801" positionY="11800"/>
+ <point positionX="16400" positionY="9000"/>
+ <point positionX="18600" positionY="10000"/>
+ <point positionX="14800" positionY="11400"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="0" positionY="2171"/>
+ <point positionX="2691" positionY="2171"/>
+ <point positionX="4504" positionY="0"/>
+ <point positionX="5233" positionY="2304"/>
+ <point positionX="1650" positionY="416"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="3500.881673" column2="1712.474725" column3="13386.648093"/>
+ <Line2 column1="-3889.487950" column2="1541.378057" column3="12347.841208"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="1312" positionY="8865" sizeX="5636" sizeY="6339" type="com.sun.star.drawing.OpenBezierShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="1567.207856" column2="6230.915598" column3="41.872336"/>
+ <Line2 column1="-6267.085096" column2="1558.162962" column3="14880.349578"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <pointSequence>
+ <point positionX="1401" positionY="13600" polygonFlags="NORMAL"/>
+ <point positionX="2001" positionY="11200" polygonFlags="CONTROL"/>
+ <point positionX="6001" positionY="13600" polygonFlags="CONTROL"/>
+ <point positionX="2600" positionY="10600" polygonFlags="SYMMETRIC"/>
+ <point positionX="-801" positionY="7600" polygonFlags="CONTROL"/>
+ <point positionX="4600" positionY="9400" polygonFlags="CONTROL"/>
+ <point positionX="4600" positionY="9400" polygonFlags="NORMAL"/>
+ <point positionX="4600" positionY="9400" polygonFlags="CONTROL"/>
+ <point positionX="8001" positionY="10800" polygonFlags="CONTROL"/>
+ <point positionX="5601" positionY="11000" polygonFlags="SYMMETRIC"/>
+ <point positionX="3201" positionY="11200" polygonFlags="CONTROL"/>
+ <point positionX="5201" positionY="12600" polygonFlags="CONTROL"/>
+ <point positionX="5600" positionY="12000" polygonFlags="SYMMETRIC"/>
+ <point positionX="6000" positionY="11400" polygonFlags="CONTROL"/>
+ <point positionX="7401" positionY="13600" polygonFlags="CONTROL"/>
+ <point positionX="6801" positionY="14000" polygonFlags="SYMMETRIC"/>
+ <point positionX="6201" positionY="14399" polygonFlags="CONTROL"/>
+ <point positionX="1401" positionY="15001" polygonFlags="CONTROL"/>
+ <point positionX="1601" positionY="14000" polygonFlags="NORMAL"/>
+ <point positionX="1401" positionY="15001" polygonFlags="NORMAL"/>
+ <point positionX="1201" positionY="16000" polygonFlags="CONTROL"/>
+ <point positionX="1400" positionY="13000" polygonFlags="CONTROL"/>
+ <point positionX="1400" positionY="13000" polygonFlags="NORMAL"/>
+ </pointSequence>
+ <pointSequence>
+ <point positionX="1572" positionY="1008" polygonFlags="NORMAL"/>
+ <point positionX="4045" positionY="1008" polygonFlags="CONTROL"/>
+ <point positionX="2688" positionY="5471" polygonFlags="CONTROL"/>
+ <point positionX="4773" positionY="1444" polygonFlags="SYMMETRIC"/>
+ <point positionX="6858" positionY="-2583" polygonFlags="CONTROL"/>
+ <point positionX="6422" positionY="3093" polygonFlags="CONTROL"/>
+ <point positionX="6422" positionY="3093" polygonFlags="NORMAL"/>
+ <point positionX="6422" positionY="3093" polygonFlags="CONTROL"/>
+ <point positionX="5889" positionY="6732" polygonFlags="CONTROL"/>
+ <point positionX="5113" positionY="4452" polygonFlags="SYMMETRIC"/>
+ <point positionX="4337" positionY="2172" polygonFlags="CONTROL"/>
+ <point positionX="3464" positionY="4452" polygonFlags="CONTROL"/>
+ <point positionX="4143" positionY="4694" polygonFlags="SYMMETRIC"/>
+ <point positionX="4822" positionY="4936" polygonFlags="CONTROL"/>
+ <point positionX="3027" positionY="6829" polygonFlags="CONTROL"/>
+ <point positionX="2494" positionY="6344" polygonFlags="SYMMETRIC"/>
+ <point positionX="1961" positionY="5859" polygonFlags="CONTROL"/>
+ <point positionX="213" positionY="1348" polygonFlags="CONTROL"/>
+ <point positionX="1232" positionY="1299" polygonFlags="NORMAL"/>
+ <point positionX="213" positionY="1348" polygonFlags="NORMAL"/>
+ <point positionX="-805" positionY="1396" polygonFlags="CONTROL"/>
+ <point positionX="2154" positionY="862" polygonFlags="CONTROL"/>
+ <point positionX="2154" positionY="862" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </XShape>
+ <XShape positionX="20400" positionY="9800" sizeX="7000" sizeY="6000" type="com.sun.star.drawing.PolyPolygonShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="20400" positionY="13600"/>
+ <point positionX="20600" positionY="9800"/>
+ <point positionX="24200" positionY="11600"/>
+ <point positionX="27400" positionY="14400"/>
+ <point positionX="23000" positionY="15800"/>
+ <point positionX="20400" positionY="13600"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="0" positionY="3800"/>
+ <point positionX="200" positionY="0"/>
+ <point positionX="3800" positionY="1800"/>
+ <point positionX="7000" positionY="4600"/>
+ <point positionX="2600" positionY="6000"/>
+ <point positionX="0" positionY="3800"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="7000.000000" column2="0.000000" column3="20400.000000"/>
+ <Line2 column1="0.000000" column2="6000.000000" column3="9800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="2200" positionY="16600" sizeX="7800" sizeY="3000" type="com.sun.star.drawing.PolyPolygonShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="2200" positionY="16600"/>
+ <point positionX="2200" positionY="17800"/>
+ <point positionX="4000" positionY="19600"/>
+ <point positionX="4800" positionY="19600"/>
+ <point positionX="4800" positionY="18600"/>
+ <point positionX="5800" positionY="19600"/>
+ <point positionX="6400" positionY="19600"/>
+ <point positionX="7000" positionY="19000"/>
+ <point positionX="7600" positionY="19000"/>
+ <point positionX="8200" positionY="19600"/>
+ <point positionX="10000" positionY="17800"/>
+ <point positionX="4000" positionY="17800"/>
+ <point positionX="4000" positionY="16600"/>
+ <point positionX="2200" positionY="16600"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="0" positionY="7800"/>
+ <point positionX="1200" positionY="7800"/>
+ <point positionX="3000" positionY="6000"/>
+ <point positionX="3000" positionY="5200"/>
+ <point positionX="2000" positionY="5200"/>
+ <point positionX="3000" positionY="4200"/>
+ <point positionX="3000" positionY="3600"/>
+ <point positionX="2400" positionY="3000"/>
+ <point positionX="2400" positionY="2400"/>
+ <point positionX="3000" positionY="1800"/>
+ <point positionX="1200" positionY="0"/>
+ <point positionX="1200" positionY="6000"/>
+ <point positionX="0" positionY="6000"/>
+ <point positionX="0" positionY="7800"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="0.000000" column2="-7800.000000" column3="10000.000000"/>
+ <Line2 column1="3000.000000" column2="0.000000" column3="16600.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="12400" positionY="17200" sizeX="6200" sizeY="2600" type="com.sun.star.drawing.PolyPolygonShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="14600" positionY="18000"/>
+ <point positionX="13200" positionY="18000"/>
+ <point positionX="12400" positionY="18800"/>
+ <point positionX="13400" positionY="19800"/>
+ <point positionX="15400" positionY="19800"/>
+ <point positionX="17600" positionY="19800"/>
+ <point positionX="18600" positionY="18800"/>
+ <point positionX="17800" positionY="18000"/>
+ <point positionX="16400" positionY="18000"/>
+ <point positionX="16400" positionY="17200"/>
+ <point positionX="15000" positionY="17200"/>
+ <point positionX="15000" positionY="17400"/>
+ <point positionX="13800" positionY="17400"/>
+ <point positionX="13800" positionY="17600"/>
+ <point positionX="15000" positionY="17600"/>
+ <point positionX="15000" positionY="18000"/>
+ <point positionX="14000" positionY="18000"/>
+ <point positionX="14600" positionY="18000"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="2200" positionY="800"/>
+ <point positionX="800" positionY="800"/>
+ <point positionX="0" positionY="1600"/>
+ <point positionX="1000" positionY="2600"/>
+ <point positionX="3000" positionY="2600"/>
+ <point positionX="5200" positionY="2600"/>
+ <point positionX="6200" positionY="1600"/>
+ <point positionX="5400" positionY="800"/>
+ <point positionX="4000" positionY="800"/>
+ <point positionX="4000" positionY="0"/>
+ <point positionX="2600" positionY="0"/>
+ <point positionX="2600" positionY="200"/>
+ <point positionX="1400" positionY="200"/>
+ <point positionX="1400" positionY="400"/>
+ <point positionX="2600" positionY="400"/>
+ <point positionX="2600" positionY="800"/>
+ <point positionX="1600" positionY="800"/>
+ <point positionX="2200" positionY="800"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="6200.000000" column2="0.000000" column3="12400.000000"/>
+ <Line2 column1="0.000000" column2="2600.000000" column3="17200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page4.xml b/sd/qa/unit/data/xml/shapes-test_page4.xml
new file mode 100644
index 000000000..3557b1038
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page4.xml
@@ -0,0 +1,611 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="2200" positionY="1800" sizeX="4400" sizeY="7000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="SQUARE" startColor="008000" endColor="800080" angle="1200" border="40" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4401.000000" column2="0.000000" column3="2200.000000"/>
+ <Line2 column1="0.000000" column2="7001.000000" column3="1800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="88" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="can" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="11800" positionY="2400" sizeX="5800" sizeY="5600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="ffff66" endColor="996633" angle="450" border="45" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5801.000000" column2="0.000000" column3="11800.000000"/>
+ <Line2 column1="0.000000" column2="5601.000000" column3="2400.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Type" value="cube" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="21400" positionY="3800" sizeX="2400" sizeY="4600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="AXIAL" startColor="ff0000" endColor="ffffff" angle="0" border="50" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2401.000000" column2="0.000000" column3="21400.000000"/>
+ <Line2 column1="0.000000" column2="4601.000000" column3="3800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="88" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="can" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="20" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="88" type="0"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="68" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="44" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="2"/>
+ <EnhancedCustomShapeSegment command="2" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="24800" positionY="2000" sizeX="2800" sizeY="3000" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="000000" endColor="ffffff" angle="0" border="0" xOffset="0" yOffset="0" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2801.000000" column2="0.000000" column3="24800.000000"/>
+ <Line2 column1="0.000000" column2="3001.000000" column3="2000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="cube" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="5400" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="12" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="1" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="11" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="7600" positionY="9800" sizeX="5600" sizeY="5600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="GRADIENT" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="RADIAL" startColor="800000" endColor="ffff00" angle="0" border="20" xOffset="30" yOffset="30" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5601.000000" column2="0.000000" column3="7600.000000"/>
+ <Line2 column1="0.000000" column2="5601.000000" column3="9800.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ellipse" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="GluePoints" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="10800" type="0"/>
+ <Second value="10800" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="360" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="9" count="1"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page5.xml b/sd/qa/unit/data/xml/shapes-test_page5.xml
new file mode 100644
index 000000000..cb0ae4724
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page5.xml
@@ -0,0 +1,664 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="4000" positionY="3200" sizeX="4800" sizeY="4200" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="TRIPLE" color="0000ff" distance="102" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4801.000000" column2="0.000000" column3="4000.000000"/>
+ <Line2 column1="0.000000" column2="4201.000000" column3="3200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="quad-bevel" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="16000" positionY="2200" sizeX="5800" sizeY="4400" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="750" textMinimumFrameWidth="500" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="102" angle="450"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5801.000000" column2="0.000000" column3="16000.000000"/>
+ <Line2 column1="0.000000" column2="4401.000000" column3="2200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="col-60da8460" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="7" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="17" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="13" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="8" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="18" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="14" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2" type="1"/>
+ <Second value="9" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="15" type="1"/>
+ <Second value="16" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="12" type="1"/>
+ <Second value="19" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="7"/>
+ <EnhancedCustomShapeSegment command="7" count="0"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="6600" positionY="10200" sizeX="4600" sizeY="8800" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="66" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="DOUBLE" color="800000" distance="76" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="4601.000000" column2="0.000000" column3="6600.000000"/>
+ <Line2 column1="0.000000" column2="8801.000000" column3="10200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="col-502ad400" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="4000" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="3" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="6" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="5" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="4" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="7" count="0"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="14400" positionY="10200" sizeX="7600" sizeY="2600" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="cfe7f5" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="000000" distance="102" angle="900"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="7601.000000" column2="0.000000" column3="14400.000000"/>
+ <Line2 column1="0.000000" column2="2601.000000" column3="10200.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="21600" height="21600"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="quad-bevel" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues>
+ <EnhancedCustomShapeAdjustmentValue value="2700" propertyState="DIRECT_VALUE"/>
+ </AdjustmentValues>
+ </PropertyValue>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="StretchX" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="StretchY" value="10800" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="21600" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="21600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="0" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="1"/>
+ <Second value="2" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles" handle="0" propertyState="DIRECT_VALUE"/>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page6.xml b/sd/qa/unit/data/xml/shapes-test_page6.xml
new file mode 100644
index 000000000..45ef53676
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page6.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="6753" positionY="13803" sizeX="14098" sizeY="971" type="com.sun.star.drawing.TableShape"/>
+ <XShape positionX="2108" positionY="1361" sizeX="14098" sizeY="9184" type="com.sun.star.drawing.TableShape"/>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/shapes-test_page7.xml b/sd/qa/unit/data/xml/shapes-test_page7.xml
new file mode 100644
index 000000000..2ebed128b
--- /dev/null
+++ b/sd/qa/unit/data/xml/shapes-test_page7.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="1361" positionY="9000" sizeX="24639" sizeY="7858" type="com.sun.star.presentation.GraphicObjectShape" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="true" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" shadow="false" shadowColor="808080" shadowTransparence="0" shadowXDistance="200" shadowYDistance="200" zOrder="0" layerID="0" layerName="layout" visible="true" printable="true" moveProtect="false" sizeProtect="false">
+ <Transformation>
+ <Line1 column1="24640.000000" column2="0.000000" column3="1361.000000"/>
+ <Line2 column1="0.000000" column2="7859.000000" column3="9000.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/tdf100491_0.xml b/sd/qa/unit/data/xml/tdf100491_0.xml
new file mode 100644
index 000000000..0c250e6fc
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf100491_0.xml
@@ -0,0 +1,563 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="3680" positionY="2451" sizeX="6" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="330" polygonFlags="NORMAL"/>
+ <point positionX="330" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="187" positionY="70" polygonFlags="NORMAL"/>
+ <point positionX="187" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="162" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="162" positionY="70" polygonFlags="NORMAL"/>
+ <point positionX="19" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="330" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="3686" positionY="2451"/>
+ <point positionX="3680" positionY="5441"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="6" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="6.000000" column2="0.000000" column3="3680.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2451.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="4324" positionY="2449" sizeX="5" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="241" polygonFlags="NORMAL"/>
+ <point positionX="530" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="287" positionY="32" polygonFlags="NORMAL"/>
+ <point positionX="287" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="262" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="262" positionY="32" polygonFlags="NORMAL"/>
+ <point positionX="19" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="241" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="4329" positionY="2449"/>
+ <point positionX="4324" positionY="5439"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="4324.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2449.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="4947" positionY="2449" sizeX="5" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="530" polygonFlags="NORMAL"/>
+ <point positionX="530" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="287" positionY="70" polygonFlags="NORMAL"/>
+ <point positionX="287" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="262" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="262" positionY="70" polygonFlags="NORMAL"/>
+ <point positionX="19" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="530" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="4952" positionY="2449"/>
+ <point positionX="4947" positionY="5439"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="4947.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2449.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="9401" positionY="2435" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="9406" positionY="2435"/>
+ <point positionX="9401" positionY="5423"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="9401.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2435.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="10043" positionY="2433" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 7" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="10048" positionY="2433"/>
+ <point positionX="10043" positionY="5421"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="10043.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2433.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="10669" positionY="2435" sizeX="5" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 8" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="474" polygonFlags="NORMAL"/>
+ <point positionX="474" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="325" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="325" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="224" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="224" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="474" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="10674" positionY="2435"/>
+ <point positionX="10669" positionY="5425"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="10669.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="12466" positionY="2433" sizeX="6" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 9" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="12472" positionY="2433"/>
+ <point positionX="12466" positionY="5421"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="6" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="6.000000" column2="0.000000" column3="12466.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2433.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="13107" positionY="2431" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 10" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="13112" positionY="2431"/>
+ <point positionX="13107" positionY="5419"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="13107.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="13731" positionY="2431" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 11" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="474" polygonFlags="NORMAL"/>
+ <point positionX="474" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="325" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="325" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="224" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="224" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="474" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="13736" positionY="2431"/>
+ <point positionX="13731" positionY="5419"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="13731.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="15872" positionY="2431" sizeX="6" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 12" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="274" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="15878" positionY="2431"/>
+ <point positionX="15872" positionY="5419"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="6" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="6.000000" column2="0.000000" column3="15872.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="16513" positionY="2430" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 13" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="196" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="16518" positionY="2430"/>
+ <point positionX="16513" positionY="5418"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="16513.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="17137" positionY="2430" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 14" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="432" polygonFlags="NORMAL"/>
+ <point positionX="274" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="432" polygonFlags="NORMAL"/>
+ <point positionX="225" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="124" positionY="432" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="432" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="17142" positionY="2430"/>
+ <point positionX="17137" positionY="5418"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="17137.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="17772" positionY="2430" sizeX="5" sizeY="2988" type="com.sun.star.drawing.LineShape" name="Straight Connector 15" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="125" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="250" positionY="174" polygonFlags="NORMAL"/>
+ <point positionX="174" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="74" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="74" positionY="275" polygonFlags="NORMAL"/>
+ <point positionX="75" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="174" polygonFlags="NORMAL"/>
+ <point positionX="125" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="17777" positionY="2430"/>
+ <point positionX="17772" positionY="5418"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2988"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="17772.000000"/>
+ <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="6549" positionY="2438" sizeX="6" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 16" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="350" positionY="344" polygonFlags="NORMAL"/>
+ <point positionX="344" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="178" positionY="19" polygonFlags="NORMAL"/>
+ <point positionX="178" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="171" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="171" positionY="19" polygonFlags="NORMAL"/>
+ <point positionX="5" positionY="350" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="344" polygonFlags="NORMAL"/>
+ <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="6555" positionY="2438"/>
+ <point positionX="6549" positionY="5428"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="6" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="6.000000" column2="0.000000" column3="6549.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2438.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="7193" positionY="2435" sizeX="5" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 17" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="246" polygonFlags="NORMAL"/>
+ <point positionX="541" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="280" positionY="13" polygonFlags="NORMAL"/>
+ <point positionX="280" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="269" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="269" positionY="13" polygonFlags="NORMAL"/>
+ <point positionX="8" positionY="250" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="246" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="7198" positionY="2435"/>
+ <point positionX="7193" positionY="5425"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="7193.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+ <XShape positionX="7816" positionY="2435" sizeX="5" sizeY="2990" type="com.sun.star.drawing.LineShape" name="Straight Connector 18" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" lineStyle="SOLID">
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart>
+ <pointSequence>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ <point positionX="550" positionY="541" polygonFlags="NORMAL"/>
+ <point positionX="541" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="280" positionY="30" polygonFlags="NORMAL"/>
+ <point positionX="280" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="269" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="269" positionY="30" polygonFlags="NORMAL"/>
+ <point positionX="8" positionY="550" polygonFlags="NORMAL"/>
+ <point positionX="0" positionY="541" polygonFlags="NORMAL"/>
+ <point positionX="275" positionY="0" polygonFlags="NORMAL"/>
+ </pointSequence>
+ </LineStart>
+ <LineEnd/>
+ <PolyPolygon>
+ <pointSequence>
+ <point positionX="7821" positionY="2435"/>
+ <point positionX="7816" positionY="5425"/>
+ </pointSequence>
+ </PolyPolygon>
+ <Geometry>
+ <pointSequence>
+ <point positionX="5" positionY="0"/>
+ <point positionX="0" positionY="2990"/>
+ </pointSequence>
+ </Geometry>
+ <Transformation>
+ <Line1 column1="5.000000" column2="0.000000" column3="7816.000000"/>
+ <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/tdf109317_0.xml b/sd/qa/unit/data/xml/tdf109317_0.xml
new file mode 100644
index 000000000..f7ed31362
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf109317_0.xml
@@ -0,0 +1,492 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="3136" positionY="3068" sizeX="3639" sizeY="6340" type="com.sun.star.drawing.CustomShape" name="Freihandform: Form 1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2573.868684" column2="4483.764100" column3="3136.000000"/>
+ <Line2 column1="-2573.868684" column2="4483.764100" column3="3068.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103371" type="0"/>
+ <Second value="22445" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-97237" type="0"/>
+ <Second value="202837" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="45832" type="0"/>
+ <Second value="1706620" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103371" type="0"/>
+ <Second value="2056518" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="160910" type="0"/>
+ <Second value="2406416" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="384845" type="0"/>
+ <Second value="2286673" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="448604" type="0"/>
+ <Second value="2121832" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="512363" type="0"/>
+ <Second value="1956991" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="342857" type="0"/>
+ <Second value="1258750" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="485926" type="0"/>
+ <Second value="1067473" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="628995" type="0"/>
+ <Second value="876196" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1367669" type="0"/>
+ <Second value="1145228" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1307020" type="0"/>
+ <Second value="974167" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1246371" type="0"/>
+ <Second value="803106" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="303979" type="0"/>
+ <Second value="-157947" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="103371" type="0"/>
+ <Second value="22445" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="12187" positionY="5984" sizeX="7764" sizeY="4016" type="com.sun.star.drawing.CustomShape" name="Freihandform: Form 2" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="5490.684156" column2="2840.447940" column3="12187.000000"/>
+ <Line2 column1="-5490.684156" column2="2840.447940" column3="5984.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="258783" type="0"/>
+ <Second value="126408" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="656889" type="0"/>
+ <Second value="61094" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2317739" type="0"/>
+ <Second value="-111522" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2675412" type="0"/>
+ <Second value="107747" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="3033086" type="0"/>
+ <Second value="327016" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2485689" type="0"/>
+ <Second value="1373600" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2404824" type="0"/>
+ <Second value="1442024" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2323959" type="0"/>
+ <Second value="1510448" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2543228" type="0"/>
+ <Second value="675359" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="2190220" type="0"/>
+ <Second value="518294" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1837212" type="0"/>
+ <Second value="361229" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="610236" type="0"/>
+ <Second value="558727" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="286775" type="0"/>
+ <Second value="499633" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-36686" type="0"/>
+ <Second value="440539" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-139323" type="0"/>
+ <Second value="191722" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="258783" type="0"/>
+ <Second value="126408" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="3136" positionY="13374" sizeX="3639" sizeY="5390" type="com.sun.star.drawing.CustomShape" name="Rechtwinkliges Dreieck 4" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2573.868684" column2="3812.012657" column3="3136.000000"/>
+ <Line2 column1="-2573.868684" column2="3812.012657" column3="13374.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-rtTriangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="13136" positionY="11766" sizeX="3913" sizeY="5183" type="com.sun.star.drawing.CustomShape" name="Rechtwinkliges Dreieck 5" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2767.615942" column2="3665.641554" column3="13136.000000"/>
+ <Line2 column1="-2767.615942" column2="3665.641554" column3="11766.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-rtTriangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="27418" positionY="11262" sizeX="3308" sizeY="4403" type="com.sun.star.drawing.CustomShape" name="Rechtwinkliges Dreieck 3" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2339.816339" column2="-3114.098264" column3="27418.000000"/>
+ <Line2 column1="2339.816339" column2="3114.098264" column3="11262.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-rtTriangle" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="6" type="1"/>
+ <Second value="4" type="1"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="2"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+ <XShape positionX="28728" positionY="762" sizeX="3186" sizeY="7824" type="com.sun.star.drawing.CustomShape" name="Freihandform: Form 6" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="0070c0" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="2253.549312" column2="-5533.110563" column3="28728.000000"/>
+ <Line2 column1="2253.549312" column2="5533.110563" column3="762.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1054550" type="0"/>
+ <Second value="60147" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="878381" type="0"/>
+ <Second value="-236264" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="75834" type="0"/>
+ <Second value="651571" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="5926" type="0"/>
+ <Second value="798378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="-63982" type="0"/>
+ <Second value="945185" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="505071" type="0"/>
+ <Second value="651571" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="635100" type="0"/>
+ <Second value="940991" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="765129" type="0"/>
+ <Second value="1230411" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="714795" type="0"/>
+ <Second value="2262257" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="786102" type="0"/>
+ <Second value="2534899" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="857408" type="0"/>
+ <Second value="2807541" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1015401" type="0"/>
+ <Second value="2983710" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1062939" type="0"/>
+ <Second value="2576844" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1110477" type="0"/>
+ <Second value="2169978" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1230719" type="0"/>
+ <Second value="356558" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="1054550" type="0"/>
+ <Second value="60147" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="5"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/tdf90338_0.xml b/sd/qa/unit/data/xml/tdf90338_0.xml
new file mode 100644
index 000000000..a357211c6
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf90338_0.xml
@@ -0,0 +1,561 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="5498" positionY="2715" sizeX="11630" sizeY="8623" type="com.sun.star.drawing.CustomShape" name="CustomShape 1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="e7e6e6" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="11631.000000" column2="0.000000" column3="5498.000000"/>
+ <Line2 column1="0.000000" column2="8624.000000" column3="2715.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates>
+ <EnhancedCustomShapeParameterPair>
+ <First value="626694" type="0"/>
+ <Second value="500766" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="658274" type="0"/>
+ <Second value="500766" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="526366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="557947" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="589527" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="658274" type="0"/>
+ <Second value="615128" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="626694" type="0"/>
+ <Second value="615128" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="595113" type="0"/>
+ <Second value="615128" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="569513" type="0"/>
+ <Second value="589527" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="569513" type="0"/>
+ <Second value="557947" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="569513" type="0"/>
+ <Second value="526366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="595113" type="0"/>
+ <Second value="500766" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="626694" type="0"/>
+ <Second value="500766" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="352919" type="0"/>
+ <Second value="500765" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="384499" type="0"/>
+ <Second value="500765" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="410100" type="0"/>
+ <Second value="526366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="410100" type="0"/>
+ <Second value="557946" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="410100" type="0"/>
+ <Second value="589527" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="384499" type="0"/>
+ <Second value="615127" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="352919" type="0"/>
+ <Second value="615127" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="321338" type="0"/>
+ <Second value="615127" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295737" type="0"/>
+ <Second value="589527" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295737" type="0"/>
+ <Second value="557946" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295737" type="0"/>
+ <Second value="526366" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="321338" type="0"/>
+ <Second value="500765" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="352919" type="0"/>
+ <Second value="500765" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="202385" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="523492" type="0"/>
+ <Second value="202385" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="550800" type="0"/>
+ <Second value="229692" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="550800" type="0"/>
+ <Second value="263378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="550800" type="0"/>
+ <Second value="297063" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="523492" type="0"/>
+ <Second value="324371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="324371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="456122" type="0"/>
+ <Second value="324371" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="428814" type="0"/>
+ <Second value="297063" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="428814" type="0"/>
+ <Second value="263378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="428814" type="0"/>
+ <Second value="229692" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="456122" type="0"/>
+ <Second value="202385" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="202385" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="175791" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="137652" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="106735" type="0"/>
+ <Second value="246628" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="106735" type="0"/>
+ <Second value="303972" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="106735" type="0"/>
+ <Second value="361316" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="137652" type="0"/>
+ <Second value="407802" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="175791" type="0"/>
+ <Second value="407802" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="154055" type="0"/>
+ <Second value="383291" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="141263" type="0"/>
+ <Second value="344823" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="141263" type="0"/>
+ <Second value="303972" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="141263" type="0"/>
+ <Second value="263120" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="154055" type="0"/>
+ <Second value="224653" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="175791" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="803821" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="825557" type="0"/>
+ <Second value="224653" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="838349" type="0"/>
+ <Second value="263120" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="838349" type="0"/>
+ <Second value="303972" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="838349" type="0"/>
+ <Second value="344823" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="825557" type="0"/>
+ <Second value="383291" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="803821" type="0"/>
+ <Second value="407802" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="841960" type="0"/>
+ <Second value="407802" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="872877" type="0"/>
+ <Second value="361316" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="872877" type="0"/>
+ <Second value="303972" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="872877" type="0"/>
+ <Second value="246628" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="841960" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="803821" type="0"/>
+ <Second value="200142" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="97034" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="397937" type="0"/>
+ <Second value="97034" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="323463" type="0"/>
+ <Second value="171509" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="323463" type="0"/>
+ <Second value="263378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="323463" type="0"/>
+ <Second value="355247" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="397937" type="0"/>
+ <Second value="429722" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="429722" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="581676" type="0"/>
+ <Second value="429722" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="656151" type="0"/>
+ <Second value="355247" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="656151" type="0"/>
+ <Second value="263378" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="656151" type="0"/>
+ <Second value="171509" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="581676" type="0"/>
+ <Second value="97034" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489807" type="0"/>
+ <Second value="97034" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="139849" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="62613" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="187842" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="303971" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="0" type="0"/>
+ <Second value="420100" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="62613" type="0"/>
+ <Second value="514242" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="139849" type="0"/>
+ <Second value="514242" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="80774" type="0"/>
+ <Second value="482466" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="41350" type="0"/>
+ <Second value="398306" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="41350" type="0"/>
+ <Second value="303971" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="41350" type="0"/>
+ <Second value="209636" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="80774" type="0"/>
+ <Second value="125476" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="139849" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="839763" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="898838" type="0"/>
+ <Second value="125476" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="938262" type="0"/>
+ <Second value="209636" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="938262" type="0"/>
+ <Second value="303971" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="938262" type="0"/>
+ <Second value="398306" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="898838" type="0"/>
+ <Second value="482466" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="839763" type="0"/>
+ <Second value="514242" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="916999" type="0"/>
+ <Second value="514242" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="979612" type="0"/>
+ <Second value="420100" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="979612" type="0"/>
+ <Second value="303971" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="979612" type="0"/>
+ <Second value="187842" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="916999" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="839763" type="0"/>
+ <Second value="93700" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489806" type="0"/>
+ <Second value="69310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="596987" type="0"/>
+ <Second value="69310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="156198" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="263379" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="683875" type="0"/>
+ <Second value="370560" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="596987" type="0"/>
+ <Second value="457447" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489806" type="0"/>
+ <Second value="457447" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="382625" type="0"/>
+ <Second value="457447" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295738" type="0"/>
+ <Second value="370560" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295738" type="0"/>
+ <Second value="263379" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="295738" type="0"/>
+ <Second value="156198" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="382625" type="0"/>
+ <Second value="69310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="489806" type="0"/>
+ <Second value="69310" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="735857" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="243755" type="0"/>
+ <Second value="0" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="243755" type="0"/>
+ <Second value="658446" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ <EnhancedCustomShapeParameterPair>
+ <First value="735857" type="0"/>
+ <Second value="658446" type="0"/>
+ </EnhancedCustomShapeParameterPair>
+ </Coordinates>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="3" count="4"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="1" count="1"/>
+ <EnhancedCustomShapeSegment command="2" count="3"/>
+ <EnhancedCustomShapeSegment command="4" count="0"/>
+ <EnhancedCustomShapeSegment command="5" count="0"/>
+ </Segments>
+ </PropertyValue>
+ <PropertyValue name="SubViewSize" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="0" height="0"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/tdf90403_0.xml b/sd/qa/unit/data/xml/tdf90403_0.xml
new file mode 100644
index 000000000..297504d4b
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf90403_0.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="4233" positionY="3881" sizeX="16932" sizeY="14044" type="com.sun.star.drawing.TableShape" name="Table 1"/>
+</XShapes>
diff --git a/sd/qa/unit/data/xml/tdf92001_0.xml b/sd/qa/unit/data/xml/tdf92001_0.xml
new file mode 100644
index 000000000..3bfe7f391
--- /dev/null
+++ b/sd/qa/unit/data/xml/tdf92001_0.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<XShapes>
+ <XShape positionX="4826" positionY="4826" sizeX="19557" sizeY="12953" type="com.sun.star.drawing.CustomShape" name="CustomShape 1" fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName="">
+ <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/>
+ <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
+ <FillBitmap width="32" height="32"/>
+ <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" distance="20"/>
+ <LineStart/>
+ <LineEnd/>
+ <Transformation>
+ <Line1 column1="19558.000000" column2="0.000000" column3="4826.000000"/>
+ <Line2 column1="0.000000" column2="12954.000000" column3="4826.000000"/>
+ <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
+ </Transformation>
+ <CustomShapeGeometry>
+ <PropertyValue name="AdjustmentValues">
+ <AdjustmentValues/>
+ </PropertyValue>
+ <PropertyValue name="Equations">
+ <Equations/>
+ </PropertyValue>
+ <PropertyValue name="Handles">
+ <Handles/>
+ </PropertyValue>
+ <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="Path">
+ <Path>
+ <PropertyValue name="Coordinates">
+ <Coordinates/>
+ </PropertyValue>
+ <PropertyValue name="Segments">
+ <Segments/>
+ </PropertyValue>
+ </Path>
+ </PropertyValue>
+ <PropertyValue name="Type" value="ooxml-non-primitive" handle="0" propertyState="DIRECT_VALUE"/>
+ <PropertyValue name="ViewBox">
+ <ViewBox x="0" y="0" width="7040880" height="4663440"/>
+ </PropertyValue>
+ </CustomShapeGeometry>
+ </XShape>
+</XShapes>
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
new file mode 100644
index 000000000..4eb9d9884
--- /dev/null
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -0,0 +1,648 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <memory>
+#include <sal/config.h>
+#include <test/screenshot_test.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#include <com/sun/star/presentation/ClickAction.hpp>
+
+#include <sfx2/sfxdlg.hxx>
+#include <svl/intitem.hxx>
+#include <svl/stritem.hxx>
+#include <svl/aeitem.hxx>
+#include <editeng/colritem.hxx>
+#include <svx/xfillit0.hxx>
+#include <vcl/svapp.hxx>
+
+#include <drawdoc.hxx>
+#include <DrawDocShell.hxx>
+
+#include <sdabstdlg.hxx>
+#include <sdpage.hxx>
+#include <unomodel.hxx>
+#include <ViewShell.hxx>
+#include <drawview.hxx>
+#include <sdattr.hrc>
+#include <strings.hrc>
+#include <sdresid.hxx>
+#include <sdattr.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in sd
+class SdDialogsTest : public ScreenshotTest
+{
+private:
+ /// Document and ComponentContext
+ uno::Reference<lang::XComponent> mxComponent;
+
+ /// initially created SdAbstractDialogFactory and pointer to document
+ SdAbstractDialogFactory* mpFact;
+ SdXImpressDocument* mpImpressDocument;
+
+ /// on-demand created instances required for various dialogs to open
+ ::sd::DrawDocShell* mpDocShell;
+ ::sd::ViewShell* mpViewShell;
+ ::sd::DrawView* mpDrawView;
+
+ std::unique_ptr<SfxItemSet> mpSfxItemSetFromSdrObject;
+ std::unique_ptr<SfxItemSet> mpEmptySfxItemSet;
+ std::unique_ptr<SfxItemSet> mpEmptyFillStyleSfxItemSet;
+
+ /// helpers
+ SdAbstractDialogFactory* getSdAbstractDialogFactory();
+ SdXImpressDocument* getSdXImpressDocument();
+ ::sd::DrawDocShell* getDocShell();
+ ::sd::ViewShell* getViewShell();
+ ::sd::DrawView* getDrawView();
+ const SfxItemSet& getSfxItemSetFromSdrObject();
+ const SfxItemSet& getEmptySfxItemSet();
+ const SfxItemSet& getEmptyFillStyleSfxItemSet();
+
+ /// helper method to populate KnownDialogs, called in setUp(). Needs to be
+ /// written and has to add entries to KnownDialogs
+ virtual void registerKnownDialogsByID(mapType& rKnownDialogs) override;
+
+ /// dialog creation for known dialogs by ID. Has to be implemented for
+ /// each registered known dialog
+ virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;
+
+public:
+ SdDialogsTest();
+
+ virtual void setUp() override;
+
+ void tearDown() override;
+
+ // try to open a dialog
+ void openAnyDialog();
+
+ CPPUNIT_TEST_SUITE(SdDialogsTest);
+ CPPUNIT_TEST(openAnyDialog);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+SdDialogsTest::SdDialogsTest()
+: mxComponent(),
+ mpFact(nullptr),
+ mpImpressDocument(nullptr),
+ mpDocShell(nullptr),
+ mpViewShell(nullptr),
+ mpDrawView(nullptr)
+{
+}
+
+void SdDialogsTest::setUp()
+{
+ ScreenshotTest::setUp();
+
+ mpFact = SdAbstractDialogFactory::Create();
+ mxComponent = loadFromDesktop("private:factory/simpress", "com.sun.star.presentation.PresentationDocument");
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ mpImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ CPPUNIT_ASSERT(mpImpressDocument);
+}
+
+void SdDialogsTest::tearDown()
+{
+ mpSfxItemSetFromSdrObject.reset();
+ mpEmptySfxItemSet.reset();
+ mpEmptyFillStyleSfxItemSet.reset();
+ mxComponent->dispose();
+ ScreenshotTest::tearDown();
+}
+
+SdAbstractDialogFactory* SdDialogsTest::getSdAbstractDialogFactory()
+{
+ return mpFact;
+}
+
+SdXImpressDocument* SdDialogsTest::getSdXImpressDocument()
+{
+ return mpImpressDocument;
+}
+
+::sd::DrawDocShell* SdDialogsTest::getDocShell()
+{
+ if (!mpDocShell)
+ {
+ mpDocShell = getSdXImpressDocument()->GetDocShell();
+ CPPUNIT_ASSERT(mpDocShell);
+ }
+
+ return mpDocShell;
+}
+
+::sd::ViewShell* SdDialogsTest::getViewShell()
+{
+ if (!mpViewShell)
+ {
+ mpViewShell = getDocShell()->GetViewShell();
+ CPPUNIT_ASSERT(mpViewShell);
+ }
+
+ return mpViewShell;
+}
+
+::sd::DrawView* SdDialogsTest::getDrawView()
+{
+ if (!mpDrawView)
+ {
+ mpDrawView = dynamic_cast<::sd::DrawView*>(getViewShell()->GetDrawView());
+ CPPUNIT_ASSERT(mpDrawView);
+ }
+
+ return mpDrawView;
+}
+
+const SfxItemSet& SdDialogsTest::getSfxItemSetFromSdrObject()
+{
+ if (!mpSfxItemSetFromSdrObject)
+ {
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
+ CPPUNIT_ASSERT(pSdPage);
+ SdrObject* pSdrObj = pSdPage->GetObj(0);
+ CPPUNIT_ASSERT(pSdrObj);
+ mpSfxItemSetFromSdrObject.reset( new SfxItemSet( pSdrObj->GetMergedItemSet() ) );
+ CPPUNIT_ASSERT(mpSfxItemSetFromSdrObject);
+ }
+
+ return *mpSfxItemSetFromSdrObject;
+}
+
+const SfxItemSet& SdDialogsTest::getEmptySfxItemSet()
+{
+ if (!mpEmptySfxItemSet)
+ {
+ // needs an SfxItemSet, use the one from the 1st object
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ mpEmptySfxItemSet.reset( new SfxItemSet(pDrawDoc->GetItemPool()) );
+ CPPUNIT_ASSERT(mpEmptySfxItemSet);
+ }
+
+ return *mpEmptySfxItemSet;
+}
+
+const SfxItemSet& SdDialogsTest::getEmptyFillStyleSfxItemSet()
+{
+ if (!mpEmptyFillStyleSfxItemSet)
+ {
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ mpEmptyFillStyleSfxItemSet.reset( new SfxItemSet(pDrawDoc->GetItemPool(), svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>{}) );
+ CPPUNIT_ASSERT(mpEmptyFillStyleSfxItemSet);
+ mpEmptyFillStyleSfxItemSet->Put(XFillStyleItem(drawing::FillStyle_NONE));
+ }
+
+ return *mpEmptyFillStyleSfxItemSet;
+}
+
+void SdDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs)
+{
+ // fill map of known dialogs
+ rKnownDialogs["modules/simpress/ui/publishingdialog.ui"] = 0;
+ rKnownDialogs["modules/sdraw/ui/breakdialog.ui"] = 1;
+ rKnownDialogs["modules/sdraw/ui/copydlg.ui"] = 2;
+ rKnownDialogs["modules/simpress/ui/customslideshows.ui"] = 3;
+ rKnownDialogs["modules/sdraw/ui/drawchardialog.ui"] = 4;
+ rKnownDialogs["modules/sdraw/ui/drawpagedialog.ui"] = 5;
+ rKnownDialogs["modules/simpress/ui/dlgfield.ui"] = 6;
+ rKnownDialogs["modules/sdraw/ui/dlgsnap.ui"] = 7;
+ rKnownDialogs["modules/sdraw/ui/insertlayer.ui"] = 8;
+ rKnownDialogs["modules/sdraw/ui/insertslidesdialog.ui"] = 9;
+ rKnownDialogs["modules/sdraw/ui/crossfadedialog.ui"] = 10;
+ rKnownDialogs["modules/sdraw/ui/bulletsandnumbering.ui"] = 11;
+ rKnownDialogs["modules/sdraw/ui/drawparadialog.ui"] = 12;
+ rKnownDialogs["modules/simpress/ui/presentationdialog.ui"] = 13;
+ rKnownDialogs["modules/simpress/ui/remotedialog.ui"] = 14;
+ rKnownDialogs["modules/sdraw/ui/drawprtldialog.ui"] = 15;
+ rKnownDialogs["modules/simpress/ui/slidedesigndialog.ui"] = 16;
+ rKnownDialogs["modules/simpress/ui/templatedialog.ui"] = 17;
+ rKnownDialogs["modules/simpress/ui/interactiondialog.ui"] = 18;
+ rKnownDialogs["modules/sdraw/ui/vectorize.ui"] = 19;
+ rKnownDialogs["modules/simpress/ui/photoalbum.ui"] = 20;
+ rKnownDialogs["modules/simpress/ui/masterlayoutdlg.ui"] = 21;
+ rKnownDialogs["modules/simpress/ui/headerfooterdialog.ui"] = 22;
+}
+
+VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
+{
+ VclPtr<VclAbstractDialog> pRetval;
+
+ if (getSdAbstractDialogFactory())
+ {
+ switch (nID)
+ {
+ case 0:
+ {
+ // CreateSdPublishingDlg(vcl::Window* pWindow, DocumentType eDocType) override;
+ // this dialog does not need much, not even a SdDrawDocument. OTOH
+ // it is more a 'wizard' in that it has prev/next buttons and implicitly
+ // multiple pages. To make use of that it is necessary that the implementation
+ // supports the 'Screenshot interface'
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdPublishingDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ DocumentType::Impress);
+ break;
+ }
+ case 1:
+ {
+ // CreateBreakDlg(weld::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
+ // this dialog requires pDrawView. It does not show much when
+ // there is no object selected that can be broken up. For better
+ // results it might be necessary to add/select an object that
+ // delivers a good metafile (which is the base for breaking)
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateBreakDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ getDrawView(),
+ getDocShell(),
+ 0,
+ 0);
+ break;
+ }
+ case 2:
+ {
+ // needs an SfxItemSet, use the one from the 1st object
+ pRetval = getSdAbstractDialogFactory()->CreateCopyDlg(
+ getViewShell()->GetFrameWeld(),
+ getSfxItemSetFromSdrObject(),
+ getDrawView());
+ break;
+ }
+ case 3:
+ {
+ // CreateSdCustomShowDlg(SdDrawDocument& rDrawDoc) = 0;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+
+ pRetval = getSdAbstractDialogFactory()->CreateSdCustomShowDlg(
+ getViewShell()->GetFrameWeld(), *pDrawDoc);
+ break;
+ }
+ case 4:
+ {
+ // CreateSdTabCharDialog(const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override;
+ // needs an SfxItemSet, use an empty constructed one
+ // needs a 'SfxObjectShell* pDocShell', crashes without
+ pRetval = getSdAbstractDialogFactory()->CreateSdTabCharDialog(
+ getViewShell()->GetFrameWeld(),
+ &getEmptySfxItemSet(),
+ getDocShell());
+ break;
+ }
+ case 5:
+ {
+ // CreateSdTabPageDialog(const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true, bool bIsImpressDoc) override;
+ // needs a special SfxItemSet with merged content from page and other stuff, crashes without that (2nd page)
+ // needs a 'SfxObjectShell* pDocShell', crashes without. Also sufficient: FillStyleItemSet with XFILL_NONE set
+ pRetval = getSdAbstractDialogFactory()->CreateSdTabPageDialog(
+ getViewShell()->GetFrameWeld(),
+ &getEmptyFillStyleSfxItemSet(),
+ getDocShell(),
+ true, false);
+ break;
+ }
+ case 6:
+ {
+ // CreateSdModifyFieldDlg(weld::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) override;
+ pRetval = getSdAbstractDialogFactory()->CreateSdModifyFieldDlg(
+ getViewShell()->GetFrameWeld(),
+ nullptr,
+ getEmptySfxItemSet());
+ break;
+ }
+ case 7:
+ {
+ // CreateSdSnapLineDlg(const SfxItemSet& rInAttrs, ::sd::View* pView) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SfxItemSet aNewAttr(pDrawDoc->GetItemPool(), svl::Items<ATTR_SNAPLINE_START, ATTR_SNAPLINE_END>{});
+ aNewAttr.Put(SfxInt32Item(ATTR_SNAPLINE_X, 0));
+ aNewAttr.Put(SfxInt32Item(ATTR_SNAPLINE_Y, 0));
+ pRetval = getSdAbstractDialogFactory()->CreateSdSnapLineDlg(
+ getViewShell()->GetFrameWeld(),
+ aNewAttr,
+ getDrawView());
+ break;
+ }
+ case 8:
+ {
+ // CreateSdInsertLayerDlg(const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SfxItemSet aNewAttr(pDrawDoc->GetItemPool(), svl::Items<ATTR_LAYER_START, ATTR_LAYER_END>{});
+ const OUString aLayerName = SdResId(STR_LAYER); // + OUString::number(2);
+ aNewAttr.Put(makeSdAttrLayerName(aLayerName));
+ aNewAttr.Put(makeSdAttrLayerTitle());
+ aNewAttr.Put(makeSdAttrLayerDesc());
+ aNewAttr.Put(makeSdAttrLayerVisible());
+ aNewAttr.Put(makeSdAttrLayerPrintable());
+ aNewAttr.Put(makeSdAttrLayerLocked());
+ aNewAttr.Put(makeSdAttrLayerThisPage());
+ pRetval = getSdAbstractDialogFactory()->CreateSdInsertLayerDlg(
+ getViewShell()->GetFrameWeld(),
+ aNewAttr,
+ true, // alternative: false
+ SdResId(STR_INSERTLAYER) /* alternative: STR_MODIFYLAYER */);
+ break;
+ }
+ case 9:
+ {
+ // CreateSdInsertPagesObjsDlg(const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ const OUString aFileName("foo");
+ pRetval = getSdAbstractDialogFactory()->CreateSdInsertPagesObjsDlg(
+ getViewShell()->GetFrameWeld(),
+ pDrawDoc,
+ nullptr,
+ aFileName);
+ break;
+ }
+ case 10:
+ {
+ // CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
+ CPPUNIT_ASSERT(pSdPage);
+ SdrObject* pSdrObj = pSdPage->GetObj(0);
+ // using one SdrObject is okay, none crashes
+ CPPUNIT_ASSERT(pSdrObj);
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateMorphDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ pSdrObj,
+ pSdrObj);
+ break;
+ }
+ case 11:
+ {
+ // CreateSdOutlineBulletTabDlg(const SfxItemSet* pAttr, ::sd::View* pView = nullptr) override;
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdOutlineBulletTabDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ &getEmptySfxItemSet(),
+ getDrawView());
+ break;
+ }
+ case 12:
+ {
+ // CreateSdParagraphTabDlg(const SfxItemSet* pAttr) override;
+ pRetval = getSdAbstractDialogFactory()->CreateSdParagraphTabDlg(
+ getViewShell()->GetFrameWeld(),
+ &getEmptySfxItemSet());
+ break;
+ }
+ case 13:
+ {
+ // CreateSdStartPresentationDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs, const std::vector<OUString> &rPageNames, SdCustomShowList* pCSList) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SfxItemSet aDlgSet(pDrawDoc->GetItemPool(), svl::Items<ATTR_PRESENT_START, ATTR_PRESENT_END>{});
+ ::sd::PresentationSettings& rPresentationSettings = pDrawDoc->getPresentationSettings();
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_ALL, rPresentationSettings.mbAll));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_CUSTOMSHOW, rPresentationSettings.mbCustomShow));
+ aDlgSet.Put(SfxStringItem(ATTR_PRESENT_DIANAME, OUString()));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_ENDLESS, rPresentationSettings.mbEndless));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_MANUEL, rPresentationSettings.mbManual));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_MOUSE, rPresentationSettings.mbMouseVisible));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_PEN, rPresentationSettings.mbMouseAsPen));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_ANIMATION_ALLOWED, rPresentationSettings.mbAnimationAllowed));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_CHANGE_PAGE, !rPresentationSettings.mbLockedPages));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_ALWAYS_ON_TOP, rPresentationSettings.mbAlwaysOnTop));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_FULLSCREEN, rPresentationSettings.mbFullScreen));
+ aDlgSet.Put(SfxUInt32Item(ATTR_PRESENT_PAUSE_TIMEOUT, rPresentationSettings.mnPauseTimeout));
+ aDlgSet.Put(SfxBoolItem(ATTR_PRESENT_SHOW_PAUSELOGO, rPresentationSettings.mbShowPauseLogo));
+ //SdOptions* pOptions = SD_MOD()->GetSdOptions(DocumentType::Impress);
+ aDlgSet.Put(SfxInt32Item(ATTR_PRESENT_DISPLAY, 0 /*pOptions->GetDisplay()*/));
+ vcl::Window* pWin = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdStartPresentationDlg(
+ pWin ? pWin->GetFrameWeld() : nullptr,
+ aDlgSet,
+ std::vector<OUString>(),
+ nullptr);
+ break;
+ }
+ case 14:
+ {
+ auto const parent = Application::GetDefDialogParent();
+ // CreateRemoteDialog(vcl::Window* pWindow) override; // ad for RemoteDialog
+ pRetval = getSdAbstractDialogFactory()->CreateRemoteDialog(
+ parent == nullptr ? nullptr : parent->GetFrameWeld());
+ break;
+ }
+ case 15:
+ {
+ // CreateSdPresLayoutTemplateDlg(SfxObjectShell* pDocSh, weld::Window* pParent, const SdResId& DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool) override;
+ // use STR_PSEUDOSHEET_TITLE configuration, see futempl.cxx for more possible configurations
+ // may be nicer on the long run to take a configuration which represents a selected SdrObject
+ SfxStyleSheetBasePool* pStyleSheetPool = getDocShell()->GetStyleSheetPool();
+ CPPUNIT_ASSERT(pStyleSheetPool);
+ SfxStyleSheetBase* pStyleSheet = pStyleSheetPool->First(SfxStyleFamily::Page);
+ CPPUNIT_ASSERT(pStyleSheet);
+ vcl::Window* pWin = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdPresLayoutTemplateDlg(
+ getDocShell(),
+ pWin ? pWin->GetFrameWeld() : nullptr,
+ false,
+ *pStyleSheet,
+ PresentationObjects::Title,
+ pStyleSheetPool);
+ break;
+ }
+ case 16:
+ {
+ // CreateSdPresLayoutDlg(::sd::DrawDocShell* pDocShell, vcl::Window* pWindow, const SfxItemSet& rInAttrs) override;
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdPresLayoutDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ getDocShell(),
+ getEmptySfxItemSet());
+ break;
+ }
+ case 17:
+ {
+ // CreateSdTabTemplateDlg(const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView) override;
+ // pretty similar to CreateSdPresLayoutTemplateDlg, see above
+ // may be nicer on the long run to take a configuration which represents a selected SdrObject
+ SfxStyleSheetBasePool* pStyleSheetPool = getDocShell()->GetStyleSheetPool();
+ CPPUNIT_ASSERT(pStyleSheetPool);
+ SfxStyleSheetBase* pStyleSheet = pStyleSheetPool->First(SfxStyleFamily::Pseudo);
+ CPPUNIT_ASSERT(pStyleSheet);
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ pRetval = getSdAbstractDialogFactory()->CreateSdTabTemplateDlg(
+ getViewShell()->GetFrameWeld(),
+ getDocShell(),
+ *pStyleSheet,
+ pDrawDoc,
+ getDrawView());
+ break;
+ }
+ case 18:
+ {
+ // CreatSdActionDialog(const SfxItemSet* pAttr, ::sd::View* pView) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SfxItemSet aSet(pDrawDoc->GetItemPool(), svl::Items<ATTR_ANIMATION_START, ATTR_ACTION_END>{});
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_ACTIVE, false));
+ aSet.Put(SfxUInt16Item(ATTR_ANIMATION_EFFECT, sal_uInt16(presentation::AnimationEffect_NONE)));
+ aSet.Put(SfxUInt16Item(ATTR_ANIMATION_TEXTEFFECT, sal_uInt16(presentation::AnimationEffect_NONE)));
+ aSet.InvalidateItem(ATTR_ANIMATION_SPEED);
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, false));
+ aSet.Put(SvxColorItem(COL_LIGHTGRAY, ATTR_ANIMATION_COLOR));
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, false));
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, false));
+ aSet.InvalidateItem(ATTR_ANIMATION_SOUNDFILE);
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_PLAYFULL, false));
+ aSet.Put(SfxUInt16Item(ATTR_ACTION, sal_uInt16(presentation::ClickAction_NONE)));
+ aSet.InvalidateItem(ATTR_ACTION_FILENAME);
+ aSet.Put(SfxUInt16Item(ATTR_ACTION_EFFECT, sal_uInt16(presentation::AnimationEffect_NONE)));
+ aSet.InvalidateItem(ATTR_ACTION_EFFECTSPEED);
+ aSet.Put(SfxBoolItem(ATTR_ACTION_SOUNDON, false));
+ aSet.Put(SfxBoolItem(ATTR_ACTION_PLAYFULL, false));
+ pRetval = getSdAbstractDialogFactory()->CreatSdActionDialog(
+ getViewShell()->GetFrameWeld(),
+ &aSet,
+ getDrawView());
+ break;
+ }
+ case 19:
+ {
+ // CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
+ // works well with empty Bitmap, but my be nicer with setting one
+ Bitmap aEmptyBitmap;
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdVectorizeDlg(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ aEmptyBitmap,
+ getDocShell());
+ break;
+ }
+ case 20:
+ {
+ // CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateSdPhotoAlbumDialog(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ pDrawDoc);
+ break;
+ }
+ case 21:
+ {
+ // CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) override;
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
+ CPPUNIT_ASSERT(pSdPage);
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateMasterLayoutDialog(
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ pDrawDoc,
+ pSdPage);
+ break;
+ }
+ case 22:
+ {
+ // CreateHeaderFooterDialog(sd::ViewShell* pViewShell, weld::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage) override;
+ // This is a hard case, for two reasons:
+ // - It uses BaseClass TabPage which has a very sparse interface,
+ // need to add 'Screenshot interface' there and implement
+ // - The concrete dialog has two TabPages which use the *same*
+ // .ui file, so extended markup will be needed to differ these two
+ // cases
+ SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
+ CPPUNIT_ASSERT(pDrawDoc);
+ SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
+ CPPUNIT_ASSERT(pSdPage);
+ auto const parent = Application::GetDefDialogParent();
+ pRetval = getSdAbstractDialogFactory()->CreateHeaderFooterDialog(
+ getViewShell(),
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
+ pDrawDoc,
+ pSdPage);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+ return pRetval;
+}
+
+void SdDialogsTest::openAnyDialog()
+{
+ /// example how to process an input file containing the UXMLDescriptions of the dialogs
+ /// to dump
+ if (true)
+ {
+ processDialogBatchFile("sd/qa/unit/data/dialogs-test.txt");
+ }
+
+ /// example how to dump all known dialogs
+ if ((false))
+ {
+ processAllKnownDialogs();
+ }
+
+ /// example how to dump exactly one known dialog
+ if ((false))
+ {
+ // example for SfxTabDialog: 5 -> "modules/sdraw/ui/drawpagedialog.ui"
+ // example for TabDialog: 22 -> "modules/simpress/ui/headerfooterdialog.ui"
+ // example for self-adapted wizard: 0 -> "modules/simpress/ui/publishingdialog.ui"
+ ScopedVclPtr<VclAbstractDialog> pDlg(createDialogByID(5));
+
+ if (pDlg)
+ {
+ // known dialog, dump screenshot to path
+ dumpDialogToPath(*pDlg);
+ }
+ else
+ {
+ // unknown dialog, should not happen in this basic loop.
+ // You have probably forgotten to add a case and
+ // implementation to createDialogByID, please do this
+ }
+ }
+
+ /// example how to dump a dialog using fallback functionality
+ if ((false))
+ {
+ // unknown dialog, try fallback to generic created
+ // VclBuilder-generated instance. Keep in mind that Dialogs
+ // using this mechanism will probably not be layouted well
+ // since the setup/initialization part is missing. Thus,
+ // only use for fallback when only the UI file is available.
+ //
+ // Take any example here, it's only for demonstration - using
+ // even a known one to demonstrate the fallback possibility
+ const OString aUIXMLDescription("modules/sdraw/ui/breakdialog.ui");
+
+ dumpDialogToPath(aUIXMLDescription);
+ }
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdDialogsTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
new file mode 100644
index 000000000..74620cba8
--- /dev/null
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -0,0 +1,1182 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#include <officecfg/Office/Common.hxx>
+#include "sdmodeltestbase.hxx"
+#include <Outliner.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/escapementitem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/postitem.hxx>
+
+#include <oox/drawingml/drawingmltypes.hxx>
+
+#include <svx/svdoutl.hxx>
+#include <svx/svdotext.hxx>
+#include <svx/svdoashp.hxx>
+#include <svx/svdogrp.hxx>
+#include <svx/xflclit.hxx>
+#include <svx/xlineit0.hxx>
+#include <svx/sdooitm.hxx>
+#include <svx/sdmetitm.hxx>
+#include <unotools/mediadescriptor.hxx>
+#include <rtl/ustring.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/FontDescriptor.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/drawing/LineDash.hpp>
+#include <com/sun/star/text/WritingMode2.hpp>
+#include <com/sun/star/table/BorderLine2.hpp>
+#include <com/sun/star/table/XTable.hpp>
+#include <com/sun/star/table/XMergeableCell.hpp>
+
+#include <svx/svdotable.hxx>
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+
+using namespace css;
+
+class SdOOXMLExportTest1 : public SdModelTestBaseXML
+{
+public:
+ void testFdo90607();
+ void testTdf127237();
+ void testBnc870233_1();
+ void testBnc870233_2();
+ void testN828390_4();
+ void testN828390_5();
+ void testFdo71961();
+ void testN828390();
+ void testBnc880763();
+ void testBnc862510_5();
+ void testBnc822347_EmptyBullet();
+ void testFdo83751();
+ void testFdo79731();
+ void testTableCellFillProperties();
+ void testBulletStartNumber();
+ void testLineStyle();
+ void testCellLeftAndRightMargin();
+ void testRightToLeftParaghraph();
+ void testTextboxWithHyperlink();
+ void testMergedCells();
+ void testTableCellBorder();
+ void testBulletColor();
+ void testBulletCharAndFont();
+ void testBulletMarginAndIndentation();
+ void testParaMarginAndindentation();
+ void testTdf111884();
+ void testTdf112633();
+ void testTdf128952();
+ void testTdf127090();
+ void testCustomXml();
+ void testTdf94238();
+ void testPictureTransparency();
+ void testTdf125554();
+ void testRoundtripOwnLineStyles();
+ void testRoundtripPrstDash();
+ void testDashOnHairline();
+ void testCustomshapeBitmapfillSrcrect();
+ void testTdf128345FullTransparentGradient();
+ void testTdf128345GradientLinear();
+ void testTdf128345GradientRadial();
+ void testTdf128345GradientAxial();
+
+ CPPUNIT_TEST_SUITE(SdOOXMLExportTest1);
+
+ CPPUNIT_TEST(testFdo90607);
+ CPPUNIT_TEST(testTdf127237);
+ CPPUNIT_TEST(testBnc870233_1);
+ CPPUNIT_TEST(testBnc870233_2);
+ CPPUNIT_TEST(testN828390_4);
+ CPPUNIT_TEST(testN828390_5);
+ CPPUNIT_TEST(testFdo71961);
+ CPPUNIT_TEST(testN828390);
+ CPPUNIT_TEST(testBnc880763);
+ CPPUNIT_TEST(testBnc862510_5);
+ CPPUNIT_TEST(testBnc822347_EmptyBullet);
+ CPPUNIT_TEST(testFdo83751);
+ CPPUNIT_TEST(testFdo79731);
+ CPPUNIT_TEST(testTableCellFillProperties);
+ CPPUNIT_TEST(testBulletStartNumber);
+ CPPUNIT_TEST(testLineStyle);
+ CPPUNIT_TEST(testCellLeftAndRightMargin);
+ CPPUNIT_TEST(testRightToLeftParaghraph);
+ CPPUNIT_TEST(testTextboxWithHyperlink);
+ CPPUNIT_TEST(testMergedCells);
+ CPPUNIT_TEST(testTableCellBorder);
+ CPPUNIT_TEST(testBulletColor);
+ CPPUNIT_TEST(testBulletCharAndFont);
+ CPPUNIT_TEST(testBulletMarginAndIndentation);
+ CPPUNIT_TEST(testParaMarginAndindentation);
+ CPPUNIT_TEST(testTdf111884);
+ CPPUNIT_TEST(testTdf112633);
+ CPPUNIT_TEST(testTdf128952);
+ CPPUNIT_TEST(testTdf127090);
+ CPPUNIT_TEST(testCustomXml);
+ CPPUNIT_TEST(testTdf94238);
+ CPPUNIT_TEST(testTdf125554);
+ CPPUNIT_TEST(testPictureTransparency);
+ CPPUNIT_TEST(testRoundtripOwnLineStyles);
+ CPPUNIT_TEST(testRoundtripPrstDash);
+ CPPUNIT_TEST(testDashOnHairline);
+ CPPUNIT_TEST(testCustomshapeBitmapfillSrcrect);
+ CPPUNIT_TEST(testTdf128345FullTransparentGradient);
+ CPPUNIT_TEST(testTdf128345GradientLinear);
+ CPPUNIT_TEST(testTdf128345GradientRadial);
+ CPPUNIT_TEST(testTdf128345GradientAxial);
+
+ CPPUNIT_TEST_SUITE_END();
+
+ virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
+ {
+ static const struct { char const * pPrefix; char const * pURI; } namespaces[] =
+ {
+ // OOXML
+ { "ContentType", "http://schemas.openxmlformats.org/package/2006/content-types" },
+ { "rels", "http://schemas.openxmlformats.org/package/2006/relationships" },
+ { "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006" },
+ { "v", "urn:schemas-microsoft-com:vml" },
+ { "a", "http://schemas.openxmlformats.org/drawingml/2006/main" },
+ { "c", "http://schemas.openxmlformats.org/drawingml/2006/chart" },
+ { "m", "http://schemas.openxmlformats.org/officeDocument/2006/math" },
+ { "pic", "http://schemas.openxmlformats.org/drawingml/2006/picture" },
+ { "wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" },
+ { "p", "http://schemas.openxmlformats.org/presentationml/2006/main" },
+ { "w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main" },
+ { "a14", "http://schemas.microsoft.com/office/drawing/2010/main" },
+ { "wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape" },
+ { "wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" },
+ };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(namespaces); ++i)
+ {
+ xmlXPathRegisterNs(pXmlXPathCtx,
+ reinterpret_cast<xmlChar const *>(namespaces[i].pPrefix),
+ reinterpret_cast<xmlChar const *>(namespaces[i].pURI));
+ }
+ }
+};
+
+namespace {
+
+template< typename ItemValue, typename ItemType >
+void checkFontAttributes( const SdrTextObj* pObj, ItemValue nVal)
+{
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
+ std::vector<EECharAttrib> rLst;
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const ItemType* pAttrib = dynamic_cast<const ItemType *>((*it).pAttr);
+ if (pAttrib)
+ {
+ CPPUNIT_ASSERT_EQUAL( nVal, static_cast<ItemValue>(pAttrib->GetValue()));
+ }
+ }
+}
+
+}
+
+void SdOOXMLExportTest1::testTdf127237()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf127237.pptx"), PPTX );
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP);
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ CPPUNIT_ASSERT(pPage != nullptr);
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObj != nullptr);
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+
+ sal_Int32 nFillColor = 0;
+ uno::Reference< beans::XPropertySet > xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0070C0), nFillColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBnc870233_1()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_1.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // The problem was all shapes had the same font (the last parsed font attributes overwrote all previous ones)
+
+ // First shape has red, bold font
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
+ checkFontAttributes<Color, SvxColorItem>( pObj, Color(0xff0000) );
+ checkFontAttributes<FontWeight, SvxWeightItem>( pObj, WEIGHT_BOLD );
+ }
+
+ // Second shape has blue, italic font
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
+ checkFontAttributes<Color, SvxColorItem>( pObj, Color(0x0000ff) );
+ checkFontAttributes<FontItalic, SvxPostureItem>( pObj, ITALIC_NORMAL );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBnc870233_2()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_2.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // The problem was in some SmartArts font color was wrong
+
+ // First smart art has blue font color (direct formatting)
+ {
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>(pObjGroup->GetSubList()->GetObj(0));
+ checkFontAttributes<Color, SvxColorItem>(pObj, Color(0x0000ff));
+ }
+
+ // Second smart art has "dk2" font color (style)
+ {
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(1));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>(pObjGroup->GetSubList()->GetObj(0));
+ checkFontAttributes<Color, SvxColorItem>( pObj, Color(0x1F497D) );
+ }
+
+ // Third smart art has white font color (style)
+ {
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(2));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>(pObjGroup->GetSubList()->GetObj(0));
+ checkFontAttributes<Color, SvxColorItem>(pObj, Color(0xffffff));
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testN828390_4()
+{
+ bool bPassed = false;
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/n828390_4.odp"), ODP );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ std::vector<EECharAttrib> rLst;
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxFontHeightItem * pFontHeight = dynamic_cast<const SvxFontHeightItem *>((*it).pAttr);
+ if( pFontHeight && (*it).nStart == 18 )
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font height is wrong", static_cast<sal_uInt32>(1129), pFontHeight->GetHeight() );
+ const SvxFontItem *pFont = dynamic_cast<const SvxFontItem *>((*it).pAttr);
+ if( pFont )
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font is wrong", OUString("Arial"), pFont->GetFamilyName() );
+ bPassed = true;
+ }
+ const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
+ if( pWeight && (*it).nStart == 18 )
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font Weight is wrong", WEIGHT_BOLD, pWeight->GetWeight() );
+ }
+ }
+ CPPUNIT_ASSERT(bPassed);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testN828390_5()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/n828390_5.odp"), ODP );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem& rNumFmt = aEdit.GetParaAttribs(3).Get(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's relative size is wrong!", sal_uInt16(75), rNumFmt.GetNumRule()->GetLevel(1).GetBulletRelSize() ); // != 25
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testFdo71961()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo71961.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // Export to .pptx changes all text frames to custom shape objects, which obey TextWordWrap property
+ // (which is false for text frames otherwise and is ignored). Check that frames that should wrap still do.
+ SdrObjCustomShape *pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 1 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Text to be always wrapped" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( true, pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP).GetValue());
+
+ pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 2 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape non-wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( false, pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP).GetValue());
+
+ pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 3 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( true, pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testN828390()
+{
+ bool bPassed = false;
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n828390.pptx"), PPTX );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ std::vector<EECharAttrib> rLst;
+ // Get the object
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs(0, rLst);
+ bPassed = std::any_of(rLst.rbegin(), rLst.rend(),
+ [](const EECharAttrib& rCharAttr) {
+ const SvxEscapementItem *pFontEscapement = dynamic_cast<const SvxEscapementItem *>(rCharAttr.pAttr);
+ return pFontEscapement && (pFontEscapement->GetEsc() == -25);
+ });
+ }
+ CPPUNIT_ASSERT_MESSAGE("Subscript not exported properly", bPassed);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBnc880763()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc880763.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // Check z-order of the two shapes, use background color to identify them
+ // First object in the background has blue background color
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrObject *pObj = pObjGroup->GetSubList()->GetObj(1);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( Color(0x0000ff),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue());
+
+ // Second object at the front has green background color
+ pObj = pPage->GetObj(1);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( Color(0x00ff00),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBnc862510_5()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_5.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // Same as testBnc870237, but here we check the horizontal spacing
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrObject* pObj = pObjGroup->GetSubList()->GetObj(2);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(7510), pObj->GetMergedItem(SDRATTR_TEXT_RIGHTDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_LEFTDIST).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+// In numbering a bullet could be defined as empty (no character).
+// When exporting to OOXML make sure that the bullet is ignored and
+// not written into the file.
+void SdOOXMLExportTest1::testBnc822347_EmptyBullet()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/bnc822347_EmptyBullet.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX);
+
+ SdDrawDocument* pDoc = xDocShRef->GetDoc();
+ SdrOutliner* pOutliner = pDoc->GetInternalOutliner();
+ const SdrPage* pPage = pDoc->GetPage(1);
+ SdrObject* pObject = pPage->GetObj(0);
+ SdrTextObj* pTextObject = dynamic_cast<SdrTextObj*>(pObject);
+ CPPUNIT_ASSERT(pTextObject);
+
+ OutlinerParaObject* pOutlinerParagraphObject = pTextObject->GetOutlinerParaObject();
+ const EditTextObject& aEdit = pOutlinerParagraphObject->GetTextObject();
+
+ OUString sText = aEdit.GetText(0);
+ CPPUNIT_ASSERT_EQUAL(OUString("M3 Feature Test"), sText);
+
+ pOutliner->SetText(*pOutlinerParagraphObject);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pOutliner->GetParagraphCount());
+
+ const sal_Int16 nDepth = pOutliner->GetDepth(0);
+
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(-1), nDepth); // depth >= 0 means that the paragraph has bullets enabled
+
+ xDocShRef->DoClose();
+}
+
+//Bullets not having any text following them are not getting exported to pptx correctly.
+void SdOOXMLExportTest1::testFdo90607()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo90607.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(1) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ OutlinerParaObject* pOutlinerParagraphObject = pTxtObj->GetOutlinerParaObject();
+ const sal_Int16 nDepth = pOutlinerParagraphObject->GetDepth(0);
+ CPPUNIT_ASSERT_MESSAGE("not equal", nDepth != -1);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testFdo83751()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/fdo83751.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier( xDocShRef->GetModel(), uno::UNO_QUERY );
+ uno::Reference<document::XDocumentProperties> xProps = xDocumentPropertiesSupplier->getDocumentProperties();
+ uno::Reference<beans::XPropertySet> xUDProps( xProps->getUserDefinedProperties(), uno::UNO_QUERY );
+ OUString propValue;
+ xUDProps->getPropertyValue("Testing") >>= propValue;
+ CPPUNIT_ASSERT_EQUAL(OUString("Document"), propValue);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testFdo79731()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo79731.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT(pDoc);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testTableCellFillProperties()
+{
+ std::shared_ptr< comphelper::ConfigurationChanges > batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Cache::GraphicManager::TotalCacheSize::set(sal_Int32(1), batch);
+ batch->commit();
+
+ // Load the original file
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/Table_with_Cell_Fill.odp"), ODP);
+
+ // Export the document and import again for a check
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[PPTX].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+ xDocShRef = loadURL(aTempFile.GetURL(), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCell;
+
+ // Test Solid fill color
+ sal_Int32 nColor;
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6750207), nColor);
+
+ // Test Picture fill type for cell
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(int(drawing::FillStyle_BITMAP), static_cast<int>(aFillStyle));
+
+ // Test Gradient fill type for cell
+ xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(int(drawing::FillStyle_GRADIENT), static_cast<int>(aFillStyle));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBulletStartNumber()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n90255.pptx"), PPTX );
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's start number is wrong!", sal_Int16(3), sal_Int16(pNumFmt->GetNumRule()->GetLevel(0).GetStart()) );
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testLineStyle()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/lineStyle.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrObject const* pShape = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("no shape", pShape != nullptr);
+
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pShape->GetMergedItem(XATTR_LINESTYLE));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong style", int(drawing::LineStyle_SOLID), static_cast<int>(rStyleItem.GetValue()));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testRightToLeftParaghraph()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/rightToLeftParagraph.pptx"), PPTX);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+
+ sal_Int16 nWritingMode = 0;
+ xPropSet->getPropertyValue( "WritingMode" ) >>= nWritingMode;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong paragraph WritingMode", text::WritingMode2::RL_TB, nWritingMode);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testTextboxWithHyperlink()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/hyperlinktest.pptx"), PPTX);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+
+ // first chunk of text
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph( 0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+
+ uno::Reference<text::XTextField> xField;
+ xPropSet->getPropertyValue("TextField") >>= xField;
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xPropSet.set(xField, uno::UNO_QUERY);
+ OUString aURL;
+ xPropSet->getPropertyValue("URL") >>= aURL;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("URLs don't match", OUString("http://www.xkcd.com/"), aURL);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBulletColor()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bulletColor.pptx"), PPTX );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's color is wrong!", Color(0xff0000),pNumFmt->GetNumRule()->GetLevel(0).GetBulletColor());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBulletCharAndFont()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/bulletCharAndFont.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+
+ uno::Reference<container::XIndexAccess> xLevels(xPropSet->getPropertyValue("NumberingRules"), uno::UNO_QUERY);
+ uno::Sequence<beans::PropertyValue> aProps;
+ xLevels->getByIndex(0) >>= aProps; // 1st level
+ OUString sBulletChar(u'\xf06c');
+ for (beans::PropertyValue const & rProp : std::as_const(aProps))
+ {
+ if (rProp.Name == "BulletChar")
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "BulletChar incorrect.", sBulletChar ,rProp.Value.get<OUString>());
+ if (rProp.Name == "BulletFont")
+ {
+ awt::FontDescriptor aFontDescriptor;
+ rProp.Value >>= aFontDescriptor;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "BulletFont incorrect.", OUString("Wingdings"),aFontDescriptor.Name);
+ }
+ }
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testBulletMarginAndIndentation()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bulletMarginAndIndent.pptx"), PPTX );
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's left margin is wrong!", sal_Int32(1000),pNumFmt->GetNumRule()->GetLevel(0).GetAbsLSpace() ); // left margin is 0.79 cm
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's indentation is wrong!", sal_Int32(-998),pNumFmt->GetNumRule()->GetLevel(0). GetFirstLineOffset());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testParaMarginAndindentation()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/paraMarginAndIndentation.pptx"), PPTX);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+
+ sal_Int32 nParaLeftMargin = 0;
+ xPropSet->getPropertyValue( "ParaLeftMargin" ) >>= nParaLeftMargin;
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(1000), sal_uInt32(nParaLeftMargin));
+
+ sal_Int32 nParaFirstLineIndent = 0;
+ xPropSet->getPropertyValue( "ParaFirstLineIndent" ) >>= nParaFirstLineIndent;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-1268), nParaFirstLineIndent);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testCellLeftAndRightMargin()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/n90223.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ sal_Int32 nLeftMargin, nRightMargin;
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ uno::Reference< css::table::XTable > xTable (pTableObj->getTable(), uno::UNO_SET_THROW);
+ uno::Reference< css::table::XMergeableCell > xCell( xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xCellPropSet(xCell, uno::UNO_QUERY_THROW);
+
+ uno::Any aLeftMargin = xCellPropSet->getPropertyValue("TextLeftDistance");
+ aLeftMargin >>= nLeftMargin ;
+
+ uno::Any aRightMargin = xCellPropSet->getPropertyValue("TextRightDistance");
+ aRightMargin >>= nRightMargin ;
+
+ // Convert values to EMU
+ nLeftMargin = oox::drawingml::convertHmmToEmu( nLeftMargin );
+ nRightMargin = oox::drawingml::convertHmmToEmu( nRightMargin );
+
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(45720), nLeftMargin);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(45720), nRightMargin);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testMergedCells()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/cellspan.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+
+ CPPUNIT_ASSERT( pTableObj );
+ uno::Reference< table::XTable > xTable(pTableObj->getTable(), uno::UNO_SET_THROW);
+ uno::Reference< text::XTextRange > xText1(xTable->getCellByPosition(3, 0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL( OUString("0,3"), xText1->getString() );
+
+ uno::Reference< text::XTextRange > xText2(xTable->getCellByPosition(3, 2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL( OUString("2,3"), xText2->getString() );
+}
+
+void SdOOXMLExportTest1::testTableCellBorder()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/n90190.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ table::BorderLine2 aBorderLine;
+
+ uno::Reference< table::XTable > xTable(pTableObj->getTable(), uno::UNO_SET_THROW);
+ uno::Reference< css::table::XMergeableCell > xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCellPropSet (xCell, uno::UNO_QUERY_THROW);
+
+ xCellPropSet->getPropertyValue("LeftBorder") >>= aBorderLine;
+// While importing the table cell border line width, it converts EMU->Hmm then divided result by 2.
+// To get original value of LineWidth need to multiple by 2.
+ sal_Int32 nLeftBorder = aBorderLine.LineWidth * 2;
+ nLeftBorder = oox::drawingml::convertHmmToEmu( nLeftBorder );
+ CPPUNIT_ASSERT(nLeftBorder);
+ CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color);
+
+ xCellPropSet->getPropertyValue("RightBorder") >>= aBorderLine;
+ sal_Int32 nRightBorder = aBorderLine.LineWidth * 2;
+ nRightBorder = oox::drawingml::convertHmmToEmu( nRightBorder );
+ CPPUNIT_ASSERT(nRightBorder);
+ CPPUNIT_ASSERT_EQUAL(util::Color(16777215), aBorderLine.Color);
+
+ xCellPropSet->getPropertyValue("TopBorder") >>= aBorderLine;
+ sal_Int32 nTopBorder = aBorderLine.LineWidth * 2;
+ nTopBorder = oox::drawingml::convertHmmToEmu( nTopBorder );
+ CPPUNIT_ASSERT(nTopBorder);
+ CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color);
+
+
+ xCellPropSet->getPropertyValue("BottomBorder") >>= aBorderLine;
+ sal_Int32 nBottomBorder = aBorderLine.LineWidth * 2;
+ nBottomBorder = oox::drawingml::convertHmmToEmu( nBottomBorder );
+ CPPUNIT_ASSERT(nBottomBorder);
+ CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testTdf111884()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf111884.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ SdrObject const* pShape = pPage->GetObj(2);
+ CPPUNIT_ASSERT_MESSAGE("no shape", pShape != nullptr);
+
+ // must be a group shape
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_GRUP), pShape->GetObjIdentifier());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testTdf112633()
+{
+ // Load document and export it to a temporary file
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112633.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ xmlDocUniquePtr pRelsDoc = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
+
+ // Check image with artistic effect exists in the slide
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:extLst/a:ext/a14:imgProps/"
+ "a14:imgLayer/a14:imgEffect/a14:artisticPencilGrayscale",
+ "pencilSize", "80");
+
+ // Check there is a relation with the .wdp file that contains the backed up image
+ OUString sEmbedId1 = getXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:extLst/"
+ "a:ext/a14:imgProps/a14:imgLayer", "embed");
+ OUString sXmlPath = "/rels:Relationships/rels:Relationship[@Id='" + sEmbedId1 + "']";
+ assertXPath(pRelsDoc, OUStringToOString( sXmlPath, RTL_TEXTENCODING_UTF8 ), "Target", "../media/hdphoto1.wdp");
+
+ // Check the .wdp file exists
+ uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(
+ comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
+ CPPUNIT_ASSERT_EQUAL(true, bool(xNameAccess->hasByName("ppt/media/hdphoto1.wdp")));
+}
+
+void SdOOXMLExportTest1::testTdf128952()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf128952.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:off", "x", "360");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:off", "y", "-360");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:ext", "cx", "1919880");
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm/a:ext", "cy", "1462680");
+}
+
+void SdOOXMLExportTest1::testTdf127090()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf127090.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr", "rot", "-5400000");
+}
+
+void SdOOXMLExportTest1::testCustomXml()
+{
+ // Load document and export it to a temporary file
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/customxml.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "customXml/item1.xml");
+ CPPUNIT_ASSERT(pXmlDoc);
+ xmlDocUniquePtr pRelsDoc = parseExport(tempFile, "customXml/_rels/item1.xml.rels");
+ CPPUNIT_ASSERT(pRelsDoc);
+
+ // Check there is a relation to itemProps1.xml.
+ assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship", 1);
+ assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship[@Id='rId1']", "Target", "itemProps1.xml");
+
+ std::unique_ptr<SvStream> pStream = parseExportStream(tempFile, "ddp/ddpfile.xen");
+ CPPUNIT_ASSERT(pStream);
+}
+
+void SdOOXMLExportTest1::testTdf94238()
+{
+ // Load document and export it to a temporary file.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf94238.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+
+ uno::Reference<beans::XPropertySet> xShape(getShape(0, xPage));
+ CPPUNIT_ASSERT(xShape.is());
+
+ awt::Gradient aGradient;
+ CPPUNIT_ASSERT(xShape->getPropertyValue("FillGradient") >>= aGradient);
+
+ // Without the accompanying fix in place, this test would have failed with
+ // the following details:
+ // - aGradient.Style was awt::GradientStyle_ELLIPTICAL
+ // - aGradient.YOffset was 70
+ // - aGradient.Border was 0
+ CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RADIAL, aGradient.Style);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(100), aGradient.YOffset);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(39), aGradient.Border);
+
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected: 0, Actual : 10592673', i.e. the start color of the gradient
+ // was incorrect.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aGradient.StartColor);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x8B8B8B), aGradient.EndColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testPictureTransparency()
+{
+ // Load document and export it to a temporary file.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/image_transparency.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+
+ uno::Reference<beans::XPropertySet> xGraphicShape(getShape(0, xPage));
+ CPPUNIT_ASSERT(xGraphicShape.is());
+
+ sal_Int16 nTransparency = 0;
+ CPPUNIT_ASSERT(xGraphicShape->getPropertyValue("Transparency") >>= nTransparency);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(51), nTransparency);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testTdf125554()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125554.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+
+ uno::Reference<beans::XPropertySet> xShape = getShapeFromPage(0, 0, xDocShRef);
+ uno::Any aFillTransparenceGradientName
+ = xShape->getPropertyValue("FillTransparenceGradientName");
+ CPPUNIT_ASSERT(aFillTransparenceGradientName.has<OUString>());
+ // Without the accompanying fix in place, this test would have failed, i.e. the transparency of
+ // the shape has no gradient, so it looked like a solid fill instead of a gradient fill.
+ CPPUNIT_ASSERT(!aFillTransparenceGradientName.get<OUString>().isEmpty());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testRoundtripOwnLineStyles()
+{
+ // Load odp document and read the LineDash values.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/LineStylesOwn.odp"), ODP);
+ uno::Reference<drawing::XDrawPagesSupplier> xDocodp(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDocodp.is());
+ uno::Reference<drawing::XDrawPage> xPageodp(xDocodp->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPageodp.is());
+ drawing::LineDash aLineDashodp[10];
+ for (sal_uInt16 i= 0; i < 10; i++)
+ {
+ uno::Reference<beans::XPropertySet> xShapeodp(getShape(i, xPageodp));
+ CPPUNIT_ASSERT(xShapeodp.is());
+ xShapeodp->getPropertyValue("LineDash") >>= aLineDashodp[i];
+ }
+
+ // Save to pptx, reload and compare the LineDash values
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ uno::Reference<drawing::XDrawPagesSupplier> xDocpptx(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDocpptx.is());
+ uno::Reference<drawing::XDrawPage> xPagepptx(xDocpptx->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPagepptx.is());
+
+ for (sal_uInt16 i = 0; i < 10; i++)
+ {
+ drawing::LineDash aLineDashpptx;
+ uno::Reference<beans::XPropertySet> xShapepptx(getShape(i, xPagepptx));
+ CPPUNIT_ASSERT(xShapepptx.is());
+ xShapepptx->getPropertyValue("LineDash") >>= aLineDashpptx;
+ bool bIsSameLineDash = (aLineDashodp[i].Style == aLineDashpptx.Style
+ && aLineDashodp[i].Dots == aLineDashpptx.Dots
+ && aLineDashodp[i].DotLen == aLineDashpptx.DotLen
+ && aLineDashodp[i].Dashes == aLineDashpptx.Dashes
+ && aLineDashodp[i].DashLen == aLineDashpptx.DashLen
+ && aLineDashodp[i].Distance == aLineDashpptx.Distance);
+ CPPUNIT_ASSERT_MESSAGE("LineDash differ", bIsSameLineDash);
+ }
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testRoundtripPrstDash()
+{
+ // load and save document, compare prstDash values in saved document with original.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/presetDashDot.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ const OUString sOriginal[] = {
+ "dash",
+ "dashDot",
+ "dot",
+ "lgDash",
+ "lgDashDot",
+ "lgDashDotDot",
+ "sysDash",
+ "sysDashDot",
+ "sysDashDotDot",
+ "sysDot"
+ };
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sStart = "/p:sld/p:cSld/p:spTree/p:sp[";
+ const OString sEnd = "]/p:spPr/a:ln/a:prstDash";
+ for (sal_uInt16 i = 0; i < 10; i++)
+ {
+ OString sXmlPath = sStart + OString::number(i+1) + sEnd;
+ OUString sResaved = getXPath(pXmlDoc, sXmlPath, "val");
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("wrong prstDash", sOriginal[i], sResaved);
+ }
+
+ // tdf#126746: Make sure that dash-dot pattern starts with the longer dash, as defined in OOXML
+ // Make sure Style is drawing::DashStyle_RECTRELATIVE
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+ for (sal_uInt16 i = 0; i < 10; i++)
+ {
+ drawing::LineDash aLineDash;
+ uno::Reference<beans::XPropertySet> xShape(getShape(i, xPage));
+ CPPUNIT_ASSERT(xShape.is());
+ xShape->getPropertyValue("LineDash") >>= aLineDash;
+ CPPUNIT_ASSERT_MESSAGE("First dash is short", aLineDash.DotLen >= aLineDash.DashLen);
+ bool bIsRectRelative = aLineDash.Style == drawing::DashStyle_RECTRELATIVE;
+ CPPUNIT_ASSERT_MESSAGE("not RECTRELATIVE", bIsRectRelative);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest1::testDashOnHairline()
+{
+ // load and save document, make sure the custDash has 11 child elements.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf127267DashOnHairline.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sXmlPath = "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:ln/a:custDash/a:ds";
+ assertXPath(pXmlDoc, sXmlPath, 11);
+}
+
+void SdOOXMLExportTest1::testCustomshapeBitmapfillSrcrect()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("sd/qa/unit/data/pptx/customshape-bitmapfill-srcrect.pptx"),
+ PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sXmlPath = "//a:blipFill/a:srcRect";
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 1
+ // - Actual : 0
+ // - XPath '//a:blipFill/a:srcRect' number of nodes is incorrect
+ // i.e. <a:srcRect> was exported as <a:fillRect> in <a:stretch>, which made part of the image
+ // invisible.
+ double fLeftPercent = std::round(getXPath(pXmlDoc, sXmlPath, "l").toDouble() / 1000);
+ CPPUNIT_ASSERT_EQUAL(4.0, fLeftPercent);
+ double fRightPercent = std::round(getXPath(pXmlDoc, sXmlPath, "r").toDouble() / 1000);
+ CPPUNIT_ASSERT_EQUAL(4.0, fRightPercent);
+}
+
+void SdOOXMLExportTest1::testTdf128345FullTransparentGradient()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128345_FullTransparentGradient.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // Make sure the shape has no fill. Without the patch, fill was solid red.
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr");
+ assertXPath(pXmlDoc, sPathStart + "/a:noFill");
+}
+
+void SdOOXMLExportTest1::testTdf128345GradientLinear()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128345_GradientLinear.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // Make sure the shape has a lin fill. Without the patch, fill was solid red.
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
+ assertXPath(pXmlDoc, sPathStart + "/a:lin", "ang", "3600000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs",2);
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]", "pos", "25000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", "ff0000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val", "20000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]", "pos", "100000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", "ff0000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", "80000");
+}
+
+void SdOOXMLExportTest1::testTdf128345GradientRadial()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128345_GradientRadial.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // Make sure the shape has transparency. In OOXML alpha means 'opacity' with default
+ // 100000 for full opak, so only the full transparency with val 0 should be written.
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs",2);
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", "ff0000");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", 0);
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", "ffffff");
+ assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", "0");
+}
+
+void SdOOXMLExportTest1::testTdf128345GradientAxial()
+{
+ // Without the patch, symmtetric linear gradient with full transparence outside and
+ // full opak in the middle were imported as full transparent.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128345_GradientAxial.odp"), ODP);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+ uno::Reference<beans::XPropertySet> xShapePropSet(getShapeFromPage(0, 0, xDocShRef));
+
+ awt::Gradient aTransparenceGradient;
+ xShapePropSet->getPropertyValue("FillTransparenceGradient") >>= aTransparenceGradient;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aTransparenceGradient.StartColor);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xffffff), aTransparenceGradient.EndColor);
+ CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aTransparenceGradient.Style);
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest1);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
new file mode 100644
index 000000000..c6d2f48ae
--- /dev/null
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -0,0 +1,2930 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#include <officecfg/Office/Common.hxx>
+#include "sdmodeltestbase.hxx"
+#include <comphelper/propertysequence.hxx>
+#include <comphelper/sequence.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/unoprnms.hxx>
+
+#include <svx/svdotext.hxx>
+#include <svx/svdomedia.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/xlineit0.hxx>
+#include <svx/xlndsit.hxx>
+#include <rtl/ustring.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/animations/TransitionType.hpp>
+#include <com/sun/star/animations/TransitionSubType.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#include <com/sun/star/frame/XLoadable.hpp>
+
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+
+#include <sdpage.hxx>
+#include <cfloat>
+#include <rtl/character.hxx>
+
+using namespace css;
+using namespace css::animations;
+
+namespace {
+
+bool checkBeginWithNumber(const OUString& rStr)
+{
+ sal_Unicode aChar = (rStr.getLength() > 1) ? rStr[0] : '\0';
+ return aChar == '.' || aChar == '-' || rtl::isAsciiDigit(aChar);
+}
+
+}
+
+#define CPPUNIT_ASSERT_MOTIONPATH(expect, actual) \
+ assertMotionPath(expect, actual, CPPUNIT_SOURCELINE())
+
+static void assertMotionPath(const OUString &rStr1, const OUString &rStr2, const CppUnit::SourceLine &rSourceLine)
+{
+ sal_Int32 nIdx1 = 0;
+ sal_Int32 nIdx2 = 0;
+
+ OString sMessage = OUStringToOString("Motion path values mismatch.\nExpect: " + rStr1 +
+ "\nActual: " + rStr2, RTL_TEXTENCODING_UTF8);
+
+ while(nIdx1 != -1 && nIdx2 != -1)
+ {
+ OUString aToken1 = rStr1.getToken(0, ' ', nIdx1);
+ OUString aToken2 = rStr2.getToken(0, ' ', nIdx2);
+
+ if (checkBeginWithNumber(aToken1) && checkBeginWithNumber(aToken2))
+ assertDoubleEquals(aToken1.toDouble(), aToken2.toDouble(), DBL_EPSILON, rSourceLine, sMessage.getStr());
+ else
+ assertEquals(aToken1, aToken2, rSourceLine, sMessage.getStr());
+ }
+ assertEquals(sal_Int32(-1), nIdx1, rSourceLine, sMessage.getStr());
+ assertEquals(sal_Int32(-1), nIdx2, rSourceLine, sMessage.getStr());
+}
+
+class SdOOXMLExportTest2 : public SdModelTestBaseXML
+{
+public:
+ void testTdf93883();
+ void testTdf91378();
+ void testBnc822341();
+ void testMathObject();
+ void testMathObjectPPT2010();
+ void testTdf119015();
+ void testTdf123090();
+ void testTdf126324();
+ void testTdf80224();
+ void testExportTransitionsPPTX();
+ void testPresetShapesExport();
+ void testTdf92527();
+ void testDatetimeFieldNumberFormat();
+ void testDatetimeFieldNumberFormatPPTX();
+ void testSlideNumberField();
+ void testSlideNumberFieldPPTX();
+ void testSlideCountField();
+ void testSlideNameField();
+ void testExtFileField();
+ void testAuthorField();
+ void testTdf99224();
+ void testTdf92076();
+ void testTdf59046();
+ void testTdf105739();
+ void testPageBitmapWithTransparency();
+ void testPptmContentType();
+ void testTdf111798();
+ void testPptmVBAStream();
+ void testTdf111863();
+ void testTdf111518();
+ void testTdf100387();
+ void testClosingShapesAndLineCaps();
+ void testRotateFlip();
+ void testTdf106867();
+ void testTdf112280();
+ void testTdf112088();
+ void testTdf112333();
+ void testTdf112552();
+ void testTdf112557();
+ void testTdf128049();
+ void testTdf106026();
+ void testTdf112334();
+ void testTdf112089();
+ void testTdf112086();
+ void testTdf112647();
+ void testGroupRotation();
+ void testTdf104788();
+ void testSmartartRotation2();
+ void testTdf91999_rotateShape();
+ void testTdf114845_rotateShape();
+ void testGroupsPosition();
+ void testGroupsRotatedPosition();
+ void testAccentColor();
+ void testThemeColors();
+ void testTdf114848();
+ void testTdf68759();
+ void testTdf127901();
+ void testTdf48735();
+ void testTdf90626();
+ void testTdf107608();
+ void testTdf111786();
+ void testFontScale();
+ void testShapeAutofitPPTX();
+ void testLegacyShapeAutofitPPTX();
+ void testTdf115394();
+ void testTdf115394Zero();
+ void testTdf115005();
+ int testTdf115005_FallBack_Images(bool bAddReplacementImages);
+ void testTdf115005_FallBack_Images_On();
+ void testTdf115005_FallBack_Images_Off();
+ void testTdf118806();
+ void testTdf111789();
+ void testTdf100348_convert_Fontwork2TextWarp();
+ void testTdf1225573_FontWorkScaleX();
+ void testTdf99497_keepAppearanceOfCircleKind();
+ /// SmartArt animated elements
+ void testTdf104792();
+ void testTdf90627();
+ void testTdf104786();
+ void testTdf118783();
+ void testTdf104789();
+ void testOpenDocumentAsReadOnly();
+ void testTdf118835();
+ void testTdf118768();
+ void testTdf118836();
+ void testTdf116350TextEffects();
+ void testTdf128096();
+ void testTdf120573();
+ void testTdf118825();
+ void testTdf119118();
+ void testTdf99213();
+ void testPotxExport();
+ void testTdf44223();
+ void testSmartArtPreserve();
+ void testTdf125346();
+ void testTdf125346_2();
+ void testTdf125360();
+ void testTdf125360_1();
+ void testTdf125360_2();
+ void testTdf125551();
+ void testTdf126234();
+ void testTdf126741();
+ void testTdf127372();
+ void testTdf127379();
+ void testTdf98603();
+ void testTdf79082();
+ void testTdf129372();
+ void testShapeGlowEffect();
+ void testTdf119087();
+ void testTdf131554();
+ void testTdf132282();
+ void testTdf132201EffectOrder();
+ void testShapeSoftEdgeEffect();
+
+ CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
+
+ CPPUNIT_TEST(testTdf93883);
+ CPPUNIT_TEST(testTdf91378);
+ CPPUNIT_TEST(testBnc822341);
+ CPPUNIT_TEST(testMathObject);
+ CPPUNIT_TEST(testMathObjectPPT2010);
+ CPPUNIT_TEST(testTdf119015);
+ CPPUNIT_TEST(testTdf123090);
+ CPPUNIT_TEST(testTdf126324);
+ CPPUNIT_TEST(testTdf80224);
+ CPPUNIT_TEST(testExportTransitionsPPTX);
+ CPPUNIT_TEST(testPresetShapesExport);
+ CPPUNIT_TEST(testTdf92527);
+ CPPUNIT_TEST(testDatetimeFieldNumberFormat);
+ CPPUNIT_TEST(testDatetimeFieldNumberFormatPPTX);
+ CPPUNIT_TEST(testSlideNumberField);
+ CPPUNIT_TEST(testSlideNumberFieldPPTX);
+ CPPUNIT_TEST(testSlideCountField);
+ CPPUNIT_TEST(testSlideNameField);
+ CPPUNIT_TEST(testExtFileField);
+ CPPUNIT_TEST(testAuthorField);
+ CPPUNIT_TEST(testTdf99224);
+ CPPUNIT_TEST(testTdf92076);
+ CPPUNIT_TEST(testTdf59046);
+ CPPUNIT_TEST(testTdf105739);
+ CPPUNIT_TEST(testPageBitmapWithTransparency);
+ CPPUNIT_TEST(testPptmContentType);
+ CPPUNIT_TEST(testTdf111798);
+ CPPUNIT_TEST(testPptmVBAStream);
+ CPPUNIT_TEST(testTdf111863);
+ CPPUNIT_TEST(testTdf111518);
+ CPPUNIT_TEST(testTdf100387);
+ CPPUNIT_TEST(testClosingShapesAndLineCaps);
+ CPPUNIT_TEST(testRotateFlip);
+ CPPUNIT_TEST(testTdf106867);
+ CPPUNIT_TEST(testTdf112280);
+ CPPUNIT_TEST(testTdf112088);
+ CPPUNIT_TEST(testTdf112333);
+ CPPUNIT_TEST(testTdf112552);
+ CPPUNIT_TEST(testTdf112557);
+ CPPUNIT_TEST(testTdf128049);
+ CPPUNIT_TEST(testTdf106026);
+ CPPUNIT_TEST(testTdf112334);
+ CPPUNIT_TEST(testTdf112089);
+ CPPUNIT_TEST(testTdf112086);
+ CPPUNIT_TEST(testTdf112647);
+ CPPUNIT_TEST(testGroupRotation);
+ CPPUNIT_TEST(testTdf104788);
+ CPPUNIT_TEST(testSmartartRotation2);
+ CPPUNIT_TEST(testTdf91999_rotateShape);
+ CPPUNIT_TEST(testTdf114845_rotateShape);
+ CPPUNIT_TEST(testGroupsPosition);
+ CPPUNIT_TEST(testGroupsRotatedPosition);
+ CPPUNIT_TEST(testAccentColor);
+ CPPUNIT_TEST(testThemeColors);
+ CPPUNIT_TEST(testTdf114848);
+ CPPUNIT_TEST(testTdf68759);
+ CPPUNIT_TEST(testTdf127901);
+ CPPUNIT_TEST(testTdf48735);
+ CPPUNIT_TEST(testTdf90626);
+ CPPUNIT_TEST(testTdf107608);
+ CPPUNIT_TEST(testTdf111786);
+ CPPUNIT_TEST(testFontScale);
+ CPPUNIT_TEST(testShapeAutofitPPTX);
+ CPPUNIT_TEST(testLegacyShapeAutofitPPTX);
+ CPPUNIT_TEST(testTdf115394);
+ CPPUNIT_TEST(testTdf115394Zero);
+ CPPUNIT_TEST(testTdf115005);
+ CPPUNIT_TEST(testTdf115005_FallBack_Images_On);
+ CPPUNIT_TEST(testTdf115005_FallBack_Images_Off);
+ CPPUNIT_TEST(testTdf118806);
+ CPPUNIT_TEST(testTdf111789);
+ CPPUNIT_TEST(testTdf100348_convert_Fontwork2TextWarp);
+ CPPUNIT_TEST(testTdf1225573_FontWorkScaleX);
+ CPPUNIT_TEST(testTdf99497_keepAppearanceOfCircleKind);
+ CPPUNIT_TEST(testTdf104792);
+ CPPUNIT_TEST(testTdf90627);
+ CPPUNIT_TEST(testTdf104786);
+ CPPUNIT_TEST(testTdf118783);
+ CPPUNIT_TEST(testTdf104789);
+ CPPUNIT_TEST(testOpenDocumentAsReadOnly);
+ CPPUNIT_TEST(testTdf118835);
+ CPPUNIT_TEST(testTdf118768);
+ CPPUNIT_TEST(testTdf118836);
+ CPPUNIT_TEST(testTdf116350TextEffects);
+ CPPUNIT_TEST(testTdf128096);
+ CPPUNIT_TEST(testTdf120573);
+ CPPUNIT_TEST(testTdf118825);
+ CPPUNIT_TEST(testTdf119118);
+ CPPUNIT_TEST(testTdf99213);
+ CPPUNIT_TEST(testPotxExport);
+ CPPUNIT_TEST(testTdf44223);
+ CPPUNIT_TEST(testSmartArtPreserve);
+ CPPUNIT_TEST(testTdf125346);
+ CPPUNIT_TEST(testTdf125346_2);
+ CPPUNIT_TEST(testTdf125360);
+ CPPUNIT_TEST(testTdf125360_1);
+ CPPUNIT_TEST(testTdf125360_2);
+ CPPUNIT_TEST(testTdf125551);
+ CPPUNIT_TEST(testTdf126234);
+ CPPUNIT_TEST(testTdf126741);
+ CPPUNIT_TEST(testTdf127372);
+ CPPUNIT_TEST(testTdf127379);
+ CPPUNIT_TEST(testTdf98603);
+ CPPUNIT_TEST(testTdf79082);
+ CPPUNIT_TEST(testTdf129372);
+ CPPUNIT_TEST(testShapeGlowEffect);
+ CPPUNIT_TEST(testTdf119087);
+ CPPUNIT_TEST(testTdf131554);
+ CPPUNIT_TEST(testTdf132282);
+ CPPUNIT_TEST(testTdf132201EffectOrder);
+ CPPUNIT_TEST(testShapeSoftEdgeEffect);
+
+ CPPUNIT_TEST_SUITE_END();
+
+ virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
+ {
+ static const struct { char const * pPrefix; char const * pURI; } namespaces[] =
+ {
+ // OOXML
+ { "ContentType", "http://schemas.openxmlformats.org/package/2006/content-types" },
+ { "rels", "http://schemas.openxmlformats.org/package/2006/relationships" },
+ { "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006" },
+ { "v", "urn:schemas-microsoft-com:vml" },
+ { "a", "http://schemas.openxmlformats.org/drawingml/2006/main" },
+ { "c", "http://schemas.openxmlformats.org/drawingml/2006/chart" },
+ { "m", "http://schemas.openxmlformats.org/officeDocument/2006/math" },
+ { "pic", "http://schemas.openxmlformats.org/drawingml/2006/picture" },
+ { "wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" },
+ { "p", "http://schemas.openxmlformats.org/presentationml/2006/main" },
+ { "p14", "http://schemas.microsoft.com/office/powerpoint/2010/main" },
+ { "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships" },
+ { "w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main" },
+ { "a14", "http://schemas.microsoft.com/office/drawing/2010/main" },
+ { "wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape" },
+ { "wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" },
+ { "dgm", "http://schemas.openxmlformats.org/drawingml/2006/diagram" },
+ };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(namespaces); ++i)
+ {
+ xmlXPathRegisterNs(pXmlXPathCtx,
+ reinterpret_cast<xmlChar const *>(namespaces[i].pPrefix),
+ reinterpret_cast<xmlChar const *>(namespaces[i].pURI));
+ }
+ }
+
+};
+
+void SdOOXMLExportTest2::testTdf93883()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf93883.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT(!xPropSet->getPropertyValue("NumberingLevel").hasValue());
+}
+
+void SdOOXMLExportTest2::testBnc822341()
+{
+ // Check import / export of embedded text document
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/bnc822341.odp"), ODP);
+ utl::TempFile tempFile1;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile1 );
+
+ // Export an LO specific ole object (imported from an ODP document)
+ {
+ xmlDocUniquePtr pXmlDocCT = parseExport(tempFile1, "[Content_Types].xml");
+ assertXPath(pXmlDocCT,
+ "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.openxmlformats-officedocument.wordprocessingml.document']",
+ "PartName",
+ "/ppt/embeddings/oleObject1.docx");
+
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile1, "ppt/slides/_rels/slide1.xml.rels");
+ assertXPath(pXmlDocRels,
+ "/rels:Relationships/rels:Relationship[@Target='../embeddings/oleObject1.docx']",
+ "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile1, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/p:oleObj",
+ "progId",
+ "Word.Document.12");
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef.get() );
+
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier() );
+ }
+
+ utl::TempFile tempFile2;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile2 );
+
+ // Export an MS specific ole object (imported from a PPTX document)
+ {
+ xmlDocUniquePtr pXmlDocCT = parseExport(tempFile2, "[Content_Types].xml");
+ assertXPath(pXmlDocCT,
+ "/ContentType:Types/ContentType:Override[@ContentType='application/vnd.openxmlformats-officedocument.wordprocessingml.document']",
+ "PartName",
+ "/ppt/embeddings/oleObject1.docx");
+
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile2, "ppt/slides/_rels/slide1.xml.rels");
+ assertXPath(pXmlDocRels,
+ "/rels:Relationships/rels:Relationship[@Target='../embeddings/oleObject1.docx']",
+ "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package");
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile2, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/p:oleObj",
+ "progId",
+ "Word.Document.12");
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+ const SdrPage *pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != nullptr );
+
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier() );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testMathObject()
+{
+ // Check import / export of math object
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/math.odp"), ODP);
+ utl::TempFile tempFile1;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile1);
+
+ // Export an LO specific ole object (imported from an ODP document)
+ {
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile1, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice",
+ "Requires",
+ "a14");
+ assertXPathContent(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice/p:sp/p:txBody/a:p/a14:m/m:oMath/m:r[1]/m:t",
+ "a");
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier());
+ }
+
+ utl::TempFile tempFile2;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile2 );
+
+ // Export an MS specific ole object (imported from a PPTX document)
+ {
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile1, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice",
+ "Requires",
+ "a14");
+ assertXPathContent(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice/p:sp/p:txBody/a:p/a14:m/m:oMath/m:r[1]/m:t",
+ "a");
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testMathObjectPPT2010()
+{
+ // Check import / export of math object
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/Math.pptx"), PPTX);
+ utl::TempFile tempFile1;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile1);
+
+ // Export an MS specific ole object (imported from a PPTX document)
+ {
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile1, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice",
+ "Requires",
+ "a14");
+ assertXPathContent(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/mc:AlternateContent/mc:Choice/p:sp/p:txBody/a:p/a14:m/m:oMath/m:sSup/m:e/m:r[1]/m:t",
+ u"\U0001D44E"); // non-BMP char
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf119015()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf119015.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+
+ sdr::table::SdrTableObj* pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObj);
+ // The position was previously not properly initialized: (0, 0, 100, 100)
+ CPPUNIT_ASSERT_EQUAL(tools::Rectangle(Point(6991, 6902), Size(14099, 1999)),
+ pTableObj->GetLogicRect());
+ uno::Reference<table::XTable> xTable(pTableObj->getTable());
+
+ // Test that we actually have three cells: this threw css.lang.IndexOutOfBoundsException
+ uno::Reference<text::XTextRange> xTextRange(xTable->getCellByPosition(1, 0),
+ uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("A3"), xTextRange->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf123090()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf123090.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+
+ sdr::table::SdrTableObj* pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObj);
+
+ uno::Reference<table::XTable> xTable(pTableObj->getTable());
+
+ // Test that we actually have two cells: this threw css.lang.IndexOutOfBoundsException
+ uno::Reference<text::XTextRange> xTextRange(xTable->getCellByPosition(1, 0),
+ uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("aaa"), xTextRange->getString());
+
+ sal_Int32 nWidth;
+ const OUString sWidth("Width");
+ uno::Reference< css::table::XTableColumns > xColumns( xTable->getColumns(), uno::UNO_SET_THROW);
+ uno::Reference< beans::XPropertySet > xRefColumn( xColumns->getByIndex(1), uno::UNO_QUERY_THROW );
+ xRefColumn->getPropertyValue( sWidth ) >>= nWidth;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(9136), nWidth);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf126324()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf126324.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+ uno::Reference<beans::XPropertySet> xShape(getShape(0, xPage));
+ CPPUNIT_ASSERT(xShape.is());
+ uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>( xShape, uno::UNO_QUERY_THROW )->getText();
+ CPPUNIT_ASSERT_EQUAL(OUString("17"), xText->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf80224()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf80224.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph->getStart(), uno::UNO_QUERY_THROW );
+
+ sal_Int32 nCharColor;
+ xPropSet->getPropertyValue("CharColor") >>= nCharColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6644396), nCharColor);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf91378()
+{
+
+ //Check For Import and Export Both
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf91378.pptx"), PPTX);
+ for( sal_uInt32 i=0;i<2;i++)
+ {
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier( xDocShRef->GetModel(), uno::UNO_QUERY );
+ uno::Reference<document::XDocumentProperties> xProps = xDocumentPropertiesSupplier->getDocumentProperties();
+ uno::Reference<beans::XPropertySet> xUDProps( xProps->getUserDefinedProperties(), uno::UNO_QUERY );
+ OUString propValue;
+ xUDProps->getPropertyValue("Testing") >>= propValue;
+ CPPUNIT_ASSERT(propValue.isEmpty());
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ }
+ xDocShRef->DoClose();
+}
+
+static bool checkTransitionOnPage(uno::Reference<drawing::XDrawPagesSupplier> const & xDoc, sal_Int32 nSlideNumber,
+ sal_Int16 nExpectedTransitionType, sal_Int16 nExpectedTransitionSubType,
+ bool bExpectedDirection = true)
+{
+ sal_Int32 nSlideIndex = nSlideNumber - 1;
+
+ CPPUNIT_ASSERT_MESSAGE("Slide/Page index out of range", nSlideIndex < xDoc->getDrawPages()->getCount());
+
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(nSlideIndex), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropSet(xPage, uno::UNO_QUERY);
+
+ sal_Int16 nTransitionType = 0;
+ xPropSet->getPropertyValue("TransitionType") >>= nTransitionType;
+
+ if (nExpectedTransitionType != nTransitionType)
+ {
+ std::cerr << "Transition type: " << nTransitionType << " " << nExpectedTransitionType << std::endl;
+ return false;
+ }
+
+ sal_Int16 nTransitionSubtype = 0;
+ xPropSet->getPropertyValue("TransitionSubtype") >>= nTransitionSubtype;
+ if (nExpectedTransitionSubType != nTransitionSubtype)
+ {
+ std::cerr << "Transition Subtype: " << nTransitionSubtype << " " << nExpectedTransitionSubType << std::endl;
+ return false;
+ }
+
+ bool bDirection = false;
+ xPropSet->getPropertyValue("TransitionDirection") >>= bDirection;
+
+ if (bExpectedDirection != bDirection)
+ {
+ std::cerr << "Transition Direction: " << (bExpectedDirection ? "normal" : "reversed")
+ << " " << (bDirection ? "normal" : "reversed") << std::endl;
+ return false;
+ }
+
+ return true;
+}
+
+void SdOOXMLExportTest2::testExportTransitionsPPTX()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/AllTransitions.odp"), ODP);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+
+ // WIPE TRANSITIONS
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 01, TransitionType::BARWIPE, TransitionSubType::TOPTOBOTTOM, false));
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 02, TransitionType::BARWIPE, TransitionSubType::LEFTTORIGHT));
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 03, TransitionType::BARWIPE, TransitionSubType::LEFTTORIGHT, false));
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 04, TransitionType::BARWIPE, TransitionSubType::TOPTOBOTTOM));
+
+ // CUT THROUGH BLACK
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 31, TransitionType::BARWIPE, TransitionSubType::FADEOVERCOLOR));
+
+ // COMB
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 41, TransitionType::PUSHWIPE, TransitionSubType::COMBHORIZONTAL));
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 42, TransitionType::PUSHWIPE, TransitionSubType::COMBVERTICAL));
+
+ // OUTSIDE TURNING CUBE
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 57, TransitionType::MISCSHAPEWIPE, TransitionSubType::CORNERSOUT));
+ // INSIDE TURNING CUBE
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 60, TransitionType::MISCSHAPEWIPE, TransitionSubType::CORNERSIN));
+
+ // FALL
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 61, TransitionType::MISCSHAPEWIPE, TransitionSubType::LEFTTORIGHT));
+
+ // VORTEX
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 70, TransitionType::MISCSHAPEWIPE, TransitionSubType::VERTICAL));
+
+ // RIPPLE
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 71, TransitionType::MISCSHAPEWIPE, TransitionSubType::HORIZONTAL));
+
+ // GLITTER
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 72, TransitionType::MISCSHAPEWIPE, TransitionSubType::DIAMOND));
+
+ // HONEYCOMB
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 73, TransitionType::MISCSHAPEWIPE, TransitionSubType::HEART));
+
+ // NEWSFLASH
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 74, TransitionType::ZOOM, TransitionSubType::ROTATEIN));
+
+ // OVAL VERTICAL - cannot be exported to PPTX so fallback to circle
+ //CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 76, TransitionType::ELLIPSEWIPE, TransitionSubType::VERTICAL));
+ CPPUNIT_ASSERT(checkTransitionOnPage(xDoc, 76, TransitionType::ELLIPSEWIPE, TransitionSubType::CIRCLE));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testPresetShapesExport()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/preset-shapes-export.odp"), ODP);
+ const char *sShapeTypeAndValues[] =
+ {
+ "wedgeEllipseCallout",
+ "adj1","val 45310",
+ "adj2","val 97194",
+ "wedgeRoundRectCallout",
+ "adj1","val 46694",
+ "adj2","val 129726",
+ "adj3","val 16667",
+ "wedgeRectCallout",
+ "adj1","val 40037",
+ "adj2","val 111694",
+ "smileyFace",
+ "adj","val -9282",
+ "can",
+ "adj","val 50000",
+ "frame",
+ "adj1","val 10490",
+ "donut",
+ "adj","val 9601",
+ "bevel",
+ "adj","val 42587",
+ "foldedCorner",
+ "adj","val 10750",
+ "verticalScroll",
+ "adj","val 25000",
+ "horizontalScroll",
+ "adj","val 25000",
+ "cube",
+ "adj","val 85129",
+ "bracketPair",
+ "adj","val 50000",
+ "sun",
+ "adj","val 12500",
+ "bracePair",
+ "adj","val 25000",
+ "cloudCallout",
+ "adj1","val 77611",
+ "adj2","val -47819",
+ "borderCallout1",
+ "adj1","val 18750",
+ "adj2","val -8333",
+ "adj3","val 170013",
+ "adj4","val 143972",
+ "borderCallout2",
+ "adj1","val 18750",
+ "adj2","val -8333",
+ "adj3","val 113768",
+ "adj4","val -81930",
+ "adj5","val -22375",
+ "adj6","val -134550",
+ "blockArc",
+ "adj1","val 13020000",
+ "adj2","val 19380000",
+ "adj3","val 3773",
+ };
+
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
+
+ xmlDocUniquePtr pXmlDocCT = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPattern( "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom[@prst='_T_']/a:avLst/a:gd[_N_]" );
+ const OString sT( "_T_" );
+ const OString sN( "_N_" );
+ const OString sPropertyName("name");
+ const OString sPropertyFmla("fmla");
+
+ size_t i = 0;
+ while(i < SAL_N_ELEMENTS( sShapeTypeAndValues )) {
+ OString sType( sShapeTypeAndValues[ i++ ] );
+ for ( size_t j = 1 ; i < SAL_N_ELEMENTS( sShapeTypeAndValues ) && OString(sShapeTypeAndValues[i]).startsWith("adj") ; ++j ) {
+ OString sXPath= sPattern.replaceFirst( sT, sType).replaceFirst( sN, OString::number(j) );
+ assertXPath(pXmlDocCT, sXPath, sPropertyName , OUString::createFromAscii(sShapeTypeAndValues[ i++ ]) );
+ assertXPath(pXmlDocCT, sXPath, sPropertyFmla , OUString::createFromAscii(sShapeTypeAndValues[ i++ ]) );
+ }
+ }
+}
+
+void SdOOXMLExportTest2::testTdf92527()
+{
+ // We draw a diamond in an empty document. A newly created diamond shape does not have
+ // CustomShapeGeometry - Path - Segments property, and previously DrawingML exporter
+ // did not export custom shapes which did not have CustomShapeGeometry - Path - Segments property.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/empty.fodp"), FODG );
+ uno::Reference<css::lang::XMultiServiceFactory> xFactory(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape1(xFactory->createInstance("com.sun.star.drawing.CustomShape"), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc1(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XDrawPage> xPage1(xDoc1->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW);
+ xPage1->add(xShape1);
+ xShape1->setSize(awt::Size(10000, 10000));
+ xShape1->setPosition(awt::Point(1000, 1000));
+ uno::Sequence<beans::PropertyValue> aShapeGeometry(comphelper::InitPropertySequence(
+ {
+ {"Type", uno::makeAny(OUString("diamond"))},
+ }));
+ uno::Reference<beans::XPropertySet> xPropertySet1(xShape1, uno::UNO_QUERY);
+ xPropertySet1->setPropertyValue("CustomShapeGeometry", uno::makeAny(aShapeGeometry));
+
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc2(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XDrawPage> xPage2(xDoc2->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape2(xPage2->getByIndex(0), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xPropertySet2( xShape2, uno::UNO_QUERY_THROW );
+ uno::Sequence<beans::PropertyValue> aProps;
+ xPropertySet2->getPropertyValue("CustomShapeGeometry") >>= aProps;
+ uno::Sequence<beans::PropertyValue> aPathProps;
+ for (beans::PropertyValue const & rProp : std::as_const(aProps))
+ {
+ if (rProp.Name == "Path")
+ aPathProps = rProp.Value.get< uno::Sequence<beans::PropertyValue> >();
+ }
+ uno::Sequence<drawing::EnhancedCustomShapeParameterPair> aCoordinates;
+ for (beans::PropertyValue const & rProp : std::as_const(aPathProps))
+ {
+ if (rProp.Name == "Coordinates")
+ aCoordinates = rProp.Value.get< uno::Sequence<drawing::EnhancedCustomShapeParameterPair> >();
+ }
+
+ // 5 coordinate pairs, 1 MoveTo, 4 LineTo
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aCoordinates.getLength());
+ xDocShRef->DoClose();
+}
+
+namespace {
+
+void matchNumberFormat( int nPage, uno::Reference< text::XTextField > const & xField)
+{
+ uno::Reference< beans::XPropertySet > xPropSet( xField, uno::UNO_QUERY_THROW );
+ sal_Int32 nNumFmt;
+ xPropSet->getPropertyValue("NumberFormat") >>= nNumFmt;
+ switch( nPage )
+ {
+ case 0: // 13/02/96
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Date fields don't match", sal_Int32(2), nNumFmt);
+ break;
+ case 1: // 13/02/1996
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Date fields don't match", sal_Int32(5), nNumFmt);
+ break;
+ case 2: // 13 February 1996
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Date fields don't match", sal_Int32(3), nNumFmt);
+ break;
+ case 3: // 13:49:38
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Time fields don't match", sal_Int32(2), nNumFmt);
+ break;
+ case 4: // 13:49
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Time fields don't match", sal_Int32(3), nNumFmt);
+ break;
+ case 5: // 01:49 PM
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Time fields don't match", sal_Int32(6), nNumFmt);
+ break;
+ case 6: // 01:49:38 PM
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Number formats of Time fields don't match", sal_Int32(7), nNumFmt);
+ }
+}
+
+}
+
+void SdOOXMLExportTest2::testDatetimeFieldNumberFormat()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/numfmt.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ for(sal_uInt16 i = 0; i <= 6; ++i)
+ {
+ matchNumberFormat( i, getTextFieldFromPage(0, 0, 0, i, xDocShRef) );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testDatetimeFieldNumberFormatPPTX()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/numfmt.pptx"), PPTX);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ for(sal_uInt16 i = 0; i <= 6; ++i)
+ {
+ matchNumberFormat( i, getTextFieldFromPage(0, 0, 0, i, xDocShRef) );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSlideNumberField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/slidenum_field.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSlideNumberFieldPPTX()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/slidenum_field.pptx"), PPTX);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSlideCountField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/slidecount_field.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSlideNameField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/slidename_field.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testExtFileField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/extfile_field.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ for(sal_uInt16 i = 0; i <= 3; ++i)
+ {
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, i, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xField, uno::UNO_QUERY_THROW );
+ sal_Int32 nNumFmt;
+ xPropSet->getPropertyValue("FileFormat") >>= nNumFmt;
+ switch( i )
+ {
+ case 0: // Path/File name
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("File formats don't match", sal_Int32(0), nNumFmt);
+ break;
+ case 1: // Path
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("File formats don't match", sal_Int32(1), nNumFmt);
+ break;
+ case 2: // File name without extension
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("File formats don't match", sal_Int32(2), nNumFmt);
+ break;
+ case 3: // File name with extension
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("File formats don't match", sal_Int32(3), nNumFmt);
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testAuthorField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/author_field.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf99224()
+{
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf99224.odp"), ODP);
+ xShell = saveAndReload(xShell.get(), PPTX);
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ // This was 0: the image with text was lost on export.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xPage->getCount());
+ xShell->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf92076()
+{
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf92076.odp"), ODP);
+ xShell = saveAndReload(xShell.get(), PPTX);
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xPage->getCount());
+ xShell->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf59046()
+{
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf59046.odp"), ODP);
+ utl::TempFile tempFile;
+ xShell = saveAndReload(xShell.get(), PPTX, &tempFile);
+ xShell->DoClose();
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocRels, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", 1);
+}
+
+void SdOOXMLExportTest2::testTdf105739()
+{
+ // Gradient was lost during saving to ODP
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf105739.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xShell = saveAndReload(xShell.get(), ODP, &tempFile);
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ uno::Reference<beans::XPropertySet> xPropSet(xPage, uno::UNO_QUERY);
+ uno::Any aAny = xPropSet->getPropertyValue("Background");
+ CPPUNIT_ASSERT(aAny.hasValue());
+ if (aAny.hasValue())
+ {
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+
+ // Test fill type
+ drawing::FillStyle aFillStyle(drawing::FillStyle_NONE);
+ aXBackgroundPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(int(drawing::FillStyle_GRADIENT), static_cast<int>(aFillStyle));
+
+ // Test gradient properties
+ com::sun::star::awt::Gradient aFillGradient;
+ aXBackgroundPropSet->getPropertyValue("FillGradient") >>= aFillGradient;
+ CPPUNIT_ASSERT_EQUAL(int(awt::GradientStyle_LINEAR), static_cast<int>(aFillGradient.Style));
+ CPPUNIT_ASSERT_EQUAL(util::Color(0xff0000), aFillGradient.StartColor);
+ CPPUNIT_ASSERT_EQUAL(util::Color(0x00b050), aFillGradient.EndColor);
+ }
+
+ xShell->DoClose();
+}
+
+void SdOOXMLExportTest2::testPageBitmapWithTransparency()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/page_transparent_bitmap.pptx"), PPTX );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "There should be exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount() );
+
+ uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+ uno::Any aAny = xPropSet->getPropertyValue( "Background" );
+ CPPUNIT_ASSERT_MESSAGE("Slide background is missing", aAny.hasValue());
+
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+ sal_Int32 nTransparence;
+ aAny = aXBackgroundPropSet->getPropertyValue( "FillTransparence" );
+ aAny >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide background transparency is wrong", sal_Int32(49), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testPptmContentType()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptm/macro.pptm"), PPTM);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTM, &tempFile);
+
+ // Assert that the content type is the one of PPTM
+ xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/presentation.xml']",
+ "ContentType",
+ "application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf111798()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf111798.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ const OUString data[][29] =
+ {
+ {
+ "2700000", "2458080", "2414880", "1439640", "1440000",
+ "moveTo", "0", "3000",
+ "lnTo[1]", "3000", "3000",
+ "lnTo[2]", "3000", "4000",
+ "lnTo[3]", "4000", "2000",
+ "lnTo[4]", "3000", "0",
+ "lnTo[5]", "3000", "1000",
+ "lnTo[6]", "0", "1000",
+ "lnTo[7]", "0", "3000"
+ },
+ {
+ "2700000", "6778080", "2414880", "1439640", "1440000",
+ "moveTo", "3000", "0",
+ "lnTo[1]", "3000", "3000",
+ "lnTo[2]", "4000", "3000",
+ "lnTo[3]", "2000", "4000",
+ "lnTo[4]", "0", "3000",
+ "lnTo[5]", "1000", "3000",
+ "lnTo[6]", "1000", "0",
+ "lnTo[7]", "3000", "0"
+ }
+ };
+
+ for (size_t nShapeIndex = 0; nShapeIndex < SAL_N_ELEMENTS(data); nShapeIndex++)
+ {
+ size_t nDataIndex = 0;
+
+ const OString sSpPr = "/p:sld/p:cSld/p:spTree/p:sp[" + OString::number(nShapeIndex + 1) + "]/p:spPr";
+ const OString sXfrm = sSpPr + "/a:xfrm";
+ assertXPath(pXmlDoc, sXfrm, "rot", data[nShapeIndex][nDataIndex++]);
+ const OString sOff = sXfrm + "/a:off";
+ assertXPath(pXmlDoc, sOff, "x", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sOff, "y", data[nShapeIndex][nDataIndex++]);
+ const OString sExt = sXfrm + "/a:ext";
+ assertXPath(pXmlDoc, sExt, "cx", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sExt, "cy", data[nShapeIndex][nDataIndex++]);
+
+ while (nDataIndex < SAL_N_ELEMENTS(data[nShapeIndex]))
+ {
+ const OString sPt = sSpPr + "/a:custGeom/a:pathLst/a:path/a:" + data[nShapeIndex][nDataIndex++].toUtf8() + "/a:pt";
+ assertXPath(pXmlDoc, sPt, "x", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sPt, "y", data[nShapeIndex][nDataIndex++]);
+ }
+ }
+}
+
+void SdOOXMLExportTest2::testPptmVBAStream()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptm/macro.pptm"), PPTM);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTM, &tempFile);
+
+ uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
+ // This failed: VBA stream was not roundtripped
+ CPPUNIT_ASSERT(xNameAccess->hasByName("ppt/vbaProject.bin"));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf111863()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf111863.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // check that transition attribute didn't change from 'out' to 'in'
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animEffect",
+ "transition", "out");
+}
+
+void SdOOXMLExportTest2::testTdf111518()
+{
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf111518.pptx"), PPTX);
+ utl::TempFile tempFile;
+ tempFile.EnableKillingFile(false);
+ xShell = saveAndReload(xShell.get(), PPTX, &tempFile);
+ xShell->DoClose();
+
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/slide1.xml");
+ OUString sExpect = "M -3.54167E-6 -4.81481E-6 L 0.39037 -0.00069 E";
+ OUString sActual = getXPath(pXmlDocRels,
+ "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animMotion",
+ "path");
+ CPPUNIT_ASSERT_MOTIONPATH(sExpect, sActual);
+}
+
+void SdOOXMLExportTest2::testTdf100387()
+{
+
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf100387.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn", "dur", "indefinite");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[1]/p:cTn", "fill", "hold");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[1]/p:cTn/p:childTnLst/p:par/p:cTn", "fill", "hold");
+
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[1]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "st", "0");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[1]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "end", "0");
+
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[2]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "st", "1");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[2]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "end", "1");
+
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[3]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "st", "2");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[3]"
+ "/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt/p:txEl/p:pRg", "end", "2");
+}
+
+// tdf#126746 Add support for Line Caps import and export
+void SdOOXMLExportTest2::testClosingShapesAndLineCaps()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/closed-shapes.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:custGeom/a:pathLst/a:path/a:moveTo/a:pt", 1);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", 1);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[2]/a:pt", 1);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 1);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln", "cap", "rnd");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln/a:miter", 1);
+
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 0);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:ln", "cap", "rnd");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:ln/a:miter", 1);
+
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 0);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:ln", "cap", "rnd");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:ln/a:miter", 1);
+
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[4]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 0);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[4]/p:spPr/a:ln", "cap", "sq");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[4]/p:spPr/a:ln/a:round", 1);
+
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 0);
+ assertXPathNoAttribute(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:ln", "cap"); // by default it is "flat" cap style
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:ln/a:bevel", 1);
+
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[6]/p:spPr/a:custGeom/a:pathLst/a:path/a:close", 0);
+ assertXPathNoAttribute(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:ln", "cap"); // by default it is "flat" cap style
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[6]/p:spPr/a:ln/a:round", 1);
+}
+
+void SdOOXMLExportTest2::testRotateFlip()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/rotate_flip.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ const OUString data[][4] =
+ {// flipH flipV x y
+ { "0", "1", "1170000", "1035720" },
+ { "1", "1", "7108560", "1036440" },
+ { "1", "0", "4140000", "1036440" }
+ };
+
+ const OUString points[][2] = { {"221", "293"}, {"506", "12" }, {"367", "0" }, {"29", "406"}, {"431", "347"}, {"145", "645"},
+ {"99", "520"}, {"0", "861"}, {"326", "765"}, {"209", "711"}, {"640", "233"}, {"640", "233"} };
+
+ for (size_t nShapeIndex = 0; nShapeIndex < SAL_N_ELEMENTS(data); nShapeIndex++)
+ {
+ size_t nDataIndex = 0;
+
+ const OString sSpPr = "/p:sld/p:cSld/p:spTree/p:sp[" + OString::number(nShapeIndex + 1) + "]/p:spPr";
+ const OString sXfrm = sSpPr + "/a:xfrm";
+ if(data[nShapeIndex][nDataIndex++] == "1")
+ assertXPath(pXmlDocContent, sXfrm, "flipH", "1");
+ if(data[nShapeIndex][nDataIndex++] == "1")
+ assertXPath(pXmlDocContent, sXfrm, "flipV", "1");
+ assertXPath(pXmlDocContent, sXfrm, "rot", "20400000");
+ const OString sOff = sXfrm + "/a:off";
+ assertXPath(pXmlDocContent, sOff, "x", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDocContent, sOff, "y", data[nShapeIndex][nDataIndex++]);
+ const OString sExt = sXfrm + "/a:ext";
+ assertXPath(pXmlDocContent, sExt, "cx", "1800000");
+ assertXPath(pXmlDocContent, sExt, "cy", "3600000");
+
+ for (size_t nPointIndex = 0; nPointIndex < SAL_N_ELEMENTS(points); nPointIndex++)
+ {
+ const OString sPt = sSpPr + "/a:custGeom/a:pathLst/a:path/a:lnTo[" + OString::number(nPointIndex + 1) + "]/a:pt";
+ assertXPath(pXmlDocContent, sPt, "x", points[nPointIndex][0]);
+ assertXPath(pXmlDocContent, sPt, "y", points[nPointIndex][1]);
+ }
+ assertXPath(pXmlDocContent, sSpPr + "/a:custGeom/a:pathLst/a:path/a:close", 1);
+ }
+}
+
+void SdOOXMLExportTest2::testTdf106867()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf106867.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef.get());
+
+ // first check that we have the media object
+ const SdrMediaObj* pMediaObj = dynamic_cast<SdrMediaObj*>(pPage->GetObj(2));
+ CPPUNIT_ASSERT_MESSAGE("no media object", pMediaObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL(OUString("vnd.sun.star.Package:ppt/media/media1.avi"), pMediaObj->getURL());
+
+ xDocShRef->DoClose();
+
+ // additional checks of the output file
+ uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
+ // check that the document contains the video stream
+ CPPUNIT_ASSERT(xNameAccess->hasByName("ppt/media/media1.avi"));
+
+ // both the ooxml and the extended markup
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/a:videoFile");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/p:extLst/p:ext/p14:media");
+
+ // target the shape with the video in the command
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:cmd/p:cBhvr/p:tgtEl/p:spTgt",
+ "spid", "42");
+}
+
+void SdOOXMLExportTest2::testTdf112280()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112280.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // check the animRot value
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animRot",
+ "by", "21600000");
+}
+
+void SdOOXMLExportTest2::testTdf112088()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112088.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // check gradient stops
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPathChildren(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:gradFill/a:gsLst", 2);
+}
+
+void SdOOXMLExportTest2::testTdf112333()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112333.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ OUString sTo = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set[1]/p:to/p:strVal", "val");
+ CPPUNIT_ASSERT_EQUAL(OUString("solid"), sTo);
+
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set[1]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("fill.type"), sAttributeName);
+
+ sTo = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set[2]/p:to/p:strVal", "val");
+ CPPUNIT_ASSERT_EQUAL(OUString("true"), sTo);
+
+ sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set[2]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("fill.on"), sAttributeName);
+
+ sTo = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animClr/p:to/a:srgbClr", "val");
+ CPPUNIT_ASSERT_EQUAL(OUString("0563c1"), sTo);
+
+ sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animClr/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("fillcolor"), sAttributeName);
+}
+
+void SdOOXMLExportTest2::testTdf112552()
+{
+ // Background fill was not displayed, but it was because of the wrong geometry
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf112552.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", "w", "21600");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path", "h", "21600");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "x", "21600");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "y", "0");
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf112557()
+{
+ // Subtitle shape should be skipped by export.
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf112557.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slideMasters/slideMaster1.xml");
+ assertXPath(pXmlDocContent, "/p:sldMaster/p:cSld/p:spTree/p:sp", 2); // title and object
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf128049()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf128049.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:custGeom", 0);
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom", "prst", "noSmoking");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom/a:avLst/a:gd", "name", "adj");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom/a:avLst/a:gd", "fmla", "val 12500");
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf106026()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf106026.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlMasterContent = parseExport(tempFile, "ppt/slideMasters/slideMaster1.xml");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[1]/a:pPr/a:spcBef/a:spcPts", "val", "1417");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[2]/a:pPr/a:spcBef/a:spcPts", "val", "1134");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[3]/a:pPr/a:spcBef/a:spcPts", "val", "850");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[4]/a:pPr/a:spcBef/a:spcPts", "val", "567");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[5]/a:pPr/a:spcBef/a:spcPts", "val", "283");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[6]/a:pPr/a:spcBef/a:spcPts", "val", "283");
+ assertXPath(pXmlMasterContent, "/p:sldMaster/p:cSld/p:spTree/p:sp/p:txBody/a:p[7]/a:pPr/a:spcBef/a:spcPts", "val", "283");
+
+ xmlDocUniquePtr pXmlSlideContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlSlideContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[1]/a:pPr/a:spcAft/a:spcPts", "val", "11339");
+ assertXPath(pXmlSlideContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[2]/a:pPr/a:spcAft/a:spcPts", "val", "11339");
+ assertXPath(pXmlSlideContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[3]/a:pPr/a:spcAft/a:spcPts", "val", "11339");
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf112334()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112334.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animClr[1]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("style.color"), sAttributeName);
+}
+
+void SdOOXMLExportTest2::testTdf112089()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112089.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ OUString sID = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:cNvPr", "id");
+ OUString sTarget = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt", "spid");
+ CPPUNIT_ASSERT_EQUAL(sID, sTarget);
+}
+
+void SdOOXMLExportTest2::testTdf112086()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112086.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ OUString sVal = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:tavLst/p:tav/p:val/p:fltVal", "val");
+ CPPUNIT_ASSERT_EQUAL(OUString("0"), sVal);
+
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[1]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("ppt_w"), sAttributeName);
+
+ sVal = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:tavLst/p:tav/p:val/p:fltVal", "val");
+ CPPUNIT_ASSERT_EQUAL(OUString("0"), sVal);
+
+ sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("ppt_h"), sAttributeName);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf112647()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf112647.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference<text::XTextRange> xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+
+ css::style::LineSpacing aLineSpacing;
+ xPropSet->getPropertyValue("ParaLineSpacing") >>= aLineSpacing;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(css::style::LineSpacingMode::FIX), aLineSpacing.Mode);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2117), aLineSpacing.Height);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testGroupRotation()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/group_rotation.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPathNoAttribute(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:grpSpPr/a:xfrm", "rot");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[1]/p:spPr/a:xfrm", "rot", "20400000");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[2]/p:spPr/a:xfrm", "rot", "20400000");
+}
+
+void SdOOXMLExportTest2::testTdf104788()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104788.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide6.xml");
+
+ OUString sVal = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[2]/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]", "to");
+ CPPUNIT_ASSERT_EQUAL(-1.0, sVal.toDouble());
+
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par[2]/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("xshear"), sAttributeName);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSmartartRotation2()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-rotation2.pptx"), PPTX);
+
+ // clear SmartArt data to check how group shapes with double-rotated children are exported, not smartart
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Sequence<beans::PropertyValue> aInteropGrabBag;
+ xShape->setPropertyValue("InteropGrabBag", uno::makeAny(aInteropGrabBag));
+
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPathContent(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[4]/p:txBody/a:p/a:r/a:t", "Text");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[4]/p:txBody/a:bodyPr", "rot", "10800000");
+ double dX = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[4]/p:spPr/a:xfrm/a:off", "x").toDouble();
+ double dY = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[4]/p:spPr/a:xfrm/a:off", "y").toDouble();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 2276280.0, dX, dX * .001);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 3158280.0, dY, dY * .001);
+}
+
+void SdOOXMLExportTest2::testTdf91999_rotateShape()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf91999_rotateShape.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:cNvPr", "name", "CustomShape 2");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm", "rot", "10800000");
+ double dX = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm/a:off", "x").toDouble();
+ double dY = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm/a:off", "y").toDouble();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 2960640.0, dX, dX * .001);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 1449000.0, dY, dY * .001);
+}
+
+void SdOOXMLExportTest2::testTdf114845_rotateShape()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf114845_rotateShape.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:nvSpPr/p:cNvPr", "name", "CustomShape 5");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm", "flipV", "1");
+ double dX = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm/a:off", "x").toDouble();
+ double dY = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm/a:off", "y").toDouble();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 4059000.0, dX, dX * .001);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL( 3287520.0, dY, dY * .001);
+}
+
+void SdOOXMLExportTest2::testGroupsPosition()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/group.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[1]/p:spPr/a:xfrm/a:off", "x", "5004000");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[1]/p:spPr/a:xfrm/a:off", "y", "3310560");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "7760160");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "3310560");
+}
+
+void SdOOXMLExportTest2::testGroupsRotatedPosition()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/group-rot.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "2857320");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "4026960");
+}
+
+void SdOOXMLExportTest2::testAccentColor()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/accent-color.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:sp/p:style/a:fillRef/a:schemeClr", "val", "accent6");
+ xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+ assertXPath(pXmlDocContent2, "/p:sld/p:cSld/p:spTree/p:sp/p:style/a:fillRef/a:schemeClr", "val", "accent6");
+ xmlDocUniquePtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml");
+ assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", "70ad47");
+ xmlDocUniquePtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml");
+ assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:accent6/a:srgbClr", "val", "deb340");
+}
+
+void SdOOXMLExportTest2::testThemeColors()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf84205.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml");
+ assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "44546a");
+ assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:accent3/a:srgbClr", "val", "a5a5a5");
+}
+
+void SdOOXMLExportTest2::testTdf114848()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf114848.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml");
+ assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d");
+ xmlDocUniquePtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml");
+ assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d");
+}
+
+void SdOOXMLExportTest2::testTdf68759()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf68759.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "x", "1687320");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "y", "1615320");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "flipH", "1");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "rot", "9600000");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "x", "3847320");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "y", "1614600");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm", "flipH", "1");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "x", "5934960");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "y", "1615320");
+
+}
+
+void SdOOXMLExportTest2::testTdf127901()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf127901.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "bright", "70000");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "contrast", "-70000");
+
+ xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+ assertXPath(pXmlDocContent2, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:grayscl", 1);
+
+ xmlDocUniquePtr pXmlDocContent3 = parseExport(tempFile, "ppt/slides/slide3.xml");
+ assertXPath(pXmlDocContent3, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:biLevel", "thresh", "50000");
+
+}
+
+void SdOOXMLExportTest2::testTdf48735()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf48735.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "b", "23627");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "l", "23627");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "r", "23627");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "t", "18842");
+}
+
+void SdOOXMLExportTest2::testTdf90626()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf90626.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[1]/a:pPr/a:buSzPct", "val", "100000");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[2]/a:pPr/a:buSzPct", "val", "150568");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[3]/a:pPr/a:buSzPct", "val", "100000");
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[4]/a:pPr/a:buSzPct", "val", "150568");
+}
+
+void SdOOXMLExportTest2::testTdf107608()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf107608.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_HATCH, aFillStyle);
+
+ bool bBackgroundFill = false;
+ xPropSet->getPropertyValue("FillBackground") >>= bBackgroundFill;
+ CPPUNIT_ASSERT(bBackgroundFill);
+
+ sal_Int32 nBackgroundColor;
+ xPropSet->getPropertyValue("FillColor") >>= nBackgroundColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x92D050), nBackgroundColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf111786()
+{
+ // Export line transparency with the color
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf111786.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ sal_uInt32 nLineColor;
+ xPropSet->getPropertyValue("LineColor") >>= nLineColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0x3465A4), nLineColor);
+
+ sal_Int16 nTransparency;
+ xPropSet->getPropertyValue("LineTransparence") >>= nTransparency;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(33), nTransparency);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testFontScale()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/font-scale.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ // Rounding errors possible, approximate value
+ OUString sScale = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:normAutofit", "fontScale");
+ if (sScale != "73000" && sScale != "72000" && sScale != "74000")
+ CPPUNIT_ASSERT_EQUAL(OUString("73000"), sScale);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testShapeAutofitPPTX()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/testShapeAutofit.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ CPPUNIT_ASSERT(pXmlDocContent);
+
+ // TextAutoGrowHeight --> "Resize shape to fit text" --> true
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:spAutoFit", 1);
+ // TextAutoGrowHeight --> "Resize shape to fit text" --> false
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
+}
+
+void SdOOXMLExportTest2::testLegacyShapeAutofitPPTX()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ CPPUNIT_ASSERT(pXmlDocContent);
+
+ // Text in a legacy rectangle
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:noAutofit", 1);
+ // Text in (closed) Polygon
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
+ // Text in a legacy ellipse
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:txBody/a:bodyPr/a:noAutofit", 1);
+}
+
+void SdOOXMLExportTest2::testTdf115394()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf115394.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ double fTransitionDuration;
+
+ // Slow in MS formats
+ SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage1->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
+
+ // Medium in MS formats
+ SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
+ fTransitionDuration = pPage2->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
+
+ // Fast in MS formats
+ SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
+ fTransitionDuration = pPage3->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
+
+ // Custom values
+ SdPage* pPage4 = xDocShRef->GetDoc()->GetSdPage(3, PageKind::Standard);
+ fTransitionDuration = pPage4->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.25, fTransitionDuration);
+
+ SdPage* pPage5 = xDocShRef->GetDoc()->GetSdPage(4, PageKind::Standard);
+ fTransitionDuration = pPage5->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(4.25, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf115394Zero()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf115394-zero.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ double fTransitionDuration;
+
+ SdPage* pPage = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.01, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf115005()
+{
+ sd::DrawDocShellRef xDocShRefOriginal = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf115005.odp"), ODP);
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRefResaved = saveAndReload(xDocShRefOriginal.get(), ODP, &tempFile);
+
+ // additional checks of the output file
+ uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
+
+ // check that the document contains original vector images
+ const uno::Sequence<OUString> names = xNameAccess->getElementNames();
+ int nSVMFiles = 0;
+ for (OUString const & s : names)
+ {
+ if(s.endsWith(".svm"))
+ nSVMFiles++;
+ }
+ CPPUNIT_ASSERT_EQUAL(3, nSVMFiles);
+}
+
+int SdOOXMLExportTest2::testTdf115005_FallBack_Images(bool bAddReplacementImages)
+{
+ sd::DrawDocShellRef xDocShRefOriginal = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp"), ODP);
+
+ // check if fallback images were not created if AddReplacementImages=true/false
+ // set AddReplacementImages
+ {
+ std::shared_ptr<comphelper::ConfigurationChanges> batch( comphelper::ConfigurationChanges::create() );
+ if ( !officecfg::Office::Common::Save::Graphic::AddReplacementImages::isReadOnly() )
+ officecfg::Office::Common::Save::Graphic::AddReplacementImages::set(bAddReplacementImages, batch);
+ batch->commit();
+ }
+
+ // save the file with already set options
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRefResaved = saveAndReload(xDocShRefOriginal.get(), ODP, &tempFile);
+
+ // additional checks of the output file
+ uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
+
+ // check that the document contains original vector images
+ const uno::Sequence<OUString> names = xNameAccess->getElementNames();
+ int nSVMFiles = 0;
+ int nPNGFiles = 0;
+ for (OUString const & n :names)
+ {
+ if(n.endsWith(".svm"))
+ nSVMFiles++;
+ if(n.endsWith(".png"))
+ nPNGFiles++;
+ }
+
+ // check results
+ CPPUNIT_ASSERT_EQUAL(1, nSVMFiles);
+ return nPNGFiles;
+}
+
+void SdOOXMLExportTest2::testTdf115005_FallBack_Images_On()
+{
+ const int nPNGFiles = testTdf115005_FallBack_Images(true);
+ CPPUNIT_ASSERT_EQUAL(1, nPNGFiles);
+}
+
+void SdOOXMLExportTest2::testTdf115005_FallBack_Images_Off()
+{
+ const int nPNGFiles = testTdf115005_FallBack_Images(false);
+ CPPUNIT_ASSERT_EQUAL(0, nPNGFiles);
+}
+
+void SdOOXMLExportTest2::testTdf118806()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118806.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "//p:animMotion", "origin", "layout");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf111789()
+{
+ // Shadow properties were not exported for text shapes.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf111789.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // First text shape has some shadow
+ {
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ bool bHasShadow = false;
+ xShape->getPropertyValue("Shadow") >>= bHasShadow;
+ CPPUNIT_ASSERT(bHasShadow);
+ double fShadowDist = 0.0;
+ xShape->getPropertyValue("ShadowXDistance") >>= fShadowDist;
+ CPPUNIT_ASSERT_EQUAL(static_cast<double>(273), fShadowDist);
+ xShape->getPropertyValue("ShadowYDistance") >>= fShadowDist;
+ CPPUNIT_ASSERT_EQUAL(static_cast<double>(273), fShadowDist);
+ sal_Int32 nColor = 0;
+ xShape->getPropertyValue("ShadowColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xFF0000), nColor);
+ sal_Int32 nTransparency = 0;
+ xShape->getPropertyValue("ShadowTransparence") >>= nTransparency;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(7), nTransparency);
+ }
+
+ // Second text shape has no shadow
+ {
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 1, 0, xDocShRef ) );
+ bool bHasShadow = false;
+ xShape->getPropertyValue("Shadow") >>= bHasShadow;
+ CPPUNIT_ASSERT(!bHasShadow);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf104792()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[1]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:set/p:cBhvr/p:tgtEl/p:spTgt", 1);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf90627()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf90627.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ // Don't export empty endCondLst without cond.
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[2]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:endCondLst[not(*)]", 0);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf104786()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104786.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide2.xml");
+ // Don't export empty 'to'
+ assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[2]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst/p:set[2]/p:to", 0);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf118783()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118783.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "//p:animRot/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("r"), sAttributeName);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf104789()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104789.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:attrNameLst/p:attrName");
+ CPPUNIT_ASSERT_EQUAL(OUString("style.opacity"), sAttributeName);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testOpenDocumentAsReadOnly()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/open-as-read-only.pptx"), PPTX);
+ CPPUNIT_ASSERT(xDocShRef->IsSecurityOptOpenReadOnly());
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ CPPUNIT_ASSERT(xDocShRef->IsSecurityOptOpenReadOnly());
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf118835()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118835.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "(//p:animClr)[1]", "clrSpc", "rgb");
+ assertXPathContent(pXmlDocContent, "(//p:animClr)[1]//p:attrName", "style.color");
+ assertXPath(pXmlDocContent, "(//p:animClr)[1]//p:to/a:srgbClr", "val", "ed1c24");
+
+ assertXPath(pXmlDocContent, "(//p:animClr)[2]", "clrSpc", "rgb");
+ assertXPathContent(pXmlDocContent, "(//p:animClr)[2]//p:attrName", "stroke.color");
+ assertXPath(pXmlDocContent, "(//p:animClr)[2]//p:to/a:srgbClr", "val", "333399");
+
+ assertXPath(pXmlDocContent, "(//p:animClr)[3]", "clrSpc", "rgb");
+ assertXPathContent(pXmlDocContent, "(//p:animClr)[3]//p:attrName", "fillcolor");
+ assertXPath(pXmlDocContent, "(//p:animClr)[3]//p:to/a:srgbClr", "val", "fcd3c1");
+
+ assertXPath(pXmlDocContent, "(//p:animClr)[5]", "clrSpc", "hsl");
+ assertXPathContent(pXmlDocContent, "(//p:animClr)[5]//p:attrName", "fillcolor");
+ assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "h", "10800000");
+ assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "s", "0");
+ assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "l", "0");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf118768()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118768-brake.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "//p:anim[1]", "from", "(-#ppt_w/2)");
+ assertXPath(pXmlDocContent, "//p:anim[1]", "to", "(#ppt_x)");
+ assertXPath(pXmlDocContent, "//p:anim[2]", "from", "0");
+
+ assertXPath(pXmlDocContent, "//p:anim[2]", "to", "-1");
+ assertXPath(pXmlDocContent, "//p:anim[2]/p:cBhvr/p:cTn", "autoRev", "1");
+
+ assertXPath(pXmlDocContent, "//p:anim[3]", "by", "(#ppt_h/3+#ppt_w*0.1)");
+ assertXPath(pXmlDocContent, "//p:anim[3]/p:cBhvr/p:cTn", "autoRev", "1");
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf118836()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118836.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "//p:animScale/p:by", "x", "250000");
+ assertXPath(pXmlDocContent, "//p:animScale/p:by", "y", "250000");
+ xDocShRef->DoClose();
+}
+
+static double getAdjustmentValue( const uno::Reference<beans::XPropertySet>& xSet )
+{
+ auto aGeomPropSeq = xSet->getPropertyValue( "CustomShapeGeometry" )
+ .get<uno::Sequence<beans::PropertyValue>>();
+ auto aGeomPropVec
+ = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(
+ aGeomPropSeq );
+
+ const OUString sName = "AdjustmentValues";
+ auto aIterator = std::find_if(
+ aGeomPropVec.begin(), aGeomPropVec.end(),
+ [sName]( const beans::PropertyValue& rValue ) { return rValue.Name == sName; } );
+
+ if (aIterator != aGeomPropVec.end())
+ {
+ uno::Sequence<drawing::EnhancedCustomShapeAdjustmentValue> aAdjustment;
+ double fResult = 0.0;
+ aIterator->Value >>= aAdjustment;
+ aAdjustment[0].Value >>= fResult;
+ return fResult;
+ }
+
+ return -1.0;
+}
+
+static bool getScaleXValue(const uno::Reference<beans::XPropertySet>& xSet)
+{
+ bool bScaleX = false;
+
+ auto aGeomPropSeq = xSet->getPropertyValue("CustomShapeGeometry")
+ .get<uno::Sequence<beans::PropertyValue>>();
+ auto aGeomPropVec
+ = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(
+ aGeomPropSeq);
+
+ const OUString sName = "TextPath";
+ auto aIterator = std::find_if(
+ aGeomPropVec.begin(), aGeomPropVec.end(),
+ [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
+
+ if (aIterator != aGeomPropVec.end())
+ {
+ uno::Sequence<beans::PropertyValue> aTextPathProperties;
+ aIterator->Value >>= aTextPathProperties;
+ const OUString sScaleX = "ScaleX";
+ auto aIterator2 = std::find_if(
+ aTextPathProperties.begin(), aTextPathProperties.end(),
+ [sScaleX](const beans::PropertyValue& rValue) { return rValue.Name == sScaleX; });
+
+ if (aIterator2 != aTextPathProperties.end())
+ {
+ aIterator2->Value >>= bScaleX;
+ }
+ }
+
+ return bScaleX;
+}
+
+void SdOOXMLExportTest2::testTdf116350TextEffects()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( "sd/qa/unit/data/pptx/tdf116350-texteffects.pptx" ), PPTX );
+
+ // Default angle for ArchUp
+ uno::Reference<beans::XPropertySet> xShape0( getShapeFromPage( 0, 0, xDocShRef ) );
+ double fAdjust = getAdjustmentValue( xShape0 );
+ CPPUNIT_ASSERT_EQUAL( 180.0, fAdjust );
+
+ bool bScaleX = getScaleXValue( xShape0 );
+ CPPUNIT_ASSERT_EQUAL( true, bScaleX );
+
+ // Default angle for ArchDown
+ uno::Reference<beans::XPropertySet> xShape14( getShapeFromPage( 14, 0, xDocShRef ) );
+ fAdjust = getAdjustmentValue( xShape14 );
+ CPPUNIT_ASSERT_EQUAL( 0.0, fAdjust );
+
+ bScaleX = getScaleXValue( xShape14 );
+ CPPUNIT_ASSERT_EQUAL( true, bScaleX );
+
+ // Angle directly set
+ uno::Reference<beans::XPropertySet> xShape1( getShapeFromPage( 1, 0, xDocShRef ) );
+ fAdjust = getAdjustmentValue( xShape1 );
+ CPPUNIT_ASSERT_EQUAL( 213.25, fAdjust );
+
+ bScaleX = getScaleXValue( xShape1 );
+ CPPUNIT_ASSERT_EQUAL( true, bScaleX );
+
+ // Export
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "//p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp", "prst", "textArchUp");
+ assertXPath(pXmlDocContent, "//p:sp[14]/p:txBody/a:bodyPr/a:prstTxWarp", "prst", "textCircle");
+ assertXPath(pXmlDocContent, "//p:sp[14]/p:spPr/a:solidFill/a:srgbClr", 0);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf128096()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf128096.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent1, "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", "val", "ffff00");
+
+ // Check that underlined content is also highlighted
+ xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+ assertXPath(pXmlDocContent2, "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", "val", "ffff00");
+}
+void SdOOXMLExportTest2::testTdf120573()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( "sd/qa/unit/data/pptx/tdf120573.pptx" ), PPTX );
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/a:audioFile", 1);
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/a:videoFile", 0);
+
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
+ assertXPath(pXmlDocRels,
+ "(/rels:Relationships/rels:Relationship[@Target='../media/media1.wav'])[1]",
+ "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio");
+
+ xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/media1.wav']",
+ "ContentType",
+ "audio/x-wav");
+}
+
+void SdOOXMLExportTest2::testTdf118825()
+{
+ const OUString sPath1 = "M 0.0449285714285714 0.00368253968253968 C 0.0575714285714285 -0.00095238095238096 0.0704264795523803 -0.00370117418637049 0.0831071428571428 -0.00819047619047622 C 0.0953550597998766 -0.0125265741339082 0.107821870086751 -0.010397536991717 0.120321428571429 -0.0115555555555556 C 0.133179018681433 -0.0127467438724762 0.151318627483861 -0.0158700272533852 0.1585 0.00539682539682542 C 0.16478291361998 0.0240029898688431 0.15828642886492 0.0483806254341085 0.161392857142857 0.0698412698412698 C 0.165179286017685 0.0959996731216037 0.17453898927982 0.119735912694626 0.187142857142857 0.132634920634921 C 0.199788991845377 0.145577185161529 0.215607110490848 0.142889773028431 0.230107142857143 0.142857142857143 C 0.243821417584191 0.142826280916829 0.257716514999779 0.142685979556724 0.271142857142857 0.137777777777778 C 0.286895094567923 0.132019309914514 0.302318190711873 0.122962218306185 0.317928571428571 0.11568253968254 C 0.333496771884547 0.108422531222479 0.348787823719556 0.0990570571890929 0.363714285714286 0.0885079365079364 C 0.374930683062651 0.080580865157908 0.385357142857143 0.0693333333333332 0.396178571428571 0.0596825396825396 L 0.404785714285714 0.0410158730158729 L 0.401892857142857 0.0342222222222221 E";
+
+ const OUString sPath2 = "M 0.025 0.0571428571428571 L 0.0821428571428571 0.184126984126984 L -0.175 0.234920634920635 L -0.246428571428571 -0.0190476190476191 L -0.0821428571428573 -0.133333333333333 E";
+
+ const OUString sPath3 = "M -0.0107142857142857 0.00634920634920635 C -0.110714285714286 0.501587301587301 -0.153571428571429 -0.00634920634920635 -0.246428571428572 0.184126984126984 C -0.339285714285715 0.374603174603175 -0.296428571428572 0.514285714285714 -0.267857142857143 0.603174603174603 C -0.239285714285715 0.692063492063492 0.0607142857142858 0.590476190476191 0.0607142857142858 0.590476190476191 E";
+
+ const OUString sPath4 = "M 0.0535714285714286 -0.0444444444444444 L 0.132142857142857 -0.0444444444444444 L 0.132142857142857 -0.146031746031746 L 0.0964285714285715 -0.146031746031746 E";
+
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118825-motionpath.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+
+ CPPUNIT_ASSERT_MOTIONPATH(sPath1, getXPath(pXmlDocContent, "(//p:animMotion)[1]", "path"));
+ CPPUNIT_ASSERT_MOTIONPATH(sPath2, getXPath(pXmlDocContent, "(//p:animMotion)[2]", "path"));
+ CPPUNIT_ASSERT_MOTIONPATH(sPath3, getXPath(pXmlDocContent, "(//p:animMotion)[3]", "path"));
+ CPPUNIT_ASSERT_MOTIONPATH(sPath4, getXPath(pXmlDocContent, "(//p:animMotion)[4]", "path"));
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf119118()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc( "sd/qa/unit/data/pptx/tdf119118.pptx" ), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent, "//p:iterate", "type", "lt");
+ assertXPath(pXmlDocContent, "//p:tmAbs", "val", "200");
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf99213()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc( "sd/qa/unit/data/odp/tdf99213-target-missing.odp" ), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ // Number of nodes with p:attrNameLst was 3, including one that missed tgtEl
+ assertXPath(pXmlDocContent, "//p:attrNameLst", 2);
+ // Timenode that miss its target element should be filtered.
+ assertXPath(pXmlDocContent, "//p:attrNameLst/preceding-sibling::p:tgtEl", 2);
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testPotxExport()
+{
+ // Create new document
+ sd::DrawDocShellRef xDocShRef
+ = new sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Draw);
+ uno::Reference<frame::XLoadable> xLoadable(xDocShRef->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xLoadable.is());
+ xLoadable->initNew();
+
+ // Export as a POTM template
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), POTX, &tempFile);
+ xDocShRef->DoClose();
+
+ // Load and check content type
+ xmlDocUniquePtr pContentTypes = parseExport(tempFile, "[Content_Types].xml");
+ CPPUNIT_ASSERT(pContentTypes);
+ assertXPath(pContentTypes, "/ContentType:Types/ContentType:Override[@PartName='/ppt/presentation.xml']",
+ "ContentType", "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml");
+}
+
+void SdOOXMLExportTest2::testTdf44223()
+{
+ utl::TempFile tempFile;
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf44223.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ std::unique_ptr<SvStream> const pStream1(parseExportStream(tempFile, "ppt/media/audio1.wav"));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt64(11140), pStream1->remainingSize());
+
+ std::unique_ptr<SvStream> const pStream2(parseExportStream(tempFile, "ppt/media/audio2.wav"));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt64(28074), pStream2->remainingSize());
+
+ xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/audio1.wav']",
+ "ContentType",
+ "audio/x-wav");
+
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/audio2.wav']",
+ "ContentType",
+ "audio/x-wav");
+
+ xmlDocUniquePtr pDoc1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ // Start condition: 0s after timenode id 5 begins.
+ assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond", "evt", "begin");
+ assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond", "delay", "0");
+ assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond/p:tn", "val", "5");
+
+ xmlDocUniquePtr pDoc2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+ assertXPath(pDoc2 , "//p:transition/p:sndAc/p:stSnd/p:snd[@r:embed]", 2);
+
+ xmlDocUniquePtr pRels1 = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
+ assertXPath(pRels1, "//rels:Relationship[@Id='rId1']", "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio");
+ assertXPath(pRels1, "//rels:Relationship[@Id='rId1']", "Target", "../media/audio1.wav");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testSmartArtPreserve()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-preserve.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:cNvPr");
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/dgm:relIds");
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:nvPr/p:extLst/p:ext",
+ "uri", "{D42A27DB-BD31-4B8C-83A1-F6EECF244321}");
+ assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:nvPr/p:extLst/p:ext/p14:modId");
+
+ xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
+ assertXPath(pXmlDocRels,
+ "(/rels:Relationships/rels:Relationship[@Target='../diagrams/layout1.xml'])[1]", "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout");
+ assertXPath(pXmlDocRels,
+ "(/rels:Relationships/rels:Relationship[@Target='../diagrams/data1.xml'])[1]", "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData");
+ assertXPath(pXmlDocRels,
+ "(/rels:Relationships/rels:Relationship[@Target='../diagrams/colors1.xml'])[1]", "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors");
+ assertXPath(pXmlDocRels,
+ "(/rels:Relationships/rels:Relationship[@Target='../diagrams/quickStyle1.xml'])[1]", "Type",
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramQuickStyle");
+
+ xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/layout1.xml']",
+ "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/data1.xml']",
+ "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/colors1.xml']",
+ "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml");
+ assertXPath(pXmlContentType,
+ "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/quickStyle1.xml']",
+ "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125346()
+{
+ // There are two themes in the test document, make sure we use the right theme
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125346.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+ sal_Int32 nFillColor;
+ xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125346_2()
+{
+ // There are two themes in the test document, make sure we use the right theme
+ // Test more slides with different themes
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125346_2.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ {
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+ sal_Int32 nFillColor;
+ xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+ }
+
+ {
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 1, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+ sal_Int32 nFillColor;
+ xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x052F61), nFillColor);
+ }
+
+ {
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 2, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+ drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+ xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+ sal_Int32 nFillColor;
+ xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125360()
+{
+ // Check whether the changed fill transparency is exported correctly.
+ // Color is defined by shape style
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360.pptx"), PPTX);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ sal_Int32 nTransparence = 0;
+ xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125360_1()
+{
+ // Check whether the changed fill transparency is exported correctly.
+ // Color is defined by color scheme
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360_1.pptx"), PPTX);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ sal_Int32 nTransparence = 0;
+ xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125360_2()
+{
+ // Check whether the changed fill transparency is exported correctly.
+ // Color is defined by color scheme with a transparency
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360_2.pptx"), PPTX);
+
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ sal_Int32 nTransparence = 0;
+ xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(82), nTransparence);
+
+ xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ nTransparence = 0;
+ xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125551()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125551.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ uno::Reference<drawing::XShapes> xGroupShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeBg(xGroupShape->getByIndex(0), uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1024), xShapeBg->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(576), xShapeBg->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(10815), xShapeBg->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8587), xShapeBg->getSize().Height);
+}
+
+void SdOOXMLExportTest2::testTdf100348_convert_Fontwork2TextWarp()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // Resulting pptx has to contain the TextWarp shape
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart("/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp");
+ assertXPath(pXmlDocContent, sPathStart + "[@prst='textWave1']");
+ const OString sPathAdj(sPathStart + "/a:avLst/a:gd");
+ assertXPath(pXmlDocContent, sPathAdj + "[@name='adj1' and @fmla='val 18750']");
+ assertXPath(pXmlDocContent, sPathAdj + "[@name='adj2' and @fmla='val -7500']");
+
+ // Reloading has to get the Fontwork shape back
+ // TextPath makes a custom shape to a Fontwork shape, so must exist
+ uno::Reference<beans::XPropertySet> xShapeWavePropSet(getShapeFromPage(0, 0, xDocShRef));
+ auto aGeomPropSeq = xShapeWavePropSet->getPropertyValue("CustomShapeGeometry")
+ .get<uno::Sequence<beans::PropertyValue>>();
+ auto aGeomPropVec
+ = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(aGeomPropSeq);
+ OUString sName = "TextPath";
+ auto aIterator = std::find_if(
+ aGeomPropVec.begin(), aGeomPropVec.end(),
+ [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
+ CPPUNIT_ASSERT_MESSAGE("No TextPath", aIterator != aGeomPropVec.end());
+
+ // Type has to be same as in original document on roundtrip.
+ sName = "Type";
+ auto aIterator2 = std::find_if(
+ aGeomPropVec.begin(), aGeomPropVec.end(),
+ [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
+ CPPUNIT_ASSERT_MESSAGE("No Type", aIterator2 != aGeomPropVec.end());
+ OUString sOwnName;
+ aIterator2->Value >>= sOwnName;
+ CPPUNIT_ASSERT_EQUAL(OUString("fontwork-wave"), sOwnName);
+
+ // Adjustmentvalues need to be the same.
+ sName = "AdjustmentValues";
+ auto aIterator3 = std::find_if(
+ aGeomPropVec.begin(), aGeomPropVec.end(),
+ [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
+ CPPUNIT_ASSERT_MESSAGE("No AdjustmentValues", aIterator3 != aGeomPropVec.end());
+ uno::Sequence<drawing::EnhancedCustomShapeAdjustmentValue> aAdjValueSeq;
+ aIterator3->Value >>= aAdjValueSeq;
+ double fAdj1;
+ aAdjValueSeq[0].Value >>= fAdj1;
+ double fAdj2;
+ aAdjValueSeq[1].Value >>= fAdj2;
+ CPPUNIT_ASSERT_EQUAL(4050.0, fAdj1); // odp values, not pptx values
+ CPPUNIT_ASSERT_EQUAL(9180.0, fAdj2);
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf1225573_FontWorkScaleX()
+{
+ const OUString sPath("/sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptx");
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(sPath), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // Error was, that attribute 'fromWordArt' was ignored
+ // ensure, resulting pptx has fromWordArt="1" on textArchDown shape
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart("/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr");
+ assertXPath(pXmlDocContent, sPathStart + "[@fromWordArt='1']");
+
+ // Error was, that text in legacy shapes of category "Follow Path" was not scaled to the path.
+ uno::Reference<beans::XPropertySet> xShapeArchProps(getShapeFromPage(0, 0, xDocShRef));
+ awt::Rectangle aBoundRectArch;
+ xShapeArchProps->getPropertyValue(UNO_NAME_MISC_OBJ_BOUNDRECT) >>= aBoundRectArch;
+ // difference should be zero, but allow some range for stroke thickness
+ CPPUNIT_ASSERT_LESS(static_cast<long>(50), labs(aBoundRectArch.Width - 13081));
+
+ // Error was, that text in shapes of category "Warp" was not scaled to the path.
+ uno::Reference<beans::XPropertySet> xShapeWaveProps(getShapeFromPage(0, 1, xDocShRef));
+ awt::Rectangle aBoundRectWave;
+ xShapeWaveProps->getPropertyValue(UNO_NAME_MISC_OBJ_BOUNDRECT) >>= aBoundRectWave;
+ // difference should be zero, but allow some range for stroke thickness
+ CPPUNIT_ASSERT_LESS(static_cast<long>(50), labs(aBoundRectWave.Width - 11514));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf126234()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf126234.pptx"), PPTX );
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // check relative size of the bullet, 400% is a legitimate value for MS Office document
+ // Without a fix, it will fail to set the size correctly
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(400), pNumFmt->GetNumRule()->GetLevel(0).GetBulletRelSize());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf126741()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf126741.pptx"), PPTX );
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // dash dot dot line style import fix
+ // The original fixed values are replaced with the percent values, because
+ // with fix for tdf#127166 the MS Office preset styles are correctly detected.
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pObj);
+
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pObj->GetMergedItem(XATTR_LINESTYLE));
+ const XLineDashItem& rDashItem = dynamic_cast<const XLineDashItem&>(
+ pObj->GetMergedItem(XATTR_LINEDASH));
+
+ CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_DASH, rStyleItem.GetValue());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(1), rDashItem.GetDashValue().GetDots());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(800), rDashItem.GetDashValue().GetDotLen());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(2), rDashItem.GetDashValue().GetDashes());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(100), rDashItem.GetDashValue().GetDashLen());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(300), rDashItem.GetDashValue().GetDistance());
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf99497_keepAppearanceOfCircleKind()
+{
+ // Error was, that all CircleKind were exported to 'ellipse'.
+ // Resulting pptx has to contain the customshapes of the corresponding kind
+ // slide 1 ARC -> arc, slide 2 CUT -> chord, slide 3 SECTION -> pie
+ // Adjustment values need to exist and their values need to correspond to the
+ // original angles. Shape 'arc' needs to be unfilled.
+ const OUString sPath("/sd/qa/unit/data/odp/tdf99497_CircleKind.odp");
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(sPath), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+ // slide 1 45° -> adj1 = 20493903, 270° -> adj2 = 5400000, <a:noFill/> exists
+ xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+ const OString sPathStart1("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ assertXPath(pXmlDocContent1, sPathStart1 + "[@prst='arc']");
+ const OString sPathAdj1(sPathStart1 + "/a:avLst/a:gd");
+ assertXPath(pXmlDocContent1, sPathAdj1 + "[@name='adj1' and @fmla='val 20493903']");
+ assertXPath(pXmlDocContent1, sPathAdj1 + "[@name='adj2' and @fmla='val 5400000']");
+ assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:noFill");
+
+ // slide 2 270° -> adj1 = 5400000, 180° -> adj2 = 10800000
+ xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+ const OString sPathStart2("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ assertXPath(pXmlDocContent2, sPathStart2 + "[@prst='chord']");
+ const OString sPathAdj2(sPathStart2 + "/a:avLst/a:gd");
+ assertXPath(pXmlDocContent2, sPathAdj2 + "[@name='adj1' and @fmla='val 5400000']");
+ assertXPath(pXmlDocContent2, sPathAdj2 + "[@name='adj2' and @fmla='val 10800000']");
+
+ // slide 3 120° -> adj1 = 12600000, 30° -> adj2 = 20946396
+ xmlDocUniquePtr pXmlDocContent3 = parseExport(tempFile, "ppt/slides/slide3.xml");
+ const OString sPathStart3("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ assertXPath(pXmlDocContent3, sPathStart3 + "[@prst='pie']");
+ const OString sPathAdj3(sPathStart3 + "/a:avLst/a:gd");
+ assertXPath(pXmlDocContent3, sPathAdj3 + "[@name='adj1' and @fmla='val 12600000']");
+ assertXPath(pXmlDocContent3, sPathAdj3 + "[@name='adj2' and @fmla='val 20946396']");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf127372()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf127372.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ awt::Gradient aTransparenceGradient;
+ xShape->getPropertyValue("FillTransparenceGradient") >>= aTransparenceGradient;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aTransparenceGradient.StartColor);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aTransparenceGradient.EndColor);
+}
+
+void SdOOXMLExportTest2::testTdf127379()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf127379.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDoc->getDrawPages()->getCount() );
+
+ uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+
+ uno::Any aAny = xPropSet->getPropertyValue( "Background" );
+ CPPUNIT_ASSERT_MESSAGE("Slide background is missing", aAny.hasValue());
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+
+ drawing::FillStyle aFillStyle(drawing::FillStyle_NONE);
+ aXBackgroundPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, aFillStyle);
+
+ awt::Gradient aGradient;
+ CPPUNIT_ASSERT(aXBackgroundPropSet->getPropertyValue("FillGradient") >>= aGradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), aGradient.StartColor);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x2A6099), aGradient.EndColor);
+}
+
+void SdOOXMLExportTest2::testTdf98603()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf98603.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference<text::XTextRange> const xParagraph(getParagraphFromShape(0, xShape));
+ uno::Reference<text::XTextRange> xRun(getRunFromParagraph(0, xParagraph));
+ uno::Reference< beans::XPropertySet> xPropSet(xRun, uno::UNO_QUERY_THROW);
+ css::lang::Locale aLocale;
+ xPropSet->getPropertyValue("CharLocaleComplex") >>= aLocale;
+ CPPUNIT_ASSERT_EQUAL(OUString("he"), aLocale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("IL"), aLocale.Country);
+}
+
+void SdOOXMLExportTest2::testTdf79082()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf79082.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
+
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[1]",
+ "pos",
+ "360000");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[1]",
+ "algn",
+ "l");
+
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[2]",
+ "pos",
+ "756000");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[2]",
+ "algn",
+ "l");
+
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[3]",
+ "pos",
+ "1440000");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[3]",
+ "algn",
+ "ctr");
+
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[4]",
+ "pos",
+ "1800000");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[4]",
+ "algn",
+ "r");
+
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[5]",
+ "pos",
+ "3240000");
+ assertXPath(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[5]",
+ "algn",
+ "dec");
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf129372()
+{
+ //Without the fix in place, it would crash at import time
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf129372.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef.get() );
+
+ const SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier() );
+}
+
+void SdOOXMLExportTest2::testShapeGlowEffect()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-glow-effect.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ sal_Int32 nRadius = -1;
+ xShape->getPropertyValue("GlowEffectRadius") >>= nRadius;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(388), nRadius); // 139700 EMU = 388.0556 mm/100
+ Color nColor;
+ xShape->getPropertyValue("GlowEffectColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
+ sal_Int16 nTransparency;
+ xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(60), nTransparency);
+}
+
+void SdOOXMLExportTest2::testTdf119087()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf119087.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ // This would fail both on export validation, and reloading the saved pptx file.
+}
+
+void SdOOXMLExportTest2::testTdf131554()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf131554.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference<drawing::XShape> xShape(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5622), xShape->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(13251), xShape->getPosition().Y);
+}
+
+void SdOOXMLExportTest2::testTdf132282()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf132282.pptx"), PPTX);
+ xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
+ uno::Reference<drawing::XShape> xShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ // Without the fix in place, the position would be 0,0, height = 1 and width = 1
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1736), xShape->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(763), xShape->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(30523), xShape->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2604), xShape->getSize().Height);
+}
+
+void SdOOXMLExportTest2::testTdf132201EffectOrder()
+{
+ auto xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/effectOrder.pptx"),
+ PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ assertXPathChildren(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst", 2);
+ // The relative order of effects is important: glow must be before shadow
+ CPPUNIT_ASSERT_EQUAL(0, getXPathPosition(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst",
+ "glow"));
+ CPPUNIT_ASSERT_EQUAL(1, getXPathPosition(pXmlDocContent,
+ "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst",
+ "outerShdw"));
+
+ xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testShapeSoftEdgeEffect()
+{
+ auto xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-soft-edges.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+ auto xShapeProps(getShapeFromPage(0, 0, xDocShRef));
+ sal_Int32 nRadius = -1;
+ xShapeProps->getPropertyValue("SoftEdgeRadius") >>= nRadius;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(635), nRadius); // 18 pt
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
new file mode 100644
index 000000000..a2186fae6
--- /dev/null
+++ b/sd/qa/unit/export-tests.cxx
@@ -0,0 +1,1314 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#include <officecfg/Office/Common.hxx>
+#include "sdmodeltestbase.hxx"
+#include <sdpage.hxx>
+
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/colritem.hxx>
+
+#include <svx/svdotext.hxx>
+#include <svx/svdograf.hxx>
+#include <svx/svdomedia.hxx>
+#include <unotools/mediadescriptor.hxx>
+#include <rtl/ustring.hxx>
+
+#include <vcl/opengl/OpenGLWrapper.hxx>
+#include <vcl/skia/SkiaHelper.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/XBitmap.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <com/sun/star/graphic/GraphicType.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <com/sun/star/table/BorderLine2.hpp>
+
+
+#include <svx/svdotable.hxx>
+#include <config_features.h>
+
+using namespace css;
+using namespace css::animations;
+
+class SdExportTest : public SdModelTestBaseXML
+{
+public:
+ void testBackgroundImage();
+ void testMediaEmbedding();
+ void testFdo84043();
+ void testTdf97630();
+ void testSwappedOutImageExport();
+ void testOOoXMLAnimations();
+ void testBnc480256();
+ void testUnknownAttributes();
+ void testTdf80020();
+ void testLinkedGraphicRT();
+ void testTdf79082();
+ void testImageWithSpecialID();
+ void testTdf62176();
+ void testTransparentBackground();
+ void testEmbeddedPdf();
+ void testEmbeddedText();
+ void testTransparenText();
+ void testDefaultSubscripts();
+ void testTdf98477();
+ void testAuthorField();
+ void testTdf50499();
+ void testTdf100926();
+ void testPageWithTransparentBackground();
+ void testTextRotation();
+ void testTdf115394PPT();
+ void testBulletsAsImage();
+ void testTdf113818();
+ void testTdf119629();
+ void testTdf123557();
+ void testTdf113822();
+ void testTdf126761();
+ void testGlow();
+ void testSoftEdges();
+
+ CPPUNIT_TEST_SUITE(SdExportTest);
+
+ CPPUNIT_TEST(testBackgroundImage);
+ CPPUNIT_TEST(testMediaEmbedding);
+ CPPUNIT_TEST(testFdo84043);
+ CPPUNIT_TEST(testTdf97630);
+ CPPUNIT_TEST(testSwappedOutImageExport);
+ CPPUNIT_TEST(testOOoXMLAnimations);
+ CPPUNIT_TEST(testBnc480256);
+ CPPUNIT_TEST(testUnknownAttributes);
+ CPPUNIT_TEST(testTdf80020);
+ CPPUNIT_TEST(testLinkedGraphicRT);
+ CPPUNIT_TEST(testTdf79082);
+ CPPUNIT_TEST(testImageWithSpecialID);
+ CPPUNIT_TEST(testTdf62176);
+ CPPUNIT_TEST(testTransparentBackground);
+ CPPUNIT_TEST(testEmbeddedPdf);
+ CPPUNIT_TEST(testEmbeddedText);
+ CPPUNIT_TEST(testTransparenText);
+ CPPUNIT_TEST(testDefaultSubscripts);
+ CPPUNIT_TEST(testTdf98477);
+ CPPUNIT_TEST(testAuthorField);
+ CPPUNIT_TEST(testTdf50499);
+ CPPUNIT_TEST(testTdf100926);
+ CPPUNIT_TEST(testPageWithTransparentBackground);
+ CPPUNIT_TEST(testTextRotation);
+ CPPUNIT_TEST(testTdf115394PPT);
+ CPPUNIT_TEST(testBulletsAsImage);
+ CPPUNIT_TEST(testTdf113818);
+ CPPUNIT_TEST(testTdf119629);
+ CPPUNIT_TEST(testTdf123557);
+ CPPUNIT_TEST(testTdf113822);
+ CPPUNIT_TEST(testTdf126761);
+ CPPUNIT_TEST(testGlow);
+ CPPUNIT_TEST(testSoftEdges);
+
+ CPPUNIT_TEST_SUITE_END();
+
+ virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
+ {
+ static const struct { char const * pPrefix; char const * pURI; } namespaces[] =
+ {
+ // ODF
+ { "anim", "urn:oasis:names:tc:opendocument:xmlns:animation:1.0" },
+ { "draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" },
+ { "fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" },
+ { "number", "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" },
+ { "office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0" },
+ { "presentation", "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" },
+ { "style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0" },
+ { "svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" },
+ { "table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0" },
+ { "text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0" },
+ { "xlink", "http://www.w3c.org/1999/xlink" },
+ { "loext", "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" },
+ { "smil", "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" },
+ // user-defined
+ { "foo", "http://example.com/" },
+ };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(namespaces); ++i)
+ {
+ xmlXPathRegisterNs(pXmlXPathCtx,
+ reinterpret_cast<xmlChar const *>(namespaces[i].pPrefix),
+ reinterpret_cast<xmlChar const *>(namespaces[i].pURI));
+ }
+ }
+
+};
+
+namespace
+{
+uno::Reference<awt::XBitmap> getBitmapFromTable(const sd::DrawDocShellRef& xDocShRef,
+ OUString const& rName)
+{
+ uno::Reference<awt::XBitmap> xBitmap;
+
+ uno::Reference<lang::XMultiServiceFactory> xFactory(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+
+ try
+ {
+ uno::Reference<container::XNameAccess> xBitmapTable(xFactory->createInstance("com.sun.star.drawing.BitmapTable"), uno::UNO_QUERY);
+ uno::Any rValue = xBitmapTable->getByName(rName);
+ if (rValue.has<uno::Reference<awt::XBitmap>>())
+ {
+ return rValue.get<uno::Reference<awt::XBitmap>>();
+ }
+ }
+ catch (const uno::Exception & /*rEx*/)
+ {
+ }
+
+ return xBitmap;
+}
+
+}
+
+void SdExportTest::testBackgroundImage()
+{
+ // Initial bug: N821567
+
+ // Check if Slide background image is imported from PPTX and exported to PPTX, PPT and ODP correctly
+
+ OUString bgImageName;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n821567.pptx"), PPTX);
+
+ // Check that imported background image from PPTX exists
+ {
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount());
+ uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef));
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY);
+ uno::Any aAny = xPropertySet->getPropertyValue("Background");
+ if (aAny.has<uno::Reference<beans::XPropertySet>>())
+ {
+ uno::Reference<beans::XPropertySet> xBackgroundPropSet;
+ aAny >>= xBackgroundPropSet;
+ aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName");
+ aAny >>= bgImageName;
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide Background is not imported from PPTX correctly", OUString("msFillBitmap 1"), bgImageName);
+
+ uno::Reference<awt::XBitmap> xBitmap = getBitmapFromTable(xDocShRef, bgImageName);
+ CPPUNIT_ASSERT_MESSAGE("Slide Background Bitmap is missing when imported from PPTX", xBitmap.is());
+ }
+
+ // Save as PPTX, reload and check again so we make sure exporting to PPTX is working correctly
+ {
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount());
+ uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef));
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY);
+ uno::Any aAny = xPropertySet->getPropertyValue("Background");
+ if (aAny.hasValue())
+ {
+ uno::Reference<beans::XPropertySet> xBackgroundPropSet;
+ aAny >>= xBackgroundPropSet;
+ aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName");
+ aAny >>= bgImageName;
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide Background is not exported from PPTX correctly", OUString("msFillBitmap 1"), bgImageName);
+
+ uno::Reference<awt::XBitmap> xBitmap = getBitmapFromTable(xDocShRef, bgImageName);
+ CPPUNIT_ASSERT_MESSAGE("Slide Background Bitmap is missing when exported from PPTX", xBitmap.is());
+ }
+
+ // Save as ODP, reload and check again so we make sure exporting and importing to ODP is working correctly
+ {
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount());
+ uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef));
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY);
+ uno::Any aAny = xPropertySet->getPropertyValue("Background");
+ if (aAny.hasValue())
+ {
+ uno::Reference<beans::XPropertySet> xBackgroundPropSet;
+ aAny >>= xBackgroundPropSet;
+ aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName");
+ aAny >>= bgImageName;
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide Background is not exported or imported from ODP correctly", OUString("msFillBitmap 1"), bgImageName);
+
+ uno::Reference<awt::XBitmap> xBitmap = getBitmapFromTable(xDocShRef, bgImageName);
+ CPPUNIT_ASSERT_MESSAGE("Slide Background Bitmap is missing when exported or imported from ODP", xBitmap.is());
+ }
+
+ xDocShRef->DoClose();
+}
+
+namespace {
+
+template< typename ItemValue, typename ItemType >
+void checkFontAttributes( const SdrTextObj* pObj, ItemValue nVal)
+{
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
+ std::vector<EECharAttrib> rLst;
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const ItemType* pAttrib = dynamic_cast<const ItemType *>((*it).pAttr);
+ if (pAttrib)
+ {
+ CPPUNIT_ASSERT_EQUAL( nVal, static_cast<ItemValue>(pAttrib->GetValue()));
+ }
+ }
+}
+
+}
+
+void SdExportTest::testTransparentBackground()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/transparent_background.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ const SdrTextObj *pObj1 = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
+ checkFontAttributes<Color, SvxBackgroundColorItem>( pObj1, COL_TRANSPARENT );
+
+ const SdrTextObj *pObj2 = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
+ checkFontAttributes<Color, SvxBackgroundColorItem>( pObj2, COL_YELLOW);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testMediaEmbedding()
+{
+#ifdef _WIN32
+ // This seems broken. This test should not be disabled for all cases except when OpenGL
+ // is found to be working, just because in some OpenGL setups this breaks (per the commit log message).
+ if (!OpenGLWrapper::isVCLOpenGLEnabled() && !SkiaHelper::isVCLSkiaEnabled())
+ return;
+#endif
+
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/media_embedding.odp"), ODP);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // Second object is a sound
+ SdrMediaObj *pMediaObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 3 ));
+ CPPUNIT_ASSERT_MESSAGE( "missing media object", pMediaObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Media/button-1.wav" ), pMediaObj->getMediaProperties().getURL());
+ CPPUNIT_ASSERT_EQUAL( OUString( "application/vnd.sun.star.media" ), pMediaObj->getMediaProperties().getMimeType());
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testFdo84043()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo84043.odp"), ODP);
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+
+ // the bug was duplicate attributes, causing crash in a build with asserts
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrObject const* pShape = pPage->GetObj(1);
+ CPPUNIT_ASSERT_MESSAGE("no shape", pShape != nullptr);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf97630()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fit-to-size.fodp"), FODP);
+
+ {
+ uno::Reference<drawing::XDrawPagesSupplier> xDPS(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDP(xDPS->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+
+ drawing::TextFitToSizeType tmp;
+ // text shapes
+ uno::Reference<beans::XPropertySet> xShape0(xDP->getByIndex(0), uno::UNO_QUERY);
+ xShape0->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp);
+ uno::Reference<beans::XPropertySet> xShape1(xDP->getByIndex(1), uno::UNO_QUERY);
+ xShape1->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp);
+ uno::Reference<beans::XPropertySet> xShape2(xDP->getByIndex(2), uno::UNO_QUERY);
+ xShape2->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp);
+ uno::Reference<beans::XPropertySet> xShape3(xDP->getByIndex(3), uno::UNO_QUERY);
+ xShape3->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, tmp);
+
+ // fontworks
+ uno::Reference<beans::XPropertySet> xShape4(xDP->getByIndex(4), uno::UNO_QUERY);
+ xShape4->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp);
+ uno::Reference<beans::XPropertySet> xShape5(xDP->getByIndex(5), uno::UNO_QUERY);
+ xShape5->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_ALLLINES, tmp);
+
+ }
+
+ utl::TempFile aTempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &aTempFile);
+
+ {
+ uno::Reference<drawing::XDrawPagesSupplier> xDPS(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDP(xDPS->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+
+ drawing::TextFitToSizeType tmp;
+ // text shapes
+ uno::Reference<beans::XPropertySet> xShape0(xDP->getByIndex(0), uno::UNO_QUERY);
+ xShape0->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp);
+ uno::Reference<beans::XPropertySet> xShape1(xDP->getByIndex(1), uno::UNO_QUERY);
+ xShape1->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp);
+ uno::Reference<beans::XPropertySet> xShape2(xDP->getByIndex(2), uno::UNO_QUERY);
+ xShape2->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp);
+ uno::Reference<beans::XPropertySet> xShape3(xDP->getByIndex(3), uno::UNO_QUERY);
+ xShape3->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, tmp);
+
+ // fontworks
+ uno::Reference<beans::XPropertySet> xShape4(xDP->getByIndex(4), uno::UNO_QUERY);
+ xShape4->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, tmp);
+ uno::Reference<beans::XPropertySet> xShape5(xDP->getByIndex(5), uno::UNO_QUERY);
+ xShape5->getPropertyValue("TextFitToSize") >>= tmp;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_PROPORTIONAL, tmp);
+ }
+
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "content.xml");
+ // text shapes
+ assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='false']", 1);
+ assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='true' and @style:shrink-to-fit='false']", 2);
+ assertXPath(pXmlDoc, "//style:style[@style:family='presentation']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='true']", 1);
+ // fontworks
+ assertXPath(pXmlDoc, "//style:style[@style:family='graphic']/style:graphic-properties[@draw:fit-to-size='false' and @style:shrink-to-fit='false']", 1);
+ assertXPath(pXmlDoc, "//style:style[@style:family='graphic']/style:graphic-properties[@draw:fit-to-size='true' and @style:shrink-to-fit='false']", 1);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testSwappedOutImageExport()
+{
+ // Problem was with the swapped out images, which were not swapped in during export.
+ const sal_Int32 vFormats[] = {
+ ODP,
+ PPT,
+ PPTX,
+ };
+
+ // Set cache size to a very small value to make sure one of the images is swapped out
+ std::shared_ptr< comphelper::ConfigurationChanges > xBatch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Cache::GraphicManager::TotalCacheSize::set(sal_Int32(1), xBatch);
+ xBatch->commit();
+
+ for( size_t nExportFormat = 0; nExportFormat < SAL_N_ELEMENTS(vFormats); ++nExportFormat )
+ {
+ // Load the original file with one image
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/document_with_two_images.odp"), ODP);
+ const OString sFailedMessage = OStringLiteral("Failed on filter: ") + aFileFormats[vFormats[nExportFormat]].pFilterName;
+
+ // Export the document and import again for a check
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[vFormats[nExportFormat]].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+ xDocShRef = loadURL(aTempFile.GetURL(), nExportFormat);
+
+ // Check whether graphic exported well after it was swapped out
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDrawPagesSupplier->getDrawPages()->getCount());
+ uno::Reference< drawing::XDrawPage > xDrawPage( xDrawPagesSupplier->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+
+ uno::Reference<drawing::XShape> xImage(xDrawPage->getByIndex(2), uno::UNO_QUERY);
+ uno::Reference< beans::XPropertySet > XPropSet( xImage, uno::UNO_QUERY_THROW );
+
+ // Check Graphic, Size
+ {
+ uno::Reference<graphic::XGraphic> xGraphic;
+ XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic.is());
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic->getType() != graphic::GraphicType::EMPTY);
+ uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(610), xBitmap->getSize().Width );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(381), xBitmap->getSize().Height );
+ }
+
+ // Second Image
+ xDrawPage.set(xDrawPagesSupplier->getDrawPages()->getByIndex(1), uno::UNO_QUERY_THROW );
+ xImage.set(xDrawPage->getByIndex(1), uno::UNO_QUERY);
+ XPropSet.set( xImage, uno::UNO_QUERY_THROW );
+
+ // Check Graphic, Size
+ {
+ uno::Reference<graphic::XGraphic> xGraphic;
+ XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic.is());
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic->getType() != graphic::GraphicType::EMPTY);
+ uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(900), xBitmap->getSize().Width );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(600), xBitmap->getSize().Height );
+ }
+ xDocShRef->DoClose();
+ }
+}
+
+void SdExportTest::testOOoXMLAnimations()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/sxi/ooo41061-1.sxi"), SXI);
+
+ uno::Reference<lang::XComponent> xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(getFormat(ODP)->pFilterName), RTL_TEXTENCODING_UTF8);
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+
+ xDocShRef->DoClose();
+
+ // the problem was that legacy OOoXML animations were lost if store
+ // immediately follows load because they were "converted" async by a timer
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "content.xml");
+ assertXPath(pXmlDoc, "//anim:par[@presentation:node-type='timing-root']", 26);
+ // currently getting 52 of these without the fix (depends on timing)
+ assertXPath(pXmlDoc, "//anim:par", 223);
+}
+
+void SdExportTest::testBnc480256()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc480256.pptx"), PPTX);
+ // In the document, there are two tables with table background properties.
+ // Make sure colors are set properly for individual cells.
+
+ // TODO: If you are working on improving table background support, expect
+ // this unit test to fail. In that case, feel free to change the numbers.
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj;
+ uno::Reference< table::XCellRange > xTable;
+ uno::Reference< beans::XPropertySet > xCell;
+ sal_Int32 nColor;
+ table::BorderLine2 aBorderLine;
+
+ pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+ xTable.set(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(10208238), nColor);
+ xCell->getPropertyValue("LeftBorder") >>= aBorderLine;
+ CPPUNIT_ASSERT_EQUAL(util::Color(5609427), aBorderLine.Color);
+
+ xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(13032959), nColor);
+ xCell->getPropertyValue("TopBorder") >>= aBorderLine;
+ CPPUNIT_ASSERT_EQUAL(util::Color(5609427), aBorderLine.Color);
+
+ pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(1));
+ CPPUNIT_ASSERT( pTableObj );
+ xTable.set(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(7056614), nColor);
+ xCell->getPropertyValue("LeftBorder") >>= aBorderLine;
+ CPPUNIT_ASSERT_EQUAL(util::Color(12505062), aBorderLine.Color);
+
+ xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4626400), nColor);
+
+ xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("BottomBorder") >>= aBorderLine;
+ CPPUNIT_ASSERT_EQUAL(util::Color(COL_AUTO), aBorderLine.Color);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testUnknownAttributes()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/unknown-attribute.fodp"), FODP);
+
+ uno::Reference<lang::XComponent> xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(getFormat(ODP)->pFilterName), RTL_TEXTENCODING_UTF8);
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "content.xml");
+ assertXPath(pXmlDoc, "/office:document-content/office:automatic-styles/style:style[@style:name='gr1']/style:graphic-properties[@foo:non-existent-att='bar']");
+// TODO: if the namespace is *known*, the attribute is not preserved, but that seems to be a pre-existing problem, or maybe it's even intentional?
+// assertXPath(pXmlDoc, "/office:document-content/office:automatic-styles/style:style[@style:name='gr1']/style:graphic-properties[@svg:non-existent-att='blah']");
+ // this was on style:graphic-properties on the import, but the export moves it to root node which is OK
+ assertXPathNSDef(pXmlDoc, "/office:document-content", "foo", "http://example.com/");
+}
+
+void SdExportTest::testTdf80020()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf80020.odp"), ODP);
+ {
+ uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameAccess> xStyleFamily(xStyleFamilies->getByName("graphics"), uno::UNO_QUERY);
+ uno::Reference<style::XStyle> xStyle(xStyleFamily->getByName("Test Style"), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("text"), xStyle->getParentStyle());
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ }
+ uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameAccess> xStyleFamily(xStyleFamilies->getByName("graphics"), uno::UNO_QUERY);
+ uno::Reference<style::XStyle> xStyle(xStyleFamily->getByName("Test Style"), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("text"), xStyle->getParentStyle());
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testLinkedGraphicRT()
+{
+ // Problem was with linked images
+ const sal_Int32 vFormats[] = {
+ ODP,
+ PPT,
+// PPTX, -> this fails now, need a fix
+ };
+
+ for( size_t nExportFormat = 0; nExportFormat < SAL_N_ELEMENTS(vFormats); ++nExportFormat )
+ {
+ // Load the original file with one image
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/document_with_linked_graphic.odp"), ODP);
+
+ // Export the document and import again for a check
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[vFormats[nExportFormat]].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ // Check if the graphic has been imported correctly (before doing the export/import run)
+ {
+ const OString sFailedImportMessage = "Failed to correctly import the document";
+ SdDrawDocument* pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE(sFailedImportMessage.getStr(), pDoc != nullptr);
+ const SdrPage* pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE(sFailedImportMessage.getStr(), pPage != nullptr);
+ SdrGrafObj* pObject = dynamic_cast<SdrGrafObj*>(pPage->GetObj(2));
+ CPPUNIT_ASSERT_MESSAGE(sFailedImportMessage.getStr(), pObject != nullptr );
+ CPPUNIT_ASSERT_MESSAGE(sFailedImportMessage.getStr(), pObject->IsLinkedGraphic() );
+
+ const GraphicObject& rGraphicObj = pObject->GetGraphicObject(true);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedImportMessage.getStr(), int(GraphicType::Bitmap), int(rGraphicObj.GetGraphic().GetType()));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedImportMessage.getStr(), sal_uLong(864900), rGraphicObj.GetGraphic().GetSizeBytes());
+ }
+
+ // Save and reload
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+ xDocShRef = loadURL(aTempFile.GetURL(), nExportFormat);
+
+ // Check whether graphic imported well after export
+ {
+ const OString sFailedMessage = OStringLiteral("Failed on filter: ") + aFileFormats[vFormats[nExportFormat]].pFilterName;
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pDoc != nullptr );
+ const SdrPage *pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pPage != nullptr );
+ SdrGrafObj* pObject = dynamic_cast<SdrGrafObj*>(pPage->GetObj(2));
+ CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pObject != nullptr );
+ CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pObject->IsLinkedGraphic() );
+
+ const GraphicObject& rGraphicObj = pObject->GetGraphicObject(true);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( sFailedMessage.getStr(), int(GraphicType::Bitmap), int(rGraphicObj.GetGraphic().GetType()));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( sFailedMessage.getStr(), sal_uLong(864900), rGraphicObj.GetGraphic().GetSizeBytes());
+ }
+
+ xDocShRef->DoClose();
+ }
+}
+
+void SdExportTest::testTdf79082()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf79082.ppt"), PPT);
+ utl::TempFile tempFile;
+ tempFile.EnableKillingFile();
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // P1 should have 6 tab stops defined
+ assertXPathChildren(
+ pXmlDoc, "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops", 6);
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[1]",
+ "position", "0cm");
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[2]",
+ "position", "5.08cm");
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[3]",
+ "position", "10.16cm");
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[4]",
+ "position", "15.24cm");
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[5]",
+ "position", "20.32cm");
+ assertXPath(pXmlDoc,
+ "//style:style[@style:name='P1']/style:paragraph-properties/style:tab-stops/"
+ "style:tab-stop[6]",
+ "position", "25.4cm");
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testImageWithSpecialID()
+{
+ // Check how LO handles when the imported graphic's ID is different from that one
+ // which is generated by LO.
+ const sal_Int32 vFormats[] = {
+ ODP,
+ PPT,
+ PPTX,
+ };
+
+ // Trigger swap out mechanism to test swapped state factor too.
+ std::shared_ptr< comphelper::ConfigurationChanges > batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Cache::GraphicManager::TotalCacheSize::set(sal_Int32(1), batch);
+ batch->commit();
+
+ for( size_t nExportFormat = 0; nExportFormat < SAL_N_ELEMENTS(vFormats); ++nExportFormat )
+ {
+ // Load the original file
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/images_with_special_IDs.odp"), ODP);
+ const OString sFailedMessage = OStringLiteral("Failed on filter: ") + aFileFormats[vFormats[nExportFormat]].pFilterName;
+
+ // Export the document and import again for a check
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[vFormats[nExportFormat]].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+ xDocShRef = loadURL(aTempFile.GetURL(), nExportFormat);
+
+ // Check whether graphic was exported well
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDrawPagesSupplier->getDrawPages()->getCount() );
+ uno::Reference< drawing::XDrawPage > xDrawPage( xDrawPagesSupplier->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+
+ uno::Reference<drawing::XShape> xImage(xDrawPage->getByIndex(2), uno::UNO_QUERY);
+ uno::Reference< beans::XPropertySet > XPropSet( xImage, uno::UNO_QUERY_THROW );
+
+ // Check Graphic, Size
+ {
+ uno::Reference<graphic::XGraphic> xGraphic;
+ XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic.is());
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic->getType() != graphic::GraphicType::EMPTY);
+ uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(610), xBitmap->getSize().Width );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(381), xBitmap->getSize().Height );
+ }
+
+ // Second Image
+ xDrawPage.set(xDrawPagesSupplier->getDrawPages()->getByIndex(1), uno::UNO_QUERY_THROW );
+ xImage.set(xDrawPage->getByIndex(1), uno::UNO_QUERY);
+ XPropSet.set( xImage, uno::UNO_QUERY_THROW );
+
+ // Check Graphic, Size
+ {
+ uno::Reference<graphic::XGraphic> xGraphic;
+ XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic.is());
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xGraphic->getType() != graphic::GraphicType::EMPTY);
+ uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(900), xBitmap->getSize().Width );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(600), xBitmap->getSize().Height );
+ }
+ xDocShRef->DoClose();
+ }
+}
+
+void SdExportTest::testTdf62176()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/Tdf62176.odp"), ODP);
+ uno::Reference<drawing::XDrawPage> xPage( getPage( 0, xDocShRef ) );
+
+ //there should be only *one* shape
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xPage->getCount());
+
+ uno::Reference<beans::XPropertySet> xShape( getShape( 0, xPage ) );
+ //checking Paragraph's Left Margin with expected value
+ sal_Int32 nParaLeftMargin = 0;
+ xShape->getPropertyValue("ParaLeftMargin") >>= nParaLeftMargin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2000), nParaLeftMargin);
+ //checking Paragraph's First Line Indent with expected value
+ sal_Int32 nParaFirstLineIndent = 0;
+ xShape->getPropertyValue("ParaFirstLineIndent") >>= nParaFirstLineIndent;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-1300), nParaFirstLineIndent);
+
+ //Checking the *Text* in TextBox
+ uno::Reference<text::XTextRange> xParagraph( getParagraphFromShape( 0, xShape ) );
+ CPPUNIT_ASSERT_EQUAL(OUString("Hello World"), xParagraph->getString());
+
+ //Saving and Reloading the file
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ uno::Reference<drawing::XDrawPage> xPage2( getPage(0, xDocShRef ) );
+ //there should be only *one* shape
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xPage2->getCount());
+
+ uno::Reference<beans::XPropertySet> xShape2( getShape( 0, xPage2 ) );
+ //checking Paragraph's Left Margin with expected value
+ sal_Int32 nParaLeftMargin2 = 0;
+ xShape2->getPropertyValue("ParaLeftMargin") >>= nParaLeftMargin2;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2000), nParaLeftMargin2);
+ //checking Paragraph's First Line Indent with expected value
+ sal_Int32 nParaFirstLineIndent2 = 0;
+ xShape2->getPropertyValue("ParaFirstLineIndent") >>= nParaFirstLineIndent2;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-1300), nParaFirstLineIndent2);
+
+ //Checking the *Text* in TextBox
+ uno::Reference<text::XTextRange> xParagraph2( getParagraphFromShape( 0, xShape2 ) );
+ CPPUNIT_ASSERT_EQUAL(OUString("Hello World"), xParagraph2->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testEmbeddedPdf()
+{
+#if HAVE_FEATURE_PDFIUM
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/embedded-pdf.odp"), ODP);
+ xShell = saveAndReload( xShell.get(), ODP );
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ uno::Reference<beans::XPropertySet> xShape(xPage->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xShape->getPropertyValue("ReplacementGraphic") >>= xGraphic;
+ CPPUNIT_ASSERT(xGraphic.is());
+ xShell->DoClose();
+#endif
+}
+
+void SdExportTest::testEmbeddedText()
+{
+ sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/objectwithtext.fodg"), FODG);
+ xShell = saveAndReload( xShell.get(), ODG );
+
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ uno::Reference<beans::XPropertySet> xShape(xPage->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xText.is());
+
+ uno::Reference<container::XEnumerationAccess> xEA(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEA->hasElements());
+ uno::Reference<container::XEnumeration> xEnum(xEA->createEnumeration());
+ uno::Reference<text::XTextContent> xTC;
+ xEnum->nextElement() >>= xTC;
+ CPPUNIT_ASSERT(xTC.is());
+
+ uno::Reference<container::XEnumerationAccess> xParaEA(xTC, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum(xParaEA->createEnumeration());
+ uno::Reference<beans::XPropertySet> xPortion(xParaEnum->nextElement(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPortion.is());
+ uno::Reference<text::XTextRange> xRange(xPortion, uno::UNO_QUERY);
+ OUString type;
+ xPortion->getPropertyValue("TextPortionType") >>= type;
+ CPPUNIT_ASSERT_EQUAL(OUString("Text"), type);
+ CPPUNIT_ASSERT_EQUAL(OUString("foobar"), xRange->getString()); //tdf#112547
+
+ xShell->DoClose();
+}
+
+void SdExportTest::testTransparenText()
+{
+ sd::DrawDocShellRef xShell
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/transparent-text.fodg"), FODG);
+ xShell = saveAndReload(xShell.get(), ODG);
+
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ uno::Reference<beans::XPropertySet> xShape(xPage->getByIndex(0), uno::UNO_QUERY);
+ sal_Int16 nCharTransparence = 0;
+ xShape->getPropertyValue("CharTransparence") >>= nCharTransparence;
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 75
+ // - Actual : 0
+ // i.e. the 75% transparent text was turned into a "not transparent at all" text.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(75), nCharTransparence);
+
+ xShell->DoClose();
+}
+
+void SdExportTest::testDefaultSubscripts()
+{
+ sd::DrawDocShellRef xShell
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf80194_defaultSubscripts.fodg"), FODG);
+ xShell = saveAndReload(xShell.get(), ODG);
+
+ uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell);
+ uno::Reference<drawing::XShape> xShape(xPage->getByIndex(1), uno::UNO_QUERY);
+ // Default subscripts were too large, enlarging the gap between the next line.
+ // The exact size isn't important. Was 18975, now 16604.
+ CPPUNIT_ASSERT(17000 > xShape->getSize().Height);
+
+ xShell->DoClose();
+}
+
+void SdExportTest::testTdf98477()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf98477grow.pptx"), PPTX);
+
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+ assertXPath(pXmlDoc, "//anim:animateTransform", "by", "0.5,0.5");
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testAuthorField()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/author_fixed.odp"), ODP);
+
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+
+ uno::Reference< text::XTextField > xField = getTextFieldFromPage(0, 0, 0, 0, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("Where is the text field?", xField.is() );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xField, uno::UNO_QUERY_THROW );
+ bool bFixed = false;
+ xPropSet->getPropertyValue("IsFixed") >>= bFixed;
+ CPPUNIT_ASSERT_MESSAGE("Author field is not fixed", bFixed);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf50499()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf50499.pptx"), PPTX);
+
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+ assertXPath(pXmlDoc, "//anim:animate[1]", "from", "(-width/2)");
+ assertXPath(pXmlDoc, "//anim:animate[1]", "to", "(x)");
+ assertXPath(pXmlDoc, "//anim:animate[3]", "by", "(height/3+width*0.1)");
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf100926()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf100926_ODP.pptx"), PPTX);
+
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP);
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ CPPUNIT_ASSERT(pPage != nullptr);
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObj != nullptr);
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+
+ sal_Int32 nRotation = 0;
+ uno::Reference< beans::XPropertySet > xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(27000), nRotation);
+
+ xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(9000), nRotation);
+
+ xCell.set(xTable->getCellByPosition(2, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nRotation);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testPageWithTransparentBackground()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/page_transparent_background.odp"), ODP );
+
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "There should be exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount() );
+
+ uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+ uno::Any aAny = xPropSet->getPropertyValue( "Background" );
+ CPPUNIT_ASSERT_MESSAGE("Slide background is missing", aAny.hasValue());
+
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+ sal_Int32 nTransparence;
+ aAny = aXBackgroundPropSet->getPropertyValue( "FillTransparence" );
+ aAny >>= nTransparence;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Slide background transparency is wrong", sal_Int32(42), nTransparence);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTextRotation()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-text-rotate.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef));
+ uno::Reference<beans::XPropertySet> xPropSet(getShape(0, xPage));
+
+ CPPUNIT_ASSERT(xPropSet.is());
+
+ auto aGeomPropSeq = xPropSet->getPropertyValue("CustomShapeGeometry").get<uno::Sequence<beans::PropertyValue>>();
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(aGeomPropSeq);
+
+ auto it = aCustomShapeGeometry.find("TextRotateAngle");
+ CPPUNIT_ASSERT(it != aCustomShapeGeometry.end());
+
+ CPPUNIT_ASSERT_EQUAL(double(-90), aCustomShapeGeometry["TextRotateAngle"].get<double>());
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf115394PPT()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/ppt/tdf115394.ppt"), PPT);
+
+ // Export the document and import again for a check
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[PPT].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+ xDocShRef = loadURL(aTempFile.GetURL(), PPT);
+
+ double fTransitionDuration;
+
+ // Fast
+ SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage1->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
+
+ // Medium
+ SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
+ fTransitionDuration = pPage2->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
+
+ // Slow
+ SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
+ fTransitionDuration = pPage3->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testBulletsAsImage()
+{
+ for (sal_Int32 nExportFormat : {ODP, PPTX, PPT})
+ {
+ ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/BulletsAsImage.odp"), ODP);
+ const OString sFailedMessageBase = OStringLiteral("Failed on filter '") + aFileFormats[nExportFormat].pFilterName + "': ";
+
+ uno::Reference< lang::XComponent > xComponent = xDocShRef->GetModel();
+ uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OStringToOUString(OString(aFileFormats[nExportFormat].pFilterName), RTL_TEXTENCODING_UTF8);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+ xComponent.set(xStorable, uno::UNO_QUERY);
+ xComponent->dispose();
+
+ xDocShRef = loadURL(aTempFile.GetURL(), nExportFormat);
+
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference<text::XTextRange> const xParagraph(getParagraphFromShape(0, xShape));
+ uno::Reference<beans::XPropertySet> xPropSet(xParagraph, uno::UNO_QUERY_THROW);
+
+ uno::Reference<container::XIndexAccess> xLevels(xPropSet->getPropertyValue("NumberingRules"), uno::UNO_QUERY_THROW);
+ uno::Sequence<beans::PropertyValue> aProperties;
+ xLevels->getByIndex(0) >>= aProperties; // 1st level
+
+ uno::Reference<awt::XBitmap> xBitmap;
+ awt::Size aSize;
+ sal_Int16 nNumberingType = -1;
+
+ for (beans::PropertyValue const & rProperty : std::as_const(aProperties))
+ {
+ if (rProperty.Name == "NumberingType")
+ {
+ nNumberingType = rProperty.Value.get<sal_Int16>();
+ }
+ else if (rProperty.Name == "GraphicBitmap")
+ {
+ xBitmap = rProperty.Value.get<uno::Reference<awt::XBitmap>>();
+ }
+ else if (rProperty.Name == "GraphicSize")
+ {
+ aSize = rProperty.Value.get<awt::Size>();
+ }
+ }
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), style::NumberingType::BITMAP, nNumberingType);
+
+ // Graphic Bitmap
+ const OString sFailed = sFailedMessageBase + "No bitmap for the bullets";
+ CPPUNIT_ASSERT_MESSAGE(sFailed.getStr(), xBitmap.is());
+ Graphic aGraphic(uno::Reference<graphic::XGraphic>(xBitmap, uno::UNO_QUERY));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), GraphicType::Bitmap, aGraphic.GetType());
+ CPPUNIT_ASSERT_MESSAGE(sFailedMessageBase.getStr(), aGraphic.GetSizeBytes() > o3tl::make_unsigned(0));
+
+ if (nExportFormat == ODP || nExportFormat == PPT)
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), 16L, aGraphic.GetSizePixel().Width());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), 16L, aGraphic.GetSizePixel().Height());
+ }
+ else // FIXME: what happened here
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), 64L, aGraphic.GetSizePixel().Width());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), 64L, aGraphic.GetSizePixel().Height());
+ }
+
+ // Graphic Size
+ if (nExportFormat == ODP)
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(500), aSize.Width);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(500), aSize.Height);
+
+ }
+ else if (nExportFormat == PPT) // seems like a conversion error
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(504), aSize.Width);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(504), aSize.Height);
+ }
+ else // FIXME: totally wrong
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(790), aSize.Width);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessageBase.getStr(), sal_Int32(790), aSize.Height);
+ }
+
+ xDocShRef->DoClose();
+ }
+}
+
+void SdExportTest::testTdf113822()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf113822underline.pptx"), PPTX);
+
+ // Was unable to export iterate container (tdf#99213).
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ // Was unable to import iterate container (tdf#113822).
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // IterateContainer was created as ParallelTimeContainer before, so
+ // the iterate type is not set too.
+ assertXPath(pXmlDoc, "//anim:iterate", "iterate-type", "by-letter");
+ // The target of the child animation nodes need to be in the iterate container.
+ assertXPath(pXmlDoc, "//anim:iterate", "targetElement", "id1");
+ assertXPath(pXmlDoc, "//anim:iterate/anim:set", "attributeName", "text-underline");
+ assertXPath(pXmlDoc, "//anim:iterate/anim:set", "to", "solid");
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf113818()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf113818-swivel.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPT);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+ assertXPath(pXmlDoc, "//anim:animate[1]", "formula", "width*sin(2.5*pi*$)");
+ assertXPath(pXmlDoc, "//anim:animate[1]", "values", "0;1");
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf119629()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/ppt/tdf119629.ppt"), PPT);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPT);
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // MSO's effect node type Click parallel node, with group node, after group node
+ // were missing.
+ assertXPath(pXmlDoc, "//draw:page"
+ "/anim:par[@presentation:node-type='timing-root']"
+ "/anim:seq[@presentation:node-type='main-sequence']"
+ "/anim:par[@presentation:node-type='on-click']"
+ "/anim:par[@presentation:node-type='with-previous']"
+ "/anim:par[@presentation:node-type='on-click']"
+ "/anim:animate[@anim:formula='width*sin(2.5*pi*$)']", 1);
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf123557()
+{
+ utl::TempFile tempFile;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/trigger.pptx"), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+ xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // Contains 2 interactive sequences and 3 triggered effects.
+ assertXPath(pXmlDoc, "//draw:page", 1);
+ assertXPath(pXmlDoc, "//draw:page/anim:par", 1);
+ assertXPath(pXmlDoc, "//draw:page"
+ "/anim:par[@presentation:node-type='timing-root']"
+ "/anim:seq[@presentation:node-type='interactive-sequence']", 2);
+ assertXPath(pXmlDoc, "//draw:page"
+ "/anim:par[@presentation:node-type='timing-root']"
+ "/anim:seq[@presentation:node-type='interactive-sequence']"
+ "/anim:par[@smil:begin]",3);
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testTdf126761()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf126761.ppt"), PPT);
+ xDocShRef = saveAndReload( xDocShRef.get(), ODP );
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph of the text
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+
+ // Get first run of the paragraph
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph (0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+
+ // Check character underline, to make sure it has been set correctly
+ sal_uInt32 nCharUnderline;
+ xPropSet->getPropertyValue( "CharUnderline" ) >>= nCharUnderline;
+ CPPUNIT_ASSERT_EQUAL( sal_uInt32(1), nCharUnderline );
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testGlow()
+{
+ auto xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odg/glow.odg"), ODG);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), ODG, &tempFile);
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+
+ // Check glow properties
+ sal_Int32 nGlowEffectRad = 0;
+ CPPUNIT_ASSERT(xShape->getPropertyValue("GlowEffectRadius") >>= nGlowEffectRad);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(529), nGlowEffectRad); // 15 pt = 529.166... mm/100
+ sal_Int32 nGlowEffectColor = 0;
+ CPPUNIT_ASSERT(xShape->getPropertyValue("GlowEffectColor") >>= nGlowEffectColor);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FF4000), nGlowEffectColor); // "Brick"
+ sal_Int16 nGlowEffectTransparency = 0;
+ CPPUNIT_ASSERT(xShape->getPropertyValue("GlowEffectTransparency") >>= nGlowEffectTransparency);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(60), nGlowEffectTransparency); // 60%
+
+ // Test ODF element
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // check that we actually test graphic style
+ assertXPath(pXmlDoc, "/office:document-content/office:automatic-styles/style:style[2]",
+ "family", "graphic");
+ // check loext graphic attributes
+ assertXPath(
+ pXmlDoc,
+ "/office:document-content/office:automatic-styles/style:style[2]/style:graphic-properties",
+ "glow-radius", "0.529cm");
+ assertXPath(
+ pXmlDoc,
+ "/office:document-content/office:automatic-styles/style:style[2]/style:graphic-properties",
+ "glow-color", "#ff4000");
+ assertXPath(
+ pXmlDoc,
+ "/office:document-content/office:automatic-styles/style:style[2]/style:graphic-properties",
+ "glow-transparency", "60%");
+
+ xDocShRef->DoClose();
+}
+
+void SdExportTest::testSoftEdges()
+{
+ auto xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odg/softedges.odg"), ODG);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), ODG, &tempFile);
+ auto xShapeProps(getShapeFromPage(0, 0, xDocShRef));
+
+ // Check property
+ sal_Int32 nRad = 0;
+ CPPUNIT_ASSERT(xShapeProps->getPropertyValue("SoftEdgeRadius") >>= nRad);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(635), nRad); // 18 pt
+
+ // Test ODF element
+ xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "content.xml");
+
+ // check that we actually test graphic style
+ assertXPath(pXmlDoc, "/office:document-content/office:automatic-styles/style:style[2]",
+ "family", "graphic");
+ // check loext graphic attribute
+ assertXPath(
+ pXmlDoc,
+ "/office:document-content/office:automatic-styles/style:style[2]/style:graphic-properties",
+ "softedge-radius", "0.635cm");
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/filters-test.cxx b/sd/qa/unit/filters-test.cxx
new file mode 100644
index 000000000..707f8c851
--- /dev/null
+++ b/sd/qa/unit/filters-test.cxx
@@ -0,0 +1,118 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+#include <unotest/filters-test.hxx>
+#include <test/bootstrapfixture.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+
+#include <sfx2/docfilt.hxx>
+#include <sfx2/docfile.hxx>
+
+#include <drawdoc.hxx>
+#include <DrawDocShell.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test loading of files to assure they do not crash on load.
+class SdFiltersTest
+ : public test::FiltersTest
+ , public test::BootstrapFixture
+{
+public:
+ SdFiltersTest();
+
+ virtual bool load( const OUString &rFilter,
+ const OUString &rURL, const OUString &rUserData,
+ SfxFilterFlags nFilterFlags, SotClipboardFormatId nClipboardID,
+ unsigned int nFilterVersion) override;
+
+ virtual void setUp() override;
+ virtual void tearDown() override;
+
+ // Ensure CVEs remain unbroken
+ void testCVEs();
+
+ CPPUNIT_TEST_SUITE(SdFiltersTest);
+ CPPUNIT_TEST(testCVEs);
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+ uno::Reference<uno::XInterface> m_xDrawComponent;
+};
+
+bool SdFiltersTest::load(const OUString &rFilter, const OUString &rURL,
+ const OUString &rUserData, SfxFilterFlags nFilterFlags, SotClipboardFormatId nClipboardID,
+ unsigned int nFilterVersion)
+{
+ auto pFilter = std::make_shared<SfxFilter>(
+ rFilter,
+ OUString(), nFilterFlags, nClipboardID, OUString(), OUString(),
+ rUserData, OUString() );
+ pFilter->SetVersion(nFilterVersion);
+
+ ::sd::DrawDocShellRef xDocShRef = new ::sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Impress);
+ SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ);
+ pSrcMed->SetFilter(pFilter);
+ bool bLoaded = xDocShRef->DoLoad(pSrcMed);
+ xDocShRef->DoClose();
+ return bLoaded;
+}
+
+void SdFiltersTest::testCVEs()
+{
+#ifndef DISABLE_CVE_TESTS
+ testDir("MS PowerPoint 97",
+ m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/"),
+ "sdfilt");
+
+ testDir("Impress Office Open XML",
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/"),
+ "", (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER));
+
+ testDir("impress8",
+ m_directories.getURLFromSrc("/sd/qa/unit/data/odp/"),
+ "sdfilt");
+
+ testDir("draw8",
+ m_directories.getURLFromSrc("/sd/qa/unit/data/odg/"),
+ "sdfilt");
+
+ testDir("CGM - Computer Graphics Metafile",
+ m_directories.getURLFromSrc("/sd/qa/unit/data/cgm/"),
+ "icg");
+#endif
+}
+
+SdFiltersTest::SdFiltersTest()
+{
+}
+
+void SdFiltersTest::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ // This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
+ // which is a private symbol to us, gets called
+ m_xDrawComponent =
+ getMultiServiceFactory()->createInstance("com.sun.star.comp.Draw.PresentationDocument");
+ CPPUNIT_ASSERT_MESSAGE("no impress component!", m_xDrawComponent.is());
+}
+
+void SdFiltersTest::tearDown()
+{
+ uno::Reference< lang::XComponent >( m_xDrawComponent, uno::UNO_QUERY_THROW )->dispose();
+ test::BootstrapFixture::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdFiltersTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx
new file mode 100644
index 000000000..4fe544a86
--- /dev/null
+++ b/sd/qa/unit/import-tests-smartart.cxx
@@ -0,0 +1,1647 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "sdmodeltestbase.hxx"
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/drawing/TextFitToSizeType.hpp>
+#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#include <com/sun/star/text/XText.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+
+#include <svx/svdpage.hxx>
+#include <svx/svdogrp.hxx>
+#include <comphelper/sequenceashashmap.hxx>
+#include <oox/drawingml/drawingmltypes.hxx>
+
+using namespace ::com::sun::star;
+
+namespace
+{
+/// Gets one child of xShape, which one is specified by nIndex.
+uno::Reference<drawing::XShape> getChildShape(const uno::Reference<drawing::XShape>& xShape, sal_Int32 nIndex)
+{
+ uno::Reference<container::XIndexAccess> xGroup(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ CPPUNIT_ASSERT(xGroup->getCount() > nIndex);
+
+ uno::Reference<drawing::XShape> xRet(xGroup->getByIndex(nIndex), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xRet.is());
+
+ return xRet;
+}
+
+uno::Reference<drawing::XShape> findChildShapeByText(const uno::Reference<drawing::XShape>& xShape,
+ const OUString& sText)
+{
+ uno::Reference<text::XText> xText(xShape, uno::UNO_QUERY);
+ if (xText.is() && xText->getString() == sText)
+ return xShape;
+
+ uno::Reference<container::XIndexAccess> xGroup(xShape, uno::UNO_QUERY);
+ if (!xGroup.is())
+ return uno::Reference<drawing::XShape>();
+
+ for (sal_Int32 i = 0; i < xGroup->getCount(); i++)
+ {
+ uno::Reference<drawing::XShape> xChildShape(xGroup->getByIndex(i), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xReturnShape = findChildShapeByText(xChildShape, sText);
+ if (xReturnShape.is())
+ return xReturnShape;
+ }
+
+ return uno::Reference<drawing::XShape>();
+}
+}
+
+class SdImportTestSmartArt : public SdModelTestBase
+{
+public:
+ void testBase();
+ void testChildren();
+ void testText();
+ void testCnt();
+ void testDir();
+ void testMaxDepth();
+ void testRotation();
+ void testTextAutoRotation();
+ void testPyramid();
+ void testChevron();
+ void testCycle();
+ void testvenndiagram();
+ void testmatrix();
+ void testHierarchy();
+ void testInvertedPyramid();
+ void testBasicProcess();
+ void testMultidirectional();
+ void testHorizontalBulletList();
+ void testBasicRadicals();
+ void testEquation();
+ void testSegmentedCycle();
+ void testBaseRtoL();
+ void testVerticalBoxList();
+ void testVerticalBracketList();
+ void testTableList();
+ void testAccentProcess();
+ void testContinuousBlockProcess();
+ void testOrgChart();
+ void testCycleMatrix();
+ void testPictureStrip();
+ void testInteropGrabBag();
+ void testBackground();
+ void testBackgroundDrawingmlFallback();
+ void testCenterCycle();
+ void testFontSize();
+ void testVerticalBlockList();
+ void testBulletList();
+ void testMissingBulletAndIndent();
+ void testRecursion();
+ void testDataFollow();
+ void testOrgChart2();
+ void testTdf131553();
+ void testFillColorList();
+ void testLinearRule();
+ void testLinearRuleVert();
+ void testAutofitSync();
+ void testSnakeRows();
+
+ CPPUNIT_TEST_SUITE(SdImportTestSmartArt);
+
+ CPPUNIT_TEST(testBase);
+ CPPUNIT_TEST(testChildren);
+ CPPUNIT_TEST(testText);
+ CPPUNIT_TEST(testCnt);
+ CPPUNIT_TEST(testDir);
+ CPPUNIT_TEST(testMaxDepth);
+ CPPUNIT_TEST(testRotation);
+ CPPUNIT_TEST(testTextAutoRotation);
+ CPPUNIT_TEST(testPyramid);
+ CPPUNIT_TEST(testChevron);
+ CPPUNIT_TEST(testCycle);
+ CPPUNIT_TEST(testHierarchy);
+ CPPUNIT_TEST(testmatrix);
+ CPPUNIT_TEST(testvenndiagram);
+ CPPUNIT_TEST(testInvertedPyramid);
+ CPPUNIT_TEST(testBasicProcess);
+ CPPUNIT_TEST(testMultidirectional);
+ CPPUNIT_TEST(testHorizontalBulletList);
+ CPPUNIT_TEST(testBasicRadicals);
+ CPPUNIT_TEST(testEquation);
+ CPPUNIT_TEST(testSegmentedCycle);
+ CPPUNIT_TEST(testBaseRtoL);
+ CPPUNIT_TEST(testVerticalBoxList);
+ CPPUNIT_TEST(testVerticalBracketList);
+ CPPUNIT_TEST(testTableList);
+ CPPUNIT_TEST(testAccentProcess);
+ CPPUNIT_TEST(testContinuousBlockProcess);
+ CPPUNIT_TEST(testOrgChart);
+ CPPUNIT_TEST(testCycleMatrix);
+ CPPUNIT_TEST(testPictureStrip);
+ CPPUNIT_TEST(testInteropGrabBag);
+ CPPUNIT_TEST(testBackground);
+ CPPUNIT_TEST(testBackgroundDrawingmlFallback);
+ CPPUNIT_TEST(testCenterCycle);
+ CPPUNIT_TEST(testFontSize);
+ CPPUNIT_TEST(testVerticalBlockList);
+ CPPUNIT_TEST(testBulletList);
+ CPPUNIT_TEST(testMissingBulletAndIndent);
+ CPPUNIT_TEST(testRecursion);
+ CPPUNIT_TEST(testDataFollow);
+ CPPUNIT_TEST(testOrgChart2);
+ CPPUNIT_TEST(testTdf131553);
+ CPPUNIT_TEST(testFillColorList);
+ CPPUNIT_TEST(testLinearRule);
+ CPPUNIT_TEST(testLinearRuleVert);
+ CPPUNIT_TEST(testAutofitSync);
+ CPPUNIT_TEST(testSnakeRows);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void SdImportTestSmartArt::testBase()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart1.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xShapeGroup->getCount());
+
+ uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xText0->getString());
+ uno::Reference<text::XText> xText1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xText1->getString());
+ uno::Reference<text::XText> xText2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("c"), xText2->getString());
+ uno::Reference<text::XText> xText3(xShapeGroup->getByIndex(4), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("d"), xText3->getString());
+ uno::Reference<text::XText> xText4(xShapeGroup->getByIndex(5), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("e"), xText4->getString());
+
+ uno::Reference<beans::XPropertySet> xShape(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+
+ sal_Int32 nFillColor = 0;
+ xShape->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x4F81BD), nFillColor);
+
+ sal_Int16 nParaAdjust = 0;
+ uno::Reference<text::XTextRange> xParagraph(getParagraphFromShape(0, xShape));
+ uno::Reference<beans::XPropertySet> xPropSet(xParagraph, uno::UNO_QUERY_THROW);
+ xPropSet->getPropertyValue("ParaAdjust") >>= nParaAdjust;
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(nParaAdjust));
+
+ uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape3(xShapeGroup->getByIndex(4), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape4(xShapeGroup->getByIndex(5), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y,xShape1->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xShape2->getPosition().Y,xShape3->getPosition().Y);
+ CPPUNIT_ASSERT(xShape2->getPosition().Y > xShape0->getPosition().Y);
+ CPPUNIT_ASSERT(xShape4->getPosition().Y > xShape2->getPosition().Y);
+ CPPUNIT_ASSERT(xShape0->getPosition().X < xShape1->getPosition().X);
+ CPPUNIT_ASSERT(xShape2->getPosition().X < xShape3->getPosition().X);
+ CPPUNIT_ASSERT((xShape2->getPosition().X < xShape4->getPosition().X) && (xShape3->getPosition().X > xShape4->getPosition().X));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testChildren()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-children.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
+
+ uno::Reference<drawing::XShapes> xShapeGroup0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xShapeGroup0->getCount());
+ uno::Reference<text::XText> xTextA(xShapeGroup0->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xTextA->getString());
+
+ uno::Reference<drawing::XShapes> xChildren0(xShapeGroup0->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xChildren0->getCount());
+ uno::Reference<drawing::XShapes> xChildB(xChildren0->getByIndex(0), uno::UNO_QUERY_THROW);
+ uno::Reference<text::XText> xTextB(xChildB->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xTextB->getString());
+ uno::Reference<drawing::XShapes> xChildC(xChildren0->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<text::XText> xTextC(xChildC->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("c"), xTextC->getString());
+
+ uno::Reference<drawing::XShapes> xShapeGroup1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xShapeGroup1->getCount());
+ uno::Reference<text::XText> xTextX(xShapeGroup1->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("x"), xTextX->getString());
+
+ uno::Reference<drawing::XShapes> xChildren1(xShapeGroup1->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xChildren1->getCount());
+ uno::Reference<drawing::XShapes> xChildY(xChildren1->getByIndex(0), uno::UNO_QUERY_THROW);
+ uno::Reference<text::XText> xTextY(xChildY->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("y"), xTextY->getString());
+ uno::Reference<drawing::XShapes> xChildZ(xChildren1->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<text::XText> xTextZ(xChildZ->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("z"), xTextZ->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testText()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-text.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShapes> xShapeGroup2(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+
+ uno::Reference<text::XText> xText0(xShapeGroup2->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xText0->getString().isEmpty());
+
+ uno::Reference<text::XText> xText1(xShapeGroup2->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("test"), xText1->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testCnt()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-cnt.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ sal_Int32 nCount = xShapeGroup->getCount();
+ sal_Int32 nCorrect = 0;
+ for (sal_Int32 i=0; i<nCount; i++)
+ {
+ uno::Reference<text::XText> xText(xShapeGroup->getByIndex(i), uno::UNO_QUERY);
+ if (xText.is() && !xText->getString().isEmpty())
+ nCorrect++;
+ }
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nCorrect);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testDir()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-dir.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
+
+ uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xShape0->getPosition().X > xShape1->getPosition().X);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testMaxDepth()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-maxdepth.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
+
+ uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("first"), xText0->getString());
+ uno::Reference<text::XText> xText1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("second"), xText1->getString());
+
+ uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y , xShape1->getPosition().Y); // Confirms shapes are in same Y axis-level.
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testRotation()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-rotation.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+
+ uno::Reference<beans::XPropertySet> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xShape0->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ uno::Reference<beans::XPropertySet> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(24000), xShape1->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ uno::Reference<beans::XPropertySet> xShape2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(12000), xShape2->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testTextAutoRotation()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-autoTxRot.pptx"), PPTX);
+
+ auto testText = [&](int pageNo, sal_Int32 txtNo, const OUString& expTx, sal_Int32 expShRot,
+ sal_Int32 expTxRot) {
+ OString msgText = "Page: " + OString::number(pageNo) + " text: " + OString::number(txtNo);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, pageNo, xDocShRef),
+ uno::UNO_QUERY_THROW);
+
+ txtNo++; //skip background
+ uno::Reference<text::XText> xTxt(xShapeGroup->getByIndex(txtNo), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msgText.getStr(), expTx, xTxt->getString());
+ uno::Reference<beans::XPropertySet> xTxtProps(xTxt, uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msgText.getStr(), expShRot,
+ xTxtProps->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ auto aGeomPropSeq = xTxtProps->getPropertyValue("CustomShapeGeometry")
+ .get<uno::Sequence<beans::PropertyValue>>();
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(aGeomPropSeq);
+
+ auto it = aCustomShapeGeometry.find("TextPreRotateAngle");
+ if (it == aCustomShapeGeometry.end())
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msgText.getStr(), sal_Int32(0), expTxRot);
+ }
+ else
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msgText.getStr(), expTxRot, it->second.get<sal_Int32>());
+ }
+ };
+
+ // Slide 1: absent autoTxRot => defaults to "upr"
+ testText(0, 0, "a", 0, 0);
+ testText(0, 1, "b", 33750, 0);
+ testText(0, 2, "c", 31500, 0);
+ testText(0, 3, "d", 29250, 90);
+ testText(0, 4, "e", 27000, 90);
+ testText(0, 5, "f", 24750, 90);
+ testText(0, 6, "g", 22500, 180);
+ testText(0, 7, "h", 20250, 180);
+ testText(0, 8, "i", 18000, 180);
+ testText(0, 9, "j", 15750, 180);
+ testText(0, 10, "k", 13500, 180);
+ testText(0, 11, "l", 11250, 270);
+ testText(0, 12, "m", 9000, 270);
+ testText(0, 13, "n", 6750, 270);
+ testText(0, 14, "o", 4500, 0);
+ testText(0, 15, "p", 2250, 0);
+
+ // Slide 2: autoTxRot == "none"
+ testText(1, 0, "a", 0, 0);
+ testText(1, 1, "b", 33750, 0);
+ testText(1, 2, "c", 31500, 0);
+ testText(1, 3, "d", 29250, 0);
+ testText(1, 4, "e", 27000, 0);
+ testText(1, 5, "f", 24750, 0);
+ testText(1, 6, "g", 22500, 0);
+ testText(1, 7, "h", 20250, 0);
+ testText(1, 8, "i", 18000, 0);
+ testText(1, 9, "j", 15750, 0);
+ testText(1, 10, "k", 13500, 0);
+ testText(1, 11, "l", 11250, 0);
+ testText(1, 12, "m", 9000, 0);
+ testText(1, 13, "n", 6750, 0);
+ testText(1, 14, "o", 4500, 0);
+ testText(1, 15, "p", 2250, 0);
+
+ // Slide 3: autoTxRot == "grav"
+ testText(2, 0, "a", 0, 0);
+ testText(2, 1, "b", 33750, 0);
+ testText(2, 2, "c", 31500, 0);
+ testText(2, 3, "d", 29250, 0);
+ testText(2, 4, "e", 27000, 0);
+ testText(2, 5, "f", 24750, 180);
+ testText(2, 6, "g", 22500, 180);
+ testText(2, 7, "h", 20250, 180);
+ testText(2, 8, "i", 18000, 180);
+ testText(2, 9, "j", 15750, 180);
+ testText(2, 10, "k", 13500, 180);
+ testText(2, 11, "l", 11250, 180);
+ testText(2, 12, "m", 9000, 0);
+ testText(2, 13, "n", 6750, 0);
+ testText(2, 14, "o", 4500, 0);
+ testText(2, 15, "p", 2250, 0);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testBasicProcess()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testPyramid()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testChevron()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-chevron.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xShapeGroup->getCount());
+
+ uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xText0->getString());
+ uno::Reference<text::XText> xText1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xText1->getString());
+ uno::Reference<text::XText> xText2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("c"), xText2->getString());
+
+ uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+
+ CPPUNIT_ASSERT(xShape0->getPosition().X < xShape1->getPosition().X && xShape1->getPosition().X < xShape2->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y, xShape1->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xShape1->getPosition().Y, xShape2->getPosition().Y);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testCycle()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-cycle.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ // 11 children: background, 5 shapes, 5 connectors
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(11), xGroup->getCount());
+
+ uno::Reference<drawing::XShape> xShape0(xGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShapeConn(xGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape2(xGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+
+ uno::Reference<text::XText> xText0(xShape0, uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xText0->getString());
+ uno::Reference<text::XText> xText2(xShape2, uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xText2->getString());
+
+ // xShapeConn is connector between shapes 0 and 2
+ // it should lay between them and be rotated 0 -> 2
+ CPPUNIT_ASSERT(xShape0->getPosition().X < xShapeConn->getPosition().X);
+ CPPUNIT_ASSERT(xShape0->getPosition().Y < xShapeConn->getPosition().Y && xShapeConn->getPosition().Y < xShape2->getPosition().Y);
+ uno::Reference<beans::XPropertySet> xPropSetConn(xShapeConn, uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(32400), xPropSetConn->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ // Make sure that we have an arrow shape between the two shapes
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(
+ xPropSetConn->getPropertyValue("CustomShapeGeometry"));
+ CPPUNIT_ASSERT(aCustomShapeGeometry["Type"].has<OUString>());
+ OUString aType = aCustomShapeGeometry["Type"].get<OUString>();
+ CPPUNIT_ASSERT_EQUAL(OUString("ooxml-rightArrow"), aType);
+}
+
+void SdImportTestSmartArt::testHierarchy()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testmatrix()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testvenndiagram()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testInvertedPyramid()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testMultidirectional()
+{
+ // similar document as cycle, but arrows are pointing in both directions
+
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-multidirectional.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ // 7 children: background, 3 shapes, 3 connectors
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(7), xGroup->getCount());
+
+ uno::Reference<drawing::XShape> xShapeConn(xGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropSetConn(xShapeConn, uno::UNO_QUERY_THROW);
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(
+ xPropSetConn->getPropertyValue("CustomShapeGeometry"));
+ CPPUNIT_ASSERT(aCustomShapeGeometry["Type"].has<OUString>());
+ OUString aType = aCustomShapeGeometry["Type"].get<OUString>();
+ CPPUNIT_ASSERT_EQUAL(OUString("ooxml-leftRightArrow"), aType);
+}
+
+void SdImportTestSmartArt::testHorizontalBulletList()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testEquation()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testBasicRadicals()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testSegmentedCycle()
+{
+ //FIXME : so far this only introduce the test document, but the actual importer was not fixed yet.
+}
+
+void SdImportTestSmartArt::testBaseRtoL()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xShapeGroup->getCount());
+
+ uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xText0->getString());
+ uno::Reference<text::XText> xText1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xText1->getString());
+ uno::Reference<text::XText> xText2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("c"), xText2->getString());
+ uno::Reference<text::XText> xText3(xShapeGroup->getByIndex(4), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("d"), xText3->getString());
+ uno::Reference<text::XText> xText4(xShapeGroup->getByIndex(5), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(OUString("e"), xText4->getString());
+
+ uno::Reference<beans::XPropertySet> xShape(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+
+ sal_Int32 nFillColor = 0;
+ xShape->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x4F81BD), nFillColor);
+
+ sal_Int16 nParaAdjust = 0;
+ uno::Reference<text::XTextRange> xParagraph(getParagraphFromShape(0, xShape));
+ uno::Reference<beans::XPropertySet> xPropSet(xParagraph, uno::UNO_QUERY_THROW);
+ xPropSet->getPropertyValue("ParaAdjust") >>= nParaAdjust;
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(nParaAdjust));
+
+ uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape2(xShapeGroup->getByIndex(3), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape3(xShapeGroup->getByIndex(4), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XShape> xShape4(xShapeGroup->getByIndex(5), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y,xShape1->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xShape2->getPosition().Y,xShape3->getPosition().Y);
+ CPPUNIT_ASSERT(xShape2->getPosition().Y > xShape0->getPosition().Y);
+ CPPUNIT_ASSERT(xShape4->getPosition().Y > xShape2->getPosition().Y);
+ CPPUNIT_ASSERT(xShape0->getPosition().X > xShape1->getPosition().X);
+ CPPUNIT_ASSERT(xShape2->getPosition().X > xShape3->getPosition().X);
+ CPPUNIT_ASSERT((xShape2->getPosition().X > xShape4->getPosition().X) && (xShape3->getPosition().X < xShape4->getPosition().X));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testVerticalBoxList()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-vertical-box-list.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef),
+ uno::UNO_QUERY_THROW);
+ // Without the accompanying fix in place, this test would have failed with
+ // 'actual: 0'.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xShapeGroup->getCount());
+
+ uno::Reference<drawing::XShapes> xFirstChild(xShapeGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstChild.is());
+ uno::Reference<drawing::XShape> xParentText(xFirstChild->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xParentText.is());
+ // Without the accompanying fix in place, this test would have failed with
+ // 'actual: 7361', i.e. the width was not the 70% of the parent as the
+ // constraint wanted.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(11852), xParentText->getSize().Width);
+
+ uno::Reference<drawing::XShape> xChildText(xShapeGroup->getByIndex(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xChildText.is());
+ // Without the accompanying fix in place, this test would have failed with
+ // 'actual: 7361' (and with the fix: 'actual: 16932', i.e. the width of the
+ // parent).
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(10000), xChildText->getSize().Width);
+
+ // Assert that the right edge of the parent text is closer to the slide
+ // boundary than the right edge of the parent text.
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected greater than: 25656, Actual : 21165'.
+ CPPUNIT_ASSERT_GREATER(xParentText->getPosition().X + xParentText->getSize().Width,
+ xChildText->getPosition().X + xChildText->getSize().Width);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testVerticalBracketList()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/vertical-bracket-list.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef),
+ uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xShapeGroup->getCount());
+
+ uno::Reference<drawing::XShapes> xFirstChild(xShapeGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstChild.is());
+ // Without the accompanying fix in place, this test would have failed with
+ // 'actual: 2', i.e. one child shape (with its "A" text) was missing.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xFirstChild->getCount());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testTableList()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/table-list.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xShapeGroup.is());
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xShapeGroup->getCount());
+
+ uno::Reference<text::XText> xParentText(xShapeGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xParentText.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("Parent"), xParentText->getString());
+ uno::Reference<drawing::XShape> xParent(xParentText, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xParent.is());
+ int nParentRight = xParent->getPosition().X + xParent->getSize().Width;
+
+ uno::Reference<drawing::XShapes> xChildren(xShapeGroup->getByIndex(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xChildren.is());
+ uno::Reference<text::XText> xChild2Text(xChildren->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xChild2Text.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("Child 2"), xChild2Text->getString());
+ uno::Reference<drawing::XShape> xChild2(xChild2Text, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xChild2.is());
+ int nChild2Right = xChild2->getPosition().X + xChild2->getSize().Width;
+
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected less than: 100, Actual : 22014', i.e. the second child was
+ // shifted to the right too much.
+ CPPUNIT_ASSERT_LESS(100, abs(nChild2Right - nParentRight));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testAccentProcess()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-accent-process.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+ // 3 children: first pair, connector, second pair.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xGroup->getCount());
+ uno::Reference<drawing::XShape> xGroupShape(xGroup, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroupShape.is());
+
+ // The pair is a parent (shape + text) and a child, so 3 shapes in total.
+ // The order is important, first is at the back, last is at the front.
+ uno::Reference<drawing::XShapes> xFirstPair(xGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstPair.is());
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xFirstPair->getCount());
+
+ uno::Reference<text::XText> xFirstParentText(xFirstPair->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstParentText.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xFirstParentText->getString());
+ uno::Reference<drawing::XShape> xFirstParent(xFirstParentText, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstParent.is());
+ int nFirstParentTop = xFirstParent->getPosition().Y;
+
+ uno::Reference<text::XText> xFirstChildText(xFirstPair->getByIndex(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstChildText.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("b"), xFirstChildText->getString());
+ uno::Reference<drawing::XShape> xFirstChild(xFirstChildText, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstChildText.is());
+
+ {
+ uno::Reference<container::XEnumerationAccess> xParasAccess(xFirstChildText, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParas = xParasAccess->createEnumeration();
+ uno::Reference<beans::XPropertySet> xPara(xParas->nextElement(), uno::UNO_QUERY);
+ // Without the accompanying fix in place, this test would have failed
+ // with 'Expected: 0; Actual : 1270', i.e. there was a large
+ // unexpected left margin.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0),
+ xPara->getPropertyValue("ParaLeftMargin").get<sal_Int32>());
+
+ uno::Reference<container::XIndexAccess> xRules(xPara->getPropertyValue("NumberingRules"),
+ uno::UNO_QUERY);
+ comphelper::SequenceAsHashMap aRule(xRules->getByIndex(0));
+ CPPUNIT_ASSERT_EQUAL(OUString::fromUtf8(u8"•"), aRule["BulletChar"].get<OUString>());
+ }
+
+ int nFirstChildTop = xFirstChild->getPosition().Y;
+ int nFirstChildRight = xFirstChild->getPosition().X + xFirstChild->getSize().Width;
+
+ // First child is below the first parent.
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected less than: 3881, Actual : 3881', i.e. xFirstChild was not
+ // below xFirstParent (a good position is 9081).
+ CPPUNIT_ASSERT_LESS(nFirstChildTop, nFirstParentTop);
+
+ // Make sure that we have an arrow shape between the two pairs.
+ uno::Reference<beans::XPropertySet> xArrow(xGroup->getByIndex(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xArrow.is());
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(
+ xArrow->getPropertyValue("CustomShapeGeometry"));
+ // Without the accompanying fix in place, this test would have failed, i.e.
+ // the custom shape lacked a type -> arrow was not visible.
+ CPPUNIT_ASSERT(aCustomShapeGeometry["Type"].has<OUString>());
+ OUString aType = aCustomShapeGeometry["Type"].get<OUString>();
+ CPPUNIT_ASSERT_EQUAL(OUString("ooxml-rightArrow"), aType);
+
+ // Make sure that height of the arrow is less than its width.
+ uno::Reference<drawing::XShape> xArrowShape(xArrow, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xArrowShape.is());
+ awt::Size aArrowSize = xArrowShape->getSize();
+ CPPUNIT_ASSERT_LESS(aArrowSize.Width, aArrowSize.Height);
+
+ uno::Reference<drawing::XShapes> xSecondPair(xGroup->getByIndex(3), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xSecondPair.is());
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xSecondPair->getCount());
+ uno::Reference<text::XText> xSecondParentText(xSecondPair->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstParentText.is());
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected: cc; Actual : c', i.e. non-first runs on data points were ignored.
+ CPPUNIT_ASSERT_EQUAL(OUString("cc"), xSecondParentText->getString());
+ uno::Reference<drawing::XShape> xSecondParent(xSecondParentText, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xSecondParent.is());
+ int nSecondParentLeft = xSecondParent->getPosition().X;
+ // Without the accompanying fix in place, this test would have failed with
+ // 'Expected less than: 12700; Actual : 18540', i.e. the "b" and "c"
+ // shapes overlapped.
+ CPPUNIT_ASSERT_LESS(nSecondParentLeft, nFirstChildRight);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testContinuousBlockProcess()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx"),
+ PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+ // 3 children: diagram background, background arrow, foreground.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xGroup->getCount());
+
+ uno::Reference<drawing::XShapes> xLinear(xGroup->getByIndex(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xLinear.is());
+ // 3 children: A, B and C.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xLinear->getCount());
+
+ uno::Reference<text::XText> xA(xLinear->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xA.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("A"), xA->getString());
+ uno::Reference<drawing::XShape> xAShape(xA, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xAShape.is());
+ // Without the accompanying fix in place, this test would have failed: the
+ // theoretically correct value is 5462 mm100 (16933 is the total width, and
+ // need to divide that to 1, 0.5, 1, 0.5 and 1 units), while the old value
+ // was 4703 and the new one is 5461.
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(5000), xAShape->getSize().Width);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testOrgChart()
+{
+ // Simple org chart with 1 manager and 1 employee only.
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-org-chart.pptx"),
+ PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<text::XText> xManager(
+ getChildShape(getChildShape(getChildShape(xGroup, 1), 0), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xManager.is());
+ // Without the accompanying fix in place, this test would have failed: this
+ // was just "Manager", and the second paragraph was lost.
+ OUString aExpected("Manager\nSecond para");
+ CPPUNIT_ASSERT_EQUAL(aExpected, xManager->getString());
+
+ uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xManager, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration();
+ uno::Reference<text::XTextRange> xPara(xParaEnum->nextElement(), uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xRunEnumAccess(xPara, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xRunEnum = xRunEnumAccess->createEnumeration();
+ uno::Reference<beans::XPropertySet> xRun(xRunEnum->nextElement(), uno::UNO_QUERY);
+ sal_Int32 nActualColor = xRun->getPropertyValue("CharColor").get<sal_Int32>();
+ // Without the accompanying fix in place, this test would have failed: the
+ // "Manager" font color was black, not white.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xffffff), nActualColor);
+
+ uno::Reference<drawing::XShape> xManagerShape(xManager, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xManagerShape.is());
+
+ awt::Point aManagerPos = xManagerShape->getPosition();
+ awt::Size aManagerSize = xManagerShape->getSize();
+
+ // Make sure that the manager has 2 employees.
+ uno::Reference<drawing::XShapes> xEmployees(getChildShape(getChildShape(xGroup, 1), 2),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEmployees.is());
+ // 4 children: connector, 1st employee, connector, 2nd employee.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xEmployees->getCount());
+
+ uno::Reference<text::XText> xEmployee(
+ getChildShape(
+ getChildShape(getChildShape(getChildShape(getChildShape(xGroup, 1), 2), 1), 0), 0),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEmployee.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("Employee"), xEmployee->getString());
+
+ uno::Reference<drawing::XShape> xEmployeeShape(xEmployee, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEmployeeShape.is());
+
+ awt::Point aEmployeePos = xEmployeeShape->getPosition();
+ awt::Size aEmployeeSize = xEmployeeShape->getSize();
+
+ CPPUNIT_ASSERT_EQUAL(aManagerPos.X, aEmployeePos.X);
+
+ // Without the accompanying fix in place, this test would have failed: the
+ // two shapes were overlapping, i.e. "manager" was not above "employee".
+ CPPUNIT_ASSERT_GREATER(aManagerPos.Y, aEmployeePos.Y);
+
+ // Make sure that the second employee is on the right of the first one.
+ // Without the accompanying fix in place, this test would have failed, as
+ // the second employee was below the first one.
+ uno::Reference<text::XText> xEmployee2(
+ getChildShape(
+ getChildShape(getChildShape(getChildShape(getChildShape(xGroup, 1), 2), 3), 0), 0),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEmployee2.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("Employee2"), xEmployee2->getString());
+
+ uno::Reference<drawing::XShape> xEmployee2Shape(xEmployee2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xEmployee2Shape.is());
+
+ awt::Point aEmployee2Pos = xEmployee2Shape->getPosition();
+ //awt::Size aEmployee2Size = xEmployee2Shape->getSize();
+ CPPUNIT_ASSERT_GREATER(aEmployeePos.X, aEmployee2Pos.X);
+
+ // Make sure that assistant is above employees.
+ uno::Reference<text::XText> xAssistant(
+ getChildShape(
+ getChildShape(getChildShape(getChildShape(getChildShape(xGroup, 1), 1), 1), 0), 0),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("Assistant"), xAssistant->getString());
+
+ uno::Reference<drawing::XShape> xAssistantShape(xAssistant, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xAssistantShape.is());
+
+ awt::Point aAssistantPos = xAssistantShape->getPosition();
+ // Without the accompanying fix in place, this test would have failed: the
+ // assistant shape was below the employee shape.
+ CPPUNIT_ASSERT_GREATER(aAssistantPos.Y, aEmployeePos.Y);
+
+ // Make sure the connector of the assistant is above the shape.
+ uno::Reference<drawing::XShape> xAssistantConnector =
+ getChildShape(getChildShape(getChildShape(xGroup, 1), 1), 0);
+ CPPUNIT_ASSERT(xAssistantConnector.is());
+ //awt::Point aAssistantConnectorPos = xAssistantConnector->getPosition();
+ // This failed, the vertical positions of the connector and the shape of
+ // the assistant were the same.
+ //CPPUNIT_ASSERT_LESS(aAssistantPos.Y, aAssistantConnectorPos.Y);
+ // connectors are hidden as they don't work correctly
+
+ // Make sure the height of xManager and xManager2 is the same.
+ uno::Reference<text::XText> xManager2(
+ getChildShape(getChildShape(getChildShape(xGroup, 2), 0), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xManager2.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("Manager2"), xManager2->getString());
+
+ uno::Reference<drawing::XShape> xManager2Shape(xManager2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xManager2Shape.is());
+
+ awt::Size aManager2Size = xManager2Shape->getSize();
+ // Without the accompanying fix in place, this test would have failed:
+ // xManager2's height was 3 times larger than xManager's height.
+ CPPUNIT_ASSERT_EQUAL(aManagerSize.Height, aManager2Size.Height);
+
+ // Make sure the employee nodes use the free space on the right, since
+ // manager2 has no assistants / employees.
+ //CPPUNIT_ASSERT_GREATER(aManagerSize.Width, aEmployeeSize.Width + aEmployee2Size.Width);
+ // currently disabled as causes problems in complex charts
+
+ // Without the accompanying fix in place, this test would have failed: an
+ // employee was exactly the third of the total height, without any spacing.
+ CPPUNIT_ASSERT_LESS(xGroup->getSize().Height / 3, aEmployeeSize.Height);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testCycleMatrix()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ // Without the accompanying fix in place, this test would have failed: the height was 12162,
+ // which is not the mm100 equivalent of the 4064000 EMU in the input file.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(11288), xGroup->getSize().Height);
+
+ uno::Reference<text::XText> xA1(getChildShape(getChildShape(xGroup, 2), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xA1.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("A1"), xA1->getString());
+
+ // Test fill color of B1, should be orange.
+ uno::Reference<text::XText> xB1(getChildShape(getChildShape(xGroup, 2), 1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xB1.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("B1"), xB1->getString());
+
+ uno::Reference<beans::XPropertySet> xB1Props(xB1, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xB1Props.is());
+ sal_Int32 nFillColor = 0;
+ xB1Props->getPropertyValue("FillColor") >>= nFillColor;
+ // Without the accompanying fix in place, this test would have failed: the background color was
+ // 0x4f81bd, i.e. blue, not orange.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xf79646), nFillColor);
+
+ // Without the accompanying fix in place, this test would have failed: the
+ // content of the "A2" shape was lost.
+ uno::Reference<text::XText> xA2(getChildShape(getChildShape(getChildShape(xGroup, 1), 0), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xA2.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("A2"), xA2->getString());
+
+ // Test that the layout of shapes is like this:
+ // A2 B2
+ // D2 C2
+
+ uno::Reference<drawing::XShape> xA2Shape(xA2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xA2Shape.is());
+
+ uno::Reference<text::XText> xB2(getChildShape(getChildShape(getChildShape(xGroup, 1), 1), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xB2.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("B2"), xB2->getString());
+ uno::Reference<drawing::XShape> xB2Shape(xB2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xB2Shape.is());
+
+ // Test line color of B2, should be orange.
+ uno::Reference<beans::XPropertySet> xB2Props(xB2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xB2Props.is());
+ sal_Int32 nLineColor = 0;
+ xB2Props->getPropertyValue("LineColor") >>= nLineColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xf79646), nLineColor);
+
+ uno::Reference<text::XText> xC2(getChildShape(getChildShape(getChildShape(xGroup, 1), 2), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xC2.is());
+ // Without the accompanying fix in place, this test would have failed, i.e. the order of the
+ // lines in the shape were wrong: C2-1\nC2-4\nC2-3\nC2-2.
+ CPPUNIT_ASSERT_EQUAL(OUString("C2-1\nC2-2\nC2-3\nC2-4"), xC2->getString());
+ uno::Reference<drawing::XShape> xC2Shape(xC2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xC2Shape.is());
+
+ uno::Reference<text::XText> xD2(getChildShape(getChildShape(getChildShape(xGroup, 1), 3), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xD2.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("D2"), xD2->getString());
+ uno::Reference<drawing::XShape> xD2Shape(xD2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xD2Shape.is());
+
+ // Without the accompanying fix in place, this test would have failed, i.e.
+ // the A2 and B2 shapes had the same horizontal position, while B2 should
+ // be on the right of A2.
+ CPPUNIT_ASSERT_GREATER(xA2Shape->getPosition().X, xB2Shape->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(xA2Shape->getPosition().Y, xB2Shape->getPosition().Y);
+ CPPUNIT_ASSERT_GREATER(xA2Shape->getPosition().X, xC2Shape->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xA2Shape->getPosition().Y, xC2Shape->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xA2Shape->getPosition().X, xD2Shape->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xA2Shape->getPosition().Y, xD2Shape->getPosition().Y);
+
+ // Without the accompanying fix in place, this test would have failed: width was expected to be
+ // 4887, was actually 7331.
+ uno::Reference<drawing::XShape> xA1Shape(xA1, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xA1Shape.is());
+ CPPUNIT_ASSERT_EQUAL(xA1Shape->getSize().Height, xA1Shape->getSize().Width);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testPictureStrip()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-picture-strip.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<beans::XPropertySet> xFirstImage(getChildShape(getChildShape(xGroup, 1), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstImage.is());
+ drawing::FillStyle eFillStyle = drawing::FillStyle_NONE;
+ xFirstImage->getPropertyValue("FillStyle") >>= eFillStyle;
+ // Without the accompanying fix in place, this test would have failed: fill style was solid, not
+ // bitmap.
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_BITMAP, eFillStyle);
+
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xFirstImage->getPropertyValue("FillBitmap") >>= xGraphic;
+ Graphic aFirstGraphic(xGraphic);
+
+ uno::Reference<beans::XPropertySet> xSecondImage(getChildShape(getChildShape(xGroup, 2), 1),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xSecondImage.is());
+ eFillStyle = drawing::FillStyle_NONE;
+ xSecondImage->getPropertyValue("FillStyle") >>= eFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_BITMAP, eFillStyle);
+
+ xSecondImage->getPropertyValue("FillBitmap") >>= xGraphic;
+ Graphic aSecondGraphic(xGraphic);
+ // Without the accompanying fix in place, this test would have failed: both xFirstImage and
+ // xSecondImage had the bitmap fill from the second shape.
+ CPPUNIT_ASSERT(aFirstGraphic.GetChecksum() != aSecondGraphic.GetChecksum());
+
+ // Test that the 3 images are in a single column, in 3 rows.
+ uno::Reference<drawing::XShape> xFirstImageShape(xFirstImage, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstImage.is());
+ uno::Reference<drawing::XShape> xSecondImageShape(xSecondImage, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xSecondImage.is());
+ uno::Reference<drawing::XShape> xThirdImageShape = getChildShape(getChildShape(xGroup, 3), 1);
+ CPPUNIT_ASSERT(xThirdImageShape.is());
+ // Without the accompanying fix in place, this test would have failed: the first and the second
+ // image were in the same row.
+ CPPUNIT_ASSERT_EQUAL(xFirstImageShape->getPosition().X, xSecondImageShape->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(xSecondImageShape->getPosition().X, xThirdImageShape->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xFirstImageShape->getPosition().Y, xSecondImageShape->getPosition().Y);
+ CPPUNIT_ASSERT_GREATER(xSecondImageShape->getPosition().Y, xThirdImageShape->getPosition().Y);
+
+ // Make sure that the title shape doesn't overlap with the diagram.
+ // Note that real "no overlap" is asserted here, though in fact what we want is a less strict
+ // condition: that no text part of the title shape and the diagram overlaps.
+ uno::Reference<drawing::XShape> xTitle(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xTitle.is());
+ // Without the accompanying fix in place, this test would have failed with 'Expected greater
+ // than: 2873; Actual : 2320', i.e. the title shape and the diagram overlapped.
+ uno::Reference<drawing::XShape> xFirstPair = getChildShape(xGroup, 1);
+ CPPUNIT_ASSERT_GREATER(xTitle->getPosition().Y + xTitle->getSize().Height,
+ xFirstPair->getPosition().Y);
+
+ // Make sure that left margin is 60% of width (if you count width in points and margin in mms).
+ uno::Reference<beans::XPropertySet> xFirstText(getChildShape(getChildShape(xGroup, 1), 0),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstText.is());
+ sal_Int32 nTextLeftDistance = 0;
+ xFirstText->getPropertyValue("TextLeftDistance") >>= nTextLeftDistance;
+ uno::Reference<drawing::XShape> xFirstTextShape(xFirstText, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFirstTextShape.is());
+ sal_Int32 nWidth = xFirstTextShape->getSize().Width;
+ double fFactor = oox::drawingml::convertPointToMms(0.6);
+ // Without the accompanying fix in place, this test would have failed with 'Expected: 3440,
+ // Actual : 263', i.e. the left margin was too small.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(nWidth * fFactor), nTextLeftDistance);
+
+ // Make sure that aspect ratio is not ignored, i.e. width is not larger than height 3 times.
+ awt::Size aFirstPairSize = xFirstPair->getSize();
+ // Without the accompanying fix in place, this test would have failed: bad width was 16932, good
+ // width is 12540, but let's accept 12541 as well.
+ CPPUNIT_ASSERT_LESSEQUAL(aFirstPairSize.Height * 3 + 1, aFirstPairSize.Width);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testInteropGrabBag()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-interopgrabbag.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xGroup, uno::UNO_QUERY_THROW);
+ uno::Sequence<beans::PropertyValue> aGrabBagSeq;
+ xPropertySet->getPropertyValue("InteropGrabBag") >>= aGrabBagSeq;
+ comphelper::SequenceAsHashMap aGrabBag(aGrabBagSeq);
+ CPPUNIT_ASSERT(aGrabBag.find("OOXData") != aGrabBag.end());
+ CPPUNIT_ASSERT(aGrabBag.find("OOXLayout") != aGrabBag.end());
+ CPPUNIT_ASSERT(aGrabBag.find("OOXStyle") != aGrabBag.end());
+ CPPUNIT_ASSERT(aGrabBag.find("OOXColor") != aGrabBag.end());
+ CPPUNIT_ASSERT(aGrabBag.find("OOXDrawing") != aGrabBag.end());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testBackground()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-background.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ // background should fill whole diagram
+ uno::Reference<drawing::XShape> xShapeGroup(xGroup, uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(xGroup->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(xShape->getPosition().X, xShapeGroup->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(xShape->getPosition().Y, xShapeGroup->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xShape->getSize().Width, xShapeGroup->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(xShape->getSize().Height, xShapeGroup->getSize().Height);
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY_THROW);
+ drawing::FillStyle eFillStyle = drawing::FillStyle_NONE;
+ xPropertySet->getPropertyValue("FillStyle") >>= eFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, eFillStyle);
+
+ sal_Int32 nFillColor = 0;
+ xPropertySet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x339933), nFillColor);
+
+ bool bMoveProtect = false;
+ xPropertySet->getPropertyValue("MoveProtect") >>= bMoveProtect;
+ CPPUNIT_ASSERT_EQUAL(true, bMoveProtect);
+
+ bool bSizeProtect = false;
+ xPropertySet->getPropertyValue("SizeProtect") >>= bSizeProtect;
+ CPPUNIT_ASSERT_EQUAL(true, bSizeProtect);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testBackgroundDrawingmlFallback()
+{
+ // same as testBackground, but test file contains drawingML fallback
+
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ // background should fill whole diagram
+ uno::Reference<drawing::XShape> xShapeGroup(xGroup, uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(xGroup->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(xShape->getPosition().X, xShapeGroup->getPosition().X);
+ CPPUNIT_ASSERT_EQUAL(xShape->getPosition().Y, xShapeGroup->getPosition().Y);
+ CPPUNIT_ASSERT_EQUAL(xShape->getSize().Width, xShapeGroup->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(xShape->getSize().Height, xShapeGroup->getSize().Height);
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY_THROW);
+ drawing::FillStyle eFillStyle = drawing::FillStyle_NONE;
+ xPropertySet->getPropertyValue("FillStyle") >>= eFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, eFillStyle);
+
+ sal_Int32 nFillColor = 0;
+ xPropertySet->getPropertyValue("FillColor") >>= nFillColor;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x339933), nFillColor);
+
+ bool bMoveProtect = false;
+ xPropertySet->getPropertyValue("MoveProtect") >>= bMoveProtect;
+ CPPUNIT_ASSERT_EQUAL(true, bMoveProtect);
+
+ bool bSizeProtect = false;
+ xPropertySet->getPropertyValue("SizeProtect") >>= bSizeProtect;
+ CPPUNIT_ASSERT_EQUAL(true, bSizeProtect);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testCenterCycle()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-center-cycle.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<drawing::XShapes> xGroupNested(xGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroupNested.is());
+
+ uno::Reference<drawing::XShape> xShapeCenter(xGroupNested->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeA(xGroupNested->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeB(xGroupNested->getByIndex(2), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeC(xGroupNested->getByIndex(3), uno::UNO_QUERY);
+
+ uno::Reference<text::XText> xTextCenter(xShapeCenter, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xTextCenter.is());
+ CPPUNIT_ASSERT_EQUAL(OUString("center"), xTextCenter->getString());
+
+ CPPUNIT_ASSERT_LESS(xShapeCenter->getPosition().Y, xShapeA->getPosition().Y);
+ CPPUNIT_ASSERT_GREATER(xShapeCenter->getPosition().X, xShapeB->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xShapeCenter->getPosition().Y, xShapeB->getPosition().Y);
+ CPPUNIT_ASSERT_LESS(xShapeCenter->getPosition().X, xShapeC->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xShapeCenter->getPosition().Y, xShapeC->getPosition().Y);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testFontSize()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-font-size.pptx"), PPTX);
+
+ uno::Reference<drawing::XShapes> xGroup1(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xShape1(xGroup1->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xParagraph1(getParagraphFromShape(0, xShape1));
+ uno::Reference<text::XTextRange> xRun1(getRunFromParagraph(0, xParagraph1));
+ uno::Reference<beans::XPropertySet> xPropSet1(xRun1, uno::UNO_QUERY);
+ double fFontSize1 = xPropSet1->getPropertyValue("CharHeight").get<double>();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(65.0, fFontSize1, 0.01);
+
+ uno::Reference<drawing::XShapes> xGroup2(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xShape2(xGroup2->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xParagraph2(getParagraphFromShape(0, xShape2));
+ uno::Reference<text::XTextRange> xRun2(getRunFromParagraph(0, xParagraph2));
+ uno::Reference<beans::XPropertySet> xPropSet2(xRun2, uno::UNO_QUERY);
+ double fFontSize2 = xPropSet2->getPropertyValue("CharHeight").get<double>();
+ CPPUNIT_ASSERT_EQUAL(32.0, fFontSize2);
+
+ uno::Reference<drawing::XShapes> xGroup3(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xShape3(xGroup3->getByIndex(1), uno::UNO_QUERY);
+ drawing::TextFitToSizeType eTextFitToSize = drawing::TextFitToSizeType_NONE;
+ xShape3->getPropertyValue("TextFitToSize") >>= eTextFitToSize;
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, eTextFitToSize);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testVerticalBlockList()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-vertical-block-list.pptx"), PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xGroup1->getCount());
+ uno::Reference<drawing::XShape> xShapeA(xGroup1->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeBC(xGroup1->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextA(xShapeA, uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextBC(xShapeBC, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("a"), xTextA->getString());
+ CPPUNIT_ASSERT_EQUAL(OUString("b\nc"), xTextBC->getString());
+
+ uno::Reference<beans::XPropertySet> xPropSetBC(xShapeBC, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(27000), xPropSetBC->getPropertyValue("RotateAngle").get<sal_Int32>());
+
+ // BC shape is rotated 90*, so width and height is swapped
+ CPPUNIT_ASSERT_GREATER(xShapeA->getSize().Width, xShapeBC->getSize().Height);
+ CPPUNIT_ASSERT_LESS(xShapeA->getSize().Height, xShapeBC->getSize().Width);
+ CPPUNIT_ASSERT_GREATER(xShapeA->getPosition().X, xShapeBC->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xShapeA->getPosition().Y, xShapeBC->getPosition().Y);
+
+ uno::Reference<drawing::XShapes> xGroup3(xGroup->getByIndex(3), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xGroup3->getCount());
+ uno::Reference<drawing::XShape> xShapeEmpty(xGroup3->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextEmpty(xShapeEmpty, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("empty"), xTextEmpty->getString());
+
+ CPPUNIT_ASSERT_EQUAL(xShapeA->getSize().Width, xShapeEmpty->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL(xShapeA->getSize().Height, xShapeEmpty->getSize().Height);
+ CPPUNIT_ASSERT_EQUAL(xShapeA->getPosition().X, xShapeEmpty->getPosition().X);
+ CPPUNIT_ASSERT_GREATER(xShapeA->getPosition().Y + 2*xShapeA->getSize().Height, xShapeEmpty->getPosition().Y);
+
+ uno::Reference<drawing::XShape> xGroupShape(xGroup, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(xGroupShape->getPosition().Y + xGroupShape->getSize().Height,
+ xShapeEmpty->getPosition().Y + xShapeEmpty->getSize().Height);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testMissingBulletAndIndent()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx"),
+ PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(2), uno::UNO_QUERY);
+ uno::Reference<drawing::XShapes> xGroup2(xGroup1->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText(xGroup2->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xText.is());
+
+ uno::Reference<container::XEnumerationAccess> xParasAccess(xText, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParas = xParasAccess->createEnumeration();
+ xParas->nextElement();// skip parent
+
+ uno::Reference<beans::XPropertySet> xPara1(xParas->nextElement(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPara1.is());
+
+ sal_Int16 nNumberingLevel = -1;
+ xPara1->getPropertyValue("NumberingLevel")>>= nNumberingLevel;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nNumberingLevel);
+
+ uno::Reference< container::XIndexAccess > xNumRule;
+ xPara1->getPropertyValue("NumberingRules") >>= xNumRule;
+ uno::Sequence<beans::PropertyValue> aBulletProps;
+ xNumRule->getByIndex(1) >>= aBulletProps;
+
+ for (beans::PropertyValue const & rProp : std::as_const(aBulletProps))
+ {
+ if(rProp.Name == "LeftMargin")
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(309), rProp.Value.get<sal_Int32>());
+ }
+}
+
+void SdImportTestSmartArt::testBulletList()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-bullet-list.pptx"),
+ PPTX);
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xGroup.is());
+
+ uno::Reference<text::XText> xText(xGroup->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xParasAccess(xText, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParas = xParasAccess->createEnumeration();
+ xParas->nextElement(); // skip parent
+
+ // child levels should have bullets
+ uno::Reference<beans::XPropertySet> xPara1(xParas->nextElement(), uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xRules1(xPara1->getPropertyValue("NumberingRules"), uno::UNO_QUERY);
+ comphelper::SequenceAsHashMap aRule1(xRules1->getByIndex(1));
+ CPPUNIT_ASSERT_EQUAL(OUString::fromUtf8(u8"•"), aRule1["BulletChar"].get<OUString>());
+
+ uno::Reference<beans::XPropertySet> xPara2(xParas->nextElement(), uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xRules2(xPara2->getPropertyValue("NumberingRules"), uno::UNO_QUERY);
+ comphelper::SequenceAsHashMap aRule2(xRules2->getByIndex(2));
+ CPPUNIT_ASSERT_EQUAL(OUString::fromUtf8(u8"•"), aRule2["BulletChar"].get<OUString>());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testRecursion()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-recursion.pptx"), PPTX);
+
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(1), uno::UNO_QUERY);
+
+ uno::Reference<drawing::XShapes> xGroupA(xGroup1->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextA(xGroupA->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("A"), xTextA->getString());
+
+ uno::Reference<drawing::XShapes> xGroupB(xGroup1->getByIndex(1), uno::UNO_QUERY);
+ // 5 connectors, B1 with children, B2 with children
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(7), xGroupB->getCount());
+
+ uno::Reference<drawing::XShapes> xGroupB1(xGroupB->getByIndex(1), uno::UNO_QUERY);
+
+ uno::Reference<drawing::XShapes> xGroupB1a(xGroupB1->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextB1(xGroupB1a->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("B1"), xTextB1->getString());
+
+ uno::Reference<drawing::XShape> xGroupC12(xGroupB1->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextC1(getChildShape(getChildShape(getChildShape(xGroupC12, 0), 0), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("C1"), xTextC1->getString());
+ uno::Reference<text::XText> xTextC2(getChildShape(getChildShape(getChildShape(xGroupC12, 1), 0), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("C2"), xTextC2->getString());
+
+ uno::Reference<drawing::XShapes> xGroupB2(xGroupB->getByIndex(5), uno::UNO_QUERY);
+
+ uno::Reference<drawing::XShapes> xGroupB2a(xGroupB2->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextB2(xGroupB2a->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("B2"), xTextB2->getString());
+
+ uno::Reference<drawing::XShape> xGroupC3(xGroupB2->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<text::XText> xTextC3(getChildShape(getChildShape(getChildShape(xGroupC3, 0), 0), 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("C3"), xTextC3->getString());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testDataFollow()
+{
+ // checks if data nodes are followed correctly
+ // different variables are set for two presentation points with the same name
+ // they should be layouted differently - one horizontally and one vertically
+
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-data-follow.pptx"), PPTX);
+
+ uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+
+ uno::Reference<drawing::XShapes> xGroupLeft(xGroup->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xGroupB(xGroupLeft->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeB1 = getChildShape(getChildShape(getChildShape(xGroupB, 1), 0), 0);
+ uno::Reference<text::XText> xTextB1(xShapeB1, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("B1"), xTextB1->getString());
+ uno::Reference<drawing::XShape> xShapeB2 = getChildShape(getChildShape(getChildShape(xGroupB, 3), 0), 0);
+ uno::Reference<text::XText> xTextB2(xShapeB2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("B2"), xTextB2->getString());
+
+ CPPUNIT_ASSERT_EQUAL(xShapeB1->getPosition().Y, xShapeB2->getPosition().Y);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeB1->getPosition().X + xShapeB1->getSize().Width, xShapeB2->getPosition().X);
+
+ uno::Reference<drawing::XShapes> xGroupRight(xGroup->getByIndex(2), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xGroupC(xGroupRight->getByIndex(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShapeC1 = getChildShape(getChildShape(getChildShape(xGroupC, 3), 0), 0);
+ uno::Reference<text::XText> xTextC1(xShapeC1, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("C1"), xTextC1->getString());
+ uno::Reference<drawing::XShape> xShapeC2 = getChildShape(getChildShape(getChildShape(xGroupC, 5), 0), 0);
+ uno::Reference<text::XText> xTextC2(xShapeC2, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("C2"), xTextC2->getString());
+
+ CPPUNIT_ASSERT_EQUAL(xShapeC1->getPosition().X, xShapeC2->getPosition().X);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeC1->getPosition().Y + xShapeC1->getSize().Height, xShapeC2->getPosition().Y);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testOrgChart2()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-org-chart2.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+
+ uno::Reference<drawing::XShape> xShapeC1 = findChildShapeByText(xGroup, "C1");
+ uno::Reference<drawing::XShape> xShapeC2 = findChildShapeByText(xGroup, "C2");
+ uno::Reference<drawing::XShape> xShapeC3 = findChildShapeByText(xGroup, "C3");
+ uno::Reference<drawing::XShape> xShapeC4 = findChildShapeByText(xGroup, "C4");
+ uno::Reference<drawing::XShape> xShapeD1 = findChildShapeByText(xGroup, "D1");
+ uno::Reference<drawing::XShape> xShapeD2 = findChildShapeByText(xGroup, "D2");
+
+ CPPUNIT_ASSERT(xShapeC1.is());
+ CPPUNIT_ASSERT(xShapeC2.is());
+ CPPUNIT_ASSERT(xShapeC3.is());
+ CPPUNIT_ASSERT(xShapeC4.is());
+ CPPUNIT_ASSERT(xShapeD1.is());
+ CPPUNIT_ASSERT(xShapeD2.is());
+
+ CPPUNIT_ASSERT_EQUAL(xShapeC1->getPosition().Y, xShapeC2->getPosition().Y);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeC1->getPosition().X + xShapeC1->getSize().Width, xShapeC2->getPosition().X);
+
+ CPPUNIT_ASSERT_EQUAL(xShapeC3->getPosition().X, xShapeC4->getPosition().X);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeC3->getPosition().Y + xShapeC3->getSize().Height, xShapeC4->getPosition().Y);
+
+ CPPUNIT_ASSERT_EQUAL(xShapeD1->getPosition().X, xShapeD2->getPosition().X);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeD1->getPosition().Y + xShapeD1->getSize().Height, xShapeD2->getPosition().Y);
+
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeC2->getPosition().X, xShapeD1->getPosition().X);
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeC2->getPosition().Y + xShapeC2->getSize().Height, xShapeD1->getPosition().Y);
+
+ CPPUNIT_ASSERT_GREATEREQUAL(xShapeD1->getPosition().X + xShapeD1->getSize().Width, xShapeC4->getPosition().X);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testTdf131553()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf131553.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ const SdrObjGroup *pObjGroup = dynamic_cast<SdrObjGroup *>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObjGroup);
+ const SdrObject *pObj = pObjGroup->GetSubList()->GetObj(1);
+ CPPUNIT_ASSERT_MESSAGE("no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_OLE2), pObj->GetObjIdentifier());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testFillColorList()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/fill-color-list.pptx"), PPTX);
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape = getChildShape(getChildShape(xGroup, 1), 0);
+ uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY_THROW);
+ sal_Int32 nFillColor = 0;
+ xPropertySet->getPropertyValue("FillColor") >>= nFillColor;
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 12603469 (0xc0504d)
+ // - Actual : 16225862 (0xf79646)
+ // i.e. the background of the "A" shape was orange-ish, rather than red-ish.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xC0504D), nFillColor);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 2239
+ // - Actual : 5199
+ // i.e. the "A" shape's height/width aspect ratio was not 0.4 but rather close to 1.0, even if
+ // ppt/diagrams/layout1.xml's <dgm:constr type="h" refType="w" op="lte" fact="0.4"/> requested
+ // 0.4.
+ awt::Size aActualSize = xShape->getSize();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2239), aActualSize.Height);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected greater than: 1738 (2766)
+ // - Actual : 1738
+ // i.e. the columns were not centered vertically.
+ sal_Int32 nGroupTop = xGroup->getPosition().Y;
+ sal_Int32 nShapeTop = xShape->getPosition().Y;
+ CPPUNIT_ASSERT_GREATER(nGroupTop, nShapeTop);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testLinearRule()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-linear-rule.pptx"), PPTX);
+
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ // Last child, then first child inside that.
+ // It is first as backgroundArrow is last, but chOrder="t" is set to reverse the order.
+ uno::Reference<drawing::XShape> xShape = getChildShape(getChildShape(xGroup, 1), 0);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected greater than: 17500 (19867)
+ // - Actual : 4966
+ // i.e. the width of the background arrow was too small.
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(17500), xShape->getSize().Width);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 3160
+ // - Actual : 8770
+ // i.e. there was unexpected spacing on the left of the arrow.
+ // Then the imporoved version of the test document failed with:
+ // - Expected: 3160
+ // - Actual : 19828
+ // i.e. the spacing on the left of the arrow was so large that the shape was mostly outside the
+ // slide.
+ sal_Int32 nGroupLeft = xGroup->getPosition().X;
+ sal_Int32 nArrowLeft = xShape->getPosition().X;
+ CPPUNIT_ASSERT_EQUAL(nGroupLeft, nArrowLeft);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected less or equal than: 10092
+ // - Actual : 20183
+ // i.e. the arrow height was larger than the canvas given to the smartart on slide 1.
+ CPPUNIT_ASSERT_LESSEQUAL(static_cast<sal_Int32>(10092), xShape->getSize().Height);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testLinearRuleVert()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptx"), PPTX);
+
+ uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ // Get the P1 shape.
+ uno::Reference<drawing::XShape> xShape = getChildShape(getChildShape(xGroup, 1), 1);
+ uno::Reference<text::XTextRange> xShapeText(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("P1"), xShapeText->getString());
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 2020
+ // - Actual : 10308
+ // i.e. the first item on the vertical linear layout used ~all space, the other items were not
+ // visible.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2020), xShape->getSize().Height);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testAutofitSync()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx"), PPTX);
+
+ uno::Reference<drawing::XShape> xDiagram(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xMiddle = getChildShape(xDiagram, 2);
+ uno::Reference<beans::XPropertySet> xFirstInner(getChildShape(getChildShape(xMiddle, 0), 0),
+ uno::UNO_QUERY);
+ sal_Int16 nFirstScale = 0;
+ CPPUNIT_ASSERT(xFirstInner->getPropertyValue("TextFitToSizeScale") >>= nFirstScale);
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int16>(0), nFirstScale);
+ uno::Reference<beans::XPropertySet> xSecondInner(getChildShape(getChildShape(xMiddle, 2), 0),
+ uno::UNO_QUERY);
+ sal_Int16 nSecondScale = 0;
+ CPPUNIT_ASSERT(xSecondInner->getPropertyValue("TextFitToSizeScale") >>= nSecondScale);
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int16>(0), nSecondScale);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 56
+ // - Actual : 100
+ // i.e. the left shape had no scale-down and the right shape was scaled down, even if it was
+ // requested that their scaling matches.
+ CPPUNIT_ASSERT_EQUAL(nSecondScale, nFirstScale);
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 0 (drawing::TextFitToSizeType_NONE)
+ // - Actual : 3 (TextFitToSizeType_AUTOFIT)
+ // i.e. the 3rd shape had font size as direct formatting, but its automatic text scale was not
+ // disabled.
+ uno::Reference<beans::XPropertySet> xThirdInner(getChildShape(getChildShape(xMiddle, 4), 0),
+ uno::UNO_QUERY);
+ drawing::TextFitToSizeType eType{};
+ CPPUNIT_ASSERT(xThirdInner->getPropertyValue("TextFitToSize") >>= eType);
+ CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, eType);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTestSmartArt::testSnakeRows()
+{
+ // Load a smartart which contains a snake algorithm.
+ // The expected layout of the 6 children is a 3x2 grid.
+ sd::DrawDocShellRef xDocShRef = loadURL(
+ m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-snake-rows.pptx"), PPTX);
+
+ uno::Reference<drawing::XShapes> xDiagram(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
+ // Collect position of the background and the real child shapes. First row and background has
+ // the same top position, unless some unexpected spacing happens, since this is a
+ // "left-to-right, then top-to-bottom" snake direction.
+ std::set<sal_Int32> aYPositions;
+ for (sal_Int32 nChild = 0; nChild < xDiagram->getCount(); ++nChild)
+ {
+ uno::Reference<drawing::XShape> xChild(xDiagram->getByIndex(nChild), uno::UNO_QUERY);
+ aYPositions.insert(xChild->getPosition().Y);
+ }
+
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 2
+ // - Actual : 3
+ // i.e. an unwanted row appeared.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aYPositions.size());
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTestSmartArt);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
new file mode 100644
index 000000000..5d6157aa4
--- /dev/null
+++ b/sd/qa/unit/import-tests.cxx
@@ -0,0 +1,3214 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <config_features.h>
+#include <config_poppler.h>
+#include <memory>
+#include <ostream>
+#include <sdpage.hxx>
+
+#include "sdmodeltestbase.hxx"
+
+#include <svl/stritem.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/ulspitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/escapementitem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/unoprnms.hxx>
+#include <sfx2/app.hxx>
+#include <sfx2/sfxsids.hrc>
+#include <svl/style.hxx>
+
+#include <svx/svdotext.hxx>
+#include <svx/svdoashp.hxx>
+#include <svx/svdogrp.hxx>
+#include <svx/svdoole2.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/xfillit0.hxx>
+#include <svx/xflclit.hxx>
+#include <svx/xlineit0.hxx>
+#include <svx/xlnclit.hxx>
+#include <svx/xlnwtit.hxx>
+#include <svx/sdasitm.hxx>
+#include <svx/sdmetitm.hxx>
+#include <svx/sdooitm.hxx>
+#include <animations/animationnodehelper.hxx>
+#include <sax/tools/converter.hxx>
+
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/XBitmap.hpp>
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+#include <com/sun/star/document/XEventsSupplier.hpp>
+#include <com/sun/star/presentation/ClickAction.hpp>
+#include <com/sun/star/presentation/XPresentationPage.hpp>
+#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#include <com/sun/star/drawing/BitmapMode.hpp>
+#include <com/sun/star/drawing/ColorMode.hpp>
+#include <com/sun/star/drawing/GraphicExportFilter.hpp>
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
+#include <com/sun/star/drawing/XGluePointsSupplier.hpp>
+#include <com/sun/star/drawing/GluePoint2.hpp>
+#include <com/sun/star/container/XIdentifierAccess.hpp>
+#include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
+#include <com/sun/star/animations/XAnimationNode.hpp>
+#include <com/sun/star/animations/XAnimate.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/chart/DataLabelPlacement.hpp>
+#include <com/sun/star/chart/XChartDocument.hpp>
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/chart2/XDataSeriesContainer.hpp>
+#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
+#include <com/sun/star/chart2/XChartTypeContainer.hpp>
+#include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
+#include <com/sun/star/chart2/data/XDataSequence.hpp>
+#include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <com/sun/star/table/BorderLineStyle.hpp>
+#include <com/sun/star/table/BorderLine2.hpp>
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <com/sun/star/table/XTableRows.hpp>
+#include <com/sun/star/style/NumberingType.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/text/GraphicCrop.hpp>
+#include <com/sun/star/text/XTextCursor.hpp>
+#include <com/sun/star/xml/dom/XDocument.hpp>
+
+#include <stlpool.hxx>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/sequenceashashmap.hxx>
+#include <comphelper/graphicmimetype.hxx>
+#include <comphelper/lok.hxx>
+#include <vcl/pngread.hxx>
+#include <vcl/bitmapaccess.hxx>
+#include <vcl/dibtools.hxx>
+#include <svx/svdograf.hxx>
+
+using namespace ::com::sun::star;
+
+namespace com::sun::star::uno {
+
+template<class T>
+static std::ostream& operator<<(std::ostream& rStrm, const uno::Reference<T>& xRef)
+{
+ rStrm << xRef.get();
+ return rStrm;
+}
+
+}
+
+
+/// Impress import filters tests.
+class SdImportTest : public SdModelTestBase
+{
+public:
+ virtual void setUp() override;
+
+ void testDocumentLayout();
+ void testSmoketest();
+ void testN759180();
+ void testN778859();
+ void testMasterPageStyleParent();
+ void testGradientAngle();
+ void testTdf97808();
+ void testFillStyleNone();
+ void testFdo64512();
+ void testFdo71075();
+ void testN828390_2();
+ void testN828390_3();
+ void testFdo68594();
+ void testPlaceholderPriority();
+ void testFdo72998();
+ void testFdo77027();
+ void testStrictOOXML();
+ void testN862510_1();
+ void testN862510_2();
+ void testN862510_4();
+ void testBnc870237();
+ void testBnc887225();
+ void testPredefinedTableStyle();
+ void testBnc591147();
+ void testCreationDate();
+ void testMultiColTexts();
+ void testBnc584721_1();
+ void testBnc584721_2();
+ void testBnc584721_4();
+ void testBnc904423();
+ void testShapeLineStyle();
+ void testTableBorderLineStyle();
+ void testBnc862510_6();
+ void testBnc862510_7();
+#if ENABLE_PDFIMPORT
+#if HAVE_FEATURE_PDFIUM
+ void testPDFImportShared();
+#endif
+#if defined(IMPORT_PDF_ELEMENTS)
+ void testPDFImport();
+ void testPDFImportSkipImages();
+#endif
+#endif
+ void testBulletSuffix();
+ void testBnc910045();
+ void testRowHeight();
+ void testTdf93830();
+ void testTdf127129();
+ void testTdf93097();
+ void testTdf62255();
+ void testTdf93124();
+ void testTdf99729();
+ void testTdf89927();
+ void testTdf93868();
+ void testTdf95932();
+ void testTdf99030();
+ void testTdf49561();
+ void testTdf103473();
+ void testAoo124143();
+ void testTdf103567();
+ void testTdf103792();
+ void testTdf103876();
+ void testTdf79007();
+ void testTdf129686();
+ void testTdf104015();
+ void testTdf104201();
+ void testTdf103477();
+ void testTdf104445();
+ void testTdf105150();
+ void testTdf105150PPT();
+ void testTdf123684();
+ void testTdf100926();
+ void testTdf89064();
+ void testTdf108925();
+ void testTdf109067();
+ void testTdf109187();
+ void testTdf108926();
+ void testTdf100065();
+ void testTdf90626();
+ void testTdf114488();
+ void testTdf134174();
+ void testTdf114913();
+ void testTdf114821();
+ void testTdf115394();
+ void testTdf115394PPT();
+ void testTdf51340();
+ void testTdf116899();
+ void testTdf77747();
+ void testTdf116266();
+ void testTdf128684();
+ void testTdf119187();
+ void testShapeGlowEffectPPTXImpoer();
+
+ bool checkPattern(sd::DrawDocShellRef const & rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected);
+ void testPatternImport();
+ void testPptCrop();
+ void testTdf120028();
+ void testTdf120028b();
+ void testDescriptionImport();
+ void testTdf83247();
+ void testTdf47365();
+ void testTdf122899();
+ void testOOXTheme();
+ void testCropToShape();
+ void testTdf127964();
+ void testTdf106638();
+ void testTdf113198();
+
+ CPPUNIT_TEST_SUITE(SdImportTest);
+
+ CPPUNIT_TEST(testDocumentLayout);
+ CPPUNIT_TEST(testSmoketest);
+ CPPUNIT_TEST(testN759180);
+ CPPUNIT_TEST(testN778859);
+ CPPUNIT_TEST(testMasterPageStyleParent);
+ CPPUNIT_TEST(testGradientAngle);
+ CPPUNIT_TEST(testTdf97808);
+ CPPUNIT_TEST(testFillStyleNone);
+ CPPUNIT_TEST(testFdo64512);
+ CPPUNIT_TEST(testFdo71075);
+ CPPUNIT_TEST(testN828390_2);
+ CPPUNIT_TEST(testN828390_3);
+ CPPUNIT_TEST(testFdo68594);
+ CPPUNIT_TEST(testPlaceholderPriority);
+ CPPUNIT_TEST(testFdo72998);
+ CPPUNIT_TEST(testFdo77027);
+ CPPUNIT_TEST(testStrictOOXML);
+ CPPUNIT_TEST(testN862510_1);
+ CPPUNIT_TEST(testN862510_2);
+ CPPUNIT_TEST(testN862510_4);
+ CPPUNIT_TEST(testBnc870237);
+ CPPUNIT_TEST(testBnc887225);
+ CPPUNIT_TEST(testPredefinedTableStyle);
+ CPPUNIT_TEST(testBnc591147);
+ CPPUNIT_TEST(testCreationDate);
+ CPPUNIT_TEST(testMultiColTexts);
+ CPPUNIT_TEST(testBnc584721_1);
+ CPPUNIT_TEST(testBnc584721_2);
+ CPPUNIT_TEST(testBnc584721_4);
+ CPPUNIT_TEST(testBnc904423);
+ CPPUNIT_TEST(testShapeLineStyle);
+ CPPUNIT_TEST(testTableBorderLineStyle);
+ CPPUNIT_TEST(testBnc862510_6);
+ CPPUNIT_TEST(testBnc862510_7);
+#if ENABLE_PDFIMPORT
+#if HAVE_FEATURE_PDFIUM
+ CPPUNIT_TEST(testPDFImportShared);
+#endif
+#if defined(IMPORT_PDF_ELEMENTS)
+ CPPUNIT_TEST(testPDFImport);
+ CPPUNIT_TEST(testPDFImportSkipImages);
+#endif
+#endif
+ CPPUNIT_TEST(testBulletSuffix);
+ CPPUNIT_TEST(testBnc910045);
+ CPPUNIT_TEST(testRowHeight);
+ CPPUNIT_TEST(testTdf93830);
+ CPPUNIT_TEST(testTdf127129);
+ CPPUNIT_TEST(testTdf93097);
+ CPPUNIT_TEST(testTdf62255);
+ CPPUNIT_TEST(testTdf93124);
+ CPPUNIT_TEST(testTdf99729);
+ CPPUNIT_TEST(testTdf89927);
+ CPPUNIT_TEST(testTdf93868);
+ CPPUNIT_TEST(testTdf95932);
+ CPPUNIT_TEST(testTdf99030);
+ CPPUNIT_TEST(testTdf49561);
+ CPPUNIT_TEST(testTdf103473);
+ CPPUNIT_TEST(testAoo124143);
+ CPPUNIT_TEST(testTdf103567);
+ CPPUNIT_TEST(testTdf103792);
+ CPPUNIT_TEST(testTdf103876);
+ CPPUNIT_TEST(testTdf79007);
+ CPPUNIT_TEST(testTdf129686);
+ CPPUNIT_TEST(testTdf104015);
+ CPPUNIT_TEST(testTdf104201);
+ CPPUNIT_TEST(testTdf103477);
+ CPPUNIT_TEST(testTdf104445);
+ CPPUNIT_TEST(testTdf105150);
+ CPPUNIT_TEST(testTdf105150PPT);
+ CPPUNIT_TEST(testTdf123684);
+ CPPUNIT_TEST(testTdf100926);
+ CPPUNIT_TEST(testPatternImport);
+ CPPUNIT_TEST(testTdf89064);
+ CPPUNIT_TEST(testTdf108925);
+ CPPUNIT_TEST(testTdf109067);
+ CPPUNIT_TEST(testTdf109187);
+ CPPUNIT_TEST(testTdf108926);
+ CPPUNIT_TEST(testTdf100065);
+ CPPUNIT_TEST(testTdf90626);
+ CPPUNIT_TEST(testTdf114488);
+ CPPUNIT_TEST(testTdf134174);
+ CPPUNIT_TEST(testTdf114913);
+ CPPUNIT_TEST(testTdf114821);
+ CPPUNIT_TEST(testTdf115394);
+ CPPUNIT_TEST(testTdf115394PPT);
+ CPPUNIT_TEST(testTdf51340);
+ CPPUNIT_TEST(testTdf116899);
+ CPPUNIT_TEST(testTdf77747);
+ CPPUNIT_TEST(testTdf116266);
+ CPPUNIT_TEST(testPptCrop);
+ CPPUNIT_TEST(testTdf120028);
+ CPPUNIT_TEST(testTdf120028b);
+ CPPUNIT_TEST(testDescriptionImport);
+ CPPUNIT_TEST(testTdf83247);
+ CPPUNIT_TEST(testTdf47365);
+ CPPUNIT_TEST(testTdf122899);
+ CPPUNIT_TEST(testOOXTheme);
+ CPPUNIT_TEST(testCropToShape);
+ CPPUNIT_TEST(testTdf127964);
+ CPPUNIT_TEST(testTdf106638);
+ CPPUNIT_TEST(testTdf128684);
+ CPPUNIT_TEST(testTdf113198);
+ CPPUNIT_TEST(testTdf119187);
+ CPPUNIT_TEST(testShapeGlowEffectPPTXImpoer);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void SdImportTest::setUp()
+{
+ SdModelTestBase::setUp();
+ mxDesktop.set(frame::Desktop::create(getComponentContext()));
+}
+
+/** Test document against a reference XML dump of shapes.
+
+If you want to update one of these tests, or add a new one, set the nUpdateMe
+to the index of the test, and the dump XML's will be created (or rewritten)
+instead of checking. Use with care - when the test is failing, first find out
+why, instead of just updating .xml's blindly.
+
+Example: Let's say you are adding a test called fdoABCD.pptx. You'll place it
+to the data/ subdirectory, and will add an entry to aFilesToCompare below,
+the 3rd parameter is for export test - can be -1 (don't export), ODP, PPT or PPTX
+like:
+
+ { "fdoABCD.pptx", "xml/fdoABCD_", PPTX },
+
+and will count the index in the aFilesToCompare structure (1st is 0, 2nd is 1,
+etc.) Temporarily you'll set nUpdateMe to this index (instead of -1), and run
+
+make sd
+
+This will generate the sd/qa/unit/data/xml/fdoABCD_*.xml for you. Now you
+will change nUpdateMe back to -1, and commit your fdoABCD.pptx test, the
+xml/fdoABCD_*.xml dumps, and the aFilesToCompare addition in one commit.
+
+As the last step, you will revert your fix and do 'make sd' again, to check
+that without your fix, the unit test breaks. Then clean up, and push :-)
+
+NOTE: This approach is suitable only for tests of fixes that actually change
+the layout - best to check by reverting your fix locally after having added
+the test, and re-running; it should break.
+*/
+void SdImportTest::testDocumentLayout()
+{
+ static const struct { const char *pInput, *pDump; sal_Int32 nFormat; sal_Int32 nExportType; } aFilesToCompare[] =
+ {
+ { "odp/shapes-test.odp", "xml/shapes-test_page", ODP, -1 },
+ { "fdo47434.pptx", "xml/fdo47434_", PPTX, -1 },
+ { "n758621.ppt", "xml/n758621_", PPT, -1 },
+ { "fdo64586.ppt", "xml/fdo64586_", PPT, -1 },
+ { "n819614.pptx", "xml/n819614_", PPTX, -1 },
+ { "n820786.pptx", "xml/n820786_", PPTX, -1 },
+ { "n762695.pptx", "xml/n762695_", PPTX, -1 },
+ { "n593612.pptx", "xml/n593612_", PPTX, -1 },
+ { "fdo71434.pptx", "xml/fdo71434_", PPTX, -1 },
+ { "n902652.pptx", "xml/n902652_", PPTX, -1 },
+ { "tdf90403.pptx", "xml/tdf90403_", PPTX, -1 },
+ { "tdf90338.odp", "xml/tdf90338_", ODP, PPTX },
+ { "tdf92001.odp", "xml/tdf92001_", ODP, PPTX },
+// GCC -mfpmath=387 rounding issues in lclPushMarkerProperties
+// (oox/source/drawingml/lineproperties.cxx); see mail sub-thread starting at
+// <https://lists.freedesktop.org/archives/libreoffice/2016-September/
+// 075211.html> "Re: Test File: sc/qa/unit/data/functions/fods/chiinv.fods:
+// fails with Assertion" for how "-mfpmath=sse -msse2" would fix that:
+#if !(defined LINUX && defined X86)
+ { "tdf100491.pptx", "xml/tdf100491_", PPTX, -1 },
+#endif
+ { "tdf109317.pptx", "xml/tdf109317_", PPTX, ODP},
+ // { "pptx/n828390.pptx", "pptx/xml/n828390_", PPTX, PPTX }, // Example
+ };
+
+ for ( int i = 0; i < static_cast< int >( SAL_N_ELEMENTS( aFilesToCompare ) ); ++i )
+ {
+ int const nUpdateMe = -1; // index of test we want to update; supposedly only when the test is created
+
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( "/sd/qa/unit/data/" ) + OUString::createFromAscii( aFilesToCompare[i].pInput ), aFilesToCompare[i].nFormat );
+ if( aFilesToCompare[i].nExportType >= 0 )
+ xDocShRef = saveAndReload( xDocShRef.get(), aFilesToCompare[i].nExportType );
+ compareWithShapesDump( xDocShRef,
+ m_directories.getPathFromSrc( "/sd/qa/unit/data/" ) + OUString::createFromAscii( aFilesToCompare[i].pDump ),
+ i == nUpdateMe );
+ }
+}
+
+void SdImportTest::testSmoketest()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/smoketest.pptx"), PPTX);
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+
+ // cf. SdrModel svx/svdmodel.hxx ...
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "wrong page count", static_cast<sal_uInt16>(3), pDoc->GetPageCount());
+
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != nullptr );
+
+ CPPUNIT_ASSERT_MESSAGE( "changed", !pDoc->IsChanged() );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN759180()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/n759180.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ //sal_uIntPtr nObjs = pPage->GetObjCount();
+ //for (sal_uIntPtr i = 0; i < nObjs; i++)
+ {
+ // Get the object
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT(pTxtObj);
+ std::vector<EECharAttrib> rLst;
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxULSpaceItem *pULSpace = aEdit.GetParaAttribs(0).GetItem(EE_PARA_ULSPACE);
+ CPPUNIT_ASSERT(pULSpace);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Para bottom spacing is wrong!", static_cast<sal_uInt16>(0), pULSpace->GetLower());
+ aEdit.GetCharAttribs(1, rLst);
+ auto it = std::find_if(rLst.rbegin(), rLst.rend(),
+ [](const EECharAttrib& rCharAttr) { return dynamic_cast<const SvxFontHeightItem *>(rCharAttr.pAttr) != nullptr; });
+ if (it != rLst.rend())
+ {
+ const SvxFontHeightItem * pFontHeight = dynamic_cast<const SvxFontHeightItem *>((*it).pAttr);
+ // nStart == 9
+ // font height = 5 => 5*2540/72
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Font height is wrong", static_cast<sal_uInt32>(176), pFontHeight->GetHeight() );
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN862510_1()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n862510_1.pptx"), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ std::vector<EECharAttrib> rLst;
+ SdrObject *pObj = pPage->GetObj( 0 );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs( 0, rLst );
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxEscapementItem *pFontEscapement = dynamic_cast<const SvxEscapementItem *>( (*it).pAttr );
+ CPPUNIT_ASSERT_MESSAGE( "Baseline attribute not handled properly", !(pFontEscapement && pFontEscapement->GetProportionalHeight() != 100) );
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN862510_2()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n862510_2.pptx"), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ CPPUNIT_ASSERT_EQUAL(size_t(1), pPage->GetObjCount());
+ SdrObjGroup *pGrpObj = dynamic_cast<SdrObjGroup *>( pPage->GetObj( 0 ) );
+ CPPUNIT_ASSERT( pGrpObj );
+ SdrObjCustomShape *pObj = dynamic_cast<SdrObjCustomShape *>( pGrpObj->GetSubList()->GetObj( 1 ) );
+ CPPUNIT_ASSERT( pObj );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong Text Rotation!", 90.0, pObj->GetExtraTextRotation( true ) );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN862510_4()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n862510_4.pptx"), PPTX );
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ std::vector<EECharAttrib> rLst;
+ SdrObject *pObj = pPage->GetObj( 0 );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs( 0, rLst );
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it != rLst.rend(); ++it )
+ {
+ const SvxColorItem *pC = dynamic_cast<const SvxColorItem *>( (*it).pAttr );
+ CPPUNIT_ASSERT_MESSAGE( "gradfill for text color not handled!", !( pC && pC->GetValue() == Color(0) ) );
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN828390_2()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n828390_2.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ CPPUNIT_ASSERT_EQUAL(OUString("Linux "), aEdit.GetText(0));
+ CPPUNIT_ASSERT_EQUAL(OUString("Standard Platform"), aEdit.GetText(1));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN828390_3()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n828390_3.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ std::vector<EECharAttrib> rLst;
+ aEdit.GetCharAttribs(1, rLst);
+ bool bPassed = std::none_of(rLst.rbegin(), rLst.rend(),
+ [](const EECharAttrib& rCharAttr) {
+ const SvxEscapementItem *pFontEscapement = dynamic_cast<const SvxEscapementItem *>(rCharAttr.pAttr);
+ return pFontEscapement && (pFontEscapement->GetEsc() != 0);
+ });
+ CPPUNIT_ASSERT_MESSAGE("CharEscapment not imported properly", bPassed);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testMasterPageStyleParent()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/odp/masterpage_style_parent.odp"), ODP );
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+
+ SdStyleSheetPool *const pPool(pDoc->GetSdStyleSheetPool());
+
+ int parents(0);
+ SfxStyleSheetIterator iter(pPool, SfxStyleFamily::Page);
+ for (SfxStyleSheetBase * pStyle = iter.First(); pStyle; pStyle = iter.Next())
+ {
+ OUString const name(pStyle->GetName());
+ OUString const parent(pStyle->GetParent());
+ if (!parent.isEmpty())
+ {
+ ++parents;
+ // check that parent exists
+ SfxStyleSheetBase *const pParentStyle(
+ pPool->Find(parent, SfxStyleFamily::Page));
+ CPPUNIT_ASSERT(pParentStyle);
+ CPPUNIT_ASSERT_EQUAL(pParentStyle->GetName(), parent);
+ // check that parent has the same master page as pStyle
+ CPPUNIT_ASSERT(parent.indexOf(SD_LT_SEPARATOR) != -1);
+ CPPUNIT_ASSERT(name.indexOf(SD_LT_SEPARATOR) != -1);
+ CPPUNIT_ASSERT_EQUAL(
+ parent.copy(0, parent.indexOf(SD_LT_SEPARATOR)),
+ name.copy(0, name.indexOf(SD_LT_SEPARATOR)));
+ }
+ }
+ // check that there are actually parents...
+ CPPUNIT_ASSERT_EQUAL(16, parents);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testGradientAngle()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odg/gradient-angle.fodg"), FODG);
+
+ uno::Reference<lang::XMultiServiceFactory> const xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+
+ awt::Gradient gradient;
+ uno::Reference<container::XNameAccess> const xGradients(
+ xDoc->createInstance("com.sun.star.drawing.GradientTable"),
+ uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 38") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), gradient.Angle); // was: 3600
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 10") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(270), gradient.Angle); // 27deg
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 11") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1145), gradient.Angle); // 2rad
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 12") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(900), gradient.Angle); // 100grad
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 13") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(3599), gradient.Angle); // -1
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 14") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(3028), gradient.Angle); // -1rad
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 15") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(300), gradient.Angle); // 3900
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 16") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(105), gradient.Angle); // 10.5deg
+
+ CPPUNIT_ASSERT(xGradients->getByName("Gradient 17") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1800), gradient.Angle); // \pi rad
+
+ uno::Reference<container::XNameAccess> const xTranspGradients(
+ xDoc->createInstance("com.sun.star.drawing.TransparencyGradientTable"),
+ uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT(xTranspGradients->getByName("Transparency 2") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(10), gradient.Angle); // 1
+
+ CPPUNIT_ASSERT(xTranspGradients->getByName("Transparency 1") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(900), gradient.Angle); // 90deg
+
+ CPPUNIT_ASSERT(xTranspGradients->getByName("Transparency 3") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(572), gradient.Angle); // 1.0rad
+
+ CPPUNIT_ASSERT(xTranspGradients->getByName("Transparency 4") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1800), gradient.Angle); // 1000grad
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testN778859()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n778859.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ // Get the object
+ SdrObject *pObj = pPage->GetObj(1);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ CPPUNIT_ASSERT(!pTxtObj->IsAutoFit());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testFdo68594()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/fdo68594.ppt"), PPT);
+
+ const SdrPage *pPage = &(GetPage( 1, xDocShRef )->TRG_GetMasterPage());
+ SdrObject *pObj = pPage->GetObj(1);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ const SvxColorItem *pC = &pTxtObj->GetMergedItem(EE_CHAR_COLOR);
+ CPPUNIT_ASSERT_MESSAGE( "no color item", pC != nullptr);
+ // Color should be black
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Placeholder color mismatch", sal_uInt32(0), sal_uInt32(pC->GetValue()) );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testPlaceholderPriority()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/placeholder-priority.pptx"), PPTX);
+
+ const SdrPage* pPage = GetPage( 1, xDocShRef );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Missing placeholder", sal_uInt32(2), sal_uInt32(pPage->GetObjCount()));
+
+ tools::Rectangle pObj1Rect(9100, 3500, 29619, 4038);
+ SdrObject *pObj1 = pPage->GetObj(0);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Placeholder position is wrong, check the placeholder priority", pObj1Rect, pObj1->GetCurrentBoundRect());
+
+ tools::Rectangle pObj2Rect(9102, 8643, 29619, 12642);
+ SdrObject *pObj2 = pPage->GetObj(1);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Placeholder position is wrong, check the placeholder priority", pObj2Rect, pObj2->GetCurrentBoundRect());
+
+ // If the placeholder positions are wrong, please check placeholder priority in Placeholders class.
+}
+
+void SdImportTest::testPptCrop()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/crop.ppt"), PPT);
+
+ uno::Reference<beans::XPropertySet> xPropertySet(
+ getShapeFromPage(/*nShape=*/1, /*nPage=*/0, xDocShRef));
+ text::GraphicCrop aCrop;
+ xPropertySet->getPropertyValue("GraphicCrop") >>= aCrop;
+ // These were all 0, lazy-loading broke cropping.
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(0), aCrop.Top);
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(0), aCrop.Bottom);
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(0), aCrop.Left);
+ CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(0), aCrop.Right);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testFdo72998()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/cshapes.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ SdrObjCustomShape *pObj = dynamic_cast<SdrObjCustomShape *>(pPage->GetObj(2));
+ CPPUNIT_ASSERT( pObj );
+ const SdrCustomShapeGeometryItem& rGeometryItem = pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY );
+ const css::uno::Any* pViewBox = const_cast<SdrCustomShapeGeometryItem&>(rGeometryItem).GetPropertyValueByName( OUString( "ViewBox" ) );
+ CPPUNIT_ASSERT_MESSAGE( "Missing ViewBox", pViewBox );
+ css::awt::Rectangle aViewBox;
+ CPPUNIT_ASSERT( (*pViewBox >>= aViewBox ) );
+ CPPUNIT_ASSERT_MESSAGE( "Width should be zero - for forcing scale to 1", !aViewBox.Width );
+ CPPUNIT_ASSERT_MESSAGE( "Height should be zero - for forcing scale to 1", !aViewBox.Height );
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testFdo77027()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/fdo77027.odp"), ODP);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ {
+ SdrOle2Obj *const pObj = dynamic_cast<SdrOle2Obj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObj);
+
+ // check that the fill style/color was actually imported
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(Color(0xff6600), rColorItem.GetColorValue());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf97808()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf97808.fodp"), FODP);
+
+ uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(
+ xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameAccess> xStyleFamily(xStyleFamilies->getByName("graphics"), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xStyle(xStyleFamily->getByName("objectwithoutfill"), uno::UNO_QUERY);
+ OUString lineend;
+ CPPUNIT_ASSERT(xStyle->getPropertyValue("LineEndName") >>= lineend);
+ CPPUNIT_ASSERT_EQUAL(OUString("Arrow"), lineend);
+
+ // the draw:marker-end="" did not override the style
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XDrawPage> xPage(
+ xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xLine(
+ xPage->getByIndex(0), uno::UNO_QUERY_THROW);
+ //uno::Reference<style::XStyle> xParent;
+ uno::Reference<beans::XPropertySet> xParent;
+ CPPUNIT_ASSERT(xLine->getPropertyValue("Style") >>= xParent);
+ CPPUNIT_ASSERT_EQUAL(xStyle, xParent);
+ CPPUNIT_ASSERT(xLine->getPropertyValue("LineEndName") >>= lineend);
+ CPPUNIT_ASSERT_EQUAL(OUString(), lineend);
+
+ xDocShRef->DoClose();
+}
+void SdImportTest::testFillStyleNone()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf123841.odg"), ODG);
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ auto& rFillStyleItem
+ = dynamic_cast<const XFillStyleItem&>(pObj->GetMergedItem(XATTR_FILLSTYLE));
+ // Without the accompanying fix in place, this test would have failed with 'Expected: 0; Actual:
+ // 1', i.e. the shape's fill was FillStyle_SOLID, making the text of the shape unreadable.
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, rFillStyleItem.GetValue());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testFdo64512()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo64512.odp"), ODP);
+
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount() );
+
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "not exactly three shapes", static_cast<sal_Int32>(3), xPage->getCount() );
+
+ uno::Reference< beans::XPropertySet > xConnectorShape(
+ xPage->getByIndex(2), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "no connector shape", xConnectorShape.is() );
+
+ uno::Reference< beans::XPropertySet > xSvgShape(
+ xConnectorShape->getPropertyValue("StartShape"), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "no start shape", xSvgShape.is() );
+
+ uno::Reference< beans::XPropertySet > xCustomShape(
+ xConnectorShape->getPropertyValue("EndShape"), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "no end shape", xCustomShape.is() );
+
+ uno::Reference< animations::XAnimationNodeSupplier > xAnimNodeSupplier(
+ xPage, uno::UNO_QUERY_THROW );
+ uno::Reference< animations::XAnimationNode > xRootNode(
+ xAnimNodeSupplier->getAnimationNode() );
+ std::vector< uno::Reference< animations::XAnimationNode > > aAnimVector;
+ anim::create_deep_vector(xRootNode, aAnimVector);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "not 8 animation nodes", static_cast<std::size_t>(8), aAnimVector.size() );
+
+ uno::Reference< animations::XAnimate > xNode(
+ aAnimVector[7], uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XShape > xTargetShape(
+ xNode->getTarget(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_MESSAGE( "inner node not referencing svg shape",
+ xTargetShape != xSvgShape );
+
+ xDocShRef->DoClose();
+}
+
+// Unit test for importing charts
+void SdImportTest::testFdo71075()
+{
+ double values[] = { 12.0, 13.0, 14.0 };
+ css::uno::Any aAny;
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo71075.odp"), ODP);
+
+ uno::Reference< beans::XPropertySet > xPropSet( getShapeFromPage( 0, 0, xDocShRef ) );
+ aAny = xPropSet->getPropertyValue( "Model" );
+ CPPUNIT_ASSERT_MESSAGE( "The shape doesn't have the property", aAny.hasValue() );
+
+ uno::Reference< chart::XChartDocument > xChartDoc;
+ aAny >>= xChartDoc;
+ CPPUNIT_ASSERT_MESSAGE( "failed to load chart", xChartDoc.is() );
+ uno::Reference< chart2::XChartDocument > xChart2Doc( xChartDoc, uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "failed to load chart", xChart2Doc.is() );
+
+ uno::Reference< chart2::XCoordinateSystemContainer > xBCooSysCnt( xChart2Doc->getFirstDiagram(), uno::UNO_QUERY );
+ uno::Sequence< uno::Reference< chart2::XCoordinateSystem > > aCooSysSeq( xBCooSysCnt->getCoordinateSystems());
+ uno::Reference< chart2::XChartTypeContainer > xCTCnt( aCooSysSeq[0], uno::UNO_QUERY );
+
+ uno::Reference< chart2::XDataSeriesContainer > xDSCnt( xCTCnt->getChartTypes()[0], uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "failed to load data series", xDSCnt.is() );
+ uno::Sequence< uno::Reference< chart2::XDataSeries > > aSeriesSeq( xDSCnt->getDataSeries());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Invalid Series count", static_cast<sal_Int32>(1), aSeriesSeq.getLength() );
+ uno::Reference< chart2::data::XDataSource > xSource( aSeriesSeq[0], uno::UNO_QUERY );
+ uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > aSeqCnt(xSource->getDataSequences());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Invalid Series count", static_cast<sal_Int32>(1), aSeqCnt.getLength());
+ uno::Reference< chart2::data::XDataSequence > xValueSeq( aSeqCnt[0]->getValues() );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Invalid Data count", static_cast<sal_Int32>(SAL_N_ELEMENTS(values)), xValueSeq->getData().getLength());
+ uno::Reference< chart2::data::XNumericalDataSequence > xNumSeq( xValueSeq, uno::UNO_QUERY );
+ uno::Sequence< double > aValues( xNumSeq->getNumericalData());
+ for(sal_Int32 i=0;i<xValueSeq->getData().getLength();i++)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Invalid Series count", values[i], aValues.getConstArray()[i]);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testStrictOOXML()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/strict_ooxml.pptx"), PPTX);
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+ getShapeFromPage( 0, 0, xDocShRef );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc870237()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc870237.pptx"), PPTX);
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ // Simulate a:ext inside dsp:txXfrm with changing the lower distance
+ const SdrObjGroup* pGroupObj = dynamic_cast<SdrObjGroup*>( pPage->GetObj( 0 ) );
+ const SdrObject* pObj = pGroupObj->GetSubList()->GetObj( 1 );
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(9919), pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_RIGHTDIST).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_LEFTDIST).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testCreationDate()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/fdo71434.pptx"), PPTX);
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<document::XDocumentProperties> xDocumentProperties = xDocumentPropertiesSupplier->getDocumentProperties();
+ util::DateTime aDate = xDocumentProperties->getCreationDate();
+ OUStringBuffer aBuffer;
+ sax::Converter::convertDateTime(aBuffer, aDate, nullptr);
+ // Metadata wasn't imported, this was 0000-00-00.
+ CPPUNIT_ASSERT_EQUAL(OUString("2013-11-09T10:37:56"), aBuffer.makeStringAndClear());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testMultiColTexts()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/multicol.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pTableObj->getRowCount());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), pTableObj->getColumnCount());
+
+ sdr::table::SdrTableObj *pMasterTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->TRG_GetMasterPage().GetObj(0));
+ CPPUNIT_ASSERT( pMasterTableObj );
+
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pMasterTableObj->getRowCount());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), pMasterTableObj->getColumnCount());
+
+ uno::Reference< table::XCellRange > xTable(pMasterTableObj->getTable(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCell;
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ uno::Reference<text::XTextRange> xParagraph(getParagraphFromShape(0, xCell));
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph (0, xParagraph ) );
+ OUString sText = xRun->getString();
+
+ CPPUNIT_ASSERT_EQUAL(OUString(""), sText); //We don't import master table text for multicolumn case.
+}
+
+void SdImportTest::testPredefinedTableStyle()
+{
+ // 073A0DAA-6AF3-43AB-8588-CEC1D06C72B9 (Medium Style 2)
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/predefined-table-style.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCell;
+ sal_Int32 nColor;
+
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nColor);
+
+ xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(13421772), nColor);
+
+ xCell.set(xTable->getCellByPosition(0, 2), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(15198183), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc887225()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc887225.pptx"), PPTX );
+ // In the document, lastRow and lastCol table properties are used.
+ // Make sure styles are set properly for individual cells.
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(2));
+ CPPUNIT_ASSERT( pTableObj );
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCell;
+ sal_Int32 nColor;
+
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6003669), nColor);
+
+ xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6003669), nColor);
+
+ xCell.set(xTable->getCellByPosition(1, 1), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(13754095), nColor);
+
+ xCell.set(xTable->getCellByPosition(1, 2), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(15331319), nColor);
+
+ xCell.set(xTable->getCellByPosition(1, 4), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6003669), nColor);
+
+ xCell.set(xTable->getCellByPosition(3, 2), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6003669), nColor);
+
+ xCell.set(xTable->getCellByPosition(3, 4), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6003669), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc584721_1()
+{
+ // Title text shape on the master page contained wrong text.
+
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc584721_1_2.pptx"), PPTX);
+
+ const SdrPage *pPage = &(GetPage( 1, xDocShRef )->TRG_GetMasterPage());
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ CPPUNIT_ASSERT_EQUAL(OUString("Click to edit Master title style"), aEdit.GetText(0));
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc584721_2()
+{
+ // Import created an extra/unneeded outliner shape on the master slide next to the imported title shape.
+
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc584721_1_2.pptx"), PPTX);
+
+ const SdrPage *pPage = &(GetPage( 1, xDocShRef )->TRG_GetMasterPage());
+ CPPUNIT_ASSERT_EQUAL(size_t(1), pPage->GetObjCount());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc591147()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc591147.pptx"), PPTX);
+
+ // In the document, there are two slides with media files.
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(2), xDoc->getDrawPages()->getCount() );
+
+ // First page has video file inserted
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(1), xPage->getCount() );
+
+ //uno::Reference< drawing::XShape > xShape(xPage->getByIndex(0), uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xPropSet( getShape( 0, xPage ) );
+ OUString sVideoURL("emptyURL");
+ bool bSuccess = xPropSet->getPropertyValue("MediaURL") >>= sVideoURL;
+ CPPUNIT_ASSERT_MESSAGE( "MediaURL property is not set", bSuccess );
+ CPPUNIT_ASSERT_MESSAGE("MediaURL is empty", !sVideoURL.isEmpty());
+
+ // Second page has audio file inserted
+ xPage.set( xDoc->getDrawPages()->getByIndex(1), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(1), xPage->getCount() );
+
+ xPropSet.set( getShape( 0, xPage ) );
+ OUString sAudioURL("emptyURL");
+ bSuccess = xPropSet->getPropertyValue("MediaURL") >>= sAudioURL;
+ CPPUNIT_ASSERT_MESSAGE( "MediaURL property is not set", bSuccess );
+ CPPUNIT_ASSERT_MESSAGE("MediaURL is empty", !sAudioURL.isEmpty());
+
+ CPPUNIT_ASSERT_MESSAGE( "sAudioURL and sVideoURL should not be equal", sAudioURL != sVideoURL );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc584721_4()
+{
+ // Black text was imported as white because of wrong caching mechanism
+
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc584721_4.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 1, 1, xDocShRef ) );
+
+ // Get first paragraph of the text
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+
+ // Get first run of the paragraph
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph (0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+ Color nCharColor;
+ xPropSet->getPropertyValue( "CharColor" ) >>= nCharColor;
+
+ // Color should be black
+ CPPUNIT_ASSERT_EQUAL( COL_BLACK, nCharColor );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc904423()
+{
+ // Here the problem was that different fill properties were applied in wrong order on the shape
+ // Right order: 1) master slide fill style, 2) theme, 3) direct formatting
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/bnc904423.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ // First shape's background color is defined on master slide
+ {
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pObj);
+
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x00CC99), sal_uInt32(rColorItem.GetColorValue()));
+ }
+
+ // Second shape's background color is defined by theme
+ {
+ SdrObject *const pObj = pPage->GetObj(1);
+ CPPUNIT_ASSERT(pObj);
+
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x3333CC), sal_uInt32(rColorItem.GetColorValue()));
+ }
+
+ // Third shape's background color is defined by direct formatting
+ {
+ SdrObject *const pObj = pPage->GetObj(2);
+ CPPUNIT_ASSERT(pObj);
+
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFF0000), sal_uInt32(rColorItem.GetColorValue()));
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testShapeLineStyle()
+{
+ // Here the problem was that different line properties were applied in wrong order on the shape
+ // Right order: 1) master slide line style, 2) theme, 3) direct formatting
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/ShapeLineProperties.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ // First shape's line style is defined on master slide
+ {
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pObj);
+
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pObj->GetMergedItem(XATTR_LINESTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_DASH, rStyleItem.GetValue());
+
+ const XLineColorItem& rColorItem = dynamic_cast<const XLineColorItem&>(
+ pObj->GetMergedItem(XATTR_LINECOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFF0000), sal_uInt32(rColorItem.GetColorValue()));
+
+ const XLineWidthItem& rWidthItem = dynamic_cast<const XLineWidthItem&>(
+ pObj->GetMergedItem(XATTR_LINEWIDTH));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(132), rWidthItem.GetValue());
+ }
+
+ // Second shape's line style is defined by theme
+ {
+ SdrObject *const pObj = pPage->GetObj(1);
+ CPPUNIT_ASSERT(pObj);
+
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pObj->GetMergedItem(XATTR_LINESTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_SOLID, rStyleItem.GetValue());
+
+ const XLineColorItem& rColorItem = dynamic_cast<const XLineColorItem&>(
+ pObj->GetMergedItem(XATTR_LINECOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x3333CC), sal_uInt32(rColorItem.GetColorValue()));
+
+ const XLineWidthItem& rWidthItem = dynamic_cast<const XLineWidthItem&>(
+ pObj->GetMergedItem(XATTR_LINEWIDTH));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(35), rWidthItem.GetValue());
+ }
+
+ // Third shape's line style is defined by direct formatting
+ {
+ SdrObject *const pObj = pPage->GetObj(2);
+ CPPUNIT_ASSERT(pObj);
+
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pObj->GetMergedItem(XATTR_LINESTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_SOLID, rStyleItem.GetValue());
+
+ const XLineColorItem& rColorItem = dynamic_cast<const XLineColorItem&>(
+ pObj->GetMergedItem(XATTR_LINECOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x7030A0), sal_uInt32(rColorItem.GetColorValue()));
+
+ const XLineWidthItem& rWidthItem = dynamic_cast<const XLineWidthItem&>(
+ pObj->GetMergedItem(XATTR_LINEWIDTH));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(176), rWidthItem.GetValue());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTableBorderLineStyle()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tableBorderLineStyle.pptx"), PPTX );
+
+ // TODO: If you are working on improvement of table border line style
+ // support, then expect this unit test to fail.
+
+ const sal_Int16 nObjBorderLineStyles[] =
+ {
+ ::table::BorderLineStyle::DASHED,
+ ::table::BorderLineStyle::DASH_DOT_DOT,
+ ::table::BorderLineStyle::DASH_DOT,
+ ::table::BorderLineStyle::DOTTED,
+ ::table::BorderLineStyle::DASHED,
+ ::table::BorderLineStyle::DOTTED,
+ ::table::BorderLineStyle::DASHED,
+ ::table::BorderLineStyle::DASH_DOT,
+ ::table::BorderLineStyle::DASH_DOT,
+ ::table::BorderLineStyle::SOLID,
+ ::table::BorderLineStyle::NONE
+ };
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ CPPUNIT_ASSERT_EQUAL(SAL_N_ELEMENTS(nObjBorderLineStyles), pPage->GetObjCount());
+
+ sdr::table::SdrTableObj *pTableObj;
+ uno::Reference< table::XCellRange > xTable;
+ uno::Reference< beans::XPropertySet > xCell;
+ table::BorderLine2 aBorderLine;
+
+ for (size_t i = 0; i < SAL_N_ELEMENTS(nObjBorderLineStyles); i++)
+ {
+ pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(i));
+ CPPUNIT_ASSERT( pTableObj );
+ xTable.set(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("TopBorder") >>= aBorderLine;
+ if (aBorderLine.LineWidth > 0) {
+ CPPUNIT_ASSERT_EQUAL(nObjBorderLineStyles[i], aBorderLine.LineStyle);
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc862510_6()
+{
+ // Black text was imported instead of gray
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_6.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph of the text
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+
+ // Get first run of the paragraph
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph( 0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+ sal_Int32 nCharColor;
+ xPropSet->getPropertyValue( "CharColor" ) >>= nCharColor;
+
+ // Color should be gray
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0x8B8B8B), nCharColor );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc862510_7()
+{
+ // Title shape's text was aligned to left instead of center.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_7.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+
+ sal_Int16 nParaAdjust = 0;
+ xPropSet->getPropertyValue( "ParaAdjust" ) >>= nParaAdjust;
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(nParaAdjust));
+
+ xDocShRef->DoClose();
+}
+
+#if ENABLE_PDFIMPORT
+// These tests use the old PDF-importing logic, which imports PDF elements as
+// SD elements. This suffered many issues, and therefore wasn't ideal.
+// The old PDF importer relied on an open-source project (xpdf) with an
+// incompatible license (gpl), which has to be interfaced via an out-of-process
+// library wrapper process. The resulting imported document was inaccurate
+// and often very slow and with large memory footprint.
+// Instead, PDFium offers state-of-the-art PDF importing logic,
+// which is well-maintained and renders PDFs into images with high accuracy.
+// So, the idea is to import PDFs as images using PDFium, which has a very
+// high quality (and is much faster) than importing individual editable elements.
+// So that's the "new" way of importing.
+// The user then breaks the image to editable elements (which is not perfect,
+// but very close to the old way), only if they need editing ability.
+// PDFium should overall be better, and where it isn't, we just need to improve it.
+// So these tests aren't really useful anymore. They should be modified to do
+// import+break and then check the results. But that isn't straight-forward and
+// currently await volunteering time to implement.
+
+#if HAVE_FEATURE_PDFIUM
+void SdImportTest::testPDFImportShared()
+{
+ comphelper::LibreOfficeKit::setActive();
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pdf/multipage.pdf"), PDF);
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+
+ // This test is to verify that we share the PDF stream linked to each
+ // Graphic instance in the imported document.
+ // Since we import PDFs as images, we support attaching the original
+ // PDF with each image to allow for advanced editing.
+ // Here we iterate over all Graphic instances embedded in the pages
+ // and verify that they all point to the same object in memory.
+ std::vector<Graphic> aGraphics;
+
+ for (int nPageIndex = 0; nPageIndex < pDoc->GetPageCount(); ++nPageIndex)
+ {
+ const SdrPage* pPage = GetPage(nPageIndex, xDocShRef);
+ if (pPage == nullptr)
+ break;
+
+ for (size_t nObjIndex = 0; nObjIndex < pPage->GetObjCount(); ++nObjIndex)
+ {
+ SdrObject* pObject = pPage->GetObj(nObjIndex);
+ if (pObject == nullptr)
+ continue;
+
+ SdrGrafObj* pSdrGrafObj = dynamic_cast<SdrGrafObj*>(pObject);
+ if (pSdrGrafObj == nullptr)
+ continue;
+
+ const GraphicObject& rGraphicObject = pSdrGrafObj->GetGraphicObject().GetGraphic();
+ const Graphic& rGraphic = rGraphicObject.GetGraphic();
+ CPPUNIT_ASSERT_MESSAGE("After loading, the PDF shouldn't have the primitive sequence created yet",
+ !rGraphic.getVectorGraphicData()->isPrimitiveSequenceCreated());
+ aGraphics.push_back(rGraphic);
+ }
+ }
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected more than one page.", size_t(9), aGraphics.size());
+
+ Graphic const & rFirstGraphic = aGraphics[0];
+
+ for (size_t i = 0; i < aGraphics.size(); ++i)
+ {
+ Graphic const & rGraphic = aGraphics[i];
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected all PDF streams to be identical.",
+ rFirstGraphic.getVectorGraphicData()->getVectorGraphicDataArray().getConstArray(),
+ rGraphic.getVectorGraphicData()->getVectorGraphicDataArray().getConstArray());
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected all GfxLinks to be identical.",
+ rFirstGraphic.GetSharedGfxLink().get(),
+ rGraphic.GetSharedGfxLink().get());
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Page number doesn't match expected", sal_Int32(i), rGraphic.getPageNumber());
+ }
+
+ xDocShRef->DoClose();
+ comphelper::LibreOfficeKit::setActive(false);
+}
+#endif
+
+#if defined(IMPORT_PDF_ELEMENTS)
+
+void SdImportTest::testPDFImport()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pdf/txtpic.pdf"), PDF);
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "no exactly two shapes", static_cast<sal_Int32>(2), xPage->getCount() );
+
+ uno::Reference< beans::XPropertySet > xShape( getShape( 0, xPage ) );
+ uno::Reference<text::XText> xText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText();
+ CPPUNIT_ASSERT_MESSAGE( "not a text shape", xText.is() );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testPDFImportSkipImages()
+{
+ auto pParams = std::make_shared<SfxAllItemSet>( SfxGetpApp()->GetPool() );
+ pParams->Put( SfxStringItem ( SID_FILE_FILTEROPTIONS, "SkipImages" ) );
+
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pdf/txtpic.pdf"), PDF, pParams);
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "no exactly one shape", static_cast<sal_Int32>(1), xPage->getCount() );
+
+ uno::Reference< drawing::XShape > xShape(xPage->getByIndex(0), uno::UNO_QUERY_THROW );
+ uno::Reference<text::XText> xText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText();
+ CPPUNIT_ASSERT_MESSAGE( "not a text shape", xText.is() );
+
+ xDocShRef->DoClose();
+}
+
+#endif
+#endif
+
+void SdImportTest::testBulletSuffix()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n83889.pptx"), PPTX );
+
+ // check suffix of the char bullet
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(1).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's suffix is wrong!", pNumFmt->GetNumRule()->GetLevel(0).GetSuffix(), OUString() );
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testBnc910045()
+{
+ // Problem with table style which defines cell color with fill style
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/bnc910045.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xCell;
+ sal_Int32 nColor;
+
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("FillColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5210557), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testRowHeight()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n80340.pptx"), PPTX );
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ sal_Int32 nHeight;
+ const OUString sHeight("Height");
+ uno::Reference< css::table::XTable > xTable(pTableObj->getTable(), uno::UNO_SET_THROW);
+ uno::Reference< css::table::XTableRows > xRows( xTable->getRows(), uno::UNO_SET_THROW);
+ uno::Reference< beans::XPropertySet > xRefRow( xRows->getByIndex(0), uno::UNO_QUERY_THROW );
+ xRefRow->getPropertyValue( sHeight ) >>= nHeight;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(508), nHeight);
+
+ xDocShRef->DoClose();
+
+ sd::DrawDocShellRef xDocShRef2 = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tablescale.pptx"), PPTX );
+ const SdrPage *pPage2 = GetPage( 1, xDocShRef2 );
+
+ sdr::table::SdrTableObj *pTableObj2 = dynamic_cast<sdr::table::SdrTableObj*>(pPage2->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj2 );
+
+ uno::Reference< css::table::XTable > xTable2(pTableObj2->getTable(), uno::UNO_SET_THROW);
+ uno::Reference< css::table::XTableRows > xRows2( xTable2->getRows(), uno::UNO_SET_THROW);
+
+ for(sal_Int32 nRow = 0; nRow < 7; ++nRow)
+ {
+ uno::Reference< beans::XPropertySet > xRefRow2( xRows2->getByIndex(nRow), uno::UNO_QUERY_THROW );
+ xRefRow2->getPropertyValue( "Height" ) >>= nHeight;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(800), nHeight);
+ }
+
+ xDocShRef2->DoClose();
+}
+
+void SdImportTest::testTdf93830()
+{
+ // Text shape offset was ignored
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf93830.pptx"), PPTX);
+ uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
+
+ // Get the first text box from group shape
+ uno::Reference< container::XIndexAccess > xShape( xPage->getByIndex(0), uno::UNO_QUERY );
+ uno::Reference< beans::XPropertySet > xPropSet( xShape->getByIndex(3), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "no textbox shape", xPropSet.is() );
+
+ sal_Int32 nTextLeftDistance = 0;
+ xPropSet->getPropertyValue( "TextLeftDistance" ) >>= nTextLeftDistance;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4152), nTextLeftDistance);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf127129()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf127129.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< text::XTextRange > xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< text::XTextRange > xRun( getRunFromParagraph( 0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+
+ sal_Int32 nCharColor;
+ xPropSet->getPropertyValue( "CharColor" ) >>= nCharColor;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0x000000), nCharColor );
+
+ // Without the accompanying fix in place, the highlight would be -1
+ sal_Int32 nCharBackColor;
+ xPropSet->getPropertyValue( "CharBackColor" ) >>= nCharBackColor;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF00), nCharBackColor );
+
+ xDocShRef->DoClose();
+}
+void SdImportTest::testTdf93097()
+{
+ // Throwing metadata import aborted the filter, check that metadata is now imported.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf93097.pptx"), PPTX);
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<document::XDocumentProperties> xDocumentProperties = xDocumentPropertiesSupplier->getDocumentProperties();
+ CPPUNIT_ASSERT_EQUAL(OUString("ss"), xDocumentProperties->getTitle());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf62255()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf62255.pptx"), PPTX);
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ sdr::table::SdrTableObj *pTableObj;
+ pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT( pTableObj );
+
+ css::uno::Any aAny;
+ uno::Reference< table::XCellRange > xTable;
+ uno::Reference< beans::XPropertySet > xCell;
+ xTable.set(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+ xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ aAny = xCell->getPropertyValue("FillStyle");
+
+ if (aAny.hasValue())
+ {
+ drawing::FillStyle aFillStyle;
+ aAny >>= aFillStyle;
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, aFillStyle);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf93124()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf93124.ppt"), PPT);
+ uno::Reference < uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
+ uno::Reference< drawing::XGraphicExportFilter > xGraphicExporter = drawing::GraphicExportFilter::create(xContext);
+
+ uno::Sequence< beans::PropertyValue > aFilterData(2);
+ aFilterData[0].Name = "PixelWidth";
+ aFilterData[0].Value <<= sal_Int32(320);
+ aFilterData[1].Name = "PixelHeight";
+ aFilterData[1].Value <<= sal_Int32(180);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+
+ uno::Sequence< beans::PropertyValue > aDescriptor(3);
+ aDescriptor[0].Name = "URL";
+ aDescriptor[0].Value <<= aTempFile.GetURL();
+ aDescriptor[1].Name = "FilterName";
+ aDescriptor[1].Value <<= OUString("PNG");
+ aDescriptor[2].Name = "FilterData";
+ aDescriptor[2].Value <<= aFilterData;
+
+ uno::Reference< lang::XComponent > xPage(getPage(0, xDocShRef), uno::UNO_QUERY);
+ xGraphicExporter->setSourceDocument(xPage);
+ xGraphicExporter->filter(aDescriptor);
+
+ SvFileStream aFileStream(aTempFile.GetURL(), StreamMode::READ);
+ vcl::PNGReader aPNGReader(aFileStream);
+ BitmapEx aBMPEx = aPNGReader.Read();
+
+ // make sure the bitmap is not empty and correct size (PNG export->import was successful)
+ CPPUNIT_ASSERT_EQUAL(Size(320, 180), aBMPEx.GetSizePixel());
+ Bitmap aBMP = aBMPEx.GetBitmap();
+ {
+ Bitmap::ScopedReadAccess pReadAccess(aBMP);
+ int nNonWhiteCount = 0;
+ // The word "Top" should be in rectangle 34,4 - 76,30. If text alignment is wrong, the rectangle will be white.
+ for (long nY = 4; nY < (4 + 26); ++nY)
+ {
+ for (long nX = 34; nX < (34 + 43); ++nX)
+ {
+ const Color aColor = pReadAccess->GetColor(nY, nX);
+ if ((aColor.GetRed() != 0xff) || (aColor.GetGreen() != 0xff) || (aColor.GetBlue() != 0xff))
+ ++nNonWhiteCount;
+ }
+ }
+ CPPUNIT_ASSERT_MESSAGE("Tdf93124: vertical alignment of text is incorrect!", nNonWhiteCount>50);
+ }
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf99729()
+{
+ const OUString filenames[] = { "/sd/qa/unit/data/odp/tdf99729-new.odp", "/sd/qa/unit/data/odp/tdf99729-legacy.odp" };
+ int nonwhitecounts[] = { 0, 0 };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(filenames); ++i)
+ {
+ // 1st check for new behaviour - having AnchoredTextOverflowLegacy compatibility flag set to false in settings.xml
+ uno::Reference<lang::XComponent> xComponent
+ = loadFromDesktop(m_directories.getURLFromSrc(filenames[i]),
+ "com.sun.star.presentation.PresentationDocument");
+
+ uno::Reference<uno::XComponentContext> xContext = getComponentContext();
+ CPPUNIT_ASSERT(xContext.is());
+ uno::Reference< drawing::XGraphicExportFilter > xGraphicExporter = drawing::GraphicExportFilter::create(xContext);
+ CPPUNIT_ASSERT(xGraphicExporter.is());
+
+ uno::Sequence< beans::PropertyValue > aFilterData(2);
+ aFilterData[0].Name = "PixelWidth";
+ aFilterData[0].Value <<= sal_Int32(320);
+ aFilterData[1].Name = "PixelHeight";
+ aFilterData[1].Value <<= sal_Int32(240);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+
+ uno::Sequence< beans::PropertyValue > aDescriptor(3);
+ aDescriptor[0].Name = "URL";
+ aDescriptor[0].Value <<= aTempFile.GetURL();
+ aDescriptor[1].Name = "FilterName";
+ aDescriptor[1].Value <<= OUString("PNG");
+ aDescriptor[2].Name = "FilterData";
+ aDescriptor[2].Value <<= aFilterData;
+
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xComponent, uno::UNO_QUERY);
+ uno::Reference<lang::XComponent> xPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+ xGraphicExporter->setSourceDocument(xPage);
+ xGraphicExporter->filter(aDescriptor);
+
+ SvFileStream aFileStream(aTempFile.GetURL(), StreamMode::READ);
+ vcl::PNGReader aPNGReader(aFileStream);
+ BitmapEx aBMPEx = aPNGReader.Read();
+ Bitmap aBMP = aBMPEx.GetBitmap();
+ Bitmap::ScopedReadAccess pRead(aBMP);
+ for (long nX = 154; nX < (154 + 12); ++nX)
+ {
+ for (long nY = 16; nY < (16 + 96); ++nY)
+ {
+ const Color aColor = pRead->GetColor(nY, nX);
+ if ((aColor.GetRed() != 0xff) || (aColor.GetGreen() != 0xff) || (aColor.GetBlue() != 0xff))
+ ++nonwhitecounts[i];
+ }
+ }
+ xComponent->dispose();
+ }
+ // The numbers 1-9 should be above the Text Box in rectangle 154,16 - 170,112.
+ // If text alignment is wrong, the rectangle will be white.
+ CPPUNIT_ASSERT_MESSAGE("Tdf99729: vertical alignment of text is incorrect!", nonwhitecounts[0]>100); // it is 134 with cleartype disabled
+ // The numbers 1-9 should be below the Text Box -> rectangle 154,16 - 170,112 should be white.
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Tdf99729: legacy vertical alignment of text is incorrect!", 0, nonwhitecounts[1]);
+}
+
+void SdImportTest::testTdf89927()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf89927.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+ uno::Reference< text::XTextRange > xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< text::XTextRange > xRun( getRunFromParagraph( 0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+
+ sal_Int32 nCharColor;
+ xPropSet->getPropertyValue( "CharColor" ) >>= nCharColor;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFFFFFF), nCharColor );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf93868()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf93868.pptx"), PPTX);
+
+ const SdrPage *pPage = &(GetPage( 1, xDocShRef )->TRG_GetMasterPage());
+ CPPUNIT_ASSERT_EQUAL(size_t(5), pPage->GetObjCount());
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, dynamic_cast<const XFillStyleItem&>(pPage->GetObj(0)->GetMergedItem(XATTR_FILLSTYLE)).GetValue());
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, dynamic_cast<const XFillStyleItem&>(pPage->GetObj(1)->GetMergedItem(XATTR_FILLSTYLE)).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf95932()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf95932.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ SdrObject *const pObj = pPage->GetObj(2);
+ CPPUNIT_ASSERT(pObj);
+
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x76bf3d), sal_uInt32(rColorItem.GetColorValue()));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf99030()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf99030.pptx"), PPTX);
+
+ uno::Reference< drawing::XMasterPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getMasterPages()->getByIndex( 0 ), uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+
+ sal_Int32 nFillColor(0);
+ uno::Any aAny = xPropSet->getPropertyValue( "Background" );
+ if (aAny.hasValue())
+ {
+ uno::Reference< beans::XPropertySet > xBackgroundPropSet;
+ aAny >>= xBackgroundPropSet;
+ xBackgroundPropSet->getPropertyValue( "FillColor" ) >>= nFillColor;
+ }
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0x676A55), nFillColor );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf49561()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf49561.ppt"), PPT);
+
+ uno::Reference< drawing::XMasterPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getMasterPages()->getByIndex( 0 ), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(5), xPage->getCount() );
+
+ uno::Reference< beans::XPropertySet > xShape( getShape( 3, xPage ) );
+ uno::Reference<text::XTextRange> xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph (0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet(xRun , uno::UNO_QUERY_THROW );
+
+ float fCharHeight = 0;
+ CPPUNIT_ASSERT(xPropSet->getPropertyValue("CharHeight") >>= fCharHeight);
+ CPPUNIT_ASSERT_EQUAL(12.f, fCharHeight);
+
+ OUString aCharFontName;
+ CPPUNIT_ASSERT(xPropSet->getPropertyValue("CharFontName") >>= aCharFontName);
+ CPPUNIT_ASSERT_EQUAL(OUString("Stencil"), aCharFontName);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf103473()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf103473.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ SdrTextObj *const pObj = dynamic_cast<SdrTextObj *const>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pObj);
+ ::tools::Rectangle aRect = pObj->GetGeoRect();
+ CPPUNIT_ASSERT_EQUAL(3629L, aRect.Left());
+ CPPUNIT_ASSERT_EQUAL(4431L, aRect.Top());
+ CPPUNIT_ASSERT_EQUAL(8353L, aRect.Right());
+ CPPUNIT_ASSERT_EQUAL(9155L, aRect.Bottom());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testAoo124143()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odg/ooo124143-1.odg"), ODG);
+
+ uno::Reference<beans::XPropertySet> const xImage(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference<drawing::XGluePointsSupplier> const xGPS(xImage, uno::UNO_QUERY);
+ uno::Reference<container::XIdentifierAccess> const xGluePoints(xGPS->getGluePoints(), uno::UNO_QUERY);
+
+ uno::Sequence<sal_Int32> const ids(xGluePoints->getIdentifiers());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(6), ids.getLength());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), ids[0]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), ids[1]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), ids[2]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), ids[3]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ids[4]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), ids[5]);
+
+ // interesting ones are custom 4, 5
+ drawing::GluePoint2 glue4;
+ xGluePoints->getByIdentifier(4) >>= glue4;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32( 2470), glue4.Position.X);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-1810), glue4.Position.Y);
+
+ drawing::GluePoint2 glue5;
+ xGluePoints->getByIdentifier(5) >>= glue5;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-2975), glue5.Position.X);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-2165), glue5.Position.Y);
+
+ // now check connectors
+ uno::Reference<beans::XPropertySet> const xEllipse(getShapeFromPage(1, 0, xDocShRef));
+ uno::Reference<beans::XPropertySet> const xConn1(getShapeFromPage(2, 0, xDocShRef));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xConn1->getPropertyValue("StartGluePointIndex").get<sal_Int32>());
+ CPPUNIT_ASSERT_EQUAL(xEllipse, xConn1->getPropertyValue("StartShape").get<uno::Reference<beans::XPropertySet>>());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xConn1->getPropertyValue("EndGluePointIndex").get<sal_Int32>());
+ CPPUNIT_ASSERT_EQUAL(xImage, xConn1->getPropertyValue("EndShape").get<uno::Reference<beans::XPropertySet>>());
+ uno::Reference<beans::XPropertySet> const xConn2(getShapeFromPage(3, 0, xDocShRef));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xConn2->getPropertyValue("StartGluePointIndex").get<sal_Int32>());
+ CPPUNIT_ASSERT_EQUAL(xEllipse, xConn2->getPropertyValue("StartShape").get<uno::Reference<beans::XPropertySet>>());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), xConn2->getPropertyValue("EndGluePointIndex").get<sal_Int32>());
+ CPPUNIT_ASSERT_EQUAL(xImage, xConn2->getPropertyValue("EndShape").get<uno::Reference<beans::XPropertySet>>());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf103567()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf103567.odp"), ODP);
+ for (int i = 0; i < 4; ++i)
+ {
+ uno::Reference<beans::XPropertySet> const xShape(getShapeFromPage(i, 0, xDocShRef));
+ uno::Reference<document::XEventsSupplier> const xEventsSupplier(xShape, uno::UNO_QUERY);
+ uno::Reference<container::XNameAccess> const xEvents(xEventsSupplier->getEvents());
+ OString const msg("shape " + OString::number(i) + ": ");
+
+ CPPUNIT_ASSERT(xEvents->hasByName("OnClick"));
+ uno::Sequence<beans::PropertyValue> props;
+ xEvents->getByName("OnClick") >>= props;
+ comphelper::SequenceAsHashMap const map(props);
+ {
+ auto iter(map.find("EventType"));
+ CPPUNIT_ASSERT_MESSAGE(OString(msg + "no EventType").getStr(), iter != map.end());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), OUString("Presentation"), iter->second.get<OUString>());
+ }
+ {
+ auto iter(map.find("ClickAction"));
+ CPPUNIT_ASSERT_MESSAGE(OString(msg + "no ClickAction").getStr(), iter != map.end());
+ if (i % 2 == 0)
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), css::presentation::ClickAction_DOCUMENT, iter->second.get<css::presentation::ClickAction>());
+ }
+ else
+ {
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), css::presentation::ClickAction_NEXTPAGE, iter->second.get<css::presentation::ClickAction>());
+ }
+ }
+ if (i % 2 == 0)
+ {
+ auto iter(map.find("Bookmark"));
+ CPPUNIT_ASSERT_MESSAGE(OString(msg + "no Bookmark").getStr(), iter != map.end());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), OUString("http://example.com/"), iter->second.get<OUString>());
+ }
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf103792()
+{
+ // Title text shape on the actual slide contained no text neither a placeholder text.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf103792.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("No page found", pPage != nullptr);
+ SdrObject *pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(pObj);
+ CPPUNIT_ASSERT_MESSAGE("Not a text object", pTxtObj != nullptr);
+
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ CPPUNIT_ASSERT_EQUAL(OUString("Click to add Title"), aEdit.GetText(0));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf103876()
+{
+ // Title text shape's placeholder text did not inherit the corresponding text properties
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf103876.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Check paragraph alignment
+ sal_Int16 nParaAdjust = 0;
+ xShape->getPropertyValue( "ParaAdjust" ) >>= nParaAdjust;
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(nParaAdjust));
+
+ // Check character color
+ sal_Int32 nCharColor;
+ xShape->getPropertyValue( "CharColor" ) >>= nCharColor;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF0000), nCharColor );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf79007()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf79007.pptx"), PPTX);
+
+ uno::Reference<beans::XPropertySet> xShape1(getShapeFromPage(0, 0, xDocShRef));
+ CPPUNIT_ASSERT_MESSAGE("Not a shape", xShape1.is());
+
+ // Check we map mso washout to our watermark
+ drawing::ColorMode aColorMode1;
+ xShape1->getPropertyValue("GraphicColorMode") >>= aColorMode1;
+ CPPUNIT_ASSERT_EQUAL(drawing::ColorMode_WATERMARK, aColorMode1);
+
+ sal_Int16 nContrast1;
+ xShape1->getPropertyValue("AdjustContrast") >>= nContrast1;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nContrast1);
+
+ sal_Int16 nLuminance1;
+ xShape1->getPropertyValue("AdjustLuminance") >>= nLuminance1;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nLuminance1);
+
+ uno::Reference<beans::XPropertySet> xShape2(getShapeFromPage(1, 0, xDocShRef));
+ CPPUNIT_ASSERT_MESSAGE("Not a shape", xShape2.is());
+
+ // Check we map mso grayscale to our grayscale
+ drawing::ColorMode aColorMode2;
+ xShape2->getPropertyValue("GraphicColorMode") >>= aColorMode2;
+ CPPUNIT_ASSERT_EQUAL(drawing::ColorMode_GREYS, aColorMode2);
+
+ sal_Int16 nContrast2;
+ xShape2->getPropertyValue("AdjustContrast") >>= nContrast2;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nContrast2);
+
+ sal_Int16 nLuminance2;
+ xShape2->getPropertyValue("AdjustLuminance") >>= nLuminance2;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nLuminance2);
+
+ uno::Reference<beans::XPropertySet> xShape3(getShapeFromPage(2, 0, xDocShRef));
+ CPPUNIT_ASSERT_MESSAGE("Not a shape", xShape3.is());
+
+ // Check we map mso black/white to our black/white
+ drawing::ColorMode aColorMode3;
+ xShape3->getPropertyValue("GraphicColorMode") >>= aColorMode3;
+ CPPUNIT_ASSERT_EQUAL(drawing::ColorMode_MONO, aColorMode3);
+
+ sal_Int16 nContrast3;
+ xShape3->getPropertyValue("AdjustContrast") >>= nContrast3;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nContrast3);
+
+ sal_Int16 nLuminance3;
+ xShape3->getPropertyValue("AdjustLuminance") >>= nLuminance3;
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(0), nLuminance3);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf129686()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf129686.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+ // Get first paragraph of the text
+ uno::Reference<text::XTextRange> const xParagraph( getParagraphFromShape( 0, xShape ) );
+
+ // Get first run of the paragraph
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph (0, xParagraph ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+ sal_Int16 nTransparency = 0;
+ xPropSet->getPropertyValue("CharTransparence") >>= nTransparency;
+
+ // 100 = no transparency
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(100), nTransparency);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf104015()
+{
+ // Shape fill, line and effect properties were not inherited from master slide shape
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104015.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+ CPPUNIT_ASSERT_MESSAGE("No page found", pPage != nullptr);
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr);
+ // Should have a red fill color
+ {
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xFF0000), sal_uInt32(rColorItem.GetColorValue()));
+ }
+ // Should have a blue line
+ {
+ const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
+ pObj->GetMergedItem(XATTR_LINESTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_SOLID, rStyleItem.GetValue());
+
+ const XLineColorItem& rColorItem = dynamic_cast<const XLineColorItem&>(
+ pObj->GetMergedItem(XATTR_LINECOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0000FF), sal_uInt32(rColorItem.GetColorValue()));
+ }
+ // Should have some shadow
+ {
+ const SdrOnOffItem& rShadowItem = dynamic_cast<const SdrOnOffItem&>(
+ pObj->GetMergedItem(SDRATTR_SHADOW));
+ CPPUNIT_ASSERT(rShadowItem.GetValue());
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf104201()
+{
+ // Group shape properties did not overwrite the child shapes' fill
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104201.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ CPPUNIT_ASSERT_MESSAGE("No page found", pPage != nullptr);
+
+ // First shape has red fill, but this should be overwritten by green group fill
+ {
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr);
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x00FF00), sal_uInt32(rColorItem.GetColorValue()));
+ }
+ // Second shape has blue fill, but this should be overwritten by green group fill
+ {
+ SdrObject *const pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr);
+ const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>(
+ pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue());
+ const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>(
+ pObj->GetMergedItem(XATTR_FILLCOLOR));
+ CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x00FF00), sal_uInt32(rColorItem.GetColorValue()));
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf103477()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf103477.pptx"), PPTX);
+
+ const SdrPage *pPage = GetPage( 1, xDocShRef );
+
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(6) );
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr );
+
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's color is wrong!", Color(0x000000), pNumFmt->GetNumRule()->GetLevel(1).GetBulletColor());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf105150()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf105150.pptx"), PPTX);
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(1);
+ auto& rFillStyleItem = dynamic_cast<const XFillStyleItem&>(pObj->GetMergedItem(XATTR_FILLSTYLE));
+ // This was drawing::FillStyle_NONE, <p:sp useBgFill="1"> was ignored when
+ // the slide didn't have an explicit background fill.
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rFillStyleItem.GetValue());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf123684()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf123684.pptx"), PPTX);
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ auto& rFillStyleItem
+ = dynamic_cast<const XFillStyleItem&>(pObj->GetMergedItem(XATTR_FILLSTYLE));
+ // Without the accompanying fix in place, this test would have failed with 'Expected: 0; Actual:
+ // 1', i.e. the shape's fill was FillStyle_SOLID, making the text of the shape unreadable.
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, rFillStyleItem.GetValue());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf105150PPT()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/ppt/tdf105150.ppt"), PPT);
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(1);
+ // This was drawing::FillStyle_NONE, the shape's mso_fillBackground was
+ // ignored when the slide didn't have an explicit background fill.
+ auto& rFillStyleItem = dynamic_cast<const XFillStyleItem&>(pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rFillStyleItem.GetValue());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf104445()
+{
+ // Extra bullets were added to the first shape
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104445.pptx"), PPTX);
+
+ // First shape should not have bullet
+ {
+ uno::Reference< beans::XPropertySet > xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText();
+ CPPUNIT_ASSERT_MESSAGE("Not a text shape", xText.is());
+ uno::Reference< beans::XPropertySet > xPropSet(xText, uno::UNO_QUERY_THROW);
+
+ uno::Reference< container::XIndexAccess > xNumRule;
+ xPropSet->getPropertyValue("NumberingRules") >>= xNumRule;
+ uno::Sequence<beans::PropertyValue> aBulletProps;
+ xNumRule->getByIndex(0) >>= aBulletProps;
+
+ for (beans::PropertyValue const & rProp : std::as_const(aBulletProps))
+ {
+ if(rProp.Name == "NumberingType")
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(style::NumberingType::NUMBER_NONE), rProp.Value.get<sal_Int16>());
+ if(rProp.Name == "LeftMargin")
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), rProp.Value.get<sal_Int32>());
+ }
+ }
+ // Second shape should have bullet set
+ {
+ uno::Reference< beans::XPropertySet > xShape(getShapeFromPage(1, 0, xDocShRef));
+ uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText();
+ CPPUNIT_ASSERT_MESSAGE("Not a text shape", xText.is());
+ uno::Reference< beans::XPropertySet > xPropSet(xText, uno::UNO_QUERY_THROW);
+
+ uno::Reference< container::XIndexAccess > xNumRule;
+ xPropSet->getPropertyValue("NumberingRules") >>= xNumRule;
+ uno::Sequence<beans::PropertyValue> aBulletProps;
+ xNumRule->getByIndex(0) >>= aBulletProps;
+
+ for(beans::PropertyValue const & rProp : std::as_const(aBulletProps))
+ {
+ if(rProp.Name == "NumberingType")
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(style::NumberingType::CHAR_SPECIAL), rProp.Value.get<sal_Int16>());
+ if(rProp.Name == "LeftMargin")
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(635), rProp.Value.get<sal_Int32>());
+ }
+ }
+ xDocShRef->DoClose();
+}
+
+namespace
+{
+
+bool checkPatternValues(std::vector<sal_uInt8>& rExpected, Bitmap& rBitmap)
+{
+ bool bResult = true;
+
+ const Color aFGColor(0xFF0000);
+ const Color aBGColor(0xFFFFFF);
+
+ Bitmap::ScopedReadAccess pAccess(rBitmap);
+ for (long y = 0; y < pAccess->Height(); ++y)
+ {
+ Scanline pScanline = pAccess->GetScanline( y );
+ for (long x = 0; x < pAccess->Width(); ++x)
+ {
+ Color aColor = pAccess->GetPixelFromData(pScanline, x);
+ sal_uInt8 aValue = rExpected[y*8+x];
+
+ if (aValue == 1 && aColor != aFGColor)
+ bResult = false;
+ else if (aValue == 0 && aColor != aBGColor)
+ bResult = false;
+ }
+ }
+
+ return bResult;
+}
+
+} // end anonymous namespace
+
+bool SdImportTest::checkPattern(sd::DrawDocShellRef const & rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected)
+{
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(nShapeNumber, 0, rDocRef));
+ CPPUNIT_ASSERT_MESSAGE("Not a shape", xShape.is());
+
+ Bitmap aBitmap;
+ if (xShape.is())
+ {
+ uno::Any aBitmapAny = xShape->getPropertyValue("FillBitmap");
+ uno::Reference<awt::XBitmap> xBitmap;
+ if (aBitmapAny >>= xBitmap)
+ {
+ uno::Sequence<sal_Int8> aBitmapSequence(xBitmap->getDIB());
+ SvMemoryStream aBitmapStream(aBitmapSequence.getArray(),
+ aBitmapSequence.getLength(),
+ StreamMode::READ);
+ ReadDIB(aBitmap, aBitmapStream, true);
+ }
+ }
+ CPPUNIT_ASSERT_EQUAL(8L, aBitmap.GetSizePixel().Width());
+ CPPUNIT_ASSERT_EQUAL(8L, aBitmap.GetSizePixel().Height());
+ return checkPatternValues(rExpected, aBitmap);
+}
+
+/* Test checks that importing a PPT file with all supported fill patterns is
+ * correctly imported as a tiled fill bitmap with the expected pattern.
+ */
+void SdImportTest::testPatternImport()
+{
+ sd::DrawDocShellRef xDocRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/ppt/FillPatterns.ppt"), PPT);
+
+ std::vector<sal_uInt8> aExpectedPattern1 = {
+ 1,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPattern2 = {
+ 1,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 1,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPattern3 = {
+ 1,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,0,0,0,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,0,0,0,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPattern4 = {
+ 1,0,0,0,1,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ 1,0,0,0,1,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ 1,0,0,0,1,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ 1,0,0,0,1,0,0,0,
+ 0,0,1,0,0,0,1,0,
+ };
+ std::vector<sal_uInt8> aExpectedPattern5 = {
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 1,0,1,0,1,0,1,0,
+ 0,0,0,1,0,0,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 1,0,1,0,1,0,1,0,
+ 0,0,0,1,0,0,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern6 = {
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,0,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,0,0,1,0,1,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern7 = {
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,0,1,0,1,0,
+ 0,1,0,1,0,1,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern8 = {
+ 1,1,1,0,1,1,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,1,1,0,1,1,
+ 0,1,0,1,0,1,0,1,
+ 1,1,1,0,1,1,1,0,
+ 0,1,0,1,0,1,0,1,
+ 1,0,1,1,1,0,1,1,
+ 0,1,0,1,0,1,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern9 = {
+ 0,1,1,1,0,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ 0,1,1,1,0,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ 0,1,1,1,0,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ 0,1,1,1,0,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern10 = {
+ 0,1,1,1,0,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ 1,1,1,1,1,1,1,1,
+ 0,1,1,1,0,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,0,1,1,1,0,1,
+ 1,1,1,1,1,1,1,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern11 = {
+ 1,1,1,0,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,0,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,0,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,0,
+ 1,1,1,1,1,1,1,1,
+ };
+ std::vector<sal_uInt8> aExpectedPattern12 = {
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,0,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 0,1,1,1,1,1,1,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine1 = {
+ 1,0,0,0,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,0,1,0,0,0,1,
+ 1,0,0,0,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,0,1,0,0,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine2 = {
+ 0,0,0,1,0,0,0,1,
+ 0,0,1,0,0,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 1,0,0,0,1,0,0,0,
+ 0,0,0,1,0,0,0,1,
+ 0,0,1,0,0,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 1,0,0,0,1,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine3 = {
+ 1,1,0,0,1,1,0,0,
+ 0,1,1,0,0,1,1,0,
+ 0,0,1,1,0,0,1,1,
+ 1,0,0,1,1,0,0,1,
+ 1,1,0,0,1,1,0,0,
+ 0,1,1,0,0,1,1,0,
+ 0,0,1,1,0,0,1,1,
+ 1,0,0,1,1,0,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine4 = {
+ 0,0,1,1,0,0,1,1,
+ 0,1,1,0,0,1,1,0,
+ 1,1,0,0,1,1,0,0,
+ 1,0,0,1,1,0,0,1,
+ 0,0,1,1,0,0,1,1,
+ 0,1,1,0,0,1,1,0,
+ 1,1,0,0,1,1,0,0,
+ 1,0,0,1,1,0,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine5 = {
+ 1,1,0,0,0,0,0,1,
+ 1,1,1,0,0,0,0,0,
+ 0,1,1,1,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,0,0,1,1,1,0,0,
+ 0,0,0,0,1,1,1,0,
+ 0,0,0,0,0,1,1,1,
+ 1,0,0,0,0,0,1,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine6 = {
+ 1,0,0,0,0,0,1,1,
+ 0,0,0,0,0,1,1,1,
+ 0,0,0,0,1,1,1,0,
+ 0,0,0,1,1,1,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,1,1,1,0,0,0,0,
+ 1,1,1,0,0,0,0,0,
+ 1,1,0,0,0,0,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine7 = {
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ 1,0,0,0,1,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine8 = {
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine9 = {
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ 0,1,0,1,0,1,0,1,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine10 = {
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine11 = {
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ 1,1,0,0,1,1,0,0,
+ };
+ std::vector<sal_uInt8> aExpectedPatternLine12 = {
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ };
+
+ CPPUNIT_ASSERT_MESSAGE("Pattern1 - 5%" , checkPattern(xDocRef, 0, aExpectedPattern1));
+ CPPUNIT_ASSERT_MESSAGE("Pattern2 - 10%", checkPattern(xDocRef, 1, aExpectedPattern2));
+ CPPUNIT_ASSERT_MESSAGE("Pattern3 - 20%", checkPattern(xDocRef, 2, aExpectedPattern3));
+ CPPUNIT_ASSERT_MESSAGE("Pattern4 - 25%", checkPattern(xDocRef, 3, aExpectedPattern4));
+ CPPUNIT_ASSERT_MESSAGE("Pattern5 - 30%", checkPattern(xDocRef, 4, aExpectedPattern5));
+ CPPUNIT_ASSERT_MESSAGE("Pattern6 - 40%", checkPattern(xDocRef, 5, aExpectedPattern6));
+ CPPUNIT_ASSERT_MESSAGE("Pattern7 - 50%", checkPattern(xDocRef, 6, aExpectedPattern7));
+ CPPUNIT_ASSERT_MESSAGE("Pattern8 - 60%", checkPattern(xDocRef, 7, aExpectedPattern8));
+ CPPUNIT_ASSERT_MESSAGE("Pattern9 - 70%", checkPattern(xDocRef, 8, aExpectedPattern9));
+ CPPUNIT_ASSERT_MESSAGE("Pattern10 - 75%", checkPattern(xDocRef, 9, aExpectedPattern10));
+ CPPUNIT_ASSERT_MESSAGE("Pattern11 - 80%", checkPattern(xDocRef, 10, aExpectedPattern11));
+ CPPUNIT_ASSERT_MESSAGE("Pattern12 - 90%", checkPattern(xDocRef, 11, aExpectedPattern12));
+
+ CPPUNIT_ASSERT_MESSAGE("Pattern13 - Light downward diagonal", checkPattern(xDocRef, 12, aExpectedPatternLine1));
+ CPPUNIT_ASSERT_MESSAGE("Pattern14 - Light upward diagonal", checkPattern(xDocRef, 13, aExpectedPatternLine2));
+ CPPUNIT_ASSERT_MESSAGE("Pattern15 - Dark downward diagonal", checkPattern(xDocRef, 14, aExpectedPatternLine3));
+ CPPUNIT_ASSERT_MESSAGE("Pattern16 - Dark upward diagonal", checkPattern(xDocRef, 15, aExpectedPatternLine4));
+ CPPUNIT_ASSERT_MESSAGE("Pattern17 - Wide downward diagonal", checkPattern(xDocRef, 16, aExpectedPatternLine5));
+ CPPUNIT_ASSERT_MESSAGE("Pattern18 - Wide upward diagonal", checkPattern(xDocRef, 17, aExpectedPatternLine6));
+
+ CPPUNIT_ASSERT_MESSAGE("Pattern19 - Light vertical", checkPattern(xDocRef, 18, aExpectedPatternLine7));
+ CPPUNIT_ASSERT_MESSAGE("Pattern20 - Light horizontal", checkPattern(xDocRef, 19, aExpectedPatternLine8));
+ CPPUNIT_ASSERT_MESSAGE("Pattern21 - Narrow vertical", checkPattern(xDocRef, 20, aExpectedPatternLine9));
+ CPPUNIT_ASSERT_MESSAGE("Pattern22 - Narrow horizontal", checkPattern(xDocRef, 21, aExpectedPatternLine10));
+ CPPUNIT_ASSERT_MESSAGE("Pattern23 - Dark vertical", checkPattern(xDocRef, 22, aExpectedPatternLine11));
+ CPPUNIT_ASSERT_MESSAGE("Pattern24 - Dark horizontal", checkPattern(xDocRef, 23, aExpectedPatternLine12));
+
+ // TODO: other patterns in the test document
+
+ xDocRef->DoClose();
+}
+
+void SdImportTest::testTdf100926()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf100926.pptx"), PPTX);
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ CPPUNIT_ASSERT(pPage != nullptr);
+
+ sdr::table::SdrTableObj *pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObj != nullptr);
+ uno::Reference< table::XCellRange > xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW);
+
+ sal_Int32 nRotation = 0;
+ uno::Reference< beans::XPropertySet > xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(27000), nRotation);
+
+ xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(9000), nRotation);
+
+ xCell.set(xTable->getCellByPosition(2, 0), uno::UNO_QUERY_THROW);
+ xCell->getPropertyValue("RotateAngle") >>= nRotation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nRotation);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf89064()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf89064.pptx"), PPTX);
+ uno::Reference< presentation::XPresentationPage > xPage (getPage(0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference< drawing::XDrawPage > xNotesPage (xPage->getNotesPage(), uno::UNO_SET_THROW);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xNotesPage->getCount());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf108925()
+{
+ // Test document contains bulleting with too small bullet size (1%) which breaks the lower constraint
+ // So it should be converted to the lowest allowed value (25%).
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf108925.odp"), ODP);
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(pPage->GetObj(0));
+ CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(25), pNumFmt->GetNumRule()->GetLevel(0).GetBulletRelSize());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf109067()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109067.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_SET_THROW);
+ awt::Gradient gradient;
+ CPPUNIT_ASSERT(xShape->getPropertyValue("FillGradient") >>= gradient);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(450), gradient.Angle);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf109187()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109187.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xArrow1(getShapeFromPage(0, 0, xDocShRef), uno::UNO_SET_THROW);
+ awt::Gradient aGradient1;
+ CPPUNIT_ASSERT(xArrow1->getPropertyValue("FillGradient") >>= aGradient1);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2250), aGradient1.Angle);
+ uno::Reference< beans::XPropertySet > xArrow2(getShapeFromPage(1, 0, xDocShRef), uno::UNO_SET_THROW);
+ awt::Gradient aGradient2;
+ CPPUNIT_ASSERT(xArrow2->getPropertyValue("FillGradient") >>= aGradient2);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1350), aGradient2.Angle);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf108926()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf108926.ppt"), PPT);
+ uno::Reference< presentation::XPresentationPage > xPage (getPage(0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference< drawing::XDrawPage > xNotesPage (xPage->getNotesPage(), uno::UNO_SET_THROW);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xNotesPage->getCount());
+
+ // Second object should be imported as an empty presentation shape
+ uno::Reference< beans::XPropertySet > xPresentationShape(xNotesPage->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPresentationShape.is());
+ bool bIsEmptyPresObject = false;
+ xPresentationShape->getPropertyValue( "IsEmptyPresentationObject" ) >>= bIsEmptyPresObject;
+ CPPUNIT_ASSERT(bIsEmptyPresObject);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf100065()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf100065.pptx"), PPTX);
+
+ uno::Reference< container::XIndexAccess > xGroupShape1(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xShape1(xGroupShape1->getByIndex(1), uno::UNO_QUERY_THROW);
+ sal_Int32 nAngle1;
+ CPPUNIT_ASSERT(xShape1->getPropertyValue("RotateAngle") >>= nAngle1);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2000), nAngle1);
+
+ uno::Reference< container::XIndexAccess > xGroupShape2(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ uno::Reference< beans::XPropertySet > xShape2(xGroupShape2->getByIndex(0), uno::UNO_QUERY_THROW);
+ sal_Int32 nAngle2;
+ CPPUNIT_ASSERT(xShape2->getPropertyValue("RotateAngle") >>= nAngle2);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(18000), nAngle2);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf90626()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf90626.pptx"), PPTX);
+ const SdrPage *pPage = GetPage(1, xDocShRef);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(pPage->GetObj(1));
+ CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr);
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ for(int i = 0; i < 4; i++)
+ {
+ const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(i).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(long(371), pNumFmt->GetNumRule()->GetLevel(0).GetGraphicSize().getHeight(), long(1));
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf114488()
+{
+ // This doc has two images - one WMF and the other PNG (fallback image).
+ // When loading this doc, the WMF image should be preferred over the PNG image.
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odg/tdf114488.fodg"), FODG);
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_SET_THROW);
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xShape->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT(xGraphic.is());
+ OUString sMimeType(comphelper::GraphicMimeTypeHelper::GetMimeTypeForXGraphic(xGraphic));
+ CPPUNIT_ASSERT_EQUAL(OUString("image/x-wmf"), sMimeType);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf134174()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf134174.pptx"), PPTX);
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_SET_THROW);
+ CPPUNIT_ASSERT(xShape.is());
+
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xShape->getPropertyValue("FillBitmap") >>= xGraphic;
+ CPPUNIT_ASSERT(xGraphic.is());
+
+ Graphic aGraphic(xGraphic);
+ BitmapEx aBitmap(aGraphic.GetBitmapEx());
+ CPPUNIT_ASSERT_EQUAL( Color(9118171), aBitmap.GetPixelColor( 0, 0 ));
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf114913()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf114913.pptx"), PPTX);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(GetPage(1, xDocShRef)->GetObj(1));
+ CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr);
+ const SvxNumBulletItem *pItem = pTxtObj->GetOutlinerParaObject()->GetTextObject().GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pItem);
+ CPPUNIT_ASSERT_EQUAL(long(691), pItem->GetNumRule()->GetLevel(0).GetGraphicSize().getHeight());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf114821()
+{
+ css::uno::Any aAny;
+ sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( "/sd/qa/unit/data/pptx/tdf114821.pptx" ), PPTX );
+
+ uno::Reference< beans::XPropertySet > xPropSet( getShapeFromPage( 0, 0, xDocShRef ) );
+ aAny = xPropSet->getPropertyValue( "Model" );
+ CPPUNIT_ASSERT_MESSAGE( "The shape doesn't have the property", aAny.hasValue() );
+
+ uno::Reference< chart::XChartDocument > xChartDoc;
+ aAny >>= xChartDoc;
+ CPPUNIT_ASSERT_MESSAGE( "failed to load chart", xChartDoc.is() );
+ uno::Reference< chart2::XChartDocument > xChart2Doc( xChartDoc, uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "failed to load chart", xChart2Doc.is() );
+
+ uno::Reference< chart2::XCoordinateSystemContainer > xBCooSysCnt( xChart2Doc->getFirstDiagram(), uno::UNO_QUERY );
+ uno::Sequence< uno::Reference< chart2::XCoordinateSystem > > aCooSysSeq( xBCooSysCnt->getCoordinateSystems() );
+ uno::Reference< chart2::XChartTypeContainer > xCTCnt( aCooSysSeq[0], uno::UNO_QUERY );
+
+ uno::Reference< chart2::XDataSeriesContainer > xDSCnt( xCTCnt->getChartTypes()[0], uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "failed to load data series", xDSCnt.is() );
+ uno::Sequence< uno::Reference< chart2::XDataSeries > > aSeriesSeq( xDSCnt->getDataSeries() );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Invalid Series count", static_cast<sal_Int32>( 1 ), aSeriesSeq.getLength() );
+
+ // These Labels have custom position, so the exported LabelPlacement (reference point) by MSO is OUTSIDE/OUTEND
+ // Check the first label
+ const css::uno::Reference< css::beans::XPropertySet >& rPropSet0( aSeriesSeq[0]->getDataPointByIndex( 0 ) );
+ CPPUNIT_ASSERT( rPropSet0.is() );
+ sal_Int32 aPlacement;
+ rPropSet0->getPropertyValue( "LabelPlacement" ) >>= aPlacement;
+ CPPUNIT_ASSERT_EQUAL( css::chart::DataLabelPlacement::OUTSIDE, aPlacement );
+
+ // Check the second label
+ const css::uno::Reference< css::beans::XPropertySet >& rPropSet1( aSeriesSeq[0]->getDataPointByIndex( 1 ) );
+ CPPUNIT_ASSERT( rPropSet1.is() );
+ rPropSet1->getPropertyValue( "LabelPlacement" ) >>= aPlacement;
+ CPPUNIT_ASSERT_EQUAL( css::chart::DataLabelPlacement::OUTSIDE, aPlacement );
+
+ // Check the third label
+ const css::uno::Reference< css::beans::XPropertySet >& rPropSet2( aSeriesSeq[0]->getDataPointByIndex( 2 ) );
+ CPPUNIT_ASSERT( rPropSet2.is() );
+ rPropSet2->getPropertyValue( "LabelPlacement") >>= aPlacement;
+ CPPUNIT_ASSERT_EQUAL( css::chart::DataLabelPlacement::OUTSIDE, aPlacement );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf115394()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf115394.pptx"), PPTX);
+ double fTransitionDuration;
+
+ // Slow in MS formats
+ SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage1->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
+
+ // Medium in MS formats
+ SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
+ fTransitionDuration = pPage2->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
+
+ // Fast in MS formats
+ SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
+ fTransitionDuration = pPage3->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
+
+ // Custom values
+ SdPage* pPage4 = xDocShRef->GetDoc()->GetSdPage(3, PageKind::Standard);
+ fTransitionDuration = pPage4->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.25, fTransitionDuration);
+
+ SdPage* pPage5 = xDocShRef->GetDoc()->GetSdPage(4, PageKind::Standard);
+ fTransitionDuration = pPage5->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(4.25, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf115394PPT()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf115394.ppt"), PPT);
+ double fTransitionDuration;
+
+ // Fast
+ SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage1->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
+
+ // Medium
+ SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
+ fTransitionDuration = pPage2->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
+
+ // Slow
+ SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
+ fTransitionDuration = pPage3->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf51340()
+{
+ // Line spacing was not inherited from upper levels (slide layout, master slide)
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf51340.pptx"), PPTX);
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 1, 0, xDocShRef ) );
+
+ // First paragraph has a 90% line spacing set on master slide
+ uno::Reference<text::XTextRange> xParagraph( getParagraphFromShape( 0, xShape ) );
+ uno::Reference< beans::XPropertySet > xPropSet( xParagraph, uno::UNO_QUERY_THROW );
+ css::style::LineSpacing aSpacing;
+ xPropSet->getPropertyValue( "ParaLineSpacing" ) >>= aSpacing;
+ CPPUNIT_ASSERT_EQUAL( css::style::LineSpacingMode::PROP, aSpacing.Mode );
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int16>(90), aSpacing.Height );
+
+ // Second paragraph has a 125% line spacing set on slide layout
+ xParagraph.set( getParagraphFromShape( 1, xShape ) );
+ xPropSet.set( xParagraph, uno::UNO_QUERY_THROW );
+ xPropSet->getPropertyValue( "ParaLineSpacing" ) >>= aSpacing;
+ CPPUNIT_ASSERT_EQUAL( css::style::LineSpacingMode::PROP, aSpacing.Mode );
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int16>(125), aSpacing.Height );
+
+ // Third paragraph has a 70% line spacing set directly on normal slide (master slide property is overridden)
+ xParagraph.set( getParagraphFromShape( 2, xShape ) );
+ xPropSet.set( xParagraph, uno::UNO_QUERY_THROW );
+ xPropSet->getPropertyValue( "ParaLineSpacing" ) >>= aSpacing;
+ CPPUNIT_ASSERT_EQUAL( css::style::LineSpacingMode::PROP, aSpacing.Mode );
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int16>(70), aSpacing.Height );
+
+ // Fourth paragraph has a 190% line spacing set directly on normal slide (slide layout property is overridden)
+ xParagraph.set( getParagraphFromShape( 3, xShape ) );
+ xPropSet.set( xParagraph, uno::UNO_QUERY_THROW );
+ xPropSet->getPropertyValue( "ParaLineSpacing" ) >>= aSpacing;
+ CPPUNIT_ASSERT_EQUAL( css::style::LineSpacingMode::PROP, aSpacing.Mode );
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int16>(190), aSpacing.Height );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf116899()
+{
+ // This is a PPT created in Impress and roundtripped in PP, the key times become [1, -1] in PP,
+ // a time of -1 (-1000) in PPT means key times have to be distributed evenly between 0 and 1
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf116899.ppt"), PPT);
+
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+ uno::Reference< animations::XAnimationNodeSupplier > xAnimNodeSupplier(
+ xPage, uno::UNO_QUERY_THROW );
+ uno::Reference< animations::XAnimationNode > xRootNode(
+ xAnimNodeSupplier->getAnimationNode() );
+ std::vector< uno::Reference< animations::XAnimationNode > > aAnimVector;
+ anim::create_deep_vector(xRootNode, aAnimVector);
+ uno::Reference< animations::XAnimate > xNode(
+ aAnimVector[8], uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of key times in the animation node isn't 2.", static_cast<sal_Int32>(2), xNode->getKeyTimes().getLength() );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "First key time in the animation node isn't 0, key times aren't normalized.", 0., xNode->getKeyTimes()[0] );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Second key time in the animation node isn't 1, key times aren't normalized.", 1., xNode->getKeyTimes()[1] );
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf77747()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf77747.ppt"), PPT);
+ CPPUNIT_ASSERT(xDocShRef.is());
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(GetPage(1, xDocShRef)->GetObj(0));
+ CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr);
+ const SvxNumBulletItem *pNumFmt = pTxtObj->GetOutlinerParaObject()->GetTextObject().GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
+ CPPUNIT_ASSERT(pNumFmt);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's suffix is wrong!", OUString("-"), pNumFmt->GetNumRule()->GetLevel(0).GetSuffix() );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's numbering type is wrong!", SVX_NUM_NUMBER_HEBREW,
+ pNumFmt->GetNumRule()->GetLevel(0).GetNumberingType());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf116266()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf116266.odp"), ODP);
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ sfx2::LinkManager* rLinkManager = pDoc->GetLinkManager();
+ // The document contains one SVG stored as a link.
+ CPPUNIT_ASSERT_EQUAL(size_t(1), rLinkManager->GetLinks().size());
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf120028()
+{
+ // Check that the table shape has 4 columns.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf120028.pptx"), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+
+ // This failed, shape was not a table, all text was rendered in a single
+ // column.
+ uno::Reference<beans::XPropertySet> xShape(getShape(0, xPage));
+ uno::Reference<table::XColumnRowRange> xModel(xShape->getPropertyValue("Model"),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xModel.is());
+
+ uno::Reference<table::XTableColumns> xColumns = xModel->getColumns();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xColumns->getCount());
+
+ // Check font size in the A1 cell.
+ uno::Reference<table::XCellRange> xCells(xModel, uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xCell(xCells->getCellByPosition(0, 0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xParagraph(getParagraphFromShape(0, xCell));
+ uno::Reference<text::XTextRange> xRun(getRunFromParagraph(0, xParagraph));
+ uno::Reference<beans::XPropertySet> xPropSet(xRun, uno::UNO_QUERY);
+ double fCharHeight = 0;
+ xPropSet->getPropertyValue("CharHeight") >>= fCharHeight;
+ // This failed, non-scaled height was 13.5.
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(11.5, fCharHeight, 1E-12);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf120028b()
+{
+ // Check that the table shape has 4 columns.
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf120028b.pptx"), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+
+ uno::Reference<beans::XPropertySet> xShape(getShape(0, xPage));
+ CPPUNIT_ASSERT(xShape.is());
+
+ uno::Reference<table::XColumnRowRange> xModel(xShape->getPropertyValue("Model"),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xModel.is());
+
+ uno::Reference<table::XTableColumns> xColumns = xModel->getColumns();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xColumns->getCount());
+
+ // Check font color in the A1 cell.
+ uno::Reference<table::XCellRange> xCells(xModel, uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xCell(xCells->getCellByPosition(0, 0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xParagraph(getParagraphFromShape(0, xCell));
+ uno::Reference<text::XTextRange> xRun(getRunFromParagraph(0, xParagraph));
+ uno::Reference<beans::XPropertySet> xPropSet(xRun, uno::UNO_QUERY);
+ sal_Int32 nCharColor = 0;
+ xPropSet->getPropertyValue("CharColor") >>= nCharColor;
+ // This was 0x1f497d, not white: text list style from placeholder shape
+ // from slide layout was ignored.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xffffff), nCharColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testDescriptionImport()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/altdescription.pptx"), PPTX);
+
+ uno::Reference<beans::XPropertySet> xPropertySet(
+ getShapeFromPage(/*nShape=*/2, /*nPage=*/0, xDocShRef));
+ OUString sDesc;
+
+ xPropertySet->getPropertyValue("Description") >>= sDesc;
+
+ CPPUNIT_ASSERT_EQUAL(OUString("We Can Do It!"), sDesc);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf83247()
+{
+ auto GetPause = [this](const OUString& sSrc, sal_Int32 nFormat) {
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc(sSrc), nFormat);
+ uno::Reference<presentation::XPresentationSupplier> xPresentationSupplier(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPresentationProps(
+ xPresentationSupplier->getPresentation(), uno::UNO_QUERY_THROW);
+
+ auto retVal = xPresentationProps->getPropertyValue("Pause");
+ xDocShRef->DoClose();
+ return retVal.get<sal_Int32>();
+ };
+
+ // 1. Check that presentation:pause attribute is imported correctly
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(10), GetPause("/sd/qa/unit/data/odp/loopPause10.odp", ODP));
+
+ // 2. ODF compliance: if presentation:pause attribute is absent, it must be treated as 0
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), GetPause("/sd/qa/unit/data/odp/loopNoPause.odp", ODP));
+
+ // 3. Import PPT: pause should be 0
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), GetPause("/sd/qa/unit/data/ppt/loopNoPause.ppt", PPT));
+}
+
+void SdImportTest::testTdf47365()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/loopNoPause.pptx"), PPTX);
+ uno::Reference<presentation::XPresentationSupplier> xPresentationSupplier(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPresentationProps(xPresentationSupplier->getPresentation(),
+ uno::UNO_QUERY_THROW);
+
+ const bool bEndlessVal = xPresentationProps->getPropertyValue("IsEndless").get<bool>();
+ const sal_Int32 nPauseVal = xPresentationProps->getPropertyValue("Pause").get<sal_Int32>();
+
+ // Check that we import "loop" attribute of the presentation, and don't introduce any pauses
+ CPPUNIT_ASSERT(bEndlessVal);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nPauseVal);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf122899()
+{
+ // tdf122899 FILEOPEN: ppt: old kind arc from MS Office 97 is broken
+ // Error was, that the path coordinates of a mso_sptArc shape were read as sal_Int16
+ // although they are unsigned 16 bit. This leads to wrong positions of start and end
+ // point and results to a huge shape width in the test document.
+ OUString aSrc="sd/qa/unit/data/ppt/tdf122899_Arc_90_to_91_clockwise.ppt";
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(aSrc), PPT);
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_MESSAGE("Could not get XDrawPagesSupplier", xDrawPagesSupplier.is());
+ uno::Reference<drawing::XDrawPages> xDrawPages(xDrawPagesSupplier->getDrawPages());
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_MESSAGE("Could not get xDrawPage", xDrawPage.is());
+ uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE("Could not get xShape", xShape.is());
+ awt::Rectangle aFrameRect;
+ uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_MESSAGE("Could not get the shape properties", xShapeProps.is());
+ xShapeProps->getPropertyValue(UNO_NAME_MISC_OBJ_FRAMERECT) >>= aFrameRect;
+ // original width is 9cm, add some tolerance
+ CPPUNIT_ASSERT_LESS(static_cast<sal_Int32>(9020), aFrameRect.Width);
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testOOXTheme()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/ooxtheme.pptx"), PPTX);
+
+ uno::Reference<beans::XPropertySet> xPropSet(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Sequence<beans::PropertyValue> aGrabBag;
+ xPropSet->getPropertyValue("InteropGrabBag") >>= aGrabBag;
+
+ bool bTheme = false;
+ for (beans::PropertyValue const & prop : std::as_const(aGrabBag))
+ {
+ if (prop.Name == "OOXTheme")
+ {
+ bTheme = true;
+ uno::Reference<xml::dom::XDocument> aThemeDom;
+ CPPUNIT_ASSERT(prop.Value >>= aThemeDom); // PropertyValue of proper type
+ CPPUNIT_ASSERT(aThemeDom.get()); // Reference not empty
+ }
+ }
+ CPPUNIT_ASSERT(bTheme); // Grab Bag has all the expected elements
+
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testCropToShape()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/crop-to-shape.pptx"), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_MESSAGE("Could not get XDrawPagesSupplier", xDrawPagesSupplier.is());
+ uno::Reference<drawing::XDrawPages> xDrawPages(xDrawPagesSupplier->getDrawPages());
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT_MESSAGE("Could not get xDrawPage", xDrawPage.is());
+ uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString{"com.sun.star.drawing.CustomShape"}, xShape->getShapeType());
+ CPPUNIT_ASSERT_MESSAGE("Could not get xShape", xShape.is());
+ uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY);
+ css::drawing::FillStyle fillStyle;
+ xShapeProps->getPropertyValue("FillStyle") >>= fillStyle;
+ CPPUNIT_ASSERT_EQUAL(css::drawing::FillStyle_BITMAP, fillStyle);
+ css::drawing::BitmapMode bitmapmode;
+ xShapeProps->getPropertyValue("FillBitmapMode") >>= bitmapmode;
+ CPPUNIT_ASSERT_EQUAL(css::drawing::BitmapMode_STRETCH, bitmapmode);
+}
+
+void SdImportTest::testTdf127964()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf127964.pptx"), PPTX);
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ const SdrObject* pObj = pPage->GetObj(0);
+ auto& rFillStyleItem
+ = dynamic_cast<const XFillStyleItem&>(pObj->GetMergedItem(XATTR_FILLSTYLE));
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rFillStyleItem.GetValue());
+
+ auto& rFillColorItem
+ = dynamic_cast<const XFillColorItem&>(pObj->GetMergedItem(XATTR_FILLCOLOR));
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 4294967295
+ // - Actual : 5210557
+ // i.e. instead of transparent (which then got rendered as white), the shape fill color was
+ // blue.
+ CPPUNIT_ASSERT_EQUAL(COL_TRANSPARENT, rFillColorItem.GetColorValue());
+ xDocShRef->DoClose();
+}
+
+void SdImportTest::testTdf106638()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf106638.pptx"), PPTX);
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference<text::XTextRange> const xPara(getParagraphFromShape(1, xShape));
+ uno::Reference<text::XText> xText= xPara->getText();
+ uno::Reference<text::XTextCursor> xTextCursor = xText->createTextCursorByRange(xPara->getStart());
+ uno::Reference<beans::XPropertySet> xPropSet(xTextCursor, uno::UNO_QUERY_THROW );
+ OUString aCharFontName;
+ CPPUNIT_ASSERT(xTextCursor->goRight(1, true));
+ // First character U+f0fe that uses Wingding
+ xPropSet->getPropertyValue("CharFontName") >>= aCharFontName;
+ CPPUNIT_ASSERT_EQUAL(OUString("Wingdings"), aCharFontName);
+
+ // The rest characters that do not use Wingding.
+ CPPUNIT_ASSERT(xTextCursor->goRight(45, true));
+ xPropSet->getPropertyValue("CharFontName") >>= aCharFontName;
+ CPPUNIT_ASSERT(aCharFontName != "Wingdings");
+}
+
+void SdImportTest::testTdf128684()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf128684.pptx"), PPTX);
+ uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDoc.is());
+ uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPage.is());
+ uno::Reference<beans::XPropertySet> xShape(getShape(0, xPage));
+ CPPUNIT_ASSERT(xShape.is());
+ uno::Any aAny = xShape->getPropertyValue("CustomShapeGeometry");
+ CPPUNIT_ASSERT(aAny.hasValue());
+ uno::Sequence<beans::PropertyValue> aProps;
+ CPPUNIT_ASSERT(aAny >>= aProps);
+ sal_Int32 nRotateAngle = 0;
+ for( const auto& rProp : std::as_const(aProps) )
+ {
+ if( rProp.Name == "TextPreRotateAngle")
+ {
+ rProp.Value >>= nRotateAngle;
+ }
+ }
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-90), nRotateAngle);
+}
+
+void SdImportTest::testTdf113198()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf113198.pptx"), PPTX);
+
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ sal_Int16 nParaAdjust = -1;
+ xShape->getPropertyValue("ParaAdjust") >>= nParaAdjust;
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(nParaAdjust));
+}
+
+void SdImportTest::testTdf119187()
+{
+ std::vector< sd::DrawDocShellRef > xDocShRef;
+ // load document
+ xDocShRef.push_back(loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf119187.pptx"), PPTX));
+ // load resaved document
+ xDocShRef.push_back(saveAndReload( xDocShRef.at(0).get(), PPTX ));
+
+ // check documents
+ for (const sd::DrawDocShellRef& xDoc : xDocShRef)
+ {
+ // get shape properties
+ const SdrPage* pPage = GetPage(1, xDoc);
+ CPPUNIT_ASSERT(pPage);
+ SdrObject* pObj = pPage->GetObj(0);
+ CPPUNIT_ASSERT(pObj);
+ const sdr::properties::BaseProperties & rProperties = pObj->GetProperties();
+
+ // check text vertical alignment
+ const SdrTextVertAdjustItem& rSdrTextVertAdjustItem = rProperties.GetItem(SDRATTR_TEXT_VERTADJUST);
+ const SdrTextVertAdjust eTVA = rSdrTextVertAdjustItem.GetValue();
+ CPPUNIT_ASSERT_EQUAL(SDRTEXTVERTADJUST_TOP, eTVA);
+ }
+}
+
+void SdImportTest::testShapeGlowEffectPPTXImpoer()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/shape-glow-effect.pptx"), PPTX);
+
+ uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+ sal_Int32 nRadius = -1;
+ xShape->getPropertyValue("GlowEffectRadius") >>= nRadius;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(388), nRadius); // 139700 EMU = 388.0556 mm/100
+ Color nColor;
+ xShape->getPropertyValue("GlowEffectColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
+ sal_Int16 nTransparency;
+ xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(60), nTransparency);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx
new file mode 100644
index 000000000..216bdb7d0
--- /dev/null
+++ b/sd/qa/unit/misc-tests.cxx
@@ -0,0 +1,886 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <officecfg/Office/Common.hxx>
+#include "sdmodeltestbase.hxx"
+
+#include <com/sun/star/uno/Reference.hxx>
+
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XModel2.hpp>
+
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/drawing/XDrawPages.hpp>
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XShapes.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/frame/XLoadable.hpp>
+
+#include <vcl/scheduler.hxx>
+#include <osl/thread.hxx>
+#include <svx/sdr/table/tablecontroller.hxx>
+#include <sfx2/request.hxx>
+#include <svx/svdpagv.hxx>
+#include <svx/svxids.hrc>
+#include <editeng/eeitem.hxx>
+#include <editeng/adjustitem.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/editobj.hxx>
+#include <SlideSorterViewShell.hxx>
+#include <SlideSorter.hxx>
+#include <controller/SlideSorterController.hxx>
+#include <controller/SlsClipboard.hxx>
+#include <controller/SlsPageSelector.hxx>
+#include <undo/undomanager.hxx>
+#include <GraphicViewShell.hxx>
+#include <chrono>
+#include <sdpage.hxx>
+#include <comphelper/base64.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <LayerTabBar.hxx>
+#include <vcl/window.hxx>
+#include <vcl/event.hxx>
+#include <vcl/keycodes.hxx>
+#include <svx/svdoashp.hxx>
+#include <tools/gen.hxx>
+#include <svx/view3d.hxx>
+#include <svx/scene3d.hxx>
+
+using namespace ::com::sun::star;
+
+/// Impress miscellaneous tests.
+class SdMiscTest : public SdModelTestBaseXML
+{
+public:
+ void testTdf96206();
+ void testTdf96708();
+ void testTdf99396();
+ void testTdf99396TextEdit();
+ void testFillGradient();
+ void testTdf44774();
+ void testTdf38225();
+ void testTdf101242_ODF_no_settings();
+ void testTdf101242_ODF_add_settings();
+ void testTdf101242_settings_keep();
+ void testTdf101242_settings_remove();
+ void testTdf119392();
+ void testTdf67248();
+ void testTdf119956();
+ void testTdf120527();
+ void testTdf98839_ShearVFlipH();
+ void testTdf130988();
+ void testTdf131033();
+ void testTdf129898LayerDrawnInSlideshow();
+
+ CPPUNIT_TEST_SUITE(SdMiscTest);
+ CPPUNIT_TEST(testTdf96206);
+ CPPUNIT_TEST(testTdf96708);
+ CPPUNIT_TEST(testTdf99396);
+ CPPUNIT_TEST(testTdf99396TextEdit);
+ CPPUNIT_TEST(testFillGradient);
+ CPPUNIT_TEST(testTdf44774);
+ CPPUNIT_TEST(testTdf38225);
+ CPPUNIT_TEST(testTdf101242_ODF_no_settings);
+ CPPUNIT_TEST(testTdf101242_ODF_add_settings);
+ CPPUNIT_TEST(testTdf101242_settings_keep);
+ CPPUNIT_TEST(testTdf101242_settings_remove);
+ CPPUNIT_TEST(testTdf119392);
+ CPPUNIT_TEST(testTdf67248);
+ CPPUNIT_TEST(testTdf119956);
+ CPPUNIT_TEST(testTdf120527);
+ CPPUNIT_TEST(testTdf98839_ShearVFlipH);
+ CPPUNIT_TEST(testTdf130988);
+ CPPUNIT_TEST(testTdf131033);
+ CPPUNIT_TEST(testTdf129898LayerDrawnInSlideshow);
+ CPPUNIT_TEST_SUITE_END();
+
+virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
+ {
+ static const struct { char const * pPrefix; char const * pURI; } namespaces[] =
+ {
+ // ODF
+ { "config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"},
+ { "draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" },
+ { "fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" },
+ { "loext", "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" },
+ { "office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0" },
+ { "style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0" },
+ { "svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" },
+ { "text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0" },
+ };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(namespaces); ++i)
+ {
+ xmlXPathRegisterNs(pXmlXPathCtx,
+ reinterpret_cast<xmlChar const *>(namespaces[i].pPrefix),
+ reinterpret_cast<xmlChar const *>(namespaces[i].pURI));
+ }
+ }
+
+private:
+ sd::DrawDocShellRef Load(const OUString& rURL, sal_Int32 nFormat);
+};
+
+sd::DrawDocShellRef SdMiscTest::Load(const OUString& rURL, sal_Int32 nFormat)
+{
+ uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(::comphelper::getProcessComponentContext());
+ CPPUNIT_ASSERT(xDesktop.is());
+
+ // create a frame
+ uno::Reference< frame::XFrame > xTargetFrame = xDesktop->findFrame("_blank", 0);
+ CPPUNIT_ASSERT(xTargetFrame.is());
+
+ // This ContainerWindow corresponds to the outermost window of a running LibreOffice.
+ // It needs a non-zero size and must be shown. Otherwise visible elements like the
+ // LayerTabBar in Draw have zero size and cannot get mouse events.
+ // The here used size is freely chosen.
+ uno::Reference<awt::XWindow> xContainerWindow = xTargetFrame->getContainerWindow();
+ CPPUNIT_ASSERT(xContainerWindow.is());
+ xContainerWindow->setPosSize(0, 0, 1024, 768, awt::PosSize::SIZE);
+ VclPtr<vcl::Window> pContainerWindow = VCLUnoHelper::GetWindow(xContainerWindow);
+ CPPUNIT_ASSERT(pContainerWindow);
+ pContainerWindow->Show(true);
+
+ // 1. Open the document
+ sd::DrawDocShellRef xDocSh = loadURL(rURL, nFormat);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocSh.is());
+
+ uno::Reference< frame::XModel2 > xModel2(xDocSh->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xModel2.is());
+
+ uno::Reference< frame::XController2 > xController = xModel2->createDefaultViewController(xTargetFrame);
+ CPPUNIT_ASSERT(xController.is());
+
+ // introduce model/view/controller to each other
+ xController->attachModel(xModel2.get());
+ xModel2->connectController(xController.get());
+ xTargetFrame->setComponent(xController->getComponentWindow(), xController.get());
+ xController->attachFrame(xTargetFrame);
+ xModel2->setCurrentController(xController.get());
+
+ sd::ViewShell *pViewShell = xDocSh->GetViewShell();
+ CPPUNIT_ASSERT(pViewShell);
+
+ // Draw has no slidesorter, Impress never shows a LayerTabBar
+ if (sd::ViewShell::ST_DRAW == pViewShell->GetShellType())
+ {
+ sd::LayerTabBar* pLayerTabBar = static_cast<sd::GraphicViewShell*>(pViewShell)->GetLayerTabControl();
+ CPPUNIT_ASSERT(pLayerTabBar);
+ pLayerTabBar->StateChanged(StateChangedType::InitShow);
+ }
+ else
+ {
+ sd::slidesorter::SlideSorterViewShell* pSSVS = nullptr;
+ for (int i = 0; i < 1000; i++)
+ {
+ // Process all Tasks - slide sorter is created here
+ while (Scheduler::ProcessTaskScheduling());
+ if ((pSSVS = sd::slidesorter::SlideSorterViewShell::GetSlideSorter(pViewShell->GetViewShellBase())) != nullptr)
+ break;
+ osl::Thread::wait(std::chrono::milliseconds(100));
+ }
+ CPPUNIT_ASSERT(pSSVS);
+ }
+
+ return xDocSh;
+}
+
+void SdMiscTest::testTdf96206()
+{
+ // Copying/pasting slide referring to a non-default master with a text duplicated the master
+
+ sd::DrawDocShellRef xDocSh = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf96206.odp"), ODP);
+ sd::ViewShell *pViewShell = xDocSh->GetViewShell();
+ auto pSSVS = sd::slidesorter::SlideSorterViewShell::GetSlideSorter(pViewShell->GetViewShellBase());
+ auto& rSSController = pSSVS->GetSlideSorter().GetController();
+
+ const sal_uInt16 nMasterPageCnt1 = xDocSh->GetDoc()->GetMasterSdPageCount(PageKind::Standard);
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(2), nMasterPageCnt1);
+ rSSController.GetClipboard().DoCopy();
+ rSSController.GetClipboard().DoPaste();
+ const sal_uInt16 nMasterPageCnt2 = xDocSh->GetDoc()->GetMasterSdPageCount(PageKind::Standard);
+ CPPUNIT_ASSERT_EQUAL(nMasterPageCnt1, nMasterPageCnt2);
+
+ xDocSh->DoClose();
+}
+
+void SdMiscTest::testTdf96708()
+{
+ sd::DrawDocShellRef xDocSh = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf96708.odp"), ODP);
+ sd::ViewShell *pViewShell = xDocSh->GetViewShell();
+ auto pSSVS = sd::slidesorter::SlideSorterViewShell::GetSlideSorter(pViewShell->GetViewShellBase());
+ auto& rSSController = pSSVS->GetSlideSorter().GetController();
+ auto& rPageSelector = rSSController.GetPageSelector();
+
+ const sal_uInt16 nMasterPageCnt1 = xDocSh->GetDoc()->GetMasterSdPageCount(PageKind::Standard);
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(4), nMasterPageCnt1);
+ rPageSelector.SelectAllPages();
+ rSSController.GetClipboard().DoCopy();
+
+ // Now wait for timers to trigger creation of auto-layout
+ osl::Thread::wait(std::chrono::milliseconds(100));
+ Scheduler::ProcessTaskScheduling();
+
+ rSSController.GetClipboard().DoPaste();
+ const sal_uInt16 nMasterPageCnt2 = xDocSh->GetDoc()->GetMasterSdPageCount(PageKind::Standard);
+ CPPUNIT_ASSERT_EQUAL(nMasterPageCnt1, nMasterPageCnt2);
+
+ xDocSh->DoClose();
+}
+
+void SdMiscTest::testTdf99396()
+{
+ // Load the document and select the table.
+ sd::DrawDocShellRef xDocSh = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf99396.odp"), ODP);
+ sd::ViewShell *pViewShell = xDocSh->GetViewShell();
+ SdPage* pPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+
+ // Make sure that the undo stack is empty.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount());
+
+ // Set the vertical alignment of the cells to bottom.
+ sdr::table::SvxTableController* pTableController = dynamic_cast<sdr::table::SvxTableController*>(pView->getSelectionController().get());
+ CPPUNIT_ASSERT(pTableController);
+ SfxRequest aRequest(pViewShell->GetViewFrame(), SID_TABLE_VERT_BOTTOM);
+ pTableController->Execute(aRequest);
+ // This was 0, it wasn't possible to undo a vertical alignment change.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount());
+
+ xDocSh->DoClose();
+}
+
+void SdMiscTest::testTdf99396TextEdit()
+{
+ // Load the document and select the table.
+ sd::DrawDocShellRef xDocSh = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf99396.odp"), ODP);
+ sd::ViewShell* pViewShell = xDocSh->GetViewShell();
+ SdPage* pPage = pViewShell->GetActualPage();
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTableObject, pView->GetSdrPageView());
+
+ // Make sure that the undo stack is empty.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount());
+
+ // Set horizontal and vertical adjustment during text edit.
+ pView->SdrBeginTextEdit(pTableObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ {
+ SfxRequest aRequest(pViewShell->GetViewFrame(), SID_ATTR_PARA_ADJUST_RIGHT);
+ SfxItemSet aEditAttr(xDocSh->GetDoc()->GetPool());
+ pView->GetAttributes(aEditAttr);
+ SfxItemSet aNewAttr(*(aEditAttr.GetPool()), aEditAttr.GetRanges());
+ aNewAttr.Put(SvxAdjustItem(SvxAdjust::Right, EE_PARA_JUST));
+ aRequest.Done(aNewAttr);
+ const SfxItemSet* pArgs = aRequest.GetArgs();
+ pView->SetAttributes(*pArgs);
+ }
+ {
+ auto pTableController = dynamic_cast<sdr::table::SvxTableController*>(pView->getSelectionController().get());
+ CPPUNIT_ASSERT(pTableController);
+ SfxRequest aRequest(pViewShell->GetViewFrame(), SID_TABLE_VERT_BOTTOM);
+ pTableController->Execute(aRequest);
+ }
+ pView->SdrEndTextEdit();
+
+ // Check that the result is what we expect.
+ {
+ uno::Reference<table::XTable> xTable = pTableObject->getTable();
+ uno::Reference<beans::XPropertySet> xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY);
+ drawing::TextVerticalAdjust eAdjust = xCell->getPropertyValue("TextVerticalAdjust").get<drawing::TextVerticalAdjust>();
+ CPPUNIT_ASSERT_EQUAL(int(drawing::TextVerticalAdjust_BOTTOM), static_cast<int>(eAdjust));
+ }
+ {
+ const EditTextObject& rEdit = pTableObject->getText(0)->GetOutlinerParaObject()->GetTextObject();
+ const SfxItemSet& rParaAttribs = rEdit.GetParaAttribs(0);
+ auto pAdjust = rParaAttribs.GetItem(EE_PARA_JUST);
+ CPPUNIT_ASSERT_EQUAL(SvxAdjust::Right, pAdjust->GetAdjust());
+ }
+
+ // Now undo.
+ xDocSh->GetUndoManager()->Undo();
+
+ // Check again that the result is what we expect.
+ {
+ uno::Reference<table::XTable> xTable = pTableObject->getTable();
+ uno::Reference<beans::XPropertySet> xCell(xTable->getCellByPosition(0, 0), uno::UNO_QUERY);
+ drawing::TextVerticalAdjust eAdjust = xCell->getPropertyValue("TextVerticalAdjust").get<drawing::TextVerticalAdjust>();
+ // This failed: Undo() did not change it from drawing::TextVerticalAdjust_BOTTOM.
+ CPPUNIT_ASSERT_EQUAL(int(drawing::TextVerticalAdjust_TOP), static_cast<int>(eAdjust));
+ }
+ {
+ const EditTextObject& rEdit = pTableObject->getText(0)->GetOutlinerParaObject()->GetTextObject();
+ const SfxItemSet& rParaAttribs = rEdit.GetParaAttribs(0);
+ auto pAdjust = rParaAttribs.GetItem(EE_PARA_JUST);
+ CPPUNIT_ASSERT_EQUAL(SvxAdjust::Center, pAdjust->GetAdjust());
+ }
+
+
+ /*
+ * now test tdf#103950 - Undo does not revert bundled font size changes for table cells
+ */
+ pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0));
+ pView->MarkObj(pTableObject, pView->GetSdrPageView()); // select table
+ {
+ SfxRequest aRequest(pViewShell->GetViewFrame(), SID_GROW_FONT_SIZE);
+ static_cast<sd::DrawViewShell*>(pViewShell)->ExecChar(aRequest);
+ }
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount());
+
+
+ xDocSh->DoClose();
+}
+
+void SdMiscTest::testFillGradient()
+{
+ ::sd::DrawDocShellRef xDocShRef = new ::sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Impress);
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier = getDoc( xDocShRef );
+ uno::Reference<drawing::XDrawPages> xDrawPages = xDrawPagesSupplier->getDrawPages();
+ // Insert a new page.
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->insertNewByIndex(0), uno::UNO_SET_THROW );
+ uno::Reference<drawing::XShapes> xShapes(xDrawPage,uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiServiceFactory> const xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY);
+ // Create a rectangle
+ uno::Reference<drawing::XShape> xShape1(xDoc->createInstance("com.sun.star.drawing.RectangleShape"),uno::UNO_QUERY_THROW );
+ uno::Reference<beans::XPropertySet> xPropSet(xShape1, uno::UNO_QUERY_THROW);
+ // Set FillStyle and FillGradient
+ awt::Gradient aGradient;
+ aGradient.StartColor = sal_Int32(Color(255, 0, 0));
+ aGradient.EndColor = sal_Int32(Color(0, 255, 0));
+ xPropSet->setPropertyValue("FillStyle", uno::makeAny(drawing::FillStyle_GRADIENT));
+ xPropSet->setPropertyValue("FillGradient", uno::makeAny(aGradient));
+ // Add the rectangle to the page.
+ xShapes->add(xShape1);
+
+ // Retrieve the shape and check FillStyle and FillGradient
+ uno::Reference<container::XIndexAccess> xIndexAccess(xDrawPage, uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet > xPropSet2(xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW);
+ drawing::FillStyle eFillStyle;
+ awt::Gradient aGradient2;
+ CPPUNIT_ASSERT(xPropSet2->getPropertyValue("FillStyle") >>= eFillStyle);
+ CPPUNIT_ASSERT_EQUAL(int(drawing::FillStyle_GRADIENT), static_cast<int>(eFillStyle));
+ CPPUNIT_ASSERT(xPropSet2->getPropertyValue("FillGradient") >>= aGradient2);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(Color(255, 0, 0)),aGradient2.StartColor);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(Color(0, 255, 0)),aGradient2.EndColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf44774()
+{
+ sd::DrawDocShellRef xDocShRef = new sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false,
+ DocumentType::Draw);
+ const uno::Reference<frame::XLoadable> xLoadable(xDocShRef->GetModel(), uno::UNO_QUERY_THROW);
+ xLoadable->initNew();
+ SfxStyleSheetBasePool* pSSPool = xDocShRef->GetStyleSheetPool();
+
+ // Create a new style with an empty name, like what happens in UI when creating a new style
+ SfxStyleSheetBase& rStyleA = pSSPool->Make("", SfxStyleFamily::Para, SfxStyleSearchBits::UserDefined);
+ // Assign a new name, which does not yet set its ApiName
+ rStyleA.SetName("StyleA");
+ // Create another style
+ SfxStyleSheetBase& rStyleB = pSSPool->Make("StyleB", SfxStyleFamily::Para, SfxStyleSearchBits::UserDefined);
+ // ... and set its parent to the first one
+ rStyleB.SetParent("StyleA");
+
+ // Now save the file and reload
+ xDocShRef = saveAndReload(xDocShRef.get(), ODG);
+ pSSPool = xDocShRef->GetStyleSheetPool();
+
+ SfxStyleSheetBase* pStyle = pSSPool->Find("StyleB", SfxStyleFamily::Para);
+ CPPUNIT_ASSERT(pStyle);
+ // The parent set in StyleB used to reset, because parent style's msApiName was empty
+ CPPUNIT_ASSERT_EQUAL(OUString("StyleA"), pStyle->GetParent());
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf38225()
+{
+ sd::DrawDocShellRef xDocShRef = new sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false,
+ DocumentType::Draw);
+ const uno::Reference<frame::XLoadable> xLoadable(xDocShRef->GetModel(), uno::UNO_QUERY_THROW);
+ xLoadable->initNew();
+ SfxStyleSheetBasePool* pSSPool = xDocShRef->GetStyleSheetPool();
+
+ // Create a new style with a name
+ pSSPool->Make("StyleWithName1", SfxStyleFamily::Para, SfxStyleSearchBits::UserDefined);
+
+ // Now save the file and reload
+ xDocShRef = saveAndReload(xDocShRef.get(), ODG);
+ pSSPool = xDocShRef->GetStyleSheetPool();
+
+ SfxStyleSheetBase* pStyle = pSSPool->Find("StyleWithName1", SfxStyleFamily::Para);
+ CPPUNIT_ASSERT(pStyle);
+
+ // Rename the style
+ CPPUNIT_ASSERT(pStyle->SetName("StyleWithName2"));
+
+ // Save the file and reload again
+ xDocShRef = saveAndReload(xDocShRef.get(), ODG);
+ pSSPool = xDocShRef->GetStyleSheetPool();
+
+ // The problem was that the style kept the old name upon reloading
+ pStyle = pSSPool->Find("StyleWithName1", SfxStyleFamily::Para);
+ CPPUNIT_ASSERT(!pStyle);
+ pStyle = pSSPool->Find("StyleWithName2", SfxStyleFamily::Para);
+ CPPUNIT_ASSERT(pStyle);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf120527()
+{
+ sd::DrawDocShellRef xDocShRef
+ = new sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Draw);
+ uno::Reference<frame::XLoadable> xLoadable(xDocShRef->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xLoadable.is());
+ xLoadable->initNew();
+
+ // Load a bitmap into the bitmap table.
+ uno::Reference<lang::XMultiServiceFactory> xFactory(xDocShRef->GetModel(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFactory.is());
+ uno::Reference<container::XNameContainer> xBitmaps(
+ xFactory->createInstance("com.sun.star.drawing.BitmapTable"), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xBitmaps.is());
+ OUString aGraphicURL = m_directories.getURLFromSrc("/sd/qa/unit/data/tdf120527.jpg");
+ xBitmaps->insertByName("test", uno::makeAny(aGraphicURL));
+
+ // Create a graphic.
+ uno::Reference<drawing::XShape> xShape(
+ xFactory->createInstance("com.sun.star.drawing.GraphicObjectShape"), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xShape.is());
+ uno::Reference<beans::XPropertySet> xShapeProperySet(xShape, uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xShapeProperySet.is());
+ xShapeProperySet->setPropertyValue("GraphicURL", xBitmaps->getByName("test"));
+
+ // Insert it.
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xDocShRef->GetModel(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDrawPagesSupplier.is());
+ uno::Reference<drawing::XDrawPages> xDrawPages = xDrawPagesSupplier->getDrawPages();
+ CPPUNIT_ASSERT(xDrawPages.is());
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xDrawPage.is());
+ // This failed with a lang.IllegalArgumentException.
+ xDrawPage->add(xShape);
+
+ // Verify that the graphic was actually consumed.
+ uno::Reference<graphic::XGraphic> xGraphic;
+ xShapeProperySet->getPropertyValue("Graphic") >>= xGraphic;
+ CPPUNIT_ASSERT(xGraphic.is());
+
+ xDocShRef->DoClose();
+}
+
+/// Draw miscellaneous tests.
+
+// Since LO 6.2 the visible/printable/locked information for layers is always
+// written as ODF attributes draw:display and draw:protected. It is only read from
+// there, if the config items VisibleLayers, PrintableLayers and LockedLayers do
+// not exist. The user option WriteLayerStateAsConfigItem can be set to 'true' to
+// write these config items in addition to the ODF attributes for to produce
+// documents for older LO versions or Apache OpenOffice. With value 'false' no
+// config items are written. The 'testTdf101242_xyz' tests combine source
+// files with and without config items with option values 'true' and 'false'.
+
+void SdMiscTest::testTdf101242_ODF_add_settings()
+{
+ // Loads a document, which has the visible/printable/locked information for layers
+ // only in the ODF attributes draw:display and draw:protected. The resaved document
+ // should still have the ODF attributes and in addition the config items in settings.xml.
+ // "Load" is needed for to handle layers, simple "loadURL" does not work.
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf101242_ODF.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+
+ // Saving including items in settings.xml
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::Misc::WriteLayerStateAsConfigItem::set(true, pBatch);
+ pBatch->commit();
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile );
+
+ // Verify, that the saved document still has the ODF attributes
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "styles.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='controls' and @draw:display='screen']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='measurelines' and @draw:display='printer']");
+
+ // Verify, that the saved document has got the items in settings.xml
+ xmlDocUniquePtr pXmlDoc2 = parseExport(aTempFile, "settings.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
+ const OString sPathStart2("/office:document-settings/office:settings/config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry");
+ // Value is a bitfield with first Byte in order '* * * measurelines controls backgroundobjects background layout'
+ // The first three bits depend on initialization and may change. The values in file are Base64 encoded.
+ OUString sBase64;
+ uno::Sequence<sal_Int8> aDecodedSeq;
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item VisibleLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x0F, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F );
+
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item PrintableLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x17, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F);
+
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item LockedLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x04, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf101242_ODF_no_settings()
+{
+ // Loads a document, which has the visible/printable/locked information for layers
+ // only in the ODF attributes draw:display and draw:protected. The resave document
+ // should have only the ODF attributes and no config items in settings.xml.
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf101242_ODF.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+
+ // Saving without items in settings.xml
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::Misc::WriteLayerStateAsConfigItem::set(false, pBatch);
+ pBatch->commit();
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile );
+
+ // Verify, that the saved document still has the ODF attributes
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "styles.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='controls' and @draw:display='screen']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='measurelines' and @draw:display='printer']");
+
+ // Verify, that the saved document has no layer items in settings.xml
+ xmlDocUniquePtr pXmlDoc2 = parseExport(aTempFile, "settings.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
+ const OString sPathStart2("/office:document-settings/office:settings/config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry");
+ xmlXPathObjectPtr pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+ pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+ pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf101242_settings_keep()
+{
+ // Loads a document, which has the visible/printable/locked information for layers
+ // only in the config items in settings.xml. That is the case for all old documents.
+ // The resaved document should have the ODF attributes draw:display and draw:protected
+ // and should still have these config items in settings.xml.
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf101242_settings.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+
+ // Saving including items in settings.xml
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::Misc::WriteLayerStateAsConfigItem::set(true, pBatch);
+ pBatch->commit();
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile );
+
+ // Verify, that the saved document has the ODF attributes
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "styles.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='controls' and @draw:display='screen']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='measurelines' and @draw:display='printer']");
+
+ // Verify, that the saved document still has the items in settings.xml
+ xmlDocUniquePtr pXmlDoc2 = parseExport(aTempFile, "settings.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
+ const OString sPathStart2("/office:document-settings/office:settings/config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry");
+ // Value is a bitfield with first Byte in order '* * * measurelines controls backgroundobjects background layout'
+ // The first three bits depend on initialization and may change. The values in file are Base64 encoded.
+ OUString sBase64;
+ uno::Sequence<sal_Int8> aDecodedSeq;
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item VisibleLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x0F, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F );
+
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item PrintableLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x17, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F);
+
+ sBase64 = getXPathContent(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item LockedLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x04, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0x1F);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf101242_settings_remove()
+{
+ // Loads a document, which has the visible/printable/locked information for layers
+ // only in the config items in settings.xml. That is the case for all old documents.
+ // The resaved document should have only the ODF attributes draw:display and draw:protected
+ // and should have no config items in settings.xml.
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf101242_settings.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+
+ // Saving without config items in settings.xml
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::Misc::WriteLayerStateAsConfigItem::set(false, pBatch);
+ pBatch->commit();
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile );
+
+ // Verify, that the saved document has the ODF attributes
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "styles.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='controls' and @draw:display='screen']");
+ assertXPath(pXmlDoc, sPathStart + "[@draw:name='measurelines' and @draw:display='printer']");
+
+ // Verify, that the saved document has no layer items in settings.xml
+ xmlDocUniquePtr pXmlDoc2 = parseExport(aTempFile, "settings.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
+ const OString sPathStart2("/office:document-settings/office:settings/config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry");
+ xmlXPathObjectPtr pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+ pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+ pXmlObj=getXPathNode(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']");
+ CPPUNIT_ASSERT_EQUAL(0, xmlXPathNodeSetGetLength(pXmlObj->nodesetval));
+ xmlXPathFreeObject(pXmlObj);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf119392()
+{
+ // Loads a document which has two user layers "V--" and "V-L". Inserts a new layer "-P-" between them.
+ // Checks, that the bitfields in the saved file have the bits in the correct order, in case
+ // option WriteLayerAsConfigItem is true and the config items are written.
+ std::shared_ptr<comphelper::ConfigurationChanges> batch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::Misc::WriteLayerStateAsConfigItem::set(true, batch);
+ batch->commit();
+
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("sd/qa/unit/data/tdf119392_InsertLayer.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+ // Insert layer "-P-", not visible, printable, not locked
+ SdrView* pView = xDocShRef -> GetViewShell()->GetView();
+ pView -> InsertNewLayer("-P-", 6); // 0..4 standard layer, 5 layer "V--"
+ SdrPageView* pPageView = pView -> GetSdrPageView();
+ pPageView -> SetLayerVisible("-P-", false);
+ pPageView -> SetLayerPrintable("-P-", true);
+ pPageView -> SetLayerLocked("-P-", false);
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile );
+
+ // Verify correct bit order in bitfield in the config items in settings.xml
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "settings.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-settings/office:settings/config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry");
+ // First Byte is in order 'V-L -P- V-- measurelines controls backgroundobjects background layout'
+ // Bits need to be: visible=10111111=0xbf=191 printable=01011111=0x5f=95 locked=10000000=0x80=128
+ // The values in file are Base64 encoded.
+ OUString sBase64;
+ uno::Sequence<sal_Int8> aDecodedSeq;
+ sBase64 = getXPathContent(pXmlDoc, sPathStart + "/config:config-item[@config:name='VisibleLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item VisibleLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0xbF, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0xff); // & 0xff forces unambiguous types for CPPUNIT_ASSERT_EQUAL
+
+ sBase64 = getXPathContent(pXmlDoc, sPathStart + "/config:config-item[@config:name='PrintableLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item PrintableLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x5f, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0xff);
+
+ sBase64 = getXPathContent(pXmlDoc, sPathStart + "/config:config-item[@config:name='LockedLayers']");
+ CPPUNIT_ASSERT_MESSAGE( "Item LockedLayers does not exists.", !sBase64.isEmpty());
+ comphelper::Base64::decode(aDecodedSeq, sBase64);
+ CPPUNIT_ASSERT_EQUAL( 0x80, static_cast<sal_uInt8>(aDecodedSeq[0]) & 0xff);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf67248()
+{
+ // The document tdf67248.odg has been created with a German UI. It has a user layer named "Background".
+ // On opening the user layer must still exists. The error was, that it was merged into the standard
+ // layer "background".
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("sd/qa/unit/data/tdf67248.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+ SdrLayerAdmin& rLayerAdmin = xDocShRef->GetDoc()->GetLayerAdmin();
+ CPPUNIT_ASSERT_EQUAL( sal_uInt16(6), rLayerAdmin.GetLayerCount());
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf119956()
+{
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc("sd/qa/unit/data/tdf119956.odg"), ODG);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+ sd::GraphicViewShell* pGraphicViewShell = static_cast<sd::GraphicViewShell*>(xDocShRef -> GetViewShell());
+ CPPUNIT_ASSERT(pGraphicViewShell);
+ sd::LayerTabBar* pLayerTabBar = pGraphicViewShell->GetLayerTabControl();
+ CPPUNIT_ASSERT(pLayerTabBar);
+
+ // Alt+Click sets a tab in edit mode, so that you can rename it.
+ // The error was, that Alt+Click on a tab, which was not the current tab, did not set the clicked tab
+ // as current tab. As a result, the entered text was applied to the wrong tab.
+
+ // The test document has the layer tabs "layout", "controls", "measurelines" and "Layer4" in this order
+ // The "pagePos" is 0, 1, 2, 3
+ // Make sure, that tab "layout" is the current tab.
+ MouseEvent aSyntheticMouseEvent;
+ if (pLayerTabBar->GetCurPagePos() != 0)
+ {
+ sal_uInt16 nIdOfTabPos0(pLayerTabBar->GetPageId(0));
+ tools::Rectangle aTabPos0Rect(pLayerTabBar->GetPageRect(nIdOfTabPos0));
+ aSyntheticMouseEvent = MouseEvent(aTabPos0Rect.Center(), 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, 0);
+ pLayerTabBar->MouseButtonDown(aSyntheticMouseEvent);
+ }
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(0), pLayerTabBar->GetCurPagePos());
+
+ // Alt+Click on tab "Layer4"
+ sal_uInt16 nIdOfTabPos3(pLayerTabBar->GetPageId(3));
+ tools::Rectangle aTabPos3Rect(pLayerTabBar->GetPageRect(nIdOfTabPos3));
+ aSyntheticMouseEvent = MouseEvent(aTabPos3Rect.Center(), 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, KEY_MOD2);
+ pLayerTabBar->MouseButtonDown(aSyntheticMouseEvent);
+
+ // Make sure, tab 3 is current tab now.
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(3), pLayerTabBar->GetCurPagePos());
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf98839_ShearVFlipH()
+{
+ // Loads a document with a sheared shape and mirrors it
+ const OUString sURL = "sd/qa/unit/data/tdf98839_ShearVFlipH.odg";
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc(sURL), ODG);
+ sd::GraphicViewShell* pViewShell = static_cast<sd::GraphicViewShell*>(xDocShRef->GetViewShell());
+ SdPage* pPage = pViewShell->GetActualPage();
+ SdrObjCustomShape* pShape = static_cast<SdrObjCustomShape*>(pPage->GetObj(0));
+ pShape->Mirror(Point(4000, 2000), Point(4000, 10000));
+
+ // Save and examine attribute draw:transform
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ save(xDocShRef.get(), getFormat(ODG), aTempFile);
+ xmlDocUniquePtr pXmlDoc = parseExport(aTempFile, "content.xml");
+ CPPUNIT_ASSERT_MESSAGE("Failed to get 'content.xml'", pXmlDoc);
+ const OString sPathStart("/office:document-content/office:body/office:drawing/draw:page");
+ assertXPath(pXmlDoc, sPathStart);
+ const OUString sTransform = getXPath(pXmlDoc, sPathStart + "/draw:custom-shape","transform");
+
+ // Error was, that the shear angle had a wrong sign.
+ CPPUNIT_ASSERT_MESSAGE("expected: draw:transform='skewX (-0.64350...)", sTransform.startsWith("skewX (-"));
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf130988()
+{
+ const OUString sURL("sd/qa/unit/data/tdf130988_3D_create_lathe.odg");
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc(sURL), ODG);
+
+ //emulate command .uno:ConvertInto3DLathe
+ sd::ViewShell* pViewShell = xDocShRef->GetViewShell();
+ E3dView* pView = dynamic_cast<E3dView*>(pViewShell->GetView());
+ pView->MarkNextObj();
+ pView->ConvertMarkedObjTo3D(false, basegfx::B2DPoint(8000.0, -3000.0), basegfx::B2DPoint(3000.0, -8000.0));
+ E3dScene* pObj = dynamic_cast<E3dScene*>(pView->GetMarkedObjectByIndex(0));
+ CPPUNIT_ASSERT(pObj);
+
+ // Error was, that the created 3D object had a wrong path. Instead examining
+ // the path directly, I use the scene distance, because that is easier. The
+ // scene distance is calculated from the object while creating.
+ const double fDistance = pObj->GetDistance();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("D3DSceneDistance", 7071.0, fDistance, 0.5);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf131033()
+{
+ const OUString sURL("sd/qa/unit/data/tdf131033_3D_SceneSizeIn2d.odg");
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc(sURL), ODG);
+
+ // The document contains a polygon, so that emulate command .uno:ConvertInto3DLathe
+ // by direct call of ConvertMarkedObjTo3D works.
+ // It produces a rotation around a vertical axis, which is far away from the
+ // generating shape.
+ sd::ViewShell* pViewShell = xDocShRef->GetViewShell();
+ E3dView* pView = dynamic_cast<E3dView*>(pViewShell->GetView());
+ pView->MarkNextObj();
+ pView->ConvertMarkedObjTo3D(false, basegfx::B2DPoint(11000.0, -5000.0), basegfx::B2DPoint(11000.0, -9000.0));
+ E3dScene* pObj = dynamic_cast<E3dScene*>(pView->GetMarkedObjectByIndex(0));
+ CPPUNIT_ASSERT(pObj);
+
+ // Error was, that the 2D representation of the scene did not contain the default 20°
+ // rotation of the new scene around x-axis and therefore was not high enough.
+ const double fSnapRectHeight = pObj->GetSnapRect().getHeight();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("2D height", 7096.0, fSnapRectHeight, 1.0);
+
+ xDocShRef->DoClose();
+}
+
+void SdMiscTest::testTdf129898LayerDrawnInSlideshow()
+{
+ // Versions LO 6.2 to 6.4 have produced files, where the layer DrawnInSlideshow has
+ // got visible=false and printable=false attributes. Those files should be repaired now.
+ const OUString sURL = "sd/qa/unit/data/tdf129898_faulty_DrawnInSlideshow.odp";
+ sd::DrawDocShellRef xDocShRef = Load(m_directories.getURLFromSrc(sURL), ODP);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load file.", xDocShRef.is());
+
+ // Verify model
+ const OUString sName = "DrawnInSlideshow";
+ SdrLayerAdmin& rLayerAdmin = xDocShRef->GetDoc()->GetLayerAdmin();
+ SdrLayer* pLayer = rLayerAdmin.GetLayer(sName);
+ CPPUNIT_ASSERT_MESSAGE("No layer DrawnInSlideshow", pLayer);
+ CPPUNIT_ASSERT(pLayer->IsVisibleODF() && pLayer->IsPrintableODF());
+
+ // Verify view
+ sd::DrawViewShell* pViewShell = static_cast<sd::DrawViewShell*>(xDocShRef->GetViewShell());
+ SdrPageView* pPageView = pViewShell->GetView()->GetSdrPageView();
+ CPPUNIT_ASSERT(pPageView->IsLayerVisible(sName) && pPageView->IsLayerPrintable(sName));
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdMiscTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx
new file mode 100644
index 000000000..9cdb3214f
--- /dev/null
+++ b/sd/qa/unit/sdmodeltestbase.hxx
@@ -0,0 +1,490 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_SD_QA_UNIT_SDMODELTESTBASE_HXX
+#define INCLUDED_SD_QA_UNIT_SDMODELTESTBASE_HXX
+
+#include <memory>
+#include <test/bootstrapfixture.hxx>
+#include <test/xmldiff.hxx>
+#include <test/xmltesttools.hxx>
+
+#include <unotest/filters-test.hxx>
+#include <unotest/macros_test.hxx>
+
+#include <drawdoc.hxx>
+#include <DrawDocShell.hxx>
+#include <GraphicDocShell.hxx>
+#include <unotools/tempfile.hxx>
+#include <unotools/ucbstreamhelper.hxx>
+#include <tools/color.hxx>
+#include <comphelper/fileformat.h>
+#include <comphelper/processfactory.hxx>
+#include <o3tl/safeint.hxx>
+#include <rtl/strbuf.hxx>
+#include <sfx2/docfile.hxx>
+#include <sfx2/docfilt.hxx>
+#include <svl/itemset.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/packages/zip/ZipFileAccess.hpp>
+#include <drawinglayer/XShapeDumper.hxx>
+#include <com/sun/star/text/XTextField.hpp>
+
+using namespace ::com::sun::star;
+
+struct FileFormat
+{
+ const char* pName;
+ const char* pFilterName;
+ const char* pTypeName;
+ const char* pUserData;
+ SfxFilterFlags nFormatType;
+};
+
+// These values are taken from "Flags" in filter/source/config/fragments/filters/*
+// You need to turn value of oor:name="Flags" to SfxFilterFlags::*, see
+// include/comphelper/documentconstants.hxx for the possible values.
+// Note: 3RDPARTYFILTER == SfxFilterFlags::STARONEFILTER
+#define ODP_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::TEMPLATE | SfxFilterFlags::OWN | SfxFilterFlags::DEFAULT | SfxFilterFlags::ENCRYPTION | SfxFilterFlags::PREFERED )
+#define PPT_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN )
+#define PPTX_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED )
+#define HTML_FORMAT_TYPE ( SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN )
+#define PDF_FORMAT_TYPE ( SfxFilterFlags::STARONEFILTER | SfxFilterFlags::ALIEN | SfxFilterFlags::IMPORT | SfxFilterFlags::PREFERED )
+#define FODG_FORMAT_TYPE (SfxFilterFlags::STARONEFILTER | SfxFilterFlags::OWN | SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT)
+#define FODP_FORMAT_TYPE (SfxFilterFlags::STARONEFILTER | SfxFilterFlags::OWN | SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT)
+#define SXI_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::TEMPLATE | SfxFilterFlags::OWN | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED | SfxFilterFlags::ENCRYPTION)
+#define ODG_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::TEMPLATE | SfxFilterFlags::OWN | SfxFilterFlags::DEFAULT | SfxFilterFlags::ENCRYPTION | SfxFilterFlags::PREFERED )
+#define PPTM_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED )
+#define POTX_FORMAT_TYPE ( SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::TEMPLATE | SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED )
+
+/** List of file formats we support in Impress unit tests.
+
+Taken from filter/source/config/fragments/filters/ too:
+pName: The file extension.
+pFilterName: <node oor:Name="...">
+pTypeName: <prop oor:Name="Type">...</prop>
+nFormatType: <prop oor:name="Flags">...</prop>
+*/
+FileFormat aFileFormats[] =
+{
+ { "odp", "impress8", "impress8", "", ODP_FORMAT_TYPE },
+ { "ppt", "MS PowerPoint 97", "impress_MS_PowerPoint_97", "sdfilt", PPT_FORMAT_TYPE },
+ { "pptx", "Impress Office Open XML", "Office Open XML Presentation", "", PPTX_FORMAT_TYPE },
+ { "html", "graphic_HTML", "graphic_HTML", "", HTML_FORMAT_TYPE },
+ { "pdf", "draw_pdf_import", "pdf_Portable_Document_Format", "", PDF_FORMAT_TYPE },
+ { "fodg", "OpenDocument Drawing Flat XML", "draw_ODG_FlatXML", "", FODG_FORMAT_TYPE },
+ { "fodp", "OpenDocument Presentation Flat XML", "impress_ODP_FlatXML", "", FODP_FORMAT_TYPE },
+ { "sxi", "StarOffice XML (Impress)", "impress_StarOffice_XML_Impress", "", SXI_FORMAT_TYPE },
+ { "odg", "draw8", "draw8", "", ODG_FORMAT_TYPE },
+ { "pptm", "Impress MS PowerPoint 2007 XML VBA", "MS PowerPoint 2007 XML VBA", "", PPTM_FORMAT_TYPE },
+ { "potx", "Impress Office Open XML Template", "Office Open XML Presentation Template", "", POTX_FORMAT_TYPE },
+ { nullptr, nullptr, nullptr, nullptr, SfxFilterFlags::NONE }
+};
+
+#define ODP 0
+#define PPT 1
+#define PPTX 2
+#define HTML 3
+#define PDF 4
+#define FODG 5
+#define FODP 6
+#define SXI 7
+#define ODG 8
+#define PPTM 9
+#define POTX 10
+
+/// Base class for filter tests loading or roundtripping a document, and asserting the document model.
+class SdModelTestBase : public test::BootstrapFixture, public unotest::MacrosTest
+{
+private:
+ uno::Reference<uno::XInterface> mxDrawComponent;
+ uno::Reference<uno::XInterface> mxImpressComponent;
+
+public:
+ SdModelTestBase()
+ {}
+
+ virtual void setUp() override
+ {
+ test::BootstrapFixture::setUp();
+
+ // This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
+ // which is a private symbol to us, gets called
+ mxImpressComponent = getMultiServiceFactory()->createInstance("com.sun.star.comp.Draw.PresentationDocument");
+ CPPUNIT_ASSERT_MESSAGE("no impress component!", mxImpressComponent.is());
+ mxDrawComponent = getMultiServiceFactory()->createInstance("com.sun.star.comp.Draw.DrawingDocument");
+ CPPUNIT_ASSERT_MESSAGE("no draw component!", mxDrawComponent.is());
+ }
+
+ virtual void tearDown() override
+ {
+ uno::Reference<lang::XComponent>(mxImpressComponent, uno::UNO_QUERY_THROW)->dispose();
+ uno::Reference<lang::XComponent>(mxDrawComponent, uno::UNO_QUERY_THROW)->dispose();
+ test::BootstrapFixture::tearDown();
+ }
+
+protected:
+ /// Load the document.
+ sd::DrawDocShellRef loadURL( const OUString &rURL, sal_Int32 nFormat, std::shared_ptr<SfxAllItemSet> pParams = nullptr )
+ {
+ FileFormat *pFmt = getFormat(nFormat);
+ CPPUNIT_ASSERT_MESSAGE( "missing filter info", pFmt->pName != nullptr );
+ if ( std::strcmp(pFmt->pName, "odg") == 0)
+ { // Draw
+ SotClipboardFormatId nOptions = SotClipboardFormatId::NONE;
+ if (pFmt->nFormatType != SfxFilterFlags::NONE)
+ nOptions = SotClipboardFormatId::STARDRAW_8;
+ auto pFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii( pFmt->pFilterName ),
+ OUString(), pFmt->nFormatType, nOptions,
+ OUString::createFromAscii( pFmt->pTypeName ),
+ OUString(),
+ OUString::createFromAscii( pFmt->pUserData ),
+ "private:factory/sdraw*" );
+ pFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+
+ ::sd::DrawDocShellRef xDocShRef = new ::sd::GraphicDocShell(SfxObjectCreateMode::EMBEDDED);
+ SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilter, std::move(pParams));
+ if ( !xDocShRef->DoLoad(pSrcMed) || !xDocShRef.is() )
+ {
+ if (xDocShRef.is())
+ xDocShRef->DoClose();
+ CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "failed to load Draw doc" + rURL, RTL_TEXTENCODING_UTF8 ).getStr(), false );
+ }
+ CPPUNIT_ASSERT_MESSAGE( "not in destruction", !xDocShRef->IsInDestruction() );
+ return xDocShRef;
+ }
+ else // Impress
+ {
+ SotClipboardFormatId nOptions = SotClipboardFormatId::NONE;
+ if (pFmt->nFormatType != SfxFilterFlags::NONE)
+ nOptions = SotClipboardFormatId::STARIMPRESS_8;
+ auto pFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii( pFmt->pFilterName ),
+ OUString(), pFmt->nFormatType, nOptions,
+ OUString::createFromAscii( pFmt->pTypeName ),
+ OUString(),
+ OUString::createFromAscii( pFmt->pUserData ),
+ "private:factory/simpress*" );
+ pFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+
+ ::sd::DrawDocShellRef xDocShRef = new ::sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Impress);
+ SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilter, std::move(pParams));
+ if ( !xDocShRef->DoLoad(pSrcMed) || !xDocShRef.is() )
+ {
+ if (xDocShRef.is())
+ xDocShRef->DoClose();
+ CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "failed to load " + rURL, RTL_TEXTENCODING_UTF8 ).getStr(), false );
+ }
+ CPPUNIT_ASSERT_MESSAGE( "not in destruction", !xDocShRef->IsInDestruction() );
+ return xDocShRef;
+ }
+ }
+
+ FileFormat* getFormat(sal_Int32 nExportType)
+ {
+ FileFormat* pFormat = &aFileFormats[0];
+ if (o3tl::make_unsigned(nExportType) < SAL_N_ELEMENTS(aFileFormats))
+ pFormat = &aFileFormats[nExportType];
+ return pFormat;
+ }
+
+ void exportTo(sd::DrawDocShell* pShell, FileFormat const * pFormat, utl::TempFile const & rTempFile)
+ {
+ SfxMedium aStoreMedium(rTempFile.GetURL(), StreamMode::STD_WRITE);
+ if ( std::strcmp(pFormat->pName, "odg") == 0)
+ { // Draw
+ SotClipboardFormatId nExportFormat = SotClipboardFormatId::NONE;
+ if (pFormat->nFormatType == ODG_FORMAT_TYPE)
+ nExportFormat = SotClipboardFormatId::STARDRAW_8;
+ auto pExportFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii(pFormat->pFilterName),
+ OUString(), pFormat->nFormatType, nExportFormat,
+ OUString::createFromAscii(pFormat->pTypeName),
+ OUString(),
+ OUString::createFromAscii(pFormat->pUserData),
+ "private:factory/sdraw*" );
+
+ pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+ aStoreMedium.SetFilter(pExportFilter);
+ }
+ else // Impress
+ {
+ SotClipboardFormatId nExportFormat = SotClipboardFormatId::NONE;
+ if (pFormat->nFormatType == ODP_FORMAT_TYPE)
+ nExportFormat = SotClipboardFormatId::STARIMPRESS_8;
+ auto pExportFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii(pFormat->pFilterName),
+ OUString(), pFormat->nFormatType, nExportFormat,
+ OUString::createFromAscii(pFormat->pTypeName),
+ OUString(),
+ OUString::createFromAscii(pFormat->pUserData),
+ "private:factory/simpress*" );
+
+ pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+ aStoreMedium.SetFilter(pExportFilter);
+ }
+ pShell->ConvertTo(aStoreMedium);
+ pShell->DoClose();
+
+ }
+
+ void save(sd::DrawDocShell* pShell, FileFormat const * pFormat, utl::TempFile const & rTempFile)
+ {
+ SfxMedium aStoreMedium(rTempFile.GetURL(), StreamMode::STD_WRITE);
+ if ( std::strcmp(pFormat->pName, "odg") == 0 )
+ { // Draw
+ SotClipboardFormatId nExportFormat = SotClipboardFormatId::NONE;
+ if (pFormat->nFormatType == ODG_FORMAT_TYPE)
+ nExportFormat = SotClipboardFormatId::STARDRAW_8;
+ auto pExportFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii(pFormat->pFilterName),
+ OUString(), pFormat->nFormatType, nExportFormat,
+ OUString::createFromAscii(pFormat->pTypeName),
+ OUString(),
+ OUString::createFromAscii(pFormat->pUserData),
+ "private:factory/sdraw*" );
+ pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+ aStoreMedium.SetFilter(pExportFilter);
+ }
+ else // Impress
+ {
+ SotClipboardFormatId nExportFormat = SotClipboardFormatId::NONE;
+ if (pFormat->nFormatType == ODP_FORMAT_TYPE)
+ nExportFormat = SotClipboardFormatId::STARCHART_8;
+ auto pExportFilter = std::make_shared<SfxFilter>(
+ OUString::createFromAscii(pFormat->pFilterName),
+ OUString(), pFormat->nFormatType, nExportFormat,
+ OUString::createFromAscii(pFormat->pTypeName),
+ OUString(),
+ OUString::createFromAscii(pFormat->pUserData),
+ "private:factory/simpress*" );
+ pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
+ aStoreMedium.SetFilter(pExportFilter);
+ }
+ pShell->DoSaveAs(aStoreMedium);
+ pShell->DoClose();
+ }
+
+ sd::DrawDocShellRef saveAndReload(sd::DrawDocShell *pShell, sal_Int32 nExportType,
+ utl::TempFile * pTempFile = nullptr)
+ {
+ FileFormat* pFormat = getFormat(nExportType);
+ std::unique_ptr<utl::TempFile> pNewTempFile;
+ if (!pTempFile)
+ {
+ pNewTempFile.reset(new utl::TempFile);
+ pTempFile = pNewTempFile.get();
+ }
+ save(pShell, pFormat, *pTempFile);
+ if (nExportType == ODP || nExportType == ODG)
+ {
+ BootstrapFixture::validate(pTempFile->GetFileName(), test::ODF);
+ }
+ else if(nExportType == PPTX)
+ {
+ BootstrapFixture::validate(pTempFile->GetFileName(), test::OOXML);
+ }
+ else if(nExportType == PPT)
+ {
+ BootstrapFixture::validate(pTempFile->GetFileName(), test::MSBINARY);
+ }
+ pTempFile->EnableKillingFile();
+ return loadURL(pTempFile->GetURL(), nExportType);
+ }
+
+ /** Dump shapes in xDocShRef, and compare the dump against content of pShapesDumpFileNameBase<number>.xml.
+
+ @param bCreate Instead of comparing to the reference file(s), create it/them.
+ */
+ void compareWithShapesDump( ::sd::DrawDocShellRef xDocShRef, const OUString &rShapesDumpFileNameBase, bool bCreate )
+ {
+ CPPUNIT_ASSERT_MESSAGE( "failed to load", xDocShRef.is() );
+ CPPUNIT_ASSERT_MESSAGE( "not in destruction", !xDocShRef->IsInDestruction() );
+
+ uno::Reference<frame::XModel> xTempModel(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier (xTempModel, uno::UNO_QUERY_THROW);
+ uno::Reference< drawing::XDrawPages > xDrawPages = xDrawPagesSupplier->getDrawPages();
+ CPPUNIT_ASSERT(xDrawPages.is());
+
+ sal_Int32 nLength = xDrawPages->getCount();
+ for (sal_Int32 i = 0; i < nLength; ++i)
+ {
+ uno::Reference<drawing::XDrawPage> xDrawPage;
+ uno::Any aAny = xDrawPages->getByIndex(i);
+ aAny >>= xDrawPage;
+ uno::Reference< drawing::XShapes > xShapes(xDrawPage, uno::UNO_QUERY_THROW);
+ OUString aString = XShapeDumper::dump(xShapes);
+
+ OString aFileName = OUStringToOString( rShapesDumpFileNameBase, RTL_TEXTENCODING_UTF8 ) +
+ OString::number(i) + ".xml";
+
+ if ( bCreate )
+ {
+ std::ofstream aStream( aFileName.getStr(), std::ofstream::out | std::ofstream::binary );
+ aStream << aString;
+ aStream.close();
+ }
+ else
+ {
+ doXMLDiff(aFileName.getStr(),
+ OUStringToOString(aString, RTL_TEXTENCODING_UTF8).getStr(),
+ static_cast<int>(aString.getLength()),
+ OUStringToOString(
+ m_directories.getPathFromSrc("/sd/qa/unit/data/tolerance.xml"),
+ RTL_TEXTENCODING_UTF8).getStr());
+ }
+ }
+ xDocShRef->DoClose();
+ }
+
+ uno::Reference< drawing::XDrawPagesSupplier > getDoc( sd::DrawDocShellRef xDocShRef )
+ {
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc (
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ return xDoc;
+ }
+
+ uno::Reference< drawing::XDrawPage > getPage( int nPage, sd::DrawDocShellRef xDocShRef )
+ {
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc( getDoc( xDocShRef ) );
+ uno::Reference< drawing::XDrawPage > xPage( xDoc->getDrawPages()->getByIndex( nPage ), uno::UNO_QUERY_THROW );
+ return xPage;
+ }
+
+ // very confusing ... UNO index-based access to pages is 0-based. This one is 1-based
+ const SdrPage* GetPage( int nPage, sd::DrawDocShellRef xDocShRef )
+ {
+ SdDrawDocument* pDoc = xDocShRef->GetDoc() ;
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != nullptr );
+
+ const SdrPage* pPage = pDoc->GetPage( nPage );
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != nullptr );
+ return pPage;
+ }
+
+ uno::Reference< beans::XPropertySet > getShape( int nShape, uno::Reference< drawing::XDrawPage > const & xPage )
+ {
+ uno::Reference< beans::XPropertySet > xShape( xPage->getByIndex( nShape ), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_MESSAGE( "Failed to load shape", xShape.is() );
+ return xShape;
+ }
+
+ // Nth shape on Mth page
+ uno::Reference< beans::XPropertySet > getShapeFromPage( int nShape, int nPage, sd::DrawDocShellRef xDocShRef )
+ {
+ uno::Reference< drawing::XDrawPage > xPage ( getPage( nPage, xDocShRef ) );
+ uno::Reference< beans::XPropertySet > xShape( getShape( nShape, xPage ) );
+ CPPUNIT_ASSERT_MESSAGE( "Failed to load shape", xShape.is() );
+
+ return xShape;
+ }
+
+ // Nth paragraph of text in given text shape
+ uno::Reference< text::XTextRange > getParagraphFromShape( int nPara, uno::Reference< beans::XPropertySet > const & xShape )
+ {
+ uno::Reference< text::XText > xText = uno::Reference< text::XTextRange>( xShape, uno::UNO_QUERY_THROW )->getText();
+ CPPUNIT_ASSERT_MESSAGE( "Not a text shape", xText.is() );
+
+ uno::Reference< container::XEnumerationAccess > paraEnumAccess( xText, uno::UNO_QUERY );
+ uno::Reference< container::XEnumeration > paraEnum( paraEnumAccess->createEnumeration() );
+
+ for ( int i = 0; i < nPara; ++i )
+ paraEnum->nextElement();
+
+ uno::Reference< text::XTextRange > xParagraph( paraEnum->nextElement(), uno::UNO_QUERY_THROW );
+
+ return xParagraph;
+ }
+
+ uno::Reference< text::XTextRange > getRunFromParagraph( int nRun, uno::Reference< text::XTextRange > const & xParagraph )
+ {
+ uno::Reference< container::XEnumerationAccess > runEnumAccess(xParagraph, uno::UNO_QUERY);
+ uno::Reference< container::XEnumeration > runEnum = runEnumAccess->createEnumeration();
+
+ for ( int i = 0; i < nRun; ++i )
+ runEnum->nextElement();
+
+ uno::Reference< text::XTextRange > xRun( runEnum->nextElement(), uno::UNO_QUERY);
+
+ return xRun;
+ }
+
+ uno::Reference<text::XTextField> getTextFieldFromPage(int nRun, int nPara, int nShape, int nPage, sd::DrawDocShellRef xDocShRef)
+ {
+ // get TextShape 1 from the first page
+ uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( nShape, nPage, xDocShRef ) );
+
+ // Get first paragraph
+ uno::Reference<text::XTextRange> xParagraph( getParagraphFromShape( nPara, xShape ) );
+
+ // first chunk of text
+ uno::Reference<text::XTextRange> xRun( getRunFromParagraph( nRun, xParagraph ) );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW );
+
+ uno::Reference<text::XTextField> xField;
+ xPropSet->getPropertyValue("TextField") >>= xField;
+ return xField;
+ }
+
+};
+
+class SdModelTestBaseXML
+ : public SdModelTestBase, public XmlTestTools
+{
+
+public:
+ std::unique_ptr<SvStream> parseExportStream(utl::TempFile const & rTempFile, const OUString& rStreamName)
+ {
+ // Read the stream we're interested in.
+ OUString const url(rTempFile.GetURL());
+ uno::Reference<packages::zip::XZipFileAccess2> const xZipNames(packages::zip::ZipFileAccess::createWithURL(
+ comphelper::getComponentContext(m_xSFactory), url));
+ uno::Reference<io::XInputStream> const xInputStream(xZipNames->getByName(rStreamName), uno::UNO_QUERY);
+ std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
+ return pStream;
+ }
+
+ xmlDocUniquePtr parseExport(utl::TempFile const & rTempFile, OUString const& rStreamName)
+ {
+ std::unique_ptr<SvStream> const pStream(parseExportStream(rTempFile, rStreamName));
+ xmlDocUniquePtr pXmlDoc = parseXmlStream(pStream.get());
+ OUString const url(rTempFile.GetURL());
+ pXmlDoc->name = reinterpret_cast<char *>(xmlStrdup(
+ reinterpret_cast<xmlChar const *>(OUStringToOString(url, RTL_TEXTENCODING_UTF8).getStr())));
+ return pXmlDoc;
+ }
+
+};
+
+CPPUNIT_NS_BEGIN
+
+template<> struct assertion_traits<Color>
+{
+ static bool equal( const Color& c1, const Color& c2 )
+ {
+ return c1 == c2;
+ }
+
+ static std::string toString( const Color& c )
+ {
+ OStringStream ost;
+ ost << static_cast<sal_uInt32>(c);
+ return ost.str();
+ }
+};
+
+CPPUNIT_NS_END
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/tiledrendering/data/2slides.odp b/sd/qa/unit/tiledrendering/data/2slides.odp
new file mode 100644
index 000000000..baa42ba9f
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/2slides.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/cut_selection_change.odp b/sd/qa/unit/tiledrendering/data/cut_selection_change.odp
new file mode 100644
index 000000000..19d3a1848
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/cut_selection_change.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/dummy.odp b/sd/qa/unit/tiledrendering/data/dummy.odp
new file mode 100644
index 000000000..83dee413c
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/dummy.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/insert-delete.odp b/sd/qa/unit/tiledrendering/data/insert-delete.odp
new file mode 100644
index 000000000..e388fb60b
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/insert-delete.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/language-all-text.odp b/sd/qa/unit/tiledrendering/data/language-all-text.odp
new file mode 100644
index 000000000..a484a6310
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/language-all-text.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/notes-view.odp b/sd/qa/unit/tiledrendering/data/notes-view.odp
new file mode 100644
index 000000000..d41bdf959
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/notes-view.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/paste_text_onslide.odp b/sd/qa/unit/tiledrendering/data/paste_text_onslide.odp
new file mode 100644
index 000000000..c33b7c110
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/paste_text_onslide.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/regenerate-diagram.pptx b/sd/qa/unit/tiledrendering/data/regenerate-diagram.pptx
new file mode 100644
index 000000000..97635a518
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/regenerate-diagram.pptx
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/search-all.odp b/sd/qa/unit/tiledrendering/data/search-all.odp
new file mode 100644
index 000000000..46ddaf412
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/search-all.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/shape.odp b/sd/qa/unit/tiledrendering/data/shape.odp
new file mode 100644
index 000000000..b1ffa54e3
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/shape.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/table-column.odp b/sd/qa/unit/tiledrendering/data/table-column.odp
new file mode 100644
index 000000000..d2c274e88
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/table-column.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/table.odp b/sd/qa/unit/tiledrendering/data/table.odp
new file mode 100644
index 000000000..6d92898a0
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/table.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/tdf102223.odp b/sd/qa/unit/tiledrendering/data/tdf102223.odp
new file mode 100644
index 000000000..6b8570f07
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf102223.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/tdf103083.fodp b/sd/qa/unit/tiledrendering/data/tdf103083.fodp
new file mode 100644
index 000000000..8de5e37b8
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf103083.fodp
@@ -0,0 +1,932 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:meta>
+ <meta:creation-date>2016-10-03T11:33:02.159552013</meta:creation-date>
+ <meta:editing-duration>PT21M51S</meta:editing-duration>
+ <meta:editing-cycles>2</meta:editing-cycles>
+ <meta:generator>LibreOfficeDev/5.3.0.0.alpha0$Linux_X86_64 LibreOffice_project/36b8fd83a57132f486d918e5ab39a6e8898bb630</meta:generator>
+ <dc:date>2016-10-03T11:33:43.592997719</dc:date><meta:document-statistic meta:object-count="27"/></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-275</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">-1323</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">28053</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">19616</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item config:name="GridIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridIsFront" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToPageMargins" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToSnapLines" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToObjectFrame" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToObjectPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPlusHandlesAlwaysVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsFrameDragSingles" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EliminatePolyPointLimitAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="IsEliminatePolyPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="VisibleLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="PrintableLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="LockedLayers" config:type="base64Binary"/>
+ <config:config-item config:name="NoAttribs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoColors" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SnapLinesDrawing" config:type="string">V2278V23104H18449H578V627V24757H4049H2466H17561</config:config-item>
+ <config:config-item config:name="RulerIsVisible" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PageKind" config:type="short">0</config:config-item>
+ <config:config-item config:name="SelectedPage" config:type="short">0</config:config-item>
+ <config:config-item config:name="IsLayerMode" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsDoubleClickTextEdit" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsClickChangeRotation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SlidesPerRow" config:type="short">4</config:config-item>
+ <config:config-item config:name="EditMode" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-275</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">-1323</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">28057</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">19620</config:config-item>
+ <config:config-item config:name="GridCoarseWidth" config:type="int">2540</config:config-item>
+ <config:config-item config:name="GridCoarseHeight" config:type="int">2540</config:config-item>
+ <config:config-item config:name="GridFineWidth" config:type="int">254</config:config-item>
+ <config:config-item config:name="GridFineHeight" config:type="int">254</config:config-item>
+ <config:config-item config:name="GridSnapWidthXNumerator" config:type="int">254</config:config-item>
+ <config:config-item config:name="GridSnapWidthXDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="GridSnapWidthYNumerator" config:type="int">254</config:config-item>
+ <config:config-item config:name="GridSnapWidthYDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="IsAngleSnapEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SnapAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="ZoomOnPage" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">true</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="BitmapTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sob</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ColorTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soc</config:config-item>
+ <config:config-item config:name="DashTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sod</config:config-item>
+ <config:config-item config:name="DefaultTabStop" config:type="int">1270</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item-map-indexed config:name="ForbiddenCharacters">
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">de</config:config-item>
+ <config:config-item config:name="Country" config:type="string">DE</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">en</config:config-item>
+ <config:config-item config:name="Country" config:type="string">US</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">en</config:config-item>
+ <config:config-item config:name="Country" config:type="string">GB</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">en</config:config-item>
+ <config:config-item config:name="Country" config:type="string">ZA</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ <config:config-item config:name="GradientTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sog</config:config-item>
+ <config:config-item config:name="HandoutsHorizontal" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HatchTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soh</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBooklet" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBookletBack" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintBookletFront" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintDate" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintDrawing" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintFitPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHandout" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHiddenPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintNotes" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintOutline" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintPageName" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTilePage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTime" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LineEndTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soe</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PageNumberFormat" config:type="int">4</config:config-item>
+ <config:config-item config:name="ParagraphSummation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintQuality" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string"/>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SlidesPerHandout" config:type="short">6</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="swiss"/>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Thorndale AMT" svg:font-family="&apos;Thorndale AMT&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Calibri" svg:font-family="Calibri" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Albany AMT" svg:font-family="&apos;Albany AMT&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans CJK SC Regular" svg:font-family="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <draw:stroke-dash draw:name="Dashed_20__28_var_29__20_2" draw:display-name="Dashed (var) 2" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill-color="#99ccff" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Thorndale AMT" fo:font-size="24pt" fo:language="en" fo:country="US" style:font-name-asian="Albany AMT" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Albany AMT" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" draw:stroke-dash="Dashed_20__28_var_29__20_2" svg:stroke-width="0.076cm" svg:stroke-color="#454c51" draw:marker-start-width="0.406cm" draw:marker-start-center="false" draw:marker-end-width="0.406cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#e4e5e6" draw:fill-image-width="0cm" draw:fill-image-height="0cm" draw:auto-grow-width="true" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.305cm" draw:shadow-offset-y="0.305cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="40pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="32pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="Normal" style:family="graphic">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.623cm" fo:line-height="115%" fo:text-align="start" fo:text-indent="0cm" style:text-autospace="ideograph-alpha"/>
+ <style:text-properties style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="11pt" fo:language="en" fo:country="US" style:font-name-asian="Calibri" style:font-family-asian="Calibri" style:font-family-generic-asian="swiss" style:font-pitch-asian="variable" style:font-size-asian="11pt" style:language-asian="en" style:country-asian="US" style:font-name-complex="Calibri" style:font-family-complex="Calibri" style:font-family-generic-complex="swiss" style:font-pitch-complex="variable" style:font-size-complex="11pt" style:language-complex="ar" style:country-complex="SA"/>
+ </style:style>
+ <style:style style:name="Default_20_Paragraph_20_Font" style:display-name="Default Paragraph Font" style:family="graphic">
+ <style:paragraph-properties style:text-autospace="none"/>
+ <style:text-properties style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-background" style:display-name="No-Logo Content-background" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-image-width="0cm" draw:fill-image-height="0cm"/>
+ <style:text-properties style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-backgroundobjects" style:display-name="No-Logo Content-backgroundobjects" style:family="presentation">
+ <style:graphic-properties draw:shadow="hidden" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:shadow-color="#808080"/>
+ <style:text-properties style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-notes" style:display-name="No-Logo Content-notes" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0.6cm" fo:margin-right="0cm" fo:text-indent="0cm"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Arial2" fo:font-family="Arial" style:font-family-generic="swiss" fo:font-size="14pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline1" style:display-name="No-Logo Content-outline1" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-horizontal-align="left" draw:auto-grow-height="false" draw:fit-to-size="false">
+ <text:list-style style:name="No-Logo_20_Content-outline1" style:display-name="No-Logo Content-outline1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="•">
+ <style:list-level-properties text:space-before="0.008cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="0.766cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="1.515cm" text:min-label-width="0.452cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="2.028cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="2.786cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="3.561cm" text:min-label-width="0.505cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="4.061cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="9.119cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="10.312cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="11.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.405cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="24pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline2" style:display-name="No-Logo Content-outline2" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline1">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="20pt" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline3" style:display-name="No-Logo Content-outline3" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline2">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="16pt" style:font-size-asian="24pt" style:font-size-complex="24pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline4" style:display-name="No-Logo Content-outline4" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline3">
+ <style:paragraph-properties fo:margin-left="0.266cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="14pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline5" style:display-name="No-Logo Content-outline5" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline4">
+ <style:paragraph-properties fo:margin-left="0.265cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline6" style:display-name="No-Logo Content-outline6" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline5">
+ <style:paragraph-properties fo:margin-left="0.239cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline7" style:display-name="No-Logo Content-outline7" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline6">
+ <style:paragraph-properties fo:margin-left="0.505cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline8" style:display-name="No-Logo Content-outline8" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline7">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-outline9" style:display-name="No-Logo Content-outline9" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline8">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0.406cm" fo:text-indent="0cm"/>
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-subtitle" style:display-name="No-Logo Content-subtitle" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="No-Logo_20_Content-subtitle" style:display-name="No-Logo Content-subtitle">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="20pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none"/>
+ </style:style>
+ <style:style style:name="No-Logo_20_Content-title" style:display-name="No-Logo Content-title" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="No-Logo_20_Content-title" style:display-name="No-Logo Content-title">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:text-align="start"/>
+ <style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Arial1" fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="32pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:letter-kerning="true" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="44pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Mangal" style:font-family-complex="Mangal" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="44pt" style:font-style-complex="normal" style:font-weight-complex="bold" style:text-emphasize="none" style:font-relief="none"/>
+ </style:style>
+ <style:presentation-page-layout style:name="AL0T26">
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ </style:presentation-page-layout>
+ <style:presentation-page-layout style:name="AL1T1">
+ <presentation:placeholder presentation:object="title" svg:x="2.058cm" svg:y="1.743cm" svg:width="23.912cm" svg:height="3.507cm"/>
+ <presentation:placeholder presentation:object="outline" svg:x="2.058cm" svg:y="5.838cm" svg:width="23.912cm" svg:height="13.23cm"/>
+ </style:presentation-page-layout>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="21.59cm" fo:page-height="27.94cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:page-layout style:name="PM1">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="25.4cm" fo:page-height="19.05cm" style:print-orientation="landscape"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none" draw:fill-image-width="0cm" draw:fill-image-height="0cm"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page">
+ <style:drawing-page-properties presentation:display-header="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="dp3" style:family="drawing-page">
+ <style:drawing-page-properties presentation:background-visible="true" presentation:background-objects-visible="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="4.236cm"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="5.234cm"/>
+ </style:style>
+ <style:style style:name="gr3" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="3.694cm"/>
+ </style:style>
+ <style:style style:name="gr4" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="4.506cm"/>
+ </style:style>
+ <style:style style:name="gr5" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" draw:color-mode="standard" draw:luminance="0%" draw:contrast="0%" draw:gamma="100%" draw:red="0%" draw:green="0%" draw:blue="0%" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:image-opacity="100%" style:mirror="none"/>
+ </style:style>
+ <style:style style:name="gr6" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" svg:stroke-width="0.076cm" draw:stroke-linejoin="round" draw:fill="none" draw:textarea-vertical-align="top" draw:auto-grow-height="false" fo:padding-top="0.13cm" fo:padding-bottom="0.13cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" fo:wrap-option="wrap"/>
+ </style:style>
+ <style:style style:name="gr7" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="middle" draw:auto-grow-width="true" fo:min-height="0.952cm" fo:min-width="1.78cm"/>
+ </style:style>
+ <style:style style:name="gr8" style:family="graphic">
+ <style:graphic-properties style:protect="size"/>
+ </style:style>
+ <style:style style:name="pr1" style:family="presentation" style:parent-style-name="No-Logo_20_Content-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="8.869cm"/>
+ </style:style>
+ <style:style style:name="pr2" style:family="presentation" style:parent-style-name="No-Logo_20_Content-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.397cm" fo:min-width="8.869cm"/>
+ </style:style>
+ <style:style style:name="pr3" style:family="presentation" style:parent-style-name="No-Logo_20_Content-title">
+ <style:graphic-properties draw:auto-grow-height="true" fo:min-height="2.743cm" fo:min-width="21.058cm"/>
+ </style:style>
+ <style:style style:name="pr4" style:family="presentation" style:parent-style-name="No-Logo_20_Content-outline1">
+ <style:graphic-properties draw:fit-to-size="false" fo:min-height="10.799cm" fo:min-width="10.066cm"/>
+ </style:style>
+ <style:style style:name="pr5" style:family="presentation" style:parent-style-name="No-Logo_20_Content-notes">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:auto-grow-height="true" fo:min-height="12.572cm" fo:min-width="16.771cm"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P3" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P4" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P5" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ <style:style style:name="P6" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="start"/>
+ <style:text-properties fo:font-size="18pt"/>
+ </style:style>
+ <style:style style:name="P7" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ <style:style style:name="P8" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ </style:style>
+ <style:style style:name="P9" style:family="paragraph">
+ <loext:graphic-properties draw:fill-color="#ffffff"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="T2" style:family="text">
+ <style:text-properties fo:color="#ffffff" style:font-name="Arial" fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+ </style:style>
+ <style:style style:name="T3" style:family="text">
+ <style:text-properties style:text-position="super 58%"/>
+ </style:style>
+ <text:list-style style:name="L1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L2">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L3">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="•">
+ <style:list-level-properties text:space-before="0.008cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="0.766cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="1.515cm" text:min-label-width="0.452cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="2.028cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="2.786cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="3.561cm" text:min-label-width="0.505cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="4.061cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="9.119cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="10.312cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="‒">
+ <style:list-level-properties text:space-before="11.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="Arial" style:font-style-name="Regular" style:font-family-generic="swiss" fo:color="#000000" fo:font-size="65%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L4">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="-0.005cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.766cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.51cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.285cm" text:min-label-width="0.505cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.056cm" text:min-label-width="0.505cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.806cm" text:min-label-width="0.473cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.576cm" text:min-label-width="0.473cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="9.127cm" text:min-label-width="0.473cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="10.312cm" text:min-label-width="0.473cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="11.405cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L5">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.008cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.766cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.515cm" text:min-label-width="0.452cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.028cm" text:min-label-width="0.47cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.786cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.561cm" text:min-label-width="0.505cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.061cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="9.119cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="10.312cm" text:min-label-width="0.483cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="11.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:font-charset="x-symbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:handout-master presentation:presentation-page-layout-name="AL0T26" style:page-layout-name="PM0" draw:style-name="dp2">
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="7.133cm" svg:height="1.396cm" svg:x="1.119cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:header/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:header/></text:span><text:span text:style-name="T1"> </text:span><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="8.63cm" svg:height="1.396cm" svg:x="12.589cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><presentation:date-time/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:date-time/></text:span><text:span text:style-name="T1"> </text:span><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr3" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="6.32cm" svg:height="1.396cm" svg:x="1.525cm" svg:y="26.543cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:footer/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:footer/></text:span><text:span text:style-name="T1"> </text:span><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr4" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="7.538cm" svg:height="1.396cm" svg:x="13.135cm" svg:y="26.543cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:span text:style-name="T1"> </text:span><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="1cm" svg:y="2.435cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="1cm" svg:y="10.483cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="1cm" svg:y="18.531cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="11.295cm" svg:y="2.435cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="11.295cm" svg:y="10.483cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="9.294cm" svg:height="6.97cm" svg:x="11.295cm" svg:y="18.531cm"/>
+ </style:handout-master>
+ <style:master-page style:name="No-Logo_20_Content" style:display-name="No-Logo Content" style:page-layout-name="PM1" draw:style-name="dp1">
+ <draw:frame draw:style-name="gr5" draw:text-style-name="P5" draw:layer="backgroundobjects" svg:width="24.125cm" svg:height="0.792cm" svg:x="0.626cm" svg:y="18.269cm">
+ </draw:frame>
+ <draw:frame presentation:style-name="No-Logo_20_Content-title" draw:layer="backgroundobjects" svg:width="20.93cm" svg:height="2.743cm" svg:x="2.286cm" svg:y="0.711cm" presentation:class="title" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="No-Logo_20_Content-outline1" draw:layer="backgroundobjects" svg:width="22.859cm" svg:height="11.048cm" svg:x="1.27cm" svg:y="4.457cm" presentation:class="outline" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="No-Logo_20_Content-outline1" draw:layer="backgroundobjects" svg:width="20.93cm" svg:height="11.049cm" svg:x="2.286cm" svg:y="4.039cm" presentation:class="outline" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:custom-shape draw:name="Text Box 4" draw:style-name="gr6" draw:text-style-name="P6" draw:layer="backgroundobjects" svg:width="16.024cm" svg:height="0.656cm" svg:x="2.403cm" svg:y="18.318cm">
+ <text:p/>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ <draw:frame draw:style-name="gr7" draw:text-style-name="P8" draw:layer="backgroundobjects" svg:width="2.39cm" svg:height="1.202cm" svg:x="0.305cm" svg:y="18.102cm">
+ <draw:text-box>
+ <text:p text:style-name="P7"><text:span text:style-name="T2"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:span text:style-name="T2"> </text:span></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <presentation:notes style:page-layout-name="PM0">
+ <draw:page-thumbnail presentation:style-name="No-Logo_20_Content-title" draw:layer="backgroundobjects" svg:width="13.97cm" svg:height="10.465cm" svg:x="3.81cm" svg:y="2.134cm" presentation:class="page"/>
+ <draw:frame presentation:style-name="No-Logo_20_Content-notes" draw:layer="backgroundobjects" svg:width="17.271cm" svg:height="12.572cm" svg:x="2.159cm" svg:y="13.271cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="No-Logo_20_Content-notes" draw:layer="backgroundobjects" svg:width="17.271cm" svg:height="12.572cm" svg:x="2.159cm" svg:y="13.271cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.369cm" svg:height="1.396cm" svg:x="0cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:header/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:header/></text:span><text:span text:style-name="T1"> </text:span><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.369cm" svg:height="1.396cm" svg:x="12.22cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><presentation:date-time/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:date-time/></text:span><text:span text:style-name="T1"> </text:span><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.369cm" svg:height="1.396cm" svg:x="0cm" svg:y="26.543cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><text:span text:style-name="T1"><presentation:footer/></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><presentation:footer/></text:span><text:span text:style-name="T1"> </text:span><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.369cm" svg:height="1.396cm" svg:x="12.22cm" svg:y="26.543cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:span text:style-name="T1"> </text:span><text:span text:style-name="T1"><text:page-number>&lt;number&gt;</text:page-number></text:span><text:span text:style-name="T1"> </text:span><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </presentation:notes>
+ </style:master-page>
+ </office:master-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1" draw:style-name="dp3" draw:master-page-name="No-Logo_20_Content" presentation:presentation-page-layout-name="AL1T1">
+ <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
+ <draw:frame presentation:style-name="pr3" draw:layer="layout" svg:width="20.93cm" svg:height="2.743cm" svg:x="2.286cm" svg:y="0.711cm" presentation:class="title" presentation:user-transformed="true">
+ <draw:text-box>
+ <text:p>How to reproduce</text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr4" draw:layer="layout" svg:width="20.93cm" svg:height="13.487cm" svg:x="2.286cm" svg:y="4.039cm" presentation:class="outline" presentation:user-transformed="true">
+ <draw:text-box>
+ <text:list text:style-name="L3">
+ <text:list-item>
+ <text:p>This is the 1<text:span text:style-name="T3">st</text:span> level</text:p>
+ </text:list-item>
+ </text:list>
+ <text:list text:style-name="L4">
+ <text:list-item>
+ <text:list>
+ <text:list-item>
+ <text:p>These are the 4 bullet points we are focussing on</text:p>
+ </text:list-item>
+ </text:list>
+ </text:list-item>
+ </text:list>
+ <text:list text:style-name="L5">
+ <text:list-item>
+ <text:list>
+ <text:list-item>
+ <text:p>They have all the same formatting</text:p>
+ </text:list-item>
+ </text:list>
+ </text:list-item>
+ </text:list>
+ <text:list text:style-name="L4">
+ <text:list-item>
+ <text:list>
+ <text:list-item>
+ <text:p>Simply cut (CTRL+X) and paste (CTRL+V) a line</text:p>
+ </text:list-item>
+ <text:list-item>
+ <text:p>And see what happens. But bullet point changes format</text:p>
+ </text:list-item>
+ </text:list>
+ </text:list-item>
+ </text:list>
+ </draw:text-box>
+ </draw:frame>
+ <presentation:notes draw:style-name="dp2">
+ <draw:page-thumbnail draw:style-name="gr8" draw:layer="layout" svg:width="13.97cm" svg:height="10.465cm" svg:x="3.81cm" svg:y="2.134cm" draw:page-number="1" presentation:class="page"/>
+ <draw:frame presentation:style-name="pr5" draw:text-style-name="P9" draw:layer="layout" svg:width="17.271cm" svg:height="12.572cm" svg:x="2.159cm" svg:y="13.271cm" presentation:class="notes" presentation:placeholder="true" presentation:user-transformed="true">
+ <draw:text-box/>
+ </draw:frame>
+ </presentation:notes>
+ </draw:page>
+ <presentation:settings presentation:mouse-visible="false"/>
+ </office:presentation>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/sd/qa/unit/tiledrendering/data/tdf104405.fodp b/sd/qa/unit/tiledrendering/data/tdf104405.fodp
new file mode 100644
index 000000000..cce6dd513
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf104405.fodp
@@ -0,0 +1,1103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:meta><meta:creation-date>2016-11-16T15:27:08.222708354</meta:creation-date><dc:date>2016-11-16T15:30:23.342583235</dc:date><meta:editing-duration>PT3M18S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic meta:object-count="26"/><meta:generator>LibreOfficeDev/5.3.0.0.alpha1$Linux_X86_64 LibreOffice_project/f0c20dc458d8fe9e86b323c8c24df2f3d31610ad</meta:generator></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">14099</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">9999</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item config:name="GridIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridIsFront" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToPageMargins" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToSnapLines" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToObjectFrame" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToObjectPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPlusHandlesAlwaysVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsFrameDragSingles" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EliminatePolyPointLimitAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="IsEliminatePolyPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="VisibleLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="PrintableLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="LockedLayers" config:type="base64Binary"/>
+ <config:config-item config:name="NoAttribs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoColors" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="RulerIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PageKind" config:type="short">0</config:config-item>
+ <config:config-item config:name="SelectedPage" config:type="short">0</config:config-item>
+ <config:config-item config:name="IsLayerMode" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsDoubleClickTextEdit" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsClickChangeRotation" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SlidesPerRow" config:type="short">4</config:config-item>
+ <config:config-item config:name="EditMode" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-310</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">-2139</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">32314</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">21646</config:config-item>
+ <config:config-item config:name="GridCoarseWidth" config:type="int">2000</config:config-item>
+ <config:config-item config:name="GridCoarseHeight" config:type="int">2000</config:config-item>
+ <config:config-item config:name="GridFineWidth" config:type="int">200</config:config-item>
+ <config:config-item config:name="GridFineHeight" config:type="int">200</config:config-item>
+ <config:config-item config:name="GridSnapWidthXNumerator" config:type="int">200</config:config-item>
+ <config:config-item config:name="GridSnapWidthXDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="GridSnapWidthYNumerator" config:type="int">200</config:config-item>
+ <config:config-item config:name="GridSnapWidthYDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="IsAngleSnapEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SnapAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="ZoomOnPage" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="BitmapTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sob</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ColorTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soc</config:config-item>
+ <config:config-item config:name="DashTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sod</config:config-item>
+ <config:config-item config:name="DefaultTabStop" config:type="int">1250</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item-map-indexed config:name="ForbiddenCharacters">
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">en</config:config-item>
+ <config:config-item config:name="Country" config:type="string">ZA</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string"/>
+ <config:config-item config:name="EndLine" config:type="string"/>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ <config:config-item config:name="GradientTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.sog</config:config-item>
+ <config:config-item config:name="HandoutsHorizontal" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HatchTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soh</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBooklet" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintBookletBack" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintBookletFront" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintDate" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintDrawing" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintFitPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHandout" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintHiddenPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsPrintNotes" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintOutline" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintPageName" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTilePage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPrintTime" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LineEndTableURL" config:type="string">$(inst)/share/palette%3B$(user)/config/standard.soe</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PageNumberFormat" config:type="int">4</config:config-item>
+ <config:config-item config:name="ParagraphSummation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintQuality" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">low-resolution</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string"/>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SlidesPerHandout" config:type="short">6</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Noto Sans CJK SC Regular" svg:font-family="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <draw:marker draw:name="Arrow" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="24pt" fo:language="en" fo:country="ZA" style:font-name-asian="DejaVu Sans" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:style style:name="standard" style:family="graphic">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0cm" svg:stroke-color="#3465a4" draw:marker-start-width="0.2cm" draw:marker-start-center="false" draw:marker-end-width="0.2cm" draw:marker-end-center="false" draw:fill="solid" draw:fill-color="#729fcf" draw:textarea-horizontal-align="justify" fo:padding-top="0.125cm" fo:padding-bottom="0.125cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080">
+ <text:list-style style:name="standard">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="objectwitharrow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-width="0.15cm" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.7cm" draw:marker-start-center="true" draw:marker-end-width="0.3cm"/>
+ </style:style>
+ <style:style style:name="objectwithshadow" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ </style:style>
+ <style:style style:name="objectwithoutfill" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-color="#000000" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="Object_20_with_20_no_20_fill_20_and_20_no_20_line" style:display-name="Object with no fill and no line" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="text" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="textbody" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="16pt"/>
+ </style:style>
+ <style:style style:name="textbodyjustfied" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:text-align="justify"/>
+ </style:style>
+ <style:style style:name="textbodyindent" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0.6cm"/>
+ </style:style>
+ <style:style style:name="title" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties fo:font-size="44pt"/>
+ </style:style>
+ <style:style style:name="title1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="solid" draw:fill-color="#008080" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="title2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties svg:stroke-width="0.05cm" draw:fill-color="#ffcc99" draw:shadow="visible" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0.2cm" fo:margin-top="0.1cm" fo:margin-bottom="0.1cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-size="36pt"/>
+ </style:style>
+ <style:style style:name="headline" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="24pt"/>
+ </style:style>
+ <style:style style:name="headline1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="18pt" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="headline2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-top="0.42cm" fo:margin-bottom="0.21cm"/>
+ <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="measure" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="solid" svg:stroke-color="#000000" draw:marker-start="Arrow" draw:marker-start-width="0.2cm" draw:marker-end="Arrow" draw:marker-end-width="0.2cm" draw:fill="none" draw:show-unit="true"/>
+ <style:text-properties fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="default" style:family="table-cell">
+ <loext:graphic-properties draw:fill="solid" draw:fill-color="#ccccff" draw:textarea-horizontal-align="left" draw:textarea-vertical-align="top" fo:padding-top="0.13cm" fo:padding-bottom="0.13cm" fo:padding-left="0.25cm" fo:padding-right="0.25cm"/>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:line-height="100%" fo:text-indent="0cm" fo:border="0.03pt solid #ffffff"/>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="18pt" style:letter-kerning="true" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="18pt" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="18pt"/>
+ </style:style>
+ <style:style style:name="gray1" style:family="table-cell" style:parent-style-name="default">
+ <loext:graphic-properties draw:fill="solid" draw:fill-color="#e6e6e6"/>
+ </style:style>
+ <style:style style:name="gray2" style:family="table-cell" style:parent-style-name="default">
+ <loext:graphic-properties draw:fill="solid" draw:fill-color="#cccccc"/>
+ </style:style>
+ <style:style style:name="gray3" style:family="table-cell" style:parent-style-name="default">
+ <loext:graphic-properties draw:fill="solid" draw:fill-color="#b3b3b3"/>
+ </style:style>
+ <table:table-template text:style-name="default">
+ <table:first-row table:style-name="gray3"/>
+ <table:last-row table:style-name="gray3"/>
+ <table:first-column table:style-name="gray3"/>
+ <table:last-column table:style-name="gray3"/>
+ <table:body table:style-name="gray1"/>
+ <table:odd-rows table:style-name="gray2"/>
+ <table:odd-columns table:style-name="gray2"/>
+ </table:table-template>
+ <style:style style:name="Default-background" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:text-properties style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="Default-backgroundobjects" style:family="presentation">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:shadow="hidden" draw:shadow-offset-x="0.2cm" draw:shadow-offset-y="0.2cm" draw:shadow-color="#808080"/>
+ <style:text-properties style:letter-kerning="true"/>
+ </style:style>
+ <style:style style:name="Default-notes" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none"/>
+ <style:paragraph-properties fo:margin-left="0.6cm" fo:margin-right="0cm" fo:text-indent="-0.6cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="20pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="20pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="20pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-outline1" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:auto-grow-height="false" draw:fit-to-size="shrink-to-fit">
+ <text:list-style style:name="Default-outline1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.3cm" text:min-label-width="0.9cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="–">
+ <style:list-level-properties text:space-before="1.5cm" text:min-label-width="0.9cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="75%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.8cm" text:min-label-width="0.8cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="–">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="75%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="6.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="7.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="9cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="10.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="11.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-top="0.5cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="32pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-outline2" style:family="presentation" style:parent-style-name="Default-outline1">
+ <style:paragraph-properties fo:margin-top="0.4cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="28pt" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
+ </style:style>
+ <style:style style:name="Default-outline3" style:family="presentation" style:parent-style-name="Default-outline2">
+ <style:paragraph-properties fo:margin-top="0.3cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="24pt" style:font-size-asian="24pt" style:font-size-complex="24pt"/>
+ </style:style>
+ <style:style style:name="Default-outline4" style:family="presentation" style:parent-style-name="Default-outline3">
+ <style:paragraph-properties fo:margin-top="0.2cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline5" style:family="presentation" style:parent-style-name="Default-outline4">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline6" style:family="presentation" style:parent-style-name="Default-outline5">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline7" style:family="presentation" style:parent-style-name="Default-outline6">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline8" style:family="presentation" style:parent-style-name="Default-outline7">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-outline9" style:family="presentation" style:parent-style-name="Default-outline8">
+ <style:paragraph-properties fo:margin-top="0.1cm" fo:margin-bottom="0cm"/>
+ <style:text-properties fo:font-size="20pt" style:font-size-asian="20pt" style:font-size-complex="20pt"/>
+ </style:style>
+ <style:style style:name="Default-subtitle" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="Default-subtitle">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-align="center" fo:text-indent="0cm"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="32pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="32pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="32pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="Default-title" style:family="presentation">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:textarea-vertical-align="middle">
+ <text:list-style style:name="Default-title">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </style:graphic-properties>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-variant="normal" fo:text-transform="none" style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="44pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:letter-kerning="true" fo:background-color="transparent" style:font-name-asian="Noto Sans CJK SC Regular" style:font-family-asian="&apos;Noto Sans CJK SC Regular&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="44pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="44pt" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:presentation-page-layout style:name="AL0T26">
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="1.743cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="3.612cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="2.058cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ <presentation:placeholder presentation:object="handout" svg:x="15.414cm" svg:y="5.481cm" svg:width="10.556cm" svg:height="-0.233cm"/>
+ </style:presentation-page-layout>
+ <style:presentation-page-layout style:name="AL1T0">
+ <presentation:placeholder presentation:object="title" svg:x="2.058cm" svg:y="1.743cm" svg:width="23.912cm" svg:height="3.507cm"/>
+ <presentation:placeholder presentation:object="subtitle" svg:x="2.058cm" svg:y="5.838cm" svg:width="23.912cm" svg:height="13.23cm"/>
+ </style:presentation-page-layout>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-layout style:name="PM0">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="21cm" fo:page-height="29.7cm" style:print-orientation="portrait"/>
+ </style:page-layout>
+ <style:page-layout style:name="PM1">
+ <style:page-layout-properties fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:page-width="28cm" fo:page-height="21cm" style:print-orientation="landscape"/>
+ </style:page-layout>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties draw:background-size="border" draw:fill="none"/>
+ </style:style>
+ <style:style style:name="dp2" style:family="drawing-page">
+ <style:drawing-page-properties presentation:display-header="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="dp3" style:family="drawing-page">
+ <style:drawing-page-properties presentation:background-visible="true" presentation:background-objects-visible="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="gr3" style:family="graphic">
+ <style:graphic-properties style:protect="size"/>
+ </style:style>
+ <style:style style:name="pr1" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.449cm"/>
+ </style:style>
+ <style:style style:name="pr2" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="pr3" style:family="presentation" style:parent-style-name="Default-backgroundobjects">
+ <style:graphic-properties draw:stroke="none" draw:fill="none" draw:fill-color="#ffffff" draw:textarea-vertical-align="bottom" draw:auto-grow-height="false" fo:min-height="1.485cm"/>
+ </style:style>
+ <style:style style:name="pr4" style:family="presentation" style:parent-style-name="Default-title">
+ <style:graphic-properties fo:min-height="3.506cm"/>
+ </style:style>
+ <style:style style:name="pr5" style:family="presentation" style:parent-style-name="Default-subtitle">
+ <style:graphic-properties draw:fill-color="#ffffff" fo:min-height="12.179cm"/>
+ </style:style>
+ <style:style style:name="pr6" style:family="presentation" style:parent-style-name="Default-notes">
+ <style:graphic-properties draw:fill-color="#ffffff" fo:min-height="13.364cm"/>
+ </style:style>
+ <style:style style:name="co1" style:family="table-column">
+ <style:table-column-properties style:column-width="4.758cm" style:use-optimal-column-width="false"/>
+ </style:style>
+ <style:style style:name="co2" style:family="table-column">
+ <style:table-column-properties style:column-width="4.767cm" style:use-optimal-column-width="false"/>
+ </style:style>
+ <style:style style:name="ro1" style:family="table-row">
+ <style:table-row-properties style:row-height="2.848cm"/>
+ </style:style>
+ <style:style style:name="ro2" style:family="table-row">
+ <style:table-row-properties style:row-height="2.855cm"/>
+ </style:style>
+ <style:style style:name="ce1" style:family="table-cell">
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ <style:style style:name="ce2" style:family="table-cell">
+ <loext:graphic-properties draw:textarea-vertical-align="bottom"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P3" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P4" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties fo:text-align="end"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P5" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P6" style:family="paragraph">
+ <loext:graphic-properties draw:fill="none" draw:fill-color="#ffffff"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="14pt" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="P7" style:family="paragraph">
+ <loext:graphic-properties draw:fill-color="#ffffff"/>
+ </style:style>
+ <style:style style:name="P8" style:family="paragraph">
+ <style:paragraph-properties fo:text-align="center"/>
+ </style:style>
+ <text:list-style style:name="L1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="L2">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:list-level-properties text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="5.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </office:automatic-styles>
+ <office:master-styles>
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <style:handout-master presentation:presentation-page-layout-name="AL0T26" style:page-layout-name="PM0" draw:style-name="dp2">
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="2.898cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="11.474cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="1cm" svg:y="20.05cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="2.898cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="11.474cm"/>
+ <draw:page-thumbnail draw:layer="backgroundobjects" svg:width="8.999cm" svg:height="6.749cm" svg:x="11cm" svg:y="20.05cm"/>
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr1" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr2" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="28.215cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame draw:style-name="gr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="28.215cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </style:handout-master>
+ <style:master-page style:name="Default" style:page-layout-name="PM1" draw:style-name="dp1">
+ <draw:frame presentation:style-name="Default-title" draw:layer="backgroundobjects" svg:width="25.199cm" svg:height="3.506cm" svg:x="1.4cm" svg:y="0.837cm" presentation:class="title" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="Default-outline1" draw:layer="backgroundobjects" svg:width="25.199cm" svg:height="12.179cm" svg:x="1.4cm" svg:y="4.914cm" presentation:class="outline" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="6.523cm" svg:height="1.448cm" svg:x="1.4cm" svg:y="19.131cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P1"><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P6" draw:layer="backgroundobjects" svg:width="8.875cm" svg:height="1.448cm" svg:x="9.576cm" svg:y="19.131cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P5"><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr1" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="6.523cm" svg:height="1.448cm" svg:x="20.076cm" svg:y="19.131cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <presentation:notes style:page-layout-name="PM0">
+ <draw:page-thumbnail presentation:style-name="Default-title" draw:layer="backgroundobjects" svg:width="14.848cm" svg:height="11.136cm" svg:x="3.075cm" svg:y="2.257cm" presentation:class="page"/>
+ <draw:frame presentation:style-name="Default-notes" draw:layer="backgroundobjects" svg:width="16.799cm" svg:height="13.364cm" svg:x="2.1cm" svg:y="14.107cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="0cm" presentation:class="header">
+ <draw:text-box>
+ <text:p text:style-name="P1"><presentation:header/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr2" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="0cm" presentation:class="date-time">
+ <draw:text-box>
+ <text:p text:style-name="P3"><presentation:date-time/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr3" draw:text-style-name="P2" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="0cm" svg:y="28.215cm" presentation:class="footer">
+ <draw:text-box>
+ <text:p text:style-name="P1"><presentation:footer/></text:p>
+ </draw:text-box>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr3" draw:text-style-name="P4" draw:layer="backgroundobjects" svg:width="9.113cm" svg:height="1.484cm" svg:x="11.886cm" svg:y="28.215cm" presentation:class="page-number">
+ <draw:text-box>
+ <text:p text:style-name="P3"><text:page-number>&lt;number&gt;</text:page-number></text:p>
+ </draw:text-box>
+ </draw:frame>
+ </presentation:notes>
+ </style:master-page>
+ </office:master-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1" draw:style-name="dp3" draw:master-page-name="Default" presentation:presentation-page-layout-name="AL1T0">
+ <draw:frame presentation:style-name="pr4" draw:layer="layout" svg:width="25.199cm" svg:height="3.506cm" svg:x="1.4cm" svg:y="0.837cm" presentation:class="title" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame presentation:style-name="pr5" draw:text-style-name="P7" draw:layer="layout" svg:width="25.199cm" svg:height="12.179cm" svg:x="1.4cm" svg:y="4.914cm" presentation:class="subtitle" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ <draw:frame draw:style-name="standard" draw:layer="layout" svg:width="23.798cm" svg:height="11.398cm" svg:x="1.8cm" svg:y="5.4cm">
+ <table:table table:template-name="default" table:use-first-row-styles="true" table:use-banding-rows-styles="true">
+ <table:table-column table:style-name="co1"/>
+ <table:table-column table:style-name="co1"/>
+ <table:table-column table:style-name="co1"/>
+ <table:table-column table:style-name="co1"/>
+ <table:table-column table:style-name="co2"/>
+ <table:table-row table:style-name="ro1" table:default-cell-style-name="gray3">
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aa</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce1">
+ <text:p text:style-name="P8">aaaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaa</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro1" table:default-cell-style-name="gray2">
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce2">
+ <text:p text:style-name="P8">aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaaaa</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro1" table:default-cell-style-name="gray1">
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaaaa</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:default-cell-style-name="gray2">
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaaaaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p>aaa</text:p>
+ </table:table-cell>
+ </table:table-row>
+ </table:table><draw:image>
+ <office:binary-data>VkNMTVRGAQAxAAAAAAAAAAEAGwAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAPpcAACK
+ LAAAAAIAAIkAAQAhAAAAAQAbAAAADQD5+P//6er//wEAAAABAAAAAQAAAAEAAAAAlgABAAIA
+ AAAJAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUACAcAABgVAACeGQAA
+ GBUAAJ4ZAAA4IAAACAcAADggAAAIBwAAGBUAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hB
+ UEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7
+ AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/
+ ////AIYAAQAEAAAAAAAAAHEAAgAuAAAAAggAANoXAAADAAAAYQBhAGEAAAADAAMAAABfAQAA
+ vwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAACAQATAAAACQBY
+ VEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAACAQATAAAACQBY
+ VEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABY
+ VEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUAAACzs7MAAYQAAQAFAAAAAAAAAABv
+ AAIALgAAAAEABQCeGQAAGBUAADQsAAAYFQAANCwAADggAACeGQAAOCAAAJ4ZAAAYFQAAAAAA
+ AgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAP
+ AExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMA
+ AAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACACYAAACYGgAA2hcA
+ AAIAAABhAGEAAAACAAIAAABfAQAAvwIAAAIAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAA
+ AAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAA
+ AAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNI
+ QVBFX0VORAAAAAAAAAAAhQABAAUAAACzs7MAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQA0
+ LAAAGBUAAMo+AAAYFQAAyj4AADggAAA0LAAAOCAAADQsAAAYFQAAAAAAAgEAIAAAABYAWFRF
+ WFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24g
+ U2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAA
+ AQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACADYAAAC+MgAA2hcAAAQAAABhAGEAYQBh
+ AAAABAAEAAAAXwEAAL8CAAAeBAAAfQUAAAQAYQBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9D
+ AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9D
+ AgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9M
+ AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJ
+ TlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAAB
+ AAUAyj4AABgVAABgUQAAGBUAAGBRAAA4IAAAyj4AADggAADKPgAAGBUAAAAAAAIBACAAAAAW
+ AFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0
+ aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEA
+ AgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgA+AAAAxD8AANoXAAAFAAAAYQBh
+ AGEAYQBhAAAABQAFAAAAXwEAAL8CAAAeBAAAfQUAAN0GAAAFAGEAYQBhAGEAYQAAAgEAEwAA
+ AAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAA
+ AAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAA
+ AAkAWFRFWFRfRU9DBAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAA
+ AAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAA
+ AAAAAIUAAQAFAAAAs7OzAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAYFEAABgVAAD/YwAA
+ GBUAAP9jAAA4IAAAYFEAADggAABgUQAAGBUAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hB
+ UEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7
+ AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/
+ ////AIYAAQAEAAAAAAAAAHEAAgA2AAAAWlIAANoXAAAEAAAAYQBhAGEAYQAAAAQABAAAAF8B
+ AAC/AgAAHgQAAH0FAAAEAGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIB
+ ABMAAAAJAFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIB
+ ABMAAAAJAFhURVhUX0VPQwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIB
+ ABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5E
+ AAAAAAAAAACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFAAgHAAA4IAAA
+ nhkAADggAACeGQAAWCsAAAgHAABYKwAACAcAADggAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlO
+ VFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAA
+ AAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAF
+ AAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAAIIAAD6IgAAAwAAAGEAYQBhAAAAAwADAAAA
+ XwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAA
+ AAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAA
+ AAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAA
+ ABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAA
+ AAAAbwACAC4AAAABAAUAnhkAADggAAA0LAAAOCAAADQsAABYKwAAnhkAAFgrAACeGQAAOCAA
+ AAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7
+ AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAA
+ AP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAmBoA
+ APoiAAADAAAAYQBhAGEAAAADAAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBY
+ VEVYVF9FT0MAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBY
+ VEVYVF9FT0MCAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBY
+ VEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAA
+ hQABAAUAAADMzMwAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQA0LAAAOCAAAMo+AAA4IAAA
+ yj4AAFgrAAA0LAAAWCsAADQsAAA4IAAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9C
+ RUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD/
+ /wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8A
+ hgABAAQAAAAAAAAAcQACAC4AAABuMwAATyoAAAMAAABhAGEAYQAAAAMAAwAAAF8BAAC/AgAA
+ HgQAAAMAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhU
+ X0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhU
+ X0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhU
+ X1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAu
+ AAAAAQAFAMo+AAA4IAAAYFEAADggAABgUQAAWCsAAMo+AABYKwAAyj4AADggAAAAAAACAQAg
+ AAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGli
+ ZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAA
+ iAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAMQ/AAD6IgAAAwAA
+ AGEAYQBhAAAAAwADAAAAXwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9D
+ AAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9D
+ AgAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9Q
+ AAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAA
+ zMzMAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAYFEAADggAAD/YwAAOCAAAP9jAABYKwAA
+ YFEAAFgrAABgUQAAOCAAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAA
+ AAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAA
+ AAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAA
+ AAAAAHEAAgBGAAAAWlIAAPoiAAAGAAAAYQBhAGEAYQBhAGEAAAAGAAYAAABfAQAAvwIAAB4E
+ AAB9BQAA3QYAADwIAAAGAGEAYQBhAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAA
+ AAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAA
+ AAACAQATAAAACQBYVEVYVF9FT0MDAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MEAAAAAAAA
+ AAACAQATAAAACQBYVEVYVF9FT0MFAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAA
+ AAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBF
+ X0VORAAAAAAAAAAAhQABAAUAAADm5uYAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQAIBwAA
+ WCsAAJ4ZAABYKwAAnhkAAHg2AAAIBwAAeDYAAAgHAABYKwAAAAAAAgEAIAAAABYAWFRFWFRf
+ UEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2Fu
+ cwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCH
+ AAEABQAAAP////8AhgABAAQAAAAAAAAAcQACAC4AAAACCAAAGi4AAAMAAABhAGEAYQAAAAMA
+ AwAAAF8BAAC/AgAAHgQAAAMAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIB
+ ABMAAAAJAFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIB
+ ABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIB
+ AB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAObm5gABhAABAAUA
+ AAAAAAAAAG8AAgAuAAAAAQAFAJ4ZAABYKwAANCwAAFgrAAA0LAAAeDYAAJ4ZAAB4NgAAnhkA
+ AFgrAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAA
+ AAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAA
+ AAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIAPgAA
+ AJgaAAAaLgAABQAAAGEAYQBhAGEAYQAAAAUABQAAAF8BAAC/AgAAHgQAAH0FAADdBgAABQBh
+ AGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ QwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ QwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwQAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ TAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BB
+ SU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAAAObm5gABhAABAAUAAAAAAAAAAG8AAgAuAAAA
+ AQAFADQsAABYKwAAyj4AAFgrAADKPgAAeDYAADQsAAB4NgAANCwAAFgrAAAAAAACAQAgAAAA
+ FgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJh
+ dGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAAB
+ AAIAAAABAIcAAQAFAAAA/////wCGAAEABAAAAAAAAABxAAIALgAAAC4tAAAaLgAAAwAAAGEA
+ YQBhAAAAAwADAAAAXwEAAL8CAAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAA
+ AAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAA
+ AAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAA
+ AAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAA5ubm
+ AAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUAyj4AAFgrAABgUQAAWCsAAGBRAAB4NgAAyj4A
+ AHg2AADKPgAAWCsAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAA
+ AIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAA
+ AAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAA
+ AHEAAgA2AAAAxD8AABouAAAEAAAAYQBhAGEAYQAAAAQABAAAAF8BAAC/AgAAHgQAAH0FAAAE
+ AGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ QwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ QwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+ UAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAAAACFAAEABQAA
+ AObm5gABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFAGBRAABYKwAA/2MAAFgrAAD/YwAAeDYA
+ AGBRAAB4NgAAYFEAAFgrAAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBFX0JFR0lOAAAA
+ AAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIAAP//AAACAAUA
+ AAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA/////wCGAAEABAAA
+ AAAAAABxAAIARgAAAFpSAAAaLgAABgAAAGEAYQBhAGEAYQBhAAAABgAGAAAAXwEAAL8CAAAe
+ BAAAfQUAAN0GAAA8CAAABgBhAGEAYQBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAA
+ AAAAAgEAEwAAAAkAWFRFWFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAA
+ AAAAAgEAEwAAAAkAWFRFWFRfRU9DAwAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DBAAAAAAA
+ AAAAAgEAEwAAAAkAWFRFWFRfRU9DBQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9MAAAAAAAA
+ AAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRFWFRfUEFJTlRTSEFQ
+ RV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAAAAAAbwACAC4AAAABAAUACAcA
+ AHg2AACeGQAAeDYAAJ4ZAACfQQAACAcAAJ9BAAAIBwAAeDYAAAAAAAIBACAAAAAWAFhURVhU
+ X1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNh
+ bnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEA
+ hwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAAggAADo5AAADAAAAYQBhAGEAAAAD
+ AAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAAC
+ AQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAAC
+ AQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAAC
+ AQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUAAADMzMwAAYQAAQAF
+ AAAAAAAAAABvAAIALgAAAAEABQCeGQAAeDYAADQsAAB4NgAANCwAAJ9BAACeGQAAn0EAAJ4Z
+ AAB4NgAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEA
+ AAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAFAAAAAAAAAAkcAAAA
+ AAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACAEYA
+ AACYGgAAOjkAAAYAAABhAGEAYQBhAGEAYQAAAAYABgAAAF8BAAC/AgAAHgQAAH0FAADdBgAA
+ PAgAAAYAYQBhAGEAYQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJ
+ AFhURVhUX0VPQwEAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJ
+ AFhURVhUX0VPQwMAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwQAAAAAAAAAAAIBABMAAAAJ
+ AFhURVhUX0VPQwUAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMAAAAJ
+ AFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAAAAAA
+ AACFAAEABQAAAMzMzAABhAABAAUAAAAAAAAAAG8AAgAuAAAAAQAFADQsAAB4NgAAyj4AAHg2
+ AADKPgAAn0EAADQsAACfQQAANCwAAHg2AAAAAAACAQAgAAAAFgBYVEVYVF9QQUlOVFNIQVBF
+ X0JFR0lOAAAAAAAAAACKAAEAQQAAAAMAOwAAAA8ATGliZXJhdGlvbiBTYW5zAAAAAAAAewIA
+ AP//AAACAAUAAAAAAAAACRwAAAAAAAAAAAD/AwAAAAAAiAABAAIAAAABAIcAAQAFAAAA////
+ /wCGAAEABAAAAAAAAABxAAIALgAAAC4tAAA6OQAAAwAAAGEAYQBhAAAAAwADAAAAXwEAAL8C
+ AAAeBAAAAwBhAGEAYQAAAgEAEwAAAAkAWFRFWFRfRU9DAAAAAAAAAAAAAgEAEwAAAAkAWFRF
+ WFRfRU9DAQAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9DAgAAAAAAAAAAAgEAEwAAAAkAWFRF
+ WFRfRU9MAAAAAAAAAAAAAgEAEwAAAAkAWFRFWFRfRU9QAAAAAAAAAAAAAgEAHgAAABQAWFRF
+ WFRfUEFJTlRTSEFQRV9FTkQAAAAAAAAAAIUAAQAFAAAAzMzMAAGEAAEABQAAAAAAAAAAbwAC
+ AC4AAAABAAUAyj4AAHg2AABgUQAAeDYAAGBRAACfQQAAyj4AAJ9BAADKPgAAeDYAAAAAAAIB
+ ACAAAAAWAFhURVhUX1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBM
+ aWJlcmF0aW9uIFNhbnMAAAAAAAB7AgAA//8AAAIABQAAAAAAAAAJHAAAAAAAAAAAAP8DAAAA
+ AACIAAEAAgAAAAEAhwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAxD8AADo5AAAD
+ AAAAYQBhAGEAAAADAAMAAABfAQAAvwIAAB4EAAADAGEAYQBhAAACAQATAAAACQBYVEVYVF9F
+ T0MAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9F
+ T0MCAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9F
+ T1AAAAAAAAAAAAACAQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAhQABAAUA
+ AADMzMwAAYQAAQAFAAAAAAAAAABvAAIALgAAAAEABQBgUQAAeDYAAP9jAAB4NgAA/2MAAJ9B
+ AABgUQAAn0EAAGBRAAB4NgAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAA
+ AAAAAAAAigABAEEAAAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAHsCAAD//wAAAgAF
+ AAAAAAAAAAkcAAAAAAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQA
+ AAAAAAAAcQACAC4AAABaUgAAOjkAAAMAAABhAGEAYQAAAAMAAwAAAF8BAAC/AgAAHgQAAAMA
+ YQBhAGEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwEA
+ AAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAA
+ AAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5U
+ U0hBUEVfRU5EAAAAAAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAI
+ BwAAGBUAAAgHAAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUA
+ AAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAABgVAACeGQAAOCAAAAQAGgAAAAEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQAD
+ ADMAAAACAAgHAAAYFQAAnhkAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA
+ AACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgCeGQAAGBUAAJ4ZAAA4IAAA
+ BAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAA
+ AAAAAABtAAMAMwAAAAIANCwAABgVAAA0LAAAOCAAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAAAYFQAA
+ NCwAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wAB
+ hQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0LAAAGBUAADQsAAA4IAAABAAaAAAAAQAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA
+ yj4AABgVAADKPgAAOCAAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAF
+ AAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACADQsAAAYFQAAyj4AABgVAAAEABoAAAAB
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0A
+ AwAzAAAAAgDKPgAAGBUAAMo+AAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA
+ AAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEAABgVAABgUQAAOCAA
+ AAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAA
+ AAAAAAAAbQADADMAAAACAMo+AAAYFQAAYFEAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgBgUQAAGBUA
+ AGBRAAA4IAAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8A
+ AYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA/2MAABgVAAD/YwAAOCAAAAQAGgAAAAEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAAC
+ AGBRAAAYFQAA/2MAABgVAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEA
+ BQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAOCAAAAgHAABYKwAABAAaAAAA
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABt
+ AAMAMwAAAAIAnhkAADggAACeGQAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAE
+ AAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAAgHAAA4IAAAnhkAADgg
+ AAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUA
+ AAAAAAAAAG0AAwAzAAAAAgCeGQAAOCAAAJ4ZAABYKwAABAAaAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIANCwAADgg
+ AAA0LAAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////
+ AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAAA4IAAANCwAADggAAAEABoAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAA
+ AgA0LAAAOCAAADQsAABYKwAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAAB
+ AAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAyj4AADggAADKPgAAWCsAAAQAGgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAA
+ bQADADMAAAACADQsAAA4IAAAyj4AADggAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ BAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAOCAAAMo+AABY
+ KwAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAF
+ AAAAAAAAAABtAAMAMwAAAAIAYFEAADggAABgUQAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAMo+AAA4
+ IAAAYFEAADggAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP//
+ /wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgBgUQAAOCAAAGBRAABYKwAABAAaAAAAAQAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAA
+ AAIA/2MAADggAAD/YwAAWCsAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQA
+ AQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAAA4IAAA/2MAADggAAAEABoA
+ AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAA
+ AG0AAwAzAAAAAgAIBwAAWCsAAAgHAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAAFgrAACeGQAA
+ eDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEA
+ BQAAAAAAAAAAbQADADMAAAACAAgHAABYKwAAnhkAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgCeGQAA
+ WCsAAJ4ZAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD/
+ //8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIANCwAAFgrAAA0LAAAeDYAAAQAGgAAAAEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMA
+ AAACAJ4ZAABYKwAANCwAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACE
+ AAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0LAAAWCsAADQsAAB4NgAABAAa
+ AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAA
+ AABtAAMAMwAAAAIAyj4AAFgrAADKPgAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACADQsAABYKwAAyj4A
+ AFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQAB
+ AAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAWCsAAMo+AAB4NgAABAAaAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEA
+ AFgrAABgUQAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA
+ ////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAMo+AABYKwAAYFEAAFgrAAAEABoAAAABAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAz
+ AAAAAgBgUQAAWCsAAGBRAAB4NgAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAA
+ hAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA/2MAAFgrAAD/YwAAeDYAAAQA
+ GgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAA
+ AAAAbQADADMAAAACAGBRAABYKwAA/2MAAFgrAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAeDYAAAgH
+ AACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUA
+ AQAFAAAAAAAAAABtAAMAMwAAAAIACAcAAJ9BAACeGQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4Z
+ AAB4NgAAnhkAAJ9BAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAA
+ AP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgAIBwAAeDYAAJ4ZAAB4NgAABAAaAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMA
+ MwAAAAIAnhkAAHg2AACeGQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA
+ AIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAJ4ZAACfQQAANCwAAJ9BAAAE
+ ABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAA
+ AAAAAG0AAwAzAAAAAgA0LAAAeDYAADQsAACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAnhkAAHg2AAA0
+ LAAAeDYAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGF
+ AAEABQAAAAAAAAAAbQADADMAAAACADQsAAB4NgAANCwAAJ9BAAAEABoAAAABAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgA0
+ LAAAn0EAAMo+AACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUA
+ AAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAyj4AAHg2AADKPgAAn0EAAAQAGgAAAAEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQAD
+ ADMAAAACADQsAAB4NgAAyj4AAHg2AAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA
+ AACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAeDYAAMo+AACfQQAA
+ BAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAA
+ AAAAAABtAAMAMwAAAAIAyj4AAJ9BAABgUQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAEAAAAAIQAAQAFAAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAAB4NgAA
+ YFEAAJ9BAAAEABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wAB
+ hQABAAUAAAAAAAAAAG0AAwAzAAAAAgDKPgAAeDYAAGBRAAB4NgAABAAaAAAAAQAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAQAAAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIA
+ YFEAAHg2AABgUQAAn0EAAAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAIQAAQAF
+ AAAA////AAGFAAEABQAAAAAAAAAAbQADADMAAAACAGBRAACfQQAA/2MAAJ9BAAAEABoAAAAB
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACEAAEABQAAAP///wABhQABAAUAAAAAAAAAAG0A
+ AwAzAAAAAgD/YwAAeDYAAP9jAACfQQAABAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA
+ AAAAhAABAAUAAAD///8AAYUAAQAFAAAAAAAAAABtAAMAMwAAAAIAYFEAAHg2AAD/YwAAeDYA
+ AAQAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAA==
+ </office:binary-data>
+ </draw:image>
+ </draw:frame>
+ <presentation:notes draw:style-name="dp2">
+ <draw:page-thumbnail draw:style-name="gr3" draw:layer="layout" svg:width="14.848cm" svg:height="11.136cm" svg:x="3.075cm" svg:y="2.257cm" draw:page-number="1" presentation:class="page"/>
+ <draw:frame presentation:style-name="pr6" draw:text-style-name="P7" draw:layer="layout" svg:width="16.799cm" svg:height="13.364cm" svg:x="2.1cm" svg:y="14.107cm" presentation:class="notes" presentation:placeholder="true">
+ <draw:text-box/>
+ </draw:frame>
+ </presentation:notes>
+ </draw:page>
+ <presentation:settings presentation:mouse-visible="false"/>
+ </office:presentation>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/sd/qa/unit/tiledrendering/data/tdf105502.odp b/sd/qa/unit/tiledrendering/data/tdf105502.odp
new file mode 100644
index 000000000..2150f1152
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf105502.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/tdf115783.fodp b/sd/qa/unit/tiledrendering/data/tdf115783.fodp
new file mode 100644
index 000000000..d9ada63ad
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf115783.fodp
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:font-face-decls>
+ <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:automatic-styles>
+ <style:style style:name="co1" style:family="table-column">
+ <style:table-column-properties style:column-width="4.3cm" style:use-optimal-column-width="false"/>
+ </style:style>
+ <style:style style:name="co2" style:family="table-column">
+ <style:table-column-properties style:column-width="6.241cm" style:use-optimal-column-width="false"/>
+ </style:style>
+ <style:style style:name="co3" style:family="table-column">
+ <style:table-column-properties style:column-width="4.909cm" style:use-optimal-column-width="false"/>
+ </style:style>
+ <style:style style:name="ro1" style:family="table-row">
+ <style:table-row-properties style:row-height="1.364cm"/>
+ </style:style>
+ <style:style style:name="ce1" style:family="table-cell">
+ <loext:graphic-properties draw:fill="none" style:repeat="repeat"/>
+ <style:paragraph-properties fo:border="0.03pt solid #000000"/>
+ <style:text-properties style:font-name="Arial" fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties style:font-name="Arial" fo:font-size="12pt"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1">
+ <draw:frame draw:style-name="standard" draw:layer="layout" svg:width="15.449cm" svg:height="1.363cm" svg:x="2.179cm" svg:y="3.302cm">
+ <table:table table:template-name="default">
+ <table:table-column table:style-name="co1"/>
+ <table:table-column table:style-name="co2"/>
+ <table:table-column table:style-name="co3"/>
+ <table:table-row table:style-name="ro1" table:default-cell-style-name="ce1">
+ <table:table-cell>
+ <text:p><text:span text:style-name="T1">before</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p><text:span text:style-name="T1">hello</text:span></text:p>
+ </table:table-cell>
+ <table:table-cell>
+ <text:p><text:span text:style-name="T1">after</text:span></text:p>
+ </table:table-cell>
+ </table:table-row>
+ </table:table>
+ </draw:frame>
+ </draw:page>
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/tiledrendering/data/tdf115873-group.fodp b/sd/qa/unit/tiledrendering/data/tdf115873-group.fodp
new file mode 100644
index 000000000..603ec4c7e
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf115873-group.fodp
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:automatic-styles>
+ <style:style style:name="dp1" style:family="drawing-page">
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="2.15cm" fo:min-width="1.3cm"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="1.55cm" fo:min-width="1.3cm"/>
+ </style:style>
+ <style:style style:name="gr3" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="1.55cm" fo:min-width="2.1cm"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1" draw:style-name="dp1">
+ <draw:g draw:name="Group 1">
+ <draw:custom-shape draw:name="Rectangle 1" draw:style-name="gr1" draw:layer="layout" svg:width="1.8cm" svg:height="2.4cm" svg:x="2.8cm" svg:y="2.8cm">
+ <text:p/>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ <draw:custom-shape draw:name="Rectangle 2" draw:style-name="gr2" draw:layer="layout" svg:width="1.8cm" svg:height="1.8cm" svg:x="6cm" svg:y="3.2cm">
+ <text:p/>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ </draw:g>
+ <draw:custom-shape draw:name="Rectangle 3" draw:style-name="gr3" draw:layer="layout" svg:width="2.6cm" svg:height="1.8cm" svg:x="4.6cm" svg:y="7.4cm">
+ <text:p/>
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ </draw:page>
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/tiledrendering/data/tdf115873.fodp b/sd/qa/unit/tiledrendering/data/tdf115873.fodp
new file mode 100644
index 000000000..1633a0471
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf115873.fodp
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.presentation">
+ <office:font-face-decls>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" style:font-name="Liberation Sans" fo:font-size="24pt" fo:language="en" fo:country="US" style:font-size-asian="24pt" style:language-asian="zh" style:country-asian="CN" style:font-size-complex="24pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="justify" draw:textarea-vertical-align="middle" draw:auto-grow-height="false" fo:min-height="2.544cm" fo:min-width="4.58cm"/>
+ </style:style>
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+ <draw:page draw:name="page1">
+ <draw:custom-shape draw:name="Rectangle" draw:style-name="gr1" draw:layer="layout" svg:width="5.08cm" svg:height="2.794cm" svg:x="12.954cm" svg:y="7.62cm">
+ <draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
+ </draw:custom-shape>
+ </draw:page>
+ </office:presentation>
+ </office:body>
+</office:document>
diff --git a/sd/qa/unit/tiledrendering/data/tdf118354.odp b/sd/qa/unit/tiledrendering/data/tdf118354.odp
new file mode 100644
index 000000000..beb132c7e
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf118354.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/tdf81754.pptx b/sd/qa/unit/tiledrendering/data/tdf81754.pptx
new file mode 100644
index 000000000..8a1fa1dcf
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/tdf81754.pptx
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/data/title-shape.odp b/sd/qa/unit/tiledrendering/data/title-shape.odp
new file mode 100644
index 000000000..15d39d68e
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/data/title-shape.odp
Binary files differ
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
new file mode 100644
index 000000000..2bd405ff6
--- /dev/null
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -0,0 +1,2481 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "../sdmodeltestbase.hxx"
+#include <app.hrc>
+#include <test/bootstrapfixture.hxx>
+#include <test/helper/transferable.hxx>
+#include <test/xmltesttools.hxx>
+#include <boost/property_tree/json_parser.hpp>
+#include <LibreOfficeKit/LibreOfficeKitEnums.h>
+#include <sfx2/lokhelper.hxx>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <comphelper/dispatchcommand.hxx>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/propertysequence.hxx>
+#include <comphelper/string.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editids.hrc>
+#include <editeng/editobj.hxx>
+#include <editeng/editview.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/outliner.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/outlobj.hxx>
+#include <osl/conditn.hxx>
+#include <sfx2/dispatch.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <svl/srchitem.hxx>
+#include <svl/stritem.hxx>
+#include <svl/intitem.hxx>
+#include <comphelper/lok.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/svdoutl.hxx>
+#include <unotools/datetime.hxx>
+
+#include <DrawDocShell.hxx>
+#include <ViewShellBase.hxx>
+#include <ViewShell.hxx>
+#include <sdpage.hxx>
+#include <unomodel.hxx>
+#include <drawdoc.hxx>
+#include <undo/undomanager.hxx>
+#include <sfx2/request.hxx>
+#include <svx/svxids.hrc>
+#include <pres.hxx>
+#include <navigatr.hxx>
+#include <vcl/cursor.hxx>
+#include <vcl/scheduler.hxx>
+#include <vcl/vclevent.hxx>
+
+#include <chrono>
+#include <cstdlib>
+
+using namespace css;
+
+static char const DATA_DIRECTORY[] = "/sd/qa/unit/tiledrendering/data/";
+
+static std::ostream& operator<<(std::ostream& os, ViewShellId id)
+{
+ os << static_cast<sal_Int32>(id);
+ return os;
+}
+
+class SdTiledRenderingTest : public SdModelTestBase, public XmlTestTools
+{
+public:
+ SdTiledRenderingTest();
+ virtual void setUp() override;
+ virtual void tearDown() override;
+
+ void testCreateDestroy();
+ void testCreateView();
+ void testRegisterCallback();
+ void testPostKeyEvent();
+ void testPostMouseEvent();
+ void testSetTextSelection();
+ void testGetTextSelection();
+ void testSetGraphicSelection();
+ void testUndoShells();
+ void testResetSelection();
+ void testSearch();
+ void testSearchAll();
+ void testSearchAllSelections();
+ void testSearchAllNotifications();
+ void testSearchAllFollowedBySearch();
+ void testDontSearchInMasterPages();
+ void testInsertDeletePage();
+ void testInsertTable();
+ void testPartHash();
+ void testResizeTable();
+ void testResizeTableColumn();
+ void testViewCursors();
+ void testViewCursorParts();
+ void testCursorViews();
+ void testCursorVisibility_SingleClick();
+ void testCursorVisibility_DoubleClick();
+ void testCursorVisibility_MultiView();
+ void testCursorVisibility_Escape();
+ void testViewLock();
+ void testUndoLimiting();
+ void testCreateViewGraphicSelection();
+ void testCreateViewTextCursor();
+ void testTdf102223();
+ void testTdf118354();
+ void testPostKeyEventInvalidation();
+ void testTdf103083();
+ void testTdf104405();
+ void testTdf81754();
+ void testTdf105502();
+ void testCommentCallbacks();
+ void testMultiViewInsertDeletePage();
+ void testDisableUndoRepair();
+ void testDocumentRepair();
+ void testLanguageStatus();
+ void testDefaultView();
+ void testIMESupport();
+ void testTdf115783();
+ void testPasteTextOnSlide();
+ void testTdf115873();
+ void testTdf115873Group();
+ void testCutSelectionChange();
+ void testRegenerateDiagram();
+ void testLanguageAllText();
+ void testInsertDeletePageInvalidation();
+
+ CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
+ CPPUNIT_TEST(testCreateDestroy);
+ CPPUNIT_TEST(testCreateView);
+ CPPUNIT_TEST(testRegisterCallback);
+ CPPUNIT_TEST(testPostKeyEvent);
+ CPPUNIT_TEST(testPostMouseEvent);
+ CPPUNIT_TEST(testSetTextSelection);
+ CPPUNIT_TEST(testGetTextSelection);
+ CPPUNIT_TEST(testSetGraphicSelection);
+ CPPUNIT_TEST(testUndoShells);
+ CPPUNIT_TEST(testResetSelection);
+ CPPUNIT_TEST(testSearch);
+ CPPUNIT_TEST(testSearchAll);
+ CPPUNIT_TEST(testSearchAllSelections);
+ CPPUNIT_TEST(testSearchAllNotifications);
+ CPPUNIT_TEST(testSearchAllFollowedBySearch);
+ CPPUNIT_TEST(testDontSearchInMasterPages);
+ CPPUNIT_TEST(testInsertDeletePage);
+ CPPUNIT_TEST(testInsertTable);
+ CPPUNIT_TEST(testPartHash);
+ CPPUNIT_TEST(testResizeTable);
+ CPPUNIT_TEST(testResizeTableColumn);
+ CPPUNIT_TEST(testViewCursors);
+ CPPUNIT_TEST(testViewCursorParts);
+ CPPUNIT_TEST(testCursorViews);
+ CPPUNIT_TEST(testCursorVisibility_SingleClick);
+ CPPUNIT_TEST(testCursorVisibility_DoubleClick);
+ CPPUNIT_TEST(testCursorVisibility_MultiView);
+ CPPUNIT_TEST(testCursorVisibility_Escape);
+ CPPUNIT_TEST(testViewLock);
+ CPPUNIT_TEST(testUndoLimiting);
+ CPPUNIT_TEST(testCreateViewGraphicSelection);
+ CPPUNIT_TEST(testCreateViewTextCursor);
+ CPPUNIT_TEST(testTdf102223);
+ CPPUNIT_TEST(testTdf118354);
+ CPPUNIT_TEST(testPostKeyEventInvalidation);
+ CPPUNIT_TEST(testTdf103083);
+ CPPUNIT_TEST(testTdf104405);
+ CPPUNIT_TEST(testTdf81754);
+ CPPUNIT_TEST(testTdf105502);
+ CPPUNIT_TEST(testCommentCallbacks);
+ CPPUNIT_TEST(testMultiViewInsertDeletePage);
+ CPPUNIT_TEST(testDisableUndoRepair);
+ CPPUNIT_TEST(testDocumentRepair);
+ CPPUNIT_TEST(testLanguageStatus);
+ CPPUNIT_TEST(testDefaultView);
+ CPPUNIT_TEST(testIMESupport);
+ CPPUNIT_TEST(testTdf115783);
+ CPPUNIT_TEST(testPasteTextOnSlide);
+ CPPUNIT_TEST(testTdf115873);
+ CPPUNIT_TEST(testTdf115873Group);
+ CPPUNIT_TEST(testCutSelectionChange);
+ CPPUNIT_TEST(testRegenerateDiagram);
+ CPPUNIT_TEST(testLanguageAllText);
+ CPPUNIT_TEST(testInsertDeletePageInvalidation);
+
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+ SdXImpressDocument* createDoc(const char* pName, const uno::Sequence<beans::PropertyValue>& rArguments = uno::Sequence<beans::PropertyValue>());
+ static void callback(int nType, const char* pPayload, void* pData);
+ void callbackImpl(int nType, const char* pPayload);
+ xmlDocUniquePtr parseXmlDump();
+
+ uno::Reference<lang::XComponent> mxComponent;
+ ::tools::Rectangle m_aInvalidation;
+ std::vector<::tools::Rectangle> m_aSelection;
+ bool m_bFound;
+ sal_Int32 m_nPart;
+ std::vector<OString> m_aSearchResultSelection;
+ std::vector<int> m_aSearchResultPart;
+ int m_nSelectionBeforeSearchResult;
+ int m_nSelectionAfterSearchResult;
+
+ /// For document size changed callback.
+ osl::Condition m_aDocumentSizeCondition;
+ xmlBufferPtr m_pXmlBuffer;
+};
+
+SdTiledRenderingTest::SdTiledRenderingTest()
+ : m_bFound(true),
+ m_nPart(0),
+ m_nSelectionBeforeSearchResult(0),
+ m_nSelectionAfterSearchResult(0),
+ m_pXmlBuffer(nullptr)
+{
+}
+
+void SdTiledRenderingTest::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ // prevent showing warning message box
+ setenv("OOX_NO_SMARTART_WARNING", "1", 1);
+ comphelper::LibreOfficeKit::setActive(true);
+
+ mxDesktop.set(css::frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory())));
+}
+
+void SdTiledRenderingTest::tearDown()
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ if (m_pXmlBuffer)
+ xmlBufferFree(m_pXmlBuffer);
+
+ comphelper::LibreOfficeKit::setActive(false);
+
+ test::BootstrapFixture::tearDown();
+}
+
+SdXImpressDocument* SdTiledRenderingTest::createDoc(const char* pName, const uno::Sequence<beans::PropertyValue>& rArguments)
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc(DATA_DIRECTORY) + OUString::createFromAscii(pName), "com.sun.star.presentation.PresentationDocument");
+ SdXImpressDocument* pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ CPPUNIT_ASSERT(pImpressDocument);
+ pImpressDocument->initializeForTiledRendering(rArguments);
+ return pImpressDocument;
+}
+
+void SdTiledRenderingTest::callback(int nType, const char* pPayload, void* pData)
+{
+ static_cast<SdTiledRenderingTest*>(pData)->callbackImpl(nType, pPayload);
+}
+
+static std::vector<OUString> lcl_convertSeparated(const OUString& rString, sal_Unicode nSeparator)
+{
+ std::vector<OUString> aRet;
+
+ sal_Int32 nIndex = 0;
+ do
+ {
+ OUString aToken = rString.getToken(0, nSeparator, nIndex);
+ aToken = aToken.trim();
+ if (!aToken.isEmpty())
+ aRet.push_back(aToken);
+ }
+ while (nIndex >= 0);
+
+ return aRet;
+}
+
+static void lcl_convertRectangle(const OUString& rString, ::tools::Rectangle& rRectangle)
+{
+ uno::Sequence<OUString> aSeq = comphelper::string::convertCommaSeparated(rString);
+ CPPUNIT_ASSERT(aSeq.getLength() == 4 || aSeq.getLength() == 5);
+ rRectangle.setX(aSeq[0].toInt32());
+ rRectangle.setY(aSeq[1].toInt32());
+ rRectangle.setWidth(aSeq[2].toInt32());
+ rRectangle.setHeight(aSeq[3].toInt32());
+}
+
+void SdTiledRenderingTest::callbackImpl(int nType, const char* pPayload)
+{
+ switch (nType)
+ {
+ case LOK_CALLBACK_INVALIDATE_TILES:
+ {
+ OUString aPayload = OUString::createFromAscii(pPayload);
+ if (aPayload != "EMPTY" && m_aInvalidation.IsEmpty())
+ lcl_convertRectangle(aPayload, m_aInvalidation);
+ }
+ break;
+ case LOK_CALLBACK_TEXT_SELECTION:
+ {
+ OUString aPayload = OUString::createFromAscii(pPayload);
+ m_aSelection.clear();
+ for (const OUString& rString : lcl_convertSeparated(aPayload, u';'))
+ {
+ ::tools::Rectangle aRectangle;
+ lcl_convertRectangle(rString, aRectangle);
+ m_aSelection.push_back(aRectangle);
+ }
+ if (m_aSearchResultSelection.empty())
+ ++m_nSelectionBeforeSearchResult;
+ else
+ ++m_nSelectionAfterSearchResult;
+ }
+ break;
+ case LOK_CALLBACK_SEARCH_NOT_FOUND:
+ {
+ m_bFound = false;
+ }
+ break;
+ case LOK_CALLBACK_DOCUMENT_SIZE_CHANGED:
+ {
+ m_aDocumentSizeCondition.set();
+ }
+ break;
+ case LOK_CALLBACK_SET_PART:
+ {
+ OUString aPayload = OUString::createFromAscii(pPayload);
+ m_nPart = aPayload.toInt32();
+ }
+ break;
+ case LOK_CALLBACK_SEARCH_RESULT_SELECTION:
+ {
+ m_aSearchResultSelection.clear();
+ m_aSearchResultPart.clear();
+ boost::property_tree::ptree aTree;
+ std::stringstream aStream(pPayload);
+ boost::property_tree::read_json(aStream, aTree);
+ for (const boost::property_tree::ptree::value_type& rValue : aTree.get_child("searchResultSelection"))
+ {
+ m_aSearchResultSelection.emplace_back(rValue.second.get<std::string>("rectangles").c_str());
+ m_aSearchResultPart.push_back(std::atoi(rValue.second.get<std::string>("part").c_str()));
+ }
+ }
+ break;
+ }
+}
+
+xmlDocUniquePtr SdTiledRenderingTest::parseXmlDump()
+{
+ if (m_pXmlBuffer)
+ xmlBufferFree(m_pXmlBuffer);
+
+ // Create the xml writer.
+ m_pXmlBuffer = xmlBufferCreate();
+ xmlTextWriterPtr pXmlWriter = xmlNewTextWriterMemory(m_pXmlBuffer, 0);
+ xmlTextWriterStartDocument(pXmlWriter, nullptr, nullptr, nullptr);
+
+ // Create the dump.
+ SdXImpressDocument* pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ CPPUNIT_ASSERT(pImpressDocument);
+ pImpressDocument->GetDoc()->dumpAsXml(pXmlWriter);
+
+ // Delete the xml writer.
+ xmlTextWriterEndDocument(pXmlWriter);
+ xmlFreeTextWriter(pXmlWriter);
+
+ return xmlDocUniquePtr(xmlParseMemory(reinterpret_cast<const char*>(xmlBufferContent(m_pXmlBuffer)), xmlBufferLength(m_pXmlBuffer)));
+}
+
+void SdTiledRenderingTest::testCreateDestroy()
+{
+ createDoc("dummy.odp");
+ // Nothing to do, the tearDown call should cleanup.
+}
+
+void SdTiledRenderingTest::testCreateView()
+{
+ createDoc("dummy.odp");
+
+ SfxLokHelper::createView();
+}
+
+void SdTiledRenderingTest::testRegisterCallback()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ // Start text edit of the empty title shape.
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->SdrBeginTextEdit(pObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+
+ // Check that the top left 256x256px tile would be invalidated.
+ CPPUNIT_ASSERT(!m_aInvalidation.IsEmpty());
+ ::tools::Rectangle aTopLeft(0, 0, 256*15, 256*15); // 1 px = 15 twips, assuming 96 DPI.
+ CPPUNIT_ASSERT(m_aInvalidation.IsOver(aTopLeft));
+}
+
+void SdTiledRenderingTest::testPostKeyEvent()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject->GetObjIdentifier());
+ SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTextObj, pView->GetSdrPageView());
+ SfxStringItem aInputString(SID_ATTR_CHAR, "x");
+ pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+ SfxCallMode::SYNCHRON, { &aInputString });
+
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ // Did we manage to enter a second character?
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), rEditView.GetSelection().nStartPos);
+ ESelection aWordSelection(0, 0, 0, 2); // start para, start char, end para, end char.
+ rEditView.SetSelection(aWordSelection);
+ // Did we enter the expected character?
+ CPPUNIT_ASSERT_EQUAL(OUString("xx"), rEditView.GetSelected());
+}
+
+void SdTiledRenderingTest::testPostMouseEvent()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject->GetObjIdentifier());
+ SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTextObj, pView->GetSdrPageView());
+ SfxStringItem aInputString(SID_ATTR_CHAR, "x");
+ pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+ SfxCallMode::SYNCHRON, { &aInputString });
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ // Did we manage to go after the first character?
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), rEditView.GetSelection().nStartPos);
+
+ vcl::Cursor* pCursor = rEditView.GetCursor();
+ Point aPosition(pCursor->GetPos().getX(), pCursor->GetPos().getY() + pCursor->GetSize().Height() / 2);
+ aPosition.setX(aPosition.getX() - 1000);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ convertMm100ToTwip(aPosition.getX()), convertMm100ToTwip(aPosition.getY()),
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ convertMm100ToTwip(aPosition.getX()), convertMm100ToTwip(aPosition.getY()),
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ // The new cursor position must be before the first word.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), rEditView.GetSelection().nStartPos);
+}
+
+void SdTiledRenderingTest::testSetTextSelection()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ uno::Reference<container::XIndexAccess> xDrawPage(pXImpressDocument->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ xShape->setString("Aaa bbb.");
+ // Create a selection on the second word.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->SdrBeginTextEdit(pObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ ESelection aWordSelection(0, 4, 0, 7);
+ rEditView.SetSelection(aWordSelection);
+ // Did we indeed manage to select the second word?
+ CPPUNIT_ASSERT_EQUAL(OUString("bbb"), rEditView.GetSelected());
+
+ // Now use setTextSelection() to move the end of the selection 1000 twips right.
+ vcl::Cursor* pCursor = rEditView.GetCursor();
+ Point aEnd = pCursor->GetPos();
+ aEnd.setX(aEnd.getX() + 1000);
+ pXImpressDocument->setTextSelection(LOK_SETTEXTSELECTION_END, aEnd.getX(), aEnd.getY());
+ // The new selection must include the ending dot, too -- but not the first word.
+ CPPUNIT_ASSERT_EQUAL(OUString("bbb."), rEditView.GetSelected());
+}
+
+void SdTiledRenderingTest::testGetTextSelection()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ uno::Reference<container::XIndexAccess> xDrawPage(pXImpressDocument->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ xShape->setString("Shape");
+ // Create a selection on the shape text.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->SdrBeginTextEdit(pObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ ESelection aWordSelection(0, 0, 0, 5);
+ rEditView.SetSelection(aWordSelection);
+ // Did we indeed manage to copy the selected text?
+ CPPUNIT_ASSERT_EQUAL(OString("Shape"), apitest::helper::transferable::getTextSelection(pXImpressDocument->getSelection(), "text/plain;charset=utf-8"));
+
+ // Make sure returned RTF is not empty.
+ CPPUNIT_ASSERT(!apitest::helper::transferable::getTextSelection(pXImpressDocument->getSelection(), "text/rtf").isEmpty());
+}
+
+void SdTiledRenderingTest::testSetGraphicSelection()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pPage->GetObj(0);
+ SdrHdlList handleList(nullptr);
+ pObject->AddToHdlList(handleList);
+ // Make sure the rectangle has 8 handles: at each corner and at the center of each edge.
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(8), handleList.GetHdlCount());
+ // Take the bottom center one.
+ SdrHdl* pHdl = handleList.GetHdl(6);
+ CPPUNIT_ASSERT_EQUAL(int(SdrHdlKind::Lower), static_cast<int>(pHdl->GetKind()));
+ ::tools::Rectangle aShapeBefore = pObject->GetSnapRect();
+ // Resize.
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_START, convertMm100ToTwip(pHdl->GetPos().getX()), convertMm100ToTwip(pHdl->GetPos().getY()));
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_END, convertMm100ToTwip(pHdl->GetPos().getX()), convertMm100ToTwip(pHdl->GetPos().getY() + 1000));
+
+ // Assert that view shell ID tracking works.
+ sal_Int32 nView1 = SfxLokHelper::getView();
+ SdDrawDocument* pDocument = pXImpressDocument->GetDoc();
+ sd::UndoManager* pUndoManager = pDocument->GetUndoManager();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pUndoManager->GetUndoActionCount());
+ auto pListAction = dynamic_cast<SfxListUndoAction*>(pUndoManager->GetUndoAction());
+ CPPUNIT_ASSERT(pListAction);
+ for (size_t i = 0; i < pListAction->maUndoActions.size(); ++i)
+ // The second item was -1 here, view shell ID wasn't known.
+ CPPUNIT_ASSERT_EQUAL(ViewShellId(nView1), pListAction->GetUndoAction(i)->GetViewShellId());
+
+ ::tools::Rectangle aShapeAfter = pObject->GetSnapRect();
+ // Check that a resize happened, but aspect ratio is not kept.
+ CPPUNIT_ASSERT_EQUAL(aShapeBefore.getWidth(), aShapeAfter.getWidth());
+ CPPUNIT_ASSERT(aShapeBefore.getHeight() < aShapeAfter.getHeight());
+}
+
+void SdTiledRenderingTest::testUndoShells()
+{
+ // Load a document and set the page size.
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence(
+ {
+ {"AttributePageSize.Width", uno::makeAny(static_cast<sal_Int32>(10000))},
+ {"AttributePageSize.Height", uno::makeAny(static_cast<sal_Int32>(10000))},
+ }));
+ comphelper::dispatchCommand(".uno:AttributePageSize", aPropertyValues);
+ Scheduler::ProcessEventsToIdle();
+
+ // Assert that view shell ID tracking works for SdUndoAction subclasses.
+ SdDrawDocument* pDocument = pXImpressDocument->GetDoc();
+ sd::UndoManager* pUndoManager = pDocument->GetUndoManager();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pUndoManager->GetUndoActionCount());
+ sal_Int32 nView1 = SfxLokHelper::getView();
+ // This was -1, SdUndoGroup did not track what view shell created it.
+ CPPUNIT_ASSERT_EQUAL(ViewShellId(nView1), pUndoManager->GetUndoAction()->GetViewShellId());
+}
+
+void SdTiledRenderingTest::testResetSelection()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ uno::Reference<container::XIndexAccess> xDrawPage(pXImpressDocument->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ xShape->setString("Aaa bbb.");
+ // Create a selection on the second word.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->SdrBeginTextEdit(pObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ ESelection aWordSelection(0, 4, 0, 7);
+ rEditView.SetSelection(aWordSelection);
+ // Did we indeed manage to select the second word?
+ CPPUNIT_ASSERT_EQUAL(OUString("bbb"), rEditView.GetSelected());
+
+ // Now use resetSelection() to reset the selection.
+ pXImpressDocument->resetSelection();
+ CPPUNIT_ASSERT(!pView->GetTextEditObject());
+}
+
+static void lcl_search(const OUString& rKey, bool bFindAll = false)
+{
+ uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence(
+ {
+ {"SearchItem.SearchString", uno::makeAny(rKey)},
+ {"SearchItem.Backward", uno::makeAny(false)},
+ {"SearchItem.Command", uno::makeAny(static_cast<sal_uInt16>(bFindAll ? SvxSearchCmd::FIND_ALL : SvxSearchCmd::FIND))},
+ }));
+ comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues);
+}
+
+void SdTiledRenderingTest::testSearch()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+ uno::Reference<container::XIndexAccess> xDrawPage(pXImpressDocument->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ xShape->setString("Aaa bbb.");
+
+ lcl_search("bbb");
+
+ SdrView* pView = pViewShell->GetView();
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ // Did we indeed manage to select the second word?
+ CPPUNIT_ASSERT_EQUAL(OUString("bbb"), rEditView.GetSelected());
+
+ // Did the selection callback fire?
+ CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(1), m_aSelection.size());
+
+ // Search for something on the second slide, and make sure that the set-part callback fired.
+ lcl_search("bbb");
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), m_nPart);
+ CPPUNIT_ASSERT_EQUAL(true, m_bFound);
+ // This was 0; should be 1 match for "find".
+ CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(1), m_aSearchResultSelection.size());
+ // Result is on the second slide.
+ CPPUNIT_ASSERT_EQUAL(1, m_aSearchResultPart[0]);
+
+ // This should trigger the not-found callback.
+ lcl_search("ccc");
+ CPPUNIT_ASSERT_EQUAL(false, m_bFound);
+}
+
+void SdTiledRenderingTest::testSearchAll()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ lcl_search("match", /*bFindAll=*/true);
+
+ // This was empty: find-all did not highlight the first match.
+ CPPUNIT_ASSERT_EQUAL(OString("match"), apitest::helper::transferable::getTextSelection(pXImpressDocument->getSelection(), "text/plain;charset=utf-8"));
+
+ // We're on the first slide, search for something on the second slide and make sure we get a SET_PART.
+ m_nPart = 0;
+ lcl_search("second", /*bFindAll=*/true);
+ // This was 0: no SET_PART was emitted.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), m_nPart);
+}
+
+void SdTiledRenderingTest::testSearchAllSelections()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ lcl_search("third", /*bFindAll=*/true);
+ // Make sure this is found on the 3rd slide.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), m_nPart);
+ // This was 1: only the first match was highlighted.
+ CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(2), m_aSelection.size());
+}
+
+void SdTiledRenderingTest::testSearchAllNotifications()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ lcl_search("third", /*bFindAll=*/true);
+ // Make sure that we get no notifications about selection changes during search.
+ CPPUNIT_ASSERT_EQUAL(0, m_nSelectionBeforeSearchResult);
+ // But we do get the selection of the first hit.
+ CPPUNIT_ASSERT(m_nSelectionAfterSearchResult > 0);
+}
+
+void SdTiledRenderingTest::testSearchAllFollowedBySearch()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ lcl_search("third", /*bFindAll=*/true);
+ lcl_search("match" /*,bFindAll=false*/);
+
+ // This used to give wrong result: 'search' after 'search all' still
+ // returned 'third'
+ CPPUNIT_ASSERT_EQUAL(OString("match"), apitest::helper::transferable::getTextSelection(pXImpressDocument->getSelection(), "text/plain;charset=utf-8"));
+}
+
+void SdTiledRenderingTest::testDontSearchInMasterPages()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ // This should trigger the not-found callback ("date" is present only on
+ // the master page)
+ lcl_search("date");
+ CPPUNIT_ASSERT_EQUAL(false, m_bFound);
+}
+
+namespace
+{
+
+std::vector<OUString> getCurrentParts(SdXImpressDocument* pDocument)
+{
+ int parts = pDocument->getParts();
+ std::vector<OUString> result;
+
+ result.reserve(parts);
+ for (int i = 0; i < parts; i++)
+ {
+ result.push_back(pDocument->getPartName(i));
+ }
+
+ return result;
+}
+
+}
+
+void SdTiledRenderingTest::testInsertDeletePage()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("insert-delete.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+
+ SdDrawDocument* pDoc = pXImpressDocument->GetDocShell()->GetDoc();
+ CPPUNIT_ASSERT(pDoc);
+
+ std::vector<OUString> aInserted =
+ {
+ "Slide 1", "Slide 2", "Slide 3", "Slide 4", "Slide 5",
+ "Slide 6", "Slide 7", "Slide 8", "Slide 9", "Slide 10", "Slide 11"
+ };
+
+ std::vector<OUString> aDeleted =
+ {
+ "Slide 1"
+ };
+
+ // the document has 1 slide
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), pDoc->GetSdPageCount(PageKind::Standard));
+
+ uno::Sequence<beans::PropertyValue> aArgs;
+
+ // Insert slides
+ m_aDocumentSizeCondition.reset();
+ for (unsigned it = 1; it <= 10; it++)
+ comphelper::dispatchCommand(".uno:InsertPage", aArgs);
+
+ osl::Condition::Result aResult = m_aDocumentSizeCondition.wait(std::chrono::seconds(2));
+ CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, aResult);
+
+ // Verify inserted slides
+ std::vector<OUString> aPageList(getCurrentParts(pXImpressDocument));
+ CPPUNIT_ASSERT_EQUAL(aPageList.size(), aInserted.size());
+
+ for (auto it1 = aPageList.begin(), it2 = aInserted.begin(); it1 != aPageList.end(); ++it1, ++it2)
+ {
+ CPPUNIT_ASSERT_EQUAL(*it1, *it2);
+ }
+
+ // Delete slides
+ m_aDocumentSizeCondition.reset();
+ for (unsigned it = 1; it <= 10; it++)
+ comphelper::dispatchCommand(".uno:DeletePage", aArgs);
+
+ aResult = m_aDocumentSizeCondition.wait(std::chrono::seconds(2));
+ CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, aResult);
+
+ // Verify deleted slides
+ aPageList = getCurrentParts(pXImpressDocument);
+ CPPUNIT_ASSERT_EQUAL(aPageList.size(), aDeleted.size());
+ for (auto it1 = aPageList.begin(), it2 = aDeleted.begin(); it1 != aPageList.end(); ++it1, ++it2)
+ {
+ CPPUNIT_ASSERT_EQUAL(*it1, *it2);
+ }
+
+ // Undo deleted slides
+ m_aDocumentSizeCondition.reset();
+ for (unsigned it = 1; it <= 10; it++)
+ comphelper::dispatchCommand(".uno:Undo", aArgs);
+
+ aResult = m_aDocumentSizeCondition.wait(std::chrono::seconds(2));
+ CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, aResult);
+
+ // Verify inserted slides
+ aPageList = getCurrentParts(pXImpressDocument);
+ CPPUNIT_ASSERT_EQUAL(aPageList.size(), aInserted.size());
+ for (auto it1 = aPageList.begin(), it2 = aInserted.begin(); it1 != aPageList.end(); ++it1, ++it2)
+ {
+ CPPUNIT_ASSERT_EQUAL(*it1, *it2);
+ }
+
+ // Redo deleted slides
+ m_aDocumentSizeCondition.reset();
+ for (unsigned it = 1; it <= 10; it++)
+ comphelper::dispatchCommand(".uno:Redo", aArgs);
+
+ aResult = m_aDocumentSizeCondition.wait(std::chrono::seconds(2));
+ CPPUNIT_ASSERT_EQUAL(osl::Condition::result_ok, aResult);
+
+ // Verify deleted slides
+ aPageList = getCurrentParts(pXImpressDocument);
+ CPPUNIT_ASSERT_EQUAL(aPageList.size(), aDeleted.size());
+ for (auto it1 = aPageList.begin(), it2 = aDeleted.begin(); it1 != aPageList.end(); ++it1, ++it2)
+ {
+ CPPUNIT_ASSERT_EQUAL(*it1, *it2);
+ }
+
+ // the document has 1 slide
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(1), pDoc->GetSdPageCount(PageKind::Standard));
+}
+
+void SdTiledRenderingTest::testInsertTable()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+
+ uno::Sequence<beans::PropertyValue> aArgs(comphelper::InitPropertySequence(
+ {
+ { "Rows", uno::makeAny(sal_Int32(3)) },
+ { "Columns", uno::makeAny(sal_Int32(5)) }
+ }));
+
+ comphelper::dispatchCommand(".uno:InsertTable", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // get the table
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(1);
+ CPPUNIT_ASSERT(pObject);
+
+ // check that the table is not in the top left corner
+ Point aPos(pObject->GetRelativePos());
+
+ CPPUNIT_ASSERT(aPos.X() != 0);
+ CPPUNIT_ASSERT(aPos.Y() != 0);
+}
+
+void SdTiledRenderingTest::testPartHash()
+{
+ SdXImpressDocument* pDoc = createDoc("dummy.odp");
+
+ int nParts = pDoc->getParts();
+ for (int it = 0; it < nParts; it++)
+ {
+ CPPUNIT_ASSERT(!pDoc->getPartHash(it).isEmpty());
+ }
+
+ // check part that it does not exists
+ CPPUNIT_ASSERT(pDoc->getPartHash(100).isEmpty());
+}
+
+void SdTiledRenderingTest::testResizeTable()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("table.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+ CPPUNIT_ASSERT(pTableObject);
+
+ // Select the table by marking it + starting and ending text edit.
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ pView->SdrBeginTextEdit(pObject);
+ pView->SdrEndTextEdit();
+
+ // Remember the original row heights.
+ uno::Reference<table::XColumnRowRange> xTable = pTableObject->getTable();
+ uno::Reference<container::XIndexAccess> xRows = xTable->getRows();
+ uno::Reference<beans::XPropertySet> xRow1(xRows->getByIndex(0), uno::UNO_QUERY);
+ sal_Int32 nExpectedRow1 = xRow1->getPropertyValue("Size").get<sal_Int32>();
+ uno::Reference<beans::XPropertySet> xRow2(xRows->getByIndex(1), uno::UNO_QUERY);
+ sal_Int32 nExpectedRow2 = xRow2->getPropertyValue("Size").get<sal_Int32>();
+
+ // Resize the upper row, decrease its height by 1 cm.
+ Point aInnerRowEdge = pObject->GetSnapRect().Center();
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_START, convertMm100ToTwip(aInnerRowEdge.getX()), convertMm100ToTwip(aInnerRowEdge.getY()));
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_END, convertMm100ToTwip(aInnerRowEdge.getX()), convertMm100ToTwip(aInnerRowEdge.getY() - 1000));
+
+ // Remember the resized row heights.
+ sal_Int32 nResizedRow1 = xRow1->getPropertyValue("Size").get<sal_Int32>();
+ CPPUNIT_ASSERT(nResizedRow1 < nExpectedRow1);
+ sal_Int32 nResizedRow2 = xRow2->getPropertyValue("Size").get<sal_Int32>();
+ CPPUNIT_ASSERT_EQUAL(nExpectedRow2, nResizedRow2);
+
+ // Now undo the resize.
+ pXImpressDocument->GetDocShell()->GetUndoManager()->Undo();
+
+ // Check the undo result.
+ sal_Int32 nActualRow1 = xRow1->getPropertyValue("Size").get<sal_Int32>();
+ CPPUNIT_ASSERT_EQUAL(nExpectedRow1, nActualRow1);
+ sal_Int32 nActualRow2 = xRow2->getPropertyValue("Size").get<sal_Int32>();
+ // Expected was 4000, actual was 4572, i.e. the second row after undo was larger than expected.
+ CPPUNIT_ASSERT_EQUAL(nExpectedRow2, nActualRow2);
+}
+
+void SdTiledRenderingTest::testResizeTableColumn()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("table-column.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+ CPPUNIT_ASSERT(pTableObject);
+
+ // Select the table by marking it + starting and ending text edit.
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ pView->SdrBeginTextEdit(pObject);
+ pView->SdrEndTextEdit();
+
+ // Remember the original cell widths.
+ xmlDocUniquePtr pXmlDoc = parseXmlDump();
+ OString aPrefix = "/SdDrawDocument/SdrModel/SdPage/SdrObjList/SdrTableObj/SdrTableObjImpl/TableLayouter/columns/";
+ sal_Int32 nExpectedColumn1 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[1]", "size").toInt32();
+ sal_Int32 nExpectedColumn2 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[2]", "size").toInt32();
+ pXmlDoc = nullptr;
+
+ // Resize the left column, decrease its width by 1 cm.
+ Point aInnerRowEdge = pObject->GetSnapRect().Center();
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_START, convertMm100ToTwip(aInnerRowEdge.getX()), convertMm100ToTwip(aInnerRowEdge.getY()));
+ pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_END, convertMm100ToTwip(aInnerRowEdge.getX() - 1000), convertMm100ToTwip(aInnerRowEdge.getY()));
+
+ // Remember the resized column widths.
+ pXmlDoc = parseXmlDump();
+ sal_Int32 nResizedColumn1 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[1]", "size").toInt32();
+ CPPUNIT_ASSERT(nResizedColumn1 < nExpectedColumn1);
+ sal_Int32 nResizedColumn2 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[2]", "size").toInt32();
+ CPPUNIT_ASSERT(nResizedColumn2 > nExpectedColumn2);
+ pXmlDoc = nullptr;
+
+ // Now undo the resize.
+ pXImpressDocument->GetDocShell()->GetUndoManager()->Undo();
+
+ // Check the undo result.
+ pXmlDoc = parseXmlDump();
+ sal_Int32 nActualColumn1 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[1]", "size").toInt32();
+ // Expected was 7049, actual was 6048, i.e. the first column width after undo was 1cm smaller than expected.
+ CPPUNIT_ASSERT_EQUAL(nExpectedColumn1, nActualColumn1);
+ sal_Int32 nActualColumn2 = getXPath(pXmlDoc, aPrefix + "TableLayouter_Layout[2]", "size").toInt32();
+ CPPUNIT_ASSERT_EQUAL(nExpectedColumn2, nActualColumn2);
+ pXmlDoc = nullptr;
+}
+
+namespace {
+
+/// A view callback tracks callbacks invoked on one specific view.
+class ViewCallback
+{
+ SfxViewShell* mpViewShell;
+ int mnView;
+public:
+ bool m_bGraphicSelectionInvalidated;
+ bool m_bGraphicViewSelectionInvalidated;
+ /// Our current part, to be able to decide if a view cursor/selection is relevant for us.
+ int m_nPart;
+ bool m_bCursorVisibleChanged;
+ bool m_bCursorVisible;
+ bool m_bViewLock;
+ bool m_bTilesInvalidated;
+ std::vector<tools::Rectangle> m_aInvalidations;
+ std::map<int, bool> m_aViewCursorInvalidations;
+ std::map<int, bool> m_aViewCursorVisibilities;
+ bool m_bViewSelectionSet;
+ boost::property_tree::ptree m_aCommentCallbackResult;
+
+ ViewCallback()
+ : m_bGraphicSelectionInvalidated(false),
+ m_bGraphicViewSelectionInvalidated(false),
+ m_nPart(0),
+ m_bCursorVisibleChanged(false),
+ m_bCursorVisible(false),
+ m_bViewLock(false),
+ m_bTilesInvalidated(false),
+ m_bViewSelectionSet(false)
+ {
+ mpViewShell = SfxViewShell::Current();
+ mpViewShell->registerLibreOfficeKitViewCallback(&ViewCallback::callback, this);
+ mnView = SfxLokHelper::getView();
+ }
+
+ ~ViewCallback()
+ {
+ SfxLokHelper::setView(mnView);
+ mpViewShell->registerLibreOfficeKitViewCallback(nullptr, nullptr);
+ }
+
+ static void callback(int nType, const char* pPayload, void* pData)
+ {
+ static_cast<ViewCallback*>(pData)->callbackImpl(nType, pPayload);
+ }
+
+ void callbackImpl(int nType, const char* pPayload)
+ {
+ switch (nType)
+ {
+ case LOK_CALLBACK_INVALIDATE_TILES:
+ {
+ m_bTilesInvalidated = true;
+ OString text(pPayload);
+ if (!text.startsWith("EMPTY"))
+ {
+ uno::Sequence<OUString> aSeq = comphelper::string::convertCommaSeparated(OUString::createFromAscii(pPayload));
+ CPPUNIT_ASSERT(aSeq.getLength() == 4 || aSeq.getLength() == 5);
+ tools::Rectangle aInvalidationRect;
+ aInvalidationRect.setX(aSeq[0].toInt32());
+ aInvalidationRect.setY(aSeq[1].toInt32());
+ aInvalidationRect.setWidth(aSeq[2].toInt32());
+ aInvalidationRect.setHeight(aSeq[3].toInt32());
+ m_aInvalidations.push_back(aInvalidationRect);
+ }
+ }
+ break;
+ case LOK_CALLBACK_GRAPHIC_SELECTION:
+ {
+ m_bGraphicSelectionInvalidated = true;
+ }
+ break;
+ case LOK_CALLBACK_GRAPHIC_VIEW_SELECTION:
+ {
+ std::stringstream aStream(pPayload);
+ boost::property_tree::ptree aTree;
+ boost::property_tree::read_json(aStream, aTree);
+ if (aTree.get_child("part").get_value<int>() == m_nPart)
+ // Ignore callbacks which are for a different part.
+ m_bGraphicViewSelectionInvalidated = true;
+ }
+ break;
+ case LOK_CALLBACK_CURSOR_VISIBLE:
+ {
+ m_bCursorVisibleChanged = true;
+ m_bCursorVisible = (OString("true") == pPayload);
+ }
+ break;
+ case LOK_CALLBACK_VIEW_LOCK:
+ {
+ std::stringstream aStream(pPayload);
+ boost::property_tree::ptree aTree;
+ boost::property_tree::read_json(aStream, aTree);
+ m_bViewLock = aTree.get_child("rectangle").get_value<std::string>() != "EMPTY";
+ }
+ break;
+ case LOK_CALLBACK_INVALIDATE_VIEW_CURSOR:
+ {
+ std::stringstream aStream(pPayload);
+ boost::property_tree::ptree aTree;
+ boost::property_tree::read_json(aStream, aTree);
+ int nViewId = aTree.get_child("viewId").get_value<int>();
+ m_aViewCursorInvalidations[nViewId] = true;
+ }
+ break;
+ case LOK_CALLBACK_VIEW_CURSOR_VISIBLE:
+ {
+ std::stringstream aStream(pPayload);
+ boost::property_tree::ptree aTree;
+ boost::property_tree::read_json(aStream, aTree);
+ const int nViewId = aTree.get_child("viewId").get_value<int>();
+ m_aViewCursorVisibilities[nViewId] = OString("true") == pPayload;
+ }
+ break;
+ case LOK_CALLBACK_TEXT_VIEW_SELECTION:
+ {
+ m_bViewSelectionSet = true;
+ }
+ break;
+ case LOK_CALLBACK_COMMENT:
+ {
+ m_aCommentCallbackResult.clear();
+ std::stringstream aStream(pPayload);
+ boost::property_tree::read_json(aStream, m_aCommentCallbackResult);
+ m_aCommentCallbackResult = m_aCommentCallbackResult.get_child("comment");
+ }
+ break;
+ }
+ }
+};
+
+}
+
+void SdTiledRenderingTest::testViewCursors()
+{
+ // Create two views.
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ ViewCallback aView1;
+ SfxLokHelper::createView();
+ ViewCallback aView2;
+
+ // Select the shape in the second view.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ Scheduler::ProcessEventsToIdle();
+
+ // First view notices that there was a selection change in the other view.
+ CPPUNIT_ASSERT(aView1.m_bGraphicViewSelectionInvalidated);
+ // Second view notices that there was a selection change in its own view.
+ CPPUNIT_ASSERT(aView2.m_bGraphicSelectionInvalidated);
+}
+
+void SdTiledRenderingTest::testViewCursorParts()
+{
+ // Create two views.
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ ViewCallback aView1;
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>());
+ ViewCallback aView2;
+
+ // Select the shape in the second view.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ Scheduler::ProcessEventsToIdle();
+ // First view notices that there was a selection change in the other view.
+ CPPUNIT_ASSERT(aView1.m_bGraphicViewSelectionInvalidated);
+ pView->UnmarkAllObj(pView->GetSdrPageView());
+
+ // Now switch to the second part in the second view.
+ pXImpressDocument->setPart(1);
+ aView2.m_nPart = 1;
+ aView1.m_bGraphicViewSelectionInvalidated = false;
+ pActualPage = pViewShell->GetActualPage();
+ pObject = pActualPage->GetObj(0);
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ Scheduler::ProcessEventsToIdle();
+ // First view ignores view selection, as it would be for part 1, and it's in part 0.
+ // This failed when the "part" was always 0 in the callback.
+ CPPUNIT_ASSERT(!aView1.m_bGraphicViewSelectionInvalidated);
+}
+
+void SdTiledRenderingTest::testCursorViews()
+{
+ // Create the first view.
+ SdXImpressDocument* pXImpressDocument = createDoc("title-shape.odp");
+ int nView1 = SfxLokHelper::getView();
+ ViewCallback aView1;
+
+ // Begin text edit on the only object on the slide.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrView* pView = pViewShell->GetView();
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(pView->IsTextEdit());
+
+ // Make sure that cursor state is not changed just because we create a second view.
+ aView1.m_bCursorVisibleChanged = false;
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(!aView1.m_bCursorVisibleChanged);
+
+ // Make sure that typing in the first view causes an invalidation in the
+ // second view as well, even if the second view was created after begin
+ // text edit in the first view.
+ ViewCallback aView2;
+ // This failed: the second view didn't get a lock notification, even if the
+ // first view already started text edit.
+ CPPUNIT_ASSERT(aView2.m_bViewLock);
+ SfxLokHelper::setView(nView1);
+ aView2.m_bTilesInvalidated = false;
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+ // This failed: the second view was not invalidated when pressing a key in
+ // the first view.
+ CPPUNIT_ASSERT(aView2.m_bTilesInvalidated);
+}
+
+void SdTiledRenderingTest::testCursorVisibility_SingleClick()
+{
+ // Single-clicking in a text box enters editing only
+ // when it's on the text, even if it's the default text.
+
+ // Load doc.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ ViewCallback aView1;
+
+ // Begin text edit on the only object on the slide.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject1 = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT(pObject1 != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier());
+ SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1);
+
+ // Click once outside of the text (in the first quartile) => no editing.
+ const ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect();
+ const auto cornerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 4));
+ const auto cornerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 4));
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ cornerX, cornerY,
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ cornerX, cornerY,
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // No editing.
+ CPPUNIT_ASSERT(!pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT(!aView1.m_bCursorVisible);
+
+ // Click again, now on the text, in the center, to start editing.
+ const auto centerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 2));
+ const auto centerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 2));
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ centerX, centerY,
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ centerX, centerY,
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // We must be in text editing mode and have cursor visible.
+ CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT(aView1.m_bCursorVisible);
+}
+
+
+void SdTiledRenderingTest::testCursorVisibility_DoubleClick()
+{
+ // Double-clicking anywhere in the TextBox should start editing.
+
+ // Create the first view.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ ViewCallback aView1;
+
+ // Begin text edit on the only object on the slide.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject1 = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT(pObject1 != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier());
+ SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1);
+
+ // Double-click outside the text to enter edit mode.
+ const ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect();
+ const auto cornerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 4));
+ const auto cornerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 4));
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ cornerX, cornerY,
+ 2, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ cornerX, cornerY,
+ 2, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // We must be in text editing mode and have cursor visible.
+ CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT(aView1.m_bCursorVisible);
+}
+
+void SdTiledRenderingTest::testCursorVisibility_MultiView()
+{
+ // Create the first view.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ const int nView1 = SfxLokHelper::getView();
+ ViewCallback aView1;
+
+ // Begin text edit on the only object on the slide.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject1 = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT(pObject1);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier());
+ SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1);
+
+ // Make sure that cursor state is not changed just because we create a second view.
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>());
+ const int nView2 = SfxLokHelper::getView();
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT_EQUAL(false, aView1.m_bCursorVisibleChanged);
+ CPPUNIT_ASSERT_EQUAL(false, aView1.m_aViewCursorVisibilities[nView2]);
+
+ // Also check that the second view gets the notifications.
+ ViewCallback aView2;
+
+ SfxLokHelper::setView(nView1);
+
+ ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect();
+ const auto centerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 2));
+ const auto centerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 2));
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ centerX, centerY,
+ 2, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ centerX, centerY,
+ 2, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // We must be in text editing mode and have cursor visible.
+ CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT(aView1.m_bCursorVisible);
+ CPPUNIT_ASSERT_EQUAL(false, aView1.m_aViewCursorVisibilities[nView2]);
+
+ CPPUNIT_ASSERT_EQUAL(false, aView2.m_bCursorVisible);
+ CPPUNIT_ASSERT_EQUAL(false, aView2.m_aViewCursorVisibilities[nView1]);
+ CPPUNIT_ASSERT_EQUAL(false, aView2.m_aViewCursorVisibilities[nView2]);
+}
+
+void SdTiledRenderingTest::testCursorVisibility_Escape()
+{
+ // Load doc.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ ViewCallback aView1;
+
+ // Begin text edit on the only object on the slide.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject1 = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT(pObject1 != nullptr);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier());
+ SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1);
+
+ // Click once on the text to start editing.
+ const ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect();
+ const auto centerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 2));
+ const auto centerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 2));
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ centerX, centerY,
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ centerX, centerY,
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // We must be in text editing mode and have cursor visible.
+ CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT(aView1.m_bCursorVisible);
+
+ // End editing by pressing the escape key.
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE);
+ Scheduler::ProcessEventsToIdle();
+
+ // We must be in text editing mode and have cursor visible.
+ CPPUNIT_ASSERT(!pViewShell->GetView()->IsTextEdit());
+ CPPUNIT_ASSERT_EQUAL(false, aView1.m_bCursorVisible);
+}
+
+void SdTiledRenderingTest::testViewLock()
+{
+ // Load a document that has a shape and create two views.
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ ViewCallback aView1;
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>());
+
+ // Begin text edit in the second view and assert that the first gets a lock
+ // notification.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ aView1.m_bViewLock = false;
+ pView->SdrBeginTextEdit(pObject);
+ CPPUNIT_ASSERT(aView1.m_bViewLock);
+
+ // End text edit in the second view, and assert that the lock is removed in
+ // the first view.
+ pView->SdrEndTextEdit();
+ CPPUNIT_ASSERT(!aView1.m_bViewLock);
+}
+
+void SdTiledRenderingTest::testUndoLimiting()
+{
+ // Create the first view.
+ SdXImpressDocument* pXImpressDocument = createDoc("title-shape.odp");
+ sd::ViewShell* pViewShell1 = pXImpressDocument->GetDocShell()->GetViewShell();
+ int nView1 = SfxLokHelper::getView();
+ SfxLokHelper::createView();
+ sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell();
+ CPPUNIT_ASSERT(pViewShell1 != pViewShell2);
+
+ // Begin text edit on the only object on the slide.
+ SfxLokHelper::setView(nView1);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(pViewShell1->GetView()->IsTextEdit());
+
+ // Now check view2 cannot undo actions.
+ {
+ SfxRequest aReq2(SID_UNDO, SfxCallMode::SLOT, pXImpressDocument->GetDocShell()->GetDoc()->GetPool());
+ aReq2.AppendItem(SfxUInt16Item(SID_UNDO, 1));
+ pViewShell2->ExecuteSlot(aReq2);
+ const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(aReq2.GetReturnValue());
+ CPPUNIT_ASSERT(pUInt32Item);
+ CPPUNIT_ASSERT_EQUAL(static_cast< sal_uInt32 >(SID_REPAIRPACKAGE), pUInt32Item->GetValue());
+ }
+
+ // Now check view1 can undo action
+ {
+ SfxRequest aReq1(SID_UNDO, SfxCallMode::SLOT, pXImpressDocument->GetDocShell()->GetDoc()->GetPool());
+ aReq1.AppendItem(SfxUInt16Item(SID_UNDO, 1));
+ pViewShell1->ExecuteSlot(aReq1);
+ CPPUNIT_ASSERT(aReq1.IsDone());
+ }
+
+ mxComponent->dispose();
+ mxComponent.clear();
+}
+
+void SdTiledRenderingTest::testCreateViewGraphicSelection()
+{
+ // Load a document and register a callback.
+ SdXImpressDocument* pXImpressDocument = createDoc("shape.odp");
+ ViewCallback aView1;
+
+ // Select the only shape in the document and assert that the graphic selection is changed.
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ SdrView* pView = pViewShell->GetView();
+ aView1.m_bGraphicSelectionInvalidated = false;
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ CPPUNIT_ASSERT(aView1.m_bGraphicSelectionInvalidated);
+
+ // Now create a new view.
+ aView1.m_bGraphicSelectionInvalidated = false;
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering({});
+ // This failed, creating a new view affected the graphic selection of an
+ // existing view.
+ CPPUNIT_ASSERT(!aView1.m_bGraphicSelectionInvalidated);
+
+ // Check that when the first view has a shape selected and we register a
+ // callback on the second view, then it gets a "graphic view selection".
+ ViewCallback aView2;
+ // This failed, the created new view had no "view selection" of the first
+ // view's selected shape.
+ CPPUNIT_ASSERT(aView2.m_bGraphicViewSelectionInvalidated);
+}
+
+void SdTiledRenderingTest::testCreateViewTextCursor()
+{
+ // Load a document and register a callback.
+ SdXImpressDocument* pXImpressDocument = createDoc("title-shape.odp");
+ ViewCallback aView1;
+
+ // Begin text edit.
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrView* pSdrView = pViewShell->GetView();
+ CPPUNIT_ASSERT(pSdrView->IsTextEdit());
+
+ // Create an editeng text selection.
+ EditView& rEditView = pSdrView->GetTextEditOutlinerView()->GetEditView();
+ // 0th para, 0th char -> 0th para, 1st char.
+ ESelection aWordSelection(0, 0, 0, 1);
+ rEditView.SetSelection(aWordSelection);
+
+ // Make sure that creating a new view either doesn't affect the previous
+ // one, or at least the effect is not visible at the end.
+ aView1.m_aViewCursorInvalidations.clear();
+ aView1.m_aViewCursorVisibilities.clear();
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering({});
+ ViewCallback aView2;
+ bool bFoundCursor = false;
+ for (const auto& rInvalidation : aView1.m_aViewCursorInvalidations)
+ {
+ auto itVisibility = aView1.m_aViewCursorVisibilities.find(rInvalidation.first);
+ // For each cursor invalidation: if there is no visibility or the visibility is true, that's a problem.
+ if (itVisibility == aView1.m_aViewCursorVisibilities.end() || itVisibility->second)
+ {
+ bFoundCursor = true;
+ break;
+ }
+ }
+ // This failed: the second view created an unexpected view cursor in the
+ // first view.
+ CPPUNIT_ASSERT(!bFoundCursor);
+ // This failed: the text view selection of the first view wasn't seen by
+ // the second view.
+ CPPUNIT_ASSERT(aView2.m_bViewSelectionSet);
+}
+
+void SdTiledRenderingTest::testTdf102223()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf102223.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pActualPage->GetObj(2));
+ CPPUNIT_ASSERT(pTableObject);
+ SdrView* pView = pViewShell->GetView();
+
+ // select contents of cell
+ ::tools::Rectangle aRect = pTableObject->GetCurrentBoundRect();
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+ pView->SdrBeginTextEdit(pTableObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char.
+ CPPUNIT_ASSERT_EQUAL(OUString("Red"), rEditView.GetSelected());
+ const SvxFontHeightItem& rItem = rEditView.GetAttribs().Get(EE_CHAR_FONTHEIGHT);
+ CPPUNIT_ASSERT_EQUAL(int(1411), static_cast<int>(rItem.GetHeight()));
+
+ // cut contents of cell
+ uno::Sequence<beans::PropertyValue> aArgs;
+ comphelper::dispatchCommand(".uno:Cut", aArgs);
+
+ pView->SdrEndTextEdit(false);
+ pView->SdrBeginTextEdit(pTableObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView2.SetSelection(ESelection(0, 0, 0, 1)); // start para, start char, end para, end char.
+ const SvxFontHeightItem& rItem2 = rEditView2.GetAttribs().Get(EE_CHAR_FONTHEIGHT);
+ CPPUNIT_ASSERT_EQUAL(int(1411), static_cast<int>(rItem2.GetHeight()));
+}
+
+void SdTiledRenderingTest::testTdf118354()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf118354.odp");
+
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount());
+
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pActualPage->GetObj(0));
+ CPPUNIT_ASSERT(pTableObject);
+
+ // Without the fix, it would crash here
+ ::tools::Rectangle aRect = pTableObject->GetCurrentBoundRect();
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+
+ SdrView* pView = pViewShell->GetView();
+ rtl::Reference<sdr::SelectionController> xSelectionController(pView->getSelectionController());
+ CPPUNIT_ASSERT(xSelectionController->hasSelectedCells());
+}
+
+void SdTiledRenderingTest::testPostKeyEventInvalidation()
+{
+ // Load a document and begin text edit on the first slide.
+ SdXImpressDocument* pXImpressDocument = createDoc("2slides.odp");
+ CPPUNIT_ASSERT_EQUAL(0, pXImpressDocument->getPart());
+ ViewCallback aView1;
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrView* pView = pViewShell->GetView();
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_F2);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_F2);
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+
+ // Create a second view and begin text edit there as well, in parallel.
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering({});
+ ViewCallback aView2;
+ pXImpressDocument->setPart(1);
+ sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrView* pView2 = pViewShell2->GetView();
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_F2);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_F2);
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(pView2->GetTextEditObject());
+
+ // Now go left with the cursor in the second view and watch for
+ // invalidations.
+ aView2.m_bTilesInvalidated = false;
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT);
+ Scheduler::ProcessEventsToIdle();
+ // This failed: moving the cursor caused unexpected invalidation.
+ CPPUNIT_ASSERT(!aView2.m_bTilesInvalidated);
+}
+
+/**
+ * tests a cut/paste bug around bullet items in a list
+ */
+void SdTiledRenderingTest::testTdf103083()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf103083.fodp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+
+ SdrObject* pObject1 = pActualPage->GetObj(1);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_OUTLINETEXT), pObject1->GetObjIdentifier());
+ SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1);
+
+ SdrView* pView = pViewShell->GetView();
+
+ // select contents of bullet item
+ ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect();
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ convertMm100ToTwip(aRect.getX() + 2), convertMm100ToTwip(aRect.getY() + 2),
+ 1, MOUSE_LEFT, 0);
+ Scheduler::ProcessEventsToIdle();
+ pView->SdrBeginTextEdit(pTextObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView.SetSelection(ESelection(2, 0, 2, 33)); // start para, start char, end para, end char.
+ CPPUNIT_ASSERT_EQUAL(OUString("They have all the same formatting"), rEditView.GetSelected());
+ SdrOutliner* pOutliner = pView->GetTextEditOutliner();
+ CPPUNIT_ASSERT_EQUAL(OUString("No-Logo Content~LT~Gliederung 2"),
+ pOutliner->GetStyleSheet(2)->GetName());
+ const EditTextObject& aEdit = pTextObject->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem* pNumFmt = aEdit.GetParaAttribs(2).GetItem(EE_PARA_NUMBULLET);
+ SvxNumberFormat aNumFmt(pNumFmt->GetNumRule()->GetLevel(2));
+
+ // cut contents of bullet item
+ comphelper::dispatchCommand(".uno:Cut", uno::Sequence<beans::PropertyValue>());
+
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView2.SetSelection(ESelection(2, 0, 2, 10)); // start para, start char, end para, end char.
+ CPPUNIT_ASSERT_EQUAL(OUString(), rEditView2.GetSelected());
+
+ // paste contents of bullet item
+ comphelper::dispatchCommand(".uno:Paste", uno::Sequence<beans::PropertyValue>());
+
+ // send an ESC key to trigger the commit of the edit to the main model
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE);
+ Scheduler::ProcessEventsToIdle();
+
+ pView->SdrBeginTextEdit(pTextObject);
+ CPPUNIT_ASSERT(pView->GetTextEditObject());
+ pOutliner = pView->GetTextEditOutliner();
+ EditView& rEditView3 = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView3.SetSelection(ESelection(2, 0, 2, 33)); // start para, start char, end para, end char.
+ CPPUNIT_ASSERT_EQUAL(OUString("They have all the same formatting"), rEditView3.GetSelected());
+ CPPUNIT_ASSERT_EQUAL(OUString("No-Logo Content~LT~Gliederung 2"),
+ pOutliner->GetStyleSheet(2)->GetName());
+
+ const EditTextObject& aEdit2 = pTextObject->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem* pNumFmt2 = aEdit2.GetParaAttribs(2).GetItem(EE_PARA_NUMBULLET);
+ SvxNumberFormat aNumFmt2(pNumFmt2->GetNumRule()->GetLevel(2));
+
+ bool bEqual(aNumFmt2 == aNumFmt);
+ CPPUNIT_ASSERT_MESSAGE("Bullet properties changed after paste", bEqual);
+}
+
+/**
+ * tests a clone-formatting bug around table cell attributes
+ */
+void SdTiledRenderingTest::testTdf104405()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf104405.fodp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(2);
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+ CPPUNIT_ASSERT(pTableObject);
+
+ // select the middle cell
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTableObject, pView->GetSdrPageView());
+ pTableObject->setActiveCell(sdr::table::CellPos(2,1));
+ pView->SdrBeginTextEdit(pTableObject);
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char.
+
+ // trigger the clone-formatting/paintbrush command to copy formatting contents of cell
+ uno::Sequence< beans::PropertyValue > aArgs(1);
+ aArgs[0].Name = "PersistentCopy";
+ aArgs[0].Value <<= true;
+ comphelper::dispatchCommand(".uno:FormatPaintbrush", aArgs);
+
+ Scheduler::ProcessEventsToIdle();
+
+ // now click on the table
+ pView->MarkObj(pTableObject, pView->GetSdrPageView());
+ pTableObject->setActiveCell(sdr::table::CellPos(0,0));
+ pView->SdrEndTextEdit(false);
+ pView->SdrBeginTextEdit(pTableObject);
+ EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView();
+ rEditView2.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char.
+ ::tools::Rectangle aRect = pTableObject->GetCurrentBoundRect();
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
+ convertMm100ToTwip(aRect.getX()), convertMm100ToTwip(aRect.getY()),
+ 1, MOUSE_LEFT, 0);
+ pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP,
+ convertMm100ToTwip(aRect.getX()), convertMm100ToTwip(aRect.getY()),
+ 1, MOUSE_LEFT, 0);
+
+ Scheduler::ProcessEventsToIdle();
+
+ // check that the first cell has acquired the resulting vertical style
+ xmlDocUniquePtr pXmlDoc = parseXmlDump();
+ OString aPrefix = "/SdDrawDocument/SdrModel/SdPage/SdrObjList/SdrTableObj/SdrTableObjImpl"
+ "/TableModel/Cell[1]/DefaultProperties/SfxItemSet/SdrTextVertAdjustItem";
+ // the following name has a compiler-dependent part
+ CPPUNIT_ASSERT_EQUAL(OUString("2"), getXPath(pXmlDoc, aPrefix, "value"));
+}
+
+void SdTiledRenderingTest::testTdf81754()
+{
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf81754.pptx");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(1);
+
+ SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTextObj, pView->GetSdrPageView());
+ SfxStringItem aInputString(SID_ATTR_CHAR, "x");
+ pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+ SfxCallMode::SYNCHRON, { &aInputString });
+
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // now save, reload, and assert that we did not lose the edit
+ ::sd::DrawDocShellRef xDocShRef = saveAndReload(pXImpressDocument->GetDocShell(), PPTX);
+
+ const SdrPage* pPage = GetPage(1, xDocShRef);
+ SdrTextObj* pTextObject = dynamic_cast<SdrTextObj*>(pPage->GetObj(1));
+ CPPUNIT_ASSERT(pTextObject);
+
+ OutlinerParaObject* pOutlinerParagraphObject = pTextObject->GetOutlinerParaObject();
+ const EditTextObject& aEdit = pOutlinerParagraphObject->GetTextObject();
+
+ CPPUNIT_ASSERT_EQUAL(OUString("Somethingxx"), aEdit.GetText(0));
+
+ xDocShRef->DoClose();
+}
+
+void SdTiledRenderingTest::testTdf105502()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf105502.odp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ sd::Window* pWindow = pViewShell->GetActiveWindow();
+ CPPUNIT_ASSERT(pWindow);
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+ CPPUNIT_ASSERT(pTableObject);
+
+ // Select the first row.
+ sd::View* pView = pViewShell->GetView();
+ pView->MarkObj(pObject, pView->GetSdrPageView());
+ pView->SdrBeginTextEdit(pObject);
+ rtl::Reference<sdr::SelectionController> xSelectionController(pView->getSelectionController());
+ CPPUNIT_ASSERT(xSelectionController.is());
+ SfxRequest aRequest(pViewShell->GetViewFrame(), SID_TABLE_SELECT_ROW);
+ xSelectionController->Execute(aRequest);
+
+ // Assert that the A1:B1 selection succeeded.
+ CPPUNIT_ASSERT(xSelectionController->hasSelectedCells());
+ sdr::table::CellPos aFirstCell;
+ sdr::table::CellPos aLastCell;
+ xSelectionController->getSelectedCells(aFirstCell, aLastCell);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aFirstCell.mnCol);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aFirstCell.mnRow);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aLastCell.mnCol);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aLastCell.mnRow);
+
+ // Grow font size for the selection.
+ comphelper::dispatchCommand(".uno:Grow", {});
+ Scheduler::ProcessEventsToIdle();
+
+ // Assert that the selected A1 has now a larger font than the unselected
+ // A2.
+ xmlDocUniquePtr pXmlDoc = parseXmlDump();
+ sal_Int32 nA1Height = getXPath(pXmlDoc, "//Cell[1]/SdrText/OutlinerParaObject/EditTextObject/ContentInfo/SfxItemSet/SvxFontHeightItem[1]", "height").toInt32();
+ sal_Int32 nA2Height = getXPath(pXmlDoc, "//Cell[3]/SdrText/OutlinerParaObject/EditTextObject/ContentInfo/attribs[1]/SvxFontHeightItem", "height").toInt32();
+ // This failed when FuText::ChangeFontSize() never did "continue" in the
+ // text loop, instead of doing so depending on what IsInSelection() returns.
+ CPPUNIT_ASSERT(nA1Height > nA2Height);
+
+ // Check that selection remains the same
+ CPPUNIT_ASSERT(xSelectionController->hasSelectedCells());
+ xSelectionController->getSelectedCells(aFirstCell, aLastCell);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aFirstCell.mnCol);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aFirstCell.mnRow);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aLastCell.mnCol);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aLastCell.mnRow);
+}
+
+void SdTiledRenderingTest::testCommentCallbacks()
+{
+ // Load the document.
+ // Set the tiled annotations off
+ comphelper::LibreOfficeKit::setTiledAnnotations(false);
+
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp", comphelper::InitPropertySequence(
+ {
+ {".uno:Author", uno::makeAny(OUString("LOK User1"))},
+ }));
+ ViewCallback aView1;
+ int nView1 = SfxLokHelper::getView();
+
+ SfxLokHelper::createView();
+ uno::Sequence<beans::PropertyValue> aArgs(comphelper::InitPropertySequence(
+ {
+ {".uno:Author", uno::makeAny(OUString("LOK User2"))},
+ }));
+ pXImpressDocument->initializeForTiledRendering(aArgs);
+ ViewCallback aView2;
+ int nView2 = SfxLokHelper::getView();
+
+ SfxLokHelper::setView(nView1);
+
+ // Add a new comment
+ aArgs = comphelper::InitPropertySequence(
+ {
+ {"Text", uno::makeAny(OUString("Comment"))},
+ });
+ comphelper::dispatchCommand(".uno:InsertAnnotation", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action
+ CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView1.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView2.m_aCommentCallbackResult.get<std::string>("action"));
+ int nComment1 = aView1.m_aCommentCallbackResult.get<int>("id");
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView2.m_aCommentCallbackResult.get<int>("id"));
+ css::util::DateTime aDateTime;
+ OUString aDateTimeString = OUString::createFromAscii(aView1.m_aCommentCallbackResult.get<std::string>("dateTime").c_str());
+ CPPUNIT_ASSERT(utl::ISO8601parseDateTime(aDateTimeString, aDateTime));
+ CPPUNIT_ASSERT_EQUAL(std::string("LOK User1"), aView1.m_aCommentCallbackResult.get<std::string>("author"));
+ CPPUNIT_ASSERT_EQUAL(std::string("LOK User1"), aView2.m_aCommentCallbackResult.get<std::string>("author"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Comment"), aView1.m_aCommentCallbackResult.get<std::string>("text"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Comment"), aView2.m_aCommentCallbackResult.get<std::string>("text"));
+ CPPUNIT_ASSERT(!aView1.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+ CPPUNIT_ASSERT(!aView2.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+
+ // Reply to a just added comment
+ SfxLokHelper::setView(nView2);
+ aArgs = comphelper::InitPropertySequence(
+ {
+ {"Id", uno::makeAny(OUString::number(nComment1))},
+ {"Text", uno::makeAny(OUString("Reply to comment"))},
+ });
+ comphelper::dispatchCommand(".uno:ReplyToAnnotation", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action
+ CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView2.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView1.m_aCommentCallbackResult.get<int>("id"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView2.m_aCommentCallbackResult.get<int>("id"));
+ CPPUNIT_ASSERT_EQUAL(std::string("LOK User2"), aView1.m_aCommentCallbackResult.get<std::string>("author"));
+ CPPUNIT_ASSERT_EQUAL(std::string("LOK User2"), aView2.m_aCommentCallbackResult.get<std::string>("author"));
+ OUString aReplyTextView1 = OUString::createFromAscii(aView1.m_aCommentCallbackResult.get<std::string>("text").c_str());
+ OUString aReplyTextView2 = OUString::createFromAscii(aView2.m_aCommentCallbackResult.get<std::string>("text").c_str());
+ CPPUNIT_ASSERT(aReplyTextView1.startsWith("Reply to LOK User1"));
+ CPPUNIT_ASSERT(aReplyTextView1.endsWith("Reply to comment"));
+ CPPUNIT_ASSERT(aReplyTextView2.startsWith("Reply to LOK User1"));
+ CPPUNIT_ASSERT(aReplyTextView2.endsWith("Reply to comment"));
+ CPPUNIT_ASSERT(!aView1.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+ CPPUNIT_ASSERT(!aView2.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+
+ // Edit this annotation now
+ aArgs = comphelper::InitPropertySequence(
+ {
+ {"Id", uno::makeAny(OUString::number(nComment1))},
+ {"Text", uno::makeAny(OUString("Edited comment"))},
+ });
+ comphelper::dispatchCommand(".uno:EditAnnotation", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action
+ CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView2.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView1.m_aCommentCallbackResult.get<int>("id"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView2.m_aCommentCallbackResult.get<int>("id"));
+ CPPUNIT_ASSERT(!aView1.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+ CPPUNIT_ASSERT(!aView2.m_aCommentCallbackResult.get<std::string>("parthash").empty());
+ CPPUNIT_ASSERT_EQUAL(std::string("Edited comment"), aView1.m_aCommentCallbackResult.get<std::string>("text"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Edited comment"), aView2.m_aCommentCallbackResult.get<std::string>("text"));
+
+ // Delete the comment
+ aArgs = comphelper::InitPropertySequence(
+ {
+ {"Id", uno::makeAny(OUString::number(nComment1))},
+ });
+ comphelper::dispatchCommand(".uno:DeleteAnnotation", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // We received a LOK_CALLBACK_COMMENT callback with comment 'Remove' action
+ CPPUNIT_ASSERT_EQUAL(std::string("Remove"), aView1.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(std::string("Remove"), aView2.m_aCommentCallbackResult.get<std::string>("action"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView1.m_aCommentCallbackResult.get<int>("id"));
+ CPPUNIT_ASSERT_EQUAL(nComment1, aView2.m_aCommentCallbackResult.get<int>("id"));
+
+ comphelper::LibreOfficeKit::setTiledAnnotations(true);
+}
+
+void SdTiledRenderingTest::testMultiViewInsertDeletePage()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ ViewCallback aView1;
+ int nView1 = SfxLokHelper::getView();
+ uno::Sequence<beans::PropertyValue> aArgs;
+ SdDrawDocument* pDoc = pXImpressDocument->GetDocShell()->GetDoc();
+
+ // Create second view
+ SfxLokHelper::createView();
+ pXImpressDocument->initializeForTiledRendering(aArgs);
+ ViewCallback aView2;
+ int nView2 = SfxLokHelper::getView();
+
+ // the document has 8 slides
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(8), pDoc->GetSdPageCount(PageKind::Standard));
+
+ // Switch to 5th page in 2nd view
+ pXImpressDocument->setPart(4);
+
+ // Insert slide in 1st view
+ SfxLokHelper::setView(nView1);
+ comphelper::dispatchCommand(".uno:InsertPage", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // See if the current slide number changed in 2nd view too
+ SfxLokHelper::setView(nView2);
+ CPPUNIT_ASSERT_EQUAL(5, pXImpressDocument->getPart());
+
+ // Delete the page in 1st view now
+ SfxLokHelper::setView(nView1);
+ comphelper::dispatchCommand(".uno:DeletePage", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // See if current slide number changed in 2nd view too
+ SfxLokHelper::setView(nView2);
+ CPPUNIT_ASSERT_EQUAL(4, pXImpressDocument->getPart());
+}
+
+void SdTiledRenderingTest::testDisableUndoRepair()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ SfxViewShell* pView1 = SfxViewShell::Current();
+ int nView1 = SfxLokHelper::getView();
+ SfxLokHelper::createView();
+ SfxViewShell* pView2 = SfxViewShell::Current();
+ int nView2 = SfxLokHelper::getView();
+ {
+ std::unique_ptr<SfxPoolItem> pItem1;
+ std::unique_ptr<SfxPoolItem> pItem2;
+ CPPUNIT_ASSERT_EQUAL(SfxItemState::DISABLED, pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem1));
+ CPPUNIT_ASSERT_EQUAL(SfxItemState::DISABLED, pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem2));
+ }
+
+ // Insert a character in the first view.
+ SfxLokHelper::setView(nView1);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'h', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'h', 0);
+ Scheduler::ProcessEventsToIdle();
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem1);
+ pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem2);
+ CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(xItem1.get()));
+ const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(xItem2.get());
+ CPPUNIT_ASSERT(pUInt32Item);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pUInt32Item->GetValue());
+ }
+
+ // Insert a character in the second view.
+ SfxLokHelper::setView(nView2);
+ pXImpressDocument->setPart(1);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
+ Scheduler::ProcessEventsToIdle();
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem1);
+ pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem2);
+ CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(xItem2.get()));
+ const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(xItem1.get());
+ CPPUNIT_ASSERT(pUInt32Item);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pUInt32Item->GetValue());
+ }
+}
+
+void SdTiledRenderingTest::testDocumentRepair()
+{
+ // Create two views.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ CPPUNIT_ASSERT(pXImpressDocument);
+
+ // view #1
+ SfxViewShell* pView1 = SfxViewShell::Current();
+
+ // view #2
+ SfxLokHelper::createView();
+ SfxViewShell* pView2 = SfxViewShell::Current();
+ int nView2 = SfxLokHelper::getView();
+ CPPUNIT_ASSERT(pView1 != pView2);
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+ pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+ const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+ const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+ CPPUNIT_ASSERT(pItem1);
+ CPPUNIT_ASSERT(pItem2);
+ CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue());
+ CPPUNIT_ASSERT_EQUAL(false, pItem2->GetValue());
+ }
+
+ // Insert a character in the second view.
+ SfxLokHelper::setView(nView2);
+ pXImpressDocument->setPart(1);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
+ Scheduler::ProcessEventsToIdle();
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+ pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+ const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+ const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+ CPPUNIT_ASSERT(pItem1);
+ CPPUNIT_ASSERT(pItem2);
+ CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue());
+ CPPUNIT_ASSERT_EQUAL(true, pItem2->GetValue());
+ }
+}
+
+void SdTiledRenderingTest::testLanguageStatus()
+{
+ // Load the document.
+ createDoc("dummy.odp");
+ SfxViewShell* pView1 = SfxViewShell::Current();
+ SfxLokHelper::createView();
+ SfxViewShell* pView2 = SfxViewShell::Current();
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem1);
+ pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem2);
+ auto pStringItem = dynamic_cast<const SfxStringItem*>(xItem1.get());
+ CPPUNIT_ASSERT(pStringItem);
+
+ CPPUNIT_ASSERT_EQUAL(OUString("English (USA);en-US"), pStringItem->GetValue());
+
+ CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(xItem2.get()));
+ }
+}
+
+void SdTiledRenderingTest::testLanguageAllText()
+{
+ // Load the document, which has a single shape, with Hungarian text.
+ createDoc("language-all-text.odp");
+
+ // Set the language to English for all text.
+ uno::Sequence<beans::PropertyValue> aArgs = comphelper::InitPropertySequence({
+ { "Language", uno::makeAny(OUString("Default_English (USA)")) },
+ });
+ comphelper::dispatchCommand(".uno:LanguageStatus", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // Assert that the shape text language was changed.
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+ uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xShape(xPage->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xRun(
+ getRunFromParagraph(0, getParagraphFromShape(0, xShape)), uno::UNO_QUERY);
+ lang::Locale aLocale;
+ xRun->getPropertyValue("CharLocale") >>= aLocale;
+ // Without the accompanying fix in place, this test would have failed with 'Expected: en;
+ // Actual: hu', as the shape text language was not set.
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), aLocale.Language);
+}
+
+void SdTiledRenderingTest::testDefaultView()
+{
+ // Load the document with notes view.
+ SdXImpressDocument* pXImpressDocument = createDoc("notes-view.odp");
+ sd::ViewShell* pView = pXImpressDocument->GetDocShell()->GetViewShell();
+ {
+ std::unique_ptr<SfxPoolItem> xItem1;
+ std::unique_ptr<SfxPoolItem> xItem2;
+ pView->GetViewFrame()->GetBindings().QueryState(SID_NORMAL_MULTI_PANE_GUI, xItem1);
+ pView->GetViewFrame()->GetBindings().QueryState(SID_NOTES_MODE, xItem2);
+ const SfxBoolItem* pImpressView = dynamic_cast< const SfxBoolItem* >(xItem1.get());
+ const SfxBoolItem* pNotesView = dynamic_cast< const SfxBoolItem* >(xItem2.get());
+ CPPUNIT_ASSERT(pImpressView);
+ CPPUNIT_ASSERT(pNotesView);
+ CPPUNIT_ASSERT_EQUAL(true, pImpressView->GetValue());
+ CPPUNIT_ASSERT_EQUAL(false, pNotesView->GetValue());
+ }
+}
+
+void SdTiledRenderingTest::testIMESupport()
+{
+ // Load the document with notes view.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ VclPtr<vcl::Window> pDocWindow = pXImpressDocument->getDocWindow();
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrObject* pObject = pViewShell->GetActualPage()->GetObj(0);
+ SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTextObj, pView->GetSdrPageView());
+ SfxStringItem aInputString(SID_ATTR_CHAR, "x");
+ pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+ SfxCallMode::SYNCHRON, { &aInputString });
+
+ // sequence of chinese IME compositions when 'nihao' is typed in an IME
+ const std::vector<OString> aUtf8Inputs{ "年", "你", "你好", "你哈", "你好", "你好" };
+ std::vector<OUString> aInputs;
+ std::transform(aUtf8Inputs.begin(), aUtf8Inputs.end(),
+ std::back_inserter(aInputs), [](OString aInput) {
+ return OUString::fromUtf8(aInput);
+ });
+ for (const auto& aInput: aInputs)
+ {
+ pDocWindow->PostExtTextInputEvent(VclEventId::ExtTextInput, aInput);
+ }
+ pDocWindow->PostExtTextInputEvent(VclEventId::EndExtTextInput, "");
+
+ // the cursor should be at position 3rd
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), rEditView.GetSelection().nStartPos);
+
+ ESelection aWordSelection(0, 0, 0, 3); // start para, start char, end para, end char.
+ rEditView.SetSelection(aWordSelection);
+ // content contains only the last IME composition, not all
+ CPPUNIT_ASSERT_EQUAL(OUString("x").concat(aInputs[aInputs.size() - 1]), rEditView.GetSelected());
+}
+
+void SdTiledRenderingTest::testTdf115783()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf115783.fodp");
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+ CPPUNIT_ASSERT(pTableObject);
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pTableObject, pView->GetSdrPageView());
+
+ // Create a cell selection and set font height.
+ // Go to the end of the B1 cell.
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT);
+ // Create a B1->C1 cell selection.
+ const int nShiftRight = KEY_SHIFT + KEY_RIGHT;
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, nShiftRight);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, nShiftRight);
+ uno::Sequence<beans::PropertyValue> aArgs = comphelper::InitPropertySequence({
+ { "FontHeight.Height", uno::makeAny(static_cast<float>(12)) },
+ });
+ comphelper::dispatchCommand(".uno:FontHeight", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ // Create a text selection on the B1 cell.
+ pTableObject->setActiveCell(sdr::table::CellPos(1, 0));
+ pView->SdrBeginTextEdit(pTableObject);
+ EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
+ // Start para, start char, end para, end char.
+ rEditView.SetSelection(ESelection(0, 0, 0, 5));
+ CPPUNIT_ASSERT_EQUAL(OUString("hello"), rEditView.GetSelected());
+
+ // Copy selection, paste at the start of the cell.
+ aArgs = {};
+ comphelper::dispatchCommand(".uno:Copy", aArgs);
+ Scheduler::ProcessEventsToIdle();
+ rEditView.SetSelection(ESelection(0, 0, 0, 0));
+ aArgs = {};
+ comphelper::dispatchCommand(".uno:Paste", aArgs);
+ Scheduler::ProcessEventsToIdle();
+ pView->SdrEndTextEdit();
+
+ // And now verify that the cell has the correct font size.
+ uno::Reference<table::XCellRange> xTable = pTableObject->getTable();
+ CPPUNIT_ASSERT(xTable.is());
+ uno::Reference<text::XTextRange> xCell(xTable->getCellByPosition(1, 0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xCell.is());
+ uno::Reference<container::XEnumerationAccess> xText(xCell->getText(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xText.is());
+ uno::Reference<container::XEnumerationAccess> xParagraph(
+ xText->createEnumeration()->nextElement(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xParagraph.is());
+ uno::Reference<text::XTextRange> xPortion(xParagraph->createEnumeration()->nextElement(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xPortion.is());
+ // This failed, it was only "hello" as the paragraph had 2 portions: a
+ // "hello" with 12pt size and a "hello" with 18pt.
+ CPPUNIT_ASSERT_EQUAL(OUString("hellohello"), xPortion->getString());
+ uno::Reference<beans::XPropertySet> xPropertySet(xPortion, uno::UNO_QUERY);
+ int nHeight = xPropertySet->getPropertyValue("CharHeight").get<float>();
+ // Make sure that the single font size for the cell is the expected one.
+ CPPUNIT_ASSERT_EQUAL(12, nHeight);
+}
+
+void SdTiledRenderingTest::testPasteTextOnSlide()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("paste_text_onslide.odp");
+ CPPUNIT_ASSERT(pXImpressDocument);
+
+ // select second text object
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ Scheduler::ProcessEventsToIdle();
+
+ // step into text editing
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, '1', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, '1', 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // select full text
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ Scheduler::ProcessEventsToIdle();
+
+ // Copy some text
+ comphelper::dispatchCommand(".uno:Copy", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE);
+ Scheduler::ProcessEventsToIdle();
+
+ // Paste onto the slide
+ comphelper::dispatchCommand(".uno:Paste", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE);
+ Scheduler::ProcessEventsToIdle();
+
+ // Check the position of the newly added text shape, created for pasted text
+ SdPage* pActualPage = pXImpressDocument->GetDocShell()->GetViewShell()->GetActualPage();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount());
+ SdrObject* pObject = pActualPage->GetObj(2);
+ CPPUNIT_ASSERT(pObject);
+ SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>(pObject);
+ CPPUNIT_ASSERT(pTextObj);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TEXT), pTextObj->GetObjIdentifier());
+ // This test is unreliable: it gives alternating results for the following coordinates.
+ // As a compromise, instead of disabling it altogether, we allow for both sets of values.
+ const Point aPos = pTextObj->GetLastBoundRect().TopLeft();
+ if (aPos.getX() < 10000)
+ {
+ // We get this with 'make CppunitTest_sd_tiledrendering'
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<long>(6739), aPos.getX(), 100);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<long>(6822), aPos.getY(), 100);
+ }
+ else
+ {
+ // We get this with 'make check'
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<long>(12990), aPos.getX(), 100);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<long>(7393), aPos.getY(), 100);
+ }
+}
+
+void SdTiledRenderingTest::testTdf115873()
+{
+ // Initialize the navigator.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf115873.fodp");
+ SfxViewShell* pViewShell = SfxViewShell::Current();
+ CPPUNIT_ASSERT(pViewShell);
+ SfxBindings& rBindings = pViewShell->GetViewFrame()->GetBindings();
+ ScopedVclPtrInstance<SdNavigatorWin> pNavigator(nullptr, &rBindings);
+ pNavigator->InitTreeLB(pXImpressDocument->GetDoc());
+ pNavigator->Show();
+ SdPageObjsTLV& rObjects = pNavigator->GetObjects();
+ rObjects.SelectEntry("Slide 1");
+ rObjects.Select();
+ sd::ViewShell* pSdViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdrView* pSdrView = pSdViewShell->GetView();
+ pSdrView->UnmarkAllObj(pSdrView->GetSdrPageView());
+
+ // Make sure that no shapes are selected.
+ const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), rMarkList.GetMarkCount());
+
+ // Single-click with the mouse.
+ MouseEvent aMouseEvent(Point(0, 0), /*nClicks=*/1, MouseEventModifiers::NONE, MOUSE_LEFT);
+ rObjects.MousePressHdl(aMouseEvent);
+ rObjects.SelectEntry("Rectangle");
+ rObjects.Select();
+ rObjects.MouseReleaseHdl(aMouseEvent);
+ Scheduler::ProcessEventsToIdle();
+ // This failed, single-click did not result in a shape selection (only
+ // double-click did).
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), rMarkList.GetMarkCount());
+}
+
+void SdTiledRenderingTest::testTdf115873Group()
+{
+ // Initialize the navigator.
+ SdXImpressDocument* pXImpressDocument = createDoc("tdf115873-group.fodp");
+ SfxViewShell* pViewShell = SfxViewShell::Current();
+ CPPUNIT_ASSERT(pViewShell);
+ SfxBindings& rBindings = pViewShell->GetViewFrame()->GetBindings();
+ ScopedVclPtrInstance<SdNavigatorWin> pNavigator(nullptr, &rBindings);
+ pNavigator->InitTreeLB(pXImpressDocument->GetDoc());
+ SdPageObjsTLV& rObjects = pNavigator->GetObjects();
+ // This failed, Fill() and IsEqualToDoc() were out of sync for group
+ // shapes.
+ CPPUNIT_ASSERT(rObjects.IsEqualToDoc(pXImpressDocument->GetDoc()));
+}
+
+void SdTiledRenderingTest::testCutSelectionChange()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("cut_selection_change.odp");
+ CPPUNIT_ASSERT(pXImpressDocument);
+
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+ Scheduler::ProcessEventsToIdle();
+
+ // Select first text object
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ Scheduler::ProcessEventsToIdle();
+
+ // step into text editing
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, '1', 0);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, '1', 0);
+ Scheduler::ProcessEventsToIdle();
+
+ // select some text
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+ Scheduler::ProcessEventsToIdle();
+
+ // Check that we have a selection before cutting
+ CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(1), m_aSelection.size());
+
+ // Cut the selected text
+ comphelper::dispatchCommand(".uno:Cut", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+
+ // Selection is removed
+ CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(0), m_aSelection.size());
+}
+
+void SdTiledRenderingTest::testRegenerateDiagram()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("regenerate-diagram.pptx");
+ CPPUNIT_ASSERT(pXImpressDocument);
+
+ SdPage* pActualPage = pXImpressDocument->GetDocShell()->GetViewShell()->GetActualPage();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), pActualPage->GetObj(0)->GetSubList()->GetObjCount());
+
+ // select diagram
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ Scheduler::ProcessEventsToIdle();
+
+ // enter group
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::F3);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::F3);
+ Scheduler::ProcessEventsToIdle();
+
+ // select shape and delete
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::DELETE);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::DELETE);
+ Scheduler::ProcessEventsToIdle();
+
+ // exit group
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD1 | awt::Key::F3);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_MOD1 | awt::Key::F3);
+ Scheduler::ProcessEventsToIdle();
+
+ // select diagram
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+ pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObj(0)->GetSubList()->GetObjCount());
+
+ // regenerate diagram
+ comphelper::dispatchCommand(".uno:RegenerateDiagram", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+
+ // diagram content (child shape count) should be the same as in the beginning
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), pActualPage->GetObj(0)->GetSubList()->GetObjCount());
+}
+
+void SdTiledRenderingTest::testInsertDeletePageInvalidation()
+{
+ // Load the document.
+ SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
+ ViewCallback aView1;
+ CPPUNIT_ASSERT_EQUAL(8, pXImpressDocument->getParts());
+
+ // Insert slide
+ aView1.m_bTilesInvalidated = false;
+ aView1.m_aInvalidations.clear();
+ comphelper::dispatchCommand(".uno:InsertPage", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(aView1.m_bTilesInvalidated);
+ CPPUNIT_ASSERT_EQUAL(9, pXImpressDocument->getParts());
+ CPPUNIT_ASSERT_EQUAL(size_t(9), aView1.m_aInvalidations.size());
+
+ // Delete slide
+ aView1.m_bTilesInvalidated = false;
+ aView1.m_aInvalidations.clear();
+ comphelper::dispatchCommand(".uno:DeletePage", uno::Sequence<beans::PropertyValue>());
+ Scheduler::ProcessEventsToIdle();
+ CPPUNIT_ASSERT(aView1.m_bTilesInvalidated);
+ CPPUNIT_ASSERT_EQUAL(8, pXImpressDocument->getParts());
+ CPPUNIT_ASSERT_EQUAL(size_t(8), aView1.m_aInvalidations.size());
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx
new file mode 100644
index 000000000..56d1f8fc7
--- /dev/null
+++ b/sd/qa/unit/uiimpress.cxx
@@ -0,0 +1,384 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/frame/DispatchHelper.hpp>
+
+#include <comphelper/processfactory.hxx>
+#include <comphelper/propertysequence.hxx>
+#include <sfx2/dispatch.hxx>
+#include <sfx2/request.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <svl/intitem.hxx>
+#include <svx/svxids.hrc>
+#include <svx/svdoashp.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/xfillit0.hxx>
+#include <svx/xflclit.hxx>
+#include <svx/xflgrit.hxx>
+#include <svl/stritem.hxx>
+#include <undo/undomanager.hxx>
+#include <vcl/scheduler.hxx>
+
+#include <DrawDocShell.hxx>
+#include <DrawController.hxx>
+#include <ViewShell.hxx>
+#include <app.hrc>
+#include <drawdoc.hxx>
+#include <sdpage.hxx>
+#include <unomodel.hxx>
+
+using namespace ::com::sun::star;
+
+/// Impress UI tests.
+class SdUiImpressTest : public test::BootstrapFixture, public unotest::MacrosTest
+{
+protected:
+ uno::Reference<lang::XComponent> mxComponent;
+
+public:
+ virtual void setUp() override;
+ virtual void tearDown() override;
+
+ void checkCurrentPageNumber(sal_uInt16 nNum);
+};
+
+void SdUiImpressTest::setUp()
+{
+ test::BootstrapFixture::setUp();
+
+ mxDesktop.set(frame::Desktop::create(mxComponentContext));
+}
+
+void SdUiImpressTest::tearDown()
+{
+ if (mxComponent.is())
+ mxComponent->dispose();
+
+ test::BootstrapFixture::tearDown();
+}
+
+void SdUiImpressTest::checkCurrentPageNumber(sal_uInt16 nNum)
+{
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawView> xDrawView(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xPage(xDrawView->getCurrentPage(), uno::UNO_SET_THROW);
+ uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY);
+
+ sal_uInt16 nPageNumber;
+ xPropertySet->getPropertyValue("Number") >>= nPageNumber;
+ CPPUNIT_ASSERT_EQUAL(nNum, nPageNumber);
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf111522)
+{
+ // Load the document and create two new windows.
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc("sd/qa/unit/data/tdf111522.odp"));
+ auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON);
+ sd::ViewShell* pViewShell1 = pImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON);
+ sd::ViewShell* pViewShell2 = pImpressDocument->GetDocShell()->GetViewShell();
+ CPPUNIT_ASSERT(pViewShell1 != pViewShell2);
+
+ // Have slide 1 in window 1, slide 2 in window 2.
+ SfxRequest aRequest(pViewShell2->GetViewFrame(), SID_SWITCHPAGE);
+ aRequest.AppendItem(SfxUInt32Item(ID_VAL_WHATPAGE, 1));
+ aRequest.AppendItem(
+ SfxUInt32Item(ID_VAL_WHATKIND, static_cast<sal_uInt32>(PageKind::Standard)));
+ pViewShell2->ExecuteSlot(aRequest, /*bAsync=*/false);
+
+ // Start text edit in window 1.
+ SdPage* pPage1 = pViewShell1->GetActualPage();
+ SdrObject* pShape1 = pPage1->GetObj(0);
+ SdrView* pView1 = pViewShell1->GetView();
+ pView1->MarkObj(pShape1, pView1->GetSdrPageView());
+ pView1->SdrBeginTextEdit(pShape1);
+ CPPUNIT_ASSERT(pView1->IsTextEdit());
+
+ // Move the shape in window 2 & undo.
+ SdPage* pPage2 = pViewShell2->GetActualPage();
+ CPPUNIT_ASSERT(pPage1 != pPage2);
+ SdrObject* pShape2 = pPage2->GetObj(0);
+ SdrView* pView2 = pViewShell2->GetView();
+ pView2->MarkObj(pShape2, pView2->GetSdrPageView());
+ pView2->MoveMarkedObj(Size(1, 1), /*bCopy=*/false);
+ // Without the accompanying fix in place, this test would have failed with an assertion failure
+ // in SdrObjEditView::SdrEndTextEdit() as mpOldTextEditUndoManager was not nullptr.
+ pViewShell2->GetViewFrame()->GetDispatcher()->Execute(SID_UNDO, SfxCallMode::SYNCHRON);
+
+ // Rotate the shape in window 2 & undo.
+ pView2->MarkObj(pShape2, pView2->GetSdrPageView());
+ pView2->RotateMarkedObj(pShape2->GetLastBoundRect().Center(), /*nAngle=*/45);
+ // Without the accompanying fix in place, this test would have failed with an assertion failure
+ // in SdrObjEditView::SdrEndTextEdit() as mpOldTextEditUndoManager was not nullptr.
+ pViewShell2->GetViewFrame()->GetDispatcher()->Execute(SID_UNDO, SfxCallMode::SYNCHRON);
+
+ // Start text edit in window 2.
+ // tdf#125824
+ pView2->MarkObj(pShape2, pView2->GetSdrPageView());
+ pView2->SdrBeginTextEdit(pShape2);
+ CPPUNIT_ASSERT(pView2->IsTextEdit());
+ // Write 'test' inside the shape
+ SfxStringItem aInputString(SID_ATTR_CHAR, "test");
+ pViewShell2->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR, SfxCallMode::SYNCHRON,
+ { &aInputString });
+ CPPUNIT_ASSERT(pView2->GetTextEditObject());
+ EditView& rEditView = pView2->GetTextEditOutlinerView()->GetEditView();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), rEditView.GetSelection().nStartPos);
+ pView2->SdrEndTextEdit();
+ // Without the accompanying fix in place, this test would have failed with an assertion failure
+ // in SdrObjEditView::SdrEndTextEdit() as mpOldTextEditUndoManager was not nullptr.
+ pViewShell2->GetViewFrame()->GetDispatcher()->Execute(SID_UNDO, SfxCallMode::SYNCHRON);
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf126197)
+{
+ // Load the document and create two new windows.
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc("sd/qa/unit/data/tdf126197.odp"));
+ auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON);
+ sd::ViewShell* pViewShell1 = pImpressDocument->GetDocShell()->GetViewShell();
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON);
+ sd::ViewShell* pViewShell2 = pImpressDocument->GetDocShell()->GetViewShell();
+ CPPUNIT_ASSERT(pViewShell1 != pViewShell2);
+
+ // Start text edit in window 1.
+ SdPage* pPage1 = pViewShell1->GetActualPage();
+ SdrObject* pShape1 = pPage1->GetObj(0);
+ SdrView* pView1 = pViewShell1->GetView();
+ pView1->MarkObj(pShape1, pView1->GetSdrPageView());
+ pView1->SdrBeginTextEdit(pShape1);
+ CPPUNIT_ASSERT(pView1->IsTextEdit());
+
+ SdPage* pPage2 = pViewShell2->GetActualPage();
+ CPPUNIT_ASSERT_EQUAL(pPage1, pPage2);
+ SdrObject* pShape2 = pPage2->GetObj(0);
+ CPPUNIT_ASSERT_EQUAL(pShape1, pShape2);
+ SdrView* pView2 = pViewShell2->GetView();
+ pView2->MarkObj(pShape2, pView2->GetSdrPageView());
+
+ // Without the accompanying fix in place, this test would have failed with an assertion failure
+ // in SdrObjEditView::SdrEndTextEdit()
+ pViewShell2->GetViewFrame()->GetDispatcher()->Execute(SID_DELETE, SfxCallMode::SYNCHRON);
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf128651)
+{
+ // Error was, that undo and redo changes size of the shape. Affected actions were e.g.
+ // extrusion on/off, shadow on/off, changes on line or fill attributes.
+ // All these actions do not change the snap rectangle.
+ mxComponent = loadFromDesktop(
+ m_directories.getURLFromSrc("sd/qa/unit/data/tdf128651_CustomShapeUndo.odp"));
+ auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pObject = pActualPage->GetObj(0);
+ auto pCustomShape = dynamic_cast<SdrObjCustomShape*>(pObject);
+ CPPUNIT_ASSERT_MESSAGE("No Shape", pCustomShape);
+ const sal_Int32 nOrigWidth(pCustomShape->GetSnapRect().GetWidth());
+
+ SdDrawDocument* pDocument = pXImpressDocument->GetDoc();
+ sd::UndoManager* pUndoManager = pDocument->GetUndoManager();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), pUndoManager->GetUndoActionCount());
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), pUndoManager->GetRedoActionCount());
+
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pCustomShape, pView->GetSdrPageView());
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_EXTRUSION_TOGGLE,
+ SfxCallMode::SYNCHRON);
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pUndoManager->GetUndoActionCount());
+
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_UNDO, SfxCallMode::SYNCHRON);
+ const sal_Int32 nUndoWidth(pCustomShape->GetSnapRect().GetWidth());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Undo changes width", nOrigWidth, nUndoWidth);
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pUndoManager->GetRedoActionCount());
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_REDO, SfxCallMode::SYNCHRON);
+ const sal_Int32 nRedoWidth(pCustomShape->GetSnapRect().GetWidth());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Redo changes width", nUndoWidth, nRedoWidth);
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf129346)
+{
+ mxComponent = loadFromDesktop("private:factory/simpress",
+ "com.sun.star.presentation.PresentationDocument");
+
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ dispatchCommand(mxComponent, ".uno:DiaMode", {});
+ Scheduler::ProcessEventsToIdle();
+ checkCurrentPageNumber(1);
+
+ dispatchCommand(mxComponent, ".uno:InsertPage", {});
+ Scheduler::ProcessEventsToIdle();
+ checkCurrentPageNumber(2);
+
+ dispatchCommand(mxComponent, ".uno:Undo", {});
+ Scheduler::ProcessEventsToIdle();
+ checkCurrentPageNumber(1);
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf127481)
+{
+ mxComponent = loadFromDesktop("private:factory/simpress",
+ "com.sun.star.presentation.PresentationDocument");
+
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount());
+
+ uno::Sequence<beans::PropertyValue> aArgs(comphelper::InitPropertySequence(
+ { { "Rows", uno::makeAny(sal_Int32(1)) }, { "Columns", uno::makeAny(sal_Int32(1)) } }));
+
+ dispatchCommand(mxComponent, ".uno:InsertTable", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount());
+
+ dispatchCommand(mxComponent, ".uno:DuplicatePage", aArgs);
+ Scheduler::ProcessEventsToIdle();
+
+ checkCurrentPageNumber(2);
+
+ pActualPage = pViewShell->GetActualPage();
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount());
+
+ auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pActualPage->GetObj(2));
+ CPPUNIT_ASSERT(pTableObject);
+
+ //without the fix, it would crash here
+ pViewShell->GetView()->SdrBeginTextEdit(pTableObject);
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount());
+}
+
+namespace
+{
+void dispatchCommand(const uno::Reference<lang::XComponent>& xComponent, const OUString& rCommand,
+ const uno::Sequence<beans::PropertyValue>& rPropertyValues)
+{
+ uno::Reference<frame::XController> xController
+ = uno::Reference<frame::XModel>(xComponent, uno::UNO_QUERY_THROW)->getCurrentController();
+ CPPUNIT_ASSERT(xController.is());
+ uno::Reference<frame::XDispatchProvider> xFrame(xController->getFrame(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFrame.is());
+
+ uno::Reference<uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext();
+ uno::Reference<frame::XDispatchHelper> xDispatchHelper(frame::DispatchHelper::create(xContext));
+ CPPUNIT_ASSERT(xDispatchHelper.is());
+
+ xDispatchHelper->executeDispatch(xFrame, rCommand, OUString(), 0, rPropertyValues);
+}
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testPageFillColor)
+{
+ // Load the document and create two new windows.
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc("sd/qa/unit/data/tdf126197.odp"));
+ auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell();
+
+ // Set FillPageColor
+
+ uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence({
+ { "Color", uno::makeAny(OUString("ff0000")) },
+ }));
+
+ ::dispatchCommand(mxComponent, ".uno:FillPageColor", aPropertyValues);
+
+ SdPage* pPage = pViewShell->getCurrentPage();
+ const SfxItemSet& rPageAttr = pPage->getSdrPageProperties().GetItemSet();
+
+ const XFillStyleItem* pFillStyle = rPageAttr.GetItem(XATTR_FILLSTYLE);
+ drawing::FillStyle eXFS = pFillStyle->GetValue();
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, eXFS);
+
+ Color aColor = rPageAttr.GetItem(XATTR_FILLCOLOR)->GetColorValue();
+ CPPUNIT_ASSERT_EQUAL(OUString("ff0000"), aColor.AsRGBHexString());
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testPageFillGradient)
+{
+ // Load the document and create two new windows.
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc("sd/qa/unit/data/tdf126197.odp"));
+ auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell();
+
+ // Set FillPageColor
+
+ uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence({
+ { "FillPageGradientJSON",
+ uno::makeAny(
+ OUString("{\"style\":\"LINEAR\",\"startcolor\":\"ff0000\",\"endcolor\":\"0000ff\","
+ "\"angle\":\"300\",\"border\":\"0\",\"x\":\"0\",\"y\":\"0\",\"intensstart\":"
+ "\"100\",\"intensend\":\"100\",\"stepcount\":\"0\"}")) },
+ }));
+
+ dispatchCommand(mxComponent, ".uno:FillPageGradient", aPropertyValues);
+
+ SdPage* pPage = pViewShell->getCurrentPage();
+ const SfxItemSet& rPageAttr = pPage->getSdrPageProperties().GetItemSet();
+
+ const XFillStyleItem* pFillStyle = rPageAttr.GetItem(XATTR_FILLSTYLE);
+ drawing::FillStyle eXFS = pFillStyle->GetValue();
+ CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, eXFS);
+
+ XGradient aGradient = rPageAttr.GetItem(XATTR_FILLGRADIENT)->GetGradientValue();
+ CPPUNIT_ASSERT_EQUAL(OUString("ff0000"), aGradient.GetStartColor().AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("0000ff"), aGradient.GetEndColor().AsRGBHexString());
+}
+
+CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf134053)
+{
+ // Error was, that dashes and dots were longer than in MS Office.
+ mxComponent = loadFromDesktop(
+ m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf134053_dashdot.pptx"));
+ auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+ sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+ SdPage* pActualPage = pViewShell->GetActualPage();
+ SdrObject* pShape = pActualPage->GetObj(0);
+ CPPUNIT_ASSERT_MESSAGE("No Shape", pShape);
+
+ // Break line into single dash and dot objects
+ SdrView* pView = pViewShell->GetView();
+ pView->MarkObj(pShape, pView->GetSdrPageView());
+ dispatchCommand(mxComponent, ".uno:ConvertIntoMetafile", {});
+ dispatchCommand(mxComponent, ".uno:Break", {});
+
+ // Measure the rendered length of dash, dot and distance
+ SdrObject* pDash = pActualPage->GetObj(0);
+ const tools::Rectangle& rBoundDashRect = pDash->GetCurrentBoundRect();
+ const double fDashLength(rBoundDashRect.GetWidth());
+ SdrObject* pDot = pActualPage->GetObj(1);
+ const tools::Rectangle& rBoundDotRect = pDot->GetCurrentBoundRect();
+ const double fDotLength(rBoundDotRect.GetWidth());
+ const double fDistance(rBoundDotRect.Left() - rBoundDashRect.Right());
+
+ // Because 0% is not possible as dash length (as of June 2020) 1% is used in the fix.
+ // For that a larger delta is here allowed to the ideal value than needed for
+ // rounding errors.
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Distance", 2117, fDistance, 12);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Dot length", 706, fDotLength, 12);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Dash length", 2822, fDashLength, 12);
+}
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/uimpress.cxx b/sd/qa/unit/uimpress.cxx
new file mode 100644
index 000000000..cd9a98296
--- /dev/null
+++ b/sd/qa/unit/uimpress.cxx
@@ -0,0 +1,115 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/types.h>
+#include <cppunit/TestAssert.h>
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <vcl/svapp.hxx>
+#include <sddll.hxx>
+#include <drawdoc.hxx>
+
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+
+using namespace ::com::sun::star;
+
+namespace {
+
+class Test : public CppUnit::TestFixture {
+public:
+ Test();
+ virtual ~Test() override;
+
+ virtual void setUp() override;
+ virtual void tearDown() override;
+
+ void testAddPage();
+ void testCustomShow();
+
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(testAddPage);
+ CPPUNIT_TEST(testCustomShow);
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+ uno::Reference< uno::XComponentContext > m_xContext;
+ std::unique_ptr<SdDrawDocument> m_pDoc;
+};
+
+Test::Test()
+ : m_xContext(cppu::defaultBootstrap_InitialComponentContext())
+{
+
+ uno::Reference<lang::XMultiComponentFactory> xFactory(m_xContext->getServiceManager());
+ uno::Reference<lang::XMultiServiceFactory> xSM(xFactory, uno::UNO_QUERY_THROW);
+
+ //Without this we're crashing because callees are using
+ //getProcessServiceFactory. In general those should be removed in favour
+ //of retaining references to the root ServiceFactory as it's passed around
+ comphelper::setProcessServiceFactory(xSM);
+
+ InitVCL();
+
+ SdDLL::Init();
+}
+
+void Test::setUp()
+{
+ m_pDoc.reset(new SdDrawDocument(DocumentType::Impress, nullptr));
+}
+
+void Test::tearDown()
+{
+ m_pDoc.reset();
+}
+
+Test::~Test()
+{
+ uno::Reference< lang::XComponent >(m_xContext, uno::UNO_QUERY_THROW)->dispose();
+}
+
+void Test::testAddPage()
+{
+ SdrPage* pPage = m_pDoc->AllocPage(false);
+ m_pDoc->InsertPage(pPage);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("added one page to model",
+ static_cast<sal_uInt16>(1), m_pDoc->GetPageCount());
+ m_pDoc->DeletePage(0);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("removed one page to model",
+ static_cast<sal_uInt16>(0), m_pDoc->GetPageCount());
+
+ SdrPage* pMasterPage = m_pDoc->AllocPage(true);
+ m_pDoc->InsertMasterPage(pMasterPage);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("added one master page to model",
+ static_cast<sal_uInt16>(1), m_pDoc->GetMasterPageCount());
+ m_pDoc->DeleteMasterPage(0);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("removed one master page to model",
+ static_cast<sal_uInt16>(0), m_pDoc->GetMasterPageCount());
+}
+
+void Test::testCustomShow()
+{
+ CPPUNIT_ASSERT_MESSAGE("test generation of custom show list!",
+ m_pDoc->GetCustomShowList(true));
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unoapi/knownissues.xcl b/sd/qa/unoapi/knownissues.xcl
new file mode 100644
index 000000000..d9e069001
--- /dev/null
+++ b/sd/qa/unoapi/knownissues.xcl
@@ -0,0 +1,86 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+### tdf#115345 - not useful to set Orientation ###
+sd.SdDrawPage::com::sun::star::drawing::GenericDrawPage
+sd.SdGenericDrawPage::com::sun::star::drawing::GenericDrawPage
+sd.SdMasterPage::com::sun::star::drawing::GenericDrawPage
+
+### i84994 ###
+sd.SdXImpressDocument::com::sun::star::view::XPrintable
+# -> disabled in sd.sce
+
+### i34994 ###
+sd.SdXPresentation::com::sun::star::presentation::Presentation
+
+### i53605 ###
+sd.DrawController_OutlineView::com::sun::star::awt::XUserInputInterception
+sd.DrawController_PresentationView::com::sun::star::awt::XUserInputInterception
+sd.DrawController_DrawView::com::sun::star::awt::XUserInputInterception
+sd.DrawController_HandoutView::com::sun::star::awt::XUserInputInterception
+sd.DrawController_NotesView::com::sun::star::awt::XUserInputInterception
+
+### i63664 ###
+sd.DrawController_OutlineView::com::sun::star::view::XSelectionSupplier
+sd.DrawController_PresentationView::com::sun::star::view::XSelectionSupplier
+
+### i65255 ###
+sd.DrawController_OutlineView::com::sun::star::drawing::DrawingDocumentDrawView
+sd.DrawController_PresentationView::com::sun::star::drawing::DrawingDocumentDrawView
+sd.DrawController_DrawView::com::sun::star::drawing::DrawingDocumentDrawView
+sd.DrawController_HandoutView::com::sun::star::drawing::DrawingDocumentDrawView
+sd.DrawController_NotesView::com::sun::star::drawing::DrawingDocumentDrawView
+
+### i65256 ###
+sd.DrawController_PresentationView::com::sun::star::drawing::XDrawView
+sd.DrawController_HandoutView::com::sun::star::drawing::XDrawView
+sd.DrawController_NotesView::com::sun::star::drawing::XDrawView
+
+### i84992 ###
+sd.DrawController_NotesView::com::sun::star::ui::XContextMenuInterception
+sd.DrawController_OutlineView::com::sun::star::ui::XContextMenuInterception
+sd.DrawController_HandoutView::com::sun::star::ui::XContextMenuInterception
+sd.DrawController_PresentationView::com::sun::star::ui::XContextMenuInterception
+sd.DrawController_DrawView::com::sun::star::ui::XContextMenuInterception
+
+### i87746 ###
+sd.SdXShape::com::sun::star::drawing::Shape::Style
+# -> disabled in sd.sce
+
+### i88256 ###
+sd.SdXCustomPresentationAccess::com::sun::star::container::XNameReplace
+
+### i88309 ###
+sd.DrawController_OutlineView::com::sun::star::frame::XController
+
+### i88537 ###
+sd.DrawController_OutlineView::com::sun::star::beans::XPropertySet
+
+### i88537 ###
+sd.DrawController_PresentationView::com::sun::star::beans::XPropertySet
+
+### i109518 ###
+sd.SdXPresentation::com::sun::star::presentation::XPresentation
+sd.SdXPresentation::com::sun::star::beans::XPropertySet
+
+### i113161 ###
+sd.SdLayer::com::sun::star::beans::XPropertySet
+sd.SdLayer::com::sun::star::drawing::Layer
+
+### i113386 ###
+sd.AccessibleDrawDocumentView::com::sun::star::accessibility::XAccessibleComponent
diff --git a/sd/qa/unoapi/sd.sce b/sd/qa/unoapi/sd.sce
new file mode 100644
index 000000000..3ba62b02d
--- /dev/null
+++ b/sd/qa/unoapi/sd.sce
@@ -0,0 +1,41 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+-o sd.AccessibleDrawDocumentView
+#i111199 -o sd.AccessibleOutlineView
+#i35935# -o sd.AccessibleSlideView
+#i111042# -o sd.DrawController_DrawView
+#i111042# -o sd.DrawController_HandoutView
+#i111042# -o sd.DrawController_NotesView
+#i111043# -o sd.DrawController_OutlineView
+#i111042# -o sd.DrawController_PresentationView
+-o sd.SdDocLinkTargets
+-o sd.SdDrawPage
+-o sd.SdDrawPagesAccess
+-o sd.SdGenericDrawPage
+-o sd.SdLayer
+-o sd.SdLayerManager
+-o sd.SdMasterPage
+-o sd.SdMasterPagesAccess
+-o sd.SdPageLinkTargets
+-o sd.SdXCustomPresentation
+#i111329 -o sd.SdXCustomPresentationAccess
+#i84994# -o sd.SdXImpressDocument
+-o sd.SdXPresentation
+#i87746 -o sd.SdXShape
+