diff options
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/queryevaluator.hxx | 16 | ||||
-rw-r--r-- | sc/inc/queryiter.hxx | 10 | ||||
-rw-r--r-- | sc/inc/rangecache.hxx | 26 | ||||
-rw-r--r-- | sc/qa/unit/data/functions/statistical/fods/countif.fods | 191 | ||||
-rw-r--r-- | sc/qa/unit/data/functions/statistical/fods/countif2.fods | 3157 | ||||
-rw-r--r-- | sc/source/core/data/queryevaluator.cxx | 57 | ||||
-rw-r--r-- | sc/source/core/data/queryiter.cxx | 37 | ||||
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 8 | ||||
-rw-r--r-- | sc/source/core/tool/rangecache.cxx | 69 |
9 files changed, 3411 insertions, 160 deletions
diff --git a/sc/inc/queryevaluator.hxx b/sc/inc/queryevaluator.hxx index 13e3f6ae93c8..f5724083444d 100644 --- a/sc/inc/queryevaluator.hxx +++ b/sc/inc/queryevaluator.hxx @@ -72,10 +72,10 @@ class ScQueryEvaluator std::vector<std::vector<double>> mCachedSortedItemValues; std::vector<std::vector<const rtl_uString*>> mCachedSortedItemStrings; - static bool isPartialTextMatchOp(const ScQueryEntry& rEntry); - static bool isTextMatchOp(const ScQueryEntry& rEntry); - static bool isMatchWholeCellHelper(bool docMatchWholeCell, const ScQueryEntry& rEntry); - bool isMatchWholeCell(const ScQueryEntry& rEntry) const; + static bool isPartialTextMatchOp(ScQueryOp eOp); + static bool isTextMatchOp(ScQueryOp eOp); + static bool isMatchWholeCellHelper(bool docMatchWholeCell, ScQueryOp eOp); + bool isMatchWholeCell(ScQueryOp eOp) const; void setupTransliteratorIfNeeded(); void setupCollatorIfNeeded(); @@ -114,13 +114,13 @@ public: bool ValidQuery(SCROW nRow, const ScRefCellValue* pCell = nullptr, sc::TableColumnBlockPositionSet* pBlockPos = nullptr); - static bool isQueryByValue(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem, + static bool isQueryByValue(ScQueryOp eOp, ScQueryEntry::QueryType eType, const ScRefCellValue& rCell); - static bool isQueryByString(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem, + static bool isQueryByString(ScQueryOp eOp, ScQueryEntry::QueryType eType, const ScRefCellValue& rCell); - OUString getCellString(const ScRefCellValue& rCell, SCROW nRow, const ScQueryEntry& rEntry, + OUString getCellString(const ScRefCellValue& rCell, SCROW nRow, SCCOL nCol, const svl::SharedString** sharedString); - static bool isMatchWholeCell(const ScDocument& rDoc, const ScQueryEntry& rEntry); + static bool isMatchWholeCell(const ScDocument& rDoc, ScQueryOp eOp); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/queryiter.hxx b/sc/inc/queryiter.hxx index fa8f08083981..1d0066de7fb8 100644 --- a/sc/inc/queryiter.hxx +++ b/sc/inc/queryiter.hxx @@ -323,8 +323,9 @@ public: SCTAB nTable, const ScQueryParam& aParam, bool bMod) : Base( rDocument, rContext, nTable, aParam, bMod ) {} // Returns true if this iterator can be used for the given query. - static bool CanBeUsed(const ScDocument& rDoc, const ScQueryParam& aParam, - const ScFormulaCell* cell, const ScComplexRefData* refData); + static bool CanBeUsed(ScDocument& rDoc, const ScQueryParam& aParam, + SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData, + ScInterpreterContext& context); }; @@ -372,8 +373,9 @@ public: SCTAB nTable, const ScQueryParam& aParam, bool bMod) : Base( rDocument, rContext, nTable, aParam, bMod ) {} // Returns true if this iterator can be used for the given query. - static bool CanBeUsed(const ScDocument& rDoc, const ScQueryParam& aParam, - const ScFormulaCell* cell, const ScComplexRefData* refData); + static bool CanBeUsed(ScDocument& rDoc, const ScQueryParam& aParam, + SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData, + ScInterpreterContext& context); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/rangecache.hxx b/sc/inc/rangecache.hxx index 048d9b9ba046..7490a570f20a 100644 --- a/sc/inc/rangecache.hxx +++ b/sc/inc/rangecache.hxx @@ -20,6 +20,7 @@ #pragma once #include "address.hxx" +#include "queryentry.hxx" #include <o3tl/hash_combine.hxx> #include <svl/listener.hxx> @@ -47,11 +48,13 @@ public: ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, const ScQueryParam& param, ScInterpreterContext* context); + /// Returns if the cache is usable. + bool isValid() const { return mValid; } + /// Remove from document structure and delete (!) cache on modify hint. virtual void Notify(const SfxHint& rHint) override; const ScRange& getRange() const { return maRange; } - bool isDescending() const { return mDescending; } enum class ValueType { @@ -62,14 +65,16 @@ public: struct HashKey { ScRange range; - bool descending; - ValueType type; + ValueType valueType; + ScQueryOp queryOp; + ScQueryEntry::QueryType queryType; bool operator==(const HashKey& other) const { - return range == other.range && descending == other.descending && type == other.type; + return range == other.range && valueType == other.valueType && queryOp == other.queryOp + && queryType == other.queryType; } }; - HashKey getHashKey() const { return { maRange, mDescending, mValues }; } + HashKey getHashKey() const { return { maRange, mValueType, mQueryOp, mQueryType }; } static HashKey makeHashKey(const ScRange& range, const ScQueryParam& param); struct Hash @@ -78,8 +83,9 @@ public: { // Range should be just one column. size_t hash = key.range.hashStartColumn(); - o3tl::hash_combine(hash, key.descending); - o3tl::hash_combine(hash, key.type); + o3tl::hash_combine(hash, key.valueType); + o3tl::hash_combine(hash, key.queryOp); + o3tl::hash_combine(hash, key.queryType); return hash; } }; @@ -100,8 +106,10 @@ private: std::vector<size_t> mRowToIndex; // indexed by 'SCROW - maRange.aStart.Row()' ScRange maRange; ScDocument* mpDoc; - bool mDescending; - ValueType mValues; + bool mValid; + ValueType mValueType; + ScQueryOp mQueryOp; + ScQueryEntry::QueryType mQueryType; ScSortedRangeCache(const ScSortedRangeCache&) = delete; ScSortedRangeCache& operator=(const ScSortedRangeCache&) = delete; diff --git a/sc/qa/unit/data/functions/statistical/fods/countif.fods b/sc/qa/unit/data/functions/statistical/fods/countif.fods index 41ee8f439791..e144a049d059 100644 --- a/sc/qa/unit/data/functions/statistical/fods/countif.fods +++ b/sc/qa/unit/data/functions/statistical/fods/countif.fods @@ -3726,7 +3726,7 @@ <table:table-cell office:value-type="float" office:value="12" calcext:value-type="float"> <text:p>12</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A32];12)=ROUND([.B32];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A32];12)=ROUND([.B32];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>PRAVDA</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="=COUNTIF(P20:R23;"")" calcext:value-type="string"> @@ -3755,7 +3755,7 @@ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> <text:p>2</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A33];12)=ROUND([.B33];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A33];12)=ROUND([.B33];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>PRAVDA</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="=COUNTIF(N33:N35;"<>7")" calcext:value-type="string"> @@ -3784,7 +3784,7 @@ <table:table-cell office:value-type="float" office:value="9" calcext:value-type="float"> <text:p>9</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A34];12)=ROUND([.B34];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A34];12)=ROUND([.B34];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;".*")" calcext:value-type="string"> @@ -3815,7 +3815,7 @@ <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> <text:p>5</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A35];12)=ROUND([.B35];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A35];12)=ROUND([.B35];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"abc")" calcext:value-type="string"> @@ -3846,7 +3846,7 @@ <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> <text:p>5</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A36];12)=ROUND([.B36];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A36];12)=ROUND([.B36];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"ABC")" calcext:value-type="string"> @@ -3866,7 +3866,7 @@ <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> <text:p>4</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A37];12)=ROUND([.B37];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A37];12)=ROUND([.B37];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A37])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"a")" calcext:value-type="string"> @@ -3886,7 +3886,7 @@ <table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"> <text:p>4</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A38];12)=ROUND([.B38];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A38];12)=ROUND([.B38];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A38])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"A")" calcext:value-type="string"> @@ -3906,7 +3906,7 @@ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> <text:p>1</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A39];12)=ROUND([.B39];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A39];12)=ROUND([.B39];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"(?-i)abc")" calcext:value-type="string"> @@ -3926,7 +3926,7 @@ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> <text:p>2</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A40];12)=ROUND([.B40];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A40];12)=ROUND([.B40];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A40])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"(?-i)Abc")" calcext:value-type="string"> @@ -3946,7 +3946,7 @@ <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> <text:p>3</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A41];12)=ROUND([.B41];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A41];12)=ROUND([.B41];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A41])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"(?-i)A")" calcext:value-type="string"> @@ -3966,7 +3966,7 @@ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> <text:p>2</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A42];12)=ROUND([.B42];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A42];12)=ROUND([.B42];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A42])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;"a(?-i)B(?i)c")" calcext:value-type="string"> @@ -3986,7 +3986,7 @@ <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> <text:p>0</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A43];12)=ROUND([.B43];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A43];12)=ROUND([.B43];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A43])" office:value-type="string" office:string-value="=COUNTIF(BM5:BM9,0)" calcext:value-type="string"> @@ -4006,7 +4006,7 @@ <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> <text:p>3</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A44];12)=ROUND([.B44];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A44];12)=ROUND([.B44];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:formula="of:=FORMULA([.A44])" office:value-type="string" office:string-value="=COUNTIF(I44:L44;"=")" calcext:value-type="string"> @@ -4030,7 +4030,7 @@ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> <text:p>1</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A45];12)=ROUND([.B45];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A45];12)=ROUND([.B45];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:formula="of:=FORMULA([.A45])" office:value-type="string" office:string-value="=COUNTIF(I45:L45;"<>")" calcext:value-type="string"> @@ -4054,7 +4054,7 @@ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> <text:p>1</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A46];12)=ROUND([.B46];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A46];12)=ROUND([.B46];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:formula="of:=FORMULA([.A46])" office:value-type="string" office:string-value="=COUNTIF(I46:L46;"<>")" calcext:value-type="string"> @@ -4078,7 +4078,7 @@ <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> <text:p>0</text:p> </table:table-cell> - <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A47];12)=ROUND([.B47];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A47];12)=ROUND([.B47];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> <text:p>TRUE</text:p> </table:table-cell> <table:table-cell table:formula="of:=FORMULA([.A47])" office:value-type="string" office:string-value="=COUNTIF(I47:L47;"<>")" calcext:value-type="string"> @@ -4096,75 +4096,122 @@ </table:table-cell> </table:table-row> <table:table-row table:style-name="ro2"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> - <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> + <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];">2")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A48];12)=ROUND([.B48];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A48])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,">2")" calcext:value-type="string"> + <text:p>=COUNTIF(J48:J51,">2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> <table:table-cell table:number-columns-repeated="4"/> - <table:table-cell table:style-name="ce20"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A2</text:p> + </table:table-cell> </table:table-row> <table:table-row table:style-name="ro2"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> - <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> + <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];"=2")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A49];12)=ROUND([.B49];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A49])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,"=2")" calcext:value-type="string"> + <text:p>=COUNTIF(J48:J51,"=2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> <table:table-cell table:number-columns-repeated="3"/> - <table:table-cell table:style-name="ce24"/> - <table:table-cell table:style-name="ce20"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> + <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> </table:table-row> <table:table-row table:style-name="ro2"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> - <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> - <table:table-cell table:number-columns-repeated="2"/> - <table:table-cell table:style-name="ce40"/> - <table:table-cell/> - <table:table-cell table:style-name="ce20"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> - </table:table-row> - <table:table-row table:style-name="ro2" table:number-rows-repeated="4"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> - <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> + <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];"<2")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A50];12)=ROUND([.B50];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A50])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,"<2")" calcext:value-type="string"> + <text:p>=COUNTIF(J48:J51,"<2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> <table:table-cell table:number-columns-repeated="3"/> - <table:table-cell table:style-name="ce42"/> - <table:table-cell table:style-name="ce20"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> </table:table-row> <table:table-row table:style-name="ro2"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> - <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> + <table:table-cell table:formula="of:=COUNTIF([.I49:.I52];">2")" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A51];12)=ROUND([.B51];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A51])" office:value-type="string" office:string-value="=COUNTIF(I49:I52,">2")" calcext:value-type="string"> + <text:p>=COUNTIF(I49:I52,">2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> <table:table-cell table:number-columns-repeated="3"/> - <table:table-cell table:style-name="ce42"/> - <table:table-cell table:style-name="science"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> + <table:table-cell table:style-name="ce25" office:value-type="float" office:value="55" calcext:value-type="float"> + <text:p>55</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> </table:table-row> <table:table-row table:style-name="ro2"> - <table:table-cell/> - <table:table-cell table:style-name="ce23"/> + <table:table-cell table:formula="of:=COUNTIF([.I49:.I52];"=5")" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A52];12)=ROUND([.B52];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A52])" office:value-type="string" office:string-value="=COUNTIF(I49:I52,"=5")" calcext:value-type="string"> + <text:p>=COUNTIF(I49:I52,"=5")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string"> + <text:p>55</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="4"> + <table:table-cell table:number-columns-repeated="2"/> <table:table-cell table:style-name="ce64"/> - <table:table-cell table:style-name="ce34"/> - <table:table-cell table:number-columns-repeated="4"/> - <table:table-cell table:style-name="science"/> - <table:table-cell table:number-columns-repeated="16"/> - <table:table-cell table:style-name="ce56"/> - <table:table-cell table:style-name="ce58"/> </table:table-row> <table:table-row table:style-name="ro2"> <table:table-cell table:formula="of:=COUNTIF([.I53];[.I53])" office:value-type="float" office:value="0" calcext:value-type="float"> diff --git a/sc/qa/unit/data/functions/statistical/fods/countif2.fods b/sc/qa/unit/data/functions/statistical/fods/countif2.fods new file mode 100644 index 000000000000..35a61b34c642 --- /dev/null +++ b/sc/qa/unit/data/functions/statistical/fods/countif2.fods @@ -0,0 +1,3157 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" 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:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"> + <office:meta><dc:date>2022-06-24T17:18:16.764582540</dc:date><meta:editing-duration>PT11M4S</meta:editing-duration><meta:editing-cycles>2</meta:editing-cycles><meta:generator>LibreOfficeDev/7.5.0.0.alpha0$Linux_X86_64 LibreOffice_project/d25a8aa5225fce111a477486d5664e80977f0dbe</meta:generator><meta:document-statistic meta:table-count="2" meta:cell-count="63" meta:object-count="0"/></office:meta> + <office:settings> + <config:config-item-set config:name="ooo:view-settings"> + <config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item> + <config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item> + <config:config-item config:name="VisibleAreaWidth" config:type="int">23857</config:config-item> + <config:config-item config:name="VisibleAreaHeight" config:type="int">4064</config:config-item> + <config:config-item-map-indexed config:name="Views"> + <config:config-item-map-entry> + <config:config-item config:name="ViewId" config:type="string">view1</config:config-item> + <config:config-item-map-named config:name="Tables"> + <config:config-item-map-entry config:name="Sheet1"> + <config:config-item config:name="CursorPositionX" config:type="int">0</config:config-item> + <config:config-item config:name="CursorPositionY" config:type="int">9</config:config-item> + <config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item> + <config:config-item config:name="PositionLeft" config:type="int">0</config:config-item> + <config:config-item config:name="PositionRight" config:type="int">0</config:config-item> + <config:config-item config:name="PositionTop" config:type="int">0</config:config-item> + <config:config-item config:name="PositionBottom" config:type="int">0</config:config-item> + <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> + <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item> + <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item> + <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item> + <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> + </config:config-item-map-entry> + <config:config-item-map-entry config:name="Sheet2"> + <config:config-item config:name="CursorPositionX" config:type="int">3</config:config-item> + <config:config-item config:name="CursorPositionY" config:type="int">11</config:config-item> + <config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item> + <config:config-item config:name="PositionLeft" config:type="int">0</config:config-item> + <config:config-item config:name="PositionRight" config:type="int">0</config:config-item> + <config:config-item config:name="PositionTop" config:type="int">0</config:config-item> + <config:config-item config:name="PositionBottom" config:type="int">0</config:config-item> + <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> + <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item> + <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item> + <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item> + <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> + </config:config-item-map-entry> + </config:config-item-map-named> + <config:config-item config:name="ActiveTable" config:type="string">Sheet1</config:config-item> + <config:config-item config:name="HorizontalScrollbarWidth" config:type="int">1860</config:config-item> + <config:config-item config:name="ZoomType" config:type="short">0</config:config-item> + <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item> + <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item> + <config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item> + <config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item> + <config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item> + <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item> + <config:config-item config:name="GridColor" config:type="int">12632256</config:config-item> + <config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item> + <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item> + <config:config-item config:name="FormulaBarHeight" config:type="short">1</config:config-item> + <config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item> + <config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item> + <config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item> + <config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item> + <config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item> + <config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item> + <config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item> + <config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item> + <config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item> + <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item> + </config:config-item-map-entry> + </config:config-item-map-indexed> + </config:config-item-set> + <config:config-item-set config:name="ooo:configuration-settings"> + <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item> + <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item> + <config:config-item config:name="AutoCalculate" 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="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item> + <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item> + <config:config-item config:name="GridColor" config:type="int">12632256</config:config-item> + <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item> + <config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item> + <config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item> + <config:config-item config:name="IsDocumentShared" 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="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item> + <config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item> + <config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item> + <config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item> + <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrinterName" config:type="string">CUPS-PDF</config:config-item> + <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item> + <config:config-item config:name="PrinterSetup" config:type="base64Binary">kQH+/0NVUFMtUERGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpDVVBTLVBERgAAAAAAAAAAAAAAAAAAAAAAAAAWAAMArgAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9Q1VQUy1QREYKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5hZGp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXh0RGF0YQpQYWdlU2l6ZTpBNAAAEgBDT01QQVRfRFVQTEVYX01PREUTAER1cGxleE1vZGU6OlVua25vd24=</config:config-item> + <config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item> + <config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item> + <config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item> + <config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item> + <config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item> + <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item> + <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item> + <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item> + <config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item> + <config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item> + <config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item> + <config:config-item config:name="SyntaxStringRef" config:type="short">7</config:config-item> + <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item> + <config:config-item-map-named config:name="ScriptConfiguration"> + <config:config-item-map-entry config:name="Sheet1"> + <config:config-item config:name="CodeName" config:type="string">Sheet1</config:config-item> + </config:config-item-map-entry> + <config:config-item-map-entry config:name="Sheet2"> + <config:config-item config:name="CodeName" config:type="string">Sheet2</config:config-item> + </config:config-item-map-entry> + </config:config-item-map-named> + </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-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Droid Sans Devanagari" svg:font-family="'Droid Sans Devanagari'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Droid Sans Devanagari1" svg:font-family="'Droid Sans Devanagari'" style:font-family-generic="swiss"/> + <style:font-face style:name="Droid Sans Fallback" svg:font-family="'Droid Sans Fallback'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:default-style style:family="table-cell"> + <style:paragraph-properties style:tab-stop-distance="0.5in"/> + <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="Arial" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/> + </style:default-style> + <number:number-style style:name="N0"> + <number:number number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N122P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N122"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N122P0"/> + </number:currency-style> + <number:currency-style style:name="N417P0" style:volatile="true"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N417"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N417P0"/> + </number:currency-style> + <number:number-style style:name="N413P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N413"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N413P0"/> + </number:number-style> + <number:percentage-style style:name="N411"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N406P0" style:volatile="true"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N406"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N406P0"/> + </number:currency-style> + <number:currency-style style:name="N404P0" style:volatile="true"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N404"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N404P0"/> + </number:currency-style> + <number:number-style style:name="N402P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N402P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N402P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N402"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N402P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N402P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N402P2"/> + </number:text-style> + <number:currency-style style:name="N391P0" style:volatile="true"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N391"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N391P0"/> + </number:currency-style> + <number:number-style style:name="N389P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N389"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N389P0"/> + </number:number-style> + <number:currency-style style:name="N384P0" style:volatile="true"> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N384"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N384P0"/> + </number:currency-style> + <number:number-style style:name="N382P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N382P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N382P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N382"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N382P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N382P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N382P2"/> + </number:text-style> + <number:number-style style:name="N379P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N379P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N379P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N379"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N379P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N379P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N379P2"/> + </number:text-style> + <number:number-style style:name="N367"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N365P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N365P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N365P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N365"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N365P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N365P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N365P2"/> + </number:text-style> + <number:currency-style style:name="N359P0" style:volatile="true"> + <number:currency-symbol number:language="ja" number:country="JP">¥</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N359"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="ja" number:country="JP">¥</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N359P0"/> + </number:currency-style> + <number:percentage-style style:name="N357P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N357"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N357P0"/> + </number:percentage-style> + <number:number-style style:name="N356P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N356P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N356P2" style:volatile="true"> + <number:text> - € </number:text> + </number:number-style> + <number:text-style style:name="N356"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N356P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N356P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N356P2"/> + </number:text-style> + <number:number-style style:name="N350P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N350"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N350P0"/> + </number:number-style> + <number:percentage-style style:name="N349P0" style:volatile="true"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N349"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/> + <number:text>%</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N349P0"/> + </number:percentage-style> + <number:number-style style:name="N345P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N345P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N345P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N345"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N345P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N345P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N345P2"/> + </number:text-style> + <number:percentage-style style:name="N329"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N325P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N325"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N325P0"/> + </number:number-style> + <number:number-style style:name="N324P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N324"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N324P0"/> + </number:number-style> + <number:currency-style style:name="N322P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N322"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N322P0"/> + </number:currency-style> + <number:percentage-style style:name="N320"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N315P0" style:volatile="true"> + <number:text> £</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N315P1" style:volatile="true"> + <number:text>-£</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N315P2" style:volatile="true"> + <number:text> £</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N315"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N315P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N315P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N315P2"/> + </number:text-style> + <number:currency-style style:name="N311P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N311"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N311P0"/> + </number:currency-style> + <number:number-style style:name="N309P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N309"> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N309P0"/> + </number:number-style> + <number:currency-style style:name="N308P0" style:volatile="true"> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N308"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N308P0"/> + </number:currency-style> + <number:text-style style:name="N306"> + <number:text-content/> + <number:text> - Result=0 - No Errordetection</number:text> + </number:text-style> + <number:number-style style:name="N305P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N305P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N305P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- Kč </number:text> + </number:number-style> + <number:text-style style:name="N305"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N305P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N305P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N305P2"/> + </number:text-style> + <number:number-style style:name="N301P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N301P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N301P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N301"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N301P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N301P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N301P2"/> + </number:text-style> + <number:date-style style:name="N297"> + <number:day/> + <number:text>/</number:text> + <number:month/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N296P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N296P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N296P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- DM </number:text> + </number:number-style> + <number:text-style style:name="N296"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N296P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N296P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N296P2"/> + </number:text-style> + <number:number-style style:name="N292P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N292"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N292P0"/> + </number:number-style> + <number:currency-style style:name="N291P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N291"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N291P0"/> + </number:currency-style> + <number:currency-style style:name="N289P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N289"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N289P0"/> + </number:currency-style> + <number:date-style style:name="N287"> + <number:day-of-week number:style="long"/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:currency-style style:name="N279P0" style:volatile="true"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N279"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N279P0"/> + </number:currency-style> + <number:number-style style:name="N277P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N277P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N277P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N277"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N277P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N277P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N277P2"/> + </number:text-style> + <number:number-style style:name="N269P0" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N269P1" style:volatile="true"> + <number:text>Yes</number:text> + </number:number-style> + <number:number-style style:name="N269"> + <number:text>No</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N269P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N269P1"/> + </number:number-style> + <number:number-style style:name="N267P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N267"> + <style:text-properties fo:color="#000000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N267P0"/> + </number:number-style> + <number:currency-style style:name="N261P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N261"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N261P0"/> + </number:currency-style> + <number:currency-style style:name="N259P0" style:volatile="true"> + <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N259"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3"> + <number:embedded-text number:position="5"> </number:embedded-text> + </number:number> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N259P0"/> + </number:currency-style> + <number:number-style style:name="N257P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N257P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N257P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N257"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N257P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N257P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N257P2"/> + </number:text-style> + <number:date-style style:name="N256"> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N255P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N255"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N255P0"/> + </number:number-style> + <number:number-style style:name="N238"> + <number:scientific-number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N226"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N225P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N225"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N225P0"/> + </number:number-style> + <number:number-style style:name="N224P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N224"> + <number:text>\-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N224P0"/> + </number:number-style> + <number:number-style style:name="N419"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N222"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N415"> + <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N218"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N414P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N414"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N414P0"/> + </number:number-style> + <number:number-style style:name="N217P0" style:volatile="true"> + <number:text>\</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N217"> + <style:text-properties fo:color="#ff0000"/> + <number:text>\-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N217P0"/> + </number:number-style> + <number:number-style style:name="N412"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N215P0" style:volatile="true"> + <number:text/> + </number:number-style> + <number:currency-style style:name="N215"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N215P0"/> + </number:currency-style> + <number:currency-style style:name="N410P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N410"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N410P0"/> + </number:currency-style> + <number:date-style style:name="N213"> + <number:day-of-week/> + <number:text> </number:text> + <number:day number:style="long"/> + <number:text>/</number:text> + <number:month number:style="long"/> + <number:text>/</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N409P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N409P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N409P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N409"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N409P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N409P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N409P2"/> + </number:text-style> + <number:number-style style:name="N212P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N212"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N212P0"/> + </number:number-style> + <number:number-style style:name="N210P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N210"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N210P0"/> + </number:number-style> + <number:number-style style:name="N208P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N208P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč </number:text> + </number:number-style> + <number:number-style style:name="N208P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> Kč </number:text> + </number:number-style> + <number:text-style style:name="N208"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N208P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N208P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N208P2"/> + </number:text-style> + <number:percentage-style style:name="N204"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N400P0" style:volatile="true"> + <number:text> £</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N400P1" style:volatile="true"> + <number:text>-£</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N400P2" style:volatile="true"> + <number:text> £</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N400"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N400P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N400P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N400P2"/> + </number:text-style> + <number:number-style style:name="N203P0" style:volatile="true"> + <number:text>£</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N203"> + <number:text>-£</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N203P0"/> + </number:number-style> + <number:number-style style:name="N202P0" style:volatile="true"> + <number:text>£</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N202"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-£</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N202P0"/> + </number:number-style> + <number:percentage-style style:name="N200"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N396P0" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N396P1" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N396P2" style:volatile="true"> + <number:text> \</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N396"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N396P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N396P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N396P2"/> + </number:text-style> + <number:percentage-style style:name="N199"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:percentage-style style:name="N392"> + <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N195P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N195"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N195P0"/> + </number:currency-style> + <number:number-style style:name="N285P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N285P1" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N285P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N285"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N285P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N285P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N285P2"/> + </number:text-style> + <number:number-style style:name="N188P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N188"> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N188P0"/> + </number:number-style> + <number:number-style style:name="N281P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N281"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N281P0"/> + </number:number-style> + <number:currency-style style:name="N381P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N381"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N381P0"/> + </number:currency-style> + <number:number-style style:name="N184"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:percentage-style style:name="N179"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N273P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N273"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N273P0"/> + </number:currency-style> + <number:percentage-style style:name="N176"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N372"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N175"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N271P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N271"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N271P0"/> + </number:currency-style> + <number:number-style style:name="N371P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N371P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N371P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N371"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N371P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N371P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N371P2"/> + </number:text-style> + <number:percentage-style style:name="N174"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N264P0" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N264P1" style:volatile="true"> + <number:text>True</number:text> + </number:number-style> + <number:number-style style:name="N264"> + <number:text>False</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N264P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N264P1"/> + </number:number-style> + <number:number-style style:name="N167"> + <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N363P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N363P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N363P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N363"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N363P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N363P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N363P2"/> + </number:text-style> + <number:percentage-style style:name="N166"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:date-style style:name="N262"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:number-style style:name="N165P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N165P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N165P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N165"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N165P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N165P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N165P2"/> + </number:text-style> + <number:number-style style:name="N161P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N161P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N161P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N161"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N161P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N161P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N161P2"/> + </number:text-style> + <number:number-style style:name="N252P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N252P1" style:volatile="true"> + <number:text>-</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM </number:text> + </number:number-style> + <number:number-style style:name="N252P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> DM </number:text> + </number:number-style> + <number:text-style style:name="N252"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N252P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N252P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N252P2"/> + </number:text-style> + <number:currency-style style:name="N352P0" style:volatile="true"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N352"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N352P0"/> + </number:currency-style> + <number:number-style style:name="N155P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N155P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N155P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N155"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N155P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N155P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N155P2"/> + </number:text-style> + <number:number-style style:name="N198P0" style:volatile="true"> + <number:text>£</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N198"> + <number:text>-£</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N198P0"/> + </number:number-style> + <number:currency-style style:name="N248P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N248"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N248P0"/> + </number:currency-style> + <number:time-style style:name="N151"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N197P0" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N197P1" style:volatile="true"> + <number:text>On</number:text> + </number:number-style> + <number:number-style style:name="N197"> + <number:text>Off</number:text> + <style:map style:condition="value()>0" style:apply-style-name="N197P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N197P1"/> + </number:number-style> + <number:currency-style style:name="N347P0" style:volatile="true"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N347"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N347P0"/> + </number:currency-style> + <number:time-style style:name="N150"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N290P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N290"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N290P0"/> + </number:number-style> + <number:number-style style:name="N193P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N193"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N193P0"/> + </number:number-style> + <number:number-style style:name="N146"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N388P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N388"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N388P0"/> + </number:currency-style> + <number:number-style style:name="N191P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N191"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N191P0"/> + </number:number-style> + <number:number-style style:name="N341P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N341P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N341P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N341"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N341P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N341P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N341P2"/> + </number:text-style> + <number:number-style style:name="N144"> + <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N143"> + <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N286"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N386P0" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N386P1" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N386P2" style:volatile="true"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N386"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N386P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N386P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N386P2"/> + </number:text-style> + <number:number-style style:name="N189"> + <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/> + </number:number-style> + <number:number-style style:name="N142P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N142"> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N142P0"/> + </number:number-style> + <number:text-style style:name="N237"> + <number:text>Ouch! - </number:text> + <number:text-content/> + <number:text> - Error detected!</number:text> + </number:text-style> + <number:currency-style style:name="N337P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N337"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N337P0"/> + </number:currency-style> + <number:number-style style:name="N140P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N140"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N140P0"/> + </number:number-style> + <number:number-style style:name="N186P0" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N186P1" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N186P2" style:volatile="true"> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N186"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N186P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N186P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N186P2"/> + </number:text-style> + <number:number-style style:name="N236P0" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N236P1" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N236P2" style:volatile="true"> + <number:text> $</number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N236"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N236P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N236P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N236P2"/> + </number:text-style> + <number:number-style style:name="N139"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N335P0" style:volatile="true"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N335"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N335P0"/> + </number:currency-style> + <number:currency-style style:name="N138P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="IE">€</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N138"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="IE">€</number:currency-symbol> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N138P0"/> + </number:currency-style> + <number:number-style style:name="N280"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:time-style style:name="N380" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:number-style style:name="N183P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N183P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N183P2" style:volatile="true"> + <number:text> $- </number:text> + </number:number-style> + <number:text-style style:name="N183"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N183P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N183P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N183P2"/> + </number:text-style> + <number:number-style style:name="N333P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N333"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N333P0"/> + </number:number-style> + <number:number-style style:name="N136P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N136"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N136P0"/> + </number:number-style> + <number:currency-style style:name="N254P0" style:volatile="true"> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N254"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N254P0"/> + </number:currency-style> + <number:number-style style:name="N157P0" style:volatile="true"> + <number:text>£</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N157"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-£</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N157P0"/> + </number:number-style> + <number:percentage-style style:name="N331"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N134"> + <number:scientific-number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N374P0" style:volatile="true"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N374"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N374P0"/> + </number:currency-style> + <number:percentage-style style:name="N177"> + <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N327P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N327"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N327P0"/> + </number:number-style> + <number:number-style style:name="N130P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N130P1" style:volatile="true"> + <number:text> (</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N130P2" style:volatile="true"> + <number:text> - </number:text> + </number:number-style> + <number:text-style style:name="N130"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N130P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N130P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N130P2"/> + </number:text-style> + <number:number-style style:name="N375P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N375"> + <style:text-properties fo:color="#ff0000"/> + <number:text>($</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N375P0"/> + </number:number-style> + <number:percentage-style style:name="N178"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N228P0" style:volatile="true"> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N228"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol>€</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N228P0"/> + </number:currency-style> + <number:number-style style:name="N328"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N131"> + <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N246P0" style:volatile="true"> + <number:text>$</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N246"> + <number:text>($</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N246P0"/> + </number:number-style> + <number:currency-style style:name="N149P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N149"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N149P0"/> + </number:currency-style> + <number:number-style style:name="N270P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N270"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N270P0"/> + </number:number-style> + <number:currency-style style:name="N173P0" style:volatile="true"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N173"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N173P0"/> + </number:currency-style> + <number:currency-style style:name="N126P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N126"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N126P0"/> + </number:currency-style> + <number:number-style style:name="N232P0" style:volatile="true"> + <number:text> $</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N232P1" style:volatile="true"> + <number:text> $(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N232P2" style:volatile="true"> + <number:text> $-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N232"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N232P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N232P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N232P2"/> + </number:text-style> + <number:number-style style:name="N332"> + <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N135"> + <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N244P0" style:volatile="true"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N244"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N244P0"/> + </number:currency-style> + <number:number-style style:name="N147"> + <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N171P0" style:volatile="true"> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N171"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N171P0"/> + </number:currency-style> + <number:number-style style:name="N418"> + <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N221P0" style:volatile="true"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + </number:number-style> + <number:number-style style:name="N221"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> DM</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N221P0"/> + </number:number-style> + <number:currency-style style:name="N124P0" style:volatile="true"> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N124"> + <number:text>-</number:text> + <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N124P0"/> + </number:currency-style> + <number:number-style style:name="N330P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + </number:number-style> + <number:number-style style:name="N330"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> Kč</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N330P0"/> + </number:number-style> + <number:number-style style:name="N133P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N133"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N133P0"/> + </number:number-style> + <number:number-style style:name="N242P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N242P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> € </number:text> + </number:number-style> + <number:number-style style:name="N242P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> € </number:text> + </number:number-style> + <number:text-style style:name="N242"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N242P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N242P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N242P2"/> + </number:text-style> + <number:number-style style:name="N145"> + <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/> + </number:number-style> + <number:currency-style style:name="N266P0" style:volatile="true"> + <number:currency-symbol number:language="pt" number:country="BR">R$</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + </number:currency-style> + <number:currency-style style:name="N266"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:currency-symbol number:language="pt" number:country="BR">R$</number:currency-symbol> + <number:text> </number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <style:map style:condition="value()>=0" style:apply-style-name="N266P0"/> + </number:currency-style> + <number:percentage-style style:name="N366"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text>%</number:text> + </number:percentage-style> + <number:currency-style style:name="N169P0" style:volatile="true"> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + </number:currency-style> + <number:currency-style style:name="N169"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol> + <style:map style:condition="value()>=0" style:apply-style-name="N169P0"/> + </number:currency-style> + <number:number-style style:name="N219"> + <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/> + </number:number-style> + <number:number-style style:name="N319P0" style:volatile="true"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N319P1" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N319P2" style:volatile="true"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N319"> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N319P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N319P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N319P2"/> + </number:text-style> + <number:date-style style:name="N10163" number:language="en" number:country="US"> + <number:day number:style="long"/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:time-style style:name="N10162" number:language="en" number:country="US" number:truncate-on-overflow="false"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10161" number:language="en" number:country="US"> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long" number:decimal-places="1"/> + </number:time-style> + <number:number-style style:name="N10160P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10160" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10160P0"/> + </number:number-style> + <number:number-style style:name="N10159" number:language="en" number:country="US"> + <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/> + </number:number-style> + <number:percentage-style style:name="N10158" number:language="en" number:country="US"> + <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:number-style style:name="N10157" number:language="en" number:country="US"> + <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/> + </number:number-style> + <number:number-style style:name="N10156" number:language="en" number:country="US" number:title="User-defined"> + <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/> + </number:number-style> + <number:currency-style style:name="N10155P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10155P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10155P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:currency-style> + <number:text-style style:name="N10155" number:language="en" number:country="US"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10155P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10155P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10155P2"/> + </number:text-style> + <number:number-style style:name="N10151P0" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10151P1" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10151P2" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/> + <number:text> </number:text> + </number:number-style> + <number:text-style style:name="N10151" number:language="en" number:country="US"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10151P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10151P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10151P2"/> + </number:text-style> + <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10147P1" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:currency-style> + <number:currency-style style:name="N10147P2" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:currency-style> + <number:text-style style:name="N10147" number:language="en" number:country="US"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10147P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10147P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10147P2"/> + </number:text-style> + <number:number-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10143P1" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + </number:number-style> + <number:number-style style:name="N10143P2" style:volatile="true" number:language="en" number:country="US"> + <number:text> </number:text> + <number:fill-character> </number:fill-character> + <number:text>- </number:text> + </number:number-style> + <number:text-style style:name="N10143" number:language="en" number:country="US"> + <number:text> </number:text> + <number:text-content/> + <number:text> </number:text> + <style:map style:condition="value()>0" style:apply-style-name="N10143P0"/> + <style:map style:condition="value()<0" style:apply-style-name="N10143P1"/> + <style:map style:condition="value()=0" style:apply-style-name="N10143P2"/> + </number:text-style> + <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10139" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10139P0"/> + </number:number-style> + <number:number-style style:name="N10137P0" style:volatile="true" number:language="en" number:country="US"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N10137" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10137P0"/> + </number:number-style> + <number:date-style style:name="N10135" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + <number:text> </number:text> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:date-style> + <number:time-style style:name="N10134" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + </number:time-style> + <number:time-style style:name="N10133" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + </number:time-style> + <number:time-style style:name="N10132" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N10131" number:language="en" number:country="US"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:date-style style:name="N10130" number:language="en" number:country="US"> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10129" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N10128" number:language="en" number:country="US"> + <number:day/> + <number:text>-</number:text> + <number:month number:textual="true"/> + <number:text>-</number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N10127" number:language="en" number:country="US"> + <number:month/> + <number:text>/</number:text> + <number:day/> + <number:text>/</number:text> + <number:year number:style="long"/> + </number:date-style> + <number:currency-style style:name="N10126P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10126" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10126P0"/> + </number:currency-style> + <number:currency-style style:name="N10125P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10125" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10125P0"/> + </number:currency-style> + <number:currency-style style:name="N10123P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10123" number:language="en" number:country="US"> + <style:text-properties fo:color="#ff0000"/> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10123P0"/> + </number:currency-style> + <number:currency-style style:name="N10122P0" style:volatile="true" number:language="en" number:country="US"> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:currency-style> + <number:currency-style style:name="N10122" number:language="en" number:country="US"> + <number:text>(</number:text> + <number:currency-symbol/> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text>)</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N10122P0"/> + </number:currency-style> + <number:date-style style:name="N20123" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:date-style style:name="N20122" number:language="de" number:country="DE"> + <number:day number:style="long"/> + <number:text>. </number:text> + <number:month number:textual="true"/> + </number:date-style> + <number:date-style style:name="N20121" number:language="de" number:country="DE"> + <number:month number:textual="true"/> + <number:text> </number:text> + <number:year/> + </number:date-style> + <number:time-style style:name="N20120" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:time-style style:name="N20119" number:language="de" number:country="DE"> + <number:hours/> + <number:text>:</number:text> + <number:minutes number:style="long"/> + <number:text>:</number:text> + <number:seconds number:style="long"/> + <number:text> </number:text> + <number:am-pm/> + </number:time-style> + <number:number-style style:name="N20118P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20118" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20118P0"/> + </number:number-style> + <number:number-style style:name="N20117P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20117" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20117P0"/> + </number:number-style> + <number:number-style style:name="N20115P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20115" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20115P0"/> + </number:number-style> + <number:number-style style:name="N20114P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + </number:number-style> + <number:number-style style:name="N20114" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> </number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20114P0"/> + </number:number-style> + <number:number-style style:name="N20112P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20112" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20112P0"/> + </number:number-style> + <number:number-style style:name="N20111P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20111" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20111P0"/> + </number:number-style> + <number:number-style style:name="N20109P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20109" number:language="de" number:country="DE"> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20109P0"/> + </number:number-style> + <number:number-style style:name="N20108P0" style:volatile="true" number:language="de" number:country="DE"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + </number:number-style> + <number:number-style style:name="N20108" number:language="de" number:country="DE"> + <style:text-properties fo:color="#ff0000"/> + <number:text>-</number:text> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/> + <number:text> €</number:text> + <style:map style:condition="value()>=0" style:apply-style-name="N20108P0"/> + </number:number-style> + <style:style style:name="Default" style:family="table-cell"> + <style:text-properties style:font-name-asian="Droid Sans Fallback" style:font-family-asian="'Droid Sans Fallback'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="system" style:font-pitch-complex="variable"/> + </style:style> + <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center"/> + <style:text-properties fo:font-size="16pt" fo:font-style="italic" fo:font-weight="bold"/> + </style:style> + <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading"> + <style:table-cell-properties style:rotation-angle="90"/> + </style:style> + <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading"> + <style:text-properties fo:color="#000000" fo:font-size="12pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text"> + <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/> + <style:text-properties fo:color="#333333" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#808080" fo:font-size="10pt" fo:font-style="italic" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text"> + <style:text-properties fo:color="#0000ee" fo:font-size="10pt" fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/> + <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ccffcc"/> + <style:text-properties fo:color="#006600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffffcc"/> + <style:text-properties fo:color="#996600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#ffcccc"/> + <style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status"> + <style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status"> + <style:table-cell-properties fo:background-color="#cc0000"/> + <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/> + </style:style> + <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:color="#000000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/> + </style:style> + <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#000000"/> + <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#808080"/> + <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/> + </style:style> + <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent"> + <style:table-cell-properties fo:background-color="#dddddd"/> + </style:style> + <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold"/> + </style:style> + <style:style style:name="Result2" style:family="table-cell" style:parent-style-name="Result" style:data-style-name="N122"/> + <style:style style:name="Untitled1" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#ff3333"/> + </style:style> + <style:style style:name="Untitled2" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:background-color="#99ff66"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_45" style:display-name="ConditionalStyle_45" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_44" style:display-name="ConditionalStyle_44" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_43" style:display-name="ConditionalStyle_43" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_42" style:display-name="ConditionalStyle_42" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_41" style:display-name="ConditionalStyle_41" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_40" style:display-name="ConditionalStyle_40" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_39" style:display-name="ConditionalStyle_39" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_38" style:display-name="ConditionalStyle_38" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_37" style:display-name="ConditionalStyle_37" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_36" style:display-name="ConditionalStyle_36" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_35" style:display-name="ConditionalStyle_35" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_34" style:display-name="ConditionalStyle_34" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_33" style:display-name="ConditionalStyle_33" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_32" style:display-name="ConditionalStyle_32" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_31" style:display-name="ConditionalStyle_31" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_30" style:display-name="ConditionalStyle_30" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_29" style:display-name="ConditionalStyle_29" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_28" style:display-name="ConditionalStyle_28" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_27" style:display-name="ConditionalStyle_27" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_26" style:display-name="ConditionalStyle_26" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_25" style:display-name="ConditionalStyle_25" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_24" style:display-name="ConditionalStyle_24" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_23" style:display-name="ConditionalStyle_23" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_22" style:display-name="ConditionalStyle_22" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_21" style:display-name="ConditionalStyle_21" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_20" style:display-name="ConditionalStyle_20" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_19" style:display-name="ConditionalStyle_19" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_15" style:display-name="ConditionalStyle_15" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_14" style:display-name="ConditionalStyle_14" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_13" style:display-name="ConditionalStyle_13" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_3" style:display-name="ConditionalStyle_3" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_2" style:display-name="ConditionalStyle_2" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + <style:style style:name="ConditionalStyle_5f_1" style:display-name="ConditionalStyle_1" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="'Droid Sans Devanagari'" style:font-family-generic-complex="swiss"/> + </style:style> + </office:styles> + <office:automatic-styles> + <style:style style:name="co1" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.5791in"/> + </style:style> + <style:style style:name="co2" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="4.7839in"/> + </style:style> + <style:style style:name="co4" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.911in"/> + </style:style> + <style:style style:name="co5" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.7327in"/> + </style:style> + <style:style style:name="co6" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.0075in"/> + </style:style> + <style:style style:name="co7" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.4783in"/> + </style:style> + <style:style style:name="co8" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="2.0236in"/> + </style:style> + <style:style style:name="co9" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.2283in"/> + </style:style> + <style:style style:name="co10" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.6646in"/> + </style:style> + <style:style style:name="co3" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.889in"/> + </style:style> + <style:style style:name="co11" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="1.2598in"/> + </style:style> + <style:style style:name="co12" style:family="table-column"> + <style:table-column-properties fo:break-before="auto" style:column-width="0.5339in"/> + </style:style> + <style:style style:name="ro1" style:family="table-row"> + <style:table-row-properties style:row-height="0.3398in" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro2" style:family="table-row"> + <style:table-row-properties style:row-height="0.178in" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro3" style:family="table-row"> + <style:table-row-properties style:row-height="0.2409in" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ro4" style:family="table-row"> + <style:table-row-properties style:row-height="0.2083in" fo:break-before="auto" style:use-optimal-row-height="true"/> + </style:style> + <style:style style:name="ta1" style:family="table" style:master-page-name="Default"> + <style:table-properties table:display="true" style:writing-mode="lr-tb"/> + </style:style> + <number:percentage-style style:name="N11"> + <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/> + <number:text>%</number:text> + </number:percentage-style> + <number:boolean-style style:name="N99"> + <number:boolean/> + </number:boolean-style> + <style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="start" fo:margin-left="0in"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce3" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-size="14pt" 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="ce4" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + </style:style> + <style:style style:name="ce6" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/> + </style:style> + <style:style style:name="ce8" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/> + </style:style> + <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.C2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet2.C2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet2.C2"/> + </style:style> + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/> + <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N320"> + <style:table-cell-properties fo:background-color="transparent"/> + </style:style> + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11"/> + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border="none"/> + </style:style> + <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce32" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/> + <style:paragraph-properties fo:text-align="center"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="start" fo:margin-left="0in"/> + <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce40" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-size="14pt" 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="ce41" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce42" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + </style:style> + <style:style style:name="ce43" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/> + </style:style> + <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/> + </style:style> + <style:style style:name="ce45" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce46" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/> + <style:style style:name="ce47" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/> + <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/> + <style:map style:condition="cell-content()=""" style:apply-style-name="Default" style:base-cell-address="Sheet2.C2"/> + <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet2.C2"/> + <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet2.C2"/> + </style:style> + <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N320"> + <style:table-cell-properties fo:background-color="transparent"/> + </style:style> + <style:style style:name="ce49" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11"/> + <style:style style:name="ce50" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:border="none"/> + </style:style> + <style:style style:name="ce51" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce52" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce53" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce54" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties fo:wrap-option="wrap"/> + <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/> + </style:style> + <style:style style:name="ce55" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/> + </style:style> + <style:style style:name="ce56" style:family="table-cell" style:parent-style-name="Default"> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:style style:name="ce57" style:family="table-cell" style:parent-style-name="Default"> + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/> + <style:paragraph-properties fo:text-align="center"/> + <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties style:writing-mode="lr-tb"/> + <style:header-style> + <style:header-footer-properties fo:min-height="0.2953in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.0984in"/> + </style:header-style> + <style:footer-style> + <style:header-footer-properties fo:min-height="0.2953in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.0984in"/> + </style:footer-style> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Default" style:page-layout-name="pm1"> + <style:header> + <text:p><text:sheet-name>???</text:sheet-name></text:p> + </style:header> + <style:header-left style:display="false"/> + <style:header-first style:display="false"/> + <style:footer> + <text:p>Page <text:page-number>1</text:page-number></text:p> + </style:footer> + <style:footer-left style:display="false"/> + <style:footer-first style:display="false"/> + </style:master-page> + </office:master-styles> + <office:body> + <office:spreadsheet> + <table:calculation-settings table:search-criteria-must-apply-to-whole-cell="false" table:automatic-find-labels="false"/> + <table:table table:name="Sheet1" table:style-name="ta1"> + <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co1" table:default-cell-style-name="ce42"/> + <table:table-column table:style-name="co2" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro1"> + <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string"> + <text:p>COUNTIF Function</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro3"> + <table:table-cell table:style-name="ce40" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce43" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="3"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro4"> + <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string"> + <text:p>Sheet</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string"> + <text:p>Result</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string"> + <text:p>Description</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce43" table:formula="of:=AND([Sheet2.C2:.C100])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>Simple COUNTIF formulas with local references and values</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell/> + <table:table-cell table:style-name="ce44"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>when the document option of “search on whole cell” is turned off.</text:p> + </table:table-cell> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="29"> + <table:table-cell/> + <table:table-cell table:style-name="ce44"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2" table:number-rows-repeated="1048537"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:number-columns-repeated="3"/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet1.B8:Sheet1.B38 Sheet1.B3:Sheet1.B3"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet1.B3"/> + <calcext:condition calcext:apply-style-name="Untitled1" calcext:value="=0" calcext:base-cell-address="Sheet1.B3"/> + <calcext:condition calcext:apply-style-name="Untitled2" calcext:value="=1" calcext:base-cell-address="Sheet1.B3"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:table table:name="Sheet2" table:style-name="ta1" table:print="false"> + <table:table-column table:style-name="co4" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co6" table:default-cell-style-name="ce47"/> + <table:table-column table:style-name="co7" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co8" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co9" table:number-columns-repeated="3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co10" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="ce54"/> + <table:table-column table:style-name="co11" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co12" table:number-columns-repeated="6" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:number-columns-repeated="9" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="ce42"/> + <table:table-column table:style-name="co3" table:number-columns-repeated="2" table:default-cell-style-name="Default"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="ce42"/> + <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string"> + <text:p>Function</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string"> + <text:p>Expected</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string"> + <text:p>Correct</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string"> + <text:p>FunctionString</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string"> + <text:p>Comment</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="5"/> + <table:table-cell table:style-name="ce53"/> + <table:table-cell table:style-name="ce55"/> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce56"/> + <table:table-cell table:number-columns-repeated="12"/> + <table:table-cell table:style-name="ce57" table:number-columns-spanned="2" table:number-rows-spanned="1"/> + <table:covered-table-cell/> + <table:table-cell/> + <table:table-cell table:style-name="ce45" table:number-columns-repeated="2"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I2:.I4];"one")" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A2]=[.B2]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A2])" office:value-type="string" office:string-value="=COUNTIF(I2:I4,"one")" calcext:value-type="string"> + <text:p>=COUNTIF(I2:I4,"one")</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>one</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="24"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I2:.I4];"two")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A3]=[.B3]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="=COUNTIF(I2:I4,"two")" calcext:value-type="string"> + <text:p>=COUNTIF(I2:I4,"two")</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>two</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="24"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I3:.I5];"tones")" office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p>0</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float"> + <text:p>0</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A4]=[.B4]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="=COUNTIF(I3:I5,"tones")" calcext:value-type="string"> + <text:p>=COUNTIF(I3:I5,"tones")</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="4"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>oneone</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>A2</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="23"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];">2")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A5]=[.B5]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,">2")" calcext:value-type="string"> + <text:p>=COUNTIF(J4:J7,">2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="3"/> + <table:table-cell table:style-name="ce51"/> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:style-name="ce53"/> + <table:table-cell table:number-columns-repeated="11"/> + <table:table-cell table:style-name="ce56" table:number-columns-repeated="6"/> + <table:table-cell table:number-columns-repeated="5"/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];"=2")" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A6]=[.B6]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A6])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,"=2")" calcext:value-type="string"> + <text:p>=COUNTIF(J4:J7,"=2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce49"/> + <table:table-cell table:style-name="ce52" office:value-type="float" office:value="5" calcext:value-type="float"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="18"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];"<2")" office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"> + <text:p>1</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A7]=[.B7]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,"<2")" calcext:value-type="string"> + <text:p>=COUNTIF(J4:J7,"<2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell/> + <table:table-cell table:style-name="ce48"/> + <table:table-cell/> + <table:table-cell table:style-name="ce52" office:value-type="string" calcext:value-type="string"> + <text:p>5</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="18"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:formula="of:=COUNTIF([.I6:.I9];">2")" office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"> + <text:p>2</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A8]=[.B8]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="=COUNTIF(I6:I9,">2")" calcext:value-type="string"> + <text:p>=COUNTIF(I6:I9,">2")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce50"/> + <table:table-cell office:value-type="float" office:value="55" calcext:value-type="float"> + <text:p>55</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="19"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <table:table-row table:style-name="ro2"> + <table:table-cell table:formula="of:=COUNTIF([.I6:.I9];"=5")" office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"> + <text:p>3</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=[.A9]=[.B9]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean"> + <text:p>TRUE</text:p> + </table:table-cell> + <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="=COUNTIF(I6:I9,"=5")" calcext:value-type="string"> + <text:p>=COUNTIF(I6:I9,"=5")</text:p> + </table:table-cell> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>mixed numeric and string</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce50"/> + <table:table-cell office:value-type="string" calcext:value-type="string"> + <text:p>55</text:p> + </table:table-cell> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="ce54"/> + <table:table-cell table:number-columns-repeated="16"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell table:number-columns-repeated="2"/> + <table:table-cell table:style-name="Default"/> + <table:table-cell/> + </table:table-row> + <calcext:conditional-formats> + <calcext:conditional-format calcext:target-range-address="Sheet2.C2:Sheet2.C9"> + <calcext:condition calcext:apply-style-name="Default" calcext:value="=""" calcext:base-cell-address="Sheet2.C2"/> + <calcext:condition calcext:apply-style-name="Untitled1" calcext:value="=0" calcext:base-cell-address="Sheet2.C2"/> + <calcext:condition calcext:apply-style-name="Untitled2" calcext:value="=1" calcext:base-cell-address="Sheet2.C2"/> + </calcext:conditional-format> + </calcext:conditional-formats> + </table:table> + <table:named-expressions/> + </office:spreadsheet> + </office:body> +</office:document>
\ No newline at end of file diff --git a/sc/source/core/data/queryevaluator.cxx b/sc/source/core/data/queryevaluator.cxx index 27968cbf22b3..b5ff8a354c84 100644 --- a/sc/source/core/data/queryevaluator.cxx +++ b/sc/source/core/data/queryevaluator.cxx @@ -35,9 +35,9 @@ #include <svl/zformat.hxx> #include <unotools/collatorwrapper.hxx> -bool ScQueryEvaluator::isPartialTextMatchOp(const ScQueryEntry& rEntry) +bool ScQueryEvaluator::isPartialTextMatchOp(ScQueryOp eOp) { - switch (rEntry.eOp) + switch (eOp) { // these operators can only be used with textural comparisons. case SC_CONTAINS: @@ -52,12 +52,12 @@ bool ScQueryEvaluator::isPartialTextMatchOp(const ScQueryEntry& rEntry) return false; } -bool ScQueryEvaluator::isTextMatchOp(const ScQueryEntry& rEntry) +bool ScQueryEvaluator::isTextMatchOp(ScQueryOp eOp) { - if (isPartialTextMatchOp(rEntry)) + if (isPartialTextMatchOp(eOp)) return true; - switch (rEntry.eOp) + switch (eOp) { // these operators can be used for either textural or value comparison. case SC_EQUAL: @@ -68,23 +68,23 @@ bool ScQueryEvaluator::isTextMatchOp(const ScQueryEntry& rEntry) return false; } -bool ScQueryEvaluator::isMatchWholeCellHelper(bool docMatchWholeCell, const ScQueryEntry& rEntry) +bool ScQueryEvaluator::isMatchWholeCellHelper(bool docMatchWholeCell, ScQueryOp eOp) { bool bMatchWholeCell = docMatchWholeCell; - if (isPartialTextMatchOp(rEntry)) + if (isPartialTextMatchOp(eOp)) // may have to do partial textural comparison. bMatchWholeCell = false; return bMatchWholeCell; } -bool ScQueryEvaluator::isMatchWholeCell(const ScQueryEntry& rEntry) const +bool ScQueryEvaluator::isMatchWholeCell(ScQueryOp eOp) const { - return isMatchWholeCellHelper(mbMatchWholeCell, rEntry); + return isMatchWholeCellHelper(mbMatchWholeCell, eOp); } -bool ScQueryEvaluator::isMatchWholeCell(const ScDocument& rDoc, const ScQueryEntry& rEntry) +bool ScQueryEvaluator::isMatchWholeCell(const ScDocument& rDoc, ScQueryOp eOp) { - return isMatchWholeCellHelper(rDoc.GetDocOptions().IsMatchWholeCell(), rEntry); + return isMatchWholeCellHelper(rDoc.GetDocOptions().IsMatchWholeCell(), eOp); } void ScQueryEvaluator::setupTransliteratorIfNeeded() @@ -133,7 +133,7 @@ bool ScQueryEvaluator::isRealWildOrRegExp(const ScQueryEntry& rEntry) const if (mrParam.eSearchType == utl::SearchParam::SearchType::Normal) return false; - return isTextMatchOp(rEntry); + return isTextMatchOp(rEntry.eOp); } bool ScQueryEvaluator::isTestWildOrRegExp(const ScQueryEntry& rEntry) const @@ -147,10 +147,10 @@ bool ScQueryEvaluator::isTestWildOrRegExp(const ScQueryEntry& rEntry) const return (rEntry.eOp == SC_LESS_EQUAL || rEntry.eOp == SC_GREATER_EQUAL); } -bool ScQueryEvaluator::isQueryByValue(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem, +bool ScQueryEvaluator::isQueryByValue(ScQueryOp eOp, ScQueryEntry::QueryType eType, const ScRefCellValue& rCell) { - if (rItem.meType == ScQueryEntry::ByString || isPartialTextMatchOp(rEntry)) + if (eType == ScQueryEntry::ByString || isPartialTextMatchOp(eOp)) return false; return isQueryByValueForCell(rCell); @@ -166,13 +166,13 @@ bool ScQueryEvaluator::isQueryByValueForCell(const ScRefCellValue& rCell) return rCell.hasNumeric(); } -bool ScQueryEvaluator::isQueryByString(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem, +bool ScQueryEvaluator::isQueryByString(ScQueryOp eOp, ScQueryEntry::QueryType eType, const ScRefCellValue& rCell) { - if (isTextMatchOp(rEntry)) + if (isTextMatchOp(eOp)) return true; - if (rItem.meType != ScQueryEntry::ByString) + if (eType != ScQueryEntry::ByString) return false; return rCell.hasString(); @@ -298,8 +298,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByValue(const ScRefCellValue& rCe return std::pair<bool, bool>(bOk, bTestEqual); } -OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow, - const ScQueryEntry& rEntry, +OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow, SCCOL nCol, const svl::SharedString** sharedString) { if (rCell.getType() == CELLTYPE_FORMULA @@ -326,10 +325,8 @@ OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow else { sal_uInt32 nFormat - = mpContext - ? mrTab.GetNumberFormat(*mpContext, ScAddress(static_cast<SCCOL>(rEntry.nField), - nRow, mrTab.GetTab())) - : mrTab.GetNumberFormat(static_cast<SCCOL>(rEntry.nField), nRow); + = mpContext ? mrTab.GetNumberFormat(*mpContext, ScAddress(nCol, nRow, mrTab.GetTab())) + : mrTab.GetNumberFormat(nCol, nRow); SvNumberFormatter* pFormatter = mpContext ? mpContext->GetFormatTable() : mrDoc.GetFormatTable(); return ScCellFormat::GetInputString(rCell, nFormat, *pFormatter, mrDoc, sharedString, true); @@ -346,7 +343,7 @@ bool ScQueryEvaluator::isFastCompareByString(const ScQueryEntry& rEntry) const const bool bTestWildOrRegExp = isTestWildOrRegExp(rEntry); // SC_EQUAL is part of isTextMatchOp(rEntry) return rEntry.eOp == SC_EQUAL && !bRealWildOrRegExp && !bTestWildOrRegExp - && isMatchWholeCell(rEntry); + && isMatchWholeCell(rEntry.eOp); } // The value is placed inside one parameter: [pValueSource1] or [pValueSource2] but never in both. @@ -363,7 +360,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByString(const ScQueryEntry& rEnt if (bFast) bMatchWholeCell = true; else - bMatchWholeCell = isMatchWholeCell(rEntry); + bMatchWholeCell = isMatchWholeCell(rEntry.eOp); const bool bRealWildOrRegExp = !bFast && isRealWildOrRegExp(rEntry); const bool bTestWildOrRegExp = !bFast && isTestWildOrRegExp(rEntry); @@ -431,7 +428,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByString(const ScQueryEntry& rEnt if (bFast || !bRealWildOrRegExp) { // Simple string matching i.e. no regexp match. - if (bFast || isTextMatchOp(rEntry)) + if (bFast || isTextMatchOp(rEntry.eOp)) { // Check this even with bFast. if (rItem.meType != ScQueryEntry::ByString && rItem.maString.isEmpty()) @@ -779,7 +776,7 @@ std::pair<bool, bool> ScQueryEvaluator::processEntry(SCROW nRow, SCCOL nCol, ScR // and simple matching is used, see compareByString() if (!cellStringSet) { - cellString = getCellString(aCell, nRow, rEntry, &cellSharedString); + cellString = getCellString(aCell, nRow, rEntry.nField, &cellSharedString); cellStringSet = true; } // Allow also checking ScQueryEntry::ByValue if the cell is not numeric, @@ -853,17 +850,17 @@ std::pair<bool, bool> ScQueryEvaluator::processEntry(SCROW nRow, SCCOL nCol, ScR aRes.first |= aThisRes.first; aRes.second |= aThisRes.second; } - else if (isQueryByValue(rEntry, rItem, aCell)) + else if (isQueryByValue(rEntry.eOp, rItem.meType, aCell)) { std::pair<bool, bool> aThisRes = compareByValue(aCell, nCol, nRow, rEntry, rItem); aRes.first |= aThisRes.first; aRes.second |= aThisRes.second; } - else if (isQueryByString(rEntry, rItem, aCell)) + else if (isQueryByString(rEntry.eOp, rItem.meType, aCell)) { if (!cellStringSet) { - cellString = getCellString(aCell, nRow, rEntry, &cellSharedString); + cellString = getCellString(aCell, nRow, rEntry.nField, &cellSharedString); cellStringSet = true; } std::pair<bool, bool> aThisRes; diff --git a/sc/source/core/data/queryiter.cxx b/sc/source/core/data/queryiter.cxx index 5156385c4b8f..e712b24d4443 100644 --- a/sc/source/core/data/queryiter.cxx +++ b/sc/source/core/data/queryiter.cxx @@ -1219,8 +1219,9 @@ ScQueryCellIteratorAccessSpecific< ScQueryCellIteratorAccess::SortedCache >::Mak return SortedCacheIndexer(rCells, nStartRow, nEndRow, sortedCache); } -static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam& rParam, - const ScFormulaCell* cell, const ScComplexRefData* refData) +static bool CanBeUsedForSorterCache(ScDocument& rDoc, const ScQueryParam& rParam, + SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData, + ScInterpreterContext& context) { if(!rParam.GetEntry(0).bDoQuery || rParam.GetEntry(1).bDoQuery || rParam.GetEntry(0).GetQueryItems().size() != 1 ) @@ -1237,19 +1238,12 @@ static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam& if(rParam.mbRangeLookup) return false; if(rParam.GetEntry(0).GetQueryItem().meType == ScQueryEntry::ByString - && !ScQueryEvaluator::isMatchWholeCell(rDoc, rParam.GetEntry(0))) + && !ScQueryEvaluator::isMatchWholeCell(rDoc, rParam.GetEntry(0).eOp)) return false; // substring matching cannot be sorted if(rParam.GetEntry(0).eOp != SC_LESS && rParam.GetEntry(0).eOp != SC_LESS_EQUAL && rParam.GetEntry(0).eOp != SC_GREATER && rParam.GetEntry(0).eOp != SC_GREATER_EQUAL && rParam.GetEntry(0).eOp != SC_EQUAL) return false; - // tdf#149071 - numbers entered as string can be compared both as numbers - // and as strings, depending on the cell content, and that makes it hard to pre-sort - // the data; such queries are ScQueryEntry::ByValue but have maString set too - // (see ScQueryParamBase::FillInExcelSyntax()) - if(rParam.GetEntry(0).GetQueryItem().meType == ScQueryEntry::ByValue - && rParam.GetEntry(0).GetQueryItem().maString.isValid()) - return false; // For unittests allow inefficient caching, in order for the code to be checked. static bool inUnitTest = getenv("LO_TESTNAME") != nullptr; if(refData == nullptr || refData->Ref1.IsRowRel() || refData->Ref2.IsRowRel()) @@ -1270,6 +1264,15 @@ static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam& if(!inUnitTest) return false; } + // Check that all the relevant caches would be valid (may not be the case when mixing + // numeric and string cells for ByValue lookups). + for(SCCOL col : rDoc.GetAllocatedColumnsRange(nTab, rParam.nCol1, rParam.nCol2)) + { + ScRange aSortedRangeRange( col, rParam.nRow1, nTab, col, rParam.nRow2, nTab); + ScSortedRangeCache& cache = rDoc.GetSortedRangeCache( aSortedRangeRange, rParam, &context ); + if(!cache.isValid()) + return false; + } return true; } @@ -1329,10 +1332,11 @@ bool ScQueryCellIterator< ScQueryCellIteratorAccess::SortedCache >::GetNext() return GetThis(); } -bool ScQueryCellIteratorSortedCache::CanBeUsed(const ScDocument& rDoc, const ScQueryParam& rParam, - const ScFormulaCell* cell, const ScComplexRefData* refData) +bool ScQueryCellIteratorSortedCache::CanBeUsed(ScDocument& rDoc, const ScQueryParam& rParam, + SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData, + ScInterpreterContext& context) { - return CanBeUsedForSorterCache(rDoc, rParam, cell, refData); + return CanBeUsedForSorterCache(rDoc, rParam, nTab, cell, refData, context); } // Countifs implementation. @@ -1359,10 +1363,11 @@ sal_uInt64 ScCountIfCellIterator< accessType >::GetCount() } -bool ScCountIfCellIteratorSortedCache::CanBeUsed(const ScDocument& rDoc, const ScQueryParam& rParam, - const ScFormulaCell* cell, const ScComplexRefData* refData) +bool ScCountIfCellIteratorSortedCache::CanBeUsed(ScDocument& rDoc, const ScQueryParam& rParam, + SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData, + ScInterpreterContext& context) { - return CanBeUsedForSorterCache(rDoc, rParam, cell, refData); + return CanBeUsedForSorterCache(rDoc, rParam, nTab, cell, refData, context); } template<> diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index dbffd939d53d..957d93005375 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -5803,7 +5803,8 @@ void ScInterpreter::ScCountIf() } else { - if(ScCountIfCellIteratorSortedCache::CanBeUsed(mrDoc, rParam, pMyFormulaCell, refData)) + if(ScCountIfCellIteratorSortedCache::CanBeUsed(mrDoc, rParam, nTab1, pMyFormulaCell, + refData, mrContext)) { ScCountIfCellIteratorSortedCache aCellIter(mrDoc, mrContext, nTab1, rParam, false); fCount += aCellIter.GetCount(); @@ -6198,7 +6199,8 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf } else { - if( ScQueryCellIteratorSortedCache::CanBeUsed( mrDoc, rParam, pMyFormulaCell, refData )) + if( ScQueryCellIteratorSortedCache::CanBeUsed( mrDoc, rParam, nTab1, pMyFormulaCell, + refData, mrContext )) { ScQueryCellIteratorSortedCache aCellIter(mrDoc, mrContext, nTab1, rParam, false); // Increment Entry.nField in iterator when switching to next column. @@ -10045,7 +10047,7 @@ static bool lcl_LookupQuery( ScAddress & o_rResultPos, ScDocument& rDoc, ScInter } else // EQUAL { - if( ScQueryCellIteratorSortedCache::CanBeUsed( rDoc, rParam, cell, refData )) + if( ScQueryCellIteratorSortedCache::CanBeUsed( rDoc, rParam, rParam.nTab, cell, refData, rContext )) { ScQueryCellIteratorSortedCache aCellIter( rDoc, rContext, rParam.nTab, rParam, false); if (aCellIter.GetFirst()) diff --git a/sc/source/core/tool/rangecache.cxx b/sc/source/core/tool/rangecache.cxx index 6a80ca786082..7f1e9cfe8235 100644 --- a/sc/source/core/tool/rangecache.cxx +++ b/sc/source/core/tool/rangecache.cxx @@ -25,18 +25,16 @@ #include <queryparam.hxx> #include <sal/log.hxx> +#include <svl/numformat.hxx> #include <unotools/collatorwrapper.hxx> -static bool needsDescending(const ScQueryParam& param) +static bool needsDescending(ScQueryOp op) { - assert(param.GetEntry(0).bDoQuery && !param.GetEntry(1).bDoQuery - && param.GetEntry(0).GetQueryItems().size() == 1); - assert(param.GetEntry(0).eOp == SC_GREATER || param.GetEntry(0).eOp == SC_GREATER_EQUAL - || param.GetEntry(0).eOp == SC_LESS || param.GetEntry(0).eOp == SC_LESS_EQUAL - || param.GetEntry(0).eOp == SC_EQUAL); + assert(op == SC_GREATER || op == SC_GREATER_EQUAL || op == SC_LESS || op == SC_LESS_EQUAL + || op == SC_EQUAL); // We want all matching values to start in the sort order, // since the data is searched from start until the last matching one. - return param.GetEntry(0).eOp == SC_GREATER || param.GetEntry(0).eOp == SC_GREATER_EQUAL; + return op == SC_GREATER || op == SC_GREATER_EQUAL; } static ScSortedRangeCache::ValueType toValueType(const ScQueryParam& param) @@ -55,8 +53,8 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, const ScQueryParam& param, ScInterpreterContext* context) : maRange(rRange) , mpDoc(pDoc) - , mDescending(needsDescending(param)) - , mValues(toValueType(param)) + , mValid(false) + , mValueType(toValueType(param)) { assert(maRange.aStart.Col() == maRange.aEnd.Col()); assert(maRange.aStart.Tab() == maRange.aEnd.Tab()); @@ -66,6 +64,8 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, && param.GetEntry(0).GetQueryItems().size() == 1); const ScQueryEntry& entry = param.GetEntry(0); const ScQueryEntry::Item& item = entry.GetQueryItem(); + mQueryOp = entry.eOp; + mQueryType = item.meType; SCROW startRow = maRange.aStart.Row(); SCROW endRow = maRange.aEnd.Row(); @@ -73,9 +73,9 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, SCCOL endCol = maRange.aEnd.Col(); if (!item.mbMatchEmpty) if (!pDoc->ShrinkToDataArea(nTab, startCol, startRow, endCol, endRow)) - return; + return; // no data cells, no need for a cache - if (mValues == ValueType::Values) + if (mValueType == ValueType::Values) { struct RowData { @@ -86,12 +86,32 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, for (SCROW nRow = startRow; nRow <= endRow; ++nRow) { ScRefCellValue cell(pDoc->GetRefCellValue(ScAddress(nCol, nRow, nTab))); - if (ScQueryEvaluator::isQueryByValue(entry, item, cell)) + if (ScQueryEvaluator::isQueryByValue(mQueryOp, mQueryType, cell)) rowData.push_back(RowData{ nRow, cell.getValue() }); + else if (ScQueryEvaluator::isQueryByString(mQueryOp, mQueryType, cell)) + { + // Make sure that other possibilities in the generic handling + // in ScQueryEvaluator::processEntry() do not alter the results. + // (ByTextColor/ByBackgroundColor are blocked by CanBeUsedForSorterCache(), + // but isQueryByString() is possible if the cell content is a string. + // And including strings here would be tricky, as the string comparison + // may possibly(?) be different than a numeric one. So check if the string + // may possibly match a number, by converting it to one. If it can't match, + // then it's fine to ignore it (and it can happen e.g. if the query uses + // the whole column which includes a textual header). But if it can possibly + // match, then bail out and leave it to the unoptimized case. + // TODO Maybe it would actually work to use the numeric value obtained here? + if (!ScQueryEvaluator::isMatchWholeCell(*pDoc, mQueryOp)) + return; // substring matching cannot be sorted + sal_uInt32 format = 0; + double value; + if (context->GetFormatTable()->IsNumberFormat(cell.getString(pDoc), format, value)) + return; + } } std::stable_sort(rowData.begin(), rowData.end(), [](const RowData& d1, const RowData& d2) { return d1.value < d2.value; }); - if (mDescending) + if (needsDescending(entry.eOp)) for (auto it = rowData.rbegin(); it != rowData.rend(); ++it) mSortedRows.emplace_back(it->row); else @@ -113,31 +133,40 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, for (SCROW nRow = startRow; nRow <= endRow; ++nRow) { ScRefCellValue cell(pDoc->GetRefCellValue(ScAddress(nCol, nRow, nTab))); - if (ScQueryEvaluator::isQueryByString(entry, item, cell)) + // This should be used only with ScQueryEntry::ByString, and that + // means that ScQueryEvaluator::isQueryByString() should be the only + // possibility in the generic handling in ScQueryEvaluator::processEntry() + // (ByTextColor/ByBackgroundColor are blocked by CanBeUsedForSorterCache(), + // and isQueryByValue() is blocked by ScQueryEntry::ByString). + assert(mQueryType == ScQueryEntry::ByString); + assert(!ScQueryEvaluator::isQueryByValue(mQueryOp, mQueryType, cell)); + if (ScQueryEvaluator::isQueryByString(mQueryOp, mQueryType, cell)) { const svl::SharedString* sharedString = nullptr; - OUString string = evaluator.getCellString(cell, nRow, entry, &sharedString); + OUString string = evaluator.getCellString(cell, nRow, nCol, &sharedString); if (sharedString) string = sharedString->getString(); rowData.push_back(RowData{ nRow, string }); } } CollatorWrapper& collator - = ScGlobal::GetCollator(mValues == ValueType::StringsCaseSensitive); + = ScGlobal::GetCollator(mValueType == ValueType::StringsCaseSensitive); std::stable_sort(rowData.begin(), rowData.end(), [&collator](const RowData& d1, const RowData& d2) { return collator.compareString(d1.string, d2.string) < 0; }); - if (mDescending) + if (needsDescending(entry.eOp)) for (auto it = rowData.rbegin(); it != rowData.rend(); ++it) mSortedRows.emplace_back(it->row); else for (const RowData& d : rowData) mSortedRows.emplace_back(d.row); } + mRowToIndex.resize(maRange.aEnd.Row() - maRange.aStart.Row() + 1, mSortedRows.max_size()); for (size_t i = 0; i < mSortedRows.size(); ++i) mRowToIndex[mSortedRows[i] - maRange.aStart.Row()] = i; + mValid = true; } void ScSortedRangeCache::Notify(const SfxHint& rHint) @@ -157,7 +186,11 @@ void ScSortedRangeCache::Notify(const SfxHint& rHint) ScSortedRangeCache::HashKey ScSortedRangeCache::makeHashKey(const ScRange& range, const ScQueryParam& param) { - return { range, needsDescending(param), toValueType(param) }; + assert(param.GetEntry(0).bDoQuery && !param.GetEntry(1).bDoQuery + && param.GetEntry(0).GetQueryItems().size() == 1); + const ScQueryEntry& entry = param.GetEntry(0); + const ScQueryEntry::Item& item = entry.GetQueryItem(); + return { range, toValueType(param), entry.eOp, item.meType }; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |