[Libreoffice-commits] core.git: Branch 'feature/cib_contract57d' - 7 commits - config_host/config_global.h.in configure.ac external/liblangtag external/libmspub include/o3tl o3tl/qa sfx2/source sw/qa sw/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Fri Jul 17 15:48:18 UTC 2020


 config_host/config_global.h.in                    |    3 
 configure.ac                                      |   42 
 external/liblangtag/ExternalProject_liblangtag.mk |    1 
 external/libmspub/UnpackedTarball_libmspub.mk     |    1 
 external/libmspub/stdint.patch                    |   10 
 include/o3tl/span.hxx                             |   14 
 o3tl/qa/test-span.cxx                             |    7 
 sfx2/source/control/dispatch.cxx                  |    3 
 sw/qa/extras/layout/data/footer-fly-table.fodt    | 1158 ++++++++++++++++++++++
 sw/qa/extras/layout/layout.cxx                    |   21 
 sw/source/core/inc/frame.hxx                      |    2 
 sw/source/core/layout/tabfrm.cxx                  |   30 
 12 files changed, 1272 insertions(+), 20 deletions(-)

New commits:
commit 559d19e59be5c5f372b071640f573ca7c16e120d
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Thu Jul 16 19:25:05 2020 +0200
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Fri Jul 17 17:25:54 2020 +0200

    sw: layout: fix missing invalidation of text frames in tables
    
    ... when the position of the SwTabFrame changes.
    
    The table is initially formatted on page 1, where one of its cells
    overlaps flys anchored in the footer, so the SwTextFrame in it
    contains SwFlyPortions.
    
    As the table doesn't fit on page 1, the SwTabFrame moves forward to page
    2; lcl_RecalcTable() is called a bit later to invalidate pos and size of
    everything in the table.
    
    However, it turns out that that's not enough, when SwTextFrame::Format()
    is called it doesn't do anything because no part of the text has
    actually been invalidated via InvalidateRange_().
    
    If the SwTextFrame were moved on its own (not via table), then
    SwContentFrame::MakeAll() would call
    Prepare(PrepareHint::FramePositionChanged) which calls ClearPara().
    
    The SwTabFrame is moved via SwFlowFrame::PasteTree(), which calls
    SwTextFrame::Init() if it moves a text frame directly but does
    nothing for tables.
    
    So let's try to fix this similar to commit
    068c133ac41c97652909b88c432e3b73010efc3e by calling
    Prepare(PrepareHint::FramePositionChanged) on every moved text frame
    if the position actually changes, like SwContentFrame::MakeAll() does;
    not sure what performance impact this has.
    
    (apparently regression from cc5916cd314a27b0cc99560ab887480026630a95
     - whatever that means in this case, no idea how it worked before)
    
    Note: the problem only reproduces on libreoffice-6-3 branch because
          libreoffice-6-4 and later have another layout change from commit
          3cccdabf19a99fd3f657985c1822436d7679df2b that needs reverting
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98925
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit 3d63eaa58c38d52daab460f03aa3daf74ea49c2e)
    
    Change-Id: I65d3e367d56b8799e1ed32172fbbc0249c2852eb

diff --git a/sw/qa/extras/layout/data/footer-fly-table.fodt b/sw/qa/extras/layout/data/footer-fly-table.fodt
new file mode 100644
index 000000000000..d7e8f5ca913a
--- /dev/null
+++ b/sw/qa/extras/layout/data/footer-fly-table.fodt
@@ -0,0 +1,1158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:dc="http://purl.org/dc/eleme
 nts/1.1/" xmlns:ooo="http://openoffice.org/2004/office" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0
 " xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:settings>
