configure.ac | 7 cui/source/options/optgdlg.cxx | 10 cui/source/options/optinet2.cxx | 2 download.lst | 8 include/xmloff/txtparae.hxx | 4 officecfg/registry/schema/org/openoffice/Office/Common.xcs | 10 oox/source/drawingml/shape.cxx | 19 oox/source/export/drawingml.cxx | 191 oox/source/export/shapes.cxx | 8 readlicense_oo/license/CREDITS.fodt | 4560 +++++----- sc/qa/unit/data/ods/tdf123225_pivotTable_empty_row_col_items.ods |binary sc/qa/unit/data/ods/tdf123225_pivotTable_no_col_items.ods |binary sc/qa/unit/pivottable_filters_test.cxx | 99 sc/source/core/data/dociter.cxx | 24 sc/source/core/data/patattr.cxx | 2 sc/source/filter/excel/xepivotxml.cxx | 53 sd/qa/unit/data/pptx/tdf164936.pptx |binary sd/qa/unit/data/pptx/tdf165321.pptx |binary sd/qa/unit/data/pptx/tdf165670.pptx |binary sd/qa/unit/data/xml/n593612_0.xml | 4 sd/qa/unit/export-tests-ooxml3.cxx | 25 sd/qa/unit/export-tests.cxx | 19 sd/qa/unit/import-tests.cxx | 18 sd/qa/unit/import-tests2.cxx | 39 sfx2/source/view/frmload.cxx | 3 svl/source/crypto/cryptosign.cxx | 54 svx/source/svdraw/svdedtv1.cxx | 20 sw/qa/extras/odfexport/data/tdf165315.rtf | 269 sw/qa/extras/odfexport/odfexport2.cxx | 11 sw/qa/extras/rtfimport/data/165805.rtf | 271 sw/qa/extras/rtfimport/rtfimport.cxx | 7 sw/source/ui/index/swuiidxmrk.cxx | 23 sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx | 4 vcl/osx/salframeview.mm | 14 xmloff/source/text/txtparae.cxx | 112 35 files changed, 3518 insertions(+), 2372 deletions(-)
New commits: commit de0476d1652a6ffa8964ae08829ff654aceabe32 Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Fri Mar 21 15:48:41 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#165851 sfx2: fix loading template with expand URL from configuration Expand trusted URLs from configuration or extension. (regression from commit 836d73a65180d89a077e36457f1f3aa1698c2058) Change-Id: I7c2f8a59b44ae62e25ac26eb568f3f80c77a01ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183206 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Reviewed-by: Michael Stahl <michael.st...@allotropia.de> (cherry picked from commit 8c548d46f4eacd615527412a0019d7a46150bee6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183210 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sfx2/source/view/frmload.cxx b/sfx2/source/view/frmload.cxx index 7ef7c19d2f63..39de317cb4fd 100644 --- a/sfx2/source/view/frmload.cxx +++ b/sfx2/source/view/frmload.cxx @@ -47,6 +47,7 @@ #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/util/XCloseable.hpp> +#include <comphelper/getexpandeduri.hxx> #include <comphelper/interaction.hxx> #include <comphelper/namedvaluecollection.hxx> #include <cppuhelper/exc_hlp.hxx> @@ -418,6 +419,8 @@ bool SfxFrameLoader_Impl::impl_determineTemplateDocument( ::comphelper::NamedVal sTemplateURL = SfxObjectFactory::GetStandardTemplate( sServiceName ); else sTemplateURL = SfxObjectFactory::GetStandardTemplate( SfxObjectShell::GetServiceNameFromFactory( sURL ) ); + // tdf#165851 expand trusted urls from configuration here + sTemplateURL = comphelper::getExpandedUri(m_aContext, sTemplateURL); } if ( !sTemplateURL.isEmpty() ) commit cb7aa3be59f4d2d93cb178121b1cf2ccf5bdce30 Author: Patrick Luby <guibmac...@gmail.com> AuthorDate: Mon Mar 10 10:08:41 2025 -0400 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#151423 allow trackpad or Magic Mouse to behave like a regular mouse Give both trackpad and Magic Mouse users the option to restore the legacy zoom via Command+swipe gesture. The IgnoreKeysWhenScrollingWithTrackpadOrMagicMouse preference is set to true by default and that disables zooming via swiping. The problem is that while trackpad users are able to zoom via a magnify gesture, the Magic Mouse doesn't have a magnify gesture. Since I have not found a reliable way to distinguish a Magic Mouse from a trackpad, Magic Mouse users have no obvious replacement for the zoom via Command+swipe gesture. Change-Id: Ic2fa5ba153ecb3d7a7cd4711549288b28e6591d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182740 Tested-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomac...@gmail.com> (cherry picked from commit 1c4c24042cbe0ede59513d30a676442f7f238b62) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183107 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 108815678b58..e834ea07f9e2 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -701,6 +701,16 @@ </info> <value>15</value> </prop> + <group oor:name="macOS"> + <prop oor:name="IgnoreKeysWhenScrollingWithTrackpadOrMagicMouse" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Specifies if the Command, Option, Control, and Shift keys + should be ignored or not when scrolling on a trackpad or a + Magic Mouse.</desc> + </info> + <value>true</value> + </prop> + </group> </group> <group oor:name="Passwords"> <info> diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm index 7590acf31ebb..cf1b6f4448f8 100644 --- a/vcl/osx/salframeview.mm +++ b/vcl/osx/salframeview.mm @@ -22,6 +22,7 @@ #include <memory> #include <basegfx/numeric/ftools.hxx> +#include <officecfg/Office/Common.hxx> #include <sal/macros.h> #include <tools/helpers.hxx> #include <tools/long.hxx> @@ -240,6 +241,19 @@ static void freezeWindowSizeAndReschedule( NSWindow *pWindow ) static bool isMouseScrollWheelEvent( NSEvent *pEvent ) { + // tdf#151423 allow trackpad or Magic Mouse to behave like a regular mouse + // Give both trackpad and Magic Mouse users the option to restore + // the legacy zoom via Command+swipe gesture. + // The IgnoreKeysWhenScrollingWithTrackpadOrMagicMouse preference is + // set to true by default and that disables zooming via swiping. + // The problem is that while trackpad users are able to zoom via a + // magnify gesture, the Magic Mouse doesn't have a magnify gesture. + // Since I have not found a reliable way to distinguish a Magic Mouse + // from a trackpad, Magic Mouse users have no obvious replacement + // for the zoom via Command+swipe gesture. + if ( !officecfg::Office::Common::VCL::macOS::IgnoreKeysWhenScrollingWithTrackpadOrMagicMouse::get() ) + return true; + return ( pEvent && [pEvent type] == NSEventTypeScrollWheel && [pEvent phase] == NSEventPhaseNone && [pEvent momentumPhase] == NSEventPhaseNone ); } commit 7e6d988a59193a1594c15b8dbb6aea62c2180e1a Author: Tibor Nagy <tibor.nagy.ext...@allotropia.de> AuthorDate: Thu Mar 20 11:47:57 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#165670 PPTX export: fix glue points export regression In some cases, we exported non-integer values for the glue points, and their positions were also incorrect. this regression is caused by commit Id4a127e7ef462611bf63da791717f8260ec51be0 (tdf165262 PPTX export: fix shape export regression). Change-Id: I978fa180ef181391651abad5c2b748e0b606b320 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183165 Reviewed-by: Nagy Tibor <tibor.nagy.ext...@allotropia.de> Tested-by: Jenkins (cherry picked from commit 612891865a74777950ab7355a4d794fa5577c5fc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183177 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 77baafbe755d..0d694d32f76d 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -4691,52 +4691,53 @@ void prepareTextArea(const EnhancedCustomShape2d& rEnhancedCustomShape2d, return; } -void prepareGluePoints(const EnhancedCustomShape2d& rEnhancedCustomShape2d, - std::vector<Guide>& rGuideList, - const uno::Sequence<drawing::EnhancedCustomShapeParameterPair>& rGluePoints, - const uno::Sequence<drawing::EnhancedCustomShapeTextFrame>& aTextFrames) +OUString GetFormula(const OUString& sEquation, const OUString& sReplace, const OUString& sNewStr) { - if (rGluePoints.hasElements()) + OUString sFormula = sEquation; + size_t nPos = sFormula.indexOf(sReplace); + if (nPos != std::string::npos) { - OString sWidth, sHeight; - if (aTextFrames.hasElements()) - { - double fTop = 0.0, fLeft = 0.0, fBottom = 0.0, fRight = 0.0; - - rEnhancedCustomShape2d.GetParameter(fTop, aTextFrames[0].TopLeft.First, true, false); - rEnhancedCustomShape2d.GetParameter(fLeft, aTextFrames[0].TopLeft.Second, true, false); - rEnhancedCustomShape2d.GetParameter(fBottom, aTextFrames[0].BottomRight.First, false, - true); - rEnhancedCustomShape2d.GetParameter(fRight, aTextFrames[0].BottomRight.Second, false, - true); + OUString sModifiedEquation = sFormula.replaceAt(nPos, sReplace.getLength(), sNewStr); + sFormula = "*/ " + sModifiedEquation; + } - sWidth = OString::number(fLeft + fRight); - sHeight = OString::number(fTop + fBottom); - } - else - { - tools::Rectangle aLogicRectLO(rEnhancedCustomShape2d.GetLogicRect()); - sal_Int32 nWidth = aLogicRectLO.Right() - aLogicRectLO.Left(); - sal_Int32 nHeight = aLogicRectLO.Bottom() - aLogicRectLO.Top(); - sWidth = OString::number(oox::drawingml::convertHmmToEmu(nWidth)); - sHeight = OString::number(oox::drawingml::convertHmmToEmu(nHeight)); - } + return sFormula; +} +void prepareGluePoints(std::vector<Guide>& rGuideList, + const css::uno::Sequence<OUString>& aEquations, + const uno::Sequence<drawing::EnhancedCustomShapeParameterPair>& rGluePoints, + const bool bIsOOXML, const sal_Int32 nWidth, const sal_Int32 nHeight) +{ + if (rGluePoints.hasElements()) + { sal_Int32 nIndex = 1; for (auto const& rGluePoint : rGluePoints) { - Guide aGuide; - double fRetValueX; - rEnhancedCustomShape2d.GetParameter(fRetValueX, rGluePoint.First, false, false); - aGuide.sName = "GluePoint"_ostr + OString::number(nIndex) + "X"; - aGuide.sFormula = "*/ " + OString::number(fRetValueX) + " w " + sWidth; - rGuideList.push_back(aGuide); - - double fRetValueY; - rEnhancedCustomShape2d.GetParameter(fRetValueY, rGluePoint.Second, false, false); - aGuide.sName = "GluePoint"_ostr + OString::number(nIndex) + "Y"; - aGuide.sFormula = "*/ " + OString::number(fRetValueY) + " h " + sHeight; - rGuideList.push_back(aGuide); + sal_Int32 nIdx1 = -1; + sal_Int32 nIdx2 = -1; + rGluePoint.First.Value >>= nIdx1; + rGluePoint.Second.Value >>= nIdx2; + + if (nIdx1 != -1 && nIdx2 != -1) + { + Guide aGuideX; + aGuideX.sName = "GluePoint"_ostr + OString::number(nIndex) + "X"; + aGuideX.sFormula + = (bIsOOXML && aEquations.hasElements()) + ? GetFormula(aEquations[nIdx1], "*logwidth/", " w ").toUtf8() + : "*/ " + OString::number(nIdx1) + " w " + OString::number(nWidth); + rGuideList.push_back(aGuideX); + + Guide aGuideY; + aGuideY.sName = "GluePoint"_ostr + OString::number(nIndex) + "Y"; + aGuideY.sFormula + = (bIsOOXML && aEquations.hasElements()) + ? GetFormula(aEquations[nIdx2], "*logheight/", " h ").toUtf8() + : "*/ " + OString::number(nIdx2) + " h " + OString::number(nHeight); + rGuideList.push_back(aGuideY); + } + nIndex++; } } @@ -4776,8 +4777,28 @@ bool DrawingML::WriteCustomGeometry( uno::Sequence<beans::PropertyValue> aPathProp; pPathProp->Value >>= aPathProp; + auto pShapeType = std::find_if(std::cbegin(*pGeometrySeq), std::cend(*pGeometrySeq), + [](const PropertyValue& rProp) { return rProp.Name == "Type"; }); + bool bOOXML = false; + if (pShapeType != std::cend(*pGeometrySeq)) + { + OUString sShapeType; + pShapeType->Value >>= sShapeType; + if (sShapeType.startsWith("ooxml")) + bOOXML = true; + } + + auto pEquationsProp + = std::find_if(std::cbegin(*pGeometrySeq), std::cend(*pGeometrySeq), + [](const PropertyValue& rProp) { return rProp.Name == "Equations"; }); + + css::uno::Sequence<OUString> aEquationSeq; + if (pEquationsProp != std::cend(*pGeometrySeq)) + { + pEquationsProp->Value >>= aEquationSeq; + } + uno::Sequence<drawing::EnhancedCustomShapeParameterPair> aGluePoints; - uno::Sequence<drawing::EnhancedCustomShapeTextFrame> aTextFrames; uno::Sequence<drawing::EnhancedCustomShapeParameterPair> aPairs; uno::Sequence<drawing::EnhancedCustomShapeSegment> aSegments; uno::Sequence<awt::Size> aPathSize; @@ -4791,8 +4812,6 @@ bool DrawingML::WriteCustomGeometry( rPathProp.Value >>= aSegments; else if (rPathProp.Name == "GluePoints") rPathProp.Value >>= aGluePoints; - else if (rPathProp.Name == "TextFrames") - rPathProp.Value >>= aTextFrames; else if (rPathProp.Name == "SubViewSize") rPathProp.Value >>= aPathSize; else if (rPathProp.Name == "StretchX") @@ -4829,50 +4848,6 @@ bool DrawingML::WriteCustomGeometry( // entire method. const EnhancedCustomShape2d aCustomShape2d(const_cast<SdrObjCustomShape&>(rSdrObjCustomShape)); - TextAreaRect aTextAreaRect; - std::vector<Guide> aGuideList; // for now only for <a:rect> - prepareTextArea(aCustomShape2d, aGuideList, aTextAreaRect); - prepareGluePoints(aCustomShape2d, aGuideList, aGluePoints, aTextFrames); - mpFS->startElementNS(XML_a, XML_custGeom); - mpFS->singleElementNS(XML_a, XML_avLst); - if (aGuideList.empty()) - { - mpFS->singleElementNS(XML_a, XML_gdLst); - } - else - { - mpFS->startElementNS(XML_a, XML_gdLst); - for (auto const& elem : aGuideList) - { - mpFS->singleElementNS(XML_a, XML_gd, XML_name, elem.sName, XML_fmla, elem.sFormula); - } - mpFS->endElementNS(XML_a, XML_gdLst); - } - mpFS->singleElementNS(XML_a, XML_ahLst); - - if (!aGuideList.empty()) - { - mpFS->startElementNS(XML_a, XML_cxnLst); - for (auto it = aGuideList.begin(); it != aGuideList.end(); ++it) - { - auto aNextIt = std::next(it); - if (aNextIt != aGuideList.end() && it->sName.startsWith("GluePoint") - && aNextIt->sName.startsWith("GluePoint")) - { - mpFS->startElementNS(XML_a, XML_cxn, XML_ang, "0"); - mpFS->singleElementNS(XML_a, XML_pos, XML_x, it->sName, XML_y, aNextIt->sName); - mpFS->endElementNS(XML_a, XML_cxn); - - ++it; - } - } - mpFS->endElementNS(XML_a, XML_cxnLst); - } - - mpFS->singleElementNS(XML_a, XML_rect, XML_l, aTextAreaRect.left, XML_t, aTextAreaRect.top, - XML_r, aTextAreaRect.right, XML_b, aTextAreaRect.bottom); - mpFS->startElementNS(XML_a, XML_pathLst); - // Prepare width and height for <a:path> bool bUseGlobalViewBox(false); @@ -4942,6 +4917,50 @@ bool DrawingML::WriteCustomGeometry( // shift of the resulting path coordinates. } + TextAreaRect aTextAreaRect; + std::vector<Guide> aGuideList; // for now only for <a:rect> + prepareTextArea(aCustomShape2d, aGuideList, aTextAreaRect); + prepareGluePoints(aGuideList, aEquationSeq, aGluePoints, bOOXML, nViewBoxWidth, nViewBoxHeight); + mpFS->startElementNS(XML_a, XML_custGeom); + mpFS->singleElementNS(XML_a, XML_avLst); + if (aGuideList.empty()) + { + mpFS->singleElementNS(XML_a, XML_gdLst); + } + else + { + mpFS->startElementNS(XML_a, XML_gdLst); + for (auto const& elem : aGuideList) + { + mpFS->singleElementNS(XML_a, XML_gd, XML_name, elem.sName, XML_fmla, elem.sFormula); + } + mpFS->endElementNS(XML_a, XML_gdLst); + } + mpFS->singleElementNS(XML_a, XML_ahLst); + + if (!aGuideList.empty()) + { + mpFS->startElementNS(XML_a, XML_cxnLst); + for (auto it = aGuideList.begin(); it != aGuideList.end(); ++it) + { + auto aNextIt = std::next(it); + if (aNextIt != aGuideList.end() && it->sName.startsWith("GluePoint") + && aNextIt->sName.startsWith("GluePoint")) + { + mpFS->startElementNS(XML_a, XML_cxn, XML_ang, "0"); + mpFS->singleElementNS(XML_a, XML_pos, XML_x, it->sName, XML_y, aNextIt->sName); + mpFS->endElementNS(XML_a, XML_cxn); + + ++it; + } + } + mpFS->endElementNS(XML_a, XML_cxnLst); + } + + mpFS->singleElementNS(XML_a, XML_rect, XML_l, aTextAreaRect.left, XML_t, aTextAreaRect.top, + XML_r, aTextAreaRect.right, XML_b, aTextAreaRect.bottom); + mpFS->startElementNS(XML_a, XML_pathLst); + // Iterate over subpaths sal_Int32 nPairIndex = 0; // index over "Coordinates" sal_Int32 nPathSizeIndex = 0; // index over "SubViewSize" diff --git a/sd/qa/unit/data/pptx/tdf165670.pptx b/sd/qa/unit/data/pptx/tdf165670.pptx new file mode 100644 index 000000000000..66e7c54041f5 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf165670.pptx differ diff --git a/sd/qa/unit/export-tests-ooxml3.cxx b/sd/qa/unit/export-tests-ooxml3.cxx index 7d06160b4ce2..639a64555566 100644 --- a/sd/qa/unit/export-tests-ooxml3.cxx +++ b/sd/qa/unit/export-tests-ooxml3.cxx @@ -27,6 +27,31 @@ public: int testTdf115005_FallBack_Images(bool bAddReplacementImages); }; +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf165670) +{ + createSdImpressDoc("pptx/tdf165670.pptx"); + save(u"Impress Office Open XML"_ustr); + + xmlDocUniquePtr pXmlDoc1 = parseExport(u"ppt/slides/slide1.xml"_ustr); + + // glue points export + // without the fix in place, this test would have failed with + // - Expected: "*/ 690465 w 2407298" + // - Actual : "*/ 1917.97586131837 w 5236" + assertXPath(pXmlDoc1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:gdLst/a:gd[5]", "name", + u"GluePoint1X"); + assertXPath(pXmlDoc1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:gdLst/a:gd[5]", "fmla", + u"*/ 690465 w 2407298"); + + // without the fix in place, this test would have failed with + // - Expected: "*/ 802433 h 1884784" + // - Actual : "*/ 2229.18869642357 h 6687" + assertXPath(pXmlDoc1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:gdLst/a:gd[6]", "name", + u"GluePoint1Y"); + assertXPath(pXmlDoc1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:custGeom/a:gdLst/a:gd[6]", "fmla", + u"*/ 802433 h 1884784"); +} + CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf165262) { createSdImpressDoc("ppt/tdf165262.ppt"); commit 47d3936211ec9fe575b3e6e6ad3abadb4903583a Author: Oliver Specht <oliver.spe...@cib.de> AuthorDate: Tue Mar 18 15:03:31 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#165805 RTF import of \page at table end fixed With 7d3778e0ef9f54f3c8988f1b84d58e7002d6c625 page breaks in tables were ignored in docx import. That is not done in RTF import anymore. Change-Id: I7a0fa859360323376f84570a289ba91079f171cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183096 Tested-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183183 diff --git a/sw/qa/extras/rtfimport/data/165805.rtf b/sw/qa/extras/rtfimport/data/165805.rtf new file mode 100644 index 000000000000..8c9456bb0ebb --- /dev/null +++ b/sw/qa/extras/rtfimport/data/165805.rtf @@ -0,0 +1,271 @@ +{ tf1deflang1025nsinsicpg1252\uc1deff31507\deff0\stshfdbch31505\stshfloch46\stshfhich46\stshfbi31507\deflang1031\deflangfe1041 hemelang1031 hemelangfe1041 hemelangcs0{onttbl{0bidi roman charset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{34bidi romancharset0prq2{\*\panose 02040503050406030204}Cambria Math;}{ 35bidi swisscharset128prq2{\*\panose 020b0400000000000000}Yu Gothic{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{46bidi swisscharset0prq2{\*\panose 020b0604020202020204}Liberation Sans;}{51bidi swisscharset128prq2{\*\panose 020b0400000000000000}@Yu Gothic;} +{lomajor31500bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{dbmajor31501bidi swisscharset128prq2{\*\panose 020b0300000000000000}Yu Gothic Light{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};}{himajor 31502bidi swisscharset0prq2 Aptos Display;} +{bimajor31503bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};}{lominor31504bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};} +{dbminor31505bidi swisscharset128prq2{\*\panose 020b0400000000000000}Yu Gothic{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{himinor31506bidi swisscharset0prq2 Aptos;} +{biminor31507bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Arial};}{52bidi romancharset238prq2 Times New Roman CE{\* alt Arial};} +{53bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{55bidi romancharset161prq2 Times New Roman Greek{\*alt Arial};}{56bidi roman charset162prq2 Times New Roman Tur{\*alt Arial};} +{57bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Arial};}{58 bidi romancharset178prq2 Times New Roman (Arabic){\*alt Arial};}{59bidi romancharset186prq2 Times New Roman Baltic{\*alt Arial};} +{60bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Arial};}{ 392bidi romancharset238prq2 Cambria Math CE;}{393bidi romancharset204 prq2 Cambria Math Cyr;}{395bidi romancharset161prq2 Cambria Math Greek;} +{396bidi romancharset162prq2 Cambria Math Tur;}{399bidi roman charset186prq2 Cambria Math Baltic;}{400bidi romancharset163prq2 Cambria Math (Vietnamese);} +{404bidi swisscharset0prq2 Yu Gothic Western{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{402bidi swisscharset238prq2 Yu Gothic CE{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{403bidi swisscharset204prq2 Yu Gothic Cyr{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{405bidi swisscharset161prq2 Yu Gothic Greek{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{406bidi swisscharset162prq2 Yu Gothic Tur{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{409bidi swisscharset186prq2 Yu Gothic Baltic{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{512bidi swisscharset238prq2 Liberation Sans CE;}{513bidi swiss charset204prq2 Liberation Sans Cyr;}{515bidi swisscharset161prq2 Liberation Sans Greek;}{516bidi swisscharset162prq2 Liberation Sans Tur;} +{517bidi swisscharset177prq2 Liberation Sans (Hebrew);}{519bidi swiss charset186prq2 Liberation Sans Baltic;}{520bidi swisscharset163prq2 Liberation Sans (Vietnamese);}{564bidi swisscharset0prq2 @Yu Gothic Western;} +{562bidi swisscharset238prq2 @Yu Gothic CE;}{563bidi swisscharset204 prq2 @Yu Gothic Cyr;}{565bidi swisscharset161prq2 @Yu Gothic Greek;}{566 bidi swisscharset162prq2 @Yu Gothic Tur;} +{569bidi swisscharset186prq2 @Yu Gothic Baltic;}{lomajor31508bidi romancharset238prq2 Times New Roman CE{\*alt Arial};}{lomajor31509bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};} +{lomajor31511bidi romancharset161prq2 Times New Roman Greek{\*alt Arial};}{lomajor31512bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};} +{lomajor31513bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Arial};}{lomajor31514bidi romancharset178prq2 Times New Roman (Arabic){\* alt Arial};} +{lomajor31515bidi romancharset186prq2 Times New Roman Baltic{\*alt Arial};}{lomajor31516bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Arial};} +{dbmajor31520bidi swisscharset0prq2 Yu Gothic Light Western{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};}{dbmajor31518bidi swiss charset238prq2 Yu Gothic Light CE{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};} +{dbmajor31519bidi swisscharset204prq2 Yu Gothic Light Cyr{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};} +{dbmajor31521bidi swisscharset161prq2 Yu Gothic Light Greek{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};} +{dbmajor31522bidi swisscharset162prq2 Yu Gothic Light Tur{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};} +{dbmajor31525bidi swisscharset186prq2 Yu Gothic Light Baltic{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e Light};}{himajor31528bidi swiss charset238prq2 Aptos Display CE;} +{himajor31529bidi swisscharset204prq2 Aptos Display Cyr;}{himajor31531 bidi swisscharset161prq2 Aptos Display Greek;}{himajor31532bidi swiss charset162prq2 Aptos Display Tur;} +{himajor31535bidi swisscharset186prq2 Aptos Display Baltic;}{himajor 31536bidi swisscharset163prq2 Aptos Display (Vietnamese);}{bimajor31538 bidi romancharset238prq2 Times New Roman CE{\*alt Arial};} +{bimajor31539bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{bimajor31541bidi romancharset161prq2 Times New Roman Greek{\* alt Arial};} +{bimajor31542bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};}{bimajor31543bidi romancharset177prq2 Times New Roman (Hebrew){\* alt Arial};} +{bimajor31544bidi romancharset178prq2 Times New Roman (Arabic){\*alt Arial};}{bimajor31545bidi romancharset186prq2 Times New Roman Baltic{\* alt Arial};} +{bimajor31546bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Arial};}{lominor31548bidi romancharset238prq2 Times New Roman CE{\* alt Arial};} +{lominor31549bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};}{lominor31551bidi romancharset161prq2 Times New Roman Greek{\* alt Arial};} +{lominor31552bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};}{lominor31553bidi romancharset177prq2 Times New Roman (Hebrew){\* alt Arial};} +{lominor31554bidi romancharset178prq2 Times New Roman (Arabic){\*alt Arial};}{lominor31555bidi romancharset186prq2 Times New Roman Baltic{\* alt Arial};} +{lominor31556bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Arial};}{dbminor31560bidi swisscharset0prq2 Yu Gothic Western{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{dbminor31558bidi swisscharset238prq2 Yu Gothic CE{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{dbminor31559bidi swiss charset204prq2 Yu Gothic Cyr{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{dbminor31561bidi swisscharset161prq2 Yu Gothic Greek{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{dbminor31562bidi swiss charset162prq2 Yu Gothic Tur{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};} +{dbminor31565bidi swisscharset186prq2 Yu Gothic Baltic{\*alt \'9f\'e0\'83\'53\'83\'56\'83\'62\'83\'4e};}{himinor31568bidi swiss charset238prq2 Aptos CE;}{himinor31569bidi swisscharset204prq2 Aptos Cyr;} +{himinor31571bidi swisscharset161prq2 Aptos Greek;}{himinor31572bidi swisscharset162prq2 Aptos Tur;}{himinor31575bidi swisscharset186prq2 Aptos Baltic;} +{himinor31576bidi swisscharset163prq2 Aptos (Vietnamese);}{biminor 31578bidi romancharset238prq2 Times New Roman CE{\*alt Arial};}{biminor 31579bidi romancharset204prq2 Times New Roman Cyr{\*alt Arial};} +{biminor31581bidi romancharset161prq2 Times New Roman Greek{\*alt Arial};}{biminor31582bidi romancharset162prq2 Times New Roman Tur{\*alt Arial};} +{biminor31583bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Arial};}{biminor31584bidi romancharset178prq2 Times New Roman (Arabic){\* alt Arial};} +{biminor31585bidi romancharset186prq2 Times New Roman Baltic{\*alt Arial};}{biminor31586bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Arial};}}{+ ed0\green255lue255; ed0\green255lue0; ed255\green0lue255; ed255\green0lue0; ed255\green255lue0; ed255\green255lue255; ed0\green0lue128; ed0\green128lue128; ed0\green128lue0; ed128\green0lue128; ed128\green0lue0; + ed128\green128lue0; ed128\green128lue128; ed192\green192lue192; ed0\green0lue0; ed0\green0lue0;++\widctlpar\wrapdefaultspalphaspnum aautodjustright in0\lin0\itap0 } oqfpromote {\stylesheet{\ql \li0 i0\sa160\sl278\slmult1\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 tlchcs1 f31507fs24lang1025 +\ltrchcs0 s24\lang1031\langfe1041\kerning2\loch 46\hichf46\dbchf31505+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel0djustright in0\lin0\itap0 tlchcs1 f31503fs40lang1025 \ltrchcs0 +s40+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel1djustright in0\lin0\itap0 tlchcs1 f31503fs32lang1025 \ltrchcs0 +s32+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel2djustright in0\lin0\itap0 tlchcs1 f31503fs28lang1025 \ltrchcs0 +s28+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel3djustright in0\lin0\itap0 tlchcs1 if31503fs24lang1025 \ltrchcs0 +\is24+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel4djustright in0\lin0\itap0 tlchcs1 f31503fs24lang1025 \ltrchcs0 +s24+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel5djustright in0\lin0\itap0 tlchcs1 if31503fs24lang1025 \ltrchcs0 +\is24+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel6djustright in0\lin0\itap0 tlchcs1 f31503fs24lang1025 \ltrchcs0 +s24+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel7djustright in0\lin0\itap0 tlchcs1 if31503fs24lang1025 \ltrchcs0 +\is24+\keep\keepn\widctlpar\wrapdefaultspalphaspnum aauto\outlinelevel8djustright in0\lin0\itap0 tlchcs1 f31503fs24lang1025 \ltrchcs0 +s24+Default Paragraph Font;}{\* s11 srowd rftsWidthB3 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blind0 blindtype3 svertalt sbrdrt sbrdrl sbrdrb sbrdrr sbrdrdgl sbrdrdgr sbrdrh sbrdrv \ql \li0 i0\sa160\sl278\slmult1 +\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 tlchcs1 f31507fs24lang1025 \ltrchcs0 s24\lang1031\langfe1041\kerning2\loch 46\hichf46\dbchf31505+Normal Table;}{\*+s32+\sbasedon10 \slink3 \ssemihidden \spriority9 \styrsid6043305 \'dcberschrift 3 Zchn;}{\*+\'dcberschrift 4 Zchn;}{\*+\ltrchcs0 \i+\sbasedon10 \slink7 \ssemihidden \spriority9 \styrsid6043305 \'dcberschrift 7 Zchn;}{\*+\'dcberschrift 8 Zchn;}{\*+\s24\ql \li0 i0\sa80\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0+s56xpnd-2xpndtw-10\lang1031\langfe1041\kerning28\loch 31502\hichf31502\dbchf31501+s56xpnd-2xpndtw-10\kerning28\loch 31502\hichf31502\dbchf31501 \sbasedon10 \slink24 \spriority10 \styrsid6043305 Titel Zchn;}{\s26\ql \li0 i0\sa160\sl278\slmult1\widctlpar\wrapdefaultspalphaspnum aauto\ilvl1djustright in0\lin0\itap0 + tlchcs1 f31503fs28lang1025 \ltrchcs0 s28xpnd3xpndtw15++\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 tlchcs1 if31507fs24lang1025 \ltrchcs0 \is24+\sbasedon0 \snext0 \slink29 \sqformat \spriority29 \styrsid6043305 Quote;}{\*+\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin720\itap0+\sbasedon0 \snext30 \sqformat \spriority34 \styrsid6043305 List Paragraph;}{\*+\widctlparrdrtrdrsrdrw10rsp200rdrcf19 rdrbrdrsrdrw10rsp200rdrcf19 \wrapdefaultspalphaspnumaautodjustright in864\lin864\itap0 tlchcs1 if31507fs24lang1025 \ltrchcs0 +\is24+\sbasedon10 \slink32 \spriority30 \styrsid6043305 Intensives Zitat Zchn;}{\*+ sid1056961 sid6043305 sid8217171 sid8653403 sid13333028 sid15952640}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{uthor Oliver Specht} +{\operator Oliver Specht}{+word/2003/wordml}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect +\deftab708\widowctrltnbjenddoc\hyphhotz425 rackmoves0 rackformatting1\donotembedsysfont1 elyonvml0\donotembedlingdata0\grfdocevents0 alidatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0 +\showxmlerrors1 oxlattoyenxpshrtn oultrlspc\dntblnsbdb ospaceforul ormshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpandiewkind1iewscale100\pgbrdrhead\pgbrdrfoot\splytwnine tnlytwnine\htmautsp olnhtadjtbl\useltbalnlntblind\lytcalctblwd\lyttblrtgr\lnbrkrule obrkwrptbl\snaptogridincellllowfieldendsel\wrppunct +sianbrkrule sidroot6043305 ewtblstyruls ogrowautofit\usenormstyforlist oindnmbrtselnbrelev ocxsptable\indrlsweleven oafcnsttblfelev\utinl\hwelev\spltpgpar otcvasp otbrkcnstfrctbl otvatxbx\krnprsnet+{\*\wgrffmtfilter 2450} ofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708 ootery708+\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0 i0\sa160\sl278\slmult1\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0\pararsid6043305 tlchcs1 f31507fs24lang1025 \ltrchcs0 +s24\lang1031\langfe1041\kerning2\lochf46\hichf46\dbchf31505+\par \ltrrow} rowd \irow0\irowband0\lastrow \ltrrow s11 rgaph70 rleft0 rkeep rftsWidth1 rpaddl70 rpaddr70 rpaddfl3 rpaddfr3 blrsid14635698 blind0 blindtype3 ++\widctlpar\intbl\wrapdefaultspalphaspnum aautodjustright in0\lin0\pararsid6043305 { tlchcs1 f31507 \ltrchcs0 \lang3079\langfe1041\langnp3079\insrsid6043305+\ltrchcs0 \lang3079\langfe1041\langnp3079\insrsid6043305+\par +\par + rowd \irow0\irowband0\lastrow \ltrrow s11 rgaph70 rleft0 rkeep rftsWidth1 rpaddl70 rpaddr70 rpaddfl3 rpaddfr3 blrsid14635698 blind0 blindtype3 ++\widctlpar\wrapdefaultspalphaspnum aautodjustright in0\lin0\itap0\pararsid6043305 { tlchcs1 f31507 \ltrchcs0 \lang1033\langfe1041\langnp1033\insrsid6043305+\lang1040\langfe1041\langnp1040\insrsid6043305 \hichf46\dbchf31505\loch46 INFORMATION}{ tlchcs1 bf31507 \ltrchcs0 \lang1040\langfe1041\langnp1040\insrsid6043305+\par }\pard \ltrpar\ql \li0 i0\sa160\sl278\slmult1\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 { tlchcs1 f31507 \ltrchcs0 \lang1040\langfe1041\langnp1040\insrsid534836+\par }{\* hemedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b0304140006000800000021001c7541e88d070000c7200000160000007468656d652f7468656d652f +7468656d65312e786d6cec594b8f1bb911be07c87f20fa2eab5b8f9634b0bcd0d3b3f68c6d58b2833d72244a4d0fbbd968523316160602ef299700017617b904 +c82d8720c80259208b5cf2630cd848363f224576ab454a94e70103318299b9a8d95f153f5615abaac9fb5fbc8e19ba2099a03ce97ac13ddf432499f1394d965d +efc5745c697b48489ccc31e309e97a6b22bc2f1efcf217f7f1918c484c10c827e20877bd48caf4a85a153318c6e21e4f4902ef163c8bb184c76c599d67f812f4 +c6ac5af3fdb01a639a7828c131a87dba58d019f11e6cd48e18e84ea4500333964d9452b28f9d9f070a21d662c032748159d78319e6fc724a5e4b0f312c24bce8 +7abefef3aa0fee57f15121c4e40159436eacff0ab942607e5ed37366cbb372527f546b378252bf0630b98f1bb5d57fa94f03f06c062bcdb9983a8366e8b76b05 +d600e53f1dba3bada06ee30dfdf53dce4127ecd71a967e0dcaf537f6f0feb8331a362dbc06e5f8e61ebee7d7fa9dba85d7a01c1feee11ba35eab36b2f01a1431 +9a9cefa3c356bb1d16e812b2e0ecd809ef84a1df1a16f02d0aa2a18c2e35c58227f250acc5f815cfc600504086254d905ca764816710bfbd5472818654a40caf +3d94e2840b18f66b4100a1d7f06be5bfb6383e22d89056bc8089d81b527c90986534955def1168f50cc8fb9f7e7af7f6c7776ffffeee9b6fdebdfd2b3aa1cb48 +e6aa2cb9639c2c4db99ffff4bbfffce1d7e8df7ffbe3cfdf7ee7c60b13ffe12fbff9f08f7f7e4c3d6cb5ad29de7fffc3871f7f78fffbdffeebcfdf3ab4f7327c +66c2a73426023d2197e8398f6181da14367f7296dd4c621a616a4af492a5c00956b338f48f6464a19fac31c30e5c9fd8767c9941aa71011fae5e59842751b692 +d4a1f171145bc053ce599f674e2b3c567319669eae92a57bf26c65e29e637ce19a7b8013cbcba3550a3996ba540e2262d17cc67022f192244422f58e9f13e258 +dd57945a763da5b38c0bbe90e82b8afa983a4d32a56756346d858e690c7e59bb0882bf2ddb9cbe447dce5cab1e920b1b097b033307f9296196191fe295c4b14b +e514c7cc34f80996918be4649dcd4cdc4848f0f492308e467322844be66906eb359cfe18437673bafd94ad631b99497aeed27982393791437e3e88709cbab013 +9a4426f64b710e218ad1332e5df0536eef10f50c7ec0c94177bfa4c472f7d5d9e005643993d23640d49b55e6f0e543c2adf89dacd9021357aae965b195627b19 +7546477fb5b442fb8410862ff19c10f4e24b07833e4f2d9b6f493f8a20ab1c1357603dc276acaae78408827473b39f274fa8b042764296fc009fd3f54ee259e3 +24c6d921cd4fc0eba6cd4767196c46c73a9fb2d9b9097c42a1fb8378711ae5a9001d46701fd4fa2cc2560153cfc21dafebccf2df75f618eccb57168d6bec4b90 +21379681c46eca7cd43653ccac09b60133c5149db8d22d8858eedf8aa8e2aac5564eb985bd69b76e80eec86a7a629a5cd101fd6f3a1f47207e9a9ec7add84a58 +37ec760e2594e39d1ee7106eb7b319f06c4e3fffc6668857c93302b5643f6bddf535777d8df77fdfd71cdacf77ddcca19ee3ae9bf1a0cbb8eb668a03964fd3cd +6c1b18e86dd421437ed8a38f7ee283273f0bcad844ae193911faf047c037cd7c0c834a4e9f7792f224308de0a72a733081855b6658cba08ccb5f51194d229cc2 +0951e029254b51a85e0a94720107477ad8a95be1d92a3ee5f3fcc0539f30f9796515586ec7fd261c3de5e37058257374d82a06153f7daa0a7c35dba53e6cdd10 +50b23721614c6693a83b48b4368357905067679f8645c7c1a2add46f5cb5670aa0567a053eba117caa77bd6643118233723183067daefc94bb7ae35dedcc4fe9 +e943c6b422000e17f395c0a17ce9e98ee27a70796a7579a85dc3d31609ed943cac6c12da32bac113117c0a17d1a946af43e3a6beee6c5d6ad153a6d0f3417c6f +69b4da1f63715b5f83dc6e6e6089992958822ebb5e586f42c8cc70daf51670700c3fe3146247a8ef2ecc9670ef329359bee16f9359d24cc82116516e709d7472 +f7c454920c311a773db5fcd20d2cd13944730b6a90103e5b721d482b9f1b3970baed64b258909934dd6e8c284be78f90e1f35ce17cabc56f0f56927c05ee9e44 +f34b74c656d9730c21d66c05ca80732ae0fe20c8ad39a770215626b26dfced14a622f99b37523a86f271ccd2081715c54ce6395cd793928e7e2a6d603c156b06 +831a26290ae1d9521558d3a856352d4b57cee160d5bd5a4859ce489adb9a6965155535dd59cc9a615306766c79bb226fb0da9818729a59e1f3d4bd9b723b9b5c +b7d3279455020c5edaef76a5dfa0b69dcca2a618efa76195b38b51bb766c167805b5eb140923eb871bb53b762b6b84733a18bc55e507b9dda885a1c5a6afd496 +d677e6e6e5363f7b05c963085dee8a49a15d0957d71986ae6ca27b923c6dc016792d8bad01bfd02aa35def6bbfd96b0c6acd41c56f37479546bde157dacd5ebd +d26b36ebc1a819f8c37eed0d141619c54133bfaf1fc325065b17b7f67a7cefe63ededcd3dc9bf1b8caf5cd7c5513d737f741cd71738fa6ea82de431492ced761 +6ddca977fa61a553ef8d2b8d61bf5de90cc27e65180e5ac3f170d06c77c66f3c74a1c18d5e7dd00847ed4a180c069546e82bfaed4ea5d5a8d57a8d56af3d6af4 +de146d0cac3c4f1f852dc0bc9ad783ff020000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d65 +2f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0d +ae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a +939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0 +239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000000000000000 +5b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100 +005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f +7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021001c7541e88d070000c72000001600000000000000000000000000 +d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000 +00000000970a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000920b00000000} +{\*+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000 +02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000007036 +6a951698db01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 6a79ac33d5a2..21e1b13ca64d 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1995,6 +1995,13 @@ CPPUNIT_TEST_FIXTURE(Test, test165333Tdf) CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(xRun2, u"CharHidden"_ustr)); } +CPPUNIT_TEST_FIXTURE(Test, test165805Tdf) +{ + createSwDoc("165805.rtf"); + //without page break there would be only one page + CPPUNIT_ASSERT_EQUAL(2, getPages()); +} + CPPUNIT_TEST_FIXTURE(Test, test165483Tdf) { createSwDoc("165483.rtf"); diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx index acf64cb7cdbc..b8294b27c829 100644 --- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx +++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx @@ -1642,7 +1642,9 @@ void DomainMapper_Impl::deferBreak( BreakType deferredBreakType) case PAGE_BREAK: // See SwWW8ImplReader::HandlePageBreakChar(), page break should be // ignored inside tables. - if (0 < m_StreamStateStack.top().nTableDepth) + // but not in RTF import + + if (0 < m_StreamStateStack.top().nTableDepth && !IsRTFImport()) return; m_StreamStateStack.top().bIsPageBreakDeferred = true; commit 6cb1bf1953dbf87a4d0fdb58e8dcb36d7e76e595 Author: Vojtěch Doležal <dolez...@cvut.cz> AuthorDate: Wed Mar 5 18:08:17 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#165577 Fix bibliography regressions Fix regressions introduced in b0299c4141f80dfd9989f1f376a960a9590f7a07, i.e.: 1) Do not clear bibliography type options to allow new bibliography entry creations 2) Set the short name so that it is not deleted when clicking Edit after creation Change-Id: Id3d500872cbbb578fc45cdf75f0b7f7f89144aa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182586 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Jenkins (cherry picked from commit 8adf0851ee87475d9abe133de8076b39876292e5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183167 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index 422a639b6737..e3f61cf04b03 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -1108,7 +1108,7 @@ class SwCreateAuthEntryDlg_Impl : public weld::GenericDialogController DECL_LINK(PageNumHdl, weld::Toggleable&, void); DECL_LINK(TargetTypeHdl, weld::ComboBox&, void); - void SetFields(const OUString pFields[], bool bNewEntry, bool bSetIdentifier); + void SetFields(const OUString pFields[], bool bNewEntry); public: SwCreateAuthEntryDlg_Impl(weld::Window* pParent, @@ -1737,33 +1737,32 @@ SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl(weld::Window* pParent, ++nRightRow; bLeft = !bLeft; } - SetFields(pFields, bNewEntry, !bNewEntry); + SetFields(pFields, bNewEntry); assert(m_xTypeListBox && "this will exist after the loop"); EnableHdl(*m_xTypeListBox); } -void SwCreateAuthEntryDlg_Impl::SetFields(const OUString pFields[], bool bNewEntry, bool bSetIdentifier) { +void SwCreateAuthEntryDlg_Impl::SetFields(const OUString pFields[], bool bNewEntry) { for (int nIndex = 0; nIndex < AUTH_FIELD_END; ++nIndex) { switch (const TextInfo aCurInfo = aTextInfoArr[nIndex]; aCurInfo.nToxField) { case AUTH_FIELD_IDENTIFIER: - if (!bNewEntry && bSetIdentifier) + if (bNewEntry) { + assert(m_pEdits[nIndex]); + m_pEdits[nIndex]->set_text(pFields[aCurInfo.nToxField]); + } else { assert(m_xIdentifierBox); m_xIdentifierBox->set_entry_text(pFields[aCurInfo.nToxField]); } break; case AUTH_FIELD_AUTHORITY_TYPE: - if (!pFields[aCurInfo.nToxField].isEmpty()) - { - m_xTypeListBox->set_active(pFields[aCurInfo.nToxField].toInt32()); - } - else { - m_xTypeListBox->clear(); + int v = !pFields[aCurInfo.nToxField].isEmpty() ? pFields[aCurInfo.nToxField].toInt32() : -1; + m_xTypeListBox->set_active(v); + break; } - break; case AUTH_FIELD_TARGET_TYPE: if (!pFields[aCurInfo.nToxField].isEmpty()) { @@ -1854,7 +1853,7 @@ IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, weld::ComboBox&, rBox, void) OUString sFields[AUTH_FIELD_END]; for(int ii = 0; ii < AUTH_FIELD_END; ++ii) sFields[ii] = pEntry->GetAuthorField(ToxAuthorityField(ii)); - SetFields(sFields, false, false); + SetFields(sFields, false); } IMPL_LINK(SwCreateAuthEntryDlg_Impl, ShortNameHdl, weld::Entry&, rEdit, void) commit dc5949f548e7eedb2a53599be98f557b09e2d1da Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Mon Mar 17 19:31:33 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 tdf#165808 fix always visible Quickstarter UI frame Better to check SID_ATTR_QUICKLAUNCHER is set at all with GetItemIfSet, then with GetItemState, because if ShutdownIcon::IsQuickstarterInstalled is false we simple disable the item with rSet.DisableItem( SID_ATTR_QUICKLAUNCHER ); and later the disabled item is removed from the itemset therefore the original SfxItemState will be SfxItemState::DEFAULT. regression from commit: b8e393686c4ab6a69b091240065f440eadfff230 Change-Id: I6ce85798100d93dd3f712abc8ede2087b912b867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183041 Reviewed-by: Armin Le Grand <armin.le.gr...@me.com> Tested-by: Jenkins (cherry picked from commit 98c8077893044453ca76ad2a34c6d86d9be0c2c7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183150 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 94f87bcc3dcd..12e9bc8d0279 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -374,11 +374,11 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet ) #endif #if defined(_WIN32) - const SfxPoolItem* pItem = nullptr; - SfxItemState eState = rSet->GetItemState( SID_ATTR_QUICKLAUNCHER, false, &pItem ); - if ( SfxItemState::SET == eState ) - m_xQuickLaunchCB->set_active( static_cast<const SfxBoolItem*>(pItem)->GetValue() ); - else if ( SfxItemState::DISABLED == eState ) + if (const SfxBoolItem* pItem = rSet->GetItemIfSet( SID_ATTR_QUICKLAUNCHER, false )) + { + m_xQuickLaunchCB->set_active( pItem->GetValue() ); + } + else { // quickstart not installed m_xQuickStarterFrame->hide(); commit 36be1a05571a7b4e66b2640b7f32974d45947fd6 Author: Heiko Tietze <tietze.he...@gmail.com> AuthorDate: Mon Feb 10 10:00:27 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:21 2025 +0100 Resolves tdf#165085 - Automatic font color on PDF document Patch 2ca381b31e40d516c5d79ce4e59cecbf9683b616 applies here too Change-Id: I82948ef4f8d8bc9312cc24692ff3471710543ddc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181327 Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org> Tested-by: Jenkins (cherry picked from commit 684658df943b9cb8e25e9727af1147d22e396078) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182719 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx index ae482de0becd..60225c17532a 100644 --- a/sc/source/core/data/patattr.cxx +++ b/sc/source/core/data/patattr.cxx @@ -832,7 +832,7 @@ void ScPatternAttr::fillColor(model::ComplexColor& rComplexColor, const SfxItemS aSysTextColor = ScModule::get()->GetColorConfig().GetColorValue(svtools::FONTCOLOR).nColor; } - if (comphelper::LibreOfficeKit::isActive() && SfxViewShell::Current()) + if (SfxViewShell::Current()) { if (aBackColor.IsDark()) aColor = COL_WHITE; commit c8425730769856ab834efced54e8bbbc9d150252 Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Thu Mar 6 13:29:07 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:20 2025 +0100 tdf#165321 - sd ooxml import fix missing shapes or shapes with near zero height Use the calculated shapes size (before we calculate the shape size with NbcAdjustTextFrameWidthAndHeight if the autoTextGrowHeight is true) instead of the shape size directly from the xml, which need to be transformed in some cases. Regression from commit: ebf13e890766f4cadbba81444784cfe3c8e1bbc3 (tdf#156857: sd ooxml import: fix shape size if spAutofit is set) Change-Id: Icddaf22d10a89b172a3f1ca3e55150162e51a877 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182581 Tested-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Tested-by: Jenkins Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> (cherry picked from commit 620b89adea77519fd5d057cac7e1acf8a6fb2544) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182638 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index 20776ea0b4e1..4cb0160facee 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -1235,6 +1235,7 @@ Reference< XShape > const & Shape::createAndInsert( } } HomogenMatrix3 aMatrix; + tools::Rectangle aOrigSize; if ( aServiceName == "com.sun.star.drawing.ConnectorShape" ) { ::basegfx::B2DPolygon aPoly; @@ -2007,6 +2008,10 @@ Reference< XShape > const & Shape::createAndInsert( if (mbWps && aServiceName == "com.sun.star.drawing.LineShape" && !pParentGroupShape) mxShape->setPosition(maPosition); + SdrObject* pShape = SdrObject::getSdrObjectFromXShape(mxShape); + if (pShape) + aOrigSize = pShape->GetLogicRect(); + if (bIsConnectorShape) { msConnectorName = mpCustomShapePropertiesPtr->getShapePresetTypeName(); @@ -2304,16 +2309,14 @@ Reference< XShape > const & Shape::createAndInsert( } SdrObject* pShape = SdrObject::getSdrObjectFromXShape(mxShape); - if (pShape && bAutoHeight && bIsCustomShape) + if (pShape && bAutoHeight) { - tools::Rectangle aOrigSize(aShapeRectHmm.X, aShapeRectHmm.Y, - aShapeRectHmm.X + aShapeRectHmm.Width, aShapeRectHmm.Y + aShapeRectHmm.Height); - tools::Rectangle aAdaptSize = pShape->GetLogicRect(); - // a little tolerance same as in \svx\source\svdraw\svdoashp.cxx:AdjustTextFrameWidthAndHeight - if (std::abs(aOrigSize.GetHeight() - aAdaptSize.GetHeight()) > 1) + tools::Rectangle aAutoSize = pShape->GetLogicRect(); + // little tolerance same as in \svx\source\svdraw\svdoashp.cxx:AdjustTextFrameWidthAndHeight + if (!aOrigSize.IsEmpty() && (std::abs(aOrigSize.GetHeight() - aAutoSize.GetHeight()) > 1 || + std::abs(aOrigSize.GetWidth() - aAutoSize.GetWidth()) > 1)) { - aAdaptSize.setHeight(aOrigSize.GetHeight()); - pShape->NbcSetLogicRect(aAdaptSize, false); + pShape->NbcSetLogicRect(aOrigSize, false); } } } diff --git a/sd/qa/unit/data/pptx/tdf165321.pptx b/sd/qa/unit/data/pptx/tdf165321.pptx new file mode 100644 index 000000000000..86736d94b563 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf165321.pptx differ diff --git a/sd/qa/unit/data/xml/n593612_0.xml b/sd/qa/unit/data/xml/n593612_0.xml index f278976b7d2a..4c99db725cab 100644 --- a/sd/qa/unit/data/xml/n593612_0.xml +++ b/sd/qa/unit/data/xml/n593612_0.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <XShapes> - <XShape positionX="11429" positionY="1324" sizeX="2259" sizeY="15971" type="com.sun.star.drawing.CustomShape" name="Rectangle 52" text=" " 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" fillTran sparenceGradientName=""> + <XShape positionX="11429" positionY="1324" sizeX="2259" sizeY="15969" type="com.sun.star.drawing.CustomShape" name="Rectangle 52" text=" " 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" fillTran sparenceGradientName=""> <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"/> @@ -10,7 +10,7 @@ <LineEnd/> <Transformation> <Line1 column1="2260.000000" column2="0.000000" column3="11429.000000"/> - <Line2 column1="0.000000" column2="15972.000000" column3="1324.000000"/> + <Line2 column1="0.000000" column2="15970.000000" column3="1324.000000"/> <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/> </Transformation> <CustomShapeGeometry> diff --git a/sd/qa/unit/import-tests2.cxx b/sd/qa/unit/import-tests2.cxx index 9c16eebf1c39..5276f32713a7 100644 --- a/sd/qa/unit/import-tests2.cxx +++ b/sd/qa/unit/import-tests2.cxx @@ -113,18 +113,41 @@ CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf160490) sal_Int32 nHeight1 = xShape1->getSize().Height; // Without the fix in place, this test would have failed with - // Expected: placeholder height: 3728 + // Expected: placeholder height: 3726 // Actual : placeholder height: 3476 - CPPUNIT_ASSERT_EQUAL(sal_Int32(3728), nHeight1); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3726), nHeight1); uno::Reference<drawing::XShape> xShape2(getShapeFromPage(0, 1), uno::UNO_QUERY); CPPUNIT_ASSERT(xShape2.is()); sal_Int32 nHeight2 = xShape2->getSize().Height; // Without the fix in place, this test would have failed with - // Expected: placeholder height: 3367 + // Expected: placeholder height: 3365 // Actual : placeholder height: 3116 - CPPUNIT_ASSERT_EQUAL(sal_Int32(3367), nHeight2); + CPPUNIT_ASSERT_EQUAL(sal_Int32(3365), nHeight2); +} + +CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf165321) +{ + createSdImpressDoc("pptx/tdf165321.pptx"); + + uno::Reference<container::XIndexAccess> xGroupShape(getShapeFromPage(0, 0), + uno::UNO_QUERY_THROW); + uno::Reference<drawing::XShape> xShape(xGroupShape->getByIndex(0), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xShape.is()); + // Without the fix in place, this test would have failed with + // Expected: shape height: 3597 + // Actual : shape height: 3 + CPPUNIT_ASSERT_EQUAL(sal_Int32(3597), xShape->getSize().Height); + CPPUNIT_ASSERT_EQUAL(sal_Int32(6592), xShape->getSize().Width); + + xShape.set(xGroupShape->getByIndex(1), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xShape.is()); + // Without the fix in place, this test would have failed with + // Expected: shape height: 3597 + // Actual : shape height: 3 + CPPUNIT_ASSERT_EQUAL(sal_Int32(3597), xShape->getSize().Height); + CPPUNIT_ASSERT_EQUAL(sal_Int32(6402), xShape->getSize().Width); } CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf165341) @@ -151,18 +174,18 @@ CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf157285) sal_Int32 nHeight1 = xShape1->getSize().Height; // Without the fix in place, this test would have failed with - // Expected: placeholder height: 2565 + // Expected: placeholder height: 2795 // Actual : placeholder height: 3435 - CPPUNIT_ASSERT_EQUAL(sal_Int32(2565), nHeight1); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2795), nHeight1); uno::Reference<drawing::XShape> xShape2(getShapeFromPage(1, 0), uno::UNO_QUERY); CPPUNIT_ASSERT(xShape2.is()); sal_Int32 nHeight2 = xShape2->getSize().Height; // Without the fix in place, this test would have failed with - // Expected: placeholder height: 1180 + // Expected: placeholder height: 1271 // Actual : placeholder height: 11303 - CPPUNIT_ASSERT_EQUAL(sal_Int32(1180), nHeight2); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1271), nHeight2); } CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf152186) commit 391bbac804fc38daa794acc5c13b2617a1b7703c Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Thu Mar 20 00:41:00 2025 +0500 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:20 2025 +0100 tdf#165821: don't change range of ScCellIterator outside of wanted bounds Commit 8e3a29110c8ad739bedeea90932663608d8d3935 (ofz#20904 check bounds, 2020-02-29) workarounded an out-of-bounds access, by changing maStartPos to be in the allocated range. But that meant that functions that wanted the data from some specific range, got the data from another. Fix this by looking for table in the wanted range that has the allocated columns in the wanted range (cf. to ScCellIterator::getCurrent(), which skips the unallocated area altogether). If no tables have such columns, just initialize maCurPos with an unvalid table, which causes first() to return false (the same as with invalid tables). No idea how to make a unit test for this. Adding a formula like =COUNTA(ABC:ABC) to the end of sc/qa/unit/data/functions/statistical/fods/counta.fods, with expected value of 0, doesn't fail without the fix. Change-Id: I570cf4a11a410b4e79eb4df785d6c52897973b6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183141 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Jenkins (cherry picked from commit 78a66f99958ed258686cb2fac90f361954b5afe4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183147 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx index 00309ceb871b..6b90faf2b06e 100644 --- a/sc/source/core/data/dociter.cxx +++ b/sc/source/core/data/dociter.cxx @@ -875,17 +875,29 @@ void ScCellIterator::init() while (maEndPos.Tab() > 0 && !mrDoc.maTabs[maEndPos.Tab()]) maEndPos.IncTab(-1); // Only the tables in use - if (maStartPos.Tab() > maEndPos.Tab()) - maStartPos.SetTab(maEndPos.Tab()); - - if (!mrDoc.maTabs[maStartPos.Tab()]) + if (maStartPos.Tab() > maEndPos.Tab() || !mrDoc.maTabs[maStartPos.Tab()]) { assert(!"Table not found"); - maStartPos = ScAddress(mrDoc.MaxCol()+1, mrDoc.MaxRow()+1, MAXTAB+1); // -> Abort on GetFirst. + maStartPos = ScAddress(mrDoc.MaxCol()+1, mrDoc.MaxRow()+1, MAXTAB+1); // -> Abort on first(). } else { - maStartPos.SetCol(mrDoc.maTabs[maStartPos.Tab()]->ClampToAllocatedColumns(maStartPos.Col())); + for (auto tabNo = maStartPos.Tab();; ++tabNo) + { + const auto& pTab = mrDoc.maTabs[tabNo]; + if (pTab && maStartPos.Col() < pTab->GetAllocatedColumnsCount()) + { + // Found the first table with allocated columns in range + maStartPos.SetTab(tabNo); + break; + } + if (tabNo == maEndPos.Tab()) + { + // No allocated columns found in the range -> return false from first(). + maStartPos = ScAddress(mrDoc.MaxCol() + 1, mrDoc.MaxRow() + 1, MAXTAB + 1); + break; + } + } } maCurPos = maStartPos; commit bdb2b89f7a8ebbed1b7e399a1c5d9cdd875dec09 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> AuthorDate: Fri Mar 14 01:26:32 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:20 2025 +0100 use clang with --target switch on windows (enable skia for arm64) This is a 25-2 version of the commit that fixes the native compilation of arm64 of pdfium after 6007fbef5c2e4a0b80a4c0031ff36117aa41e63f (update to pdfium 7012 that switched to using clang) and allows to enable skia While on the branch pdfium is unaffected since it still using msvc compiler, skia not using the target switch would result compiling the wrong architecture. So fixing that fundamental problem allows to enable skia for windows aarch64 Change-Id: I1cee8c7b84c1988f7a5800da913c299d14444e4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182889 Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> (cherry picked from commit 8c2605aea05c6c5b9883400e1c1b7944f4edbc47) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182997 diff --git a/configure.ac b/configure.ac index ea3f87644109..9486b9b7ea27 100644 --- a/configure.ac +++ b/configure.ac @@ -1011,7 +1011,7 @@ cygwin*|wsl*) LINKFLAGSNOUNDEFS= if test "$host_cpu" = "aarch64"; then - build_skia=no + build_skia=yes enable_gpgmepp=no enable_coinmp=no enable_firebird_sdbc=no @@ -4140,6 +4140,7 @@ cygwin*|wsl*) WIN_HOST_ARCH="x64" WIN_MULTI_ARCH="x86" WIN_HOST_BITS=64 + WIN_CLANG_TARGET="x86_64-pc-windows-msvc" ;; i*86) CPUNAME=INTEL @@ -4148,6 +4149,7 @@ cygwin*|wsl*) WIN_HOST_ARCH="x86" WIN_HOST_BITS=32 WIN_OTHER_ARCH="x64" + WIN_CLANG_TARGET="i686-pc-windows-msvc" ;; aarch64) CPUNAME=AARCH64 @@ -4158,6 +4160,7 @@ cygwin*|wsl*) WIN_HOST_ARCH="arm64" WIN_HOST_BITS=64 with_ucrt_dir=no + WIN_CLANG_TARGET="arm64-pc-windows-msvc" ;; *) AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os]) @@ -12848,7 +12851,7 @@ if test \( "$ENABLE_SKIA" = TRUE -o "$ENABLE_PDFIUM" = TRUE \) -a "$COM_IS_CLANG fi if test -n "$LO_CLANG_CC"; then dnl explicitly set -m32/-m64 - LO_CLANG_CC="$LO_CLANG_CC -m$WIN_HOST_BITS" + LO_CLANG_CC="$LO_CLANG_CC --target=$WIN_CLANG_TARGET -m$WIN_HOST_BITS" LO_CLANG_CXX="$LO_CLANG_CC" AC_MSG_RESULT([$LO_CLANG_CC]) else commit 5a8b92891e9bbaeb9de302976984846babc87b67 Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Tue Mar 18 11:54:33 2025 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Mar 24 10:09:20 2025 +0100 tdf#165800 - fix locking down proxy server settings -e ... etc. - the rest is truncated