summaryrefslogtreecommitdiff
path: root/recipes/python/python-pyqt/04_qreal_api_fixes.dpatch
blob: abd9e3f4cd18ec2aa3bbf9a32a8c23c71b71924f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
#! /bin/sh /usr/share/dpatch/dpatch-run
## 04_qreal_api_fixes.dpatch by Torsten Marek <shlomme@debian.org>
##
## DP: Exchanges double by qreal in some wrapped methods.

@DPATCH@
diff -urNad python-qt4-4.3~/sip/QtCore/qlist.sip python-qt4-4.3/sip/QtCore/qlist.sip
--- python-qt4-4.3~/sip/QtCore/qlist.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtCore/qlist.sip	2007-09-02 00:35:53.000000000 +0200
@@ -322,8 +322,8 @@
 %End
 };
 %If (Qt_4_3_0 -)
-// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples.
-%MappedType QList<QPair<double, double> >
+// QList<QPair<float, float> > is implemented as a Python list of 2-element tuples.
+%MappedType QList<QPair<float, float> >
 {
 %TypeHeaderCode
 #include <qlist.h>
@@ -340,7 +340,7 @@
     // Set the list elements.
     for (int i = 0; i < sipCpp->size(); ++i)
     {
-        const QPair<double, double> &p = sipCpp->at(i);
+        const QPair<float, float> &p = sipCpp->at(i);
         PyObject *pobj;
 
         if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL)
@@ -370,16 +370,16 @@
         return 1;
     }
 
-    QList<QPair<double, double> > *ql = new QList<QPair<double, double> >;
+    QList<QPair<float, float> > *ql = new QList<QPair<float, float> >;
  
     for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
     {
         PyObject *tup = PyList_GET_ITEM(sipPy, i);
 
-        double first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
-        double second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1));
+        float first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
+        float second = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 1));
  
-        ql->append(QPair<double, double>(first, second));
+        ql->append(QPair<float, float>(first, second));
     }
  
     *sipCppPtr = ql;
@@ -389,9 +389,9 @@
 };
 %End
 %If (Qt_4_3_0 -)
-// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
-template<double, TYPE>
-%MappedType QList<QPair<double, TYPE> >
+// QList<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples.
+template<float, TYPE>
+%MappedType QList<QPair<float, TYPE> >
 {
 %TypeHeaderCode
 #include <qlist.h>
@@ -408,7 +408,7 @@
     // Set the list elements.
     for (int i = 0; i < sipCpp->size(); ++i)
     {
-        const QPair<double, TYPE> &p = sipCpp->at(i);
+        const QPair<float, TYPE> &p = sipCpp->at(i);
         TYPE *t = new TYPE(p.second);
         PyObject *pobj;
 
@@ -447,12 +447,12 @@
         return 1;
     }
 
-    QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >;
+    QList<QPair<float, TYPE> > *ql = new QList<QPair<float, TYPE> >;
  
     for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
     {
         PyObject *tup = PyList_GET_ITEM(sipPy, i);
-        double d;
+        float d;
         int state;
 
         d = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
@@ -466,7 +466,7 @@
             return 0;
         }
 
-        ql->append(QPair<double, TYPE>(d, *t));
+        ql->append(QPair<float, TYPE>(d, *t));
 
         sipReleaseInstance(t, sipClass_TYPE, state);
     }
@@ -524,8 +524,8 @@
     return sipGetState(sipTransferObj);
 %End
 };
-// QList<double> is implemented as a Python list of floats.
-%MappedType QList<double>
+// QList<float> is implemented as a Python list of floats.
+%MappedType QList<float>
 {
 %TypeHeaderCode
 #include <qlist.h>
@@ -561,7 +561,7 @@
     if (sipIsErr == NULL)
         return PyList_Check(sipPy);
 
-    QList<double> *ql = new QList<double>;
+    QList<float> *ql = new QList<float>;
  
     for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
         ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i)));
diff -urNad python-qt4-4.3~/sip/QtCore/qvector.sip python-qt4-4.3/sip/QtCore/qvector.sip
--- python-qt4-4.3~/sip/QtCore/qvector.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtCore/qvector.sip	2007-09-02 00:35:53.000000000 +0200
@@ -143,8 +143,8 @@
     return sipGetState(sipTransferObj);
 %End
 };
-// QVector<double> is implemented as a Python list of floats.
-%MappedType QVector<double>
+// QVector<float> is implemented as a Python list of floats.
+%MappedType QVector<float>
 {
 %TypeHeaderCode
 #include <qvector.h>
@@ -180,7 +180,7 @@
     if (sipIsErr == NULL)
         return PyList_Check(sipPy);
 
-    QVector<double> *ql = new QVector<double>;
+    QVector<float> *ql = new QVector<float>;
  
     for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
         ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i)));
@@ -190,9 +190,9 @@
     return sipGetState(sipTransferObj);
 %End
 };
-// QVector<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
+// QVector<QPair<float, TYPE> > is implemented as a Python list of 2-element tuples.
 template<TYPE>