+  <config:config-item-set config:name="ooo:view-settings">
+   <config:config-item config:name="ViewAreaTop" config:type="long">28998</config:config-item>
+   <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
+   <config:config-item config:name="ViewAreaWidth" config:type="long">23603</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" config:type="long">15850</config:config-item>
+   <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
+   <config:config-item-map-indexed config:name="Views">
+    <config:config-item-map-entry>
+     <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
+     <config:config-item config:name="ViewLeft" config:type="long">18078</config:config-item>
+     <config:config-item config:name="ViewTop" config:type="long">34860</config:config-item>
+     <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
+     <config:config-item config:name="VisibleTop" config:type="long">28998</config:config-item>
+     <config:config-item config:name="VisibleRight" config:type="long">23601</config:config-item>
+     <config:config-item config:name="VisibleBottom" config:type="long">44847</config:config-item>
+     <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+     <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
+     <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ZoomFactor" config:type="short">100</config:config-item>
+     <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
+     <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">true</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+  </config:config-item-set>
+  <config:config-item-set config:name="ooo:configuration-settings">
+   <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item>
+   <config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmptyDbFieldHidesPara" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="DisableOffPagePositioning" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="FloattableNomargins" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="UseOldNumbering" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
+   <config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item>
+   <config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CurrentDatabaseCommand" config:type="string"/>
+   <config:config-item config:name="PrinterIndependentLayout" config:type="string">high-resolution</config:config-item>
+   <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrintFaxName" config:type="string"/>
+   <config:config-item config:name="CurrentDatabaseDataSource" config:type="string"/>
+   <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
+   <config:config-item-map-indexed config:name="ForbiddenCharacters">
+    <config:config-item-map-entry>
+     <config:config-item config:name="Language" config:type="string">de</config:config-item>
+     <config:config-item config:name="Country" config:type="string">AT</config:config-item>
+     <config:config-item config:name="Variant" config:type="string"/>
+     <config:config-item config:name="BeginLine" config:type="string"/>
+     <config:config-item config:name="EndLine" config:type="string"/>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+   <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+   <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="Rsid" config:type="int">796040</config:config-item>
+   <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
+   <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+   <config:config-item config:name="PrinterName" config:type="string"/>
+   <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UseFormerLineSpacing" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
+   <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrintEmptyPages" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="RsidRoot" config:type="int">73530</config:config-item>
+   <config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="MathBaselineAlignment" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="SmallCapsPercentage66" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="TabOverflow" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
+   <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
+  </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+  <office:script script:language="ooo:Basic">
+   <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+  </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+  <style:font-face style:name="Arial" svg:font-family="Arial"/>
+  <style:font-face style:name="OpenSymbol" svg:font-family="OpenSymbol"/>
+  <style:font-face style:name="Tahoma1" svg:font-family="Tahoma"/>
+  <style:font-face style:name="Arial3" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
+  <style:font-face style:name="Arial Unicode MS" svg:font-family="'Arial Unicode MS'" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#000000" draw:fill-color="#99ccff" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" style:font-name="Arial" fo:font-size="12pt" fo:language="de" fo:country="AT" style:letter-kerning="true" style:font-name-asian="Arial Unicode MS" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Tahoma" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
+   <style:text-properties style:use-window-font-color="true" style:font-name="Arial" fo:font-size="12pt" fo:language="de" fo:country="AT" style:letter-kerning="true" style:font-name-asian="Arial Unicode MS" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Tahoma" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" style:class="text" style:master-page-name="">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.28cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="justify" style:justify-single-word="false" style:page-number="auto" style:shadow="none">
+    <style:tab-stops>
+     <style:tab-stop style:position="0.499cm"/>
+    </style:tab-stops>
+   </style:paragraph-properties>
+   <style:text-properties fo:font-size="11pt"/>
+  </style:style>
+  <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
+   <style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:keep-with-next="always"/>
+   <style:text-properties fo:text-transform="uppercase" style:font-name="Arial3" fo:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="13pt" fo:font-weight="bold" style:font-name-asian="SimSun" style:font-family-asian="SimSun" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Tahoma" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
+  </style:style>
+  <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
+  </style:style>
+  <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+   <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
+   <style:text-properties style:font-name="Arial" fo:font-family="Arial" fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Tahoma1" style:font-family-complex="Tahoma" style:font-size-complex="12pt" style:font-style-complex="italic"/>
+  </style:style>
+  <style:style style:name="Footer" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="start" style:justify-single-word="false" text:number-lines="false" text:line-number="0">
+    <style:tab-stops>
+     <style:tab-stop style:position="8.5cm" style:type="center"/>
+     <style:tab-stop style:position="17cm" style:type="right"/>
+    </style:tab-stops>
+   </style:paragraph-properties>
+   <style:text-properties fo:color="#666666" fo:font-size="6pt"/>
+  </style:style>
+  <style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+   <style:paragraph-properties text:number-lines="false" text:line-number="0">
+    <style:tab-stops>
+     <style:tab-stop style:position="8.5cm" style:type="center"/>
+     <style:tab-stop style:position="17cm" style:type="right"/>
+    </style:tab-stops>
+   </style:paragraph-properties>
+  </style:style>
+  <style:style style:name="Seitenzahl" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="end" style:justify-single-word="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties fo:color="#666666" fo:font-size="8pt" fo:font-weight="bold"/>
+  </style:style>
+  <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Standard" style:default-outline-level="1" style:class="text" style:master-page-name="">
+   <loext:graphic-properties draw:fill="none" draw:fill-color="#99ccff"/>
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="center" style:justify-single-word="false" fo:keep-together="auto" fo:hyphenation-ladder-count="1" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:background-color="transparent" fo:keep-with-next="always">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties fo:text-transform="uppercase" fo:color="#000000" fo:font-size="13pt" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
+  </style:style>
+  <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Standard" style:default-outline-level="2" style:class="text" style:master-page-name="">
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="150%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:keep-with-next="always"/>
+   <style:text-properties fo:text-transform="uppercase" fo:color="#000000" fo:font-size="11pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+  </style:style>
+  <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Standard" style:default-outline-level="3" style:class="text" style:master-page-name="">
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:page-number="auto" fo:keep-with-next="always"/>
+   <style:text-properties fo:font-variant="normal" fo:text-transform="none" fo:font-size="11pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+  </style:style>
+  <style:style style:name="Text" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
+  <style:style style:name="Table_20_Contents" style:display-name="Table Contents" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" text:number-lines="false" text:line-number="0"/>
+   <style:text-properties fo:font-size="10pt"/>
+  </style:style>
+  <style:style style:name="Rechtssache" style:family="paragraph" style:parent-style-name="Standard" style:master-page-name="">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="start" style:justify-single-word="false" style:page-number="auto">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties fo:font-size="10pt"/>
+  </style:style>
+  <style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text">
+   <style:text-properties style:text-position="super 58%"/>
+  </style:style>
+  <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/>
+  <style:style style:name="Numbering_20_Symbols" style:display-name="Numbering Symbols" style:family="text"/>
+  <style:style style:name="Frame" style:family="graphic">
+   <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:padding="0.15cm" fo:border="0.06pt solid #000000"/>
+  </style:style>
+  <style:style style:name="Graphics" style:family="graphic">
+   <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
+  </style:style>
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.762cm" fo:text-indent="-0.762cm" fo:margin-left="0.762cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.016cm" fo:text-indent="-1.016cm" fo:margin-left="1.016cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.27cm" fo:text-indent="-1.27cm" fo:margin-left="1.27cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.524cm" fo:text-indent="-1.524cm" fo:margin-left="1.524cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.778cm" fo:text-indent="-1.778cm" fo:margin-left="1.778cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.032cm" fo:text-indent="-2.032cm" fo:margin-left="2.032cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.286cm" fo:text-indent="-2.286cm" fo:margin-left="2.286cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-2.54cm" fo:margin-left="2.54cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.794cm" fo:text-indent="-2.794cm" fo:margin-left="2.794cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" style:num-format="">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.048cm" fo:text-indent="-3.048cm" fo:margin-left="3.048cm"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:list-style style:name="List_20_1" style:display-name="List 1">
+   <text:list-level-style-bullet text:level="1" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.199cm" fo:text-indent="-1cm" fo:margin-left="1.199cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="2" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.801cm" fo:text-indent="-0.4cm" fo:margin-left="0.801cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="3" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.199cm" fo:text-indent="-0.4cm" fo:margin-left="1.199cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="4" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.6cm" fo:text-indent="-0.4cm" fo:margin-left="1.6cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="5" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2cm" fo:text-indent="-0.4cm" fo:margin-left="2cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="6" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.401cm" fo:text-indent="-0.4cm" fo:margin-left="2.401cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="7" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.799cm" fo:text-indent="-0.4cm" fo:margin-left="2.799cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="8" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.2cm" fo:text-indent="-0.4cm" fo:margin-left="3.2cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="9" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.6cm" fo:text-indent="-0.4cm" fo:margin-left="3.6cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+   <text:list-level-style-bullet text:level="10" text:style-name="Numbering_20_Symbols" text:bullet-char="•">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.001cm" fo:text-indent="-0.4cm" fo:margin-left="4.001cm"/>
+    </style:list-level-properties>
+    <style:text-properties style:font-name="OpenSymbol"/>
+   </text:list-level-style-bullet>
+  </text:list-style>
+  <text:list-style style:name="Numbering_20_1" style:display-name="Numbering 1">
+   <text:list-level-style-number text:level="1" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.199cm" fo:text-indent="-1cm" fo:margin-left="1.199cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="2" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.401cm" fo:text-indent="-1cm" fo:margin-left="2.401cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="3" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.6cm" fo:text-indent="-1cm" fo:margin-left="3.6cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="4" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.8cm" fo:text-indent="-1cm" fo:margin-left="4.8cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="5" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.001cm" fo:text-indent="-1cm" fo:margin-left="6.001cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="6" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="7.2cm" fo:text-indent="-1cm" fo:margin-left="7.2cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="7" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="8.4cm" fo:text-indent="-1cm" fo:margin-left="8.4cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="8" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="9.601cm" fo:text-indent="-1cm" fo:margin-left="9.601cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="9" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="10.8cm" fo:text-indent="-1cm" fo:margin-left="10.8cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+   <text:list-level-style-number text:level="10" text:style-name="Numbering_20_Symbols" style:num-suffix="." style:num-format="1">
+    <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="12cm" fo:text-indent="-1cm" fo:margin-left="12cm"/>
+    </style:list-level-properties>
+   </text:list-level-style-number>
+  </text:list-style>
+  <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="Tabelle2" style:family="table">
+   <style:table-properties style:width="16.2cm" table:align="margins"/>
+  </style:style>
+  <style:style style:name="Tabelle2.A" style:family="table-column">
+   <style:table-column-properties style:column-width="5.239cm" style:rel-column-width="21193*"/>
+  </style:style>
+  <style:style style:name="Tabelle2.B" style:family="table-column">
+   <style:table-column-properties style:column-width="6.244cm" style:rel-column-width="25260*"/>
+  </style:style>
+  <style:style style:name="Tabelle2.C" style:family="table-column">
+   <style:table-column-properties style:column-width="0.344cm" style:rel-column-width="1391*"/>
+  </style:style>
+  <style:style style:name="Tabelle2.D" style:family="table-column">
+   <style:table-column-properties style:column-width="3.334cm" style:rel-column-width="13486*"/>
+  </style:style>
+  <style:style style:name="Tabelle2.E" style:family="table-column">
+   <style:table-column-properties style:column-width="1.039cm" style:rel-column-width="4205*"/>
+  </style:style>
+  <style:style style:name="Tabelle2.A1" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="5pt solid #ffffff"/>
+  </style:style>
+  <style:style style:name="Tabelle2.B1" style:family="table-cell">
+   <style:table-cell-properties fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="5pt solid #ffffff">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle2.A5" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle2.B5" style:family="table-cell">
+   <style:table-cell-properties fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle2.C5" style:family="table-cell">
+   <style:table-cell-properties fo:background-color="transparent" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle2.D5" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle1" style:family="table">
+   <style:table-properties style:width="16.198cm" table:align="margins"/>
+  </style:style>
+  <style:style style:name="Tabelle1.A" style:family="table-column">
+   <style:table-column-properties style:column-width="8.098cm" style:rel-column-width="32767*"/>
+  </style:style>
+  <style:style style:name="Tabelle1.B" style:family="table-column">
+   <style:table-column-properties style:column-width="8.1cm" style:rel-column-width="32768*"/>
+  </style:style>
+  <style:style style:name="Tabelle1.A1" style:family="table-cell">
+   <style:table-cell-properties fo:background-color="transparent" fo:padding="0cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle1.3" style:family="table-row">
+   <style:table-row-properties style:min-row-height="0.194cm"/>
+  </style:style>
+  <style:style style:name="Tabelle1.5" style:family="table-row">
+   <style:table-row-properties style:min-row-height="0.39cm"/>
+  </style:style>
+  <style:style style:name="Tabelle4" style:family="table">
+   <style:table-properties style:width="16.2cm" table:align="margins" style:may-break-between-rows="false"/>
+  </style:style>
+  <style:style style:name="Tabelle4.A" style:family="table-column">
+   <style:table-column-properties style:column-width="0.55cm" style:rel-column-width="2226*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.B" style:family="table-column">
+   <style:table-column-properties style:column-width="0.556cm" style:rel-column-width="2247*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.C" style:family="table-column">
+   <style:table-column-properties style:column-width="2.279cm" style:rel-column-width="9219*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.D" style:family="table-column">
+   <style:table-column-properties style:column-width="0.319cm" style:rel-column-width="1291*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.E" style:family="table-column">
+   <style:table-column-properties style:column-width="1.767cm" style:rel-column-width="7150*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.F" style:family="table-column">
+   <style:table-column-properties style:column-width="2.858cm" style:rel-column-width="11559*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.G" style:family="table-column">
+   <style:table-column-properties style:column-width="2.066cm" style:rel-column-width="8355*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.H" style:family="table-column">
+   <style:table-column-properties style:column-width="5.807cm" style:rel-column-width="23488*"/>
+  </style:style>
+  <style:style style:name="Tabelle4.A1" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.A4" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.F5" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle4.B6" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.B7" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.B8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.E8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle4.H8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle4.B9" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5" style:family="table">
+   <style:table-properties style:width="16.2cm" table:align="margins" style:may-break-between-rows="false"/>
+  </style:style>
+  <style:style style:name="Tabelle5.A" style:family="table-column">
+   <style:table-column-properties style:column-width="0.55cm" style:rel-column-width="2226*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B" style:family="table-column">
+   <style:table-column-properties style:column-width="0.556cm" style:rel-column-width="2247*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.C" style:family="table-column">
+   <style:table-column-properties style:column-width="2.279cm" style:rel-column-width="9219*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.D" style:family="table-column">
+   <style:table-column-properties style:column-width="0.346cm" style:rel-column-width="1398*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.E" style:family="table-column">
+   <style:table-column-properties style:column-width="1.741cm" style:rel-column-width="7043*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.F" style:family="table-column">
+   <style:table-column-properties style:column-width="2.858cm" style:rel-column-width="11559*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.G" style:family="table-column">
+   <style:table-column-properties style:column-width="2.066cm" style:rel-column-width="8355*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.H" style:family="table-column">
+   <style:table-column-properties style:column-width="5.807cm" style:rel-column-width="23488*"/>
+  </style:style>
+  <style:style style:name="Tabelle5.A1" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.A4" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.F5" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="middle" fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle5.B6" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B7" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.E8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:background-color="#e6e6e6" fo:padding="0.097cm" fo:border="none">
+    <style:background-image/>
+   </style:table-cell-properties>
+  </style:style>
+  <style:style style:name="Tabelle5.H8" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="Tabelle5.B9" style:family="table-cell">
+   <style:table-cell-properties style:vertical-align="" fo:padding="0.097cm" fo:border="none"/>
+  </style:style>
+  <style:style style:name="P3" style:family="paragraph">
+   <style:paragraph-properties fo:text-align="center"/>
+  </style:style>
+  <style:style style:name="P7" style:family="paragraph" style:parent-style-name="Seitenzahl">
+   <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+  </style:style>
+<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Table_20_Contents">
+   <style:text-properties fo:font-size="11pt" fo:font-weight="bold" style:font-size-asian="11pt" style:font-weight-asian="bold" style:font-size-complex="11pt" style:font-weight-complex="bold"/>
+  </style:style>
+  <style:style style:name="P22" style:family="paragraph" style:parent-style-name="Table_20_Contents">
+   <style:text-properties fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="P24" style:family="paragraph" style:parent-style-name="Table_20_Contents">
+   <style:text-properties fo:font-size="11pt" fo:font-weight="normal" style:font-size-asian="11pt" style:font-weight-asian="normal" style:font-size-complex="11pt" style:font-weight-complex="normal"/>
+  </style:style>
+  <style:style style:name="P25" style:family="paragraph" style:parent-style-name="Table_20_Contents">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false"/>
+   <style:text-properties fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false"/>
+   <style:text-properties fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="P30" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+   <style:text-properties fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="P31" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:line-height="100%" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+   <style:text-properties fo:font-size="11pt" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="P34" style:family="paragraph" style:parent-style-name="Heading_20_3">
+   <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+  </style:style>
+  <style:style style:name="P35" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0.199cm" fo:margin-bottom="0.18cm" loext:contextual-spacing="false"/>
+  </style:style>
+  <style:style style:name="P36" style:family="paragraph" style:parent-style-name="Heading_20_2">
+   <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+  </style:style>
+  <style:style style:name="P37" style:family="paragraph" style:parent-style-name="Heading_20_1" style:master-page-name="Anordnung_20_Titelseite">
+   <style:paragraph-properties fo:margin-top="0.4cm" fo:margin-bottom="0.199cm" loext:contextual-spacing="false" style:page-number="auto"/>
+  </style:style>
+  <style:style style:name="P40" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" loext:contextual-spacing="false" fo:text-align="start" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
+   <style:text-properties fo:font-size="11pt" officeooo:rsid="000c2588" officeooo:paragraph-rsid="000c2588" style:font-size-asian="11pt" style:font-size-complex="11pt"/>
+  </style:style>
+  <style:style style:name="fr5" style:family="graphic" style:parent-style-name="Frame">
+   <style:graphic-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:protect="size position" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:background-color="transparent" draw:fill="none" draw:fill-color="#ffffff" fo:padding="0cm" fo:border="none" style:shadow="none" draw:shadow-opacity="100%">
+    <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+   </style:graphic-properties>
+  </style:style>
+  <style:style style:name="fr6" style:family="graphic" style:parent-style-name="Frame">
+   <style:graphic-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:padding="0cm" fo:border="none" style:shadow="none" draw:shadow-opacity="100%"/>
+  </style:style>
+  <style:style style:name="fr7" style:family="graphic" style:parent-style-name="Frame">
+   <style:graphic-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:protect="position" style:wrap="none" style:vertical-pos="from-top" style:vertical-rel="paragraph-content" style:horizontal-pos="from-left" style:horizontal-rel="page" fo:background-color="#e6e6e6" style:background-transparency="0%" draw:fill="solid" draw:fill-color="#e6e6e6" draw:opacity="100%" fo:padding="0.199cm" fo:border="0.06pt solid #ffffff" style:shadow="none" draw:shadow-opacity="100%"/>
+  </style:style>
+  <style:style style:name="gr2" style:family="graphic">
+   <style:graphic-properties svg:stroke-width="0.019cm" svg:stroke-color="#666666" draw:marker-start-width="0.379cm" draw:marker-end-width="0.379cm" draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" fo:padding-top="0.009cm" fo:padding-bottom="0.009cm" fo:padding-left="0.009cm" fo:padding-right="0.009cm" style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" style:flow-with-text="false"/>
+  </style:style>
+  <style:page-layout style:name="pm2">
+   <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0cm" fo:margin-bottom="0cm" fo:margin-left="2.401cm" fo:margin-right="2.401cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm">
+    <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style>
+    <style:header-footer-properties fo:min-height="7.001cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="2cm" style:dynamic-spacing="false"/>
+   </style:header-style>
+   <style:footer-style>
+    <style:header-footer-properties fo:min-height="2.2cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+   </style:footer-style>
+  </style:page-layout>
+  <style:page-layout style:name="pm3">
+   <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1.499cm" fo:margin-bottom="0cm" fo:margin-left="2.401cm" fo:margin-right="2.401cm" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" style:layout-grid-mode="none" style:layout-grid-ruby-below="false" style:layout-grid-print="false" style:layout-grid-display="false" style:footnote-max-height="0cm">
+    <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style/>
+   <style:footer-style/>
+  </style:page-layout>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Anordnung_20_Titelseite" style:display-name="Anordnung Titelseite" style:page-layout-name="pm2" style:next-style-name="Anordnung_20_Folgeseite">
+   <style:header>
+    <text:p text:style-name="Header"/>
+   </style:header>
+   <style:footer>
+    <text:p text:style-name="Footer"><draw:frame draw:style-name="fr5" draw:name="Rahmen4" text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" svg:width="13.501cm" svg:height="1.69cm" draw:z-index="3">
+      <draw:text-box>
+       <text:p text:style-name="Footer"><draw:line text:anchor-type="paragraph" draw:z-index="4" draw:style-name="gr2" draw:text-style-name="P3" svg:x1="0cm" svg:y1="-0.101cm" svg:x2="16.2cm" svg:y2="-0.101cm">
+         <text:p/>
+        </draw:line></text:p>
+      </draw:text-box>
+     </draw:frame><draw:frame draw:style-name="fr6" draw:name="Rahmen5" text:anchor-type="paragraph" svg:x="14.002cm" svg:y="0.007cm" svg:width="2.198cm" draw:z-index="5">
+      <draw:text-box fo:min-height="1.693cm">
+       <text:p text:style-name="P7"/>
+      </draw:text-box>
+     </draw:frame></text:p>
+   </style:footer>
+  </style:master-page>
+  <style:master-page style:name="Anordnung_20_Folgeseite" style:display-name="Anordnung Folgeseite" style:page-layout-name="pm3"/>
+ </office:master-styles>
+ <office:body>
+  <office:text text:use-soft-page-breaks="true">
+   <office:forms form:automatic-focus="false" form:apply-design-mode="false">
+    <form:form form:name="Formular" form:apply-filter="true" form:command-type="table" form:control-implementation="ooo:com.sun.star.form.component.Form" office:target-frame="">
+     <form:properties>
+      <form:property form:property-name="PropertyChangeNotificationEnabled" office:value-type="boolean" office:boolean-value="true"/>
+      <form:property form:property-name="TargetURL" office:value-type="string" office:string-value=""/>
+     </form:properties>
+    </form:form>
+   </office:forms>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:h text:style-name="P37" text:outline-level="1"/>
+   <text:h text:style-name="P34" text:outline-level="3"/>
+   <table:table table:name="Tabelle2" table:style-name="Tabelle2">
+    <table:table-column table:style-name="Tabelle2.A"/>
+    <table:table-column table:style-name="Tabelle2.B"/>
+    <table:table-column table:style-name="Tabelle2.C"/>
+    <table:table-column table:style-name="Tabelle2.D"/>
+    <table:table-column table:style-name="Tabelle2.E"/>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.B1" table:number-columns-spanned="4" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.B1" table:number-columns-spanned="4" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.B1" table:number-columns-spanned="4" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.B1" table:number-columns-spanned="4" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle2.A5" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.B5" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.C5" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.D5" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle2.C5" office:value-type="string">
+      <text:p text:style-name="P22"/>
+     </table:table-cell>
+    </table:table-row>
+   </table:table>
+   <text:h text:style-name="Heading_20_3" text:outline-level="3"><draw:frame draw:style-name="fr7" draw:name="Rechtssache" text:anchor-type="paragraph" svg:x="2.2cm" svg:y="0.4cm" svg:width="16.6cm" draw:z-index="0">
+     <draw:text-box fo:min-height="2.147cm">
+      <table:table table:name="Tabelle1" table:style-name="Tabelle1">
+       <table:table-column table:style-name="Tabelle1.A"/>
+       <table:table-column table:style-name="Tabelle1.B"/>
+       <table:table-row>
+        <table:table-cell table:style-name="Tabelle1.A1" table:number-columns-spanned="2" office:value-type="string">
+         <text:p text:style-name="P21"/>
+        </table:table-cell>
+        <table:covered-table-cell/>
+       </table:table-row>
+       <table:table-row>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P21"/>
+        </table:table-cell>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P24"/>
+        </table:table-cell>
+       </table:table-row>
+       <table:table-row table:style-name="Tabelle1.3">
+        <table:table-cell table:style-name="Tabelle1.A1" table:number-rows-spanned="2" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P24"/>
+        </table:table-cell>
+       </table:table-row>
+       <table:table-row table:style-name="Tabelle1.3">
+        <table:covered-table-cell/>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+       </table:table-row>
+       <table:table-row table:style-name="Tabelle1.5">
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P21"/>
+        </table:table-cell>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+       </table:table-row>
+       <table:table-row table:style-name="Tabelle1.3">
+        <table:table-cell table:style-name="Tabelle1.A1" table:number-rows-spanned="2" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+       </table:table-row>
+       <table:table-row table:style-name="Tabelle1.3">
+        <table:covered-table-cell/>
+        <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+         <text:p text:style-name="P22"/>
+        </table:table-cell>
+       </table:table-row>
+      </table:table>
+      <text:p text:style-name="P21"/>
+      <text:p text:style-name="P22"/>
+     </draw:text-box>
+    </draw:frame></text:h>
+   <text:h text:style-name="Heading_20_3" text:outline-level="3"/>
+   <table:table table:name="Tabelle4" table:style-name="Tabelle4">
+    <table:table-column table:style-name="Tabelle4.A"/>
+    <table:table-column table:style-name="Tabelle4.B"/>
+    <table:table-column table:style-name="Tabelle4.C"/>
+    <table:table-column table:style-name="Tabelle4.D"/>
+    <table:table-column table:style-name="Tabelle4.E"/>
+    <table:table-column table:style-name="Tabelle4.F"/>
+    <table:table-column table:style-name="Tabelle4.G"/>
+    <table:table-column table:style-name="Tabelle4.H"/>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A1" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A1" table:number-columns-spanned="2" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle4.A1" table:number-columns-spanned="5" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A1" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" table:number-columns-spanned="3" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle4.F5" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" table:number-columns-spanned="2" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.B7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P31"><text:s/></text:p>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.B7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P31"/>
+      <text:p text:style-name="P31"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.B8" table:number-columns-spanned="3" office:value-type="string">
+      <text:h text:style-name="Heading_20_2" text:outline-level="2"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle4.E8" table:number-columns-spanned="3" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle4.H8" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle4.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle4.B9" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+   </table:table>
+   <table:table table:name="Tabelle5" table:style-name="Tabelle5">
+    <table:table-column table:style-name="Tabelle5.A"/>
+    <table:table-column table:style-name="Tabelle5.B"/>
+    <table:table-column table:style-name="Tabelle5.C"/>
+    <table:table-column table:style-name="Tabelle5.D"/>
+    <table:table-column table:style-name="Tabelle5.E"/>
+    <table:table-column table:style-name="Tabelle5.F"/>
+    <table:table-column table:style-name="Tabelle5.G"/>
+    <table:table-column table:style-name="Tabelle5.H"/>
+    <text:soft-page-break/>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A1" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A1" table:number-columns-spanned="2" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle5.A1" table:number-columns-spanned="5" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A1" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A1" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" table:number-columns-spanned="3" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle5.F5" office:value-type="string">
+      <text:p text:style-name="P30"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" table:number-columns-spanned="2" office:value-type="string">
+      <text:p text:style-name="P40">Abc def ghi jkl mno pqr stu vwx yz.</text:p>
+     </table:table-cell>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.B7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P31"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.B7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.A4" table:number-columns-spanned="6" office:value-type="string">
+      <text:p text:style-name="P31"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.B8" table:number-columns-spanned="3" office:value-type="string">
+      <text:h text:style-name="P36" text:outline-level="2"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle5.E8" table:number-columns-spanned="3" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:table-cell table:style-name="Tabelle5.H8" office:value-type="string">
+      <text:p text:style-name="P27"><text:s/></text:p>
+     </table:table-cell>
+    </table:table-row>
+    <table:table-row>
+     <table:table-cell table:style-name="Tabelle5.A4" office:value-type="string">
+      <text:p text:style-name="P25"/>
+     </table:table-cell>
+     <table:table-cell table:style-name="Tabelle5.B9" table:number-columns-spanned="7" office:value-type="string">
+      <text:p text:style-name="P27"/>
+     </table:table-cell>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+     <table:covered-table-cell/>
+    </table:table-row>
+   </table:table>
+   <text:p text:style-name="P35"/>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 768663a945cc..22e51db58447 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -1173,6 +1173,27 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFlysInFootnote)
     }
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTableOverlapFooterFly)
+{
+    // Load a document that has a fly anchored in the footer.
+    // It also has a table which initially overlaps with the fly, but then moves to the next page.
+    load(DATA_DIRECTORY, "footer-fly-table.fodt");
+    xmlDocPtr pLayout = parseLayoutDump();
+    // no fly portions, was: 8
+    assertXPath(
+        pLayout,
+        "/root/page[2]/body/tab[1]/row[5]/cell[5]/txt[1]/Special[@nType='PortionType::Fly']", 0);
+    // one line break, was: 5
+    assertXPath(pLayout, "/root/page[2]/body/tab[1]/row[5]/cell[5]/txt[1]/LineBreak", 1);
+    // one text portion, was: 1
+    assertXPath(pLayout, "/root/page[2]/body/tab[1]/row[5]/cell[5]/txt[1]/Text", 1);
+    assertXPath(pLayout, "/root/page[2]/body/tab[1]/row[5]/cell[5]/txt[1]/Text", "Portion",
+                "Abc def ghi jkl mno pqr stu vwx yz.");
+    // height was: 1517
+    assertXPath(pLayout, "/root/page[2]/body/tab[1]/row[5]/cell[5]/txt[1]/infos/bounds", "height",
+                "253");
+}
+
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFlysInFlys)
 {
     // currently need experimental mode
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 1abb15b912dd..a27b7d3c1c22 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1841,6 +1841,22 @@ void FriendHackInvalidateRowFrame(SwFrameAreaDefinition & rRowFrame)
     rRowFrame.setFrameAreaPositionValid(false);
 }
 
