oox/inc/drawingml/fontworkhelpers.hxx                 |    6 
 oox/qa/unit/data/tdf153296_VML_export_ArchUpCurve.odt |binary
 oox/qa/unit/data/tdf153296_VML_export_SlantUp.odt     |binary
 oox/qa/unit/export.cxx                                |   51 +
 oox/source/drawingml/fontworkhelpers.cxx              |  628 ++++++++++++++++++
 oox/source/export/vmlexport.cxx                       |   24 
 6 files changed, 706 insertions(+), 3 deletions(-)

New commits:
commit b1fda9b2c4986ad44245020b98ddcc2e81c299bf
Author:     Regina Henschel <[email protected]>
AuthorDate: Mon Jan 30 01:26:23 2023 +0100
Commit:     Regina Henschel <[email protected]>
CommitDate: Wed Feb 1 17:17:51 2023 +0000

    tdf#153296 improved markup for VML shapetype of Fontwork
    
    In the current version of 'vml-shape-types' file the markup for the
    Fontwork shapes is missing or is so, that Word does not accept it as
    WordArt markup. So Word treats it as custom geometry and saves it that
    way. But LO cannot import custom geometry for WordArt.
    
    The patch changes it so, that for Fontwork shapes a dedicated markup
    map is used with markup, that Word accepts as WordArt. Non-Fontwork
    shapes still use the 'vml-shape-types' file for VML export.
    
    I have added two unit tests. But a true test is not possible, because
    for that you would need to open and save the files with MS Word.
    
    This patch solves at the same time some of the handle problems for the
    special case of Fontwork shapes, see tdf#152913.
    
    Change-Id: Icc5afb88c58b644d25b3cf8d415e5aa2d6a7b19e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146311
    Tested-by: Jenkins
    Reviewed-by: Regina Henschel <[email protected]>

diff --git a/oox/inc/drawingml/fontworkhelpers.hxx 
b/oox/inc/drawingml/fontworkhelpers.hxx
index 2a48f422abbf..f1861f266bde 100644
--- a/oox/inc/drawingml/fontworkhelpers.hxx
+++ b/oox/inc/drawingml/fontworkhelpers.hxx
@@ -21,6 +21,7 @@
 
 #include <rtl/ustring.hxx>
 #include <sal/types.h>
+#include <svx/msdffdef.hxx>
 
 #include "customshapeproperties.hxx"
 
@@ -40,5 +41,10 @@ void putCustomShapeIntoTextPathMode(
     const css::uno::Reference<css::drawing::XShape>& xShape,
     const oox::drawingml::CustomShapePropertiesPtr& pCustomShapePropertiesPtr,
     const OUString& sMSPresetType, const bool bFromWordArt);
+
+/** Returns the markup for the v:shapetype element for export of a Fontwork 
shape to VML.
+    If eShapeType is not a Fontwork shape type or the special type is not yet 
implemented,
+    it returns an empty string.*/
+OString GetVMLFontworkShapetypeMarkup(const MSO_SPT eShapeType);
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
\ No newline at end of file
diff --git a/oox/qa/unit/data/tdf153296_VML_export_ArchUpCurve.odt 
b/oox/qa/unit/data/tdf153296_VML_export_ArchUpCurve.odt
new file mode 100644
index 000000000000..37e0f779d02a
Binary files /dev/null and 
b/oox/qa/unit/data/tdf153296_VML_export_ArchUpCurve.odt differ
diff --git a/oox/qa/unit/data/tdf153296_VML_export_SlantUp.odt 
b/oox/qa/unit/data/tdf153296_VML_export_SlantUp.odt
new file mode 100644
index 000000000000..223ec5d169b5
Binary files /dev/null and b/oox/qa/unit/data/tdf153296_VML_export_SlantUp.odt 
differ
diff --git a/oox/qa/unit/export.cxx b/oox/qa/unit/export.cxx
index f25bf4493b17..64c97b56a24d 100644
--- a/oox/qa/unit/export.cxx
+++ b/oox/qa/unit/export.cxx
@@ -832,6 +832,57 @@ CPPUNIT_TEST_FIXTURE(Test, testFontworkFontProperties)
     sStyle = getXPath(pXmlDoc, "(//v:shape)[5]/v:textpath", "style");
     CPPUNIT_ASSERT(sStyle.indexOf("v-same-letter-heights:t") > -1);
 }
+
+CPPUNIT_TEST_FIXTURE(Test, testVMLFontworkSlantUp)
+{
+    // The document has a Fontwork shape type 'textSlantUp' (172). When 
exporting to docx, Word does
+    // not recognize its markup as preset WordArt, because the used markup 
differs from what Word
+    // expects for this type of shape. As a result Word saves the shape as 
having custom geometry
+    // and such is not understand by LibreOffice.
+    loadFromURL(u"tdf153296_VML_export_SlantUp.odt");
+
+    // FIXME: tdf#153183 validation error in OOXML export: Errors: 1
+    // Attribute 'ID' is not allowed to appear in element 'v:shape'.
+    skipValidation();
+
+    // Save to DOCX:
+    save("Office Open XML Text");
+
+    // Examine the saved markup. I could identify the following two problems 
to hinder Word from
+    // accepting the markup. There might exist more problems.
+    xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
+
+    // Make sure a <v:path> element exists and has an o:connecttype attribute
+    assertXPath(pXmlDoc, "//v:shapetype/v:path", 1);
+    assertXPath(pXmlDoc, "//v:shapetype/v:path[@o:connecttype]", 1);
+
+    // Make sure the handle position is written without reference to a formula
+    OUString sPosition = getXPath(pXmlDoc, "//v:h", "position");
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPosition.indexOf("@"));
+    CPPUNIT_ASSERT_EQUAL(OUString("topLeft,#0"), sPosition);
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testVMLFontworkArchUp)
+{
+    // The document has a Fontwork shape type 'textArchUp' (172). When 
exporting to docx, the shape
+    // was not exported as VML Fontwork but as a rectangle.
+    loadFromURL(u"tdf153296_VML_export_ArchUpCurve.odt");
+
+    // FIXME: tdf#153183 validation error in OOXML export: Errors: 1
+    // Attribute 'ID' is not allowed to appear in element 'v:shape'.
+    skipValidation();
+
+    // Save to DOCX:
+    save("Office Open XML Text");
+
+    // Examine the saved markup.
+    xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
+
+    // Make sure there is no <v:rect> element
+    assertXPath(pXmlDoc, "//v:rect", 0);
+    // ..., but a <v:shapetype> element with <v:textpath> subelement
+    assertXPath(pXmlDoc, "//v:shapetype/v:textpath", 1);
+}
 }
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/oox/source/drawingml/fontworkhelpers.cxx 
b/oox/source/drawingml/fontworkhelpers.cxx
index da430c33879f..84779dbe9290 100644
--- a/oox/source/drawingml/fontworkhelpers.cxx
+++ b/oox/source/drawingml/fontworkhelpers.cxx
@@ -24,6 +24,7 @@
 #include <comphelper/sequence.hxx>
 #include <drawingml/customshapeproperties.hxx>
 #include <drawingml/presetgeometrynames.hxx>
+#include <svx/msdffdef.hxx>
 #include <tools/helpers.hxx>
 
 #include <com/sun/star/beans/PropertyValue.hpp>
@@ -33,6 +34,8 @@
 #include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
 #include <com/sun/star/drawing/XShape.hpp>
 
+#include <map>
+
 using namespace com::sun::star;
 
 void 
FontworkHelpers::resetPropertyValueInVec(std::vector<beans::PropertyValue>& 
rPropVec,
@@ -169,4 +172,629 @@ void FontworkHelpers::putCustomShapeIntoTextPathMode(
                            
uno::Any(comphelper::containerToSequence(aGeomPropVec)));
 }
 
+OString FontworkHelpers::GetVMLFontworkShapetypeMarkup(const MSO_SPT 
eShapeType)
+{
+    // The markup is taken from VML in DOCX documents. Using the generated 
'vml-shape-types' file
+    // does not work.
+
+    static const std::map<MSO_SPT, OString> aTypeToMarkupMap{
+        { mso_sptTextSimple,
+          "<v:shapetype id=\"_x0000_t24\" coordsize=\"21600,21600\" 
o:spt=\"24\" adj=\"10800\" "
+          "path=\"m@7,l@8,m@5,21600l@6,21600e\"><v:formulas><v:f eqn=\"sum #0 
0 10800\"/><v:f "
+          "eqn=\"prod #0 2 1\"/><v:f eqn=\"sum 21600 0 @1\"/><v:f eqn=\"sum 0 
0 @2\"/><v:f "
+          "eqn=\"sum 21600 0 @3\"/><v:f eqn=\"if @0 @3 0\"/><v:f eqn=\"if @0 
21600 @1\"/><v:f "
+          "eqn=\"if @0 0 @2\"/><v:f eqn=\"if @0 @4 21600\"/><v:f eqn=\"mid @5 
@6\"/><v:f eqn=\"mid "
+          "@8 @5\"/><v:f eqn=\"mid @7 @8\"/><v:f eqn=\"mid @6 @7\"/><v:f 
eqn=\"sum @6 0 "
+          "@5\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"@9,0;@10,10800;@11,21600;@12,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"#0,bottomRight\" 
xrange=\"6629,14971\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextOctagon,
+          "<v:shapetype id=\"_x0000_t25\" coordsize=\"21600,21600\" 
o:spt=\"25\" adj=\"4800\" "
+          
"path=\"m0@0l7200,r7200,l21600@0m0@1l7200,21600r7200,l21600@1e\"><v:formulas><v:f
 "
+          "eqn=\"val #0\"/><v:f eqn=\"sum 21600 0 @0\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"rect\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"3086,10800\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextHexagon,
+          "<v:shapetype id=\"_x0000_t26\" coordsize=\"21600,21600\" 
o:spt=\"26\" adj=\"10800\" "
+          
"path=\"m0@0l10800,,21600@0m,21600r10800,l21600,21600e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum @1 10800 0\"/><v:f 
eqn=\"sum 21600 0 "
+          "@1\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;5400,@1;10800,21600;16200,@1\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCurve,
+          "<v:shapetype id=\"_x0000_t27\" coordsize=\"21600,21600\" 
o:spt=\"27\" adj=\"3086\" "
+          
"path=\"m,qy10800@0,21600,m0@1qy10800,21600,21600@1e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"prod @1 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,@0;0,@2;10800,21600;21600,@2\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"center,#0\" yrange=\"0,7200\"/></v:handles><o:lock 
v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextWave,
+          "<v:shapetype id=\"_x0000_t28\" coordsize=\"21600,21600\" 
o:spt=\"28\" "
+          "adj=\"2809,10800\" "
+          
"path=\"m@25@0c@26@3@27@1@28@0m@21@4c@22@5@23@6@24@4e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod @0 41 9\"/><v:f eqn=\"prod @0 23 9\"/><v:f 
eqn=\"sum 0 0 "
+          "@2\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"sum 21600 0 
@1\"/><v:f eqn=\"sum 21600 0 "
+          "@3\"/><v:f eqn=\"sum #1 0 10800\"/><v:f eqn=\"sum 21600 0 
#1\"/><v:f eqn=\"prod @8 2 "
+          "3\"/><v:f eqn=\"prod @8 4 3\"/><v:f eqn=\"prod @8 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@9\"/><v:f eqn=\"sum 21600 0 @10\"/><v:f eqn=\"sum 21600 0 
@11\"/><v:f eqn=\"prod #1 2 "
+          "3\"/><v:f eqn=\"prod #1 4 3\"/><v:f eqn=\"prod #1 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@15\"/><v:f eqn=\"sum 21600 0 @16\"/><v:f eqn=\"sum 21600 0 
@17\"/><v:f eqn=\"if @7 @14 "
+          "0\"/><v:f eqn=\"if @7 @13 @15\"/><v:f eqn=\"if @7 @12 @16\"/><v:f 
eqn=\"if @7 21600 "
+          "@17\"/><v:f eqn=\"if @7 0 @20\"/><v:f eqn=\"if @7 @9 @19\"/><v:f 
eqn=\"if @7 @10 "
+          "@18\"/><v:f eqn=\"if @7 @11 21600\"/><v:f eqn=\"sum @24 0 
@21\"/><v:f eqn=\"sum @4 0 "
+          "@0\"/><v:f eqn=\"max @21 @25\"/><v:f eqn=\"min @24 @28\"/><v:f 
eqn=\"prod @0 2 "
+          "1\"/><v:f eqn=\"sum 21600 0 @33\"/><v:f eqn=\"mid @26 @27\"/><v:f 
eqn=\"mid @24 "
+          "@28\"/><v:f eqn=\"mid @22 @23\"/><v:f eqn=\"mid @21 
@25\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"@35,@0;@38,10800;@37,@4;@36,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" 
yrange=\"0,4459\"/><v:h "
+          "position=\"#1,bottomRight\" 
xrange=\"8640,12960\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextRing,
+          "<v:shapetype id=\"_x0000_t29\" coordsize=\"21600,21600\" 
o:spt=\"29\" "
+          "adj=\"11796480,5400\" "
+          
"path=\"al10800,10800,10800,10800@2@14al10800,10800@0@0@2@14e\"><v:formulas><v:f
 "
+          "eqn=\"val #1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f 
eqn=\"sumangle #0 0 "
+          "180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 
1\"/><v:f eqn=\"sumangle #0 "
+          "90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f 
eqn=\"sumangle @8 0 "
+          "90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f eqn=\"sumangle @10 0 
360\"/><v:f eqn=\"if @10 @11 "
+          "@10\"/><v:f eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 
@12\"/><v:f eqn=\"sum 0 0 "
+          "@14\"/><v:f eqn=\"val 10800\"/><v:f eqn=\"sum 10800 0 #1\"/><v:f 
eqn=\"prod #1 1 "
+          "2\"/><v:f eqn=\"sum @18 5400 0\"/><v:f eqn=\"cos @19 #0\"/><v:f 
eqn=\"sin @19 "
+          "#0\"/><v:f eqn=\"sum @20 10800 0\"/><v:f eqn=\"sum @21 10800 
0\"/><v:f eqn=\"sum 10800 "
+          "0 @20\"/><v:f eqn=\"sum #1 10800 0\"/><v:f eqn=\"if @9 @17 
@25\"/><v:f eqn=\"if @9 0 "
+          "21600\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@27;@22,@23;10800,@26;@24,@23\"/><v:textpath 
on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"#1,#0\" 
polar=\"10800,10800\" "
+          "radiusrange=\"0,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextOnCurve,
+          "<v:shapetype id=\"_x0000_t30\" coordsize=\"21600,21600\" 
o:spt=\"30\" adj=\"3086\" "
+          
"path=\"m,qy10800@0,21600,m0@1qy10800,21600,21600@1e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"prod @1 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,@0;0,@2;10800,21600;21600,@2\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"center,#0\" yrange=\"0,7200\"/></v:handles><o:lock 
v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextOnRing,
+          "<v:shapetype id=\"_x0000_t31\" coordsize=\"21600,21600\" 
o:spt=\"31\" adj=\"11796480\" "
+          "path=\"al10800,10800,10800,10800@2@14e\"><v:formulas><v:f eqn=\"val 
#1\"/><v:f "
+          "eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f eqn=\"sumangle #0 0 
180\"/><v:f "
+          "eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 1\"/><v:f 
eqn=\"sumangle #0 90 0\"/><v:f "
+          "eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f eqn=\"sumangle @8 0 
90\"/><v:f eqn=\"if "
+          "@9 @7 @5\"/><v:f eqn=\"sumangle @10 0 360\"/><v:f eqn=\"if @10 @11 
@10\"/><v:f "
+          "eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 @12\"/><v:f 
eqn=\"sum 0 0 @14\"/><v:f "
+          "eqn=\"val 10800\"/><v:f eqn=\"cos 10800 #0\"/><v:f eqn=\"sin 10800 
#0\"/><v:f eqn=\"sum "
+          "@17 10800 0\"/><v:f eqn=\"sum @18 10800 0\"/><v:f eqn=\"sum 10800 0 
@17\"/><v:f "
+          "eqn=\"if @9 0 21600\"/><v:f eqn=\"sum 10800 0 
@18\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@22;@19,@20;@21,@20\"/><v:textpath on=\"t\" "
+          "style=\"v-text-kern:t\" fitpath=\"t\"/><v:handles><v:h 
position=\"@16,#0\" "
+          "polar=\"10800,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextPlainText,
+          "<v:shapetype id=\"_x0000_t136\" coordsize=\"21600,21600\" 
o:spt=\"136\" adj=\"10800\" "
+          "path=\"m@7,l@8,m@5,21600l@6,21600e\"><v:formulas><v:f eqn=\"sum #0 
0 10800\"/><v:f "
+          "eqn=\"prod #0 2 1\"/><v:f eqn=\"sum 21600 0 @1\"/><v:f eqn=\"sum 0 
0 @2\"/><v:f "
+          "eqn=\"sum 21600 0 @3\"/><v:f eqn=\"if @0 @3 0\"/><v:f eqn=\"if @0 
21600 @1\"/><v:f "
+          "eqn=\"if @0 0 @2\"/><v:f eqn=\"if @0 @4 21600\"/><v:f eqn=\"mid @5 
@6\"/><v:f eqn=\"mid "
+          "@8 @5\"/><v:f eqn=\"mid @7 @8\"/><v:f eqn=\"mid @6 @7\"/><v:f 
eqn=\"sum @6 0 "
+          "@5\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"@9,0;@10,10800;@11,21600;@12,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"#0,bottomRight\" 
xrange=\"6629,14971\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextStop,
+          "<v:shapetype id=\"_x0000_t137\" coordsize=\"21600,21600\" 
o:spt=\"137\" adj=\"4800\" "
+          
"path=\"m0@0l7200,r7200,l21600@0m0@1l7200,21600r7200,l21600@1e\"><v:formulas><v:f
 "
+          "eqn=\"val #0\"/><v:f eqn=\"sum 21600 0 @0\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"rect\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"3086,10800\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextTriangle,
+          "<v:shapetype id=\"_x0000_t138\" coordsize=\"21600,21600\" 
o:spt=\"138\" adj=\"10800\" "
+          
"path=\"m0@0l10800,,21600@0m,21600r10800,l21600,21600e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum @1 10800 0\"/><v:f 
eqn=\"sum 21600 0 "
+          "@1\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;5400,@1;10800,21600;16200,@1\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextTriangleInverted,
+          "<v:shapetype id=\"_x0000_t139\" coordsize=\"21600,21600\" 
o:spt=\"139\" adj=\"10800\" "
+          "path=\"m,l10800,,21600,m0@0l10800,21600,21600@0e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum @1 10800 0\"/><v:f 
eqn=\"sum 21600 0 "
+          "@1\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;5400,@2;10800,21600;16200,@2\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextChevron,
+          "<v:shapetype id=\"_x0000_t140\" coordsize=\"21600,21600\" 
o:spt=\"140\" adj=\"5400\" "
+          
"path=\"m0@0l10800,,21600@0m,21600l10800@1,21600,21600e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"sum 21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,0;0,@3;10800,@1;21600,@3\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,10800\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextChevronInverted,
+          "<v:shapetype id=\"_x0000_t141\" coordsize=\"21600,21600\" 
o:spt=\"141\" adj=\"16200\" "
+          
"path=\"m,l10800@1,21600,m0@0l10800,21600,21600@0e\"><v:formulas><v:f eqn=\"val 
"
+          "#0\"/><v:f eqn=\"sum 21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,@1;0,@2;10800,21600;21600,@2\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"10800,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextRingInside,
+          "<v:shapetype id=\"_x0000_t142\" coordsize=\"21600,21600\" 
o:spt=\"142\" adj=\"13500\" "
+          
"path=\"m0@1qy10800,,21600@1,10800@0,0@1m0@2qy10800@3,21600@2,10800,21600,0@2e\"><v:"
+          "formulas><v:f eqn=\"val #0\"/><v:f eqn=\"prod #0 1 2\"/><v:f 
eqn=\"sum height 0 "
+          "@1\"/><v:f eqn=\"sum height 0 #0\"/><v:f eqn=\"sum @2 0 
@1\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          
"o:connectlocs=\"10800,0;10800,@0;0,10800;10800,21600;10800,@3;21600,10800\" "
+          "o:connectangles=\"270,270,180,90,90,0\"/><v:textpath on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"10800,21600\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextRingOutside,
+          "<v:shapetype id=\"_x0000_t143\" coordsize=\"21600,21600\" 
o:spt=\"143\" adj=\"13500\" "
+          
"path=\"m0@1qy10800@0,21600@1,10800,,0@1m0@2qy10800,21600,21600@2,10800@3,0@2e\"><v:"
+          "formulas><v:f eqn=\"val #0\"/><v:f eqn=\"prod #0 1 2\"/><v:f 
eqn=\"sum height 0 "
+          "@1\"/><v:f eqn=\"sum height 0 #0\"/><v:f eqn=\"sum @2 0 
@1\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          
"o:connectlocs=\"10800,0;10800,@0;0,10800;10800,21600;10800,@3;21600,10800\" "
+          "o:connectangles=\"270,270,180,90,90,0\"/><v:textpath on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"10800,21600\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextArchUpCurve,
+          "<v:shapetype id=\"_x0000_t144\" coordsize=\"21600,21600\" 
o:spt=\"144\" "
+          "adj=\"11796480\" 
path=\"al10800,10800,10800,10800@2@14e\"><v:formulas><v:f eqn=\"val "
+          "#1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f 
eqn=\"sumangle #0 0 "
+          "180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 
1\"/><v:f eqn=\"sumangle #0 "
+          "90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f 
eqn=\"sumangle @8 0 "
+          "90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f eqn=\"sumangle @10 0 
360\"/><v:f eqn=\"if @10 @11 "
+          "@10\"/><v:f eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 
@12\"/><v:f eqn=\"sum 0 0 "
+          "@14\"/><v:f eqn=\"val 10800\"/><v:f eqn=\"cos 10800 #0\"/><v:f 
eqn=\"sin 10800 "
+          "#0\"/><v:f eqn=\"sum @17 10800 0\"/><v:f eqn=\"sum @18 10800 
0\"/><v:f eqn=\"sum 10800 "
+          "0 @17\"/><v:f eqn=\"if @9 0 21600\"/><v:f eqn=\"sum 10800 0 
@18\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@22;@19,@20;@21,@20\"/><v:textpath on=\"t\" "
+          "style=\"v-text-kern:t\" fitpath=\"t\"/><v:handles><v:h 
position=\"@16,#0\" "
+          "polar=\"10800,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextArchDownCurve,
+          "<v:shapetype id=\"_x0000_t145\" coordsize=\"21600,21600\" 
o:spt=\"145\" "
+          "path=\"al10800,10800,10800,10800@3@15e\"><v:formulas><v:f eqn=\"val 
#1\"/><v:f "
+          "eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f eqn=\"sumangle #0 0 
180\"/><v:f "
+          "eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 1\"/><v:f 
eqn=\"sumangle #0 90 0\"/><v:f "
+          "eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f eqn=\"sumangle @8 0 
90\"/><v:f eqn=\"if "
+          "@9 @7 @5\"/><v:f eqn=\"sumangle @10 0 360\"/><v:f eqn=\"if @10 @11 
@10\"/><v:f "
+          "eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 @12\"/><v:f 
eqn=\"sum 0 0 @14\"/><v:f "
+          "eqn=\"val 10800\"/><v:f eqn=\"cos 10800 #0\"/><v:f eqn=\"sin 10800 
#0\"/><v:f eqn=\"sum "
+          "@17 10800 0\"/><v:f eqn=\"sum @18 10800 0\"/><v:f eqn=\"sum 10800 0 
@17\"/><v:f "
+          "eqn=\"if @9 0 21600\"/><v:f eqn=\"sum 10800 0 
@18\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@22;@19,@20;@21,@20\"/><v:textpath on=\"t\" "
+          "style=\"v-text-kern:t\" fitpath=\"t\"/><v:handles><v:h 
position=\"@16,#0\" "
+          "polar=\"10800,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCircleCurve,
+          "<v:shapetype id=\"_x0000_t146\" coordsize=\"21600,21600\" 
o:spt=\"146\" "
+          "adj=\"-11730944\" 
path=\"al10800,10800,10800,10800@2@5e\"><v:formulas><v:f eqn=\"val "
+          "#1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f eqn=\"prod 
#0 2 1\"/><v:f "
+          "eqn=\"sumangle @3 0 360\"/><v:f eqn=\"if @3 @4 @3\"/><v:f eqn=\"val 
10800\"/><v:f "
+          "eqn=\"cos 10800 #0\"/><v:f eqn=\"sin 10800 #0\"/><v:f eqn=\"sum @7 
10800 0\"/><v:f "
+          "eqn=\"sum @8 10800 0\"/><v:f eqn=\"sum 10800 0 @8\"/><v:f eqn=\"if 
#0 0 "
+          "21600\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"@12,10800;@9,@10;@9,@11\"/><v:textpath on=\"t\" 
style=\"v-text-kern:t\" "
+          "fitpath=\"t\"/><v:handles><v:h position=\"@6,#0\" "
+          "polar=\"10800,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextButtonCurve,
+          "<v:shapetype id=\"_x0000_t147\" coordsize=\"21600,21600\" 
o:spt=\"147\" "
+          "adj=\"11796480\" "
+          
"path=\"al10800,10800,10800,10800@2@14m,10800r21600,al10800,10800,10800,10800@1@15e\"><v:"
+          "formulas><v:f eqn=\"val #1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 
0 #0\"/><v:f "
+          "eqn=\"sumangle #0 0 180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f 
eqn=\"prod @4 2 "
+          "1\"/><v:f eqn=\"sumangle #0 90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f 
eqn=\"abs #0\"/><v:f "
+          "eqn=\"sumangle @8 0 90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f 
eqn=\"sumangle @10 0 "
+          "360\"/><v:f eqn=\"if @10 @11 @10\"/><v:f eqn=\"sumangle @12 0 
360\"/><v:f eqn=\"if @12 "
+          "@13 @12\"/><v:f eqn=\"sum 0 0 @14\"/><v:f eqn=\"val 10800\"/><v:f 
eqn=\"cos 10800 "
+          "#0\"/><v:f eqn=\"sin 10800 #0\"/><v:f eqn=\"sum @17 10800 0\"/><v:f 
eqn=\"sum @18 10800 "
+          "0\"/><v:f eqn=\"sum 10800 0 @17\"/><v:f eqn=\"if @9 0 21600\"/><v:f 
eqn=\"sum 10800 0 "
+          "@18\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          
"o:connectlocs=\"10800,0;@19,@20;@21,@20;10800,10800;0,10800;21600,10800;10800,21600;@19,"
+          "@23;@21,@23\"/><v:textpath on=\"t\" style=\"v-text-kern:t\" "
+          "fitpath=\"t\"/><v:handles><v:h position=\"@16,#0\" "
+          "polar=\"10800,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextArchUpPour,
+          "<v:shapetype id=\"_x0000_t148\" coordsize=\"21600,21600\" 
o:spt=\"148\" "
+          "adj=\"11796480,5400\" "
+          
"path=\"al10800,10800,10800,10800@2@14al10800,10800@0@0@2@14e\"><v:formulas><v:f
 "
+          "eqn=\"val #1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f 
eqn=\"sumangle #0 0 "
+          "180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 
1\"/><v:f eqn=\"sumangle #0 "
+          "90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f 
eqn=\"sumangle @8 0 "
+          "90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f eqn=\"sumangle @10 0 
360\"/><v:f eqn=\"if @10 @11 "
+          "@10\"/><v:f eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 
@12\"/><v:f eqn=\"sum 0 0 "
+          "@14\"/><v:f eqn=\"val 10800\"/><v:f eqn=\"sum 10800 0 #1\"/><v:f 
eqn=\"prod #1 1 "
+          "2\"/><v:f eqn=\"sum @18 5400 0\"/><v:f eqn=\"cos @19 #0\"/><v:f 
eqn=\"sin @19 "
+          "#0\"/><v:f eqn=\"sum @20 10800 0\"/><v:f eqn=\"sum @21 10800 
0\"/><v:f eqn=\"sum 10800 "
+          "0 @20\"/><v:f eqn=\"sum #1 10800 0\"/><v:f eqn=\"if @9 @17 
@25\"/><v:f eqn=\"if @9 0 "
+          "21600\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@27;@22,@23;10800,@26;@24,@23\"/><v:textpath 
on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"#1,#0\" 
polar=\"10800,10800\" "
+          "radiusrange=\"0,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextArchDownPour,
+          "<v:shapetype id=\"_x0000_t149\" coordsize=\"21600,21600\" 
o:spt=\"149\" adj=\",5400\" "
+          
"path=\"al10800,10800@0@0@3@15al10800,10800,10800,10800@3@15e\"><v:formulas><v:f
 "
+          "eqn=\"val #1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f 
eqn=\"sumangle #0 0 "
+          "180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 
1\"/><v:f eqn=\"sumangle #0 "
+          "90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f 
eqn=\"sumangle @8 0 "
+          "90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f eqn=\"sumangle @10 0 
360\"/><v:f eqn=\"if @10 @11 "
+          "@10\"/><v:f eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 
@12\"/><v:f eqn=\"sum 0 0 "
+          "@14\"/><v:f eqn=\"val 10800\"/><v:f eqn=\"sum 10800 0 #1\"/><v:f 
eqn=\"prod #1 1 "
+          "2\"/><v:f eqn=\"sum @18 5400 0\"/><v:f eqn=\"cos @19 #0\"/><v:f 
eqn=\"sin @19 "
+          "#0\"/><v:f eqn=\"sum @20 10800 0\"/><v:f eqn=\"sum @21 10800 
0\"/><v:f eqn=\"sum 10800 "
+          "0 @20\"/><v:f eqn=\"sum #1 10800 0\"/><v:f eqn=\"if @9 @17 
@25\"/><v:f eqn=\"if @9 0 "
+          "21600\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@27;@22,@23;10800,@26;@24,@23\"/><v:textpath 
on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"#1,#0\" 
polar=\"10800,10800\" "
+          "radiusrange=\"0,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCirclePour,
+          "<v:shapetype id=\"_x0000_t150\" coordsize=\"21600,21600\" 
o:spt=\"150\" "
+          "adj=\"-11730944,5400\" "
+          
"path=\"al10800,10800,10800,10800@2@5al10800,10800@0@0@2@5e\"><v:formulas><v:f 
eqn=\"val "
+          "#1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f eqn=\"prod 
#0 2 1\"/><v:f "
+          "eqn=\"sumangle @3 0 360\"/><v:f eqn=\"if @3 @4 @3\"/><v:f eqn=\"val 
10800\"/><v:f "
+          "eqn=\"sum 10800 0 #1\"/><v:f eqn=\"prod #1 1 2\"/><v:f eqn=\"sum @8 
5400 0\"/><v:f "
+          "eqn=\"cos @9 #0\"/><v:f eqn=\"sin @9 #0\"/><v:f eqn=\"sum @10 10800 
0\"/><v:f eqn=\"sum "
+          "@11 10800 0\"/><v:f eqn=\"sum 10800 0 @11\"/><v:f eqn=\"sum #1 
10800 0\"/><v:f eqn=\"if "
+          "#0 @7 @15\"/><v:f eqn=\"if #0 0 21600\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" "
+          "o:connectlocs=\"@17,10800;@12,@13;@16,10800;@12,@14\"/><v:textpath 
on=\"t\" "
+          "fitshape=\"t\"/><v:handles><v:h position=\"#1,#0\" 
polar=\"10800,10800\" "
+          "radiusrange=\"0,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextButtonPour,
+          "<v:shapetype id=\"_x0000_t151\" coordsize=\"21600,21600\" 
o:spt=\"151\" "
+          "adj=\"11796480,5400\" "
+          
"path=\"al10800,10800,10800,10800@2@14al10800,10800@0@0@2@14m@25@17l@26@17m@25@18l@26@"
+          
"18al10800,10800@0@0@1@15al10800,10800,10800,10800@1@15e\"><v:formulas><v:f 
eqn=\"val "
+          "#1\"/><v:f eqn=\"val #0\"/><v:f eqn=\"sum 0 0 #0\"/><v:f 
eqn=\"sumangle #0 0 "
+          "180\"/><v:f eqn=\"sumangle #0 0 90\"/><v:f eqn=\"prod @4 2 
1\"/><v:f eqn=\"sumangle #0 "
+          "90 0\"/><v:f eqn=\"prod @6 2 1\"/><v:f eqn=\"abs #0\"/><v:f 
eqn=\"sumangle @8 0 "
+          "90\"/><v:f eqn=\"if @9 @7 @5\"/><v:f eqn=\"sumangle @10 0 
360\"/><v:f eqn=\"if @10 @11 "
+          "@10\"/><v:f eqn=\"sumangle @12 0 360\"/><v:f eqn=\"if @12 @13 
@12\"/><v:f eqn=\"sum 0 0 "
+          "@14\"/><v:f eqn=\"sum #1 10800 0\"/><v:f eqn=\"prod @16 1 2\"/><v:f 
eqn=\"sum 21600 0 "
+          "@17\"/><v:f eqn=\"sum 10800 0 #1\"/><v:f eqn=\"prod @19 1 2\"/><v:f 
eqn=\"prod @20 @20 "
+          "1\"/><v:f eqn=\"prod #1 #1 1\"/><v:f eqn=\"sum @22 0 @21\"/><v:f 
eqn=\"sqrt @23\"/><v:f "
+          "eqn=\"sum 10800 0 @24\"/><v:f eqn=\"sum @24 10800 0\"/><v:f 
eqn=\"val 10800\"/><v:f "
+          "eqn=\"cos @17 #0\"/><v:f eqn=\"sin @17 #0\"/><v:f eqn=\"sum @28 
10800 0\"/><v:f "
+          "eqn=\"sum @29 10800 0\"/><v:f eqn=\"sum 10800 0 @28\"/><v:f 
eqn=\"sum 10800 0 "
+          "@29\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          
"o:connectlocs=\"10800,0;@30,@31;10800,@19;@32,@31;10800,@17;@25,10800;10800,@18;@26,"
+          "10800;10800,@16;@30,@33;10800,21600;@32,@33\"/><v:textpath on=\"t\" 
"
+          "fitshape=\"t\"/><v:handles><v:h position=\"#1,#0\" 
polar=\"10800,10800\" "
+          "radiusrange=\"4320,10800\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCurveUp,
+          "<v:shapetype id=\"_x0000_t152\" coordsize=\"21600,21600\" 
o:spt=\"152\" adj=\"9931\" "
+          
"path=\"m0@0c7200@2,14400@1,21600,m0@5c7200@6,14400@6,21600@5e\"><v:formulas><v:f
 "
+          "eqn=\"val #0\"/><v:f eqn=\"prod #0 3 4\"/><v:f eqn=\"prod #0 5 
4\"/><v:f eqn=\"prod #0 "
+          "3 8\"/><v:f eqn=\"prod #0 1 8\"/><v:f eqn=\"sum 21600 0 @3\"/><v:f 
eqn=\"sum @4 21600 "
+          "0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"prod @5 1 2\"/><v:f 
eqn=\"sum @7 @8 0\"/><v:f "
+          "eqn=\"prod #0 7 8\"/><v:f eqn=\"prod @5 1 3\"/><v:f eqn=\"sum @1 @2 
0\"/><v:f eqn=\"sum "
+          "@12 @0 0\"/><v:f eqn=\"prod @13 1 4\"/><v:f eqn=\"sum @11 14400 "
+          "@14\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@10;0,@9;10800,21600;21600,@8\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" "
+          "yrange=\"0,12169\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCurveDown,
+          "<v:shapetype id=\"_x0000_t153\" coordsize=\"21600,21600\" 
o:spt=\"153\" adj=\"9391\" "
+          
"path=\"m,c7200@1,14400@2,21600@0m0@5c7200@6,14400@6,21600@5e\"><v:formulas><v:f
 "
+          "eqn=\"val #0\"/><v:f eqn=\"prod #0 3 4\"/><v:f eqn=\"prod #0 5 
4\"/><v:f eqn=\"prod #0 "
+          "3 8\"/><v:f eqn=\"prod #0 1 8\"/><v:f eqn=\"sum 21600 0 @3\"/><v:f 
eqn=\"sum @4 21600 "
+          "0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"prod @5 1 2\"/><v:f 
eqn=\"sum @7 @8 0\"/><v:f "
+          "eqn=\"prod #0 7 8\"/><v:f eqn=\"prod @5 1 3\"/><v:f eqn=\"sum @1 @2 
0\"/><v:f eqn=\"sum "
+          "@12 @0 0\"/><v:f eqn=\"prod @13 1 4\"/><v:f eqn=\"sum @11 14400 "
+          "@14\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@10;0,@8;10800,21600;21600,@9\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"bottomRight,#0\" "
+          "yrange=\"0,11368\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCascadeUp,
+          "<v:shapetype id=\"_x0000_t154\" coordsize=\"21600,21600\" 
o:spt=\"154\" adj=\"9600\" "
+          "path=\"m0@2l21600,m,21600l21600@0e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 #0\"/><v:f eqn=\"prod @1 1 4\"/><v:f eqn=\"prod #0 1 
2\"/><v:f eqn=\"prod @2 1 "
+          "2\"/><v:f eqn=\"sum @3 10800 0\"/><v:f eqn=\"sum @4 10800 0\"/><v:f 
eqn=\"sum @0 21600 "
+          "@2\"/><v:f eqn=\"prod @7 1 2\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"10800,@4;0,@6;10800,@5;21600,@3\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"bottomRight,#0\" 
yrange=\"6171,21600\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCascadeDown,
+          "<v:shapetype id=\"_x0000_t155\" coordsize=\"21600,21600\" 
o:spt=\"155\" adj=\"9600\" "
+          "path=\"m,l21600@2m0@0l21600,21600e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 #0\"/><v:f eqn=\"prod @1 1 4\"/><v:f eqn=\"prod #0 1 
2\"/><v:f eqn=\"prod @2 1 "
+          "2\"/><v:f eqn=\"sum @3 10800 0\"/><v:f eqn=\"sum @4 10800 0\"/><v:f 
eqn=\"sum @0 21600 "
+          "@2\"/><v:f eqn=\"prod @7 1 2\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"10800,@4;0,@3;10800,@5;21600,@6\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"6171,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextWave1,
+          "<v:shapetype id=\"_x0000_t156\" coordsize=\"21600,21600\" 
o:spt=\"156\" "
+          "adj=\"2809,10800\" "
+          
"path=\"m@25@0c@26@3@27@1@28@0m@21@4c@22@5@23@6@24@4e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod @0 41 9\"/><v:f eqn=\"prod @0 23 9\"/><v:f 
eqn=\"sum 0 0 "
+          "@2\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"sum 21600 0 
@1\"/><v:f eqn=\"sum 21600 0 "
+          "@3\"/><v:f eqn=\"sum #1 0 10800\"/><v:f eqn=\"sum 21600 0 
#1\"/><v:f eqn=\"prod @8 2 "
+          "3\"/><v:f eqn=\"prod @8 4 3\"/><v:f eqn=\"prod @8 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@9\"/><v:f eqn=\"sum 21600 0 @10\"/><v:f eqn=\"sum 21600 0 
@11\"/><v:f eqn=\"prod #1 2 "
+          "3\"/><v:f eqn=\"prod #1 4 3\"/><v:f eqn=\"prod #1 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@15\"/><v:f eqn=\"sum 21600 0 @16\"/><v:f eqn=\"sum 21600 0 
@17\"/><v:f eqn=\"if @7 @14 "
+          "0\"/><v:f eqn=\"if @7 @13 @15\"/><v:f eqn=\"if @7 @12 @16\"/><v:f 
eqn=\"if @7 21600 "
+          "@17\"/><v:f eqn=\"if @7 0 @20\"/><v:f eqn=\"if @7 @9 @19\"/><v:f 
eqn=\"if @7 @10 "
+          "@18\"/><v:f eqn=\"if @7 @11 21600\"/><v:f eqn=\"sum @24 0 
@21\"/><v:f eqn=\"sum @4 0 "
+          "@0\"/><v:f eqn=\"max @21 @25\"/><v:f eqn=\"min @24 @28\"/><v:f 
eqn=\"prod @0 2 "
+          "1\"/><v:f eqn=\"sum 21600 0 @33\"/><v:f eqn=\"mid @26 @27\"/><v:f 
eqn=\"mid @24 "
+          "@28\"/><v:f eqn=\"mid @22 @23\"/><v:f eqn=\"mid @21 
@25\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"@35,@0;@38,10800;@37,@4;@36,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" 
yrange=\"0,4459\"/><v:h "
+          "position=\"#1,bottomRight\" 
xrange=\"8640,12960\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextWave2,
+          "<v:shapetype id=\"_x0000_t157\" coordsize=\"21600,21600\" 
o:spt=\"157\" "
+          "adj=\"2809,10800\" "
+          
"path=\"m@25@0c@26@1@27@3@28@0m@21@4c@22@6@23@5@24@4e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"prod @0 41 9\"/><v:f eqn=\"prod @0 23 9\"/><v:f 
eqn=\"sum 0 0 "
+          "@2\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"sum 21600 0 
@1\"/><v:f eqn=\"sum 21600 0 "
+          "@3\"/><v:f eqn=\"sum #1 0 10800\"/><v:f eqn=\"sum 21600 0 
#1\"/><v:f eqn=\"prod @8 2 "
+          "3\"/><v:f eqn=\"prod @8 4 3\"/><v:f eqn=\"prod @8 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@9\"/><v:f eqn=\"sum 21600 0 @10\"/><v:f eqn=\"sum 21600 0 
@11\"/><v:f eqn=\"prod #1 2 "
+          "3\"/><v:f eqn=\"prod #1 4 3\"/><v:f eqn=\"prod #1 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@15\"/><v:f eqn=\"sum 21600 0 @16\"/><v:f eqn=\"sum 21600 0 
@17\"/><v:f eqn=\"if @7 @14 "
+          "0\"/><v:f eqn=\"if @7 @13 @15\"/><v:f eqn=\"if @7 @12 @16\"/><v:f 
eqn=\"if @7 21600 "
+          "@17\"/><v:f eqn=\"if @7 0 @20\"/><v:f eqn=\"if @7 @9 @19\"/><v:f 
eqn=\"if @7 @10 "
+          "@18\"/><v:f eqn=\"if @7 @11 21600\"/><v:f eqn=\"sum @24 0 
@21\"/><v:f eqn=\"sum @4 0 "
+          "@0\"/><v:f eqn=\"max @21 @25\"/><v:f eqn=\"min @24 @28\"/><v:f 
eqn=\"prod @0 2 "
+          "1\"/><v:f eqn=\"sum 21600 0 @33\"/><v:f eqn=\"mid @26 @27\"/><v:f 
eqn=\"mid @24 "
+          "@28\"/><v:f eqn=\"mid @22 @23\"/><v:f eqn=\"mid @21 
@25\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"@35,@0;@38,10800;@37,@4;@36,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" 
yrange=\"0,4459\"/><v:h "
+          "position=\"#1,bottomRight\" 
xrange=\"8640,12960\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextWave3,
+          "<v:shapetype id=\"_x0000_t158\" coordsize=\"21600,21600\" 
o:spt=\"158\" "
+          "adj=\"1404,10800\" "
+          
"path=\"m@37@0c@38@3@39@1@40@0@41@3@42@1@43@0m@30@4c@31@5@32@6@33@4@34@5@35@6@36@4e\"><v:"
+          "formulas><v:f eqn=\"val #0\"/><v:f eqn=\"prod @0 41 9\"/><v:f 
eqn=\"prod @0 23 "
+          "9\"/><v:f eqn=\"sum 0 0 @2\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f 
eqn=\"sum 21600 0 "
+          "@1\"/><v:f eqn=\"sum 21600 0 @3\"/><v:f eqn=\"sum #1 0 
10800\"/><v:f eqn=\"sum 21600 0 "
+          "#1\"/><v:f eqn=\"prod @8 1 3\"/><v:f eqn=\"prod @8 2 3\"/><v:f 
eqn=\"prod @8 4 "
+          "3\"/><v:f eqn=\"prod @8 5 3\"/><v:f eqn=\"prod @8 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@9\"/><v:f eqn=\"sum 21600 0 @10\"/><v:f eqn=\"sum 21600 0 
@8\"/><v:f eqn=\"sum 21600 0 "
+          "@11\"/><v:f eqn=\"sum 21600 0 @12\"/><v:f eqn=\"sum 21600 0 
@13\"/><v:f eqn=\"prod #1 1 "
+          "3\"/><v:f eqn=\"prod #1 2 3\"/><v:f eqn=\"prod #1 4 3\"/><v:f 
eqn=\"prod #1 5 3\"/><v:f "
+          "eqn=\"prod #1 2 1\"/><v:f eqn=\"sum 21600 0 @20\"/><v:f eqn=\"sum 
21600 0 @21\"/><v:f "
+          "eqn=\"sum 21600 0 @22\"/><v:f eqn=\"sum 21600 0 @23\"/><v:f 
eqn=\"sum 21600 0 "
+          "@24\"/><v:f eqn=\"if @7 @19 0\"/><v:f eqn=\"if @7 @18 @20\"/><v:f 
eqn=\"if @7 @17 "
+          "@21\"/><v:f eqn=\"if @7 @16 #1\"/><v:f eqn=\"if @7 @15 @22\"/><v:f 
eqn=\"if @7 @14 "
+          "@23\"/><v:f eqn=\"if @7 21600 @24\"/><v:f eqn=\"if @7 0 @29\"/><v:f 
eqn=\"if @7 @9 "
+          "@28\"/><v:f eqn=\"if @7 @10 @27\"/><v:f eqn=\"if @7 @8 @8\"/><v:f 
eqn=\"if @7 @11 "
+          "@26\"/><v:f eqn=\"if @7 @12 @25\"/><v:f eqn=\"if @7 @13 
21600\"/><v:f eqn=\"sum @36 0 "
+          "@30\"/><v:f eqn=\"sum @4 0 @0\"/><v:f eqn=\"max @30 @37\"/><v:f 
eqn=\"min @36 "
+          "@43\"/><v:f eqn=\"prod @0 2 1\"/><v:f eqn=\"sum 21600 0 @48\"/><v:f 
eqn=\"mid @36 "
+          "@43\"/><v:f eqn=\"mid @30 @37\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"@40,@0;@51,10800;@33,@4;@50,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" 
yrange=\"0,2229\"/><v:h "
+          "position=\"#1,bottomRight\" 
xrange=\"8640,12960\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextWave4,
+          "<v:shapetype id=\"_x0000_t159\" coordsize=\"21600,21600\" 
o:spt=\"159\" "
+          "adj=\"1404,10800\" "
+          
"path=\"m@37@0c@38@1@39@3@40@0@41@1@42@3@43@0m@30@4c@31@6@32@5@33@4@34@6@35@5@36@4e\"><v:"
+          "formulas><v:f eqn=\"val #0\"/><v:f eqn=\"prod @0 41 9\"/><v:f 
eqn=\"prod @0 23 "
+          "9\"/><v:f eqn=\"sum 0 0 @2\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f 
eqn=\"sum 21600 0 "
+          "@1\"/><v:f eqn=\"sum 21600 0 @3\"/><v:f eqn=\"sum #1 0 
10800\"/><v:f eqn=\"sum 21600 0 "
+          "#1\"/><v:f eqn=\"prod @8 1 3\"/><v:f eqn=\"prod @8 2 3\"/><v:f 
eqn=\"prod @8 4 "
+          "3\"/><v:f eqn=\"prod @8 5 3\"/><v:f eqn=\"prod @8 2 1\"/><v:f 
eqn=\"sum 21600 0 "
+          "@9\"/><v:f eqn=\"sum 21600 0 @10\"/><v:f eqn=\"sum 21600 0 
@8\"/><v:f eqn=\"sum 21600 0 "
+          "@11\"/><v:f eqn=\"sum 21600 0 @12\"/><v:f eqn=\"sum 21600 0 
@13\"/><v:f eqn=\"prod #1 1 "
+          "3\"/><v:f eqn=\"prod #1 2 3\"/><v:f eqn=\"prod #1 4 3\"/><v:f 
eqn=\"prod #1 5 3\"/><v:f "
+          "eqn=\"prod #1 2 1\"/><v:f eqn=\"sum 21600 0 @20\"/><v:f eqn=\"sum 
21600 0 @21\"/><v:f "
+          "eqn=\"sum 21600 0 @22\"/><v:f eqn=\"sum 21600 0 @23\"/><v:f 
eqn=\"sum 21600 0 "
+          "@24\"/><v:f eqn=\"if @7 @19 0\"/><v:f eqn=\"if @7 @18 @20\"/><v:f 
eqn=\"if @7 @17 "
+          "@21\"/><v:f eqn=\"if @7 @16 #1\"/><v:f eqn=\"if @7 @15 @22\"/><v:f 
eqn=\"if @7 @14 "
+          "@23\"/><v:f eqn=\"if @7 21600 @24\"/><v:f eqn=\"if @7 0 @29\"/><v:f 
eqn=\"if @7 @9 "
+          "@28\"/><v:f eqn=\"if @7 @10 @27\"/><v:f eqn=\"if @7 @8 @8\"/><v:f 
eqn=\"if @7 @11 "
+          "@26\"/><v:f eqn=\"if @7 @12 @25\"/><v:f eqn=\"if @7 @13 
21600\"/><v:f eqn=\"sum @36 0 "
+          "@30\"/><v:f eqn=\"sum @4 0 @0\"/><v:f eqn=\"max @30 @37\"/><v:f 
eqn=\"min @36 "
+          "@43\"/><v:f eqn=\"prod @0 2 1\"/><v:f eqn=\"sum 21600 0 @48\"/><v:f 
eqn=\"mid @36 "
+          "@43\"/><v:f eqn=\"mid @30 @37\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"@40,@0;@51,10800;@33,@4;@50,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" 
yrange=\"0,2229\"/><v:h "
+          "position=\"#1,bottomRight\" 
xrange=\"8640,12960\"/></v:handles><o:lock v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextInflate,
+          "<v:shapetype id=\"_x0000_t160\" coordsize=\"21600,21600\" 
o:spt=\"160\" adj=\"2945\" "
+          
"path=\"m0@0c7200@2,14400@2,21600@0m0@3c7200@4,14400@4,21600@3e\"><v:formulas><v:f
 "
+          "eqn=\"val #0\"/><v:f eqn=\"prod #0 1 3\"/><v:f eqn=\"sum 0 0 
@1\"/><v:f eqn=\"sum 21600 "
+          "0 #0\"/><v:f eqn=\"sum 21600 0 @2\"/><v:f eqn=\"prod #0 2 3\"/><v:f 
eqn=\"sum 21600 0 "
+          "@5\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"rect\"/><v:textpath "
+          "on=\"t\" fitshape=\"t\" xscale=\"t\"/><v:handles><v:h 
position=\"topLeft,#0\" "
+          "yrange=\"0,4629\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextDeflate,
+          "<v:shapetype id=\"_x0000_t161\" coordsize=\"21600,21600\" 
o:spt=\"161\" adj=\"4050\" "
+          
"path=\"m,c7200@0,14400@0,21600,m,21600c7200@1,14400@1,21600,21600e\"><v:formulas><v:f
 "
+          "eqn=\"prod #0 4 3\"/><v:f eqn=\"sum 21600 0 @0\"/><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 #0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@2;0,10800;10800,@3;21600,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"0,8100\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextInflateBottom,
+          "<v:shapetype id=\"_x0000_t162\" coordsize=\"21600,21600\" 
o:spt=\"162\" adj=\"14706\" "
+          "path=\"m,l21600,m0@0c7200@2,14400@2,21600@0e\"><v:formulas><v:f 
eqn=\"val #0\"/><v:f "
+          "eqn=\"prod #0 1 3\"/><v:f eqn=\"sum 28800 0 @1\"/><v:f eqn=\"prod 
#0 1 2\"/><v:f "
+          "eqn=\"sum @1 7200 0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;0,@3;10800,21600;21600,@3\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" "
+          "yrange=\"11148,21600\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextDeflateBottom,
+          "<v:shapetype id=\"_x0000_t163\" coordsize=\"21600,21600\" 
o:spt=\"163\" adj=\"11475\" "
+          
"path=\"m,l21600,m,21600c7200@1,14400@1,21600,21600e\"><v:formulas><v:f 
eqn=\"prod #0 4 "
+          "3\"/><v:f eqn=\"sum @0 0 7200\"/><v:f eqn=\"val #0\"/><v:f 
eqn=\"prod #0 2 3\"/><v:f "
+          "eqn=\"sum @3 7200 0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;0,10800;10800,@2;21600,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"1350,21600\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextInflateTop,
+          "<v:shapetype id=\"_x0000_t164\" coordsize=\"21600,21600\" 
o:spt=\"164\" adj=\"6894\" "
+          
"path=\"m0@0c7200@2,14400@2,21600@0m,21600r21600,e\"><v:formulas><v:f eqn=\"val 
"
+          "#0\"/><v:f eqn=\"prod #0 1 3\"/><v:f eqn=\"sum 0 0 @1\"/><v:f 
eqn=\"prod #0 1 2\"/><v:f "
+          "eqn=\"sum @3 10800 0\"/><v:f eqn=\"sum 21600 0 
@1\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;0,@4;10800,21600;21600,@4\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"topLeft,#0\" "
+          "yrange=\"0,10452\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextDeflateTop,
+          "<v:shapetype id=\"_x0000_t165\" coordsize=\"21600,21600\" 
o:spt=\"165\" adj=\"10125\" "
+          "path=\"m,c7200@0,14400@0,21600,m,21600r21600,e\"><v:formulas><v:f 
eqn=\"prod #0 4 "
+          "3\"/><v:f eqn=\"val #0\"/><v:f eqn=\"prod #0 2 3\"/><v:f eqn=\"sum 
21600 0 "
+          "@2\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@1;0,10800;10800,21600;21600,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"0,20250\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextDeflateInflate,
+          "<v:shapetype id=\"_x0000_t166\" coordsize=\"21600,21600\" 
o:spt=\"166\" adj=\"6054\" "
+          
"path=\"m,l21600,m,10125c7200@1,14400@1,21600,10125m,11475c7200@2,14400@2,21600,11475m,"
+          "21600r21600,e\"><v:formulas><v:f eqn=\"prod #0 4 3\"/><v:f 
eqn=\"sum @0 0 4275\"/><v:f "
+          "eqn=\"sum @0 0 2925\"/></v:formulas><v:path textpathok=\"t\" "
+          "o:connecttype=\"rect\"/><v:textpath on=\"t\" fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"1308,20292\"/></v:handles><o:lock v:ext=\"edit\" 
text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextDeflateInflateDeflate,
+          "<v:shapetype id=\"_x0000_t167\" coordsize=\"21600,21600\" 
o:spt=\"167\" adj=\"6054\" "
+          
"path=\"m,l21600,m,6609c7200@1,14400@1,21600,6609m,7491c7200@2,14400@2,21600,7491m,"
+          
"14109c7200@4,14400@4,21600,14109m,14991c7200@3,14400@3,21600,14991m,21600r21600,e\"><v:"
+          "formulas><v:f eqn=\"prod #0 4 3\"/><v:f eqn=\"sum @0 0 2791\"/><v:f 
eqn=\"sum @0 0 "
+          "1909\"/><v:f eqn=\"sum 21600 0 @1\"/><v:f eqn=\"sum 21600 0 
@2\"/></v:formulas><v:path "
+          "textpathok=\"t\" o:connecttype=\"rect\"/><v:textpath on=\"t\" 
fitshape=\"t\" "
+          "xscale=\"t\"/><v:handles><v:h position=\"center,#0\" "
+          "yrange=\"854,9525\"/></v:handles><o:lock v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextFadeRight,
+          "<v:shapetype id=\"_x0000_t168\" coordsize=\"21600,21600\" 
o:spt=\"168\" adj=\"7200\" "
+          "path=\"m,l21600@0m,21600l21600@1e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum 21600 0 
@2\"/><v:f eqn=\"sum @1 "
+          "21600 @0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@2;0,10800;10800,@3;21600,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"bottomRight,#0\" yrange=\"0,10800\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextFadeLeft,
+          "<v:shapetype id=\"_x0000_t169\" coordsize=\"21600,21600\" 
o:spt=\"169\" adj=\"7200\" "
+          "path=\"m0@0l21600,m0@1l21600,21600e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum 21600 0 
@2\"/><v:f eqn=\"sum @1 "
+          "21600 @0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,@2;0,10800;10800,@3;21600,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,10800\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextFadeUp,
+          "<v:shapetype id=\"_x0000_t170\" coordsize=\"21600,21600\" 
o:spt=\"170\" adj=\"7200\" "
+          "path=\"m@0,l@1,m,21600r21600,e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum 21600 "
+          "0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum 21600 0 @2\"/><v:f 
eqn=\"sum @1 21600 "
+          "@0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;@2,10800;10800,21600;@3,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"#0,topLeft\" xrange=\"0,10792\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextFadeDown,
+          "<v:shapetype id=\"_x0000_t171\" coordsize=\"21600,21600\" 
o:spt=\"171\" adj=\"7200\" "
+          "path=\"m,l21600,m@0,21600l@1,21600e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum 21600 0 
@2\"/><v:f eqn=\"sum @1 "
+          "21600 @0\"/></v:formulas><v:path textpathok=\"t\" 
o:connecttype=\"custom\" "
+          "o:connectlocs=\"10800,0;@2,10800;10800,21600;@3,10800\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"#0,bottomRight\" xrange=\"0,10792\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextSlantUp,
+          "<v:shapetype id=\"_x0000_t172\" coordsize=\"21600,21600\" 
o:spt=\"172\" adj=\"12000\" "
+          "path=\"m0@0l21600,m,21600l21600@1e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum @2 10800 
0\"/><v:f eqn=\"prod @1 "
+          "1 2\"/><v:f eqn=\"sum @4 10800 0\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"10800,@2;0,@3;10800,@5;21600,@4\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"0,15429\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextSlantDown,
+          "<v:shapetype id=\"_x0000_t173\" coordsize=\"21600,21600\" 
o:spt=\"173\" adj=\"9600\" "
+          "path=\"m,l21600@1m0@0l21600,21600e\"><v:formulas><v:f eqn=\"val 
#0\"/><v:f eqn=\"sum "
+          "21600 0 @0\"/><v:f eqn=\"prod #0 1 2\"/><v:f eqn=\"sum @2 10800 
0\"/><v:f eqn=\"prod @1 "
+          "1 2\"/><v:f eqn=\"sum @4 10800 0\"/></v:formulas><v:path 
textpathok=\"t\" "
+          "o:connecttype=\"custom\" 
o:connectlocs=\"10800,@4;0,@2;10800,@3;21600,@5\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"topLeft,#0\" yrange=\"6171,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCanUp,
+          "<v:shapetype id=\"_x0000_t174\" coordsize=\"21600,21600\" 
o:spt=\"174\" adj=\"18514\" "
+          
"path=\"m0@1qy10800,,21600@1m,21600qy10800@0,21600,21600e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"prod @1 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,0;0,@3;10800,@0;21600,@3\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"center,#0\" yrange=\"14400,21600\"/></v:handles><o:lock 
v:ext=\"edit\" "
+          "text=\"t\" shapetype=\"t\"/></v:shapetype>" },
+        { mso_sptTextCanDown,
+          "<v:shapetype id=\"_x0000_t175\" coordsize=\"21600,21600\" 
o:spt=\"175\" adj=\"3086\" "
+          
"path=\"m,qy10800@0,21600,m0@1qy10800,21600,21600@1e\"><v:formulas><v:f 
eqn=\"val "
+          "#0\"/><v:f eqn=\"sum 21600 0 #0\"/><v:f eqn=\"prod @1 1 2\"/><v:f 
eqn=\"sum @2 10800 "
+          "0\"/></v:formulas><v:path textpathok=\"t\" o:connecttype=\"custom\" 
"
+          "o:connectlocs=\"10800,@0;0,@2;10800,21600;21600,@2\" "
+          "o:connectangles=\"270,180,90,0\"/><v:textpath on=\"t\" 
fitshape=\"t\"/><v:handles><v:h "
+          "position=\"center,#0\" yrange=\"0,7200\"/></v:handles><o:lock 
v:ext=\"edit\" text=\"t\" "
+          "shapetype=\"t\"/></v:shapetype>" }
+    };
+
+    auto i(aTypeToMarkupMap.find(eShapeType));
+    return i == aTypeToMarkupMap.end() ? OString() : i->second;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
\ No newline at end of file
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx
index ebe30bce0223..82d92536b226 100644
--- a/oox/source/export/vmlexport.cxx
+++ b/oox/source/export/vmlexport.cxx
@@ -42,6 +42,7 @@
 #include <filter/msfilter/util.hxx>
 #include <filter/msfilter/escherex.hxx>
 #include <o3tl/string_view.hxx>
+#include <drawingml/fontworkhelpers.hxx>
 
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XPropertySetInfo.hpp>
@@ -1305,10 +1306,27 @@ sal_Int32 VMLExport::StartShape()
             break;
         }
         default:
-            if ( m_nShapeType < ESCHER_ShpInst_COUNT )
+            nShapeElement = XML_shape;
+            if (m_pSdrObject->IsTextPath())
+            {
+                bReferToShapeType = m_aShapeTypeWritten[m_nShapeType];
+                if (!bReferToShapeType)
+                {
+                    // Does a predefined markup exist at all?
+                    OString sMarkup = 
FontworkHelpers::GetVMLFontworkShapetypeMarkup(
+                        static_cast<MSO_SPT>(m_nShapeType));
+                    if (!sMarkup.isEmpty())
+                    {
+                        m_pSerializer->write(sMarkup);
+                        m_aShapeTypeWritten[m_nShapeType] = true;
+                        bReferToShapeType = true;
+                    }
+                }
+                // ToDo: The case bReferToShapeType==false happens for 
'non-primitive' shapes for
+                // example. We need to get the geometry from 
CustomShapeGeometry in these cases.
+            }
+            else if ( m_nShapeType < ESCHER_ShpInst_COUNT )
             {
-                nShapeElement = XML_shape;
-
                 // a predefined shape?
                 static std::vector<OString> aShapeTypes = lcl_getShapeTypes();
                 SAL_WARN_IF(m_nShapeType >= aShapeTypes.size(), "oox.vml", 
"Unknown shape type!");

Reply via email to