-%MappedType QVector<QPair<double, TYPE> >
+%MappedType QVector<QPair<float, TYPE> >
 {
 %TypeHeaderCode
 #include <qvector.h>
@@ -209,7 +209,7 @@
     // Set the list elements.
     for (int i = 0; i < sipCpp->size(); ++i)
     {
-        const QPair<double, TYPE> &p = sipCpp->at(i);
+        const QPair<float, TYPE> &p = sipCpp->at(i);
         TYPE *pt = new TYPE(p.second);
         PyObject *pobj;
 
@@ -248,14 +248,14 @@
         return 1;
     }
 
-    QVector<QPair<double, TYPE> > *qv = new QVector<QPair<double, TYPE> >;
+    QVector<QPair<float, TYPE> > *qv = new QVector<QPair<float, TYPE> >;
  
     for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
     {
         PyObject *tup = PyList_GET_ITEM(sipPy, i);
         int state;
         TYPE *s;
-        QPair<double, TYPE> p;
+        QPair<float, TYPE> p;
 
         p.first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0));
 
diff -urNad python-qt4-4.3~/sip/QtGui/qbrush.sip python-qt4-4.3/sip/QtGui/qbrush.sip
--- python-qt4-4.3~/sip/QtGui/qbrush.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtGui/qbrush.sip	2007-09-02 00:35:53.000000000 +0200
@@ -138,7 +138,7 @@
 
 QDataStream &operator>>(QDataStream &, QBrush & /Constrained/);
 QDataStream &operator<<(QDataStream &, const QBrush & /Constrained/);