+static void InvalidateFramePositions(SwFrame * pFrame)
+{
+    while (pFrame)
+    {
+        if (pFrame->IsLayoutFrame())
+        {
+            InvalidateFramePositions(pFrame->GetLower());
+        }
+        else if (pFrame->IsTextFrame())
+        {
+            pFrame->Prepare(PREP_POS_CHGD);
+        }
+        pFrame = pFrame->GetNext();
+    }
+}
+
 void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext)
 {
     if ( IsJoinLocked() || StackHack::IsLocked() || StackHack::Count() > 50 )
@@ -2039,6 +2055,8 @@ void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext)
             if (GetLower())
             {   // it's possible that the rows already have valid pos - but it is surely wrong if the table's pos changed!
                 FriendHackInvalidateRowFrame(*GetLower());
+                // invalidate text frames to get rid of their SwFlyPortions
+                InvalidateFramePositions(GetLower());
             }
         }
 
commit 2ad66714fc1e09e66a8cfed3ac25cdd45fb7635f
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Fri Feb 28 18:39:41 2020 +0100
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Fri Jul 17 17:14:28 2020 +0200

    sw: layout: fix wrongly positioned table rows in --convert-to pdf
    
    If the document is loaded via UI, the first layout action is triggered
    from resizing the Window and the table is positioned properly on the
    first try.
    
    If the document is loaded via --convert-to, only getRendererCount()
    formats the content of the table, and the table is positioned 3 times
    but its first row is only positioned 2 times.
    
    The first time the table id="56" is positioned, the previous table
    id="50" is at correct Y 5988 but its content isn't formatted yet, so its
    height is almost 0 (just table's border etc.), so the table ends up at
    y = 6271.
    
    The second time the table id="56" is positioned, the previous table
    id="50" is at wrong Y 7937 and its content is valid, so its height
    is 1203, so the table ends up at y = 9140.
    
    The third time the table id="56" is positioned, the previous table
    id="50" is at correct Y 5988 and its content is valid, so its height
    is 1203, so the table ends up at correct y = 7191 ... but the first
    SwRowFrame remains at y = 9140 and is never repositioned, and the lower
    rows are cut off (invisible).
    
    Change SwTabFrame::MakeAll() so that a MakePos() that moves the table
    itself does not leave the first SwRowFrame's position valid, which
    should ensure that all rows are repositioned.
    
    (And work around C++'s particularly unhelpful type system.)
    
    This happens since the earliest version checked, OOo 3.3.
    
    Change-Id: If3dfe1ffcb81e03aa4f4bffcf33a237f0c92bd08
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89735
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit 068c133ac41c97652909b88c432e3b73010efc3e)

diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx
index 312957a02593..c6aab196a65f 100644
--- a/sw/source/core/inc/frame.hxx
+++ b/sw/source/core/inc/frame.hxx
@@ -130,6 +130,8 @@ namespace drawinglayer { namespace attribute {
 class SW_DLLPUBLIC SwFrameAreaDefinition
 {
 private:
+    friend void FriendHackInvalidateRowFrame(SwFrameAreaDefinition &);
+
     // The absolute position and size of the SwFrame in the document.
     // This values are set by the layouter implementations
     SwRect  maFrameArea;
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index b17e7e0f320d..1abb15b912dd 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1833,6 +1833,14 @@ namespace {
         return bRet;
     }
 }
+
+// extern because static can't be friend
+void FriendHackInvalidateRowFrame(SwFrameAreaDefinition & rRowFrame)
+{
+    // hilariously static_cast<SwTabFrame*>(GetLower()) would not require friend declaration, but it's UB...
+    rRowFrame.setFrameAreaPositionValid(false);
+}
+
 void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext)
 {
     if ( IsJoinLocked() || StackHack::IsLocked() || StackHack::Count() > 50 )
@@ -2028,6 +2036,10 @@ void SwTabFrame::MakeAll(vcl::RenderContext* pRenderContext)
             {
                 m_bCalcLowers = true;
             }
+            if (GetLower())
+            {   // it's possible that the rows already have valid pos - but it is surely wrong if the table's pos changed!
+                FriendHackInvalidateRowFrame(*GetLower());
+            }
         }
 
         //We need to know the height of the first row, because the master needs
commit 87a33fd7be835b14cea7109d9e31949029bb3581
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Tue Jun 30 11:17:12 2020 +0200
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Fri Jul 17 12:55:10 2020 +0200

    suppress liblangtag -Werror=format=2
    
    Change-Id: Ib95cc6a5994a678f5e82695e0be1e78c461c3a7f

diff --git a/external/liblangtag/ExternalProject_liblangtag.mk b/external/liblangtag/ExternalProject_liblangtag.mk
index 3fb5618f7fc1..1542381c792e 100644
--- a/external/liblangtag/ExternalProject_liblangtag.mk
+++ b/external/liblangtag/ExternalProject_liblangtag.mk
@@ -28,6 +28,7 @@ $(call gb_ExternalProject_get_state_target,liblangtag,build):
 			--enable-shared --disable-static) \
 		$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
 		$(if $(filter TRUE,$(HAVE_GCC_BUILTIN_ATOMIC)),"lt_cv_has_atomic=yes","lt_cv_has_atomic=no") \
+		--enable-compile-warnings=minimum \
 		CFLAGS='$(CFLAGS) \
 				$(if $(ENABLE_OPTIMIZED), \
 					$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS)) \
commit 249390f1da61ea45dd860ac16da7b28b19add228
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Tue Jun 11 11:56:33 2019 +0200
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Fri Jul 17 12:54:17 2020 +0200

    external/libmspub: missing include
    
    Change-Id: I446b26b3c0ffd0d62178f374b570c9fbd1885dd4
    Reviewed-on: https://gerrit.libreoffice.org/73813
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    (cherry picked from commit d0e38b8f1efc6a0b2b519ce1f82a83c5766f5633)

diff --git a/external/libmspub/UnpackedTarball_libmspub.mk b/external/libmspub/UnpackedTarball_libmspub.mk
index f337d402d47f..1451f723e316 100644
--- a/external/libmspub/UnpackedTarball_libmspub.mk
+++ b/external/libmspub/UnpackedTarball_libmspub.mk
@@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libmspub,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libmspub,\
     external/libmspub/ubsan.patch \
+    external/libmspub/stdint.patch \
 ))
 
 $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libmspub))
diff --git a/external/libmspub/stdint.patch b/external/libmspub/stdint.patch
new file mode 100644
index 000000000000..61f1dd122904
--- /dev/null
+++ b/external/libmspub/stdint.patch
@@ -0,0 +1,10 @@
+--- src/lib/MSPUBMetaData.h
++++ src/lib/MSPUBMetaData.h
+@@ -13,6 +13,7 @@
+ #include <map>
+ #include <utility>
+ #include <vector>
++#include <stdint.h>
+ 
+ #include <librevenge/librevenge.h>
+ 
commit ea48e98b0b84edc4c95b26f84c0e562d8a5c21b6
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Fri Dec 6 16:36:01 2019 +0100
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Fri Jul 17 12:46:40 2020 +0200

    Adapt o3tl::span to P1872R0
    
    ..."span should have size_type, not index_type"
    (<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1872r0.pdf>), as
    implemented by libc++ since <https://github.com/llvm/llvm-project/commit/
    1466335cf4b2854a0be1defcf279fe50772bad6f> "[libc++][P1872] span should have
    size_type, not index_type."
    
    All uses of index_type had been added to mitigate the previous std::span change
    from signed (ptrdiff_t) to unsigned (size_t) index_type, see
    6ef8420fdbf8dff16de13147c5ab833bc5e01121 "Adapt o3tl::span to updated C++2a
    std::span".  There is no easy solution to transparently support all three
    std::span variants currently out there (signed index_type, unsigned index_type,
    unsigned size_type), without causing compilation failures due to
    CPPUNIT_ASSERT_EQUAL with arguments of different types, or compiler warnings
    about mixed signed/unsigned comparisons.  So rule out the oldest std::span
    variant (signed index_type) in configure.ac (so that o3tl::span will use its
    own hand-rolled code in that case) and simplify the uses of index_type to
    std::size_t (as had already been mentioned in
    6ef8420fdbf8dff16de13147c5ab833bc5e01121).
    
    Reviewed-on: https://gerrit.libreoffice.org/84652
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    (cherry picked from commit 8e6865188242bccb3d8aa857ddc990d72a058d3d)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87757
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit bb9833594b031c6d0ec91422f85968c4b1f2f8bc)
    
    Change-Id: I6ddf424ffb7941da3f69ad66fd29ecd35f09afae

