1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2 
3 /* libmwaw
4 * Version: MPL 2.0 / LGPLv2+
5 *
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 2.0 (the "License"); you may not use this file except in compliance with
8 * the License or as specified alternatively below. You may obtain a copy of
9 * the License at http://www.mozilla.org/MPL/
10 *
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
15 *
16 * Major Contributor(s):
17 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18 * Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19 * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20 * Copyright (C) 2006, 2007 Andrew Ziem
21 * Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22 *
23 *
24 * All Rights Reserved.
25 *
26 * For minor contributions see the git repository.
27 *
28 * Alternatively, the contents of this file may be used under the terms of
29 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30 * in which case the provisions of the LGPLv2+ are applicable
31 * instead of those above.
32 */
33 
34 #include <iomanip>
35 #include <iostream>
36 #include <limits>
37 #include <map>
38 #include <sstream>
39 
40 #include <librevenge/librevenge.h>
41 
42 #include "MWAWEntry.hxx"
43 #include "MWAWFontConverter.hxx"
44 #include "MWAWParser.hxx"
45 
46 #include "ClarisWksDocument.hxx"
47 #include "ClarisWksText.hxx"
48 
49 #include "ClarisWksStyleManager.hxx"
50 
51 /** Internal: the structures of a ClarisWksStyleManagerInternal */
52 namespace ClarisWksStyleManagerInternal
53 {
54 ////////////////////////////////////////
55 //! Internal: the pattern of a ClarisWksStyleManager
56 struct Pattern final : public MWAWGraphicStyle::Pattern {
57   //! constructor ( 4 int by patterns )
PatternClarisWksStyleManagerInternal::Pattern58   explicit Pattern(uint16_t const *pat=nullptr)
59     : MWAWGraphicStyle::Pattern()
60     , m_percent(0)
61   {
62     if (!pat) return;
63     m_colors[0]=MWAWColor::white();
64     m_colors[1]=MWAWColor::black();
65     m_dim=MWAWVec2i(8,8);
66     m_data.resize(8);
67     for (size_t i=0; i < 4; ++i) {
68       uint16_t val=pat[i];
69       m_data[2*i]=static_cast<unsigned char>(val>>8);
70       m_data[2*i+1]=static_cast<unsigned char>(val&0xFF);
71     }
72     int numOnes=0;
73     for (size_t j=0; j < 8; ++j) {
74       auto val=static_cast<uint8_t>(m_data[j]);
75       for (int b=0; b < 8; b++) {
76         if (val&1) ++numOnes;
77         val = uint8_t(val>>1);
78       }
79     }
80     m_percent=float(numOnes)/64.f;
81   }
82   Pattern(Pattern const &)=default;
83   Pattern &operator=(Pattern const &)=default;
84   Pattern &operator=(Pattern &&)=default;
85   //! destructor
86   ~Pattern() final;
87   //! the percentage
88   float m_percent;
89 };
90 
~Pattern()91 Pattern::~Pattern()
92 {
93 }
94 
95 ////////////////////////////////////////
96 //! Internal: the gradient of a ClarisWksStyleManager
97 struct Gradient {
98   //! construtor
GradientClarisWksStyleManagerInternal::Gradient99   Gradient(int type=0, int nColor=0, int angle=0, float decal=0)
100     : m_type(type)
101     , m_numColors(nColor)
102     , m_angle(angle)
103     , m_decal(decal)
104     , m_box()
105   {
106     m_colors[0]=MWAWColor::black();
107     m_colors[1]=MWAWColor::white();
108   }
109   //! check if the gradient is valid
okClarisWksStyleManagerInternal::Gradient110   bool ok() const
111   {
112     return m_type>=0 && m_type<=2 && m_numColors>=2 && m_numColors<=4;
113   }
114   //! update the style
115   bool update(MWAWGraphicStyle &style) const;
116   //! operator<<
operator <<(std::ostream & o,Gradient const & gr)117   friend std::ostream &operator<<(std::ostream &o, Gradient const &gr)
118   {
119     switch (gr.m_type) {
120     case 0:
121       o << "linear,";
122       break;
123     case 1:
124       o << "radial,";
125       break;
126     case 2:
127       o << "rectangle,";
128       break;
129     default:
130       o << "#type=" << gr.m_type << ",";
131       break;
132     }
133     if (gr.m_angle)
134       o << "angle=" << gr.m_angle << ",";
135     if (gr.m_decal>0)
136       o << "decal=" << gr.m_decal << ",";
137     o << "col=[";
138     for (int c=0; c < gr.m_numColors; ++c) {
139       if (c>=4) break;
140       o << gr.m_colors[c] << ",";
141     }
142     o << "],";
143     if (gr.m_box!=MWAWBox2i(MWAWVec2i(0,0),MWAWVec2i(0,0)))
144       o << "center=" << gr.m_box << ",";
145     return o;
146   }
147   //! the type
148   int m_type;
149   //! the number of color
150   int m_numColors;
151   //! the color
152   MWAWColor m_colors[4];
153   //! the angle
154   int m_angle;
155   //! the decal
156   float m_decal;
157   //! the center bdbox
158   MWAWBox2i m_box;
159 };
160 
update(MWAWGraphicStyle & style) const161 bool Gradient::update(MWAWGraphicStyle &style) const
162 {
163   if (!ok()) return false;
164   auto &finalGrad=style.m_gradient;
165   finalGrad.m_stopList.resize(0);
166   if (m_type==1 || m_type==2) {
167     finalGrad.m_type=m_type==1 ? MWAWGraphicStyle::Gradient::G_Radial : MWAWGraphicStyle::Gradient::G_Rectangular;
168     for (int c=0; c < m_numColors; ++c)
169       finalGrad.m_stopList.push_back(MWAWGraphicStyle::Gradient::Stop(float(c)/float(m_numColors-1), m_colors[m_numColors-1-c]));
170     finalGrad.m_percentCenter=MWAWVec2f(float(m_box.center()[1])/100.f, float(m_box.center()[0])/100.f);
171     return true;
172   }
173   finalGrad.m_angle=float(m_angle+90);
174   if (m_decal<=0.05f) {
175     finalGrad.m_type= MWAWGraphicStyle::Gradient::G_Axial;
176     for (int c=0; c < m_numColors; ++c)
177       finalGrad.m_stopList.push_back(MWAWGraphicStyle::Gradient::Stop(float(c)/float(m_numColors-1), m_colors[m_numColors-1-c]));
178     return true;
179   }
180   finalGrad.m_type= MWAWGraphicStyle::Gradient::G_Linear;
181   if (m_decal >=0.95f)  {
182     for (int c=0; c < m_numColors; ++c)
183       finalGrad.m_stopList.push_back(MWAWGraphicStyle::Gradient::Stop(float(c)/float(m_numColors-1), m_colors[c]));
184     return true;
185   }
186   for (int c=-m_numColors+1; c<m_numColors; ++c) {
187     // checkme: look almost good
188     float pos=float(c)/float(m_numColors-1)+(1-m_decal)/2.f;
189     if (pos < 0) {
190       if (c!=m_numColors-1 && float(c+1)/float(m_numColors-1)+(1-m_decal)/2.f>=0)
191         continue;
192       pos=0;
193     }
194     finalGrad.m_stopList.push_back(MWAWGraphicStyle::Gradient::Stop(pos>1?1:pos, m_colors[c<0?-c:c]));
195     if (pos>=1)
196       break;
197   }
198   return true;
199 }
200 
201 //! Internal: the state of a ClarisWksStyleManager
202 struct State {
203   //! constructor
StateClarisWksStyleManagerInternal::State204   State()
205     : m_version(-1)
206     , m_localFIdMap()
207     , m_stylesMap()
208     , m_lookupMap()
209     , m_fontList()
210     , m_cellFormatList()
211     , m_graphList()
212     , m_ksenList()
213     , m_nameList()
214     , m_colorList()
215     , m_patternList()
216     , m_gradientList()
217     , m_wallpaperList()
218   {
219   }
220   //! set the default color map
221   void setDefaultColorList(int version);
222   //! set the default pattern map
223   void setDefaultPatternList(int version);
224   //! set the default pattern map
225   void setDefaultGradientList(int version);
226   //! set the default pattern map
227   void setDefaultWallPaperList(int version);
228   //! return a mac font id corresponding to a local id
getFontIdClarisWksStyleManagerInternal::State229   int getFontId(int localId) const
230   {
231     if (m_localFIdMap.find(localId)==m_localFIdMap.end())
232       return localId;
233     return m_localFIdMap.find(localId)->second;
234   }
235 
236   //! the version
237   int m_version;
238   //! a map local fontId->fontId
239   std::map<int, int> m_localFIdMap;
240   //! the styles map id->style
241   std::map<int, ClarisWksStyleManager::Style> m_stylesMap;
242   //! the style lookupMap
243   std::map<int, int> m_lookupMap;
244   //! the list of fonts
245   std::vector<MWAWFont> m_fontList;
246   //! the list of format
247   std::vector<ClarisWksStyleManager::CellFormat> m_cellFormatList;
248   //! the Graphic list
249   std::vector<MWAWGraphicStyle> m_graphList;
250   //! the KSEN list
251   std::vector<ClarisWksStyleManager::KSEN> m_ksenList;
252   //! the style name list
253   std::vector<std::string> m_nameList;
254   //! a list colorId -> color
255   std::vector<MWAWColor> m_colorList;
256   //! a list patternId -> pattern
257   std::vector<Pattern> m_patternList;
258   //! a list gradientId -> gradient
259   std::vector<Gradient> m_gradientList;
260   //! a list wallPaperId -> pattern
261   std::vector<MWAWGraphicStyle::Pattern> m_wallpaperList;
262 };
263 
264 
setDefaultColorList(int version)265 void State::setDefaultColorList(int version)
266 {
267   if (!m_colorList.empty()) return;
268   if (version==1) {
269     uint32_t const defCol[81] = {
270       0xffffff,0x000000,0x222222,0x444444,0x555555,0x888888,0xbbbbbb,0xdddddd,
271       0xeeeeee,0x440000,0x663300,0x996600,0x002200,0x003333,0x003399,0x000055,
272       0x330066,0x660066,0x770000,0x993300,0xcc9900,0x004400,0x336666,0x0033ff,
273       0x000077,0x660099,0x990066,0xaa0000,0xcc3300,0xffcc00,0x006600,0x006666,
274       0x0066ff,0x0000aa,0x663399,0xcc0099,0xdd0000,0xff3300,0xffff00,0x008800,
275       0x009999,0x0099ff,0x0000dd,0x9900cc,0xff0099,0xff3333,0xff6600,0xffff33,
276       0x00ee00,0x00cccc,0x00ccff,0x3366ff,0x9933ff,0xff33cc,0xff6666,0xff6633,
277       0xffff66,0x66ff66,0x66cccc,0x66ffff,0x3399ff,0x9966ff,0xff66ff,0xff9999,
278       0xff9966,0xffff99,0x99ff99,0x66ffcc,0x99ffff,0x66ccff,0x9999ff,0xff99ff,
279       0xffcccc,0xffcc99,0xffffcc,0xccffcc,0x99ffcc,0xccffff,0x99ccff,0xccccff,
280       0xffccff
281     };
282     m_colorList.resize(81);
283     for (size_t i = 0; i < 81; i++)
284       m_colorList[i] = defCol[i];
285   }
286   else {
287     uint32_t const defCol[256] = {
288       0xffffff,0x0,0x777777,0x555555,0xffff00,0xff6600,0xdd0000,0xff0099,
289       0x660099,0xdd,0x99ff,0xee00,0x6600,0x663300,0x996633,0xbbbbbb,
290       0xffffcc,0xffff99,0xffff66,0xffff33,0xffccff,0xffcccc,0xffcc99,0xffcc66,
291       0xffcc33,0xffcc00,0xff99ff,0xff99cc,0xff9999,0xff9966,0xff9933,0xff9900,
292       0xff66ff,0xff66cc,0xff6699,0xff6666,0xff6633,0xff33ff,0xff33cc,0xff3399,
293       0xff3366,0xff3333,0xff3300,0xff00ff,0xff00cc,0xff0066,0xff0033,0xff0000,
294       0xccffff,0xccffcc,0xccff99,0xccff66,0xccff33,0xccff00,0xccccff,0xcccccc,
295       0xcccc99,0xcccc66,0xcccc33,0xcccc00,0xcc99ff,0xcc99cc,0xcc9999,0xcc9966,
296       0xcc9933,0xcc9900,0xcc66ff,0xcc66cc,0xcc6699,0xcc6666,0xcc6633,0xcc6600,
297       0xcc33ff,0xcc33cc,0xcc3399,0xcc3366,0xcc3333,0xcc3300,0xcc00ff,0xcc00cc,
298       0xcc0099,0xcc0066,0xcc0033,0xcc0000,0x99ffff,0x99ffcc,0x99ff99,0x99ff66,
299       0x99ff33,0x99ff00,0x99ccff,0x99cccc,0x99cc99,0x99cc66,0x99cc33,0x99cc00,
300       0x9999ff,0x9999cc,0x999999,0x999966,0x999933,0x999900,0x9966ff,0x9966cc,
301       0x996699,0x996666,0x996600,0x9933ff,0x9933cc,0x993399,0x993366,0x993333,
302       0x993300,0x9900ff,0x9900cc,0x990099,0x990066,0x990033,0x990000,0x66ffff,
303       0x66ffcc,0x66ff99,0x66ff66,0x66ff33,0x66ff00,0x66ccff,0x66cccc,0x66cc99,
304       0x66cc66,0x66cc33,0x66cc00,0x6699ff,0x6699cc,0x669999,0x669966,0x669933,
305       0x669900,0x6666ff,0x6666cc,0x666699,0x666666,0x666633,0x666600,0x6633ff,
306       0x6633cc,0x663399,0x663366,0x663333,0x6600ff,0x6600cc,0x660066,0x660033,
307       0x660000,0x33ffff,0x33ffcc,0x33ff99,0x33ff66,0x33ff33,0x33ff00,0x33ccff,
308       0x33cccc,0x33cc99,0x33cc66,0x33cc33,0x33cc00,0x3399ff,0x3399cc,0x339999,
309       0x339966,0x339933,0x339900,0x3366ff,0x3366cc,0x336699,0x336666,0x336633,
310       0x336600,0x3333ff,0x3333cc,0x333399,0x333366,0x333333,0x333300,0x3300ff,
311       0x3300cc,0x330099,0x330066,0x330033,0x330000,0xffff,0xffcc,0xff99,
312       0xff66,0xff33,0xff00,0xccff,0xcccc,0xcc99,0xcc66,0xcc33,
313       0xcc00,0x99cc,0x9999,0x9966,0x9933,0x9900,0x66ff,0x66cc,
314       0x6699,0x6666,0x6633,0x33ff,0x33cc,0x3399,0x3366,0x3333,
315       0x3300,0xff,0xcc,0x99,0x66,0x33,0xdd0000,0xbb0000,
316       0xaa0000,0x880000,0x770000,0x550000,0x440000,0x220000,0x110000,0xdd00,
317       0xbb00,0xaa00,0x8800,0x7700,0x5500,0x4400,0x2200,0x1100,
318       0xee,0xbb,0xaa,0x88,0x77,0x55,0x44,0x22,
319       0x11,0xeeeeee,0xdddddd,0xaaaaaa,0x888888,0x444444,0x222222,0x111111,
320     };
321     m_colorList.resize(256);
322     for (size_t i = 0; i < 256; i++)
323       m_colorList[i] = defCol[i];
324   }
325 }
326 
setDefaultPatternList(int)327 void State::setDefaultPatternList(int)
328 {
329   if (m_patternList.size()) return;
330   static uint16_t const s_pattern[4*64] = {
331     0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0x7fff, 0xffff, 0xf7ff, 0xffff, 0x7fff, 0xf7ff, 0x7fff, 0xf7ff,
332     0xffee, 0xffbb, 0xffee, 0xffbb, 0x77dd, 0x77dd, 0x77dd, 0x77dd, 0xaa55, 0xaa55, 0xaa55, 0xaa55, 0x8822, 0x8822, 0x8822, 0x8822,
333     0xaa00, 0xaa00, 0xaa00, 0xaa00, 0xaa00, 0x4400, 0xaa00, 0x1100, 0x8800, 0xaa00, 0x8800, 0xaa00, 0x8800, 0x2200, 0x8800, 0x2200,
334     0x8000, 0x0800, 0x8000, 0x0800, 0x8800, 0x0000, 0x8800, 0x0000, 0x8000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
335     0xeedd, 0xbb77, 0xeedd, 0xbb77, 0x3366, 0xcc99, 0x3366, 0xcc99, 0x1122, 0x4488, 0x1122, 0x4488, 0x8307, 0x0e1c, 0x3870, 0xe0c1,
336     0x0306, 0x0c18, 0x3060, 0xc081, 0x0102, 0x0408, 0x1020, 0x4080, 0xffff, 0x0000, 0x0000, 0x0000, 0xff00, 0x0000, 0x0000, 0x0000,
337     0x77bb, 0xddee, 0x77bb, 0xddee, 0x99cc, 0x6633, 0x99cc, 0x6633, 0x8844, 0x2211, 0x8844, 0x2211, 0xe070, 0x381c, 0x0e07, 0x83c1,
338     0xc060, 0x3018, 0x0c06, 0x0381, 0x8040, 0x2010, 0x0804, 0x0201, 0xc0c0, 0xc0c0, 0xc0c0, 0xc0c0, 0x8080, 0x8080, 0x8080, 0x8080,
339     0xffaa, 0xffaa, 0xffaa, 0xffaa, 0xe4e4, 0xe4e4, 0xe4e4, 0xe4e4, 0xffff, 0xff00, 0x00ff, 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
340     0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0x0000, 0xff00, 0x0000, 0x8888, 0x8888, 0x8888, 0x8888, 0xff80, 0x8080, 0x8080, 0x8080,
341     0x4ecf, 0xfce4, 0x273f, 0xf372, 0x6006, 0x36b1, 0x8118, 0x1b63, 0x2004, 0x4002, 0x1080, 0x0801, 0x9060, 0x0609, 0x9060, 0x0609,
342     0x8814, 0x2241, 0x8800, 0xaa00, 0x2050, 0x8888, 0x8888, 0x0502, 0xaa00, 0x8000, 0x8800, 0x8000, 0x2040, 0x8000, 0x0804, 0x0200,
343     0xf0f0, 0xf0f0, 0x0f0f, 0x0f0f, 0x0077, 0x7777, 0x0077, 0x7777, 0xff88, 0x8888, 0xff88, 0x8888, 0xaa44, 0xaa11, 0xaa44, 0xaa11,
344     0x8244, 0x2810, 0x2844, 0x8201, 0x8080, 0x413e, 0x0808, 0x14e3, 0x8142, 0x2418, 0x1020, 0x4080, 0x40a0, 0x0000, 0x040a, 0x0000,
345     0x7789, 0x8f8f, 0x7798, 0xf8f8, 0xf1f8, 0x6cc6, 0x8f1f, 0x3663, 0xbf00, 0xbfbf, 0xb0b0, 0xb0b0, 0xff80, 0x8080, 0xff08, 0x0808,
346     0x1020, 0x54aa, 0xff02, 0x0408, 0x0008, 0x142a, 0x552a, 0x1408, 0x55a0, 0x4040, 0x550a, 0x0404, 0x8244, 0x3944, 0x8201, 0x0101
347   };
348   m_patternList.resize(64);
349   for (size_t i = 0; i < 64; i++)
350     m_patternList[i]=Pattern(&s_pattern[i*4]);
351 }
352 
setDefaultGradientList(int)353 void State::setDefaultGradientList(int)
354 {
355   if (!m_gradientList.empty()) return;
356   Gradient grad;
357   // grad0
358   grad=Gradient(0,2,0,1);
359   m_gradientList.push_back(grad);
360   // grad1
361   grad=Gradient(0,2,180,1);
362   m_gradientList.push_back(grad);
363   // grad2
364   grad=Gradient(0,2,90,0);
365   m_gradientList.push_back(grad);
366   // grad3
367   grad=Gradient(0,2,315,1);
368   m_gradientList.push_back(grad);
369   // grad4
370   grad=Gradient(0,2,225,1);
371   m_gradientList.push_back(grad);
372   // grad5
373   grad=Gradient(2,2,0,0);
374   grad.m_box=MWAWBox2i(MWAWVec2i(79,80),MWAWVec2i(79,80));
375   m_gradientList.push_back(grad);
376   // grad6
377   grad=Gradient(2,2,0,0);
378   grad.m_box=MWAWBox2i(MWAWVec2i(81,20),MWAWVec2i(81,20));
379   m_gradientList.push_back(grad);
380   // grad7
381   grad=Gradient(2,2,0,0);
382   grad.m_box=MWAWBox2i(MWAWVec2i(50,50),MWAWVec2i(50,50));
383   m_gradientList.push_back(grad);
384   // grad8
385   grad=Gradient(0,2,90,1);
386   m_gradientList.push_back(grad);
387   // grad9
388   grad=Gradient(0,2,270,0.979172f);
389   m_gradientList.push_back(grad);
390   // grad10
391   grad=Gradient(0,2,0,0);
392   m_gradientList.push_back(grad);
393   // grad11
394   grad=Gradient(0,2,45,1);
395   m_gradientList.push_back(grad);
396   // grad12
397   grad=Gradient(0,2,135,1);
398   m_gradientList.push_back(grad);
399   // grad13
400   grad=Gradient(2,2,0,0);
401   grad.m_box=MWAWBox2i(MWAWVec2i(22,77),MWAWVec2i(23,77));
402   m_gradientList.push_back(grad);
403   // grad14
404   grad=Gradient(2,2,0,0);
405   grad.m_box=MWAWBox2i(MWAWVec2i(22,22),MWAWVec2i(22,22));
406   m_gradientList.push_back(grad);
407   // grad15
408   grad=Gradient(1,2,0,0);
409   grad.m_box=MWAWBox2i(MWAWVec2i(51,50),MWAWVec2i(51,50));
410   m_gradientList.push_back(grad);
411   // grad16
412   grad=Gradient(2,3,0,0);
413   grad.m_box=MWAWBox2i(MWAWVec2i(79,15),MWAWVec2i(86,22));
414   grad.m_colors[1]=MWAWColor(0xaa0000);
415   grad.m_colors[2]=MWAWColor(0xcc3300);
416   m_gradientList.push_back(grad);
417   // grad17
418   grad=Gradient(0,4,0,1);
419   grad.m_colors[0]=MWAWColor(0xff33cc);
420   grad.m_colors[1]=MWAWColor(0xdd0000);
421   grad.m_colors[2]=MWAWColor(0xdd0000);
422   grad.m_colors[3]=MWAWColor(0x000000);
423   m_gradientList.push_back(grad);
424   // grad18
425   grad=Gradient(0,3,112,0.80835f);
426   grad.m_colors[0]=MWAWColor(0x0000dd);
427   grad.m_colors[1]=MWAWColor(0x000077);
428   grad.m_colors[2]=MWAWColor(0xff3333);
429   m_gradientList.push_back(grad);
430   // grad19
431   grad=Gradient(1,4,332,0);
432   grad.m_box=MWAWBox2i(MWAWVec2i(77,71),MWAWVec2i(77,71));
433   grad.m_colors[0]=MWAWColor(0xffff00);
434   grad.m_colors[1]=MWAWColor(0xff3300);
435   grad.m_colors[2]=MWAWColor(0x9900cc);
436   grad.m_colors[3]=MWAWColor(0x0000dd);
437   m_gradientList.push_back(grad);
438   // grad20
439   grad=Gradient(0,3,270,0.625f);
440   grad.m_colors[1]=MWAWColor(0x0000dd);
441   grad.m_colors[2]=MWAWColor(0x00cccc);
442   m_gradientList.push_back(grad);
443   // grad21
444   grad=Gradient(0,2,270,0.229172f);
445   grad.m_colors[0]=MWAWColor(0x0000aa);
446   grad.m_colors[1]=MWAWColor(0xdddddd);
447   m_gradientList.push_back(grad);
448   // grad22
449   grad=Gradient(0,3,90,0.729172f);
450   grad.m_colors[0]=MWAWColor(0xffffff);
451   grad.m_colors[2]=MWAWColor(0x9999ff);
452   m_gradientList.push_back(grad);
453   // grad23
454   grad=Gradient(2,4,0,0);
455   grad.m_box=MWAWBox2i(MWAWVec2i(41,40),MWAWVec2i(62,62));
456   grad.m_colors[0]=MWAWColor(0xffffff);
457   grad.m_colors[1]=MWAWColor(0xccffff);
458   grad.m_colors[2]=MWAWColor(0x99ffff);
459   grad.m_colors[3]=MWAWColor(0x66ffff);
460   m_gradientList.push_back(grad);
461   // grad24
462   grad=Gradient(0,3,90,0.854172f);
463   grad.m_colors[1]=MWAWColor(0xdd0000);
464   grad.m_colors[2]=MWAWColor(0xffcc00);
465   m_gradientList.push_back(grad);
466   // grad25
467   grad=Gradient(0,4,315,0.633453f);
468   grad.m_colors[0]=MWAWColor(0xcc3300);
469   grad.m_colors[1]=MWAWColor(0xff6600);
470   grad.m_colors[2]=MWAWColor(0xffcc00);
471   grad.m_colors[3]=MWAWColor(0xffff00);
472   m_gradientList.push_back(grad);
473   // grad26
474   grad=Gradient(0,3,45,0.721832f);
475   grad.m_colors[1]=MWAWColor(0x0000dd);
476   grad.m_colors[2]=MWAWColor(0xff0099);
477   m_gradientList.push_back(grad);
478   // grad27
479   grad=Gradient(0,3,180,1);
480   grad.m_colors[1]=MWAWColor(0x0000dd);
481   grad.m_colors[2]=MWAWColor(0x9900cc);
482   m_gradientList.push_back(grad);
483   // grad28
484   grad=Gradient(0,4,90,0.81987f);
485   grad.m_colors[1]=MWAWColor(0x9900cc);
486   grad.m_colors[2]=MWAWColor(0x9933ff);
487   grad.m_colors[3]=MWAWColor(0x66ffff);
488   m_gradientList.push_back(grad);
489   // grad29
490   grad=Gradient(0,4,270,0.916672f);
491   grad.m_colors[0]=MWAWColor(0x0066ff);
492   grad.m_colors[1]=MWAWColor(0x00ccff);
493   grad.m_colors[2]=MWAWColor(0xffffcc);
494   grad.m_colors[3]=MWAWColor(0xff6633);
495   m_gradientList.push_back(grad);
496   // grad30
497   grad=Gradient(2,2,0,0);
498   grad.m_box=MWAWBox2i(MWAWVec2i(0,88),MWAWVec2i(12,100));
499   grad.m_colors[0]=MWAWColor(0xff6600);
500   grad.m_colors[1]=MWAWColor(0xffff00);
501   m_gradientList.push_back(grad);
502   // grad31
503   grad=Gradient(2,4,0,0);
504   grad.m_box=MWAWBox2i(MWAWVec2i(99,52),MWAWVec2i(100,54));
505   grad.m_colors[0]=MWAWColor(0xffffff);
506   grad.m_colors[1]=MWAWColor(0xffffcc);
507   grad.m_colors[2]=MWAWColor(0xffff66);
508   grad.m_colors[3]=MWAWColor(0xffcc00);
509   m_gradientList.push_back(grad);
510 }
511 
setDefaultWallPaperList(int version)512 void State::setDefaultWallPaperList(int version)
513 {
514   // checkme: does ClarisWork v4 version has wallpaper?
515   if (version <= 2 || m_wallpaperList.size())
516     return;
517   librevenge::RVNGBinaryData data;
518   std::string mime("image/pict");
519   uint32_t const defCol[20] = {
520     0xdcdcdc, 0x0000cd, 0xeeeeee, 0xeedd8e, 0xc71585,
521     0xc9c9c9, 0xcd853f, 0x696969, 0xfa8072, 0x6495ed,
522     0x4682b4, 0xdaa520, 0xcd5c5c, 0xb22222, 0x8b8682,
523     0xb03060, 0xeeeee0, 0x4682b4, 0xfa8072, 0x505050
524   };
525   // 20 ppm contents corresponding to the default wallpaper ( after reducing each image by 50% in h and v )
526   static unsigned char const wall0[781]= {
527     80,54,10,49,54,32,49,54,10,50,53,53,10,232,229,200,228,227,202,231,231,211,236,236,211,233,233,221,234,234,214,223,
528     223,208,219,225,204,235,229,208,234,234,217,233,233,222,215,215,204,227,227,204,238,238,219,233,233,213,232,232,213,230,229,206,
529     226,223,216,235,235,223,229,221,201,223,220,208,233,233,213,220,220,205,231,231,214,232,232,217,225,225,207,222,222,209,234,234,
530     215,219,219,201,232,232,219,233,233,219,230,221,207,229,229,218,239,232,220,216,216,207,233,230,213,232,229,214,226,218,205,232,
531     229,217,232,224,210,221,221,209,230,230,210,231,229,214,224,216,204,232,232,212,234,234,213,220,220,203,235,232,212,235,234,218,
532     223,223,200,229,229,216,228,228,209,226,224,203,230,230,215,232,231,221,224,222,212,228,228,217,229,227,212,226,217,205,234,232,
533     212,228,228,216,221,218,206,230,229,210,236,237,211,236,235,215,222,220,206,235,235,216,228,228,210,224,219,213,225,231,210,222,
534     222,197,223,223,205,232,234,217,229,226,203,231,229,216,229,230,211,225,226,211,226,218,208,229,227,214,226,227,212,221,221,217,
535     237,229,214,228,226,213,224,224,203,238,235,220,218,218,206,234,229,212,240,237,223,228,226,208,228,228,210,234,231,211,224,219,
536     207,223,224,199,229,230,217,228,228,211,225,224,205,219,226,207,228,228,205,225,227,210,237,237,217,227,226,209,233,231,218,232,
537     222,218,225,227,204,228,220,211,229,231,216,228,222,204,224,227,209,239,238,225,219,217,202,227,219,206,236,233,219,229,227,220,
538     236,234,215,233,226,210,223,224,210,223,216,206,232,232,218,216,216,202,225,228,205,228,229,216,223,223,204,236,234,213,235,234,
539     219,215,220,205,230,224,211,231,228,218,224,215,198,232,226,213,227,227,213,230,224,212,226,226,211,238,239,216,219,219,201,229,
540     229,208,236,239,221,219,217,207,235,228,211,229,229,215,219,219,205,228,228,211,236,229,216,222,223,205,231,229,211,218,228,205,
541     226,221,203,232,230,213,233,231,218,226,226,211,227,226,212,236,232,217,224,221,207,220,218,208,238,233,222,224,224,207,233,225,
542     214,230,230,215,222,228,209,232,229,210,231,230,217,233,224,205,226,229,213,227,229,212,224,224,204,221,221,204,236,236,219,226,
543     223,200,234,227,213,230,229,219,216,211,197,230,230,210,223,221,214,230,223,206,227,228,213,237,230,218,231,228,211,237,237,214,
544     226,232,213,227,224,204,230,225,212,234,232,221,216,216,204,226,226,217,227,229,219,223,222,201,232,235,213,226,226,216,224,224,
545     207,227,225,213,236,235,215,220,221,203,225,225,211,223,216,210,231,229,207,235,224,219,225,222,209,221,223,206,232,232,214,236,
546     228,213,223,218,201,224,221,212,229,234,215,223,224,211,222,221,205,233,234,211,222,223,206,227,226,211,240,240,218,229,225,209,
547     232,229,211,228,228,213,226,224,206,233,233,216,234,234,214,223,221,202,228,227,213,232,239,217,221,216,210,215,225,209,235,230,
548     221,220,223,207,227,227,214,233,230,211,223,223,200,229,232,206,238,231,214,222,222,205,226,226,208,231,231,215,224,224,211,226,
549     227,218,229,228,208,226,221,206,229,227,214,228,227,216,220,221,201,229,227,210,232,231,214,226,226,208,229,229,215,245,239,214,
550     231,223,207,228,226,207,236,236,220,217,217,195,228,220,209,230,227,215,226,225,203,234,231,217,235,236,227,226,217,199,233,230,
551     219,233,224,207,222,219,203,226,226,208,238,238,222
552   };
553   data=librevenge::RVNGBinaryData(wall0,781);
554   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[0])));
555 
556   static unsigned char const wall1[781]= {
557     80,54,10,49,54,32,49,54,10,50,53,53,10,67,80,149,62,66,138,64,70,147,60,71,131,67,68,150,53,68,125,69,
558     73,145,65,69,128,70,69,144,60,72,137,65,69,144,67,68,134,60,70,140,60,67,132,64,70,152,72,65,133,66,69,132,
559     65,69,144,65,64,132,59,74,138,67,70,142,64,73,137,66,66,136,66,66,144,62,72,135,62,69,140,66,71,137,65,69,
560     137,66,71,136,62,66,139,65,73,136,61,68,137,64,72,146,62,73,135,62,75,142,70,68,134,60,72,141,66,67,136,60,
561     73,143,69,71,136,62,69,139,64,72,135,61,71,136,60,69,140,64,71,139,66,65,132,65,71,141,68,76,137,70,66,129,
562     61,70,142,64,68,136,65,69,142,64,68,135,64,73,138,67,69,139,62,68,137,64,70,133,65,69,145,66,74,136,62,69,
563     137,66,68,141,70,72,143,63,67,136,61,65,134,64,70,147,69,68,137,58,75,144,67,68,134,64,71,139,64,68,138,64,
564     67,138,59,73,137,68,68,140,63,66,134,62,73,139,64,73,139,66,66,139,60,71,142,61,69,140,65,74,144,57,68,134,
565     65,74,135,65,69,137,64,71,139,64,71,140,62,68,139,67,73,138,61,72,143,65,71,136,65,71,143,64,65,137,64,73,
566     137,69,70,138,60,75,136,61,68,133,57,66,138,66,72,145,58,66,136,66,73,137,67,67,140,64,65,140,61,74,137,62,
567     64,134,62,71,137,67,68,139,59,74,139,66,73,140,64,70,137,64,67,139,58,74,138,68,68,140,64,74,136,66,66,135,
568     67,68,140,65,74,139,59,69,137,63,67,140,65,73,137,69,72,132,66,65,144,64,71,140,60,69,137,65,68,135,64,70,
569     140,68,68,138,59,68,138,65,73,136,67,68,137,61,79,146,66,72,138,63,67,140,65,70,136,62,71,138,61,65,138,68,
570     73,141,65,71,134,66,73,138,64,69,139,66,70,139,58,68,135,67,72,141,69,71,138,64,66,143,64,73,138,62,65,128,
571     63,73,138,68,70,131,62,71,142,68,68,134,62,70,144,66,71,137,60,69,143,64,69,134,67,67,143,64,75,134,65,70,
572     142,63,72,134,65,70,142,62,73,133,55,73,131,68,73,147,66,67,142,66,70,143,58,66,134,63,72,143,65,73,134,66,
573     69,138,62,73,140,64,70,142,66,66,134,62,72,144,59,68,136,64,71,143,65,68,136,65,66,140,69,75,136,56,74,128,
574     64,67,139,69,73,137,65,71,143,62,65,134,66,66,142,67,70,139,62,72,142,68,69,134,64,74,142,62,70,133,65,71,
575     140,59,68,135,67,78,144,61,66,137,64,71,141,62,76,149,60,67,135,63,71,139,67,67,139,65,75,138,67,70,133,61,
576     71,139,60,70,136,64,67,137,69,71,139,64,66,137,58,74,139,66,65,132,66,71,142,65,72,137,67,75,143,65,71,128,
577     63,67,144,70,71,132,62,66,139,61,73,138,67,73,139,63,68,137,65,66,136,65,70,139,65,69,139,61,68,139,63,75,
578     140,65,70,139,65,70,142,62,69,136,58,71,133,66,76,148,64,70,134,62,72,139,60,68,139,61,72,142,65,73,137,64,
579     71,141,66,69,135,64,74,143,68,65,133,60,72,142,66,68,133,66,69,138,67,68,142,64,72,139,67,70,137,61,74,129,
580     67,70,143,64,66,141,69,73,133,66,67,145,63,63,135,60,77,137,61,69,132,71,66,143,60,72,133,65,70,137,63,67,
581     134,60,67,141,65,70,133,67,71,137,58,58,135
582   };
583   data=librevenge::RVNGBinaryData(wall1,781);
584   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[1])));
585 
586   static unsigned char const wall2[781]= {
587     80,54,10,49,54,32,49,54,10,50,53,53,10,214,214,214,216,216,216,215,215,215,223,223,223,220,220,220,217,217,217,214,
588     214,214,218,218,218,218,218,218,215,215,215,211,211,211,220,220,220,224,224,224,219,219,219,217,217,217,213,213,213,218,218,218,
589     221,221,221,222,222,222,218,218,218,217,217,217,216,216,216,213,213,213,214,214,214,215,215,215,217,217,217,219,219,219,222,222,
590     222,219,219,219,209,209,209,214,214,214,217,217,217,222,222,222,218,218,218,216,216,216,221,221,221,212,212,212,214,214,214,217,
591     217,217,217,217,217,217,217,217,223,223,223,221,221,221,216,216,216,212,212,212,218,218,218,219,219,219,221,221,221,210,210,210,
592     214,214,214,218,218,218,208,208,208,213,213,213,218,218,218,218,218,218,217,217,217,224,224,224,217,217,217,212,212,212,211,211,
593     211,220,220,220,219,219,219,216,216,216,216,216,216,218,218,218,218,218,218,210,210,210,215,215,215,216,216,216,215,215,215,219,
594     219,219,222,222,222,215,215,215,208,208,208,216,216,216,223,223,223,214,214,214,216,216,216,218,218,218,218,218,218,212,212,212,
595     210,210,210,216,216,216,220,220,220,219,219,219,218,218,218,224,224,224,215,215,215,210,210,210,217,217,217,222,222,222,213,213,
596     213,216,216,216,220,220,220,218,218,218,222,222,222,224,224,224,221,221,221,213,213,213,218,218,218,223,223,223,219,219,219,214,
597     214,214,213,213,213,215,215,215,218,218,218,216,216,216,217,217,217,217,217,217,216,216,216,221,221,221,215,215,215,222,222,222,
598     218,218,218,219,219,219,221,221,221,218,218,218,210,210,210,218,218,218,213,213,213,215,215,215,222,222,222,219,219,219,216,216,
599     216,216,216,216,223,223,223,214,214,214,221,221,221,216,216,216,219,219,219,216,216,216,215,215,215,211,211,211,219,219,219,214,
600     214,214,215,215,215,222,222,222,219,219,219,208,208,208,215,215,215,220,220,220,219,219,219,218,218,218,213,213,213,216,216,216,
601     215,215,215,212,212,212,215,215,215,215,215,215,214,214,214,217,217,217,225,225,225,215,215,215,211,211,211,218,218,218,223,223,
602     223,221,221,221,215,215,215,213,213,213,215,215,215,218,218,218,211,211,211,218,218,218,216,216,216,213,213,213,220,220,220,223,
603     223,223,212,212,212,212,212,212,220,220,220,222,222,222,215,215,215,213,213,213,215,215,215,219,219,219,222,222,222,219,219,219,
604     218,218,218,219,219,219,214,214,214,221,221,221,223,223,223,211,211,211,214,214,214,220,220,220,220,220,220,213,213,213,214,214,
605     214,215,215,215,218,218,218,216,216,216,214,214,214,214,214,214,219,219,219,215,215,215,219,219,219,218,218,218,211,211,211,218,
606     218,218,218,218,218,217,217,217,218,218,218,217,217,217,218,218,218,219,219,219,213,213,213,216,216,216,215,215,215,219,219,219,
607     217,217,217,219,219,219,217,217,217,212,212,212,223,223,223,216,216,216,214,214,214,218,218,218,217,217,217,220,220,220,218,218,
608     218,213,213,213,215,215,215,217,217,217,224,224,224,219,219,219,225,225,225,216,216,216,212,212,212,226,226,226,216,216,216,214,
609     214,214,222,222,222,217,217,217,218,218,218,213,213,213,210,210,210,216,216,216,217,217,217,227,227,227,221,221,221,218,218,218,
610     215,215,215,210,210,210,225,225,225,214,214,214,215,215,215,223,223,223,216,216,216,218,218,218,216,216,216,209,209,209,213,213,
611     213,220,220,220,224,224,224,215,215,215,204,204,204
612   };
613   data=librevenge::RVNGBinaryData(wall2,781);
614   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[2])));
615 
616   static unsigned char const wall3[3085]= {
617     80,54,10,51,50,32,51,50,10,50,53,53,10,255,255,153,255,255,153,255,254,152,255,255,154,242,242,150,216,216,149,217,
618     217,154,191,191,143,241,241,146,255,255,154,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,
619     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
620     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,254,152,255,255,156,249,245,149,222,220,170,149,150,247,144,
621     144,234,207,207,198,158,158,156,218,218,146,255,255,154,254,254,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,
622     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
623     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,152,255,255,156,254,254,161,253,189,33,228,173,81,148,155,245,158,
624     156,234,230,230,214,223,223,230,159,159,156,244,244,148,255,255,154,254,254,153,255,255,153,255,255,153,255,255,153,255,255,153,
625     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
626     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,154,255,252,150,255,198,42,248,119,0,218,92,8,193,185,177,255,
627     255,255,227,226,228,194,194,191,182,182,189,198,198,145,255,255,154,253,253,153,255,255,153,255,255,153,255,255,153,255,255,153,
628     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
629     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,165,255,199,83,246,107,0,244,169,81,248,234,142,199,199,144,178,
630     178,153,154,154,154,217,217,214,188,188,197,179,179,129,255,255,157,252,252,152,255,255,153,255,255,153,255,255,153,255,255,153,
631     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
632     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,154,255,249,148,252,241,147,254,254,164,255,255,156,254,254,155,255,
633     255,150,194,194,146,240,240,246,179,179,185,168,168,117,255,255,159,252,252,152,255,255,153,255,255,153,255,255,153,255,255,153,
634     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
635     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,154,255,255,155,255,252,150,255,254,152,251,251,153,255,
636     255,154,199,199,149,219,219,225,172,172,178,167,167,115,255,255,159,252,252,152,255,255,153,255,255,153,255,255,153,255,255,153,
637     255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
638     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,254,152,255,255,153,255,255,153,253,253,153,255,
639     255,152,201,201,151,240,240,246,145,145,153,166,166,119,255,255,159,252,252,152,255,255,153,254,254,153,253,253,153,255,255,155,
640     255,255,155,255,255,156,255,255,155,255,255,155,255,255,152,254,254,152,254,254,154,255,255,153,255,255,153,255,255,153,255,255,
641     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,253,253,153,255,
642     255,155,195,195,145,211,211,219,148,148,147,214,214,138,255,255,155,251,251,152,254,254,153,255,255,154,254,254,153,240,240,144,
643     239,239,143,239,239,142,240,240,144,241,241,144,250,250,157,255,255,159,255,255,151,254,254,152,253,253,153,253,253,153,254,254,
644     153,255,255,154,254,254,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,155,243,
645     243,143,196,196,168,231,231,236,132,132,131,215,215,142,255,255,163,254,254,158,254,254,153,221,221,147,195,195,150,197,197,189,
646     201,201,196,202,202,197,194,194,189,181,181,175,168,168,165,192,192,167,234,234,157,255,255,156,255,255,151,255,255,153,255,255,
647     153,246,246,148,254,254,151,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,154,254,254,151,188,
648     188,159,219,219,227,255,255,252,131,131,136,103,103,85,202,202,127,187,187,127,166,166,138,187,187,193,228,228,236,253,253,254,
649     250,250,251,255,255,255,248,248,249,252,252,253,230,230,231,217,217,222,184,184,190,188,188,160,215,215,161,207,207,156,203,203,
650     154,202,202,196,237,237,165,255,255,150,254,254,153,255,255,153,255,255,153,255,255,153,254,254,153,255,255,155,215,215,142,205,
651     205,210,255,255,255,238,238,238,206,206,205,122,122,127,127,127,130,140,140,147,213,213,219,250,250,249,252,252,251,252,252,252,
652     254,254,254,230,230,229,232,232,232,248,248,247,240,240,240,227,227,226,246,246,245,210,210,213,136,136,146,122,122,130,229,229,
653     235,222,222,232,205,205,155,255,255,152,253,253,153,255,255,153,255,255,153,255,255,153,253,253,153,255,255,151,202,202,159,238,
654     238,249,255,255,255,246,246,246,229,229,229,229,229,228,246,246,246,255,255,255,253,253,253,245,245,244,250,250,250,255,255,255,
655     255,255,255,252,252,252,255,255,255,237,237,237,226,226,226,243,243,244,219,219,216,217,217,205,133,133,133,173,173,171,255,255,
656     255,198,198,193,239,239,146,255,255,154,254,254,153,255,255,153,255,255,153,255,255,153,254,254,153,255,255,152,233,233,159,228,
657     228,230,255,255,255,239,239,239,247,247,247,253,253,253,253,253,253,251,251,251,237,237,237,246,246,246,253,253,253,248,248,248,
658     253,253,253,252,252,252,240,240,240,232,232,232,230,230,230,243,243,242,247,247,247,144,144,146,146,146,145,231,231,230,222,222,
659     220,173,173,180,212,212,161,255,255,152,254,254,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,251,251,153,163,
660     163,155,218,219,222,241,241,241,255,255,255,253,253,253,245,245,245,249,249,249,248,248,248,248,248,248,249,249,249,254,254,254,
661     248,248,248,238,238,238,239,239,239,254,254,254,250,250,250,241,241,241,172,172,172,153,153,152,240,240,242,242,242,243,209,209,
662     209,152,152,154,167,167,159,244,244,155,254,254,152,255,255,153,255,255,153,255,255,153,255,255,153,253,253,153,255,255,154,199,
663     199,149,229,229,233,252,251,248,252,252,252,255,255,255,229,229,229,242,242,242,255,255,255,245,245,245,249,249,249,255,255,255,
664     255,255,255,253,253,253,240,240,240,242,242,242,214,214,214,176,176,176,163,163,163,236,236,238,232,232,222,196,195,191,184,181,
665     178,227,227,224,178,178,184,165,165,136,255,255,154,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,243,
666     245,151,177,167,153,223,222,224,245,247,247,255,255,255,248,248,248,216,216,216,203,203,203,181,181,181,192,192,192,200,200,200,
667     219,219,219,203,203,203,195,195,195,172,172,172,153,153,153,161,161,161,239,239,239,216,216,216,182,183,178,105,102,97,212,202,
668     194,177,179,189,94,94,97,213,213,139,255,255,156,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,254,254,153,255,
669     255,153,214,217,148,192,182,170,224,218,215,237,237,235,241,242,241,253,253,253,230,230,230,222,222,222,210,210,210,175,175,175,
670     178,178,178,154,154,154,165,165,165,180,180,180,197,197,197,194,194,193,194,194,193,113,113,118,73,73,83,138,138,141,178,180,
671     172,178,178,133,222,222,148,255,255,157,253,253,152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
672     255,153,253,253,153,249,248,148,174,163,122,182,179,188,202,203,205,223,223,223,251,251,250,212,212,212,242,242,242,238,238,239,
673     229,229,229,237,237,237,206,206,206,235,235,234,233,233,231,192,192,194,101,101,106,142,142,112,199,199,149,222,222,149,248,248,
674     146,254,254,156,255,255,154,254,254,152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
675     255,153,253,253,153,255,255,156,242,244,148,191,191,141,164,164,155,140,140,142,172,171,180,192,195,196,207,206,206,207,203,203,
676     195,193,191,185,184,181,172,172,172,141,141,149,89,89,96,99,99,96,198,198,126,255,255,161,253,253,154,255,255,154,255,255,
677     154,253,253,153,254,254,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
678     255,153,255,255,153,254,254,153,254,254,154,253,253,154,253,253,152,209,209,135,153,158,110,111,95,89,110,116,116,98,117,119,
679     96,105,116,88,93,104,106,105,104,166,166,117,171,171,117,240,240,147,255,255,158,254,254,152,252,252,153,254,254,153,255,255,
680     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
681     255,153,255,255,153,255,255,153,255,255,153,253,253,153,254,253,152,255,255,162,252,195,125,113,11,0,197,117,27,165,52,47,
682     158,98,29,166,134,86,233,239,163,255,255,158,254,254,159,255,255,155,253,253,152,255,255,153,255,255,153,255,255,153,255,255,
683     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
684     255,153,255,255,153,255,255,153,255,255,153,255,255,153,254,247,149,255,255,166,245,139,95,162,22,31,171,21,7,94,11,0,
685     249,164,0,174,68,1,211,173,106,255,255,158,251,249,150,254,254,152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
686     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
687     255,153,255,255,153,255,255,153,255,255,153,255,255,155,255,250,157,254,253,148,255,116,68,218,0,0,186,25,27,163,43,40,
688     212,89,15,170,36,14,182,25,27,255,243,145,255,255,157,255,254,154,255,255,153,255,254,151,255,254,151,255,254,151,255,254,
689     151,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
690     255,153,255,255,153,255,255,153,255,255,155,255,245,145,255,156,105,251,78,70,255,99,97,199,3,4,182,0,0,255,82,82,
691     242,43,55,250,35,41,198,25,18,239,237,138,255,255,150,255,251,146,255,254,154,255,255,162,255,255,161,255,255,161,255,255,
692     161,255,255,155,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
693     255,153,255,255,153,255,254,152,255,255,156,255,240,142,245,24,25,253,12,17,255,20,19,179,0,0,179,16,16,255,47,47,
694     253,0,0,249,0,1,164,12,3,240,195,54,255,210,58,254,204,53,255,218,79,255,231,106,255,229,101,255,230,102,255,230,
695     103,255,250,144,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
696     255,153,255,255,153,255,255,153,254,253,152,255,255,159,203,137,85,187,0,0,182,2,2,124,0,0,218,24,24,255,53,53,
697     254,0,0,251,0,3,154,13,3,242,196,45,255,206,50,254,203,50,255,202,46,255,201,44,255,200,43,255,198,38,255,202,
698     46,255,212,66,255,253,148,255,255,154,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
699     255,153,255,255,153,255,255,153,255,255,153,255,254,153,255,255,161,204,165,101,157,57,29,214,21,21,255,109,109,251,35,35,
700     255,0,0,231,0,1,155,9,5,229,177,62,255,210,54,254,203,51,255,204,50,255,201,45,255,202,47,255,221,85,255,254,
701     150,255,252,146,255,255,152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
702     255,153,255,255,153,255,255,153,255,255,153,255,254,153,255,252,151,255,255,162,255,101,73,255,56,58,255,20,17,255,0,0,
703     252,2,1,167,0,0,173,65,40,222,157,73,255,202,42,255,202,49,255,209,61,255,226,96,255,241,124,255,255,158,255,255,
704     155,255,255,154,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
705     255,153,255,255,153,255,255,153,255,255,153,255,255,153,254,253,151,255,255,160,234,92,66,195,0,0,199,4,3,202,0,0,
706     178,16,7,184,103,63,234,195,101,253,217,78,255,230,101,255,240,124,255,254,152,255,254,160,255,255,158,255,255,152,255,255,
707     152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
708     255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,254,152,255,255,155,246,243,148,187,137,83,181,126,76,201,149,86,
709     229,198,117,254,255,156,255,255,149,255,254,153,255,255,163,255,255,158,255,255,154,255,254,151,255,254,152,255,255,153,255,255,
710     153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,
711     255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,153,255,255,152,255,254,154,255,255,166,255,255,167,255,255,165,
712     255,255,160,255,255,153,254,254,154,255,255,153,255,254,150,255,254,152,255,255,153,255,255,153,255,255,153,255,255,153,255,255,
713     153,255,255,153,255,255,153,255,255,153,255,255,153
714   };
715   data=librevenge::RVNGBinaryData(wall3,3085);
716   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(32,32),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[3])));
717   static unsigned char const wall4[781]= {
718     80,54,10,49,54,32,49,54,10,50,53,53,10,189,16,230,207,20,255,213,16,255,209,20,255,207,16,255,207,14,255,207,
719     14,255,214,20,255,212,16,255,215,14,255,207,18,255,208,14,255,207,16,255,209,20,255,177,23,221,151,6,183,158,11,209,
720     194,10,238,217,19,255,217,14,255,217,17,255,217,18,255,217,14,255,214,14,255,214,17,255,216,18,255,216,17,255,215,15,
721     255,216,16,255,215,14,254,149,12,195,136,9,182,152,9,203,159,10,208,200,13,238,216,14,255,216,15,255,216,14,255,215,
722     18,255,219,13,255,216,15,255,218,14,255,216,20,255,212,15,255,220,17,255,206,11,238,142,0,173,137,3,177,153,11,204,
723     153,10,203,172,10,211,210,16,248,214,21,255,214,14,255,217,15,255,215,15,255,216,21,255,216,13,255,217,15,255,217,16,
724     255,212,19,255,177,12,216,124,12,164,137,14,183,153,11,204,153,11,201,152,10,203,169,13,221,207,13,250,217,15,255,217,
725     20,255,210,15,255,219,14,255,214,15,255,214,13,255,216,16,255,210,15,247,153,5,188,127,6,164,138,15,183,153,12,204,
726     153,5,196,153,9,201,152,6,204,180,8,222,218,18,253,214,17,255,215,15,255,217,13,255,216,21,255,220,15,255,212,19,
727     255,188,12,226,140,10,175,132,5,161,137,8,187,153,8,204,153,11,204,153,9,204,153,10,201,156,11,205,184,12,229,215,
728     18,252,217,15,255,217,17,255,217,13,255,212,15,255,211,14,253,165,8,199,130,7,168,127,2,164,145,9,177,153,9,204,
729     153,8,196,153,11,202,153,10,196,153,11,201,157,7,206,190,13,237,218,16,255,215,20,255,216,10,255,217,19,255,192,16,
730     234,144,6,178,135,5,175,130,3,160,146,4,184,153,11,204,153,11,201,153,8,203,153,11,204,153,5,202,152,10,203,160,
731     8,208,202,14,238,217,16,255,219,18,255,214,14,253,176,12,211,136,3,170,132,8,172,117,10,165,135,3,177,153,5,204,
732     153,8,205,153,10,196,153,10,202,153,11,196,153,7,201,153,10,204,169,10,211,207,13,248,217,15,255,202,11,247,148,11,
733     186,129,5,173,136,10,177,122,8,170,136,11,183,153,11,203,153,10,202,153,10,202,153,7,202,153,11,202,153,10,204,153,
734     10,201,153,8,203,169,13,221,210,16,251,187,12,220,134,3,169,136,4,175,132,6,171,125,12,164,138,12,181,153,11,201,
735     153,11,196,153,5,205,153,9,202,153,7,196,153,8,205,153,10,197,153,10,202,153,7,202,174,12,212,150,10,191,135,7,
736     170,132,10,177,136,5,170,127,13,170,138,11,186,153,4,204,153,8,205,153,11,202,153,10,197,154,9,206,151,8,197,150,
737     8,195,140,5,181,130,1,168,131,3,157,128,2,163,129,2,168,136,8,171,132,10,173,131,3,161,140,11,186,153,8,202,
738     154,10,197,150,5,199,147,11,194,140,5,181,129,4,174,122,6,159,121,7,153,120,2,152,122,8,153,118,2,153,122,8,
739     153,121,2,163,134,3,168,132,7,167,146,11,186,145,8,186,132,2,173,126,10,161,119,6,158,119,0,153,117,8,152,120,
740     3,153,116,5,153,117,7,153,117,3,153,123,11,153,120,2,153,122,7,153,118,3,153,120,2,157,135,5,181,110,3,155,
741     119,4,152,118,17,152,119,3,153,120,0,153,119,0,153,116,12,153,103,13,153,116,2,153,115,12,153,121,14,153,117,0,
742     153,119,3,153,124,1,153,128,0,153,121,10,155
743   };
744   data=librevenge::RVNGBinaryData(wall4,781);
745   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[4])));
746 
747   static unsigned char const wall5[781]= {
748     80,54,10,49,54,32,49,54,10,50,53,53,10,194,194,181,244,245,220,195,194,180,208,206,189,192,189,177,199,198,179,209,
749     206,197,219,218,199,178,175,166,219,210,193,208,209,191,205,202,181,209,200,192,199,197,177,217,209,197,221,220,196,203,203,186,
750     246,239,211,195,190,175,204,197,176,206,205,185,214,212,190,214,207,192,209,207,180,176,176,166,221,219,198,199,199,176,204,203,
751     179,201,199,184,210,212,189,222,220,192,219,216,195,220,215,209,223,212,200,194,194,182,216,216,198,227,226,207,229,219,207,193,
752     194,179,219,211,192,217,212,198,234,231,208,201,193,182,220,220,200,196,195,180,225,220,204,218,211,203,216,208,194,202,201,189,
753     212,207,180,209,201,189,225,223,199,218,216,195,194,185,167,187,185,162,224,222,198,213,204,197,225,217,192,180,180,162,221,214,
754     198,214,212,190,232,225,203,209,205,187,192,180,160,185,187,172,212,210,188,211,203,192,228,223,202,201,201,193,193,191,172,225,
755     216,206,227,228,203,209,210,193,214,212,191,185,183,173,240,237,211,200,197,187,207,204,185,193,196,182,181,180,165,204,204,186,
756     232,225,203,205,209,187,209,201,179,185,183,165,229,221,197,228,226,208,212,209,184,180,182,161,218,216,194,213,206,192,233,231,
757     206,193,191,178,215,205,184,209,201,183,196,195,173,201,208,192,221,221,200,196,194,175,202,194,178,207,205,189,223,222,199,211,
758     209,199,211,204,189,192,183,175,241,237,218,207,200,190,217,215,195,183,180,170,220,222,200,214,213,200,185,182,169,193,187,176,
759     229,214,202,183,182,165,208,206,180,221,216,200,195,191,169,201,199,182,214,214,192,219,214,196,232,224,197,181,179,161,207,207,
760     183,222,219,199,242,227,204,210,205,191,210,201,181,184,183,171,213,212,195,204,207,192,240,232,208,224,220,211,198,186,176,215,
761     215,198,239,239,214,203,202,189,208,208,185,203,199,192,236,227,206,219,224,208,217,211,200,203,202,184,221,218,202,176,170,156,
762     225,222,194,222,215,192,209,204,186,204,196,180,205,200,178,235,227,211,211,211,182,177,176,166,224,222,191,211,207,189,225,218,
763     199,196,195,173,195,196,173,217,209,191,217,214,194,189,186,179,230,222,206,188,183,170,216,209,197,213,212,196,216,214,197,219,
764     219,205,193,189,170,207,201,197,235,229,212,203,198,183,223,216,202,198,199,188,218,219,197,232,231,213,202,196,185,203,205,186,
765     220,210,188,185,182,170,214,209,190,204,201,183,230,222,194,207,204,190,202,200,177,215,216,196,224,220,199,206,201,184,209,202,
766     180,214,211,189,225,217,192,218,216,195,184,180,161,199,195,183,220,216,200,197,199,186,234,232,205,218,217,199,218,216,200,188,
767     187,174,228,225,205,221,217,205,230,226,203,195,199,185,210,205,190,232,230,216,212,210,192,205,196,189,207,203,189,170,161,145,
768     212,213,185,203,204,188,229,227,199,203,201,181,204,197,177,211,208,192,234,226,197,183,179,162,208,201,181,194,194,174,230,223,
769     198,216,212,193,192,192,171,200,197,178,227,224,200,187,188,178,237,236,214,211,208,200,208,200,186,192,189,181,214,212,199,214,
770     213,205,213,210,190,184,185,170,230,222,205,212,208,199,229,227,199,208,200,192,206,202,188,219,216,203,227,224,198,214,205,188,
771     221,212,187,195,191,178,201,198,173,223,215,201,213,204,179,210,205,185,213,201,182,192,199,173,234,226,194,215,211,193,220,215,
772     190,186,193,177,227,223,190,236,225,205,231,221,195
773   };
774   data=librevenge::RVNGBinaryData(wall5,781);
775   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[5])));
776 
777   static unsigned char const wall6[781]= {
778     80,54,10,49,54,32,49,54,10,50,53,53,10,164,114,35,175,126,42,211,147,51,200,149,48,146,110,40,196,144,48,225,
779     179,59,189,146,48,164,121,41,195,152,50,193,156,48,191,149,50,201,157,49,164,116,42,176,137,49,170,116,39,161,118,39,
780     159,122,44,160,111,41,127,91,35,126,95,33,183,137,43,172,133,47,107,80,23,116,83,30,211,155,56,204,169,59,128,95,
781     33,126,93,31,144,109,36,154,116,41,153,107,32,198,149,52,176,118,38,168,125,42,223,190,63,201,153,47,170,122,38,152,
782     107,42,163,126,44,179,144,48,249,208,75,203,162,55,127,84,37,194,144,48,209,145,48,187,153,53,110,82,22,150,121,39,
783     162,122,42,215,176,58,241,205,70,197,139,52,163,112,41,191,149,52,219,165,58,212,162,57,222,178,68,169,122,40,145,98,
784     30,207,144,49,210,156,53,158,110,42,156,108,35,117,98,35,124,99,35,189,140,51,176,129,41,128,92,30,142,106,39,204,
785     158,51,180,155,54,127,91,28,163,125,40,158,112,41,137,104,35,184,133,44,183,147,56,115,88,28,169,124,39,135,98,29,
786     133,91,31,207,163,58,139,104,34,122,92,27,159,115,38,206,150,50,116,89,30,125,87,30,197,153,48,175,131,41,141,112,
787     38,159,119,42,187,142,51,166,120,40,182,143,48,173,116,44,143,105,35,185,144,52,175,121,42,203,164,59,225,182,63,210,
788     160,56,140,104,39,216,165,56,244,197,69,216,167,57,180,134,47,189,149,48,231,166,59,188,135,47,198,144,46,125,79,28,
789     121,90,31,180,140,44,207,182,61,183,157,54,165,122,42,181,130,39,172,134,46,218,180,59,215,163,51,144,106,41,128,96,
790     36,149,106,37,228,175,54,177,122,38,143,94,34,114,89,27,126,104,35,204,158,56,198,166,56,106,75,21,142,115,40,162,
791     116,42,174,128,47,147,116,38,128,94,34,136,104,34,151,105,32,186,139,52,175,142,51,116,81,31,139,113,45,129,104,38,
792     174,144,49,232,179,54,193,141,45,120,79,29,208,152,48,217,166,55,201,157,56,162,113,39,194,143,47,229,185,65,209,150,
793     52,191,150,52,184,147,48,195,170,58,189,173,69,208,171,61,161,132,48,177,126,44,149,103,33,143,106,39,239,192,65,248,
794     199,67,198,152,58,199,151,51,249,212,73,213,180,65,161,125,46,186,139,46,217,169,55,190,155,56,195,165,53,154,119,47,
795     120,87,26,159,121,40,165,128,46,172,148,57,202,167,61,182,142,48,134,106,31,160,121,42,218,166,61,159,119,35,109,81,
796     24,185,143,48,235,177,59,189,150,51,151,116,43,144,98,29,134,87,34,203,157,56,203,148,46,157,117,36,141,99,33,170,
797     124,41,147,108,40,189,133,41,202,141,48,149,100,35,125,89,30,199,146,51,217,160,52,142,98,38,144,102,36,157,114,43,
798     188,140,49,243,221,81,222,174,60,155,105,41,178,131,46,243,192,65,235,180,65,217,159,56,211,152,52,206,151,52,198,165,
799     58,232,198,70,204,152,56,176,126,46,193,142,42,180,134,39,207,142,57,188,146,51,161,111,38,150,104,30,226,179,59,250,
800     226,81,193,150,53,161,112,39,205,151,54,191,142,48,180,138,46,157,122,42,192,140,46,191,150,50,189,156,51,166,128,41,
801     161,122,48,186,147,42,162,126,43,141,104,39,206,154,53,200,155,52,115,87,28,136,94,36,161,113,40,144,104,37,122,93,
802     29,128,93,27,219,164,55,168,131,49,113,82,25
803   };
804   data=librevenge::RVNGBinaryData(wall6,781);
805   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[6])));
806 
807   static unsigned char const wall7[781]= {
808     80,54,10,49,54,32,49,54,10,50,53,53,10,61,61,61,53,53,53,61,61,61,59,59,59,51,51,51,61,61,61,63,
809     63,63,52,52,52,58,58,58,66,66,66,60,60,60,63,63,63,63,63,63,62,62,62,51,51,51,69,69,69,56,56,56,
810     57,57,57,61,61,61,61,61,61,58,58,58,56,56,56,55,55,55,57,57,57,58,58,58,65,65,65,65,65,65,59,59,
811     59,66,66,66,58,58,58,57,57,57,69,69,69,59,59,59,61,61,61,64,64,64,61,61,61,54,54,54,62,62,62,66,
812     66,66,61,61,61,63,63,63,64,64,64,60,60,60,63,63,63,67,67,67,60,60,60,60,60,60,65,65,65,58,58,58,
813     64,64,64,60,60,60,59,59,59,60,60,60,69,69,69,66,66,66,67,67,67,65,65,65,63,63,63,61,61,61,65,65,
814     65,60,60,60,56,56,56,65,65,65,65,65,65,66,66,66,59,59,59,60,60,60,60,60,60,58,58,58,73,73,73,64,
815     64,64,65,65,65,58,58,58,55,55,55,60,60,60,65,65,65,59,59,59,63,63,63,70,70,70,63,63,63,58,58,58,
816     59,59,59,64,64,64,64,64,64,62,62,62,66,66,66,60,60,60,69,69,69,57,57,57,60,60,60,64,64,64,63,63,
817     63,61,61,61,63,63,63,63,63,63,58,58,58,60,60,60,62,62,62,66,66,66,65,65,65,66,66,66,62,62,62,68,
818     68,68,59,59,59,65,65,65,61,61,61,59,59,59,60,60,60,54,54,54,55,55,55,70,70,70,63,63,63,60,60,60,
819     65,65,65,58,58,58,59,59,59,60,60,60,61,61,61,60,60,60,59,59,59,63,63,63,64,64,64,64,64,64,66,66,
820     66,64,64,64,70,70,70,69,69,69,60,60,60,69,69,69,63,63,63,60,60,60,62,62,62,64,64,64,64,64,64,57,
821     57,57,57,57,57,58,58,58,61,61,61,62,62,62,58,58,58,58,58,58,65,65,65,68,68,68,61,61,61,61,61,61,
822     57,57,57,60,60,60,58,58,58,64,64,64,55,55,55,55,55,55,56,56,56,58,58,58,60,60,60,62,62,62,56,56,
823     56,68,68,68,64,64,64,70,70,70,56,56,56,57,57,57,63,63,63,63,63,63,59,59,59,65,65,65,56,56,56,67,
824     67,67,61,61,61,70,70,70,69,69,69,67,67,67,65,65,65,71,71,71,54,54,54,56,56,56,56,56,56,59,59,59,
825     69,69,69,60,60,60,62,62,62,65,65,65,56,56,56,61,61,61,59,59,59,64,64,64,64,64,64,63,63,63,62,62,
826     62,56,56,56,55,55,55,60,60,60,57,57,57,68,68,68,67,67,67,62,62,62,61,61,61,60,60,60,54,54,54,67,
827     67,67,59,59,59,56,56,56,67,67,67,60,60,60,59,59,59,66,66,66,68,68,68,64,64,64,73,73,73,57,57,57,
828     62,62,62,58,58,58,59,59,59,61,61,61,68,68,68,66,66,66,60,60,60,62,62,62,62,62,62,65,65,65,70,70,
829     70,64,64,64,54,54,54,63,63,63,63,63,63,59,59,59,65,65,65,61,61,61,66,66,66,68,68,68,64,64,64,57,
830     57,57,59,59,59,63,63,63,67,67,67,63,63,63,62,62,62,59,59,59,69,69,69,64,64,64,61,61,61,60,60,60,
831     57,57,57,71,71,71,62,62,62,65,65,65,56,56,56,63,63,63,67,67,67,69,69,69,62,62,62,58,58,58,57,57,
832     57,62,62,62,63,63,63,55,55,55,52,52,52
833   };
834   data=librevenge::RVNGBinaryData(wall7,781);
835   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[7])));
836 
837   static unsigned char const wall8[781]= {
838     80,54,10,49,54,32,49,54,10,50,53,53,10,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
839     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
840     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,239,238,240,
841     240,238,239,239,238,238,238,238,238,238,238,238,238,238,239,239,238,239,239,238,239,239,238,239,239,238,239,239,238,239,239,238,
842     239,239,238,239,239,238,239,239,238,238,238,238,225,225,233,188,188,234,213,213,238,239,239,238,238,238,238,238,238,234,223,223,
843     240,227,227,245,221,221,246,211,211,247,211,211,247,211,211,247,212,212,247,204,204,246,202,202,247,215,215,253,204,204,239,145,
844     145,224,182,182,240,236,236,238,239,239,238,238,238,224,153,153,249,178,178,253,216,216,254,200,200,255,195,195,255,190,190,255,
845     185,185,255,171,171,255,183,183,255,213,213,250,186,186,233,133,133,222,126,126,240,183,183,228,208,208,238,239,239,252,183,183,
846     254,214,214,255,199,199,255,180,180,255,169,169,255,165,165,254,156,156,251,148,148,255,156,156,251,155,155,222,122,122,204,102,
847     102,195,92,92,181,98,98,215,187,187,239,240,240,255,175,175,255,195,195,255,174,174,248,150,150,233,130,130,231,128,128,225,
848     123,123,211,109,109,228,126,126,219,116,116,189,86,86,175,82,82,197,146,146,222,209,209,236,237,237,238,238,238,255,168,168,
849     255,184,184,240,142,142,208,106,106,180,78,78,177,74,74,166,64,64,170,67,67,201,99,99,199,96,96,164,66,66,207,172,
850     172,239,241,241,239,240,240,238,238,238,238,238,238,254,172,172,255,171,171,227,124,124,185,83,83,162,70,70,161,70,70,161,
851     70,70,166,74,74,199,98,98,196,93,93,171,84,84,230,222,222,239,239,239,238,238,238,238,238,238,238,238,238,240,183,183,
852     236,135,135,191,88,88,185,117,117,225,211,211,229,218,218,229,218,218,229,210,210,216,128,128,178,73,73,192,136,136,238,239,
853     239,238,238,238,238,238,238,238,238,238,238,238,238,236,209,209,208,112,112,197,124,124,230,222,222,239,241,241,239,239,239,239,
854     239,239,239,240,240,233,182,182,191,86,86,198,148,148,240,242,242,238,238,238,238,238,238,238,238,238,238,238,238,234,224,224,
855     213,125,125,238,181,181,239,240,240,238,238,238,238,238,238,238,238,238,238,239,239,240,232,232,218,149,149,185,111,111,232,222,
856     222,238,239,239,238,238,238,238,238,238,238,238,238,238,237,237,228,198,198,234,192,192,239,235,235,238,238,238,238,238,238,238,
857     238,238,238,238,238,238,239,239,234,225,225,210,163,163,227,206,206,238,239,239,238,238,238,238,238,238,238,238,238,238,238,238,
858     238,240,240,238,240,240,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,239,239,241,241,238,239,
859     239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
860     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
861     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
862     238,238,238,238,238,238,238,238,238,238,238,238,238
863   };
864   data=librevenge::RVNGBinaryData(wall8,781);
865   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[8])));
866 
867   static unsigned char const wall9[3085]= {
868     80,54,10,51,50,32,51,50,10,50,53,53,10,205,135,154,165,109,132,147,116,109,143,115,116,129,117,117,121,127,126,159,
869     138,142,138,182,164,103,193,204,136,220,213,173,233,238,155,237,213,97,201,199,102,189,172,101,156,162,122,138,137,122,116,127,
870     125,126,128,128,142,139,145,111,126,146,119,141,157,156,153,179,179,177,188,199,200,207,215,219,208,230,219,212,243,240,221,243,
871     243,225,226,226,224,226,224,206,204,204,196,161,173,195,169,168,164,143,146,143,134,123,132,120,121,121,123,123,116,115,117,119,
872     126,116,109,144,143,127,162,185,145,208,208,166,221,230,151,241,224,109,211,218,105,204,205,104,180,197,124,166,160,129,138,142,
873     128,125,130,149,120,141,174,144,167,143,108,126,162,138,138,207,117,156,194,183,170,198,190,177,219,214,217,234,232,232,235,241,
874     241,239,239,240,233,236,233,217,227,216,198,196,196,188,204,204,170,181,180,134,146,154,123,132,134,122,131,130,120,120,119,124,
875     115,111,80,136,125,88,158,154,115,188,187,110,211,226,127,217,237,117,229,234,102,222,236,102,214,221,107,200,191,150,173,182,
876     151,144,166,161,137,153,173,130,157,175,112,156,206,124,166,206,127,155,201,157,154,196,173,164,195,191,194,209,206,208,225,226,
877     224,232,232,231,228,227,229,224,223,224,221,221,221,197,217,214,170,198,201,125,176,183,96,162,150,125,152,153,110,132,139,105,
878     130,143,78,106,131,69,132,148,91,156,159,102,199,196,103,197,196,103,213,205,100,233,217,103,217,216,132,206,205,175,200,192,
879     181,182,180,169,170,167,186,151,152,198,136,159,204,146,161,206,150,156,206,167,169,198,156,173,212,154,156,205,169,164,200,190,
880     191,205,205,209,219,222,217,224,224,224,218,220,220,190,215,224,148,201,208,110,206,208,104,192,170,126,164,184,78,155,160,64,
881     168,152,75,124,148,103,145,140,76,140,136,91,147,160,104,167,156,96,195,201,109,213,205,126,229,229,145,206,220,188,214,215,
882     210,210,212,202,203,203,202,184,187,199,149,161,202,153,162,201,152,185,206,170,173,202,161,166,209,177,162,206,178,174,204,171,
883     153,201,164,177,200,178,189,212,210,214,204,218,217,184,203,208,164,205,207,118,232,232,101,234,217,107,199,203,108,185,185,131,
884     176,182,74,158,153,82,150,154,94,110,131,110,131,133,103,149,153,120,157,156,143,176,175,157,189,195,168,203,215,194,214,227,
885     204,218,220,227,225,224,211,210,216,199,184,198,192,178,185,204,195,180,202,169,173,205,166,172,203,157,178,204,164,153,204,167,
886     153,204,147,150,205,145,160,192,165,177,179,194,191,161,170,172,116,207,192,102,214,221,105,242,231,98,222,214,127,213,226,156,
887     211,213,101,185,182,108,154,183,107,146,160,132,127,121,120,131,126,149,140,144,169,155,163,175,172,169,185,185,183,202,211,211,
888     219,221,222,221,220,220,223,223,222,221,223,220,208,208,208,211,179,188,201,193,189,202,155,188,205,151,161,204,150,163,203,157,
889     158,206,106,153,209,115,151,172,148,156,164,169,169,147,153,153,99,161,157,99,181,201,102,222,203,130,251,219,132,230,222,127,
890     214,220,106,230,228,136,209,191,114,153,177,130,143,134,120,127,120,140,119,123,144,114,146,160,133,154,177,173,167,197,176,186,
891     214,211,206,224,227,227,228,227,227,230,232,233,221,230,230,215,217,215,209,212,209,207,183,188,200,170,152,203,142,165,208,102,
892     157,196,120,150,167,110,153,145,138,140,146,121,136,123,121,122,127,142,141,112,158,164,109,184,196,140,215,211,116,219,209,136,
893     233,238,136,228,228,153,219,209,109,186,201,145,156,159,133,129,129,151,126,120,167,109,135,169,128,143,191,113,148,201,159,161,
894     195,182,173,207,197,202,222,225,224,238,239,239,235,240,240,235,232,232,229,230,230,218,220,218,196,193,197,200,167,178,191,127,
895     147,159,106,139,150,114,146,161,102,104,139,120,119,116,116,127,133,128,137,124,138,149,84,159,164,91,204,186,117,202,209,133,
896     229,214,139,230,241,139,214,228,121,213,227,175,182,176,158,165,170,176,125,125,189,97,113,198,104,139,204,100,156,204,150,151,
897     206,149,163,196,169,175,207,202,205,230,226,229,238,235,235,233,244,241,224,237,225,229,225,231,213,209,222,196,191,193,183,179,
898     161,144,130,142,145,129,130,157,103,107,122,137,107,114,114,112,110,115,122,100,117,126,80,143,140,92,172,155,138,197,196,110,
899     213,205,116,216,235,180,219,242,152,218,238,160,201,206,161,168,175,155,157,159,166,108,129,206,98,148,204,132,155,204,155,147,
900     205,152,176,204,158,176,196,180,165,207,210,209,224,222,222,225,234,234,236,242,242,233,238,230,184,207,245,176,209,220,191,187,
901     187,164,166,166,144,133,136,133,120,131,118,121,120,112,111,111,133,125,124,119,122,118,127,132,127,81,141,155,137,174,178,106,
902     191,196,99,224,223,117,248,230,154,224,241,164,214,219,167,188,185,167,161,164,196,99,155,205,122,154,204,158,151,201,154,159,
903     197,173,177,212,167,178,205,170,166,194,178,187,210,210,214,225,224,222,214,228,238,191,244,247,171,242,220,174,224,234,195,200,
904     205,149,170,184,155,168,166,130,133,132,113,112,121,119,113,113,125,118,118,109,119,117,94,113,125,85,137,144,122,148,145,121,
905     164,162,96,207,198,116,223,226,150,234,218,173,215,228,209,216,224,196,184,181,199,136,158,205,145,153,203,154,153,204,168,173,
906     203,158,168,200,162,175,205,163,171,202,156,162,192,178,191,215,214,210,193,219,230,154,241,226,152,246,244,140,232,234,142,213,
907     211,121,218,205,125,177,180,138,150,146,129,128,133,101,125,137,122,120,121,98,107,112,101,112,118,122,111,127,126,128,129,118,
908     146,147,128,183,185,134,207,219,143,214,240,188,208,227,199,216,220,207,213,214,204,162,174,205,151,164,202,155,162,206,162,171,
909     208,150,180,201,158,164,203,155,156,205,140,149,203,156,156,188,188,188,185,207,202,156,223,219,151,231,252,148,243,209,148,229,
910     213,99,244,233,120,205,207,156,172,185,128,155,162,117,160,159,90,123,152,111,119,124,106,120,111,115,123,130,114,113,114,128,
911     123,128,140,158,164,157,187,195,151,206,217,171,229,215,216,217,218,219,224,222,209,194,208,196,172,163,203,165,162,197,174,173,
912     201,154,174,201,162,168,204,140,158,206,114,161,189,162,172,173,166,165,180,177,177,159,201,211,142,214,247,136,227,221,160,245,
913     210,143,249,244,119,239,225,101,196,208,99,159,189,147,172,180,77,152,151,102,133,126,116,114,116,116,116,114,100,104,101,124,
914     111,136,134,136,142,166,165,170,188,203,196,209,222,241,227,224,229,226,226,224,219,221,221,198,195,194,212,153,162,209,152,151,
915     203,161,148,204,154,153,204,128,164,206,105,167,180,120,142,148,132,122,165,162,164,154,189,180,106,215,220,112,223,248,141,227,
916     212,177,239,222,144,230,227,100,206,219,103,201,200,98,195,205,110,154,162,112,151,148,115,134,134,131,123,122,110,106,114,126,
917     114,121,137,132,134,161,158,163,184,184,182,209,207,214,224,225,227,234,232,232,223,234,234,217,222,222,201,175,181,204,157,168,
918     205,160,170,203,129,155,205,127,152,181,114,163,159,139,137,143,111,116,141,143,143,133,164,157,145,194,189,95,219,225,122,222,
919     239,165,244,205,184,246,243,139,212,227,101,201,208,115,216,202,123,180,202,151,173,176,97,149,148,131,129,128,111,107,119,153,
920     104,101,148,122,117,159,131,154,184,164,165,201,196,195,222,222,223,233,232,232,240,240,240,232,232,233,219,224,221,203,198,198,
921     199,148,158,210,123,151,191,102,149,156,154,147,138,143,120,138,113,115,137,132,120,116,144,144,123,161,163,99,176,189,131,226,
922     213,137,237,218,170,233,239,164,240,226,137,211,247,145,212,222,98,229,205,95,193,195,138,160,160,141,137,138,122,128,124,151,
923     124,113,156,112,127,168,127,129,187,132,140,195,179,177,210,204,208,234,235,234,239,238,239,238,238,238,230,227,228,219,223,222,
924     195,187,178,190,162,166,169,143,150,148,128,136,150,104,123,138,114,104,114,133,125,120,131,121,110,185,139,107,145,150,126,187,
925     185,129,211,218,192,223,229,162,243,216,155,245,221,152,237,227,117,236,220,105,213,202,141,187,189,132,152,164,125,145,137,147,
926     131,132,158,106,130,171,125,143,195,120,146,202,157,174,198,188,189,219,219,221,233,234,233,240,239,239,232,237,236,222,223,230,
927     219,220,211,185,184,188,168,166,166,142,148,146,145,111,127,123,123,117,113,129,140,114,118,120,115,136,121,99,132,151,142,163,
928     172,111,188,197,191,223,220,136,226,226,148,234,220,151,239,226,157,227,225,115,230,233,125,211,219,114,176,188,151,151,160,143,
929     134,147,168,145,140,182,150,150,203,111,164,206,148,158,197,161,166,208,199,200,228,224,224,235,237,237,225,246,245,224,225,233,
930     207,213,225,191,210,214,182,178,179,162,165,160,133,127,132,122,116,131,113,112,119,121,119,112,101,110,126,71,113,124,103,148,
931     160,91,167,172,98,197,194,96,231,225,124,248,232,174,219,226,144,249,237,149,230,228,132,217,221,110,203,212,142,195,188,163,
932     162,163,175,141,132,198,132,151,204,126,162,204,158,161,205,153,173,194,176,188,214,216,214,236,235,236,238,240,241,211,250,241,
933     182,233,242,183,211,229,176,208,204,175,172,187,140,159,149,114,125,137,107,104,131,124,126,107,101,117,117,79,114,101,74,155,
934     127,79,146,146,107,172,177,97,189,203,133,208,215,120,223,233,126,216,236,158,240,227,143,243,251,128,215,216,144,203,204,182,
935     189,185,177,149,172,204,107,154,204,151,154,204,153,159,203,161,161,199,169,160,197,189,189,219,223,217,230,224,230,208,241,213,
936     172,252,227,174,226,233,143,209,209,123,198,197,122,194,162,108,152,154,111,120,148,110,106,127,95,105,115,107,110,109,91,140,
937     118,109,126,131,124,187,160,102,162,178,134,192,206,125,202,196,106,221,225,134,234,219,157,251,226,137,236,234,162,210,242,216,
938     217,218,187,175,176,204,136,153,204,148,151,203,148,163,208,177,169,206,160,164,201,156,157,196,186,176,221,215,216,205,224,224,
939     145,255,230,178,247,227,152,217,223,102,222,227,107,200,196,120,158,164,92,141,153,93,118,158,89,109,131,110,118,109,94,114,
940     116,106,112,139,128,136,136,110,137,150,178,180,179,115,166,194,105,211,216,106,226,211,156,222,235,149,239,225,179,244,224,210,
941     229,220,181,201,197,199,166,167,204,143,150,204,150,191,204,154,161,204,152,167,205,152,161,194,169,178,200,180,184,194,210,213,
942     171,229,213,179,250,224,132,247,246,143,214,253,98,217,238,105,202,210,114,158,168,91,156,149,105,118,139,105,126,116,106,141,
943     104,106,99,111,118,116,118,131,128,127,138,155,166,105,151,176,136,184,187,107,196,204,114,228,234,140,254,230,168,252,234,193,
944     226,238,217,215,221,206,184,202,201,165,152,205,157,183,204,152,180,203,155,163,203,152,158,205,138,153,198,159,167,182,196,199,
945     188,210,213,181,235,217,168,225,239,171,242,243,101,236,245,164,236,221,171,192,202,140,161,171,100,140,145,106,126,122,116,126,
946     121,105,132,108,124,135,124,121,118,120,123,133,136,124,124,124,131,147,148,142,187,187,130,209,213,149,223,214,141,236,233,181,
947     235,237,234,223,229,208,213,200,196,175,161,204,151,170,205,152,164,198,169,162,203,135,154,204,100,152,183,150,149,180,175,171,
948     165,192,195,180,210,220,194,231,232,190,240,234,140,234,239,177,227,231,141,205,239,142,195,200,96,154,165,110,147,141,114,121,
949     120,110,145,109,113,125,112,117,112,115,125,133,121,123,123,121,140,144,139,159,157,161,174,176,184,177,204,212,175,220,237,185,
950     248,224,220,233,223,224,225,227,206,195,205,202,153,165,204,152,150,206,126,159,203,111,156,174,108,147,149,123,140,155,144,150,
951     146,174,173,152,192,195,145,211,218,173,208,236,139,240,232,161,242,230,123,225,252,138,210,211,96,179,199,117,156,180,130,141,
952     140,131,135,129,114,116,115,108,109,117,117,127,122,121,127,129,120,132,122,141,140,140,167,167,163,184,187,187,195,220,213,189,
953     231,223,207,224,236,215,218,232,221,213,213,202,189,171,193,168,171,176,114,146,171,117,157,162,122,131,156,118,111,136,130,145,
954     125,147,148,133,163,170,115,198,185,127,214,228,131,226,227,170,244,236,162,245,216,153,218,232,100,201,220,99,172,207,121,170,
955     176,148,147,141,121,122,125,113,119,131,121,144,128,132,111,121,142,121,119,147,115,123,147,140,152,171,169,171,167,194,188,187,
956     219,221,190,229,250,164,222,233,183,212,215,174,207,206,180,182,181,154,149,151,138,112,130,160,127,136,146,142,127,117,118,120,
957     128,125,129,116,144,141,121,163,163,130,205,201,103,207,231,192,230,246,174,237,229,154,234,241,108,208,241,137,206,212,156,179,
958     197,158,164,163,148,134,147,138,119,109,117,116,132,150,116,126,155,101,110,150,107,116,141,122,138,152,141,155,174,163,170,187,
959     189,188,177,205,212,159,213,231,166,234,209,145,218,205,156,191,193,149,164,171,143,139,136,135,112,121,127,129,128,120,125,129,
960     122,121,125,127,126,127,120,152,157,119,180,187,93,198,202,123,210,232,177,233,241,155,243,236,149,226,245,162,220,218,157,220,
961     207,175,187,189,184,170,174,200,111,153,167,111,126,175,103,133,155,101,128,152,102,105,148,115,117,135,117,123,146,138,152,168,
962     167,176,151,196,197,140,214,228,150,212,242,167,216,225,152,225,208,97,192,185,121,155,166,122,131,124,117,114,124,108,117,132,
963     117,132,123,126,126,123,131,138,137,108,148,160,120,183,173,132,200,211,147,215,224,157,228,239,151,240,251,165,243,242,206,231,
964     216,215,211,213,193,186,185,202,157,161,206,149,152
965   };
966   data=librevenge::RVNGBinaryData(wall9,3085);
967   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(32,32),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[9])));
968   static unsigned char const wall10[781]= {
969     80,54,10,49,54,32,49,54,10,50,53,53,10,128,131,223,119,126,219,114,128,203,129,135,223,102,114,199,116,128,209,108,
970     119,201,99,107,182,103,118,200,111,125,202,120,132,217,114,128,206,123,136,205,110,129,206,110,122,200,118,121,204,116,128,204,
971     112,117,196,119,130,213,120,137,216,117,128,202,128,134,218,111,116,194,121,133,206,126,134,217,108,117,196,121,128,210,117,130,
972     207,119,123,207,118,130,212,101,114,193,107,113,199,100,103,177,106,118,196,111,116,193,128,138,218,121,131,220,111,119,193,114,
973     126,207,106,119,192,107,124,200,101,110,181,128,136,215,131,139,223,118,129,209,114,127,209,108,118,200,105,114,188,124,137,214,
974     117,125,208,126,137,216,120,132,217,109,123,210,118,124,200,116,134,213,110,121,202,121,132,212,123,136,219,120,126,204,105,118,
975     193,114,118,200,104,115,192,108,121,200,117,130,207,134,142,226,118,129,206,115,126,204,117,132,204,111,123,201,105,113,195,115,
976     125,204,120,130,210,122,135,217,119,132,212,105,115,191,107,117,198,104,119,188,108,127,199,127,136,219,126,145,218,118,136,212,
977     105,119,196,112,116,201,107,118,197,115,119,206,126,134,216,113,126,204,109,119,204,118,131,212,108,119,200,109,121,203,117,125,
978     201,131,138,228,127,136,224,122,130,212,113,122,204,127,144,223,122,133,214,119,130,207,125,132,215,126,141,225,119,135,210,117,
979     130,206,123,140,221,130,141,219,112,123,201,109,122,201,120,133,216,129,141,222,121,124,205,124,130,212,112,123,200,116,127,204,
980     105,112,195,109,122,199,120,126,211,125,133,220,114,127,203,113,119,200,110,131,206,123,128,214,110,116,204,120,124,203,108,117,
981     185,106,116,196,121,127,211,116,125,210,99,110,181,122,136,217,119,136,214,119,129,213,122,137,212,121,137,217,110,119,196,120,
982     130,210,114,132,212,116,120,199,103,117,190,109,118,202,107,120,194,128,138,219,120,132,204,111,127,203,115,128,200,127,136,219,
983     122,131,218,102,107,186,111,128,199,115,127,211,110,124,204,113,118,203,113,123,202,95,105,180,106,118,194,111,120,200,109,127,
984     206,116,136,216,121,133,211,121,126,212,132,141,214,110,121,202,107,114,190,107,113,188,119,129,218,124,131,213,111,120,203,112,
985     129,204,120,127,208,107,114,192,123,132,216,111,119,206,133,143,219,132,143,224,103,109,196,120,129,209,119,130,206,111,117,193,
986     117,132,213,121,131,215,116,131,207,129,134,222,112,127,211,127,137,221,108,122,195,118,127,205,118,133,210,133,146,227,131,143,
987     228,116,129,211,116,129,207,112,120,197,107,110,198,107,116,195,124,138,211,110,121,202,118,133,209,129,140,215,119,126,211,111,
988     124,203,112,117,198,124,134,216,111,121,204,115,131,207,114,131,209,117,120,199,101,109,190,99,116,188,123,134,213,114,117,204,
989     112,122,203,117,127,208,113,124,205,122,132,212,112,122,200,118,127,212,122,136,212,110,120,202,101,107,188,110,120,202,124,137,
990     218,95,110,183,105,117,195,124,135,219,124,130,218,127,129,215,123,132,213,125,135,213,114,124,211,122,131,210,123,138,212,117,
991     123,209,111,121,198,112,123,201,119,129,208,123,139,216,131,136,222,103,114,186,119,129,207,118,123,203,125,137,216,125,135,218,
992     119,123,202,115,123,204,111,118,193,105,123,197,105,115,197,104,119,201,107,119,192,97,114,193,98,109,189,98,108,188,107,125,
993     204,111,116,199,103,105,185,125,135,219,131,143,222
994   };
995   data=librevenge::RVNGBinaryData(wall10,781);
996   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[10])));
997 
998   static unsigned char const wall11[781]= {
999     80,54,10,49,54,32,49,54,10,50,53,53,10,200,105,51,194,113,50,205,117,59,202,122,53,204,120,61,205,116,57,195,
1000     114,52,205,117,54,185,109,54,215,126,55,213,117,59,203,121,59,199,114,54,188,109,53,205,120,52,193,115,51,189,114,56,
1001     209,128,61,213,122,62,196,114,54,201,118,56,190,111,59,194,114,55,202,123,59,202,121,58,197,115,54,189,109,53,196,114,
1002     53,190,112,54,212,128,66,187,110,53,187,107,54,219,128,69,209,117,56,182,110,56,177,106,58,199,115,53,190,115,54,218,
1003     130,69,207,124,54,195,111,58,198,116,56,190,120,59,193,111,56,203,120,59,194,114,53,183,108,53,213,122,60,193,115,53,
1004     176,105,52,185,107,53,204,120,58,204,120,61,199,114,55,218,121,63,186,107,53,186,112,53,194,115,55,202,116,57,204,116,
1005     59,206,116,61,191,114,54,198,116,61,207,121,62,200,121,59,202,117,59,204,121,59,197,115,53,194,111,51,199,123,61,202,
1006     117,61,188,110,50,193,109,53,205,119,60,202,118,56,204,118,53,203,125,61,190,112,57,212,123,60,204,118,56,204,124,56,
1007     204,121,59,199,111,54,195,117,53,191,114,53,201,121,61,199,112,54,191,115,52,199,121,64,210,125,63,199,114,59,204,116,
1008     54,184,114,54,208,117,61,211,128,58,192,115,60,199,114,60,200,114,55,198,118,61,197,114,58,197,113,54,205,119,57,202,
1009     120,59,206,116,59,205,118,60,204,129,61,200,115,56,190,109,58,199,119,61,215,124,61,198,117,58,183,104,53,203,116,54,
1010     198,116,60,191,115,53,196,116,59,205,120,64,202,121,61,195,115,55,207,116,59,199,117,56,204,121,54,185,110,52,189,106,
1011     53,212,125,54,206,120,59,181,108,53,198,112,60,193,113,51,186,112,50,193,111,53,204,122,57,207,122,59,195,117,53,202,
1012     120,60,201,114,54,204,122,61,191,113,53,185,112,51,207,127,64,203,120,61,195,111,53,186,102,52,204,114,54,193,110,52,
1013     199,113,61,198,117,61,202,115,56,191,112,54,202,116,60,199,112,53,198,120,61,209,122,61,188,106,51,193,117,56,205,118,
1014     59,196,115,56,193,113,54,204,123,58,210,124,59,202,121,54,194,110,61,194,114,54,206,120,60,205,118,64,205,122,56,193,
1015     114,59,201,117,56,192,114,52,186,113,56,205,119,61,204,121,51,206,118,58,184,107,54,207,121,56,203,121,63,207,119,54,
1016     199,122,50,198,118,61,218,127,66,208,123,59,201,114,51,194,113,56,199,121,59,196,117,56,204,122,61,212,123,59,203,123,
1017     58,197,114,59,191,110,52,197,115,54,195,112,53,199,114,60,188,110,51,211,125,62,214,126,63,206,117,61,181,107,53,194,
1018     118,58,204,116,58,202,118,60,208,120,61,208,121,56,199,109,57,189,114,56,205,119,56,204,120,61,210,129,59,186,109,53,
1019     197,122,61,214,123,61,197,112,51,192,111,56,177,102,52,191,109,54,202,120,62,196,118,55,212,124,61,206,119,59,196,112,
1020     53,193,108,53,204,121,58,203,125,59,201,116,57,201,123,55,197,112,54,204,123,61,200,116,55,198,116,59,183,106,56,201,
1021     123,61,203,118,58,202,117,58,205,122,61,189,114,53,182,113,53,206,123,59,203,115,61,202,117,57,195,110,54,200,124,61,
1022     207,124,53,219,130,65,213,125,69,191,116,53,190,106,52,213,122,54,204,120,53,196,119,63,193,113,51,189,105,51,208,125,
1023     61,202,116,56,201,116,56,204,126,63,204,114,60
1024   };
1025   data=librevenge::RVNGBinaryData(wall11,781);
1026   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[11])));
1027 
1028   static unsigned char const wall12[781]= {
1029     80,54,10,49,54,32,49,54,10,50,53,53,10,171,76,63,193,89,73,198,94,75,154,70,58,173,84,67,193,90,72,204,
1030     99,73,212,103,80,210,97,84,185,87,65,172,75,59,213,104,83,187,82,73,198,91,71,223,103,84,205,99,68,180,86,71,
1031     200,100,76,206,99,80,173,76,65,182,90,72,171,79,64,164,73,64,205,102,82,208,99,78,194,91,76,197,94,73,209,104,
1032     86,188,89,74,190,94,79,187,88,69,177,81,59,175,85,62,174,88,64,212,100,83,186,87,76,205,104,80,189,93,78,177,
1033     84,70,174,81,66,196,94,80,203,98,86,174,93,73,191,89,67,196,96,75,168,80,71,180,89,74,217,105,79,221,103,86,
1034     173,78,64,191,85,72,202,95,79,189,92,72,200,100,76,200,95,77,187,90,69,183,87,71,179,87,72,209,108,87,195,90,
1035     66,192,87,71,189,92,69,155,71,54,197,96,74,208,107,88,229,119,92,161,79,58,195,92,72,191,93,78,183,84,68,203,
1036     102,86,170,80,66,172,91,76,179,87,74,158,70,52,196,91,78,207,109,89,224,106,85,213,98,79,184,79,71,188,85,71,
1037     179,83,69,197,91,69,190,91,81,209,96,76,188,88,72,169,81,66,193,94,76,179,85,68,204,100,79,186,89,67,182,86,
1038     70,183,89,77,205,92,77,198,102,78,176,83,75,204,105,79,175,87,75,195,93,78,191,87,66,208,92,79,215,95,83,194,
1039     90,76,214,105,80,207,94,73,216,102,76,209,91,79,183,85,71,179,84,66,178,83,75,178,81,68,191,108,85,147,76,65,
1040     188,102,79,178,93,73,189,94,70,195,91,73,211,98,76,189,91,70,201,97,78,232,107,94,218,94,78,209,98,79,200,96,
1041     79,218,109,85,188,92,75,197,97,74,170,83,66,182,88,71,185,85,74,189,84,71,203,100,77,217,104,84,197,97,79,208,
1042     99,81,189,87,66,215,105,82,226,111,83,177,83,71,192,102,76,177,79,73,203,96,79,175,80,63,208,95,78,189,89,70,
1043     184,89,78,181,84,71,196,88,73,201,92,78,187,81,67,184,84,67,186,91,70,182,78,69,192,87,77,196,94,81,181,84,
1044     61,203,96,74,207,99,78,187,84,69,195,93,74,204,93,77,192,92,68,202,96,80,194,97,80,190,85,70,194,103,83,187,
1045     90,65,207,110,90,177,78,70,172,85,67,207,104,80,206,91,75,198,92,77,214,106,82,188,87,76,181,78,68,173,87,59,
1046     176,83,72,183,87,76,194,87,69,179,88,65,191,97,79,182,90,71,169,89,72,223,112,90,169,76,66,183,94,71,223,98,
1047     82,194,92,72,192,88,70,207,95,84,215,102,78,196,83,72,198,97,77,204,95,76,199,88,77,210,97,78,193,84,72,193,
1048     86,71,177,86,67,189,88,67,205,98,82,215,103,82,206,90,81,204,105,78,215,102,82,200,98,78,203,109,81,195,91,76,
1049     196,93,75,199,93,73,178,91,69,194,98,76,222,103,88,212,97,83,180,94,71,207,98,80,186,87,71,198,92,77,216,103,
1050     83,204,101,79,184,89,73,171,87,71,184,92,81,202,100,81,178,85,74,201,97,81,199,97,74,193,91,74,206,98,85,210,
1051     102,78,190,87,75,202,87,80,220,100,79,173,83,65,164,78,63,195,89,74,177,83,70,208,101,85,223,98,83,217,108,87,
1052     209,83,73,204,96,77,218,110,89,193,91,73,162,82,67,212,101,79,205,96,76,188,88,62,211,102,86,208,96,82,190,85,
1053     71,175,87,67,161,82,60,195,96,74,179,79,64
1054   };
1055   data=librevenge::RVNGBinaryData(wall12,781);
1056   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[12])));
1057 
1058   static unsigned char const wall13[781]= {
1059     80,54,10,49,54,32,49,54,10,50,53,53,10,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,
1060     255,153,204,255,153,202,253,151,159,212,114,153,208,113,206,255,154,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,
1061     204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,205,255,154,194,246,145,107,162,70,115,171,84,207,255,
1062     156,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,
1063     255,153,204,255,153,206,255,155,137,190,92,99,157,68,203,254,152,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,
1064     204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,207,255,155,135,189,92,73,131,43,193,244,
1065     142,205,255,154,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,255,153,204,
1066     255,153,205,255,154,192,243,141,97,154,64,90,150,64,181,234,136,205,255,154,204,255,153,204,255,153,204,255,153,204,255,153,
1067     204,255,153,203,255,153,203,255,154,203,255,156,203,255,154,205,255,154,202,252,151,120,178,83,128,184,91,123,179,92,178,231,
1068     134,206,255,154,204,255,153,204,255,153,204,255,153,204,255,153,204,255,154,219,229,157,230,172,122,230,134,84,229,192,137,200,
1069     235,143,130,183,85,110,135,55,190,225,130,108,168,80,178,232,136,205,255,156,203,255,153,204,255,153,204,255,153,204,255,153,
1070     211,237,149,248,141,128,255,122,124,251,17,17,239,30,31,125,87,38,77,62,10,214,61,50,192,101,68,82,66,17,191,128,
1071     80,219,147,97,227,214,157,207,254,157,204,255,153,203,255,154,227,190,134,255,50,50,243,30,30,235,31,31,223,105,102,154,
1072     62,39,184,6,0,148,19,20,180,32,32,204,46,44,234,121,123,238,54,56,208,67,64,211,221,151,204,255,153,203,255,156,
1073     230,147,96,243,1,3,241,15,15,254,91,91,255,140,140,245,47,47,190,0,0,140,0,0,147,4,4,236,47,47,232,57,
1074     56,208,9,9,152,0,0,174,137,86,205,255,156,203,255,156,226,128,77,236,1,3,252,52,52,251,59,59,238,10,10,211,
1075     2,2,171,0,0,144,0,0,126,0,0,204,0,0,204,0,0,193,0,0,129,0,0,148,128,77,206,255,156,203,255,155,
1076     223,152,101,234,18,21,254,32,31,240,19,19,215,0,0,187,0,0,165,0,0,140,0,0,131,0,0,204,0,0,194,0,
1077     0,169,0,0,129,3,5,195,152,102,205,255,155,203,255,154,217,217,146,225,32,29,239,0,0,220,0,0,197,0,0,175,
1078     0,0,153,0,0,128,0,0,158,0,0,196,0,0,169,0,0,140,0,0,141,27,23,210,215,144,204,255,154,204,255,153,
1079     207,252,155,224,153,118,200,18,18,180,0,0,169,0,0,153,0,0,132,0,0,114,0,0,168,0,0,162,0,0,133,0,
1080     0,116,8,9,186,121,86,208,248,150,204,255,153,204,255,153,204,255,153,208,251,159,219,160,124,199,48,44,163,22,23,146,
1081     23,23,141,38,28,183,76,64,156,34,22,124,28,16,143,54,39,181,150,99,209,241,149,204,255,154,204,255,153,204,255,153,
1082     204,255,153,204,255,153,207,253,157,219,222,155,219,200,157,214,204,154,201,225,140,212,241,151,197,225,136,187,223,134,200,233,
1083     142,207,253,155,204,255,153,204,255,153,204,255,153
1084   };
1085   data=librevenge::RVNGBinaryData(wall13,781);
1086   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[13])));
1087 
1088   static unsigned char const wall14[3085]= {
1089     80,54,10,51,50,32,51,50,10,50,53,53,10,89,55,81,116,93,202,152,158,144,102,124,146,83,106,199,144,112,107,50,
1090     71,142,49,86,157,33,131,173,67,89,155,111,55,135,113,62,131,84,94,152,66,158,161,55,82,137,55,87,87,68,118,62,
1091     38,136,38,102,68,62,116,133,69,104,175,76,131,56,60,134,27,31,77,63,168,69,76,50,59,17,59,78,51,75,74,135,
1092     22,152,41,56,154,67,101,134,57,99,104,34,105,92,181,110,70,191,157,43,166,190,117,88,158,121,99,149,50,115,179,67,
1093     61,142,35,71,149,57,92,154,101,94,159,127,102,136,123,18,126,145,96,129,127,114,128,26,137,166,47,115,88,92,142,26,
1094     98,119,50,112,28,48,110,35,50,101,103,30,117,144,89,111,76,109,115,114,78,125,97,43,75,49,37,59,199,64,48,224,
1095     71,104,155,96,154,83,81,156,56,66,94,192,98,101,185,84,75,173,195,62,149,192,22,22,171,114,112,159,70,130,155,140,
1096     66,152,48,17,163,51,51,196,97,108,69,121,108,51,160,90,99,180,32,134,192,0,162,15,62,195,10,80,98,65,17,25,
1097     107,62,55,130,67,72,120,68,55,88,49,57,37,61,73,83,3,58,109,87,60,114,109,66,111,38,64,115,96,67,99,143,
1098     75,74,195,89,124,178,134,99,178,94,100,179,92,95,127,109,73,78,109,89,97,30,85,118,130,63,124,155,25,108,181,70,
1099     81,185,45,62,186,94,102,136,75,60,49,63,37,80,130,87,76,94,82,147,20,11,167,18,40,163,35,35,37,71,82,47,
1100     114,91,49,123,117,74,157,134,66,122,120,56,73,141,57,116,24,40,125,109,47,88,142,44,79,47,68,177,22,70,197,114,
1101     72,144,144,102,143,159,87,77,128,61,53,110,99,110,161,25,68,83,55,71,13,55,109,35,95,113,60,92,79,73,203,53,
1102     89,225,65,89,193,93,126,143,104,43,103,88,58,66,100,81,113,150,141,168,50,29,181,14,16,73,46,43,36,88,73,71,
1103     88,89,54,100,114,52,122,105,61,142,87,63,155,94,45,168,193,38,115,174,55,124,139,49,138,86,55,144,96,68,153,65,
1104     59,182,146,92,142,137,73,156,103,77,97,134,69,155,95,80,94,96,110,64,84,172,92,56,39,93,53,0,70,68,28,100,
1105     35,106,87,65,200,56,76,161,109,104,71,151,132,55,73,44,144,93,47,132,173,20,139,22,19,48,41,32,43,53,38,58,
1106     60,63,66,88,97,82,116,76,81,106,50,59,157,0,46,198,129,52,84,165,48,39,85,61,121,113,75,115,77,54,146,88,
1107     65,165,108,100,88,201,77,152,123,76,166,87,78,147,47,82,74,134,87,54,139,108,108,90,56,113,75,54,88,26,15,118,
1108     41,44,88,12,85,88,55,99,155,123,75,173,157,62,167,56,128,73,0,176,93,9,167,23,22,86,37,50,56,49,28,59,
1109     53,65,64,95,90,93,129,86,108,118,61,69,150,93,72,155,149,48,122,159,58,132,100,66,160,100,51,166,67,60,178,12,
1110     80,173,64,101,196,118,85,181,153,59,156,121,74,79,81,76,43,79,79,74,70,70,116,135,58,132,127,101,109,85,101,95,
1111     69,92,103,29,68,98,18,41,145,82,74,175,115,90,123,65,151,64,21,193,1,36,155,22,61,63,28,64,49,25,39,74,
1112     57,76,70,79,48,74,95,54,72,61,78,105,7,172,74,23,208,21,22,179,32,55,137,46,99,97,66,133,50,87,64,55,
1113     88,144,33,76,216,34,94,176,96,80,115,103,80,56,166,60,52,112,128,36,69,189,94,91,165,131,24,128,150,76,147,104,
1114     76,90,82,74,86,85,68,83,85,73,104,147,126,145,52,113,186,5,15,177,44,32,43,32,68,50,33,39,47,24,40,108,
1115     2,104,104,43,139,80,29,112,50,0,98,111,0,194,58,3,206,7,0,204,24,8,117,73,61,39,66,118,33,74,67,25,
1116     86,129,22,88,35,52,99,122,93,78,74,95,79,86,171,107,63,107,86,49,48,153,9,87,187,112,122,132,156,167,175,170,
1117     201,156,117,149,138,142,157,157,177,166,172,154,190,186,64,48,142,32,6,96,122,31,41,30,69,86,77,44,47,75,103,64,
1118     3,154,104,110,175,150,43,184,150,11,184,137,17,194,140,30,221,79,14,184,151,33,121,108,40,39,51,31,39,75,54,38,
1119     89,160,55,85,25,49,68,35,25,69,47,159,74,157,159,105,90,61,75,80,73,57,88,71,113,117,132,141,102,132,132,118,
1120     142,127,119,136,122,143,183,146,150,194,211,67,133,203,99,24,170,67,55,125,107,32,43,39,20,99,87,16,86,115,113,80,
1121     29,201,173,44,194,223,37,211,173,18,147,177,18,127,115,17,152,45,55,176,138,38,122,154,10,97,102,45,56,102,40,45,
1122     56,162,35,89,109,41,100,20,38,91,20,92,79,94,147,91,45,60,72,30,80,84,151,42,79,160,67,112,67,174,95,95,
1123     109,102,104,85,109,159,113,98,87,63,168,61,88,147,94,102,159,98,67,172,53,41,81,95,48,69,65,21,161,71,206,187,
1124     87,162,186,72,114,164,100,160,148,54,172,175,88,95,77,51,151,53,9,169,78,2,130,77,0,106,102,30,70,139,48,45,
1125     93,80,42,95,51,47,89,86,36,84,48,74,81,131,119,87,117,71,73,50,85,66,88,92,106,105,174,78,119,185,114,152,
1126     146,132,142,95,106,166,67,135,155,90,141,112,144,128,69,117,86,61,23,117,41,20,159,84,16,52,55,36,87,16,160,101,
1127     108,118,110,104,170,179,71,160,182,44,155,102,45,212,80,40,122,32,16,170,65,79,145,122,10,108,139,28,69,112,40,54,
1128     114,59,42,107,66,51,85,46,53,94,68,56,81,146,171,100,73,68,86,19,37,78,34,75,152,66,103,147,156,54,122,195,
1129     158,140,124,139,96,115,50,109,143,47,153,140,54,117,89,59,97,37,52,144,37,0,97,41,134,71,52,217,127,36,38,143,
1130     11,197,132,111,186,126,153,196,187,0,220,215,32,220,108,73,140,45,55,187,52,72,137,153,10,89,153,42,88,130,58,66,
1131     113,45,46,91,77,51,79,51,55,102,38,34,98,109,117,113,51,94,88,123,76,94,87,66,139,26,29,173,67,107,108,97,
1132     83,157,97,28,99,107,38,46,134,34,94,120,36,99,48,52,86,21,88,66,31,29,82,31,8,103,13,82,84,3,211,146,
1133     0,189,166,42,192,123,54,215,173,0,208,127,2,197,105,21,174,196,15,164,133,1,125,185,23,100,142,33,82,116,51,68,
1134     100,61,61,82,42,42,70,59,44,74,6,52,108,81,120,96,39,69,86,105,97,97,135,155,186,79,6,81,46,103,121,39,
1135     109,188,58,56,86,90,54,59,101,45,63,74,36,46,46,61,93,33,80,157,10,126,176,10,136,73,21,40,0,20,96,40,
1136     9,166,79,0,244,107,9,216,95,4,219,122,0,168,92,1,147,85,4,141,37,0,129,120,39,124,145,73,78,105,32,63,
1137     104,60,49,78,24,47,82,44,48,80,130,38,94,112,114,92,73,88,86,46,87,80,18,58,130,52,44,115,185,88,175,147,
1138     60,206,121,60,187,94,39,118,127,106,125,118,148,92,94,28,86,20,105,206,26,156,163,24,120,133,15,178,93,32,105,60,
1139     18,38,95,4,41,86,27,237,61,6,237,125,0,194,62,11,184,72,5,135,60,83,124,156,68,109,169,108,76,111,63,60,
1140     85,50,52,94,75,30,84,48,50,96,124,31,83,81,101,101,84,84,80,78,78,57,17,63,22,15,45,52,29,0,147,45,
1141     62,178,75,37,80,103,67,57,155,102,86,165,126,129,42,106,186,16,109,196,5,164,170,18,183,119,24,242,119,20,237,116,
1142     14,116,163,17,69,171,20,98,140,23,89,81,7,182,15,1,165,78,3,136,113,19,102,191,36,100,166,63,72,119,45,58,
1143     92,41,51,78,91,56,88,92,46,86,71,51,101,72,76,97,47,72,89,45,117,87,66,78,55,50,32,112,23,5,204,64,
1144     45,68,49,83,60,8,81,59,86,122,92,125,119,100,88,131,131,12,156,167,36,190,132,4,236,82,11,195,132,83,106,90,
1145     83,34,86,56,94,113,44,67,94,66,39,43,20,84,127,0,181,93,4,140,94,0,99,149,0,104,151,19,79,174,47,51,
1146     84,92,50,80,171,49,98,123,41,101,76,49,98,86,66,99,45,31,88,51,25,95,91,111,92,108,70,76,54,92,211,100,
1147     93,103,53,62,93,58,71,64,216,124,83,180,171,122,64,169,119,83,99,174,62,226,102,6,242,58,15,231,50,55,99,71,
1148     84,10,144,91,28,121,61,54,162,30,45,139,8,78,161,24,129,115,16,137,43,0,113,140,15,100,153,39,73,137,18,55,
1149     104,143,47,105,197,40,94,119,57,95,90,51,95,64,97,96,54,46,97,75,60,64,104,77,31,99,51,61,68,77,97,166,
1150     88,181,64,78,94,48,106,60,59,150,62,138,75,118,75,141,120,79,149,130,88,119,42,64,81,6,3,244,77,32,149,106,
1151     83,100,69,65,13,57,71,33,60,27,58,73,46,40,68,11,145,34,0,159,89,4,116,176,8,97,136,0,81,102,78,64,
1152     96,169,49,111,128,53,110,113,52,91,68,19,71,58,98,91,37,30,91,75,85,91,115,190,28,123,93,47,89,41,89,69,
1153     42,51,39,70,42,27,53,74,15,88,77,55,108,129,122,7,158,98,172,87,110,120,38,103,13,11,66,59,34,62,49,58,
1154     104,65,47,83,55,78,62,21,50,53,15,47,19,111,57,1,193,51,9,147,85,0,126,123,0,102,110,69,84,122,65,66,
1155     100,104,50,85,103,51,92,95,59,93,73,60,86,37,91,106,46,27,66,106,102,42,129,132,23,121,38,21,159,93,55,165,
1156     89,84,136,97,89,77,48,121,45,7,113,31,76,169,27,80,166,38,124,117,66,143,156,59,189,112,70,84,36,81,0,53,
1157     82,40,76,88,25,135,131,75,59,109,42,48,23,142,73,5,176,133,34,163,43,72,119,43,86,88,145,212,86,127,103,69,
1158     116,147,37,86,104,54,88,60,113,94,50,89,98,79,102,91,52,66,45,94,135,44,127,120,61,118,92,33,175,154,64,213,
1159     116,109,198,146,115,136,141,125,74,101,112,55,43,110,49,29,119,14,79,154,61,99,142,52,130,163,44,127,91,71,11,79,
1160     67,12,90,66,7,78,101,0,99,159,51,48,108,144,76,102,201,109,117,161,97,127,144,107,137,90,115,145,81,131,155,58,
1161     105,177,67,82,129,113,92,86,137,84,65,97,92,89,98,32,64,86,17,111,58,29,148,82,62,148,136,106,173,123,105,181,
1162     37,92,168,70,85,150,127,101,94,147,92,63,112,88,6,4,95,11,25,171,104,39,142,28,38,116,14,18,144,35,52,200,
1163     27,3,131,57,5,41,33,10,126,55,48,60,83,188,111,115,172,115,161,151,95,145,108,91,105,108,79,74,76,104,53,63,
1164     95,46,108,111,73,132,129,95,102,87,118,108,96,125,107,47,99,94,92,95,80,131,122,50,106,160,102,75,157,98,94,166,
1165     70,98,117,58,69,100,53,165,66,69,146,35,118,101,0,82,95,35,55,115,40,32,145,44,26,93,52,87,108,14,30,139,
1166     12,107,153,30,87,120,52,25,24,61,34,79,60,133,118,92,156,80,132,94,61,138,65,75,133,144,138,111,103,106,59,64,
1167     89,0,125,106,0,102,125,31,55,114,94,96,78,83,87,43,45,45,129,81,40,125,80,74,137,115,99,83,106,90,82,133,
1168     46,107,67,53,165,61,47,134,46,42,138,23,41,124,36,93,80,38,57,129,79,14,152,21,6,133,45,106,86,73,49,97,
1169     21,228,98,41,212,140,33,131,98,45,65,172,38,82,170,78,63,73,71,50,79,54,82,109,108,143,103,108,90,94,97,46,
1170     79,57,125,99,30,191,111,13,173,217,79,70,119,73,25,147,40,58,90,72,88,106,95,18,165,36,41,162,18,38,189,35,
1171     29,168,33,53,171,54,59,130,50,40,88,44,42,96,85,44,89,84,81,120,114,145,83,51,69,103,31,26,107,44,201,119,
1172     7,217,105,15,212,108,16,154,181,36,16,138,49,66,99,51,98,144,73,37,82,2,39,127,23,113,129,35,40,131,47,93,
1173     115,64,127,72,86,87,103,86,129,65,74,143,99,40,131,212,83,174,171,105,85,170,88,84,130,72,91,92,48,91,165,74,
1174     30,155,45,64,140,65,0,109,59,58,122,62,40,140,63,29,92,132,93,110,152,57,111,111,2,161,97,134,101,126,122,86,
1175     28,211,132,7,81,158,36,48,164,53,42,176,42,86,168,74,24,208,56,42,173,53,58,163,10,58,135,38,79,86,134,152,
1176     170,176,160,141,94,95,121,54,72,156,63,89,187,35,226,203,115,161,135,116,126,132,108,111,102,87,123,126,71,98,202,40,
1177     88,203,82,42,171,66,51,139,33,71,139,30,70,134,46,62,50,126,57,139,143,23,181,10,33,159,98,154,87,46,110,85,
1178     34,156,81,34,48,47,74,120,117,106,73,186,41,119,222,79,41,118,52,4,185,120,64,211,63,109,196,78,72,126,108,138,
1179     203,41,55,179,125,149,107,57,124,199,84,190,222,71,143,164,97,112,164,152,117,71,116,123,61,64,100,166,60,100,145,84,
1180     148,108,27,123,166,60,107,107,134,136,138,113,118,117,48,48,87,83,76,111,111,195,142,11,179,129,21,102,112,6,207,128,
1181     10,152,143,10,90,180,48,13,246,59,44,129,31,62,66,62,66,70,72,79,119,67,40,190,58,91,237,17,59,192,20,21,
1182     221,29,42,151,45,32,115,45,43,110,63,159,157,62,59,73,28,143,138,69,157,188,72,75,150,81,114,98,132,120,79,126,
1183     69,68,63,82,97,93,85,101,54,66,140,44,95,131,44,52,138,26,109,125,40,109,107,35,105,137,35,80,123,53,73,120,
1184     18,120,123,43,95,112,103,70,155,74,17,97,40,0,45,42,146,141,47,135,190,39,112,108,75,63,72,36,60,216,40,29,
1185     183,69,46,24,118,78,87,88,58,46,61,59,45
1186   };
1187   data=librevenge::RVNGBinaryData(wall14,3085);
1188   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(32,32),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[14])));
1189   static unsigned char const wall15[781]= {
1190     80,54,10,49,54,32,49,54,10,50,53,53,10,202,182,208,223,200,218,222,195,220,229,195,223,226,199,226,220,199,220,208,
1191     177,208,212,194,212,220,191,211,240,215,235,201,172,200,209,184,207,219,197,219,227,204,229,217,188,215,240,213,222,209,183,206,
1192     226,202,224,211,191,213,209,181,209,208,190,208,216,187,216,220,194,219,216,198,213,209,188,209,213,196,213,206,182,204,218,202,
1193     212,214,190,213,221,194,219,210,187,209,227,207,221,222,199,213,208,188,208,213,198,212,216,192,213,220,193,220,225,196,217,208,
1194     193,204,208,185,200,226,207,225,205,183,205,221,199,221,211,188,210,221,197,219,217,190,210,220,201,215,205,179,197,225,200,225,
1195     207,185,206,214,190,210,213,188,208,220,197,220,212,194,211,216,195,217,209,185,210,221,194,219,211,187,203,224,198,218,218,193,
1196     218,199,188,202,217,200,215,219,193,216,219,202,218,213,188,211,214,192,212,225,203,218,218,195,210,209,189,206,203,185,209,216,
1197     189,203,217,199,214,215,192,216,225,200,223,206,192,208,216,194,215,217,207,217,205,179,205,218,196,211,211,187,208,210,183,201,
1198     225,202,227,215,187,212,218,194,215,214,192,214,214,197,213,224,196,220,224,198,224,219,193,216,215,194,214,218,189,211,216,189,
1199     206,206,183,203,217,191,216,220,194,218,220,196,220,214,193,214,219,194,217,217,195,212,223,202,223,212,190,210,220,191,217,215,
1200     188,207,215,191,215,212,188,204,219,191,214,214,185,211,223,197,222,221,198,220,201,188,198,221,197,213,226,197,227,220,195,218,
1201     217,191,216,217,194,218,211,183,211,220,193,212,211,192,209,213,193,211,212,184,213,212,192,210,225,202,224,223,194,223,217,196,
1202     210,204,175,201,217,201,217,208,182,207,213,197,210,215,190,209,216,188,210,224,199,217,211,190,210,224,204,224,206,183,206,221,
1203     195,213,220,199,218,219,194,212,215,193,215,205,192,205,211,189,211,222,200,222,216,192,216,220,193,217,227,198,219,212,189,212,
1204     221,196,220,210,185,209,223,201,222,211,191,208,219,193,220,218,196,218,209,184,207,222,201,221,214,192,214,223,199,223,206,187,
1205     201,222,196,219,220,200,217,215,188,216,214,196,215,200,184,207,217,192,211,209,189,209,214,188,208,214,189,209,218,192,217,216,
1206     194,216,221,196,219,212,191,208,207,186,206,209,187,206,214,189,213,217,200,216,218,191,217,217,190,213,231,212,229,214,193,214,
1207     210,190,209,222,199,214,224,203,221,210,185,204,213,193,210,214,193,212,209,187,208,219,194,217,217,193,207,210,187,203,224,196,
1208     225,219,187,211,217,195,214,208,186,203,210,187,209,217,191,208,230,201,227,205,183,205,212,185,212,214,193,215,220,205,220,212,
1209     186,202,218,193,215,207,194,209,217,198,216,210,194,210,209,186,209,215,198,213,217,193,214,222,196,217,220,198,222,226,201,226,
1210     209,186,208,214,189,209,230,202,222,214,184,214,211,186,208,220,195,213,213,192,213,217,201,217,210,193,210,213,190,213,220,198,
1211     212,218,195,216,212,194,213,214,191,209,220,194,218,208,184,208,222,207,219,211,188,202,223,200,218,214,198,211,216,193,217,214,
1212     192,209,216,193,209,213,194,209,217,194,216,208,184,208,220,197,218,212,186,209,218,193,210,222,198,223,217,190,217,228,200,228,
1213     222,193,219,217,192,215,208,182,201,222,196,221,203,181,203,217,198,215,226,206,223,229,200,231,210,184,207,226,204,212,220,190,
1214     211,207,181,207,216,187,210,223,201,215,208,193,208
1215   };
1216   data=librevenge::RVNGBinaryData(wall15,781);
1217   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[15])));
1218 
1219   static unsigned char const wall16[781]= {
1220     80,54,10,49,54,32,49,54,10,50,53,53,10,214,214,211,225,225,216,218,218,215,221,224,218,231,224,221,229,229,227,226,
1221     226,225,227,228,225,213,204,204,239,236,236,226,227,218,232,232,226,213,213,204,204,205,205,231,231,228,231,231,230,194,194,193,
1222     220,220,210,232,232,221,222,216,219,228,224,224,222,222,214,222,222,220,231,231,223,228,226,226,228,227,223,230,230,225,219,219,
1223     218,213,213,211,220,212,213,226,223,216,219,219,217,220,220,221,220,220,215,214,214,213,224,224,222,236,236,233,231,231,224,226,
1224     226,218,228,229,224,226,227,217,227,227,217,226,226,219,226,226,224,225,225,224,221,219,218,232,226,224,236,234,234,229,229,220,
1225     229,229,219,231,228,227,230,230,222,217,217,214,226,226,216,222,223,218,227,219,218,219,217,215,227,227,227,236,234,229,232,232,
1226     223,222,222,218,228,230,220,219,225,217,234,225,222,208,208,205,210,210,207,232,224,217,232,230,228,210,210,210,224,224,222,229,
1227     229,221,230,227,224,233,232,230,228,225,217,227,224,219,235,230,227,225,225,217,212,210,208,231,224,221,233,230,222,218,218,209,
1228     227,227,227,237,238,233,230,230,220,220,220,212,197,197,195,217,217,215,217,210,207,234,231,221,222,223,219,232,234,231,237,235,
1229     234,222,219,217,214,212,213,215,213,213,228,228,220,224,224,221,219,216,217,213,205,204,223,220,220,215,214,210,227,227,219,226,
1230     226,219,237,234,232,241,240,233,219,216,214,219,216,208,224,216,214,230,223,221,219,217,209,229,229,230,229,229,226,195,192,192,
1231     207,199,198,235,233,231,236,229,229,234,229,229,237,229,230,230,231,228,213,213,210,219,219,212,222,214,214,232,229,226,224,222,
1232     221,229,229,221,222,219,215,217,216,214,223,223,215,230,229,227,235,233,223,233,233,225,234,234,227,221,220,218,230,228,220,227,
1233     225,223,221,213,212,220,213,210,208,209,209,204,209,201,224,226,224,222,222,219,233,225,222,229,227,225,208,208,203,218,218,214,
1234     226,226,223,224,224,225,229,229,224,235,234,225,224,222,219,212,213,210,210,215,207,220,215,212,233,225,223,230,225,223,232,230,
1235     227,231,231,221,229,229,222,218,218,214,216,216,206,243,243,235,229,227,224,223,218,216,211,211,211,219,216,214,230,222,220,232,
1236     233,225,228,225,223,213,211,208,227,227,218,237,235,235,230,230,220,224,224,220,224,224,223,224,224,216,226,226,224,206,200,198,
1237     216,215,212,218,220,213,225,225,222,232,232,225,221,221,222,215,210,208,219,211,210,213,217,209,237,237,230,242,237,234,228,228,
1238     223,233,233,230,237,237,221,222,222,220,214,214,214,214,220,210,218,218,213,217,209,210,208,208,208,223,223,221,234,234,227,236,
1239     241,231,229,230,228,231,230,227,222,220,217,233,234,234,227,227,220,226,226,222,222,222,220,220,218,218,228,227,227,220,220,218,
1240     217,217,210,209,209,209,221,221,219,220,220,213,225,225,220,219,219,217,219,217,206,227,226,216,232,231,224,237,234,235,231,231,
1241     226,229,229,221,225,226,226,219,211,210,229,226,223,229,226,226,212,212,212,200,200,197,202,202,194,211,211,209,238,230,229,234,
1242     232,231,239,233,229,237,237,234,234,233,230,229,226,219,233,233,225,226,226,224,232,232,225,225,225,212,227,227,216,220,220,210,
1243     211,214,208,229,228,220,228,228,228,225,225,225,232,229,229,231,228,228,234,225,226,230,230,227,232,230,223,231,226,231,239,240,
1244     237,223,220,220,225,216,213,206,206,202,196,196,196
1245   };
1246   data=librevenge::RVNGBinaryData(wall16,781);
1247   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[16])));
1248 
1249   static unsigned char const wall17[781]= {
1250     80,54,10,49,54,32,49,54,10,50,53,53,10,80,99,182,88,88,184,73,86,155,82,87,174,62,65,125,61,69,128,55,
1251     54,123,52,59,120,55,62,123,70,79,154,81,83,160,74,85,165,76,87,175,77,81,163,65,77,151,62,62,135,67,70,146,
1252     66,74,146,66,71,147,58,61,126,50,56,119,71,76,159,72,82,153,66,73,144,67,79,146,84,89,183,58,73,132,69,76,
1253     160,73,82,151,68,75,153,64,69,145,76,79,153,62,71,143,74,78,162,65,70,124,61,70,141,75,76,153,72,75,157,61,
1254     64,129,79,84,169,67,77,150,63,66,135,64,65,131,71,76,157,75,77,158,73,81,158,66,70,147,57,62,134,75,88,168,
1255     64,70,154,72,74,154,65,73,142,70,76,150,70,75,154,69,76,142,77,83,167,58,59,121,60,76,148,76,82,163,85,94,
1256     174,61,70,131,62,70,140,63,71,134,67,75,154,69,69,141,72,80,153,66,74,148,53,58,121,73,75,149,73,79,163,71,
1257     75,154,50,61,115,74,75,153,66,73,144,63,73,147,59,59,127,53,59,123,82,89,177,84,96,189,83,91,176,76,83,168,
1258     70,74,156,73,77,156,63,71,141,81,91,181,64,72,138,59,63,129,60,67,138,67,74,147,70,72,142,65,72,141,63,72,
1259     143,73,87,160,75,82,167,69,74,154,68,62,133,84,96,191,65,74,145,60,67,125,70,75,147,61,65,139,55,64,127,71,
1260     78,153,72,77,148,67,73,150,83,90,173,77,80,164,64,75,140,70,74,144,66,69,140,62,77,144,70,73,158,65,71,138,
1261     66,70,136,57,64,131,69,77,148,64,69,135,71,79,155,63,70,151,73,83,160,73,84,161,72,81,163,68,82,157,56,60,
1262     128,70,78,154,69,69,142,68,74,145,77,83,160,71,77,158,81,87,171,53,57,123,74,83,159,70,77,152,68,70,148,67,
1263     76,151,70,77,154,74,82,149,59,67,132,55,55,120,46,57,114,71,80,151,75,78,160,75,87,164,57,66,133,63,59,131,
1264     52,62,125,73,80,155,77,82,165,58,59,124,73,82,169,67,70,138,63,65,134,72,77,152,63,71,134,68,64,138,68,78,
1265     156,87,91,179,72,85,167,79,85,162,62,64,132,54,53,117,66,64,130,77,78,157,56,66,123,61,77,144,74,76,162,73,
1266     77,152,60,75,145,73,78,162,71,81,157,61,70,141,87,92,181,76,83,165,64,70,139,52,63,121,42,49,94,66,84,160,
1267     67,75,152,67,69,140,68,71,143,77,84,153,74,84,156,73,82,167,66,71,137,70,68,152,66,74,149,67,71,145,84,92,
1268     179,62,66,129,58,63,125,71,82,152,62,65,132,72,77,156,60,70,129,78,85,169,68,79,153,79,84,171,66,68,134,56,
1269     65,122,61,72,136,69,75,152,74,81,154,66,76,150,60,62,131,70,79,150,70,75,157,67,69,139,55,63,125,51,52,118,
1270     72,81,156,66,71,145,83,89,167,75,83,165,61,62,124,62,65,129,65,78,154,64,68,140,63,71,139,61,63,127,65,74,
1271     145,71,73,151,68,76,154,68,68,140,78,84,168,60,68,121,71,75,158,75,93,178,64,68,149,53,56,106,60,70,139,67,
1272     70,145,69,74,137,58,66,133,66,68,146,92,100,190,74,78,152,61,63,131,82,89,172,51,62,116,63,69,138,78,81,160,
1273     78,83,165,71,82,159,46,48,97,45,57,111,73,82,152,94,91,181,77,81,161,76,87,180,63,72,143,77,85,162,65,66,
1274     132,66,76,159,54,59,115,45,59,111,69,80,167
1275   };
1276   data=librevenge::RVNGBinaryData(wall17,781);
1277   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(16,16),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[17])));
1278 
1279   static unsigned char const wall18[3085]= {
1280     80,54,10,51,50,32,51,50,10,50,53,53,10,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,238,
1281     241,241,239,243,243,238,237,237,237,235,235,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1282     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,238,237,236,237,237,236,238,237,237,238,238,238,238,
1283     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,239,239,249,249,237,
1284     224,224,234,220,220,238,244,244,243,252,252,241,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1285     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,238,238,245,239,242,246,240,242,247,239,243,241,240,241,236,237,
1286     237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,239,239,234,234,234,171,171,241,
1287     167,167,247,155,155,239,134,134,206,166,166,221,227,227,244,243,243,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,
1288     238,238,238,238,238,238,238,238,238,238,238,238,237,237,237,243,240,241,197,232,217,177,223,204,180,228,204,226,233,228,245,241,
1289     244,237,238,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,237,245,245,242,185,185,247,183,183,255,
1290     235,235,232,107,107,252,141,141,205,60,60,132,122,122,220,222,222,241,240,240,237,237,237,238,238,238,238,238,238,238,238,238,
1291     238,238,238,238,238,238,238,238,238,236,237,237,249,246,247,155,225,189,190,229,216,164,246,218,107,245,189,69,189,131,186,207,
1292     195,248,243,245,236,237,236,238,238,238,238,238,238,238,238,238,238,237,237,239,243,243,232,217,217,235,140,140,244,150,150,228,
1293     119,119,230,78,78,237,120,120,242,88,88,144,67,67,179,190,190,242,239,239,238,238,238,238,238,238,238,238,238,238,238,238,
1294     238,238,238,238,238,238,236,237,237,245,241,243,189,217,203,174,241,224,215,253,249,126,221,181,89,195,145,118,242,193,44,140,
1295     98,212,206,212,244,244,243,237,237,237,238,238,238,238,238,238,238,238,238,238,239,239,239,238,238,254,133,133,244,122,122,236,
1296     109,108,248,116,116,242,119,119,232,77,77,147,76,76,181,196,196,241,237,237,238,238,238,238,238,238,238,238,238,238,238,238,
1297     238,238,238,238,238,238,235,237,236,250,240,245,169,222,197,81,242,173,87,184,139,83,209,151,68,229,150,94,236,161,30,173,
1298     116,148,146,151,243,242,241,237,238,238,238,238,238,238,238,238,238,236,236,238,247,247,236,185,185,241,91,91,242,124,125,244,
1299     100,100,219,71,70,214,69,69,210,51,51,183,61,61,180,181,181,242,242,242,238,237,237,238,238,238,238,238,238,238,238,238,
1300     238,238,238,238,238,238,235,238,237,252,236,244,143,246,199,113,247,183,138,249,193,89,220,156,96,229,163,81,191,145,29,134,
1301     106,132,139,143,228,226,225,239,240,240,237,237,237,238,238,238,237,235,235,245,251,251,195,157,157,173,53,53,183,27,25,175,
1302     28,25,162,13,17,178,28,29,181,34,34,130,48,48,156,151,151,239,240,240,238,238,238,238,238,238,238,238,238,238,238,238,
1303     238,238,238,237,238,237,241,240,240,229,230,230,61,171,115,48,179,120,39,194,130,24,170,117,26,163,115,28,175,123,19,155,
1304     112,75,116,118,229,222,222,240,242,242,237,237,237,238,238,238,237,237,237,242,240,240,217,227,227,151,152,151,117,60,17,128,
1305     72,24,110,54,27,56,1,0,66,28,29,162,174,174,188,189,189,221,220,220,241,241,241,237,237,237,238,238,238,238,238,238,
1306     238,238,238,238,238,238,238,238,238,236,236,236,165,171,170,76,118,89,53,76,46,49,77,57,32,59,55,25,60,52,62,78,
1307     78,139,141,141,194,194,194,241,241,241,237,237,237,238,238,238,238,238,238,237,238,238,240,238,238,245,245,246,164,129,92,166,
1308     114,58,155,107,63,77,24,1,84,63,62,196,199,199,240,239,239,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,
1309     238,238,238,238,238,238,238,238,238,238,237,236,252,255,255,198,162,139,148,80,22,174,111,60,119,53,26,52,0,0,123,114,
1310     114,195,196,195,220,220,220,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,236,235,234,247,251,255,193,170,148,139,
1311     84,28,108,57,18,67,17,2,116,111,113,191,192,191,238,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1312     238,238,238,238,238,238,238,238,238,237,237,237,240,241,242,226,224,221,142,95,48,158,110,60,93,42,11,70,36,23,142,145,
1313     147,216,216,215,241,241,241,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,239,240,241,233,228,224,109,
1314     59,15,85,31,0,74,38,25,144,145,148,216,215,215,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1315     238,238,238,238,238,238,238,238,238,238,238,238,236,236,236,245,246,246,162,125,91,103,50,3,79,25,0,84,63,62,160,165,
1316     165,221,220,220,241,241,241,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,236,247,248,248,156,
1317     120,89,60,1,0,92,68,66,177,182,183,223,222,222,241,241,241,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,
1318     238,238,238,238,238,238,238,238,238,238,238,238,236,235,234,246,250,255,196,174,151,82,27,0,75,27,6,109,105,104,186,187,
1319     187,231,231,231,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,235,234,246,250,255,199,
1320     177,152,69,13,0,92,78,82,191,194,193,238,237,237,238,238,238,238,238,238,238,238,238,238,237,236,238,237,235,238,237,235,
1321     238,238,237,238,238,238,238,238,238,238,238,238,238,237,237,239,240,241,235,230,225,104,54,14,56,10,2,138,136,138,203,203,
1322     203,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,238,239,241,239,
1323     234,225,85,44,21,129,128,131,204,205,204,237,237,237,238,238,238,238,238,237,238,238,237,238,242,249,238,242,251,238,243,251,
1324     239,241,242,237,236,235,238,238,238,238,238,238,238,238,238,236,236,236,248,250,250,148,107,79,61,36,32,150,154,155,222,222,
1325     221,240,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,237,242,
1326     243,243,200,197,196,155,154,154,221,221,221,241,241,241,237,237,237,238,237,237,238,241,245,238,217,179,235,204,146,237,205,157,
1327     235,228,221,242,246,248,239,238,238,238,238,238,238,238,238,236,236,235,246,249,251,199,186,177,105,90,86,173,176,177,223,223,
1328     222,240,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,
1329     237,237,246,246,247,229,229,229,227,227,227,240,240,240,237,236,236,242,247,249,237,189,123,242,216,161,251,218,130,250,188,75,
1330     224,133,35,207,182,157,234,240,245,239,238,236,238,238,238,238,238,238,236,236,236,246,248,248,218,220,221,198,197,197,238,238,
1331     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1332     238,238,236,236,236,240,240,240,240,240,240,237,237,235,239,243,248,230,203,172,248,224,123,254,249,182,238,181,85,224,145,45,
1333     253,195,87,171,85,22,196,200,203,246,246,245,237,236,236,238,238,238,238,238,238,236,236,235,241,240,240,238,238,238,238,238,
1334     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1335     238,238,238,238,238,237,237,237,238,238,238,238,236,234,238,245,254,234,197,144,249,173,61,219,138,32,232,151,47,241,149,48,
1336     249,165,57,202,101,24,144,138,139,232,234,234,239,239,239,237,237,237,238,238,238,238,238,238,237,237,237,238,238,238,238,238,
1337     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1338     238,238,238,238,238,238,238,238,238,238,238,238,237,235,237,244,251,247,197,144,251,183,74,252,197,96,236,155,55,241,163,64,
1339     216,133,42,197,102,20,150,141,137,221,224,225,241,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1340     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1341     238,238,238,238,238,238,238,238,238,238,237,239,240,242,234,230,226,211,121,31,222,117,12,225,118,19,209,99,10,206,97,7,
1342     211,103,15,203,94,4,144,99,76,218,225,229,243,241,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1343     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1344     238,238,238,238,238,238,238,238,238,238,238,239,239,239,235,235,235,143,137,129,137,74,26,133,53,0,125,50,6,107,33,4,
1345     111,30,0,102,62,48,127,129,130,196,196,195,241,241,241,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1346     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1347     238,238,238,238,238,238,238,238,238,238,238,237,237,237,240,239,238,224,230,237,164,146,126,139,88,34,160,115,67,106,57,33,
1348     40,0,2,105,106,108,179,180,180,213,213,213,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1349     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1350     238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,237,245,246,246,233,227,222,144,93,46,161,109,59,96,41,9,
1351     74,36,22,140,140,142,203,203,202,238,238,238,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1352     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1353     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,235,235,235,244,245,246,162,125,91,103,50,3,79,25,0,
1354     84,63,61,162,166,166,220,219,219,240,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1355     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1356     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,235,234,246,250,255,196,174,151,82,27,0,75,27,6,
1357     109,105,104,186,187,187,231,231,231,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1358     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1359     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,239,240,241,235,230,225,104,54,14,56,10,2,
1360     138,136,138,203,203,203,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1361     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1362     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,236,248,250,250,148,107,79,61,36,32,
1363     150,154,155,222,222,221,240,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1364     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1365     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,235,246,249,251,199,186,177,105,90,86,
1366     173,176,177,223,223,222,240,240,240,237,237,237,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1367     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1368     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,236,246,248,248,218,220,221,
1369     197,197,197,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1370     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1371     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,236,236,236,241,240,240,
1372     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1373     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1374     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,237,237,237,
1375     238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,
1376     238,238,238,238,238,238,238,238,238,238,238,238,238
1377   };
1378   data=librevenge::RVNGBinaryData(wall18,3085);
1379   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(32,32),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[18])));
1380   static unsigned char const wall19[3085]= {
1381     80,54,10,51,50,32,51,50,10,50,53,53,10,0,1,76,0,0,31,0,0,0,0,0,1,1,1,0,0,4,0,22,
1382     0,0,77,0,0,104,0,0,87,1,0,49,0,0,7,20,0,1,87,0,0,50,2,6,21,0,16,0,48,1,0,174,
1383     0,0,172,0,0,162,0,0,143,0,0,144,0,0,164,0,0,181,4,0,132,1,8,65,0,7,7,0,6,0,0,1,
1384     0,0,2,0,0,7,0,0,4,0,0,4,15,0,6,19,0,0,16,0,0,1,0,0,0,1,0,0,0,0,0,33,
1385     0,0,84,0,0,96,0,0,85,1,0,37,0,0,14,38,0,0,70,0,2,49,3,33,6,0,13,0,93,0,0,177,
1386     0,0,164,0,0,159,0,0,150,0,0,160,0,0,169,0,0,168,1,20,49,0,46,0,0,38,2,0,55,0,0,62,
1387     0,0,66,0,0,56,0,0,33,0,0,18,0,0,23,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,31,
1388     0,10,81,0,3,96,0,0,67,0,0,33,3,0,4,64,0,0,49,1,3,59,0,31,6,10,4,0,152,0,0,149,
1389     0,0,154,0,0,151,0,0,150,0,1,172,3,0,167,7,18,18,0,55,0,0,66,3,0,91,0,0,100,0,1,112,
1390     0,0,111,0,0,100,0,0,91,0,0,52,0,0,63,1,0,14,0,0,0,0,0,1,0,0,0,1,2,0,0,41,
1391     0,28,78,0,19,99,0,0,51,0,1,28,7,0,3,73,0,0,35,3,11,35,0,18,2,79,0,0,184,0,0,158,
1392     0,0,139,0,0,136,0,0,161,0,1,175,7,0,57,1,42,0,0,75,3,0,92,0,0,89,0,0,39,0,0,8,
1393     0,0,8,0,0,38,0,0,95,0,0,100,0,0,99,0,0,22,0,0,0,0,0,1,0,0,0,0,0,0,4,41,
1394     0,51,85,0,18,89,1,0,60,0,1,15,40,0,0,88,0,0,40,3,21,16,0,21,0,86,0,1,187,1,0,150,
1395     0,0,127,0,0,138,0,0,160,2,0,162,15,0,9,1,47,0,0,84,1,0,65,0,0,0,0,7,0,0,12,0,
1396     0,6,1,0,1,0,0,0,14,0,0,116,0,0,85,0,0,14,0,0,1,0,0,0,1,0,0,0,0,0,30,34,
1397     0,53,89,0,2,91,2,0,58,0,0,13,44,0,0,89,0,0,37,3,12,17,0,15,0,87,0,1,163,0,0,131,
1398     0,0,130,0,0,125,0,0,145,8,0,82,7,7,0,0,29,2,0,82,0,0,26,0,6,0,0,37,3,0,43,0,
1399     0,28,1,0,8,3,0,0,0,0,0,62,0,0,80,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,42,31,
1400     0,56,83,0,22,91,0,0,54,0,0,27,9,0,2,78,0,0,40,3,10,14,0,9,0,75,0,1,153,0,0,138,
1401     0,0,131,0,0,116,0,0,137,3,0,70,7,7,0,0,16,3,1,59,0,0,5,0,18,0,0,47,0,0,52,0,
1402     0,37,0,0,15,2,0,1,0,0,0,50,0,0,78,0,0,6,0,0,0,1,0,0,0,0,0,17,0,0,65,34,
1403     0,53,83,0,25,100,1,0,59,0,0,15,37,0,0,88,0,0,19,2,10,4,0,10,0,60,0,0,135,0,0,131,
1404     0,0,134,0,0,131,0,0,149,4,0,70,2,0,0,0,16,3,0,67,0,0,16,0,10,0,0,30,1,0,32,0,
1405     0,24,0,0,10,1,0,0,0,0,0,38,0,0,45,0,0,0,0,0,1,1,0,0,0,0,0,47,1,0,75,34,
1406     0,57,81,0,15,99,2,0,65,0,1,17,45,0,0,85,0,0,11,2,10,1,0,10,0,63,0,0,131,0,0,119,
1407     0,0,132,0,0,132,0,0,159,0,0,72,0,2,0,0,12,3,0,54,0,0,42,0,0,0,0,5,2,0,16,0,
1408     0,9,0,0,0,1,0,0,0,0,0,57,0,0,10,0,3,0,1,1,0,0,0,0,18,0,0,70,3,0,69,47,
1409     0,51,91,0,7,119,0,0,74,0,0,31,11,0,2,66,0,0,8,3,10,0,0,10,0,70,0,0,133,0,0,118,
1410     0,0,124,0,0,135,0,0,141,0,0,120,0,0,5,0,1,0,0,7,0,0,49,0,0,28,0,0,0,0,2,0,
1411     0,2,0,0,0,0,0,0,50,0,0,67,0,1,0,0,15,0,1,2,0,0,0,0,51,0,0,76,11,0,60,52,
1412     0,46,120,0,3,119,0,0,60,0,0,30,5,0,3,63,0,0,8,1,3,0,0,15,1,18,1,0,118,0,0,119,
1413     0,0,118,0,0,125,0,0,122,0,0,134,0,0,51,0,0,0,0,0,3,0,9,0,0,59,0,0,54,0,0,62,
1414     0,0,66,0,0,69,0,0,31,0,0,2,0,11,0,1,7,0,0,0,0,36,0,0,74,0,7,66,3,2,55,40,
1415     0,25,104,0,14,107,0,0,71,0,0,37,0,0,6,61,0,0,31,0,0,0,0,14,4,1,4,0,99,0,0,123,
1416     0,0,118,0,0,118,0,0,117,0,0,120,0,0,111,0,0,20,0,1,0,0,0,2,0,11,1,0,23,1,0,27,
1417     1,0,29,0,0,25,0,0,1,0,6,0,0,4,0,1,0,0,3,0,0,75,0,0,76,1,12,53,0,4,47,18,
1418     0,38,85,0,3,118,0,0,90,1,0,43,0,0,21,31,0,0,65,0,0,16,2,8,13,0,12,0,49,0,0,134,
1419     0,0,116,0,0,119,0,0,120,0,0,118,0,0,120,0,0,109,0,0,26,0,0,1,0,1,0,0,2,0,0,8,
1420     0,0,1,0,0,0,0,10,1,0,14,0,0,0,0,0,0,0,49,0,1,103,0,0,73,0,18,63,0,22,55,10,
1421     0,27,69,1,0,109,0,0,112,0,0,64,0,0,30,0,0,7,74,0,0,42,0,1,12,0,15,6,3,4,0,114,
1422     0,0,132,0,0,116,0,0,120,0,0,106,0,0,98,0,0,97,0,0,92,0,0,58,0,0,24,0,0,19,0,0,
1423     14,0,0,7,0,1,5,4,0,5,0,0,1,0,0,28,0,0,143,0,1,101,0,0,71,0,19,57,0,56,33,13,
1424     4,12,65,0,0,103,0,0,106,0,0,72,1,0,32,0,0,11,35,0,0,75,0,0,16,1,3,14,0,7,1,16,
1425     0,0,122,0,0,129,0,0,114,0,0,106,0,0,88,0,0,82,0,0,71,0,0,83,0,0,75,0,0,73,0,0,
1426     65,0,0,45,0,0,28,0,0,9,0,0,0,0,0,98,0,0,168,0,0,98,0,0,68,1,9,24,0,64,5,26,
1427     14,7,59,0,0,87,1,0,75,0,0,70,0,0,48,0,0,9,1,0,4,70,0,0,53,0,0,20,1,0,6,0,
1428     0,0,17,0,1,117,0,0,131,0,0,118,0,0,102,0,0,84,0,0,84,0,0,73,0,0,66,0,0,67,0,0,
1429     64,0,0,40,0,0,29,0,0,5,0,0,16,0,0,137,0,0,155,0,1,119,0,0,47,0,13,7,0,73,0,9,
1430     64,5,31,0,1,42,1,0,47,0,0,67,0,0,71,0,0,26,0,0,0,10,0,3,77,0,0,66,0,0,30,2,
1431     0,4,0,0,0,18,0,0,99,0,0,126,0,0,117,0,0,101,0,0,86,0,0,78,0,0,71,0,0,67,0,0,
1432     63,0,0,46,0,0,31,0,0,19,0,0,92,0,0,143,0,0,149,0,0,113,0,5,21,0,22,1,0,60,1,0,
1433     111,0,12,38,0,7,0,0,21,1,0,50,0,0,64,0,0,44,1,0,11,0,0,0,13,0,1,104,0,0,80,0,
1434     0,35,1,0,6,2,0,0,0,0,1,65,0,1,134,0,0,129,0,0,119,0,0,107,0,0,86,0,0,76,0,0,
1435     72,0,0,66,0,0,50,0,0,81,0,0,132,4,1,143,0,1,81,0,0,10,0,5,0,0,17,1,0,48,0,0,
1436     57,0,2,74,0,3,13,0,5,0,0,26,1,0,53,0,0,58,0,0,36,1,0,5,0,0,0,20,0,1,103,0,
1437     0,83,0,0,27,1,0,6,1,3,2,1,2,0,41,2,0,102,3,0,106,0,1,132,0,0,127,0,0,117,0,0,
1438     99,0,0,93,0,0,95,0,0,136,0,1,145,10,0,19,0,0,5,0,2,0,0,12,1,0,28,0,0,41,0,0,
1439     21,0,0,52,0,1,50,0,0,0,0,10,1,0,23,0,0,56,0,0,53,0,0,51,2,0,7,0,0,1,47,0,
1440     3,122,0,0,57,0,0,21,0,3,37,1,7,22,0,12,7,0,14,4,1,12,0,43,5,0,105,4,0,102,4,0,
1441     97,5,0,95,12,0,43,13,0,44,13,0,42,0,21,1,0,8,1,0,8,1,0,28,0,0,23,0,0,10,0,0,
1442     0,0,0,19,0,0,71,0,0,16,0,0,0,0,9,1,0,42,0,0,65,0,0,70,0,0,61,2,0,18,0,0,
1443     12,21,0,7,87,0,0,96,0,0,63,0,1,40,2,0,34,1,3,23,1,6,21,0,10,15,0,15,5,0,14,6,
1444     0,15,4,0,15,5,0,7,18,0,6,22,0,0,55,1,0,55,0,0,27,0,0,22,0,0,5,0,0,0,0,0,
1445     3,0,0,8,0,0,39,0,0,68,0,0,8,0,0,0,0,13,0,0,42,0,0,67,0,0,70,0,0,61,1,0,
1446     47,0,0,32,2,0,22,35,0,7,65,0,0,70,0,0,58,0,0,47,0,0,39,2,0,31,1,0,17,1,0,14,
1447     1,0,8,1,0,13,2,0,27,2,0,37,2,0,30,0,0,24,0,0,2,0,0,0,0,0,0,0,0,1,1,0,
1448     0,2,7,5,0,1,26,0,0,63,0,0,76,0,0,9,0,0,0,0,20,1,0,69,0,0,72,0,0,83,0,0,
1449     82,1,0,69,1,0,64,0,0,48,1,0,24,22,0,16,33,0,11,33,0,1,51,0,0,60,0,0,42,0,0,38,
1450     0,0,24,0,0,16,0,0,35,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
1451     1,3,6,0,0,1,8,0,0,63,0,0,71,0,0,20,0,0,0,0,7,3,0,40,0,0,68,0,0,80,0,0,
1452     85,0,0,90,0,0,81,0,0,76,0,0,44,0,1,33,1,0,23,0,0,5,15,0,1,32,0,1,32,0,1,33,
1453     1,1,14,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,2,0,0,0,5,0,0,4,0,
1454     1,0,0,0,0,0,14,0,0,44,0,0,14,0,0,0,0,0,1,0,4,3,0,28,0,0,57,0,0,61,0,0,
1455     69,0,0,74,1,1,46,8,7,44,6,6,31,6,5,19,9,9,5,1,1,0,0,2,0,0,2,0,0,2,0,0,
1456     0,0,0,2,0,0,2,0,0,1,0,0,1,2,0,1,0,0,1,0,1,0,0,4,0,0,4,0,0,0,0,0,
1457     0,0,0,1,0,0,28,0,0,11,0,3,0,0,1,1,0,0,0,0,2,0,0,18,0,0,35,1,0,23,1,0,
1458     30,0,0,15,16,3,0,25,4,3,6,4,1,17,4,5,16,2,8,9,0,30,5,0,48,1,0,35,1,1,21,1,
1459     11,23,1,1,23,0,0,16,0,0,7,0,0,3,0,3,0,0,0,0,0,0,0,0,0,0,6,0,0,7,0,0,
1460     0,0,0,38,0,0,26,0,0,0,0,17,1,0,22,0,0,7,0,0,1,0,0,6,1,0,2,0,0,2,4,0,
1461     1,16,0,0,12,0,0,4,0,0,9,2,18,18,0,49,6,7,53,0,20,31,1,72,31,0,70,23,0,72,4,0,
1462     111,16,0,70,13,0,50,8,0,45,8,0,11,0,0,53,0,0,35,0,0,10,0,1,1,0,6,0,0,19,0,0,
1463     31,0,2,64,0,3,3,0,16,0,0,34,0,0,44,0,0,69,0,0,34,1,0,0,0,0,1,6,0,0,49,0,
1464     1,39,0,0,15,2,4,1,2,20,4,1,35,0,11,11,0,107,0,0,144,0,0,142,0,0,129,0,0,127,0,0,
1465     123,0,0,117,0,0,103,0,0,94,0,0,78,0,0,83,0,0,76,0,0,68,0,0,3,0,4,0,0,19,0,0,
1466     75,0,7,40,0,26,0,0,66,1,0,68,0,0,65,0,0,65,1,0,33,0,0,9,23,0,0,75,0,0,28,0,
1467     1,10,2,11,14,0,18,1,9,11,0,88,1,0,146,0,0,160,0,0,147,1,0,137,1,0,130,1,0,128,0,0,
1468     120,1,0,113,0,0,113,0,0,91,0,0,84,0,0,79,0,0,74,0,0,33,0,1,0,0,0,1,0,38,0,2,
1469     69,0,16,3,0,70,0,0,81,0,0,72,0,0,72,1,0,36,0,0,8,19,0,1,73,0,0,46,0,0,20,2,
1470     14,2,0,16,0,47,7,0,127,0,0,161,0,0,145,0,0,160,0,0,146,0,0,134,0,0,139,0,0,129,0,0,
1471     116,0,0,123,0,0,104,0,0,87,0,0,73,0,0,76,0,0,64,0,0,4,0,0,0,1,0,0,0,32,0,14,
1472     33,0,51,0,0,87,1,0,90,0,0,75,0,0,50,0,0,15,1,0,5,58,0,0,61,0,0,33,1,12,20,0,
1473     14,0,52,0,1,175,0,0,161,0,0,133,0,0,145,0,0,146,0,0,141,0,0,136,0,0,135,0,0,125,0,0,
1474     119,0,0,120,0,0,113,0,0,92,0,0,77,0,0,73,0,0,43,0,0,0,0,0,1,0,1,0,1,16,0,13,
1475     3,0,59,0,0,100,0,0,90,0,0,63,2,0,21,0,0,8,43,0,0,87,0,0,36,2,7,26,0,23,1,44,
1476     0,0,175,0,0,143,0,0,134,0,0,148,0,0,148,0,0,147,0,0,141,0,0,142,0,0,144,0,0,133,0,0,
1477     124,0,0,118,0,0,119,0,0,95,0,0,81
1478   };
1479   data=librevenge::RVNGBinaryData(wall19,3085);
1480   m_wallpaperList.push_back(MWAWGraphicStyle::Pattern(MWAWVec2i(32,32),MWAWEmbeddedObject(data,mime),MWAWColor(defCol[19])));
1481 
1482 }
1483 
1484 }
1485 
1486 ////////////////////////////////////////////////////
1487 // KSEN function
1488 ////////////////////////////////////////////////////
operator <<(std::ostream & o,ClarisWksStyleManager::KSEN const & ksen)1489 std::ostream &operator<<(std::ostream &o, ClarisWksStyleManager::KSEN const &ksen)
1490 {
1491   switch (ksen.m_valign) {
1492   case 0:
1493     break;
1494   case 1:
1495     o<<"yCenter,";
1496     break;
1497   case 2:
1498     o<<"yBottom,";
1499     break;
1500   default:
1501     o << "valign=#" << ksen.m_valign << ",";
1502     break;
1503   }
1504   switch (ksen.m_lineType) {
1505   case MWAWBorder::None:
1506     o << "lType=none,";
1507     break;
1508   case MWAWBorder::Simple:
1509     break;
1510   case MWAWBorder::Dot:
1511     o << "dotted,";
1512     break;
1513   case MWAWBorder::LargeDot:
1514     o << "dotted[large],";
1515     break;
1516   case MWAWBorder::Dash:
1517     o << "dash,";
1518     break;
1519 #if !defined(__clang__)
1520   default:
1521     o << "lType=#" << int(ksen.m_lineType) << ",";
1522     break;
1523 #endif
1524   }
1525   switch (ksen.m_lineRepeat) {
1526   case MWAWBorder::Single:
1527     break;
1528   case MWAWBorder::Double:
1529     o << "double,";
1530     break;
1531   case MWAWBorder::Triple:
1532     o << "triple,";
1533     break;
1534 #if !defined(__clang__)
1535   default:
1536     o << "lRepeat=#" << int(ksen.m_lineRepeat) << ",";
1537     break;
1538 #endif
1539   }
1540   switch (ksen.m_lines) {
1541   case 0:
1542     break;
1543   case 1:
1544     o << "lines=LT<->RB,";
1545     break;
1546   case 2:
1547     o << "lines=LB<->RT,";
1548     break;
1549   case 3:
1550     o << "cross,";
1551     break;
1552   default:
1553     o << "lines=#" << ksen.m_lines << ",";
1554     break;
1555   }
1556   o << ksen.m_extra;
1557   return o;
1558 }
1559 
1560 ////////////////////////////////////////////////////
1561 // Style function
1562 ////////////////////////////////////////////////////
operator <<(std::ostream & o,ClarisWksStyleManager::Style const & style)1563 std::ostream &operator<<(std::ostream &o, ClarisWksStyleManager::Style const &style)
1564 {
1565   if (style.m_styleId != -1) {
1566     o << "styleId=[" << style.m_styleId ;
1567     if (style.m_localStyleId != -1 && style.m_localStyleId != style.m_styleId)
1568       o << ",lId=" << style.m_localStyleId;
1569     o << "],";
1570   }
1571   if (style.m_fontId != -1)
1572     o << "font=" << style.m_fontId << ",";
1573   if (style.m_cellFormatId != -1)
1574     o << "cellStyle=" << style.m_cellFormatId << ",";
1575   if (style.m_rulerId != -1)
1576     o << "ruler=" << style.m_rulerId << ",";
1577   if (style.m_rulerPId != -1)
1578     o << "ruler[parent]=LK" << style.m_rulerPId << ",";
1579   if (style.m_nameId != -1)
1580     o << "name=" << style.m_nameId << ",";
1581   if (style.m_ksenId != -1)
1582     o << "ksenId=" << style.m_ksenId << ",";
1583   if (style.m_graphicId != -1)
1584     o << "graphicId=" << style.m_graphicId << ",";
1585   o << style.m_extra;
1586   return o;
1587 }
1588 
1589 ////////////////////////////////////////////////////
1590 // StyleManager function
1591 ////////////////////////////////////////////////////
ClarisWksStyleManager(MWAWParserStatePtr const & parserState,ClarisWksDocument * document)1592 ClarisWksStyleManager::ClarisWksStyleManager(MWAWParserStatePtr const &parserState, ClarisWksDocument *document)
1593   : m_document(document)
1594   , m_parserState(parserState)
1595   , m_state()
1596 {
1597   m_state.reset(new ClarisWksStyleManagerInternal::State);
1598 }
1599 
~ClarisWksStyleManager()1600 ClarisWksStyleManager::~ClarisWksStyleManager()
1601 {
1602 }
1603 
version() const1604 int ClarisWksStyleManager::version() const
1605 {
1606   if (m_state->m_version <= 0) m_state->m_version = m_parserState->m_version;
1607   return m_state->m_version;
1608 }
1609 
getRulerName(int id,std::string & name) const1610 bool ClarisWksStyleManager::getRulerName(int id, std::string &name) const
1611 {
1612   Style style, parentStyle;
1613   if (!get(id, style) || style.m_rulerPId < 0 ||
1614       !get(style.m_rulerPId, parentStyle) || parentStyle.m_nameId < 0) return false;
1615   /* CHANGE: no sure how to recognize the basic style from a modified
1616      paragraph based on a style, so use a hack to avoid potential problem...
1617    */
1618   if (style.m_rulerId!=parentStyle.m_rulerId+1) return false;
1619   if (parentStyle.m_nameId >= static_cast<int>(m_state->m_nameList.size())) {
1620     MWAW_DEBUG_MSG(("ClarisWksStyleManager::getRulerName: oops something look bad\n"));
1621     return false;
1622   }
1623   name=m_state->m_nameList[size_t(parentStyle.m_nameId)];
1624   return true;
1625 }
1626 
get(int id,MWAWFont & ft) const1627 bool ClarisWksStyleManager::get(int id, MWAWFont &ft) const
1628 {
1629   if (id < 0 || id >= int(m_state->m_fontList.size())) {
1630     MWAW_DEBUG_MSG(("ClarisWksStyleManager::get: can not find font %d\n", id));
1631     return false;
1632   }
1633   ft=m_state->m_fontList[size_t(id)];
1634   return true;
1635 }
1636 
getColor(int id,MWAWColor & col) const1637 bool ClarisWksStyleManager::getColor(int id, MWAWColor &col) const
1638 {
1639   auto numColor = static_cast<int>(m_state->m_colorList.size());
1640   if (!numColor) {
1641     m_state->setDefaultColorList(version());
1642     numColor = int(m_state->m_colorList.size());
1643   }
1644   if (id < 0 || id >= numColor)
1645     return false;
1646   col = m_state->m_colorList[size_t(id)];
1647   return true;
1648 }
1649 
getPattern(int id,MWAWGraphicStyle::Pattern & pattern,float & percent) const1650 bool ClarisWksStyleManager::getPattern(int id, MWAWGraphicStyle::Pattern &pattern, float &percent) const
1651 {
1652   if (m_state->m_patternList.empty())
1653     m_state->setDefaultPatternList(version());
1654   if (id <= 0 || id > int(m_state->m_patternList.size()))
1655     return false;
1656   ClarisWksStyleManagerInternal::Pattern const &pat=m_state->m_patternList[size_t(id-1)];
1657   pattern = pat;
1658   percent = pat.m_percent;
1659   return true;
1660 }
1661 
1662 // accessor
getFontId(int localId) const1663 int ClarisWksStyleManager::getFontId(int localId) const
1664 {
1665   return m_state->getFontId(localId);
1666 }
1667 
get(int styleId,ClarisWksStyleManager::Style & style) const1668 bool ClarisWksStyleManager::get(int styleId, ClarisWksStyleManager::Style &style) const
1669 {
1670   style = Style();
1671   if (version() <= 2 || m_state->m_lookupMap.find(styleId) == m_state->m_lookupMap.end())
1672     return false;
1673   int id = m_state->m_lookupMap.find(styleId)->second;
1674   if (id < 0 ||m_state-> m_stylesMap.find(id) ==m_state-> m_stylesMap.end())
1675     return false;
1676   style =m_state-> m_stylesMap.find(id)->second;
1677   return true;
1678 }
1679 
get(int formatId,ClarisWksStyleManager::CellFormat & format) const1680 bool ClarisWksStyleManager::get(int formatId, ClarisWksStyleManager::CellFormat &format) const
1681 {
1682   format = CellFormat();
1683   if (formatId<0||formatId>=int(m_state->m_cellFormatList.size())) {
1684     MWAW_DEBUG_MSG(("ClarisWksStyleManager::get: can not find format %d\n", formatId));
1685     return false;
1686   }
1687   format = m_state->m_cellFormatList[size_t(formatId)];
1688   return true;
1689 }
1690 
get(int ksenId,ClarisWksStyleManager::KSEN & ksen) const1691 bool ClarisWksStyleManager::get(int ksenId, ClarisWksStyleManager::KSEN &ksen) const
1692 {
1693   ksen = KSEN();
1694   if (ksenId < 0) return false;
1695   if (ksenId >= int(m_state->m_ksenList.size())) {
1696     MWAW_DEBUG_MSG(("ClarisWksStyleManager::get: can not find ksen %d\n", ksenId));
1697     return false;
1698   }
1699   ksen = m_state->m_ksenList[size_t(ksenId)];
1700   return true;
1701 }
1702 
get(int graphId,MWAWGraphicStyle & graph) const1703 bool ClarisWksStyleManager::get(int graphId, MWAWGraphicStyle &graph) const
1704 {
1705   graph = MWAWGraphicStyle();
1706   if (graphId < 0) return false;
1707   if (graphId >= int(m_state->m_graphList.size())) {
1708     MWAW_DEBUG_MSG(("ClarisWksStyleManager::get: can not find graph %d\n", graphId));
1709     return false;
1710   }
1711   graph = m_state->m_graphList[size_t(graphId)];
1712   return true;
1713 }
1714 
updateGradient(int id,MWAWGraphicStyle & style) const1715 bool ClarisWksStyleManager::updateGradient(int id, MWAWGraphicStyle &style) const
1716 {
1717   if (m_state->m_gradientList.empty())
1718     m_state->setDefaultGradientList(version());
1719   if (id < 0 || id>=int(m_state->m_gradientList.size())) {
1720     MWAW_DEBUG_MSG(("ClarisWksStyleManager::updateGradiant: called with id=%d\n", id));
1721     return false;
1722   }
1723   if (!m_state->m_gradientList[size_t(id)].update(style)) return false;
1724   // try to update the color list
1725   auto &finalGrad=style.m_gradient;
1726   size_t numColors=finalGrad.m_stopList.size();
1727   if (numColors<=1) return true;
1728   float f=1.f/float(numColors);
1729   MWAWColor col=MWAWColor::barycenter(f,finalGrad.m_stopList[0].m_color,f,finalGrad.m_stopList[1].m_color);
1730   for (size_t c=2; c<numColors; c++)
1731     col=MWAWColor::barycenter(1,col,f,finalGrad.m_stopList[c].m_color);
1732   style.setSurfaceColor(col);
1733   return true;
1734 }
1735 
updateWallPaper(int id,MWAWGraphicStyle & style) const1736 bool ClarisWksStyleManager::updateWallPaper(int id, MWAWGraphicStyle &style) const
1737 {
1738   auto numWallpaper = static_cast<int>(m_state->m_wallpaperList.size());
1739   if (!numWallpaper) {
1740     m_state->setDefaultWallPaperList(version());
1741     numWallpaper = int(m_state->m_wallpaperList.size());
1742   }
1743   if (id <= 0 || id > numWallpaper) {
1744     MWAW_DEBUG_MSG(("ClarisWksStyleManager::updateWallPaper: can not find wall paper %d\n", int(id)));
1745     return false;
1746   }
1747   MWAWGraphicStyle::Pattern const &pat=m_state->m_wallpaperList[size_t(id-1)];
1748   style.setPattern(pat);
1749   MWAWColor col;
1750   if (pat.getAverageColor(col))
1751     style.setSurfaceColor(col);
1752   return true;
1753 }
1754 
1755 ////////////////////////////////////////////////////////////
1756 // read file main structure
1757 ////////////////////////////////////////////////////////////
readPatternList(long lastPos)1758 bool ClarisWksStyleManager::readPatternList(long lastPos)
1759 {
1760   int vers=version();
1761   MWAWInputStreamPtr &input= m_parserState->m_input;
1762   long pos=input->tell();
1763   ClarisWksStruct::Struct header;
1764   if (!header.readHeader(input,false) || (header.m_size && header.m_dataSize!=8) ||
1765       (header.m_size && header.m_size<140) || (lastPos>0 && pos+header.m_size+4>lastPos)) {
1766     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readPatternList: can not read the header\n"));
1767     return false;
1768   }
1769   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
1770   libmwaw::DebugStream f;
1771   if (header.m_size==0) {
1772     ascFile.addPos(pos);
1773     ascFile.addNote("Nop");
1774     return true;
1775   }
1776   long endPos=pos+4+header.m_size;
1777   f << "Entries(PatternList):" << header;
1778   if (header.m_headerSize) {
1779     ascFile.addDelimiter(input->tell(),'|');
1780     input->seek(header.m_headerSize, librevenge::RVNG_SEEK_CUR);
1781   }
1782   ascFile.addPos(pos);
1783   ascFile.addNote(f.str().c_str());
1784 
1785   m_state->setDefaultPatternList(vers);
1786   for (long i=0; i < header.m_numData; ++i) {
1787     uint16_t pat[4];
1788     for (auto &p : pat) p=static_cast<uint16_t>(input->readULong(2));
1789     ClarisWksStyleManagerInternal::Pattern pattern(pat);
1790     m_state->m_patternList.push_back(pattern);
1791     f << "pat" << i+64 << "=[" << pattern << "],";
1792   }
1793   ascFile.addPos(pos);
1794   ascFile.addNote(f.str().c_str());
1795   input->seek(endPos,librevenge::RVNG_SEEK_SET);
1796   return true;
1797 }
1798 
readGradientList(long lastPos)1799 bool ClarisWksStyleManager::readGradientList(long lastPos)
1800 {
1801   MWAWInputStreamPtr &input= m_parserState->m_input;
1802   long pos=input->tell();
1803   ClarisWksStruct::Struct header;
1804   if (!header.readHeader(input,false) || (header.m_size && header.m_dataSize!=0x28) ||
1805       (header.m_size && header.m_size<76) || (lastPos>0 && pos+header.m_size+4>lastPos)) {
1806     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readPatternList: can not read the header\n"));
1807     return false;
1808   }
1809   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
1810   libmwaw::DebugStream f;
1811   if (header.m_size==0) {
1812     ascFile.addPos(pos);
1813     ascFile.addNote("Nop");
1814     return true;
1815   }
1816   long endPos=pos+4+header.m_size;
1817   f << "Entries(GradientList):" << header;
1818   int const numDefGrad=32;
1819   if (header.m_headerSize==2*numDefGrad) {
1820     for (int i=0; i < numDefGrad; ++i) {
1821       long val= input->readLong(2);
1822       if (val!=i) f << "grad" << i << "=" << val << ",";
1823     }
1824   }
1825   else {
1826     f << "###headerSize,";
1827     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGradientList: unexpected headerSize\n"));
1828     if (header.m_headerSize) {
1829       ascFile.addDelimiter(input->tell(),'|');
1830       input->seek(header.m_headerSize, librevenge::RVNG_SEEK_CUR);
1831     }
1832   }
1833   ascFile.addPos(pos);
1834   ascFile.addNote(f.str().c_str());
1835 
1836   m_state->setDefaultGradientList(version());
1837   for (long i=0; i < header.m_numData; ++i) {
1838     pos=input->tell();
1839     f.str("");
1840     f << "GradientList-" << numDefGrad+i << ":";
1841     ClarisWksStyleManagerInternal::Gradient grad;
1842     for (auto &j : grad.m_colors) {
1843       unsigned char color[3];
1844       for (auto &c : color) c = static_cast<unsigned char>(input->readULong(2)/256);
1845       j= MWAWColor(color[0], color[1],color[2]);
1846     }
1847     grad.m_numColors=static_cast<int>(input->readLong(1));
1848     grad.m_type=static_cast<int>(input->readLong(1));
1849     grad.m_angle=static_cast<int>(input->readLong(2));
1850     grad.m_decal=float(input->readLong(4))/65536.f;
1851     int dim[4];
1852     for (int &d : dim) d=static_cast<int>(input->readLong(2));
1853     grad.m_box=MWAWBox2i(MWAWVec2i(dim[0],dim[1]),MWAWVec2i(dim[2],dim[3]));
1854     f << grad;
1855     if (!grad.ok()) {
1856       f << "##";
1857       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGradientList: can read the number of color or type\n"));
1858       ascFile.addPos(pos);
1859       ascFile.addNote(f.str().c_str());
1860       input->seek(endPos,librevenge::RVNG_SEEK_SET);
1861       return true;
1862     }
1863     m_state->m_gradientList.push_back(grad);
1864     ascFile.addPos(pos);
1865     ascFile.addNote(f.str().c_str());
1866     input->seek(pos+40, librevenge::RVNG_SEEK_SET);
1867   }
1868   input->seek(endPos,librevenge::RVNG_SEEK_SET);
1869   return true;
1870 }
1871 
readColorList(MWAWEntry const & entry)1872 bool ClarisWksStyleManager::readColorList(MWAWEntry const &entry)
1873 {
1874   if (!entry.valid()) return false;
1875   long pos = entry.begin();
1876   MWAWInputStreamPtr &input= m_parserState->m_input;
1877   input->seek(pos+4, librevenge::RVNG_SEEK_SET); // avoid header
1878   if (entry.length() == 4) return true;
1879 
1880   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
1881   libmwaw::DebugStream f;
1882   f << "Entries(ColorList):";
1883   auto N = static_cast<int>(input->readULong(2));
1884   f << "N=" << N << ",";
1885   for (int i = 0; i < 2; i++) {
1886     auto val = static_cast<int>(input->readLong(2));
1887     if (val) f << "f" << i << "=" << val << ",";
1888   }
1889 
1890   int const dataSize = 16;
1891   if (pos+10+N*dataSize > entry.end()) {
1892     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readColorList: can not read data\n"));
1893     input->seek(pos, librevenge::RVNG_SEEK_SET);
1894     return false;
1895   }
1896 
1897   ascFile.addDelimiter(input->tell(),'|');
1898   input->seek(entry.end()-N*dataSize, librevenge::RVNG_SEEK_SET);
1899   ascFile.addPos(pos);
1900   ascFile.addNote(f.str().c_str());
1901 
1902   m_state->m_colorList.resize(size_t(N));
1903   for (int i = 0; i < N; i++) {
1904     pos = input->tell();
1905     unsigned char color[3];
1906     for (auto &c : color) c = static_cast<unsigned char>(input->readULong(2)/256);
1907     m_state->m_colorList[size_t(i)]= MWAWColor(color[0], color[1],color[2]);
1908 
1909     f.str("");
1910     f << "ColorList[" << i << "]:";
1911     ascFile.addDelimiter(input->tell(),'|');
1912     ascFile.addPos(pos);
1913     ascFile.addNote(f.str().c_str());
1914     input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
1915   }
1916 
1917   input->seek(entry.end(), librevenge::RVNG_SEEK_SET);
1918   return true;
1919 }
1920 
readStyles(MWAWEntry const & entry)1921 bool ClarisWksStyleManager::readStyles(MWAWEntry const &entry)
1922 {
1923   if (!entry.valid() || entry.type() != "STYL")
1924     return false;
1925   int vers=version();
1926   long pos = entry.begin();
1927   MWAWInputStreamPtr &input= m_parserState->m_input;
1928   input->seek(pos+4, librevenge::RVNG_SEEK_SET); // skip header
1929   auto sz = long(input->readULong(4));
1930   if (sz > entry.length()) {
1931     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStyles: pb with entry length"));
1932     input->seek(pos, librevenge::RVNG_SEEK_SET);
1933     return false;
1934   }
1935 
1936   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
1937   libmwaw::DebugStream f;
1938   f << "Entries(STYL):";
1939   if (vers <= 3) {
1940     ascFile.addPos(pos);
1941     ascFile.addNote(f.str().c_str());
1942     input->seek(entry.end(), librevenge::RVNG_SEEK_SET);
1943     return true;
1944   }
1945   bool limitSet = true;
1946   if (vers <= 4) {
1947     // version 4 does not contents total length fields
1948     input->seek(-4, librevenge::RVNG_SEEK_CUR);
1949     limitSet = false;
1950   }
1951   else
1952     input->pushLimit(entry.end());
1953   ascFile.addPos(pos);
1954   ascFile.addNote(f.str().c_str());
1955   int id = 0;
1956   while (long(input->tell()) < entry.end()) {
1957     pos = input->tell();
1958     if (!readGenStyle(id)) {
1959       input->seek(pos, librevenge::RVNG_SEEK_SET);
1960       if (limitSet) input->popLimit();
1961       return false;
1962     }
1963     id++;
1964   }
1965   if (limitSet) input->popLimit();
1966 
1967   return true;
1968 }
1969 
readGenStyle(int id)1970 bool ClarisWksStyleManager::readGenStyle(int id)
1971 {
1972   MWAWInputStreamPtr &input= m_parserState->m_input;
1973   long pos = input->tell();
1974   // look like a classic struct, but sometime the dataSize, ... seems bad,
1975   // so we read the data by hand
1976   auto sz = long(input->readULong(4));
1977   long endPos = pos+4+sz;
1978   if (!input->checkPosition(endPos)) {
1979     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGenStyle: pb with sub zone: %d", id));
1980     return false;
1981   }
1982   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
1983   libmwaw::DebugStream f;
1984   f << "STYL-" << id << ":";
1985   if (sz < 16) {
1986     if (sz) f << "##sz=" << sz;
1987     ascFile.addPos(pos);
1988     ascFile.addNote(f.str().c_str());
1989     input->seek(endPos, librevenge::RVNG_SEEK_SET);
1990     return true;
1991   }
1992   auto N = static_cast<int>(input->readLong(2));
1993   auto type = static_cast<int>(input->readLong(2));
1994   auto val = static_cast<int>(input->readLong(2));
1995   auto fSz = static_cast<int>(input->readLong(2));
1996   f << "N=" << N << ", type?=" << type <<", fSz=" << fSz << ",";
1997   if (val) f << "unkn=" << val << ",";
1998   int unkn[2];
1999   for (int i = 0; i < 2; i++) {
2000     unkn[i] = static_cast<int>(input->readLong(2));
2001     if (unkn[i])  f << "f" << i << "=" << val << ",";
2002   }
2003   // check here for gradient definition...
2004   if (version()>4 && type==-1 && val==0 && fSz==0x28 && unkn[0]==0x40 && unkn[1]==1) {
2005     input->seek(pos, librevenge::RVNG_SEEK_SET);
2006     if (readGradientList(endPos)) return true;
2007     input->seek(pos+16, librevenge::RVNG_SEEK_SET);
2008   }
2009 
2010   std::string name("");
2011   for (int i = 0; i < 4; i++)
2012     name += char(input->readULong(1));
2013   f << name;
2014   long actPos = input->tell();
2015   if (actPos != pos && actPos != endPos - N*fSz)
2016     ascFile.addDelimiter(input->tell(), '|');
2017   ascFile.addPos(pos);
2018   ascFile.addNote(f.str().c_str());
2019 
2020   long numRemain = endPos - actPos;
2021   if (N > 0 && fSz > 0 && numRemain >= N*fSz) {
2022     input->seek(endPos-N*fSz, librevenge::RVNG_SEEK_SET);
2023     bool ok = false;
2024     if (name == "CHAR")
2025       ok = readStyleFonts(N, fSz);
2026     else if (name == "CELL")
2027       ok = readCellStyles(N, fSz);
2028     else if (name == "FNTM")
2029       ok = readFontNames(N, fSz);
2030     else if (name == "GRPH")
2031       ok = readGraphStyles(N, fSz);
2032     else if (name == "KSEN")
2033       ok = readKSEN(N, fSz);
2034     else if (name == "LKUP")
2035       ok = readLookUp(N, fSz);
2036     else if (name == "NAME")
2037       ok = readStyleNames(N, fSz);
2038     else if (name == "RULR")
2039       ok = m_document && m_document->getTextParser() && m_document->getTextParser()->readSTYL_RULR(N, fSz);
2040     else if (name == "STYL")
2041       ok = readStylesDef(N, fSz);
2042     if (!ok) {
2043       input->seek(endPos-N*fSz, librevenge::RVNG_SEEK_SET);
2044       for (int i = 0; i <N ; i++) {
2045         pos = input->tell();
2046         f.str("");
2047         f << "STYL-" << id << "/" << name << "-" << i << ":";
2048         ascFile.addPos(pos);
2049         ascFile.addNote(f.str().c_str());
2050         input->seek(fSz, librevenge::RVNG_SEEK_CUR);
2051       }
2052     }
2053   }
2054 
2055   input->seek(endPos, librevenge::RVNG_SEEK_SET);
2056   if (name=="NAME") {
2057     if (!readPatternList()) {
2058       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGenStyle: can not find the pattern list\n"));
2059       input->seek(endPos, librevenge::RVNG_SEEK_SET);
2060     }
2061     else if (version()==4) {
2062       endPos=input->tell();
2063       if (!readGradientList()) {
2064         MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGenStyle: can not find the gradient list\n"));
2065         input->seek(endPos, librevenge::RVNG_SEEK_SET);
2066       }
2067     }
2068   }
2069 
2070   return true;
2071 }
2072 
readStylesDef(int N,int fieldSize)2073 bool ClarisWksStyleManager::readStylesDef(int N, int fieldSize)
2074 {
2075   m_state->m_stylesMap.clear();
2076   if (fieldSize == 0 || N== 0)
2077     return true;
2078   if (fieldSize < 28) {
2079     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStylesDef: Find old data size %d\n", fieldSize));
2080     return false;
2081   }
2082   MWAWInputStreamPtr &input= m_parserState->m_input;
2083   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2084   libmwaw::DebugStream f;
2085 
2086   for (int i = 0; i < N; i++) {
2087     long pos = input->tell();
2088     Style style;
2089     f.str("");
2090     auto val = static_cast<int>(input->readLong(2));
2091     if (val != -1) f << "f0=" << val << ",";
2092     val = static_cast<int>(input->readLong(2));
2093     if (val) f << "f1=" << val << ",";
2094     f << "unkn?=" << input->readLong(2) << ",";
2095     style.m_localStyleId = static_cast<int>(input->readLong(2));
2096     if (i != style.m_localStyleId && style.m_localStyleId != -1) f << "#styleId,";
2097     style.m_styleId = static_cast<int>(input->readLong(2));
2098     for (int j = 0; j < 2; j++) {
2099       // unknown : hash, dataId ?
2100       f << "g" << j << "=" << input->readLong(1) << ",";
2101     }
2102     f << "g=" << input->readLong(2) << ",";
2103     style.m_rulerPId=static_cast<int>(input->readLong(2));
2104     auto lookupId2 = static_cast<int>(input->readLong(2));
2105     f << "lookupId2=" << lookupId2 << ",";
2106     style.m_fontId = static_cast<int>(input->readLong(2));
2107     style.m_cellFormatId = static_cast<int>(input->readLong(2));
2108     style.m_graphicId = static_cast<int>(input->readLong(2));
2109     style.m_rulerId = static_cast<int>(input->readLong(2));
2110     if (fieldSize >= 30)
2111       style.m_ksenId = static_cast<int>(input->readLong(2));
2112     style.m_nameId = static_cast<int>(input->readLong(2));
2113     style.m_extra = f.str();
2114     if (m_state->m_stylesMap.find(i)==m_state->m_stylesMap.end())
2115       m_state->m_stylesMap[i] = style;
2116     else {
2117       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStylesDef: style %d already exists\n", i));
2118     }
2119     if (long(input->tell()) != pos+fieldSize)
2120       ascFile.addDelimiter(input->tell(), '|');
2121 
2122     f.str("");
2123     if (!i)
2124       f << "Entries(Style)-0:" << style;
2125     else
2126       f << "Style-" << i << ":" << style;
2127     ascFile.addPos(pos);
2128     ascFile.addNote(f.str().c_str());
2129     input->seek(pos+fieldSize, librevenge::RVNG_SEEK_SET);
2130   }
2131   return true;
2132 }
2133 
readLookUp(int N,int fieldSize)2134 bool ClarisWksStyleManager::readLookUp(int N, int fieldSize)
2135 {
2136   m_state->m_lookupMap.clear();
2137 
2138   if (fieldSize == 0 || N== 0) return true;
2139   if (fieldSize < 2) {
2140     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readLookUp: the field size seems bad\n"));
2141     return false;
2142   }
2143   MWAWInputStreamPtr &input= m_parserState->m_input;
2144   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2145   libmwaw::DebugStream f;
2146 
2147   for (int i = 0; i < N; i++) {
2148     long pos = input->tell();
2149     f.str("");
2150     if (i == 0) f << "Entries(StylLookUp): StylLookUp-LK0:";
2151     else f << "StylLookUp-LK" << i << ":";
2152     auto val = static_cast<int>(input->readLong(2));
2153     if (m_state->m_stylesMap.find(val)!=m_state->m_stylesMap.end() &&
2154         m_state->m_stylesMap.find(val)->second.m_localStyleId != val &&
2155         m_state->m_stylesMap.find(val)->second.m_localStyleId != -1) {
2156       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readLookUp: find some incoherence between style and lookup\n"));
2157       f << "##";
2158     }
2159     m_state->m_lookupMap[i] = val;
2160     f << "styleId=" << val;
2161     if (fieldSize != 2) {
2162       ascFile.addDelimiter(input->tell(), '|');
2163       input->seek(pos+fieldSize, librevenge::RVNG_SEEK_SET);
2164     }
2165     ascFile.addPos(pos);
2166     ascFile.addNote(f.str().c_str());
2167   }
2168 
2169   return true;
2170 }
2171 
2172 ////////////////////////////////////////////////////////////
2173 // small structure
2174 ////////////////////////////////////////////////////////////
readFontNames()2175 bool ClarisWksStyleManager::readFontNames()
2176 {
2177   MWAWInputStreamPtr &input= m_parserState->m_input;
2178   long pos=input->tell();
2179   if (!input->checkPosition(pos+8)) return false;
2180   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2181   libmwaw::DebugStream f;
2182   f << "Entries(FNTM):";
2183   ClarisWksStruct::Struct header;
2184   if (input->readULong(4) != 0x464e544d || !header.readHeader(input,true)) {
2185     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: can not read the header\n"));
2186     return false;
2187   }
2188   if (header.m_size==0) {
2189     ascFile.addPos(pos);
2190     ascFile.addNote("Nop");
2191     return true;
2192   }
2193   long endPos=pos+8+header.m_size;
2194   f << header;
2195   if (header.m_headerSize) {
2196     ascFile.addDelimiter(input->tell(),'|');
2197     input->seek(header.m_headerSize, librevenge::RVNG_SEEK_CUR);
2198   }
2199   ascFile.addPos(pos);
2200   ascFile.addNote(f.str().c_str());
2201 
2202   pos=input->tell();
2203   if (header.m_dataSize!=72) {
2204     input->seek(endPos, librevenge::RVNG_SEEK_SET);
2205     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: no sure how to read the data\n"));
2206     ascFile.addPos(pos);
2207     ascFile.addNote("FNTM-data:###");
2208     return true;
2209   }
2210 
2211   for (long i=0; i<header.m_numData; ++i) {
2212     pos=input->tell();
2213     f.str("");
2214     f << "FNTM-" << i << ":";
2215     auto fId=static_cast<int>(input->readULong(2));
2216     f << "fId=" << fId << ",";
2217     auto val=static_cast<int>(input->readULong(2)); // always fId?
2218     if (val!=fId) f << "fId2=" << val << ",";
2219     for (int j=0; j<2; ++j) { // always 0?
2220       val=static_cast<int>(input->readLong(2));
2221       if (val) f << "f" << j << "=" << val << ",";
2222     }
2223     auto sSz=static_cast<int>(input->readULong(1));
2224     if (!sSz || sSz+9>header.m_dataSize) {
2225       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: the string size seems bad\n"));
2226       f << "###";
2227     }
2228     else {
2229       std::string name("");
2230       for (int s=0; s<sSz; ++s) name+=char(input->readULong(1));
2231       f << "'" << name << "'";
2232       m_parserState->m_fontConverter->setCorrespondance(fId, name);
2233     }
2234     input->seek(pos+header.m_dataSize, librevenge::RVNG_SEEK_SET);
2235     ascFile.addPos(pos);
2236     ascFile.addNote(f.str().c_str());
2237   }
2238   return true;
2239 }
2240 
readFontNames(int N,int dataSize)2241 bool ClarisWksStyleManager::readFontNames(int N, int dataSize)
2242 {
2243   if (dataSize == 0 || N== 0) return true;
2244   if (dataSize < 16) return false;
2245 
2246   MWAWInputStreamPtr &input= m_parserState->m_input;
2247   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2248   libmwaw::DebugStream f;
2249   for (int i = 0; i < N; i++) {
2250     long pos = input->tell();
2251     f.str("");
2252     if (i == 0) f << "Entries(FntNames): FntNames-0:";
2253     else f << "FntNames-" << i << ":";
2254     auto fontEncoding = static_cast<int>(input->readULong(2));
2255     f << "nameEncoding=" << fontEncoding << ",";
2256     f << "type?=" << input->readLong(2) << ",";
2257 
2258     auto nChar = static_cast<int>(input->readULong(1));
2259     if (5+nChar > dataSize) {
2260       static bool first = true;
2261       if (first) {
2262         MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: pb with name field %d", i));
2263         first = false;
2264       }
2265       f << "#";
2266     }
2267     else {
2268       std::string name("");
2269       bool ok = true;
2270       for (int c = 0; c < nChar; c++) {
2271         auto ch = char(input->readULong(1));
2272         if (ch == '\0') {
2273           MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: pb with name field %d\n", i));
2274           ok = false;
2275           break;
2276         }
2277         else if (ch & 0x80) {
2278           static bool first = true;
2279           if (first) {
2280             MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontNames: find odd font\n"));
2281             first = false;
2282           }
2283           if (fontEncoding!=0x4000)
2284             ok = false;
2285         }
2286         name += ch;
2287       }
2288       f << "'" << name << "'";
2289       if (name.length() && ok) {
2290         std::string family = fontEncoding==0x4000 ? "Osaka" : "";
2291         m_state->m_localFIdMap[i]=m_parserState->m_fontConverter->getId(name, family);
2292       }
2293     }
2294     if (long(input->tell()) != pos+dataSize) {
2295       ascFile.addDelimiter(input->tell(), '|');
2296       input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2297     }
2298 
2299     ascFile.addPos(pos);
2300     ascFile.addNote(f.str().c_str());
2301   }
2302   return true;
2303 }
2304 
readFont(int id,int fontSize,MWAWFont & font)2305 bool ClarisWksStyleManager::readFont(int id, int fontSize, MWAWFont &font)
2306 {
2307   MWAWInputStreamPtr &input= m_parserState->m_input;
2308   long pos = input->tell();
2309 
2310   input->seek(pos, librevenge::RVNG_SEEK_SET);
2311   font = MWAWFont();
2312   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2313   libmwaw::DebugStream f;
2314   if (id == 0)
2315     f << "Entries(CHAR)-0:";
2316   else
2317     f << "CHAR-" << id << ":";
2318 
2319   auto val = static_cast<int>(input->readLong(2));
2320   if (val != -1) f << "f0=" << val << ",";
2321   f << "flags=[";
2322   for (int i = 0; i < 6; i++) {
2323     val  = static_cast<int>(input->readLong(2));
2324     if (val) {
2325       if (i == 3)
2326         f << "f" << i << "=" << std::hex << val << std::dec << ",";
2327       else
2328         f << "f" << i << "=" << val << ",";
2329     }
2330   }
2331   font.setId(getFontId(static_cast<int>(input->readULong(2))));
2332   auto flag =static_cast<int>(input->readULong(2));
2333   uint32_t flags=0;
2334   if (flag&0x1) flags |= MWAWFont::boldBit;
2335   if (flag&0x2) flags |= MWAWFont::italicBit;
2336   if (flag&0x4) font.setUnderlineStyle(MWAWFont::Line::Simple);
2337   if (flag&0x8) flags |= MWAWFont::embossBit;
2338   if (flag&0x10) flags |= MWAWFont::shadowBit;
2339   if (flag&0x20) font.setDeltaLetterSpacing(-1);
2340   if (flag&0x40) font.setDeltaLetterSpacing(1);
2341   if (flag&0x80) font.setStrikeOutStyle(MWAWFont::Line::Simple);
2342   if (flag&0x100) font.set(MWAWFont::Script::super100());
2343   if (flag&0x200) font.set(MWAWFont::Script::sub100());
2344   if (flag&0x400) font.set(MWAWFont::Script::super());
2345   if (flag&0x800) font.set(MWAWFont::Script::sub());
2346   if (flag&0x2000) {
2347     font.setUnderlineStyle(MWAWFont::Line::Simple);
2348     font.setUnderlineType(MWAWFont::Line::Double);
2349   }
2350   font.setSize(float(input->readULong(1)));
2351 
2352   auto colId = static_cast<int>(input->readULong(1));
2353   MWAWColor color(MWAWColor::black());
2354   if (colId!=1 && !getColor(colId, color))
2355     f << "#col=" << std::hex << colId << std::dec << ",";
2356   font.setColor(color);
2357   if (fontSize >= 12 && version()==6) {
2358     flag = static_cast<int>(input->readULong(2));
2359     if (flag & 0x1)
2360       font.setUnderlineStyle(MWAWFont::Line::Simple);
2361     if (flag & 0x2) {
2362       font.setUnderlineStyle(MWAWFont::Line::Simple);
2363       font.setUnderlineType(MWAWFont::Line::Double);
2364     }
2365     if (flag & 0x20)
2366       font.setStrikeOutStyle(MWAWFont::Line::Simple);
2367     flag &= 0xFFDC;
2368     if (flag)
2369       f << "#flag2=" << std::hex << flag << std::dec << ",";
2370   }
2371   font.setFlags(flags);
2372   f << font.getDebugString(m_parserState->m_fontConverter);
2373   if (long(input->tell()) != pos+fontSize)
2374     ascFile.addDelimiter(input->tell(), '|');
2375   input->seek(pos+fontSize, librevenge::RVNG_SEEK_SET);
2376   ascFile.addPos(pos);
2377   ascFile.addNote(f.str().c_str());
2378   return true;
2379 }
2380 
readFontAndPos(int id,int & posC,MWAWFont & font)2381 bool ClarisWksStyleManager::readFontAndPos(int id, int &posC, MWAWFont &font)
2382 {
2383   MWAWInputStreamPtr &input= m_parserState->m_input;
2384   long pos = input->tell();
2385 
2386   int fontSize = 0;
2387   int vers = version();
2388   switch (vers) {
2389   case 1:
2390   case 2:
2391   case 3:
2392     fontSize = 10;
2393     break;
2394   case 4:
2395   case 5:
2396     fontSize = 12;
2397     break;
2398   case 6:
2399     fontSize = 18;
2400     break;
2401   default:
2402     break;
2403   }
2404   if (fontSize == 0)
2405     return false;
2406 
2407   input->seek(pos, librevenge::RVNG_SEEK_SET);
2408   if (!input->checkPosition(pos+fontSize)) {
2409     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontAndPos: file is too short"));
2410     return false;
2411   }
2412   posC = int(input->readULong(4));
2413   font = MWAWFont();
2414   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2415   libmwaw::DebugStream f;
2416   if (id >= 0)
2417     f << "Font-F" << id << ":";
2418   else
2419     f << "Font:";
2420 
2421   f << "pos=" << posC << ",";
2422   font.setId(getFontId(static_cast<int>(input->readULong(2))));
2423   auto flag =static_cast<int>(input->readULong(2));
2424   uint32_t flags=0;
2425   if (flag&0x1) flags |= MWAWFont::boldBit;
2426   if (flag&0x2) flags |= MWAWFont::italicBit;
2427   if (flag&0x4) font.setUnderlineStyle(MWAWFont::Line::Simple);
2428   if (flag&0x8) flags |= MWAWFont::embossBit;
2429   if (flag&0x10) flags |= MWAWFont::shadowBit;
2430   if (flag&0x20) font.setDeltaLetterSpacing(-1);
2431   if (flag&0x40) font.setDeltaLetterSpacing(1);
2432   if (flag&0x80) font.setStrikeOutStyle(MWAWFont::Line::Simple);
2433   if (flag&0x100) font.set(MWAWFont::Script::super100());
2434   if (flag&0x200) font.set(MWAWFont::Script::sub100());
2435   if (flag&0x400) font.set(MWAWFont::Script::super());
2436   if (flag&0x800) font.set(MWAWFont::Script::sub());
2437   if (flag&0x2000) {
2438     font.setUnderlineStyle(MWAWFont::Line::Simple);
2439     font.setUnderlineType(MWAWFont::Line::Double);
2440   }
2441   font.setSize(float(input->readULong(1)));
2442 
2443   auto colId = static_cast<int>(input->readULong(1));
2444   MWAWColor color(MWAWColor::black());
2445   if (colId!=1) {
2446     MWAWColor col;
2447     if (getColor(colId, col))
2448       color = col;
2449     else if (vers != 1) {
2450       MWAW_DEBUG_MSG(("ClarisWksStyleManager::readFontAndPos: unknown color %d\n", colId));
2451     }
2452     /*V1:
2453       color  = 1 black, 26 : yellow, 2c: magenta 24 red 29 cyan
2454       27 green 2a blue 0 white
2455     */
2456   }
2457   if (fontSize >= 12)
2458     f << "LK" << input->readLong(2) << ",";
2459   if (fontSize >= 14) {
2460     flag = static_cast<int>(input->readULong(2));
2461     if (flag & 0x1)
2462       font.setUnderlineStyle(MWAWFont::Line::Simple);
2463     if (flag & 0x2) {
2464       font.setUnderlineStyle(MWAWFont::Line::Simple);
2465       font.setUnderlineType(MWAWFont::Line::Double);
2466     }
2467     if (flag & 0x20)
2468       font.setStrikeOutStyle(MWAWFont::Line::Simple);
2469     flag &= 0xFFDC;
2470     if (flag)
2471       f << "#flag2=" << std::hex << flag << std::dec << ",";
2472   }
2473   font.setFlags(flags);
2474   font.setColor(color);
2475   f << font.getDebugString(m_parserState->m_fontConverter);
2476   if (long(input->tell()) != pos+fontSize)
2477     ascFile.addDelimiter(input->tell(), '|');
2478   input->seek(pos+fontSize, librevenge::RVNG_SEEK_SET);
2479   ascFile.addPos(pos);
2480   ascFile.addNote(f.str().c_str());
2481   return true;
2482 }
2483 
readStyleFonts(int N,int dataSize)2484 bool ClarisWksStyleManager::readStyleFonts(int N, int dataSize)
2485 {
2486   if (dataSize == 0 || N== 0) return true;
2487   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2488   libmwaw::DebugStream f;
2489   if (m_state->m_fontList.size()) {
2490     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStyleFonts: font list already exists!!!\n"));
2491   }
2492   m_state->m_fontList.resize(size_t(N));
2493   MWAWInputStreamPtr &input= m_parserState->m_input;
2494   for (int i = 0; i < N; i++) {
2495     long pos = input->tell();
2496     MWAWFont font;
2497     if (readFont(i, dataSize, font))
2498       m_state->m_fontList[size_t(i)] = font;
2499     else {
2500       f.str("");
2501       if (!i)
2502         f << "Entries(Font)-F0:#";
2503       else
2504         f << "FontF-" << i << ":#";
2505       ascFile.addPos(pos);
2506       ascFile.addNote(f.str().c_str());
2507     }
2508     input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2509   }
2510   return true;
2511 }
2512 
readStyleNames(int N,int dataSize)2513 bool ClarisWksStyleManager::readStyleNames(int N, int dataSize)
2514 {
2515   if (dataSize == 0 || N== 0) return true;
2516   if (dataSize < 2) {
2517     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStyleNames: the field size seems bad\n"));
2518     return false;
2519   }
2520   MWAWInputStreamPtr &input= m_parserState->m_input;
2521   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2522   libmwaw::DebugStream f;
2523   m_state->m_nameList.clear();
2524   for (int i = 0; i < N; i++) {
2525     long pos = input->tell();
2526     f.str("");
2527     if (i == 0) f << "Entries(StylName): StylName-0:";
2528     else f << "StylName-" << i << ":";
2529     f << "LK" << input->readLong(2) << ",";
2530     std::string name("");
2531     if (dataSize > 4) {
2532       auto nChar = static_cast<int>(input->readULong(1));
2533       if (3+nChar > dataSize) {
2534         static bool first = true;
2535         if (first) {
2536           MWAW_DEBUG_MSG(("ClarisWksStyleManager::readStyleNames: pb with name field %d\n", i));
2537           first = false;
2538         }
2539         f << "#";
2540       }
2541       else {
2542         for (int c = 0; c < nChar; c++)
2543           name += char(input->readULong(1));
2544         f << "'" << name << "'";
2545       }
2546       m_state->m_nameList.push_back(name);
2547     }
2548     if (long(input->tell()) != pos+dataSize) {
2549       ascFile.addDelimiter(input->tell(), '|');
2550       input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2551     }
2552 
2553     ascFile.addPos(pos);
2554     ascFile.addNote(f.str().c_str());
2555   }
2556   return true;
2557 }
2558 
readCellStyles(int N,int dataSize)2559 bool ClarisWksStyleManager::readCellStyles(int N, int dataSize)
2560 {
2561   if (dataSize == 0 || N== 0) return true;
2562   if (dataSize < 18) {
2563     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readCellStyles: Find old ruler size %d\n", dataSize));
2564     return false;
2565   }
2566   MWAWInputStreamPtr &input= m_parserState->m_input;
2567   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2568   libmwaw::DebugStream f;
2569   int val;
2570   for (int i = 0; i < N; i++) {
2571     long pos = input->tell();
2572     CellFormat format;
2573     f.str("");
2574     // 3 int, id or color ?
2575     for (int j = 0; j < 3; j++) {
2576       val = static_cast<int>(input->readLong(2));
2577       if (val == -1) continue;
2578       f << "f" << j << "=" << val << ",";
2579     }
2580     /* g0=0|4|8|c|1f, g1:number which frequently with 8|c|d
2581        g2=0|4|c|13|17|1f, g3:number which frequently with 8|c|d
2582      */
2583     for (int j = 0; j < 4; j++) {
2584       val = static_cast<int>(input->readULong(1));
2585       if (val)
2586         f << "g" << j << "=" << std::hex << val << std::dec << ",";
2587     }
2588     format.m_fileFormat=static_cast<int>(input->readULong(1));
2589     format.m_digits=static_cast<int>(input->readULong(1));
2590     val = static_cast<int>(input->readULong(1));
2591     switch (val) {
2592     case 0: // default
2593       break;
2594     case 1:
2595       format.m_hAlign=MWAWCell::HALIGN_LEFT;
2596       break;
2597     case 2:
2598       format.m_hAlign=MWAWCell::HALIGN_CENTER;
2599       break;
2600     case 3:
2601       format.m_hAlign=MWAWCell::HALIGN_RIGHT;
2602       break;
2603     default:
2604       f << "#hAlign=" << val << ",";
2605       break;
2606     }
2607 
2608     format.m_borders=static_cast<int>(input->readULong(1)); // 0-f
2609     val = static_cast<int>(input->readULong(1));
2610     if (val==1) format.m_thousandHasSeparator=true;
2611     else if (val) f << "#separateThousand=" << val << ",";
2612     val = static_cast<int>(input->readULong(1));
2613     if (val==1) format.m_parenthesesForNegative=true;
2614     else if (val) f << "#parenthesesForNegative=" << val << ",";
2615     val = static_cast<int>(input->readULong(1));
2616     if (val==1) format.m_wrap=true;
2617     else if (val) f << "#wrap=" << val << ",";
2618     val = static_cast<int>(input->readULong(1));
2619     if (val==1) f << "lock,";
2620     else if (val) f << "#lock=" << val << ",";
2621     format.m_extra=f.str();
2622     m_state->m_cellFormatList.push_back(format);
2623 
2624     f.str("");
2625     if (!i)
2626       f << "Entries(CellStyle)-0:"<<format;
2627     else
2628       f << "CellStyle-" << i << ":"<<format;
2629     if (long(input->tell()) != pos+dataSize)
2630       ascFile.addDelimiter(input->tell(), '|');
2631     ascFile.addPos(pos);
2632     ascFile.addNote(f.str().c_str());
2633     input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2634   }
2635   return true;
2636 }
2637 
readGraphStyles(int N,int dataSize)2638 bool ClarisWksStyleManager::readGraphStyles(int N, int dataSize)
2639 {
2640   if (dataSize == 0 || N== 0) return true;
2641   int const vers = version();
2642   if ((vers <= 4 && dataSize < 24) || (vers >= 5 && dataSize < 28)) {
2643     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readGraphStyles: Find old ruler size %d\n", dataSize));
2644     return false;
2645   }
2646   MWAWInputStreamPtr &input= m_parserState->m_input;
2647   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2648   libmwaw::DebugStream f;
2649   int val;
2650   std::vector<int16_t> values16; // some values can be small or little endian, so...
2651   std::vector<int32_t> values32;
2652   for (int i = 0; i < N; i++) {
2653     long pos = input->tell();
2654     f.str("");
2655     MWAWGraphicStyle graph;
2656     // 3 int, id (find either f0=<small number> or f1=0, f2=small number
2657     for (int j = 0; j < 3; j++) {
2658       val = static_cast<int>(input->readLong(2));
2659       if (val == -1) continue;
2660       f << "f" << j << "=" << val << ",";
2661     }
2662 
2663     values16.resize(0);
2664     values32.resize(0);
2665     // 2 two dim
2666     for (int j = 0; j < 2; j++)
2667       values16.push_back(static_cast<int16_t>(input->readLong(2)));
2668     graph.m_lineWidth=float(input->readULong(1));
2669     val = static_cast<int>(input->readULong(1)); // 0|1|4|80
2670     if (val)
2671       f << "f3=" << std::hex << val << std::dec << ",";
2672     int col[2];
2673     for (auto &c : col) c = static_cast<int>(input->readULong(1));
2674     for (int j = 0; j < 3; j++)
2675       values16.push_back(static_cast<int16_t>(input->readLong(2)));
2676 
2677     if (m_document) m_document->checkOrdering(values16, values32);
2678     if (values16[0] || values16[1])
2679       f << "dim=" << values16[0] << "x" << values16[1] << ",";
2680     for (size_t j = 0; j < 2; ++j) {
2681       if (values16[j+2]==1) {
2682         if (j==0) graph.m_lineOpacity=0;
2683         else graph.m_surfaceOpacity=0;
2684         continue;
2685       }
2686       MWAWColor color;
2687       if (!getColor(col[j], color)) {
2688         f << "#col" << j << "=" << col << ",";
2689         continue;
2690       }
2691       MWAWGraphicStyle::Pattern pattern;
2692       float percent;
2693       if (values16[j+2] && getPattern(values16[j+2], pattern, percent)) {
2694         pattern.m_colors[1]=color;
2695         if (!pattern.getUniqueColor(color)) {
2696           if (j) graph.setPattern(pattern);
2697           pattern.getAverageColor(color);
2698         }
2699       }
2700       else if (values16[j+2])
2701         f << "###pat" << j << "=" << values16[j+2];
2702 
2703       if (j==0) graph.m_lineColor = color;
2704       else graph.setSurfaceColor(color);
2705     }
2706     if (values16[4])
2707       f << "g0=" << values16[4] << ",";
2708 
2709     val = static_cast<int>(input->readULong(1)); // 0|1|2
2710     if (val) f << "g1=" << val << ",";
2711     val = static_cast<int>(input->readULong(2)); // 0|1
2712     if (val) f << "g2=" << val << ",";
2713 
2714     graph.m_extra = f.str();
2715     m_state->m_graphList.push_back(graph);
2716     f.str("");
2717     if (!i)
2718       f << "Entries(GrphStyle)-0:" << graph;
2719     else
2720       f << "GrphStyle-" << i << ":" << graph;
2721     if (long(input->tell()) != pos+dataSize)
2722       ascFile.addDelimiter(input->tell(), '|');
2723     ascFile.addPos(pos);
2724     ascFile.addNote(f.str().c_str());
2725     input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2726   }
2727   return true;
2728 }
2729 
2730 
readKSEN(int N,int dataSize)2731 bool ClarisWksStyleManager::readKSEN(int N, int dataSize)
2732 {
2733   if (dataSize == 0 || N== 0) return true;
2734   m_state->m_ksenList.resize(0);
2735   if (dataSize != 14) {
2736     MWAW_DEBUG_MSG(("ClarisWksStyleManager::readKSEN: Find odd ksen size %d\n", dataSize));
2737   }
2738   MWAWInputStreamPtr &input= m_parserState->m_input;
2739   libmwaw::DebugFile &ascFile = m_parserState->m_asciiFile;
2740   libmwaw::DebugStream f;
2741 
2742   for (int i = 0; i < N; i++) {
2743     long pos = input->tell();
2744     KSEN ksen;
2745     f.str("");
2746     long val = input->readLong(2); // always -1
2747     if (val != -1)
2748       f << "unkn=" << val << ",";
2749     val = input->readLong(4); // a big number
2750     if (val != -1)
2751       f << "f0=" << val << ",";
2752     for (int j = 0; j < 2; j++) { // fl0=[0|1|2|4|8|f]: a pos?, fl1=[0|8|9|b|d|f] ?
2753       val = input->readLong(2);
2754       if (val) f << "fl" << j << "=" << std::hex << val << std::dec << ",";
2755     }
2756     val = input->readLong(1); // 0-5
2757     switch (val) {
2758     case 0:
2759       break;
2760     case 1:
2761       ksen.m_lineType = MWAWBorder::Dash;
2762       break;
2763     case 2:
2764       ksen.m_lineType = MWAWBorder::Dot;
2765       break;
2766     case 3:
2767       ksen.m_lineRepeat = MWAWBorder::Double;
2768       break;
2769     case 4:
2770       ksen.m_lineRepeat = MWAWBorder::Double;
2771       f << "w[external]=2,";
2772       break;
2773     case 5:
2774       ksen.m_lineRepeat = MWAWBorder::Double;
2775       f << "w[internal]=2,";
2776       break;
2777     default:
2778       f << "#lineType=" << val << ",";
2779       break;
2780     }
2781     ksen.m_valign = static_cast<int>(input->readLong(1));
2782     ksen.m_lines = static_cast<int>(input->readLong(1));
2783     val = input->readLong(1); // 0-18
2784     if (val) f << "g1=" << val << ",";
2785     ksen.m_extra = f.str();
2786     m_state->m_ksenList.push_back(ksen);
2787     f.str("");
2788     if (!i)
2789       f << "Entries(Ksen)-0:";
2790     else
2791       f << "Ksen-" << i << ":";
2792     f << ksen;
2793     ascFile.addPos(pos);
2794     ascFile.addNote(f.str().c_str());
2795 
2796     input->seek(pos+dataSize, librevenge::RVNG_SEEK_SET);
2797   }
2798   return true;
2799 }
2800 
~CellFormat()2801 ClarisWksStyleManager::CellFormat::~CellFormat()
2802 {
2803 }
2804 
operator <<(std::ostream & o,ClarisWksStyleManager::CellFormat const & form)2805 std::ostream &operator<<(std::ostream &o, ClarisWksStyleManager::CellFormat const &form)
2806 {
2807   o << static_cast<MWAWCell::Format const &>(form) << ",";
2808   if (form.m_fileFormat >= 0 && form.m_fileFormat < 16) {
2809     static char const *wh[16] = {
2810       "general", "currency", "percent", "scientific", "fixed",
2811       "date[m/d/y]", "date[d B y]", "date[B d Y]", "date[a, b d Y]", "date[A, B d Y]",
2812       "form10", "form11",
2813       "time[H:M]", "time[H:M:S]", "time[I:M p]", "time[I:M:S p]"
2814     };
2815     o << wh[form.m_fileFormat] << ",";
2816   }
2817   else if (form.m_fileFormat > 0)
2818     o << "#format=" << form.m_fileFormat << ",";
2819   if (form.m_borders) o << "borders=" << form.m_borders << ",";
2820   if (form.m_wrap) o << "wrap[content],";
2821   o << form.m_extra;
2822   return o;
2823 }
2824 
2825 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
2826