-typedef QVector<QPair<double, QColor> > QGradientStops;
+typedef QVector<QPair<float, QColor> > QGradientStops;
 
 class QGradient
 {
diff -urNad python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip
--- python-qt4-4.3~/sip/QtGui/qgraphicsitemanimation.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtGui/qgraphicsitemanimation.sip	2007-09-02 00:35:53.000000000 +0200
@@ -64,19 +64,19 @@
 
 public:
 %If (Qt_4_3_0 -)
-    QList<QPair<double, QPointF> > posList() const;
+    QList<QPair<float, QPointF> > posList() const;
 %End
 %If (Qt_4_3_0 -)
-    QList<QPair<double, double> > rotationList() const;
+    QList<QPair<float, float> > rotationList() const;
 %End
 %If (Qt_4_3_0 -)
-    QList<QPair<double, QPointF> > translationList() const;
+    QList<QPair<float, QPointF> > translationList() const;
 %End
 %If (Qt_4_3_0 -)
-    QList<QPair<double, QPointF> > scaleList() const;
+    QList<QPair<float, QPointF> > scaleList() const;
 %End
 %If (Qt_4_3_0 -)
-    QList<QPair<double, QPointF> > shearList() const;
+    QList<QPair<float, QPointF> > shearList() const;
 %End
 
 private:
diff -urNad python-qt4-4.3~/sip/QtGui/qpainterpath.sip python-qt4-4.3/sip/QtGui/qpainterpath.sip
--- python-qt4-4.3~/sip/QtGui/qpainterpath.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtGui/qpainterpath.sip	2007-09-02 00:35:53.000000000 +0200
@@ -194,8 +194,8 @@
     void setCurveThreshold(qreal threshold);
     qreal curveThreshold() const;
     void setDashPattern(Qt::PenStyle);
-    void setDashPattern(const QVector<double> &dashPattern);
-    QVector<double> dashPattern() const;
+    void setDashPattern(const QVector<float> &dashPattern);
+    QVector<float> dashPattern() const;
     QPainterPath createStroke(const QPainterPath &path) const;
 %If (Qt_4_3_0 -)
     void setDashOffset(qreal offset);
diff -urNad python-qt4-4.3~/sip/QtGui/qpen.sip python-qt4-4.3/sip/QtGui/qpen.sip
--- python-qt4-4.3~/sip/QtGui/qpen.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtGui/qpen.sip	2007-09-02 00:35:53.000000000 +0200
@@ -91,8 +91,8 @@
     void setCapStyle(Qt::PenCapStyle pcs);
     Qt::PenJoinStyle joinStyle() const;
     void setJoinStyle(Qt::PenJoinStyle pcs);
-    QVector<double> dashPattern() const;
-    void setDashPattern(const QVector<double> &pattern);
+    QVector<float> dashPattern() const;
+    void setDashPattern(const QVector<float> &pattern);
     qreal miterLimit() const;
     void setMiterLimit(qreal limit);
     bool operator==(const QPen &p) const;
diff -urNad python-qt4-4.3~/sip/QtGui/qtextoption.sip python-qt4-4.3/sip/QtGui/qtextoption.sip
--- python-qt4-4.3~/sip/QtGui/qtextoption.sip	2007-09-02 00:35:50.000000000 +0200
+++ python-qt4-4.3/sip/QtGui/qtextoption.sip	2007-09-02 00:35:53.000000000 +0200
@@ -62,8 +62,8 @@
     typedef QFlags<QTextOption::Flag> Flags;
     QFlags<QTextOption::Flag> flags() const;
     qreal tabStop() const;
-    void setTabArray(QList<double> tabStops);
-    QList<double> tabArray() const;
+    void setTabArray(QList<float> tabStops);
+    QList<float> tabArray() const;
     void setUseDesignMetrics(bool b);
     bool useDesignMetrics() const;
     void setAlignment(Qt::Alignment aalignment);
̤ԫay:{(Q4?5&7X?s_ǒfgMAx}iB>ATȗy*YАIHon(I6M -*==}GW\D6 4Qᇤ⳪pGPgs=[pMzw}/zvju$9hPhLq,߶`P6vKZ4qGĂw1S/9d--\ӡXedUuô[YfX]Fh+/1(zۉ)ÌiZvvuԴsO~֟E]9WMBfF2 *LA7["<eToxF-pY`AsVv?7 orpG># mt$n6{9뾐݁!f15d ~0iPq)3,$6Ԯ\[}Avo o_Gol\P{X{_0] AՅ: hXP2aŗw0> ehgMx#85a,L ݓd΍_a&NeO˸=D ~x]3a5 +7l.W pE*)KZv#{R?,)yhJ/'0KF?e?.3T Q}@zwAw xUH& QaT(iz\r@Ur8),0KcG2 @bZ{H#uƼ.-$*[نߛ'gx97۝dh[Zcp-V]b<ׯgرw1ᚏ9rSv< &Sn8,47q~|*L+fZS rԥ&D.yt}bAi|ЄEK?BzA<ݥ-:u),D8;^3wRe;% р?njKixث 0{swtvIZyXA—-aItޕBTa? ^VyT #C [M#o$d8ꇢ1N&m)>h[$P'q]p z8 8 w"Y$&|JD>,lKY--w%vKeZiG$ 3vOlG {wp8YIVkxay YY>."b_8~uYot>kX]`ұ-97wN6[o}$lnu:6{1t+ dwGXGۏ02 &Q#$ίxNn3(ݲ 6`Wq^h+_s@ܐ8IIK]ʖEb4 [Ωw4r%687 I9N10$tR @JÖ ߧU.^٬YQn"tͩ\ZYj eƖÛFW6XFxW)׀mQ'Ҵi N"v{ h{&n--z.f% O Vpd}Wr[o0r̗2Ҩ&bF(2݆rq0UD:F;!ɤn$I`yc`Wx^_Z5톧z*5uGzTCASR ua2W0,];;V/κ3û +ťntXy2e3 ֝*Z6aTU(OxfwҸVDCi*Ps@/ravMq]k9`'Z*Jr'Esvc”L)gHRHH7D'$k3t1)vC}CNٰ60э/nϟG$I:Ԍ+RK{7Y(ڿYkwpF=kri5P@{XoEA|v>U-4aT -n11dS7"{yYR[8U'͟ăK+|>'S ϻ'?tf>gϞ,Y=/YTv&R "'/%]\j/0jWgvjw;Ns:gt!+Re6Y$ 9J`#%o+Zw`! M̚~~LԷƚ;Ţiv4787dSny]tͦݘݚ<9x/x_C5/D˅^)bH;xcKM+2ⶵK}?gO R뷄LJ'2oQyȯuU A=hY-fE:m/W8C0wyvﵽFϯw#P YY9xE6:Nhk:x\Gك/^H}]t԰|1=0^Yᩴ!F;-Vq"I"H MG>9RB/UiڹD;6!Bb.( HQԩq5Jq6\7QۼWUjqJN]xq9"Ąw6eݷe3ʁh¢t'q!WpKfu ~sڝdFN~+a||\ (oy# ݛ+ "M!H E#Qj#dQ,NkzTmA~?㤝2&. ȟWs#{h[WckG+2M`Tdf*k避RW-]PWl6~xq\!L/UASE"(`Thc4c-c8p h_ MzSis=.k?T P9\{4VO>g"zC !4%l*ir.:hn%Yr piz4rZE]4y8gp>裬3QZG.s!w4QW鼘 Җp 6 |˔|WjUVv9An*h5;UF]ThnVq ,Ь )F2[%/۬<(y\,oLX޹Ę* LlN)&Ҡ-@hq1*ըIrsp,<,cv*h_2@4`"hI> b#uhAS1&!͵r-K ltO6[DܚVj&5n6$KL *O#gLT|Hc @y6RMHܟ/Uc[DEtyISҢZ˄ )<Epݫ1lUmqH21:xxDbY7Ã<؄x{ 02GeoqEja8lq(Q]ѯ^ٶջg[53`οg3vCXkT}|Eݢm7߭콚t&? 6->7ǍAclҗ`|[~-wiDzL{Cxo :igX,>rI[={xR/ MphI6ת3ǟ@P8=F? @Vlmn?{]?~/jf?-ѩ$?86x,ƿOUH? Яp .M9jۊ߬B~ 3 ou~٬㱹sx2q7 [?c~/`^C I;oƇP'S3Kf~DĨQ,m'A_$ϋdU~ Y%~:YEd9$3HNtPQNjzՃ)wʎT9`qV-гz< ܖ3,Mkar9Ahь]ujpC@di=S5j # ^]x2Mgۿ6O~K^ f>Ipi:6W?!m7hՊmă6xqpwuP8zQb?VDØΛݥexw.yG,k-hl5G( fRznh1/1C<Nvi}k6ɛGJw"s\Lbfҡ!B~AFڑ pj ͠x\}~ݒ=j6@Agݱ͚dcoE-4CUw1[^~|_ةɗXS ܏6ܢ.ecYd)z4eDm.n] 0?IhSAL5N$NN>ŻV\l4Z,Z'AzCOF0|^1oeYf|.%eD!:'~g YNxh k5Q鼚2M߱'neVͼ 4j2}#$ bs.PeDI:ϟ?Pg;7774Bt% ll6P %d#jIˈK]1A$uK6fK?:AvqB9\|I7IQ+4xN{|y'ͮ670ƣ8ۀ=hΘJa. ocK_1_NFn66X eWrG9V(yWqpj[^Be3LUZ{^h=,U2$VҎ @JU }Lg33OJyG*x wmaƛ ;7%Grخn,`,}.c;e#L!K5FIxc @T@R[e}]@48$|zwfyj T _0D4e`Vs%06 c(9ūqze~3\G ƀDKuէR ٦,VX+'y~5g;H6m(#.!٨;?Q@<-;JihcߜjF/$~cDK0M5{q֊_K,HYJ47{Xc$Qe[G^ :.n+5\t%zQ\ nm}$JQ *-<˻z<tqqFL9o\%s$uV\P{-6౴j0ODƾFD M/&Dc48$}ݭ7 QrE;eRe;?`Vׇ<]KgYQ0֯1㖰B_XvSْq+Q`;iڨiRl}1J:J:xY \k׋ 69_k)~NwFes͒oq?YfսNs "&Vwx^V-mBéIL8y(XJE%6:FV7 N Khr~[ h]TIvMn_Ӕ^i/V<KK'*96[e cAX.Ƨ]N lPZe7Lhm#(S& lL׃:кJà 5Pz>Vk[7.?iw4sƳSa^a-5YzՃʧP|׌9E6!QB|cj ژEtT8ZvVܘ['O}7+͛ˀ+a؎(TfQ$@Or鎿 j)̺V{]]ZA8 qhLi6"N1nҷoW#sƄ&=D/ȳindVwӡ?_mwV"#pk?x7vIg{Siֲ\!&&ެ1#/zQ0mo2%&icߪXOx4֛+pallisXVoU $,[7c|):Gv Qd@a:7P,<7CM2fVQ=k[SŔyU:m= ah+nG۝~g%K>< I|K&`~qe 3iJSlWhI;v[e2k}m"$!Oxw\Bv >Ucx':Xm$1MM@'֦ ZݚS"ZD<+c;n땏׷*_GVg{׳Vlw"(_廊Ds!NxqgӶh f>zoѣVʸ#B0­OX4AR@*FdfnhzT__I0E6,wLbDT0c.O՜dҋJj>{ ]3Ksk!5FwO|5wY}3RkAzVZ8{D5ovf2dIЯZ;Js$4mrVnYcE~8)K1&{φz-VC)r?%|Y^OjB4՘G¢nE1ȷ Ya*ChToxXO0S\Xrh^UBpKxK|3Q.A-Ehfݽ%$νpz+n)D鲏MEtwv)bI/,p_Â68K婢ҥ޼5yε2򽴪62`.5Td ~_?#iY?~WVu{!h v$51pu?!vPzUѮ-# Nףww4^ᨿ/sj]8WҶauR՗B]OfWY@϶,ܤ7H&b bGB%ٷlk{H6g.~#I+["cl"Y*tVzadV(՝m=#wM6_b47a`%$ +I_֣(lږ1߬ t_JnTEʪfeʔV@=]!g{@5'n+%! Df 5[am=7&b&rߖQ_oV3(OK{+?Prr[Mۻ Nc}9  iSکo٪%Oh"lʛ-g׎Z^;na;:w*2FVzpht$1q1UZƶQ; UQEX߾w_/#_ܔ;خ`mv6:X9*޶7ˆa -0 Z| Ql>v tgף/BJd㄰p<ģNFnh}4/}lؾBm ,=͜yk^^onfN:IkRn# [xg nlfmonDgv6o Ȍ{/wbˠ+nnu9v-0f9`Kn2+ In 5*جD?:lR`ŭ_`P`;(nnnD[h@;:mɕD ~QR4Pe-W|+Z" j?gdFM!HKXHB,Zֻaok{ٌ/1_,maD!䆳)/K߿ ;NY#Fx7-S򷗪આҶii+('aB#:kx%/#/=q7 E(϶v}51w)=4[4Ad(t&($4"ekX:4O[ߡFF/EZG`|[/FO(Ѱn?"\L% 5û*7m yuiw!":Fr/Q ƥ {c]>X=Wp/9be[BA,z;O CGUG]նW=՚s6S F\YK lyйa&nPuA|̸UNMk[hepdװ-z*pUPaw]rl*kA5,CE닂`5 c4rcFcN, >R실dEh&A{ 4IhI,6-o!eDĺY]浦F-"jBZЁ؊=HhqF0Oγ"Q Ϟ<*P 2QyʣCӛ{z?Uu|5\_իL%> krN!2pE%T*( 'hZ{ŒqGV(d \\[Bڌpb/ |y #ہvḶ;'ۂA;;"$' QRFl45 X6Bl֪݊ûXv^՗a_QiNx V9X==l܃&Zg[Zfci$Jc0&:w44%4J1eUO >O[a1YԒw"vL`4ft2I Gi޼EIFtLsgPH2ZfT}X:J‚ʑ5a6K bܦ ptE臽7?~cYBKXn,iJ^:^A5^])ś% {3EIK6,$|&sÿȒ~2BXG x+jMQvt,Zvt4wŧ[T('Tx9R/)ӿH9*ދ66׉ n,s(jvG`@ hmѫt sj\&XĽ'1zHH^[R85 kqK$jZI!!dےΌ_dFQE$yNߞ') u7Ռ5kePN#ByGv4ӱ*o(1]Dvy2+'U'ήX/j ])Â6iЫpͱ(\r'tOjx8.W&VX`kd}5/ڄ0/)t:h֕C`ǣ|G/ ~y<z-7o]>1Q1z8ʻ呛{5<$86׶i j b\N5Ͳ{u˥\Va)sw0a'&t{Y_vٵː]w3{sה _S 'c3"rtׯ< oxkNjZcϚ(]֜>U`JE04-F(VDJoL^Q v>$ї $Qy l,+pA<ㄘD4i=mp" F9鐇XãK2\PI(bƢ:v1Z-։N OY?7WQ.FJ/S f#Z-mtOS'bFӔ5 5*Ōl>Ή#ISw3ⱿɟZ~_;3עW16X|70sj(۬Sq Ř{bPU4s"TyTU@h4;a˽_5aT+JEgc@@Cbqs42 tNN)@1X̐E#$#ґߢwZ5-WEnr]+H**OZBlhD1mf>Ձ#kd A\ $\@wqKȻ;8Wx%"sjUHHEȁߍen!%* \'GIQUCǬQ1r'Ȯ8 }#B;Ú[Sq3MO/;^|e{tc=i0ɦ6H?BMFn2a))'[ھ19ySmap1;Q;ͯz' $U_E+0Q u+P ٻ IC&vZQ+Pd`%+ !WjY] $gb)GY:ŕ<Gr'S4r)Zh$;mi n/?*w UCoh$&:7 DW}oMTDXθ[i'v(\n$$,])4~z(+~VoJ*,R*7{IǗN|~̲!2HhUŪxzGdwkOVb5(I,̌'J, Y V-S5HaAIY$:$&"c|eYxi@۱}4Tw;)6)Ȧ8H,YaDɈlۧOno>)?:,^VƀHɺ6H`X2fIeq6N`Ԇ=8O|ڦ6M B<`Ekċ1ʒd4z1'A_' j}dUUiafsʦ/,vvw}7ͳ7φgC8 K__x?f5xJr6MTkx=+EdZ5#'ӕh:K&xq82mӛ֧Q9jaP4SE{NQfhoaTptd&"Fa0 % y@/Q^_R^Tvվ13 3©@#Gv.x2\7oH@[Ÿ C׈AL~k_Y{NBtʫrl<2T;Юz@ZW'froyb2 |76 /ªVfVWj IeDn/ď:y͙SKM6'5k|ޝ@PUKqv5 e!%eσE°m`GYNS =]geHB;o%kM^6c֫ S&56v}W)̬ukJb[YAyӻr|(5+n)^Ʃq^]7Z' 2ث`"!؂܋Nly~=g/DFi^ʕWrPWw:%m%^W?5JYE_q6u2܎$SMfHOalE:[&qY҉y2[n\0%7i[D?hfQ!O:=^:M>ۨȐ3زYh^ 5  z/H- S H`PתNL` jTpB=ռQ#?+Pn`c ˘z:X &s 3.1s,س,Jgл[ZA'hq%ataǰ$|,Q>wɭ*&0!%bx,ol} z6]cM:fAt?, VbJ%)8 8\ÑO-jW @lҩ#fsp[X+Wyee]vqb^5 #ݺiO->MI$'NRC9|}r{f}VB 9T=s6 }(\I ^`hGۭB e::==n{8En1*+ǑM^ɐjA%%l`]|W ?sڊ|vb'K.k$PІK:gL6X|y9歑ރi|r.EUǺɊgZZ3U,ov[h >el44G`ί\/@=b72W9(c#} v43!$랺ER1-br79$EXUG0jUZҍlk V-te1.# -*  FnҚ %If,#PV^HPnt/^tN\ty2EUnR3zQ7ʆC n4b.pps;tMg00 .-]r&>eWp]þݭdԍv NA-7~)N4Cj,uXQCm>,.%Vl-G3yprEZT>"-ធq:H3(~pxz༾ea) =w`I#A8=JKff!|;ΓV~Wbm>|BhP7z 阿A1 ̙wa_ugr6-U0i{j:/uM{v4u<#M,}ea,i>gkXiP`Q$]Yp;OyGiu7Wt;;Po<#8GS;͵DZ!J؋ѥy%Ϥ  ;QxڭWe7ʅO-X IAV.[aUbOƇqyX .G!WLh+&Y!δ$RJe.>fS7GXl1eFHP{lt pky& XJh{引Q-s_Vp/]U *POɺ8x8kVߔ}JVɜRe4"s.fbtX-6G8;8,%JC*w6NcZ8^w|jaR׵Yqv˨|n&exDR[n BBF]/:.P2]Rz}lX2 E$:IV$yƟ4GH|f:#88d-% YNtX%x`A?=8<;yRRG&O))F>)Eb\n[ROP61%D7Lo!4:gAd=ό8L_9gz ^o -uv$)`j&2">noqeӚq$$ b o=1NkGTxmRxqžfWj=͸o)BR@u0nժ<7VQǃ^8Ւ'Cv [h<撕SPTZDB/: FZ?w^k <[ihY#63-.9*؟ߚy)MUT1o(v2TKT"2RUU5Y䅨Z̪^8SʷbbaCTa߀x,E0**w&ei-33*1h*#7^@4 1ƅ<ή8;,&pbbZBSv㿑I$nuO߾-ۯUaeNV;U`<ny 5b_ӰDI/,`@WL yvnRxIz=rq /tSF{d*jRBc—k[s66vSUԷ͠λ{b#MHNMQ@k-jެvLk`yvh//ږE=rI,57KҦOgbN M@N,Pn[J %!귣2Yr][o\M1H[.\ Zj!\DL\bW6 T9UibB PU#eGRtf*~ҹyK:_T[OXȯ8UlEXi%IetC/W2>=ڲ&NB@nC܋{N~ߊ#+<ߙy)3hİY5jM"[hF t׸Ҏe|F!1C7*FQJ)Jb>HoATdY eh e1U0Ϟul0*v4PT4~Ȩ dpL$S*##Nwq^WRbx1y0҆4^à R t {yYdiՔeH =}˻lgJO>k_l,lfkk f?VU~2WrvOv˭:6os*.!5p5N{mS#rcyyWWSӰ"hHl1bs'l֗wˣ H"~mS2|,-:qsT% qQ]<`l`*-" ΅Z~Ix_ȢtAg4 [:ƅ}G\LJN9 Ht6Wii3XXQF3Hzayvμo,E|.?ri}/D#^Pj4UN/[E΍i7\N8nY9Mɦ1;< by0 G$"XE2XU^[ޮTwQrE v@OIS\) _g@ XM!\49?~x|'a 45X0\d -k+Z7uUFRBg &)`3gˠd@hzϤ 9T0~cu JJ]0(1|}KWnwfF(RJqwM%ۊp 'SvpML*;ƢnCfn+B91Ihtjx} D3H4=.޽z{n+fR+㵆2Rb4sszqק;aхo{p7^}8wuY4t~ e y K,`B_V@x^vM ~ڧt m4h`#I*sCԷ{'h(zKm@F !\`ajˮ_'Y`K#kMҩW(}@>% q!Ճ̖e&LF`K1 G{J7"&]G[=ZȨ~rr)2&Upq)LD ^L\FMEjY_+}>HPt0ud4lE(덆!V*AIDoXmwY$٭: x|׭R|ԫZ $ߩ|˛b0f~TBƑ*-,S2?x_PH&N%u UO<_.Lsr@%߽[l-b^r $큤khɴ ~CB6zcd;vy+2n2ݾ[Qf~B&L0{6juADKǻi8`O=]2&U1~c;SQm_θ NQ.^RiB SiiQjIXYnRR Z=Ked@EVr*KV#XC*]Ue+VHHNe*UW5ّZZf W> `)L ,,ߌl(GΪaΦ~6-V\br\TJC'!{pz1/ȚMtzYq㿻<*V),0o`pmR7]J]䜹鐪'O ^+Z/W6o(>T=a*Pq޷efmu߿(յRWOd[|ϒ(:ѵwŚI~i&++B/o5X&.*5A_ 6ۼN4bŲDk3q)ϙz99nM/αM?*C  VH7U:ĥX{fEnRꨮdt(TqL݅ƣ'Cf;H^5%[R:A?g-g^QUą}8|~;NvHw ؂ͥ.bׂa)n?缑K51cAiUwkn fN"/s$ [D-_TJTlE/gO^p7Q>_-R C+D?\ OuO~0;1Y z.Yr=Y{qn,9%9iƇQ6_t@ؠzS/m=2{a k*, p 3} ((~P 3 &Z{Cr(X)\d0 ^_Y:,3rJYLZm\&x?K99PDmY!j[hfnʬ`u1Cf?KD;#τh*J eQYEs*Q,f|:Oi :"b/n)ķGo^.*|n!h b7RF_>ѫGrI<͚yB3b.1_GGG?F^[7S~އ@v? fJ[n򈏆s0Hf:kGǻv`9ΘZ D%uz) ~_ʍ4 ~MZ74ᛑBEF~ʦ5ǽ绛SƋIfxUĄ|[ j\">U` ;t֎A6bK%EG6FSdp⬖=د__ ʽRb~YB+ t?{9ݎ)wlD1ƞ02Rto~!dK alD lgcɇi2oI)cMAr!.9T% vG:ѡ\/DEfOYO9ݩAA$28R ;?Xdc5W&LRZ!Mh^glj勨y7 7qa|A^r~j;O0b vQ%s߈wGHU͗dFfι/,Rh51'37)ipm[71zVEG•:M^u,Hp:=0@ږ[D]\|ы2 հe da 0B/2\6>A4e.8߇ec{?L^5$"1G+7%̓»9:@lޕ6v@LÕ(8f IJTEL x`ۏ/Bh u[D/MP4[&̡mN{Νi NZ*IG $MКg4ތ0`Ѧ*J%2?,3]U7'mS`q]5#\=FF|%c:ҾLypup9,%}m"zѢJCZ50h' %MtJiPY%nF$;hGu@Qi'٭&CϡuwhL$z3$ β$WEBTj)s5UBU<WYO.*"b|x~6UĽ%(! X=2`hȆcCy"uau*DHqv“v8DMZ'Dvs N 㷷: <@#, iI𺹔3KQp-/&@ч:F rtE~]^i&./G-[XgUjWvݶ$IQI2X5J'=Ԏr55, r##_ JjG?ɤ `OX[_om~7x&O=O?|9Ѐ5x61_IgϞ_n}|u_=}_6 ,H]B]=oSItļzj*56:zB0%6N`!OSfY4.zsS3QM\Ι#@iE{ Dœ c%܉~Dg5w> 8-)2KJhCHrq7G.Xh:Y$O`Rv70Kw;x؊^c+-mtт@nY t Fɿ ºExG':Gddu觳ltu=BgoEۛOzQjmv5;ՔH(EGy?i'?gzd}$9|̦nQ+ۗۆM඄&WjoY7mN⏣b"WT~ qq{nl4m~_h/Iء*bL WBQ:<#Qd} EDD-o5o*x[-6;`4 A_)I9qt0N*#qSʙ(Ri$m7ҋ2]IE eǍA1֟hտq:\#e>S[b#^o9[ím9RjZ OY|s^/ϢqKx@8Hz /irc+ּ`F7F^̕v,9eA7f Cw߆;Kf}4?\;gآRBq Ň)-Z"o:ǥ-]mlnk_el7 > 1\Bp5B5buk&p6ZTݵ8ʽ pG, l:W#;7 x˽9}Sx|quE"Y}m!&i A{5/q!­=vaBr3cLQ!#prFN麥8<\inev#p@Nȸf۰i6PBѶS&aCf6^W pr>x_H13ꆜc:B -SuT Y 1KvCl v"y嚁YNȨcv-I=]MB =BtfyaC]0YhynBaDrU-~fb[<#;(d,}?ysXi23Iwztb=:!⩿Y S5S5 f>3ڳ4'< ׁ`'v\S'GlLq6:89==y\[?li4 Ʉ cƮY&1Nz0&hN~;rȂI WЖC6#!dn }"SړQ7ȅE 3萫|i\St4'&q7-VsiCq|7E抾_@OeyFP_2qqm.4 r,B`lup+yĂk%^ ˙gr$hIB_ RzO^0)x#Ce`&pP1@0G;C(1wA=Z 7ljt ܭfJ;YS#%L9'̐5i׽v 7tl]@oMsC\l&"CrFboȰb 6t>Bc L'of7JsJE&C0XmwE;nG8s4^5--47g#ڪ&تhkA'gOP\׵\y}r[HUw 뭆fJx4! aU 2[c|v}a*ӹ #D 1TSM ?Od6n+XuM45_qS.ߩ$R7G7'0j]nUGћGo.~l٣:J6S%,[(۶\ͶTtwR2rLBCYļx2%ر ~0ST*FFX7k1f<'inT4mkSb 23}'N(c G|4HȢ1=o@݌VMcAY%Jp#1n|^lLN%f䩷 ?$0>$Ol9jI3v6~׃ h Q76؄aߣVmnJE E쩹̓#P.2[J6kzo /)p~C&M,U\E໙hx[c ("Wkݛwq~.zVEǣ>qbSnàz--Ud`Itcب[ʑKD3-IkޮꇣW'o/7?F?읝,ipKgboivóWTc1IFS_/iͳnv4%9wTՇwOwq< kD[!)l!Y]~hMT/.ɈmKpZ!?Q7L׫պQ 5, 95ɠTr5am ujx:ɲ\!J;/U&K;E;M˱!sfy j5AThiZkK]pFb1XmRialtۨ:uԀOB7军DOНc=K u,j>U]r4ki4x k$i?C5xQ5qq^p[NC Lu\c ̡s02A<HטL%UX+6C֩z⡚916݌KTa.Xɚy3* k433g}rۆ=KZU_$K_znnPFJ`f$㪽&q6la{9UTO哐J 7o2wb2ag0< fӷXRɫUIeyv-3(eO  w_m"pBOK Fn+/t1݀ ;g{焁)WP;;\>v3mzit xT[F <Ͳw !qQclƥON^R dK[7vG)$w<\/\B\lSn8RrSFD]D-L]8D\ɣ$z-ZҼK`I(c<9L4)?VZ8u0Nf\Ǵyߞq_868#]*!ͣ˻l_T[|mgww_r5YU鏝/*}c 80s֘ <*bն¿ٵmQ];M۔(o5~IzrCG3?HYE,@=v*!-u  W9yxll^AaĒUhsB.&#fELwqaZxvfݕ60 ,zH-񢊮.`='ݦLԢWق@'ϾKʚw4x몒xJ%>▨W ,L8.JjnO6[ټҋ;wŠg[9|,=˜?j[v7۬0z)*'i5W,/?M1U&]C+@0m&^O4:_߂$w*7֨|_-]lqQ "I,A -50Z+t8d35$W+.kћca8SŴ%Φz }qGDm44Ӵh A@Gwye*t],iƐ:N"DH@+ F5IʓτQa|l/zFrO?VBBfM`Rw0<;0j~ұG* gvB|4$'ɒ#DuoTF]@[=ʞt.>T)eJgJмw5yFPٹP&A=E#@E>5b6PhV$^\F9{eֽ({Wp J_ԈU,6IdڿzYqn`tm`]W;$ߣwOӓ%kE< w̤|G 笢π]pDN .R7&j莹f$O`$yw˒'p hEZ4]'w;wL/ -ڇ 6e˻5)+CM1dP ٝ=j/pdKwīJS_gbAէr2ton]կᥭicȌv¦]ݏ6\-*I{ŖOxÛ9'䚮U|2njC'* o;=6T ѠKx嫿'FI>bG ܉Vj*D=8T+j^w (mᎾ4|؋xAպq)U~΍֚ Gvm9EY6"Hʑ' %"ۉMoo[;t`nd^ c} =7U"a3"ܥya駬+3sp"Cg&mbIAQ'eig% ]f'c:M::l-)#p^hq"tzՠ_Ӝ`6.joWg`$(.O}%7^-ƕ\jNoǣ蘤)^^d n{ohW{՜![sr Q)-BA0jy`6؟_5%qM27i6`˺J#v0wl)rosmM[f]_>ZuYw*lBmyYd۪^9}J=%ał 3yP,h'8j2-ET8f08&ȺYh: 17l]no 6;KtH"%B"̓a}u{w&';Ӥe@q[VKhfhG$Ro]Ouu-@[yC|0\\ǥu0/9PK` h}h:gvPaD HQiZYfE_LQmZnG-"T6U,uMxZIѿ[)ژaJUUAUWorf`NN?]J It)&5%j3T{+S@ gTtԮF| lΜ2:|*ln#U8Wm{&8n'mWN_ ;0"Pꃙ/g <dA \{ϡH<6Iɤt,P~~UD >yQ]mv?dֳͧ[_m>W:? ھX# Mhkx쎆$GlmH}~~j?cYٶtؔfVYS#.baWֵY˙.F˟YE~8ʒ&i( f"4W;0IǗ a4Q`Iy*擙@,{6kQ):r|$ gp$skt,n L~^U]U]ja=뱪jժU)0+ǹ*"2Ǟ7/b48b8y<01Fhytu%tK&D]8F̷"nF`4i|Q돫&QrlcQ8XNuIښo v!^>ޮ&ɄMd(mIҮq)xM@O55#k&L !5C{骈p3`LV2ezSغG"}})(xc Y-7 ZІ`!0!GA=7e- wP\HM6t{W 1Պ] vyFΗ2XvɴeTc}-eZv<q髇xl9vcN)2\]tsg儧tc"shʹ(/ K<|fmА#{E2JKt)> Ak>-4X6&If4r8 qW3RǜEpߤH:¯fXYSpV+ ZwNw?b:-]L?bykrc25AYM! ߐiVo+CpbUNoJƦOcơzG<32YfYxd@W\pn;nW IqtAKwJ}u_w|22dvO9"z5:cnϔUzVUF h%<3x%Y@8OS @_KR[њ{h)LL2afwĜdTNe.[GOR2n"WdB1Q8+BЎu~2S2+}4GSB/8dZI^giGoP*/3pD)ԈEH2.KhzUi qeU? 7+a'㼑Yx *Z5;i{;09̝=U@ϡLjLM>fh?gϞ_=WETAsAY,D  AoV@Duwüy u!9#zcW{!S3ߧdw(c~=>ŲJP R3CbZVFD^ǣ_lN(e؄e`|[BQXy K1K} Ě#/|'_+JALy"r]qhM&#Kǟ`}('MK=>|{{ovne*菢0Ֆ:NShcj,5-EH'P@XK‘(zyC /V}z 6YWҌZeR}c:`P ̛7{~"bZ$|1=8ui