diff --git a/config_host/config_global.h.in b/config_host/config_global.h.in
index 2e986fbe24b6..0b44ad05373e 100644
--- a/config_host/config_global.h.in
+++ b/config_host/config_global.h.in
@@ -24,6 +24,9 @@ Any change in this header will cause a rebuild of almost everything.
 /* Guaranteed copy elision (C++17), __cpp_guaranteed_copy_elision (C++2a): */
 #define HAVE_CPP_GUARANTEED_COPY_ELISION 0
 
+// Useable C++2a <span>:
+#define HAVE_CPP_SPAN 0
+
 /* GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87150> "move ctor wrongly chosen in return
    stmt (derived vs. base)": */
 #define HAVE_GCC_BUG_87150 0
diff --git a/configure.ac b/configure.ac
index 2b33e5f0bc0a..0e61b295b66f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6766,6 +6766,22 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 CXXFLAGS=$save_CXXFLAGS
 AC_LANG_POP([C++])
 
+AC_MSG_CHECKING([whether $CXX supports C++2a <span> with unsigned size_type])
+AC_LANG_PUSH([C++])
+save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+        #include <span>
+        #include <type_traits>
+        // Don't check size_type directly, as it was called index_type before P1872R0:
+        void f(std::span<int> s) { static_assert(std::is_unsigned_v<decltype(s.size())>); };
+    ])], [
+        AC_DEFINE([HAVE_CPP_SPAN],[1])
+        AC_MSG_RESULT([yes])
+    ], [AC_MSG_RESULT([no])])
+CXXFLAGS=$save_CXXFLAGS
+AC_LANG_POP([C++])
+
 AC_MSG_CHECKING([whether $CXX has GCC bug 87150])
 AC_LANG_PUSH([C++])
 save_CXXFLAGS=$CXXFLAGS
diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index 1618b86df897..b19d2d847ac7 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -12,7 +12,9 @@
 
 #include <sal/config.h>
 
-#if __has_include(<span>)
+#include <config_global.h>
+
+#if HAVE_CPP_SPAN
 
 #include <span>
 
@@ -40,7 +42,7 @@ public:
     using iterator = pointer;
     using const_reverse_iterator = std::reverse_iterator<const_iterator>;
     using reverse_iterator = std::reverse_iterator<iterator>;
-    using index_type = std::size_t;
+    using size_type = std::size_t;
     using difference_type = std::ptrdiff_t;
 
     constexpr span() noexcept : data_(nullptr), size_(0) {}
@@ -48,7 +50,7 @@ public:
     template<std::size_t N>
     constexpr span (T (&a)[N]) noexcept : data_(a), size_(N) {}
 
-    constexpr span (T *a, index_type len) noexcept
+    constexpr span (T *a, size_type len) noexcept
         : data_(a), size_(len)
     {
         // not terribly sure about this, might need to strengthen it
@@ -72,9 +74,9 @@ public:
     { return rbegin(); }
     constexpr const_reverse_iterator crend() const noexcept { return rend(); }
 
-    constexpr index_type size() const noexcept { return size_; }

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list