Home » Eclipse Projects » Nebula » Are multiple lines in Grid possible?
Are multiple lines in Grid possible? [message #29518] |
Mon, 26 February 2007 07:15 |
Eclipse User |
|
|
|
Originally posted by: lionelv_remove_.gmail.com
Just wondering if it is possible to have more than one line in a Grid cell?
E.g. this is one row
entry1 | entry2 | entry3
| | over multiple
| | lines
row2 | row2 | row2
|
|
| | | |
Re: Are multiple lines in Grid possible? [message #35734 is a reply to message #35700] |
Wed, 30 May 2007 16:06 |
Mark-Oliver Reiser Messages: 12 Registered: July 2009 |
Junior Member |
|
|
Many thanks for your answer! However, I would have preferred
a positive response ... :-)
What is your estimate of the effort for implementing this?
Possibly I could make some time for doing this if it's not
too intricate (not sure yet).
Can you give some brief indications where I would have
to start / what the major steps would be ... ?
Greetings,
Oliver
Chris Gross schrieb:
> Hi Oliver,
>
> If you write your own cell renderer you can put multiple lines in each
> row - but you can't vary the row height for different rows. That
> support would need to be built into the Grid. I have contemplated that
> feature and will likely add it to Grid sometime - but not likely very soon.
>
> Regards,
> -Chris
>
> Oliver wrote:
>> Hi Chris,
>>
>> when creating a custom cell render, can the rows have different heights
>> then ? For example, row no. 5 has a height of 3 lines while the others
>> still only have a height of 1 line ...
>>
>> Thanks a lot in advance,
>> Oliver
>>
>>
>>
>> Chris Gross schrieb:
>>> Hi Lionel,
>>>
>>> This isn't possible with the default cell renderers. If you create
>>> your own cell renderer it is possible.
>>>
>>> Regards,
>>> -Chris
>>>
>>> Lionel van den Berg wrote:
>>>> Just wondering if it is possible to have more than one line in a
>>>> Grid cell?
>>>>
>>>> E.g. this is one row
>>>>
>>>> entry1 | entry2 | entry3
>>>> | | over multiple
>>>> | | lines
>>>> row2 | row2 | row2
>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #35767 is a reply to message #35734] |
Wed, 30 May 2007 16:16 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
Hi,
Would it make sense to open a bug report and attach the code from Chris
as a starting point so others could start from there and maybe implement
this for Chris?
Tom
Oliver schrieb:
> Many thanks for your answer! However, I would have preferred
> a positive response ... :-)
>
> What is your estimate of the effort for implementing this?
> Possibly I could make some time for doing this if it's not
> too intricate (not sure yet).
> Can you give some brief indications where I would have
> to start / what the major steps would be ... ?
>
> Greetings,
> Oliver
>
>
> Chris Gross schrieb:
>> Hi Oliver,
>>
>> If you write your own cell renderer you can put multiple lines in each
>> row - but you can't vary the row height for different rows. That
>> support would need to be built into the Grid. I have contemplated
>> that feature and will likely add it to Grid sometime - but not likely
>> very soon.
>>
>> Regards,
>> -Chris
>>
>> Oliver wrote:
>>> Hi Chris,
>>>
>>> when creating a custom cell render, can the rows have different heights
>>> then ? For example, row no. 5 has a height of 3 lines while the others
>>> still only have a height of 1 line ...
>>>
>>> Thanks a lot in advance,
>>> Oliver
>>>
>>>
>>>
>>> Chris Gross schrieb:
>>>> Hi Lionel,
>>>>
>>>> This isn't possible with the default cell renderers. If you create
>>>> your own cell renderer it is possible.
>>>>
>>>> Regards,
>>>> -Chris
>>>>
>>>> Lionel van den Berg wrote:
>>>>> Just wondering if it is possible to have more than one line in a
>>>>> Grid cell?
>>>>>
>>>>> E.g. this is one row
>>>>>
>>>>> entry1 | entry2 | entry3
>>>>> | | over multiple
>>>>> | | lines
>>>>> row2 | row2 | row2
>>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #35801 is a reply to message #35767] |
Wed, 30 May 2007 21:44 |
Chris Gross Messages: 253 Registered: July 2009 |
Senior Member |
|
|
Unfortunately I don't have any existing code for this feature. I've
just been thinking about it but not actually coding it. The code
changes necessary for this feature wouldn't be particularly easy. I
suspect there will be a variety of places in the Grid code where I
multiply the row height by a number of rows to determine some
dimensions. Like:
getRowCount() * getItemHeight() = total height of all rows
Those places would have to be changed to iterate through all the rows
because each row would now potentially have a different height. That
could also be a performance concern. Other parts of the code will
likely rely on getItem(Point) to determine what row is where so that may
help this change somewhat. But I still think its not an easy piece for
someone to code as a patch.
Regards,
-Chris
Tom Schindl wrote:
> Hi,
>
> Would it make sense to open a bug report and attach the code from Chris
> as a starting point so others could start from there and maybe implement
> this for Chris?
>
> Tom
>
> Oliver schrieb:
>> Many thanks for your answer! However, I would have preferred
>> a positive response ... :-)
>>
>> What is your estimate of the effort for implementing this?
>> Possibly I could make some time for doing this if it's not
>> too intricate (not sure yet).
>> Can you give some brief indications where I would have
>> to start / what the major steps would be ... ?
>>
>> Greetings,
>> Oliver
>>
>>
>> Chris Gross schrieb:
>>> Hi Oliver,
>>>
>>> If you write your own cell renderer you can put multiple lines in
>>> each row - but you can't vary the row height for different rows.
>>> That support would need to be built into the Grid. I have
>>> contemplated that feature and will likely add it to Grid sometime -
>>> but not likely very soon.
>>>
>>> Regards,
>>> -Chris
>>>
>>> Oliver wrote:
>>>> Hi Chris,
>>>>
>>>> when creating a custom cell render, can the rows have different heights
>>>> then ? For example, row no. 5 has a height of 3 lines while the others
>>>> still only have a height of 1 line ...
>>>>
>>>> Thanks a lot in advance,
>>>> Oliver
>>>>
>>>>
>>>>
>>>> Chris Gross schrieb:
>>>>> Hi Lionel,
>>>>>
>>>>> This isn't possible with the default cell renderers. If you create
>>>>> your own cell renderer it is possible.
>>>>>
>>>>> Regards,
>>>>> -Chris
>>>>>
>>>>> Lionel van den Berg wrote:
>>>>>> Just wondering if it is possible to have more than one line in a
>>>>>> Grid cell?
>>>>>>
>>>>>> E.g. this is one row
>>>>>>
>>>>>> entry1 | entry2 | entry3
>>>>>> | | over multiple
>>>>>> | | lines
>>>>>> row2 | row2 | row2
>>>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #35835 is a reply to message #35801] |
Thu, 31 May 2007 12:01 |
Mark-Oliver Reiser Messages: 12 Registered: July 2009 |
Junior Member |
|
|
This is a multi-part message in MIME format.
--------------080806070908060205050505
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Chris,
thanks for your detailed answer!
I have looked into this a little and have made a quick
first attempt (see screenshot).
It seems to work so far. However, I guess that
issues will arise when testing it with more advanced features
of Grid (e.g. checkboxes). Also, I have not yet examined
dynamic changes of heights of individual rows.
What I have changed: The item height specified in Grid
is now called _default_ item height (e.g. setDefaultItemHeight()
instead of setItemHeight()). Each GridItem now has a height
which may be -1 (the default) to indicate that the parent
Grid's default item height should be used for this GridItem.
This way, nothing changes from a client perspective when
all items should have the same height. On the other hand,
specifying an individual height for an item is easy:
item3.setHeight(50);
Currently, the height of individual items is only set
programmatically through GridItem.setHeight(int), i.e.
the preferred height from the cell renderer is currently
not used for that.
If you could provide me with an example that uses most
of Grid's features (like the one shown in the screenshot
on the Grid home page), this would help me a lot in testing
my changes ...
Cheers,
Oliver
Chris Gross schrieb:
> Unfortunately I don't have any existing code for this feature. I've
> just been thinking about it but not actually coding it. The code
> changes necessary for this feature wouldn't be particularly easy. I
> suspect there will be a variety of places in the Grid code where I
> multiply the row height by a number of rows to determine some
> dimensions. Like:
>
> getRowCount() * getItemHeight() = total height of all rows
>
> Those places would have to be changed to iterate through all the rows
> because each row would now potentially have a different height. That
> could also be a performance concern. Other parts of the code will
> likely rely on getItem(Point) to determine what row is where so that may
> help this change somewhat. But I still think its not an easy piece for
> someone to code as a patch.
>
> Regards,
> -Chris
--------------080806070908060205050505
Content-Type: image/jpeg;
name="gridShot.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="gridShot.JPG"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CAE5AfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwB3xA8Z3eseJL/TI5pE02zl Nv8AZ/uiRlID
M4Bw3zLxnoAOAc1zMVxEoybS3P1jFWZbJNQ+KGoWUjMsdzrksTMvUBpyDjP1 r1b/AIVFpX/Q
Qu/++U/wr7P63h8BShTkrXV9D52rhq2IqylDWz7nk/2+MDH2S2/79CmHUov+ fS2/79Cu58ce
AtP8OeGzfW08skvnonzgdD16fSvM2Fd2ExNLFQ56a02OOrh50Zcs9zS/tKL/ AJ87b/v0KP7S
i/587b/v0KzKK6uVGfKaf9pRf8+dt/36FH9pRf8APnbf9+hWZRRyoOU0/wC0 ov8Anztv+/Qo
/tKL/nztv+/QrMoo5UHKaf8AaUX/AD523/foUf2lF/z523/foVmUUcqDlNP+ 0ov+fO2/79Cj
+0ov+fO2/wC/QrMoo5UHKaf9pRf8+dt/36FH9pRf8+dt/wB+hWZRRyoOU0/7 Si/587b/AL9C
j+0ov+fO2/79CsyijlQcpp/2lF/z523/AH6FH9pRf8+dt/36FZlFHKg5TT/t KL/nztv+/Qo/
tKL/AJ87b/v0KzKKOVBymn/acX/Pnbf9+hR/acX/AD523/foVmYoxRyoOU0/ 7Ti/587b/v0K
P7Ti/wCfO2/79CszFGKOVBymn/acX/Pnbf8AfoUf2nF/z523/foVmYoxRyoO U0/7Ti/587b/
AL9Cj+04v+fO2/79CszFGKOVBymn/acX/Pnbf9+hR/acX/Pnbf8AfoVmYoxR yoOU0/7Ti/58
7b/v0KP7Ti/587b/AL9CszFGKOVBymn/AGnF/wA+dt/36FH9pxf8+dt/36FZ mKMUcqDlNP8A
tOL/AJ87b/v0KP7Ti/587b/v0KzMUYo5UHKaf9pxf8+dt/36FH9pxf8APnbf 9+hWZijFHKg5
TS/tOL/n0tf+/Qo/tKL/AJ9LX/v0KzMe1GPajlQ+U0/7Si/59LX/AL9Cj+0o v+fS1/79CszH
tRj2o5UHKaf9pRf8+lr/AN+hR/aUX/Ppa/8AfoVmY9qMe1HKg5TT/tKL/n0t f+/Qo/tKL/n0
tf8Av0KzMe1GPajlQcpp/wBpRf8APpa/9+hR/aUX/Ppa/wDfoVmY9qMe1HKg 5TT/ALSi/wCf
S1/79Cj+0ov+fS1/79CszHtRj2o5UHKaf9pRf8+lr/36FWbKSXUbpba00+2l lYE4EagADqST
wB7msPHtXUeCpPJuNVkHGLJf/SiGsqz5IOSWpdKmpSSbJzompKcGz0cfW9tv /jlNOkX4622i
j631r/8AHK0r++ZmLADn2rCubt5QysBjHpXPTnWkru33P/M6ZYelHq/v/wCA OtrW9u76azi0
q3E8P+tEiLGI+3zMxAH4mrZ0TUR1tNHH1vbb/wCOVs6fP9mS8kHePSgc9/8A Q3roZLbwnHDD
/aOq3cFy8MckiIhIBZQ3GEPr61yzx1SLVo9tk30T6PzNIYKDWr79bdTg/wCy NQzgWekOx6Il
3bMzH0AD5J9hzVSws7/VTN9k0u1IiO2RpRHEqn0y5Azx061ueMrbRYtNtrnR L24uopWlSRpR
jayBDgfKp/jrZhuPs8urAYwdcvxj/v1WONzOph8K66ir+aa621V/8jowWWU8 RiVR5n9/lc5I
+H9YHXT9I/8AAy2/+OVWudE1aGB5P7O05wilisFzBI5A64VXLH14FejXOgz6 gbWfRHFza3B2
M0mA0Dgch/Qd8/hzkZxJksIvGOlW9hdNdRR3lurzFQFd/MG7bj+H/PI5Pgf6 04uMlzQja/n+
Gp78eGcJKL5Zyuk36W76GH4M+LP/AAjMkttrBu7rTDGPJjjxI8LjAAXcwwm0 HjPBAwBk0V5X
qQwBx3FFfQYzAUJ1nKUdfLQ8jD1JRppJnokl3Hp/xM1C+lV2jttblmdUALEL OSQM4GeK9SHx
f0Q9NM1f/v3F/wDHK8n1DT9Q1Lxvr0GnWr3Mx1K6IRCMkCVs8fiKuJ4T8WKO dAvP++a1xWGw
deMPbzs0l1SOFVcTSnP2UbpvsdT428e6d4n0AadaWOoRSmdJN06RhcDPo5P6 V52YDnpW7/wi
viv/AKF+8/75FIfCfis/8y/ef98iujBvBYSHs6dRW31aOWusVXlzSh+BheR7 UeR7Vuf8Il4r
/wCgBef980f8Il4r/wCgBef9811/XcL/AM/I/ejH6tiP5WYfke1Hke1bn/CJ eK/+gBef980f
8Il4r/6AF5/3zR9dwv8Az8j96D6tiP5WYfke1Hke1bn/AAiXiv8A6AF5/wB8 0f8ACJeK/wDo
AXn/AHzR9dwv/PyP3oPq2I/lZh+R7UeR7Vuf8Il4r/6AF5/3zR/wiXiv/oAX n/fNH13C/wDP
yP3oPq2I/lZh+R7UeR7Vuf8ACJeK/wDoAXn/AHzR/wAIl4r/AOgBef8AfNH1 3C/8/I/eg+rY
j+VmH5HtR5HtW5/wiXiv/oAXn/fNH/CJeK/+gBef980fXcL/AM/I/eg+rYj+ VmH5HtR5HtW5
/wAIl4r/AOgBef8AfNH/AAiXiv8A6AF5/wB80fXcL/z8j96D6tiP5WYfke1H ke1bn/CJeK/+
gBef980f8Il4r/6AF5/3zR9dwv8Az8j96D6tiP5WYfke1Hke1bn/AAiXiv8A 6AF5/wB80f8A
CJeK/wDoAXn/AHzR9dwv/PyP3oPq2I/lZheQaPINbn/CJeK/+hfvP++RR/wi Xiv/AKF+8/75
FP67hf8An5H70H1fEfysw/INHkGtz/hEvFf/AEL95/3yKP8AhEvFf/Qv3n/f Io+u4X/n5H70
H1fEfysw/INHkGtz/hEvFf8A0L95/wB8ij/hEvFf/Qv3n/fIo+u4X/n5H70H 1fEfysw/INHk
Gtz/AIRLxX/0L95/3yKP+ES8V/8AQv3n/fIo+u4X/n5H70H1fEfysw/INHkG tz/hEvFf/Qv3
n/fIo/4RLxX/ANC/ef8AfIo+u4X/AJ+R+9B9XxH8rMPyDR5Brc/4RLxX/wBC /ef98ij/AIRL
xX/0L95/3yKPruF/5+R+9B9XxH8rMPyDR5Brc/4RLxX/ANC/ef8AfIo/4RLx X/0L95/3yKPr
uF/5+R+9B9XxH8rMPyDR5Brc/wCES8V/9C/ef98ij/hEvFf/AEL95/3yKPru F/5+R+9B9XxH
8rMPyDR5Brc/4RLxX/0L95/3yKP+ES8V/wDQv3n/AHyKPruF/wCfkfvQfV8R /KzC8k+lHkn0
rd/4RLxX/wBC/ef98ij/AIRLxZ/0L95/3yKPruF/5+R+9D+rYj+VmF5J9KPJ PpW7/wAIl4s/
6F+8/wC+RR/wiXiz/oX7z/vkUfXcL/z8j96D6tiP5WYXkn0o8k+lbv8AwiXi z/oX7z/vkUf8
Il4s/wChfvP++RR9dwv/AD8j96D6tiP5WYXkn0o8k+lbv/CJeLP+hfvP++RR /wAIl4s/6F+8
/wC+RR9dwv8Az8j96D6tiP5WYXkn0o8k+lbv/CJeLP8AoX7z/vkUf8Il4s/6 F+8/75FH13C/
8/I/eg+rYj+VmF5J9KPJPpW7/wAIl4s/6F+8/wC+RR/wiXiz/oX7z/vkUfXc L/z8j96D6tiP
5WYXkn0ra0D/AEe11qQ8Ysk/9KYaf/wiXiz/AKF+8/75FWLPw94us5XYeG7i WORDHLFKuVkU
4ODgg9QDkEEEAg1lWxeGlCyqR6dV0ZdKhXjNNxZ0ulxeD7nS4ZNU1a6gvGz5 kcakgcnGPkPb
HeuO1hrSG8uRZyGS2WRhE7dWTJwTwOcY7Vq/2Frg/wCafR/9/bn/AOPU1vD+ tN1+HsR/7a3P
/wAerho1qVOblz3v0co2XpqdlWnOoklG1vJk08vk6VNKeAy6T/6RPVu//s/U XinGsWcX+jwo
UkSbcrLGqkHEZHUHoazxpPjF5Z2ufDElzDOFD28iFU+UYTbsKldo4GCOOOlL /YWuf9E/j/7+
3P8A8eqeejFr31dJbSj2S6+hSU2mnF9ej7vt6lLxDNaW3h+2s4L6C6kSeeVz CrgKGWID76rz
8h6Vv6jKIJ77Jxu13UP/AGjWZ/YOuhg6fD+FXU5Vi1w4B9drSlT9CCKIdK8Z ATC78MS36yym
ci5DjEh6sCjKcnvzg4HHArizOlDF4R0qdSKfnJa636HZldd4TFxrVItrXZeV up13/CTafo0c
VppMMd1bsAbySdMG5yMFMHooyfx9ed2BI2lp410g6RLI1rLe2z7JFwYiZFym e+PX+fU0/wCy
fEeP+RBh/wC/lz/8epP7K8VxOJbPwTHa3K8xzoZmaM+qh5GXPoccdRzXy7yP ETkuapTsn/Ns
fTxzvCQjLlhO7TW2/rqeW6rGFVT70VY8R2tzY3BtLyEw3EbYeNjypx0or9Cr yjKd46p2PkaC
fJqes+Dv+St6z/1+6h/6Ea9Xryjwd/yVvWf+v3UP/QjXq9fH51/Hj/hR34P4 ZerCqunOyTap
tYj/AEwdP+uEVWqp2H+u1P8A6/R/6IiryEdZoefL/wA9G/Ojz5f+ejfnUdFF 2BJ58v8Az0b8
6PPl/wCejfnUdFF2BJ58v/PRvzo8+X/no351HRRdgSefL/z0b86PPl/56N+d R0UXYEnny/8A
PRvzo8+X/no351HRRdgSefL/AM9G/Ojz5f8Ano351HRRdgSefL/z0b86PPl/ 56N+dR0UXYEn
ny/89G/Ojz5f+ejfnUdFF2Bl+IZ5Tb2K+Y21r+3BGeo3g8/kKu3l5b6faPc3 MmyJMZIBYkk4
CqByzEkAKASSQACTWf4g/wBTYf8AYQt//QxS65Z3E7ade20fnS6ddG5FuCFM wMUkRVWPAbEh
IzwSoBKg7gDLen6jBqdu01ul0iK2wi5tZYGzgHhZFUkc9cY/Ki01CK9ub+3j Vw9lOIJCwGCx
jSTI56YkX05Brm9WguNZuLK8v/Ct1d2UKzRPplybWRjIxiKTBTKY8KFlXO7c N/AwSazdE0TX
9A1NNSvLObVJUiNvIbeeNpJma2slMuZWXK77aUHJDZKnBBJBYR6DRXmfh/wN PFBpw1TRbV38
+3jvPNEUm+3TTUj2NydyC4RTt5+ZQwHANT6P4T1KHTxf3unofEH2zTX+2OyN ceUkVqlx+9zn
HyTgjPzAt13clgO31LWLPSvKFyZmklzsit7eSeRgMZbZGrNtGVBbGAWUE8jN qCZbi3jmQOEk
UOokRkYAjPKsAQfYgEVz+s2eo2+qXWoWEd7L9stYbZvsBgE8BieRwwE/7tlY SspzyMDAO4lc
Ky8NavNo+pXmqWnmaxdS2TzqZEPnxJFa/aYlAOweYYpUI+VXwoY7QCCwHoNF cLp2l6jpGqrq
1toMy2P+kRQaVbvAslski238O8RBS8ErEK55lU4yW24XhfQLmOQ2v9heXq9l dackmq/uf9HW
K1tDLDvDeZ8yrIuFBU+ZgnBYgsB6vRRRSGFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFAB
RRRQAUUUUAFFFFAFDXP+Rf1L/r1l/wDQDV+qGuf8i/qX/XrL/wCgGr9ABRRR QAUUUUAFFFFA
BRRRQB80/FT/AJHnVP8Ar5aij4qf8jzqf/Xy39KK++p/wof4Y/kjyY9fV/md /wCDv+St6z/1
+6h/6Ea9Xryjwd/yVvWv+v3UP/QjXq9fM51/Hj/hR1YP4ZerCqdh/rtT/wCv 0f8AoiKrlU7D
/Xan/wBfo/8AREVeQjrLlFc3pVqNZubjUL+4vVvLW/mhFvFeSwxxJHIfLDRK wDbk2SHeDuEn
9wqBz17r+oahpuhteC1MOrtY6jbpDGyNbKLy0/duxYiQ4nHzAJ9w8fNwWA9F orhbjxfqx0jw
3NbpZJc6vYQzu0kTukckk9pHwocEqBcucZzwvPXMc3i7W4liiH9nma6ne2hf 7O+2Jor2G0kZ
l8zLhjKXABXbjaS/3qLAd9RWTod/d3Taja3xhe5sLoW7zQRmNJcxRyghCzFc CULjcc7c8ZwI
PCL3D6C4ubua7ljv72IzTkF3CXUqjOAB0AGAABjAAHFIZu0UUUAFFFFABRRR QAUUUUAFFFFA
GR4hjMsNhGHZC+oW671xlcuORkEZ+oq4dPkB/wCQtqP5Qf8Axqq2t/8AMM/7 CVv/AOhiovEc
8qf2dbLK8FteXot7qeNijRoUcgB/4C7rHHnr+8wpDFSH0EXfsEn/AEFtR/KD /wCNUfYJP+gt
qP5Qf/Gqx5Y7rTL+00TRbjy5LqKe7a41KSa9wIzEhQBpQwz5oP3sDaeDuyMX wZ4il1TxDcss
CRQ6op1BkJLNGwtNP2qG4BGJmzxzgdKYHZfYJP8AoLaj+UH/AMao+wSf9BbU fyg/+NVxWjeL
fEGsxWTrJpkH22WC2jBtJH8qRrFLtnP70bl++gXgjIO44IM+meL9W1G2GsbL KPTTdWNv9j8p
zN/pMduc+dvx8rXHTy+QmOM5BqB132CT/oLaj+UH/wAao+wSf9BbUfyg/wDj VY/iC3e/v47W
xvb1NT8oNF5NwyQ2Yyf38qqQJMkYWN9wcpgBV8xh0lK4FP7BJ/0FtR/KD/41 R9gk/wCgtqP5
Qf8AxqrlFFwKf2CT/oLaj+UH/wAao+wSf9BbUfyg/wDjVXKKLgZ9xayQW0s3 9q6i2xC2P3Az
gZ/55VHp9tcXOl2VzLq1/wCZPbxysEWAAFlBOP3fTmrl/wD8g66/65P/ACNZ slzd2XgNLuwg
8+8g0lZIIdhbzJFhyq7RyckAYHNMC99gk/6C2o/lB/8AGqPsEn/QW1H8oP8A 41WHPHBoulrq
+n3t1f3F41vBHcXN9LPCxnljQSiMN5eMuGwgUEfKpUHjCvNf1C28X2iXAtZb uyZ9PkljjZI5
Vmn00lghYlSFnx948rnodoAO5+wSf9BbUfyg/wDjVH2CT/oLaj+UH/xquR1j xfq1lq+rQ26W
X2bS4rm5dZInZ5o4YLSTYGDgIzG4cbsMBhflPOZ4tb8QXXiA6DDc6ZFc2/n+ fdPZSOkuxLV1
2xiYFOLrByzZ2Z4zgGoHT/YJP+gtqP5Qf/GqPsEn/QW1H8oP/jVZX2pfEfhX S7syPaSajAk8
Vsl60BldojIIvNUbwB1JTBwh4K7lNjwrPLPoEfnyvJLFPcQMXYsV8uZ027jy 4XbtDthmADMA
SRSAu/YJP+gtqP5Qf/GqPsEn/QW1H8oP/jVXKKLgU/sEn/QW1H8oP/jVH2CT /oLaj+UH/wAa
q5RRcCn9gk/6C2o/lB/8ao+wSf8AQW1H8oP/AI1Vyii4FP7BJ/0FtR/KD/41 R9gk/wCgtqP5
Qf8AxqrlFFwKf2CT/oLaj+UH/wAao+wSf9BbUfyg/wDjVXKKLgU/sEn/AEFt R/KD/wCNUfYJ
P+gtqP5Qf/GquUUXAwfEFvJb+H7+Q6lfyAQsNjeSAcjHOI8457Y/Ct6sjxT/ AMixqH/XL+or
XoGFFFFIAooooAKKKKACiiigD5p+Kn/I86n/ANfLf0oo+Kn/ACPOp/8AXy39 KK++p/wof4Y/
kjyY9fV/md94QLD4s62URpGF7qGEXGWO48DJA/M16Z9qvP8AoD3n/f2D/wCO V5v4J/5LDq3/
AF/3/wD6Ga7/AMU6ld6P4Y1XU7GKGW5tLaSdEnYqh2gk5wMngE44z0yM5HzW dfx4/wCFHVg/
hl6ss/arz/oD3n/f2D/45VCzvNRabUfsuizz/wCmfP8Av4V2HyYhj75yeO3t 3yBt1naLK8Gn
eIpYztdLyZlOM4IiQivIjZnWyhc6bNe38N/d+CYJ7yDb5VxK9u0ke05G1icj BJIx3oi02aCS
4kh8EwRyXMqzTsj24MsituV2IPzMG+YE8g81oza0gmubWG61r7TEsmGl0qRI SyAn/WmEIRxw
d2DxgnIqjr/iXVLPxVNpdpPHBBFZQXG4aHdagzM7zKQfIcBABEMZHOT6VfIh XII9HMV5LeR+
BLVLqZt8kym2Du28PktnJO9VbPqAeoqwbS7YoW8HISjM6ky2/wArNIJGI54J dVcnuyg9RU9t
46sfOv4bmO7xYpcXFzcrbbYoYI5riPcxDMSQbcjA+ZshgoG4IQeLry71nRoI dDuxaajbzzZM
tu7BFa3CzBkmKGLEzZwSxwMDHU5EFwjbVonlePww6PM2+RluIQXbAXJ+bk4V Rn0AHaoNPtLv
SbdrfTfByWULNvaO2lt41LYAyQpAzgDn2p/i/wAQ6xoV5K1k9ibWLRL7UDHN buzmSAJtG4SA
BSZVyNufkIz82VNW+I2k6DLBDq8E9jcPF580E89ur28W5lDEeb+8zsY7YvMb jkAlQTkQXJ/t
Ouf9C7N/4FQ//FUfadc/6F2b/wACof8A4qmSePrKI3DS6ZqSQQPclpyIipht 5DHcTACTdsRt
uRjedw2q3OOso5EFzlvtOuf9C7N/4FQ//FUfadc/6F2b/wACof8A4qupoo5E FzlvtOuf9C7N
/wCBUP8A8VR9p1z/AKF2b/wKh/8Aiq6mijkQXOW+065/0Ls3/gVD/wDFUfad c/6F2b/wKh/+
KrqaKORBc5b7Trn/AELs3/gVD/8AFUfadc/6F2b/AMCof/iq6mijkQXOMvl1 q7Npu0GeNYbu
GZiLiFiQrgkD5utTzvq11BLBceGHlhlUpJHJcQsrqRgggtggjtXUy/cH+8v8 xWF4n8YaZ4S+
ytqZ2Qz7yZPPhTYq43Ha7q74DdI1du2MkAnIguYP9gRfYPsH/Cv7L7H5vnfZ 8W3l+ZjG/b03
Y4z1xU95ps2oxvHfeCYLqOSUTOs727hpAu0OQTy20Bc9cDFP0zxqLW1upNeg u4LeO91COPUG
SMxSLBLO2xVjYyZWKJuWQZ8s8kkbuo029nvrdpbjTLvT3DlRFdNEzEYHzDy3 cY5x1zweOmXy
ILnMQWl3bCMW/g5IhEweMRy267GEflgjB4IT5M/3eOlEVpdwW/2eLwckcO6N /LSW3C7kChDj
OMqETB7bVx0FdnRS5EFzhNQ0c6tcLcal4Etb2ZV2LJcm2kYLknALEnGSePet L7Trn/Quzf8A
gVD/APFV1NFHIguct9p1z/oXZv8AwKh/+Ko+065/0Ls3/gVD/wDFV1NFHIgu ct9p1z/oXZv/
AAKh/wDiqPtOuf8AQuzf+BUP/wAVXU0UciC5yVxJrk9tLD/wj0y70K5+1QnG Rj+9TbN9attO
s7dfD87+TbxxlvtMIyVQA8bumRXX0yL/AFKf7oo5EFzh00cx3F1cJ4EtVmu1 dLmRTbBplc5Y
Oc5YE9QetSR6bNDaLaReCYEtlikhWFXtwgjkILoFzjaxAJHQ45rt6KORBc4S 30c2lu9vbeBL
WGGRXR44zbKrK4UOCAcEMEXI77RnoKtrHqKXbXaeE9ty2d0wngDnIUHLZzyI 0H/AF9BXYUUc
iC5xk1pd3GmjTZvBySWAVUFq8tuYgq42jYTjAwMDHGBU8DatbW8dvb+GHihi UJHHHcQqqKBg
AANgADtXWUUciC5y32nXP+hdm/8AAqH/AOKo+065/wBC7N/4FQ//ABVdTRRy ILnLfadc/wCh
dm/8Cof/AIqj7Trn/Quzf+BUP/xVdTRRyILnLfadc/6F2b/wKh/+Ko+065/0 Ls3/AIFQ/wDx
VdTRRyILnLfadc/6F2b/AMCof/iqPtOuf9C7N/4FQ/8AxVdTRRyILnLfadc/ 6F2b/wACof8A
4qj7Trn/AELs3/gVD/8AFV1NFHIguct9p1z/AKF2b/wKh/8AiqPtOuf9C7N/ 4FQ//FV1NFHI
gucTq6a5qGkXVoNAmjMqEbjcxHH/AI9XReVJ/wA83/75NaMv+pf/AHTT6ORB cy/Kk/55v/3y
aPKk/wCeb/8AfJrUopcgXMvypP8Anm//AHyaPKk/55v/AN8mtSijkC5l+VJ/ zzf/AL5NHlSf
883/AO+TWpRRyBcy/Kk/55v/AN8mjypP+eb/APfJrUoo5AufKXxU/wCR51P/ AK+W/pRR8VP+
R51P/r5b+lFfdU/4UP8ADH8keXHr6v8AM9A8GyJD8XdZlldUjS+1BmdjgKAx ySewrsdb1XQN
b0a80uXWvIiu42hkkgI37G4YDcpHIyOnfjB5rkPBP/JYdW/6/wC//wDQzXrB mlyf3jfnXzWd
fx4/4UdWD+GXqzAg8S6LFbxxvrCTOihWlkwGcgfeO0AZPXgAewqx4Yktb+w1 oLOphuL2QB1Y
cqY0GRWv58v/AD0b86qeGHeRtZZ2LN/aLjJOeBHGBXkx3Otl2W08+F4pNUnZ HUqw/dDIPB/g
p0dnaxazc6osx8+4t4bd1LDaFjaRlI75zK2eew6d79FaEmBp/h2x0ubUZ7O/ uI575GVpN8bG
ImaebcgK4yGuXxuBGAuQec17Dwjp2m3Ed5a6hcR3/wBoknuLpfJDXPmGPzFd QgQBvKiyUVW+
TOcsxbp6KAMDVvDtjrWqLd3l/cGD7FPYyWSvGIpYpseYGO3eCdqcqwxsGOpz G/hxJJVmbxDq
YuGiEF1Ojwo93ErOyqxWMbNvmOA0Wxvm65AIt2fifS7vQW1uWf7DYJLJE0l/ /o+wpK0R3B8b
csvAbB5AIB4o0vxRo+saneadZX0El1a7GMayoTJG0cciyoASTGRKo3dM5/EA oXHg/Sbm1uLd
7u4CT2+oW7ESJkLeSiWUj5eoYYX0HXPWuk82P/non/fQrC1zxjo+iLMkmoWL 3VvLbrc27XaI
8EcsscZkcdVVRKGyQB05Gc0X3i6wgtrG4sZINQhvZY44pYLmMoQ1zDAxBBJb aZs8Aj5cEqSM
gG75sf8Az0T/AL6FHmx/89E/76FY0PinTbvxUmg2V1aXc6288tz5NyrtbtE8 SbHUZIJMh64x
sPB7blADPNj/AOeif99CjzY/+eif99Cn0UAM82P/AJ6J/wB9CjzY/wDnon/f Qp9FADPNj/56
J/30KPNj/wCeif8AfQp9FAEUksZUYdfvDv7isHX/AAxaa99r/wCJreWP220+ xXf2Roj9oh+f
CnzEfbjzJOV2n5zknAx0Ev3B/vL/ADFPoA5T/hC9Ll8+G91G8vbCWW6mWxme NY4nuPMEhVkR
ZOk0qjcxwH9QCNzTYHsbdorjV7jUHLlhLdCJWAwPlHlogxxnpnk89MX6KAGe bH/z0T/voUeb
H/z0T/voU+igBnmx/wDPRP8AvoUebH/z0T/voU+igBnmx/8APRP++hR5sf8A z0T/AL6FPooA
Z5sf/PRP++hR5sf/AD0T/voU+igBnmx/89E/76FNiljESAuoO0d6lqhe6lDp WnwXE6yMjzW9
uAgBO6WRIlPJHG5wT7Z69KOoFzzY/wDnon/fQo82P/non/fQqtZalDfXWo28 SyB7C4FvKWAw
WMUcuV56bZFHOOQfqcu38WQS+F9S1+fTr61t9P8AtPmwzeUZG8gsJNux2X7y MoyRkr6EEgG7
5sf/AD0T/voUebH/AM9E/wC+hXNXXjqwtrHT7hbK+mkv4t8dtGsYkV/OhgMT 7nAWQSTqpBPB
V8kEcySeK7mK4trRvC+s/bLhJpEthJabhHGYwzk+ftxmVQBnPB4A5IB0Pmx/ 89E/76FHmx/8
9E/76Fc8vjCIXV1HcaRqVtbWTpHeXkvkmK2dokkw+2QthRIoZgpVeSW2gsLm p+JLPSdc0nSr
mOfzNS8zy5lUeVFs2D94xI27mkRF4OWYDqRQBq+bH/z0T/voUebH/wA9E/76 Fc1ZeOrDU4rn
+z7K+uriK7e2ito1jD3IVUczRkuF8kpIjB2ZQdygcsoaSTxhF9otrS00jUry +lSZpbSLyUkt
jEYw6yeZIoB/fRkbSwYMGBKkEgHQ+bH/AM9E/wC+hR5sf/PRP++hXPf8JhFc 3EUWk6RqWrJJ
ZQXwltfJRRFMX8snzpEOT5bHGOOM1oarrQ024t7SGwu9QvLhHkS2tTGG8tCo dyZHRcAugxnP
zDAIBIANHzY/+eif99CjzY/+eif99CueTxhF9vktp9I1K3ihuILSe6k8kxwz ypGyRkLIXJzN
GuVUrk9cAmrFt4r02fVNUsnMlumnIXa7uNqQTKv+tMb5+YRN8sh42MQDQBs+ bH/z0T/voUeb
H/z0T/voVz1x4tktbV7uXw5rK2++JIHYQKZ2klSOMKjSh1JLg4kCYAOcHitj Tb2e+t2luNMu
9PcOVEV00TMRgfMPLdxjnHXPB46ZALPmx/8APRP++hR5sf8Az0T/AL6FZWm+ JLPVP7I8iOdf
7V09tQg3qBtjHlZDYJw375eBkcHnpnYoAZ5sf/PRP++hR5sf/PRP++hT6KAI pZYzE4DqTtPe
nebH/wA9E/76FEv+pf8A3TT6AGebH/z0T/voUebH/wA9E/76FPooAZ5sf/PR P++hR5sf/PRP
++hT6KAGebH/AM9E/wC+hR5sf/PRP++hT6KAGebH/wA9E/76FHmx/wDPRP8A voU+igD5S+Kn
/I86n/18t/Sij4qf8jzqf/Xy39KK+3p/wof4Y/kjzI9fV/meheCf+Sw6t/1/ 3/8A6Ga9VP3j
9a8q8E/8lh1b/r/v/wD0M13/AIiNv9hRLia9USShUgsZTHNcvgkRqwIYdNxI ZcBCWIQNXzWd
fx4/4UdWD+GXqzVqt4V/5jP/AGEn/wDQEqLRra7s9KggvZ/OnXdk7y+1SxKp vbl9qkLvbltu
48k1L4V/5jP/AGEn/wDQEryYbnWzoKKKK1JIJr21tnCT3MMTEZCvIFOPxp0F 1b3O7yJ4pdv3
vLcNj64rI1Sa6jv5Vs9S0+wnaKI772EyqygyZAUSIc5I5yfpzxLo8s0txMbi 9tLydYYxJNaR
mOMnfIRhS7kcEfxH14zilcDnk8Oa2fDiQTWdj/acOq3N/bPBqssQgMryuHD+ QdzL5zJsZCjD
k5ztrY0DSdU0i+vReXMF9HeeXcTXn+qkadYYoWHlBSoU+UXyG4LbduBuPQUU wOPbw9rAtJNK
VLE2I1VNSjujcOJGzfLdMhi8vAwC6g7zkqpwNx209S8FaleeKptUjntBA97H cBWdt21X05iP
u4ziyl7/AMSepx3lFAHH+HfD2saZqOjJeJY/YdH0qTTYZobh2kuMmDa7IYwI +ICSAzYLYycZ
rsKKKACiiigAooooAKKKKAGS/cH+8v8AMU+mS/cH+8v8xT6ACiiigAooooAK KKKACiiigAoo
ooAKzNU0/wDtPS7e3xnZc2tx/rNn+qmSTrtb+50xz0yudw06ZF/qU/3RS6gU tO0/7FfatcYx
9uu1uP8AWbs4hij6bRt/1fTLeuedq8/D4e1if4f69ol4ljDfX/8AaHkmG4eS MfaGkddzGNSM
GUg4U8LnvgdhRTA878SeBNS1HXJ5rNdNn0t0WUWV5IyhpmuraWZMBGUROttk 8EmSWQkHdxJe
eEby7l0p38I+FHtbCK6hXTHuSYE81oXEi/6NgNlJARtH3s5OSK9AooA4uTQN evTr1hdQ6bDp
+uuGuZ4rt3lhVraKGREQxAMf3bBXLDG4MVONh1Nc8N/25q0Essnl2q6fdWrP G2Jo5JJIHjkj
OCAyGEsG6hgpHt0FFAHHw+FrzSdavNX0mKx8wSslrZO5ih+ztBaxlSVQ+Wwa 1UjCsNvGAWyl
ebwJPqWsf2jfX89rNcxXTXDabeSwPDNItskYjZcb1VLfkvwzYbYAdq9xRQBw b+FtSj16DU/+
Ed8MX729lb2tv5srQC1aGSYh4V8mTYGV4ztB+UrjLYDHoPEunzanbwW66Do2 sQBy7x6pMUVG
AwpUeTICcFhnjHvnjcooA4/w94HGnXM9xq15PqVx5tu8cj3U2yUxW0MfmSQl thk8yJnBIYj5
TuyBjLg+HOoNZWMd94gu53mt7u31WP8AchNt2jNOYSIQ2TP5bDceACPY+iUU AcfrmmeJNe0W
bS73TtDmjEtvKGa7k2XXlTxyMrxmFvLV1RuN0mMgfMOa3NAtZrHS1tZdK03S 0jciK206UvEF
POf9XHgli2QF9888alFAHP6P4e/s3+wPkx/ZmlNYf8fG/GfI4/1a7/8AU/e+ Tp907vl6Ciig
AooooAZL/qX/AN00+mS/6l/900+gAooooAKKKKACiiigAooooA+Uvip/yPOp /wDXy39KKPip
/wAjzqf/AF8t/Sivtqf8KH+GP5I8yPX1f5noXgn/AJLDq3/X/f8A/oZr0rUt L0/VoRb6lYWt
7Cr71juYVkUNyMgMCM4J596818E/8lh1b/r/AL//ANDNemm/s8n/AEuD/v4P 8a+azr+PH/Cj
qwfwy9WFnZWmnWiWljaw2ttHnZDBGERcnJwo4HJJ/Gm+Ff8AmM/9hJ//AEBK X7fZ/wDP3B/3
8FN8KMrrrDKQVOouQQeCPLjryYbnWzoaKKK1JCiiigAooooAKKKKACiiigAo oooAKKKKACii
igBkv3B/vL/MU+mS/cH+8v8AMU+gAooooAKKKKACiiigAooooAKKKKACmRf6 lP8AdFPpkX+p
T/dFLqA+iiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADJf8A Uv8A7pp9Ml/1
L/7pp9ABRRRQAUUUUAFFFFABRRRQB8pfFT/kedT/AOvlv6UUfFT/AJHnU/8A r5b+lFfbU/4U
P8MfyR5kevq/zPQPBsaTfF3WYpUV43vtQVkYZDAscgjuK9A1GLw/pcAlutLs gGfYiRWAlkkb
BOFRFLMcAnABwAT0BNcD4J/5LDq3/X/f/wDoZr0bWHuEsXEFjNeK5KSxW9wI ZthBGY2JUbgc
fxLgZIOQAfms6/jx/wAKOrB/DL1ZFZ2mhahaJc22mac8T5wTZopBBwVYFcqw IIKkAggggEVP
4VhhC6uqwQoi6gyqiRhVAEcfQAYqr4bs7iw0OKC5j8uTzZpBGSGZEeVnQOwz ucKyhmy25txL
NncbvhX/AJjP/YSf/wBASvJjudbN3yo/+eaf98ijyo/+eaf98in0VpYkZ5Uf /PNP++RR5Uf/
ADzT/vkU+iiwDPKj/wCeaf8AfIo8qP8A55p/3yKfRRYDI1LXNH0m4WC8cq5Q SOUt3kWFCSA8
rKpEScN8zlR8rc/KcanlR/8APNP++RXNeJH1K41GOxOhX2oaKYg8wtJbcfaH JI8qQSyoRGAA
SADv3BSQoZX5+58F6iunPLpFpBp+t3eoaoZ7+JlikMMwu/JLyJ8zLve3bHJB VTjK8FgO5jvL
WXWbnS1hPn29vDcOxUbSsjSKoHfOYmzx3HXsXt5a2N1p1vLCS9/cG3iKqMBh FJLlvbbGw4zy
R9Rz3hPSFsfEOr3lt4Y/sCxntLWJIdtunmSI85dtsLsOkkYycE/hWPYeD1uL fQrLUfCsBktb
uN9Xu547d01FltbhDMcMXk/eurZkUN+8zjO7BYDtbvU7Kz1OysJIJTNeSiKN hD8gJjlk5Y4B
4hfIGSMrkAMDUkd5ay6zc6WsJ8+3t4bh2KjaVkaRVA75zE2eO469vNp/BniW S8lFnF9k2+dF
Zzi4VRbpjVVh27SWVVW5tgAo+UEAD5SB1HhPSFsfEOr3lt4Y/sCxntLWJIdt unmSI85dtsLs
OkkYycE/hRYDrfKj/wCeaf8AfIo8qP8A55p/3yKfRRYBnlR/880/75FHlR/8 80/75FPoosBF
JFGFGEX7w7e4p3lR/wDPNP8AvkUS/cH+8v8AMU+iwDPKj/55p/3yKPKj/wCe af8AfIp9FFgG
eVH/AM80/wC+RR5Uf/PNP++RT6KLAM8qP/nmn/fIo8qP/nmn/fIp9FFgGeVH /wA80/75FHlR
/wDPNP8AvkU+iiwDPKj/AOeaf98ijyo/+eaf98in0UWAZ5Uf/PNP++RTYooz EhKKTtHapaZF
/qU/3RRbUA8qP/nmn/fIo8qP/nmn/fIp9FFgGeVH/wA80/75FHlR/wDPNP8A vkU+iiwDPKj/
AOeaf98ijyo/+eaf98in0UWAZ5Uf/PNP++RR5Uf/ADzT/vkU+iiwDPKj/wCe af8AfIo8qP8A
55p/3yKfRRYBnlR/880/75FHlR/880/75FPoosAzyo/+eaf98ijyo/8Anmn/ AHyKfRRYBnlR
/wDPNP8AvkUeVH/zzT/vkU+iiwDPKj/55p/3yKPKj/55p/3yKfRRYCKWKMRO Qig7T2p3lR/8
80/75FEv+pf/AHTT6LAM8qP/AJ5p/wB8ijyo/wDnmn/fIp9FFgGeVH/zzT/v kUeVH/zzT/vk
U+iiwDPKj/55p/3yKPKj/wCeaf8AfIp9FFgGeVH/AM80/wC+RR5Uf/PNP++R T6KLAfKXxU/5
HnU/+vlv6UUfFT/kedT/AOvlv6UV9vT/AIUP8MfyR5kevq/zPQPBql/i7rKL I0bNfagA64yv
zHkZBGfqDXoZ0MZ/5DOsf9/o/wD4ivPvBP8AyWHVv+v+/wD/AEM13/iKDVrm xSHSfJ3PKBcC
S4eBjFg5CSKjFGJ2jIGcFsFWww+azr+PH/Cjqwfwy9WL/YY/6DOsf9/o/wD4 ip/CcIjj1aNJ
p2CX7LukKszHy4+SQo/lWX4EMrfD/wAPGZER/wCzoAAjlht2DackDkjBI7Ek ZOMnY8K/8xn/
ALCT/wDoCV5MdzrZu7G/56v+Q/wo2N/z1f8AIf4U+vP/AB6mjx6iLq8n0O+v o7TMOiapCk8l
xgsVW2UsDHJIcoWCvuKx/L8uDpYk73Y3/PV/yH+FGxv+er/kP8K8yl8U+KU1 jVzb3FjPcW/2
4R6N5hlmCxLJ5D/Z0hEibykR3PMVYSfKAXQDQm162T7FEnj7dpMvntLrXm2R 2Tp5Oy33+X5Q
yryPtK7ztyDgEUWA73Y3/PV/yH+FRmSNbhLdroCd0Z0jLLuZVIDEDGSAWUE9 tw9a8+0zXfEV
xavrN9ez280WoabZyaUbeNIU+0RWnmg5TzQytcSEfPwQoIIBBPCuqHVvGWj3 Fzrf2zUn0S6e
90/MI/s6VpLUtFtRQ6YbcuJCzDZ1yDksB6Lsb/nq/wCQ/wAKNjf89X/If4V5 NcDRl8TarcWW
pWml/Z/FCvfahaGANbqdNZcyM6sqgzNImXH33cD5jUmp+LPEtvP4hlTVLGGS 1i1ArYearzQR
xJKYZvIEG5N2yJt8krIwk4GXQAsB6rsb/nq/5D/CjY3/AD1f8h/hXFWOp6ta eJ47GbVZ72Bd
VOllZ4ogXU2Ju/NJRF/eBvk4wuwfd3fNXcUWAZsb/nq/5D/CjY3/AD1f8h/h T6KLAM2N/wA9
X/If4UbG/wCer/kP8KfRRYBmxv8Anq/5D/CjY3/PV/yH+FPoosBFIjbR+8Y/ MPT1HtTtjf8A
PV/yH+FEv3B/vL/MU+iwDNjf89X/ACH+FGxv+er/AJD/AAp9FFgGbG/56v8A kP8ACjY3/PV/
yH+FPoosAzY3/PV/yH+FGxv+er/kP8KfRRYBmxv+er/kP8KNjf8APV/yH+FP oosAzY3/AD1f
8h/hRsb/AJ6v+Q/wp9FFgGbG/wCer/kP8KbEjGJP3jD5R6f4VLXOeJ9Rl0/T 9N/4mH9mWk9y
IrvUPkH2WPypGDbpAUXMixplgR8+B8xBBbUDchkjuULwXQlQOyFkZWAZWKsO B1DAgjsQRUcN
5a3F5c2cN/FJdWu37RCkiF4twyu5RyuRyM9a8isvEWs2dokOl63Yra+beT2l xd3CJ/acrX1y
CAqQSGfhYzsg8tv3owfnXb6B4Ht5Y9P1Gd72eWOXVb/ZA4QJDi8nB2kKGOep 3FvbA4osB0ux
v+er/kP8KNjf89X/ACH+FPoosAzY3/PV/wAh/hRsb/nq/wCQ/wAKfRRYBmxv +er/AJD/AAo2
N/z1f8h/hT6KLAM2N/z1f8h/hRsb/nq/5D/Cn0UWAZsb/nq/5D/CjY3/AD1f 8h/hT6KLAM2N
/wA9X/If4UbG/wCer/kP8KfRRYBmxv8Anq/5D/CjY3/PV/yH+FPoosAzY3/P V/yH+FGxv+er
/kP8KfRRYCKVGET/ALxj8p9P8Kdsb/nq/wCQ/wAKJf8AUv8A7pp9FgGbG/56 v+Q/wo2N/wA9
X/If4U+iiwDNjf8APV/yH+FGxv8Anq/5D/Cn0UWAZsb/AJ6v+Q/wo2N/z1f8 h/hT6KLAM2N/
z1f8h/hRsb/nq/5D/Cn0UWA+Uvip/wAjzqf/AF8t/Sij4qf8jzqf/Xy39KK+ 3p/wof4Y/kjz
I9fV/megeDS4+LusmJVaQX2obVZtoJ3HAJwcD3wa9DI8RZ+7o/8A3+l/+Irz 7wT/AMlh1b/r
/v8A/wBDNeqn7x+tfNZ1/Hj/AIUdWD+GXqzK2+Iv7uj/APf6X/4ip/CYnWPV hL5DSfb23mN2
258uPIGVBq7Vbwr/AMxn/sJP/wCgJXkw3Otm7mT+4n/fR/wozJ/cT/vo/wCF Prl/E6al/bWg
x2Wu31hDfXbWs0cEVuwwIJ5dwMkTENmNR1xjtnmtCTpcyf3E/wC+j/hRmT+4 n/fR/wAK86Pi
3VNG8OapcXsHmW7Xerx2d1Febp98L3MiqyPEVRQkLKpy+MJ8uCQNyPxdfXKY g0aMST6nPptl
595tSZ4Wn3uxVGKJtgOOCSxK4CgOwB1OZP7if99H/CjMn9xP++j/AIVww1LV 0+FOvakbyS21
S1fVJVkjcT+W0VxMVQGRcMgCBOVHy9AvGJD4m1TRG8RveR/2jY6dd29nbylv 37yyRWwVWjji
5UvMWLLluSFjOAKAO1zJ/cT/AL6P+FGZP7if99H/AArhn+IV7Fbiabw/JEIL e7u7zzpJYcQ2
4hLNCskKtISJgAGWMbkYZxhj1Gi6rNqQvYbu2jt7yxuPs9wkUplj3GNJAUcq pYbZEzlRzkcg
AkA0cyf3E/76P+FGZP7if99H/Cn0UAMzJ/cT/vo/4UZk/uJ/30f8KfRQAzMn 9xP++j/hRmT+
4n/fR/wp9FADMyf3E/76P+FGZP7if99H/Cn0UARSGTaMqv3h/F7j2p2ZP7if 99H/AAol+4P9
5f5isq5vriPxlplgsmLWbT7uaRNo+Z0ktgpz14Ej/n7CgDVzJ/cT/vo/4UZk /uJ/30f8K4q4
1bWbv4UaNf2upfZdX1CLTUN75CPseeSFHfYRtP32449sVz+r+LvE897DPbtP YW9xEtstjbiC
WQXCXlpDOySSLt3Bp5oQG+TMW/owIAPVcyf3E/76P+FGZP7if99H/CsrR7e/ fQ3S7vdVS6m3
4e9Fr59v/CMeSvlHGNwyG68+g5vS7/WFsLeGbW7u5uNT1i702O4migH2VIHu fnRUjUM7JAB8
2QGIbBAKMAdzmT+4n/fR/wAKMyf3E/76P+FcdPq+p2Otx+FTfyTz3LwiPU5Y 4xLGkiXLtlFU
Izj7KwVtoH7xcq2w+ZsaPc3cGs32h3d1JfG1t4LqO7lVFkZZWlXY4QBSVMJI YBchgMZUswBs
5k/uJ/30f8KMyf3E/wC+j/hXJWet6jL/AGJvuM/afEGoWUvyL80MX2zYvTjH kx8jk7eScnPY
UAMzJ/cT/vo/4UZk/uJ/30f8KfRQAzMn9xP++j/hTYjJ5SYVcbR/F/8AWqWm Rf6lP90UdQDM
n9xP++j/AIUZk/uJ/wB9H/Cn0UAMzJ/cT/vo/wCFGZP7if8AfR/wp9FADMyf 3E/76P8AhRmT
+4n/AH0f8KfRQAzMn9xP++j/AIUZk/uJ/wB9H/Cn0UAMzJ/cT/vo/wCFGZP7 if8AfR/wp9FA
DMyf3E/76P8AhRmT+4n/AH0f8KfRQAzMn9xP++j/AIUZk/uJ/wB9H/Cn0UAM zJ/cT/vo/wCF
GZP7if8AfR/wp9FADMyf3E/76P8AhRmT+4n/AH0f8KfRQBFKZPKfKrjaf4v/ AK1OzJ/cT/vo
/wCFEv8AqX/3TT6AGZk/uJ/30f8ACjMn9xP++j/hT6KAGZk/uJ/30f8ACjMn 9xP++j/hT6KA
GZk/uJ/30f8ACjMn9xP++j/hT6KAGZk/uJ/30f8ACjMn9xP++j/hT6KAPlL4 qf8AI86n/wBf
Lf0oo+Kn/I86n/18t/Sivt6f8KH+GP5I8yPX1f5noXgn/ksOrf8AX/f/APoZ r1U/eP1ryrwT
/wAlh1b/AK/7/wD9DNeqn7x+tfM51/Hj/hR1YP4ZerEqt4V/5jP/AGEn/wDQ EqzVbwr/AMxn
/sJP/wCgJXlQ3OtnQVXuLG3u57SaePfJaSmaA7iNjlGjJ46/K7Dn19cVYorU kx7vwto19pxs
Liz32pluJtnmuPnnEolOQc/MJ5fpu4xgYkl8PaZNYfYjBIkQuJLpWinkjkSW R2d3SRWDqSXf
O0jhivQ4rUooAxz4X0lvDk2gGGc6bNv81Ddy75N7l33Sbt53MzZy3OSDwcUN 4X0l/M3Qzt5s
SRSZu5TvKbdsh+bmYbExN/rBtX5uBWxRQBh/8IhoZt5YXtJJRNbz20ry3Ery SxzBBIHdmLMS
I4wGJJAQAEAYrUt7G3tJ7uaCPZJdyiac7id7hFjB56fKijj09c1YooAKKKKA CiiigAooooAK
KKKAGS/cH+8v8xSGFWuEnJk3ojIAJGC4YgnK5wT8owSMjnGMnKy/cH+8v8xT 6AKcul2k9hBZ
TJJLBA8Lp5krs26J1dCWJ3MQyKcknOOc5NV9X8PaZrhjbUIJHeNCkbxzyRMg 8yOThkYEHfDG
cjkbfc51KKAKem6ZBpVu0FvJdujOXJuruW4bOAOGkZiBx0zjr6mozomnHTJt ONv/AKLLK87K
HYESPIZS6tnKtvJYEEFTgjGBjQooAy4/D2mR6XNpwgkeCZ/MkeWeR5XcY2uZ WYvvXau1t2V2
LgjaMWNN0u00m3aG0SQB3LyPLK8skjYAy7uSzHAABJOAoHQAVcooArrZRL5e Hn/dyvMuZ3OW
bdkHJ+ZfnOFOVGFwBtXFiiigAooooAKZF/qU/wB0U+mRf6lP90UuoD6KKKYB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAMl/wBS/wDumn0yX/Uv/umn0AFFFFAB RRRQAUUUUAFF
FFAHyl8VP+R51P8A6+W/pRR8VP8AkedT/wCvlv6UV9tT/hQ/wx/JHmR6+r/M 9C8E/wDJYdW/
6/7/AP8AQzXW+OrCyvbCxfULvT7a3tr3zS2pWn2i2JMUiASDcoUfPkMzAbgo 6kCuS8E/8lh1
b/r/AL//ANDNeqn7x+tfNZ1/Hj/hR1YP4ZerMXwo8T+HLb7PZ2trCrSpGtpE I4ZFEjASxqOA
kgHmDk8OOW6nQ8K/8xn/ALCT/wDoCVZqt4V/5jP/AGEn/wDQEryYbnWzoKKK K1JCiiigAooo
oAKKKKACiiigAooooAKKKKACiiigBkv3B/vL/MU+mS/cH+8v8xT6ACiiigAo oooAKKKKACii
igAooooAKZF/qU/3RT6ZF/qU/wB0UuoD6KKKYBRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAMl/1L/7pp9Ml/wBS/wDumn0AFFFFABRRRQAUUUUAFFFFAHyl8VP+ R51P/r5f+lFH
xU/5HnU/+vlv6UV9tT/hQ/wx/JHmR6+r/M9C8E/8lh1b/r/v/wD0M16qfvH6 15V4J/5LDq3/
AF/3/wD6Ga9VP3j9a+Zzr+PH/Cjqwfwy9WJVbwr/AMxn/sJP/wCgJVmq3hX/ AJjP/YSf/wBA
SvKhudbOgooorUkKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGS/cH+8v 8xT6ZL9wf7y/
zFPoAKKKKACiiigAooooAKKKKACiiigApkX+pT/dFPpkX+pT/dFLqA+iiimA UUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFADJf9S/+6afTJf9S/8Aumn0AFFFFABR RRQAUUUUAFFF
FAHyl8VP+R51P/r5b+lFHxU/5HnU/wDr5b+lFfbU/wCFD/DH8keZHr6v8z0D wbGJfi7rMbFg
r32oKSrFTyx6Ecg+4rv59C0G1glnuITFDEpeSSS9lVUUDJJJfAAHeuC8E/8A JYdW/wCv+/8A
/QzXY+M7a4uINMeOW9itoL9Zrp7OATyKgjk2ERlH34lMR+42CA3G3cPms6/j x/wo6sH8MvVl
yDQtBubeO4t4TLDKoeOSO9lZXUjIIIfBBHerXhOCGOPVo4kaONL9lVRIxwBH H3JJNRaDNez6
NDJfh/OLSBWkTY7xB2EbuuBtdkCMwwuCSNq9BZ8K/wDMZ/7CT/8AoCV5Mdzr Zu+Uvq//AH2f
8ay9S8QeH9GuFt9U1ywsZ2QOsd1erExXJGQGYHGQRn2Na9cnc6PqF7461G4g 1TUtMg/syzQS
WsUJWZhLckgmWNxlQynC4++M9RWliTqfKX1f/vs/40eUvq//AH2f8a821SHx DcjUYNOOsjXp
H1BJSZJktxbmOcWvlsxECvn7JzGQ4O7d/wAtKsXlxqHiPxnbLYyeILXR2e2j nYW9xaDAivzI
P3iqQCTACwwQSmGDBSCwHatqGnq9qn2oMbq4e1h2OWDSors6ZGQCBFJnOMFS OvFSX11Y6ZZy
Xl/eRWlrHjfNPP5aLkgDLE4GSQPxrz6Hw951/aWU0GspKPEd3dXbRz3UcaRS JevE8cisEUEO
m7yyOWCvycVqamL9vhR4htriC+nujFqFnbx+TJLNInmSxQcAFnynl/Oc5HzE nk0WA62zurHU
IjLZXkVzGNuXhn3gblDryD3VlYeoYHoaseUvq/8A32f8a86v7a+8/wATXmmr qtvfajLbXEL+
Vc+X9i2WqTN5YKgTAJMNo2z4Hy4+U1nvaeIhp0ksF5rlyLXT9RubBlhurfM6 i2MKtHJI8knz
+dhZyd2WAUoFyWA9V8pfV/8Avs/40eUvq/8A32f8axvDsNzaS6xZSm7a0tr0 JZNdSPIxiMEL
nEjks48xpeSTjleigDcosAzyl9X/AO+z/jR5S+r/APfZ/wAafRRYBnlL6v8A 99n/ABo8pfV/
++z/AI0+iiwDPKX1f/vs/wCNHlL6v/32f8afRRYCKSNQo5b7w/iPqKhS5tZN RmsFlc3UMUc0
iZb5UcuFOenJjf8AL3FWJfuD/eX+YrjtTg1KHx1daikV22lx2VibhbZWEkuy W6PyEcuELKzx
LhmBHJ/1cpYDsfKX1f8A77P+NV3ubWPUYbBpXF1NFJNGmW+ZEKBjnpwZE/P2 NefWUmuRWGY4
dZlu20xk1v7Sbnal2zwqZIASNwRTdPttSA21QCCYzWfp3/CQC4nkMOpXsFvb 3trb3MtpdwMk
MhsCzgSOZ2Kk3DBd+9/LKoR8oUsB6z5S+r/99n/Gjyl9X/77P+Nct4BfUDpu oxX013NFDelL
SW6tbiBmiMUbHC3DNKR5jSDLM3QgYAAHWUWAZ5S+r/8AfZ/xo8pfV/8Avs/4 0+iiwDPKX1f/
AL7P+NHlL6v/AN9n/Gn0UWAZ5S+r/wDfZ/xo8pfV/wDvs/40+iiwDPKX1f8A 77P+NVZLq1tW
sYZ5WSS8k8mBcsd7iNpCOOnyox5wOPpV2uQ8ZwRzReHHuItSe0h1HfO2nLOZ UX7LOoP7j94B
uZQSPXB4NFtQOs8pfV/++z/jR5S+r/8AfZ/xryq8h8Vyvb/6dqtrCIn/ALL2 2dzcSM32iby/
M2Soobyfsv8Ax95UkndgiXJ4ouPEx1XU5NO/tWG4livYTa29teOqotrN5MiT bzAGZ0hYCNFc
M+0kkPuLAeq+Uvq//fZ/xo8pfV/++z/jUVja/YrOO3NxPcMuS0077ndiSST2 GSTwAFHQAAAC
xRYBnlL6v/32f8aPKX1f/vs/40+iiwDPKX1f/vs/40eUvq//AH2f8afRRYBn lL6v/wB9n/Gj
yl9X/wC+z/jT6KLAM8pfV/8Avs/40eUvq/8A32f8afRRYBnlL6v/AN9n/Gjy l9X/AO+z/jT6
KLAM8pfV/wDvs/40eUvq/wD32f8AGn0UWAZ5S+r/APfZ/wAaPKX1f/vs/wCN PoosBFLGoic5
b7p/iNO8pfV/++z/AI0S/wCpf/dNPosAzyl9X/77P+NHlL6v/wB9n/Gn0UWA Z5S+r/8AfZ/x
o8pfV/8Avs/40+iiwDPKX1f/AL7P+NHlL6v/AN9n/Gn0UWAZ5S+r/wDfZ/xo 8pfV/wDvs/40
+iiwHyl8VP8AkedT/wCvlv6UUfFT/kedT/6+W/pRX29P+FD/AAx/JHmR6+r/ ADPQPBoc/F3W
REyrIb7UNrMu4A7jgkZGR7ZFehnT9Xzzr0f/AILx/wDF1594J/5LDq3/AF/3 /wD6Ga9VP3j9
a+azr+PH/Cjqwfwy9WZX9n6v/wBB6P8A8F4/+LqfwnHKkerKZ1lYX7BpDFs3 Hy48nG44/P8A
wq7Vbwr/AMxn/sJP/wCgJXkw3Otm7iT++n/fJ/xoxJ/fT/vk/wCNPorSxIzE n99P++T/AI0Y
k/vp/wB8n/Gn0UWAZiT++n/fJ/xoxJ/fT/vk/wCNPoosAzEn99P++T/jRiT+ +n/fJ/xp9FFg
GYk/vp/3yf8AGjEn99P++T/jT6KLAMxJ/fT/AL5P+NGJP76f98n/ABp9FFgG Yk/vp/3yf8aM
Sf30/wC+T/jT6KLAMxJ/fT/vk/40Yk/vp/3yf8afRRYCKQSbRll+8P4fce9O xJ/fT/vk/wCN
Ev3B/vL/ADFPosAzEn99P++T/jRiT++n/fJ/xp9FFgGYk/vp/wB8n/GjEn99 P++T/jT6KLAM
xJ/fT/vk/wCNGJP76f8AfJ/xp9FFgGYk/vp/3yf8aMSf30/75P8AjT6KLAMx J/fT/vk/40Yk
/vp/3yf8afRRYBmJP76f98n/ABpsQk8pMMuNo/h/+vUtMi/1Kf7ootqAYk/v p/3yf8aMSf30
/wC+T/jT6KLAMxJ/fT/vk/40Yk/vp/3yf8afRRYBmJP76f8AfJ/xoxJ/fT/v k/40+iiwDMSf
30/75P8AjRiT++n/AHyf8afRRYBmJP76f98n/GjEn99P++T/AI0+iiwDMSf3 0/75P+NGJP76
f98n/Gn0UWAZiT++n/fJ/wAaMSf30/75P+NPoosAzEn99P8Avk/40Yk/vp/3 yf8AGn0UWAZi
T++n/fJ/xoxJ/fT/AL5P+NPoosBFKJPKfLLjaf4f/r07En99P++T/jRL/qX/ AN00+iwDMSf3
0/75P+NGJP76f98n/Gn0UWAZiT++n/fJ/wAaMSf30/75P+NPoosAzEn99P8A vk/40Yk/vp/3
yf8AGn0UWAZiT++n/fJ/xoxJ/fT/AL5P+NPoosB8pfFT/kedT/6+W/pRR8VP +R51P/r5b+lF
fb0/4UP8MfyR5kevq/zPQPBrFPi7rLrG0jLfagQi4y3zHgZIGfqRXoZvtYJz /wAI/J/4Fw//
ABVefeCf+Sxat/1/3/8A6Ga9VP3j9a+azr+PH/Cjqwfwy9WZX23WP+hfk/8A AuH/AOKqfwm0
3l6sZbdo5DfsWQOrbSY4+Mg4q7Vbwr/zGf8AsJP/AOgJXkw3Otm7vb/nk/5j /Gje3/PJ/wAx
/jT6K0JGb2/55P8AmP8AGje3/PJ/zH+NPooAZvb/AJ5P+Y/xo3t/zyf8x/jT 6KAGb2/55P8A
mP8AGje3/PJ/zH+NPooAZvb/AJ5P+Y/xo3t/zyf8x/jT6KAGb2/55P8AmP8A Gje3/PJ/zH+N
PooAZvb/AJ5P+Y/xo3t/zyf8x/jT6KAGb2/55P8AmP8AGje3/PJ/zH+NPooA ikdto/dsPmHp
6j3p29v+eT/mP8aJfuD/AHl/mKfQAze3/PJ/zH+NG9v+eT/mP8afRQAze3/P J/zH+NG9v+eT
/mP8afRQAze3/PJ/zH+NG9v+eT/mP8afRQAze3/PJ/zH+NG9v+eT/mP8afRQ Aze3/PJ/zH+N
G9v+eT/mP8afRQAze3/PJ/zH+NNidhEn7tj8o9P8alpkX+pT/dFHUA3t/wA8 n/Mf40b2/wCe
T/mP8afRQAze3/PJ/wAx/jRvb/nk/wCY/wAafRQAze3/ADyf8x/jRvb/AJ5P +Y/xp9FADN7f
88n/ADH+NG9v+eT/AJj/ABp9FADN7f8APJ/zH+NG9v8Ank/5j/Gn0UAM3t/z yf8AMf40b2/5
5P8AmP8AGn0UAM3t/wA8n/Mf40b2/wCeT/mP8afRQAze3/PJ/wAx/jRvb/nk /wCY/wAafRQA
ze3/ADyf8x/jRvb/AJ5P+Y/xp9FAEUrsYn/dsPlPp/jTt7f88n/Mf40S/wCp f/dNPoAZvb/n
k/5j/Gje3/PJ/wAx/jT6KAGb2/55P+Y/xo3t/wA8n/Mf40+igBm9v+eT/mP8 aN7f88n/ADH+
NPooAZvb/nk/5j/Gje3/ADyf8x/jT6KAPlL4qf8AI86n/wBfL/0oo+Kn/I86 n/18t/Sivt6f
8KH+GP5I8yPX1f5noHg2RIfi7rMsrqkaX2oMzscBQGOST2Fd+fFOh5P/ABMo f1rgvBP/ACWH
Vv8Ar/v/AP0M16wZpcn9435181nX8eP+FHVg/hl6sxP+Ep0P/oJQ/rVjwhdQ Tw6rNFMjRyag
7KwPUbErT8+X/no351U8MO8jayzsWb+0XGSc8COMCvJhudbNvzY/+eif99Cj zY/+eif99Cn0
VoSM82P/AJ6J/wB9CjzY/wDnon/fQp9FADPNj/56J/30KPNj/wCeif8AfQp9 FADPNj/56J/3
0KPNj/56J/30KfRQAzzY/wDnon/fQo82P/non/fQp9FADPNj/wCeif8AfQo8 2P8A56J/30Kf
RQAzzY/+eif99CjzY/8Anon/AH0KfRQAzzY/+eif99CjzY/+eif99Cn0UARS SxlRh1+8O/uK
d5sf/PRP++hRL9wf7y/zFPoAZ5sf/PRP++hR5sf/AD0T/voU+igBnmx/89E/ 76FHmx/89E/7
6FPooAZ5sf8Az0T/AL6FHmx/89E/76FPooAZ5sf/AD0T/voUebH/AM9E/wC+ hT6KAGebH/z0
T/voUebH/wA9E/76FPooAZ5sf/PRP++hTYpYxEgLqDtHepaZF/qU/wB0UdQD zY/+eif99Cjz
Y/8Anon/AH0KfRQAzzY/+eif99CjzY/+eif99Cn0UAM82P8A56J/30KPNj/5 6J/30KfRQAzz
Y/8Anon/AH0KPNj/AOeif99Cn0UAM82P/non/fQo82P/AJ6J/wB9Cn0UAM82 P/non/fQo82P
/non/fQp9FADPNj/AOeif99CjzY/+eif99Cn0UAM82P/AJ6J/wB9CjzY/wDn on/fQp9FADPN
j/56J/30KPNj/wCeif8AfQp9FAEUssZicB1J2nvTvNj/AOeif99CiX/Uv/um n0AM82P/AJ6J
/wB9CjzY/wDnon/fQp9FADPNj/56J/30KPNj/wCeif8AfQp9FADPNj/56J/3 0KPNj/56J/30
KfRQAzzY/wDnon/fQo82P/non/fQp9FAHyl8VP8AkedT/wCvlv6UUfFT/ked T/6+W/pRX29P
+FD/AAx/JHmR6+r/ADPQvBP/ACWHVv8Ar/v/AP0M16qfvH615R4NjEvxd1mN iwV77UFJVip5
Y9COQfcV6GfDejg4+ySf+Bc3/wAXXzWdfx4/4UdWD+GXqzTqt4V/5jP/AGEn /wDQEqp/wjej
/wDPpJ/4Fzf/ABdT+E4IY49WjiRo40v2VVEjHAEcfckk15MNzrZ0lFM8pfV/ ++z/AI0eUvq/
/fZ/xrQkfRTPKX1f/vs/40eUvq//AH2f8aAH0Uzyl9X/AO+z/jR5S+r/APfZ /wAaAH0Uzyl9
X/77P+NHlL6v/wB9n/GgB9FM8pfV/wDvs/40eUvq/wD32f8AGgB9FM8pfV/+ +z/jR5S+r/8A
fZ/xoAfRTPKX1f8A77P+NHlL6v8A99n/ABoAfRTPKX1f/vs/40eUvq//AH2f 8aACX7g/3l/m
KfUUkahRy33h/EfUU7yl9X/77P8AjQA+imeUvq//AH2f8aPKX1f/AL7P+NAD 6KZ5S+r/APfZ
/wAaPKX1f/vs/wCNAD6KZ5S+r/8AfZ/xo8pfV/8Avs/40APopnlL6v8A99n/ ABo8pfV/++z/
AI0APopnlL6v/wB9n/Gjyl9X/wC+z/jQA+mRf6lP90UeUvq//fZ/xpsUamJD lvuj+I0dQJaK
Z5S+r/8AfZ/xo8pfV/8Avs/40APopnlL6v8A99n/ABo8pfV/++z/AI0APopn lL6v/wB9n/Gj
yl9X/wC+z/jQA+imeUvq/wD32f8AGjyl9X/77P8AjQA+imeUvq//AH2f8aPK X1f/AL7P+NAD
6KZ5S+r/APfZ/wAaPKX1f/vs/wCNAD6KZ5S+r/8AfZ/xo8pfV/8Avs/40APo pnlL6v8A99n/
ABo8pfV/++z/AI0APopnlL6v/wB9n/Gjyl9X/wC+z/jQAS/6l/8AdNPqKWNR E5y33T/Ead5S
+r/99n/GgB9FM8pfV/8Avs/40eUvq/8A32f8aAH0Uzyl9X/77P8AjR5S+r/9 9n/GgB9FM8pf
V/8Avs/40eUvq/8A32f8aAH0Uzyl9X/77P8AjR5S+r/99n/GgD5V+Kn/ACPO p/8AXy39KKPi
p/yPOp/9fLf0or7en/Ch/hj+SPMj19X+Z01j4os/C3xJ1zULlfN8vUbxfKVg Cd0hHeuoPxo0
Un/kHXH/AH/X/CvF/Gv/ACPniH/sJ3P/AKNasKuephMPieWdWN3ZdSo88G1G XU+hD8aNF/6B
1x/3/T/Co9P+Mmh6d9p8nTrpvtE5nffOhwxAHGB0+UV8/wBFQsrwa+x+LH7S t/N+B9Gf8L20
n/oGTf8Af5f8KP8Ahe2k/wDQMm/7/L/hXznRT/s3Cfyfiw9pV/m/BH0Z/wAL 20n/AKBk3/f5
f8KP+F7aT/0DJv8Av8v+FfOdFH9m4T+T8WHtKv8AN+CPoz/he2k/9Ayb/v8A L/hR/wAL20n/
AKBk3/f5f8K+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf9/l/wAKP+F7aT/0 DJv+/wAv+FfO
dFH9m4T+T8WHtKv834I+jP8Ahe2k/wDQMm/7/L/hR/wvbSf+gZN/3+X/AAr5 zoo/s3Cfyfiw
9pV/m/BH0Z/wvbSf+gZN/wB/l/wo/wCF7aT/ANAyb/v8v+FfOdFH9m4T+T8W HtKv834I+jP+
F7aT/wBAyb/v8v8AhR/wvbSf+gZN/wB/l/wr5zoo/s3Cfyfiw9pV/m/BH0Z/ wvXSf+gZN/3+
Wj/he2k/9Ayb/v8AL/hXznRR/ZuE/k/Fh7Sr/N+B9Ft8dNIYYOmT9Qf9cv8A hS/8L20n/oGT
f9/l/wAK+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf8Af5f8KP8Aheuk/wDQ Mm/7/LXznRR/
ZuE/k/Fh7Sr/ADfgj6M/4XtpP/QMm/7/AC/4Uf8AC9tJ/wCgZN/3+X/CvnOi j+zcJ/J+LD2l
X+b8EfRn/C9dJ/6Bk3/f5aP+F7aT/wBAyb/v8v8AhXznRR/ZuE/k/Fh7Sr/N +CPoz/he2k/9
Ayb/AL/L/hR/wvbSf+gZN/3+X/CvnOij+zcJ/J+LD2lX+b8EfRn/AAvbSf8A oGTf9/l/wo/4
XtpP/QMm/wC/y/4V850Uf2bhP5PxYe0q/wA34H0Z/wAL20n/AKBk3/f5f8KR fjppCqFGmTYA
x/rl/wAK+dKKP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf8Af5f8KP8Ahe2k/wDQ Mm/7/L/hXznR
R/ZuE/k/Fh7Sr/N+CPoz/he2k/8AQMm/7/L/AIUf8L20n/oGTf8Af5f8K+c6 KP7Nwn8n4sPa
Vf5vwR9Gf8L20n/oGTf9/l/wo/4XtpP/AEDJv+/y/wCFfOdFH9m4T+T8WHtK v834H0Z/wvbS
f+gZN/3+X/Cj/he2k/8AQMm/7/L/AIV850Uf2bhP5PxYe0q/zfgfRn/C9tJ/ 6Bk3/f5f8KP+
F7aT/wBAyb/v8v8AhXznRR/ZuE/k/Fh7Sr/N+CPoz/he2k/9Ayb/AL/L/hR/ wvbSf+gZN/3+
X/CvnOij+zcJ/J+LD2lX+b8D6M/4XtpP/QMm/wC/y/4Uf8L20n/oGTf9/l/w r5zoo/s3Cfyf
iw9pV/m/BH0Z/wAL20n/AKBk3/f5f8KP+F7aT/0DJv8Av8v+FfOdFH9m4T+T 8WHtKv8AN+CP
oz/he2k/9Ayb/v8AL/hR/wAL20n/AKBk3/f5f8K+c6KP7Nwn8n4sPaVf5vwP otvjppDKVOmT
4Ix/rl/wpf8Ahe2k/wDQMm/7/L/hXznRR/ZuE/k/Fh7Sr/N+CPoz/he2k/8A QMm/7/L/AIUf
8L20n/oGTf8Af5f8K+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf9/l/wo/4X tpP/AEDJv+/y
/wCFfOdFH9m4T+T8WHtKv834H0Z/wvbSf+gZN/3+X/Cj/he2k/8AQMm/7/L/ AIV850Uf2bhP
5PxYe0q/zfgj6M/4XtpP/QMm/wC/y/4Uf8L20n/oGTf9/l/wr5zoo/s3Cfyf iw9pV/m/A6Xx
vrEGveIbnUrdSqTyGQKxBK5xxxRXNUV26JJLZJL7iYqyP//Z
--------------080806070908060205050505--
|
|
|
Re: Are multiple lines in Grid possible? [message #35870 is a reply to message #35835] |
Thu, 31 May 2007 14:33 |
Chris Gross Messages: 253 Registered: July 2009 |
Senior Member |
|
|
Hi Oliver,
The screenshot on the Grid page is from the examples plugin. You can
download that to get a nice little UI that will allow you to manipulate
the styles and options on the Grid.
At this point, you should open a bug against Grid and start attaching
patches so, like Tom said, others can take a look and contribute. I
would like to give it a quick look through as well.
Regards,
-Chris
Oliver wrote:
> Chris,
>
> thanks for your detailed answer!
>
> I have looked into this a little and have made a quick
> first attempt (see screenshot).
>
> It seems to work so far. However, I guess that
> issues will arise when testing it with more advanced features
> of Grid (e.g. checkboxes). Also, I have not yet examined
> dynamic changes of heights of individual rows.
>
> What I have changed: The item height specified in Grid
> is now called _default_ item height (e.g. setDefaultItemHeight()
> instead of setItemHeight()). Each GridItem now has a height
> which may be -1 (the default) to indicate that the parent
> Grid's default item height should be used for this GridItem.
> This way, nothing changes from a client perspective when
> all items should have the same height. On the other hand,
> specifying an individual height for an item is easy:
>
> item3.setHeight(50);
>
> Currently, the height of individual items is only set
> programmatically through GridItem.setHeight(int), i.e.
> the preferred height from the cell renderer is currently
> not used for that.
>
> If you could provide me with an example that uses most
> of Grid's features (like the one shown in the screenshot
> on the Grid home page), this would help me a lot in testing
> my changes ...
>
> Cheers,
> Oliver
>
>
>
> Chris Gross schrieb:
>> Unfortunately I don't have any existing code for this feature. I've
>> just been thinking about it but not actually coding it. The code
>> changes necessary for this feature wouldn't be particularly easy. I
>> suspect there will be a variety of places in the Grid code where I
>> multiply the row height by a number of rows to determine some
>> dimensions. Like:
>>
>> getRowCount() * getItemHeight() = total height of all rows
>>
>> Those places would have to be changed to iterate through all the rows
>> because each row would now potentially have a different height. That
>> could also be a performance concern. Other parts of the code will
>> likely rely on getItem(Point) to determine what row is where so that
>> may help this change somewhat. But I still think its not an easy
>> piece for someone to code as a patch.
>>
>> Regards,
>> -Chris
>
>
> ------------------------------------------------------------ ------------
>
|
|
| | | | |
Re: Are multiple lines in Grid possible? [message #582761 is a reply to message #35700] |
Wed, 30 May 2007 16:06 |
Mark-Oliver Reiser Messages: 12 Registered: July 2009 |
Junior Member |
|
|
Many thanks for your answer! However, I would have preferred
a positive response ... :-)
What is your estimate of the effort for implementing this?
Possibly I could make some time for doing this if it's not
too intricate (not sure yet).
Can you give some brief indications where I would have
to start / what the major steps would be ... ?
Greetings,
Oliver
Chris Gross schrieb:
> Hi Oliver,
>
> If you write your own cell renderer you can put multiple lines in each
> row - but you can't vary the row height for different rows. That
> support would need to be built into the Grid. I have contemplated that
> feature and will likely add it to Grid sometime - but not likely very soon.
>
> Regards,
> -Chris
>
> Oliver wrote:
>> Hi Chris,
>>
>> when creating a custom cell render, can the rows have different heights
>> then ? For example, row no. 5 has a height of 3 lines while the others
>> still only have a height of 1 line ...
>>
>> Thanks a lot in advance,
>> Oliver
>>
>>
>>
>> Chris Gross schrieb:
>>> Hi Lionel,
>>>
>>> This isn't possible with the default cell renderers. If you create
>>> your own cell renderer it is possible.
>>>
>>> Regards,
>>> -Chris
>>>
>>> Lionel van den Berg wrote:
>>>> Just wondering if it is possible to have more than one line in a
>>>> Grid cell?
>>>>
>>>> E.g. this is one row
>>>>
>>>> entry1 | entry2 | entry3
>>>> | | over multiple
>>>> | | lines
>>>> row2 | row2 | row2
>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #582776 is a reply to message #35734] |
Wed, 30 May 2007 16:16 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
Hi,
Would it make sense to open a bug report and attach the code from Chris
as a starting point so others could start from there and maybe implement
this for Chris?
Tom
Oliver schrieb:
> Many thanks for your answer! However, I would have preferred
> a positive response ... :-)
>
> What is your estimate of the effort for implementing this?
> Possibly I could make some time for doing this if it's not
> too intricate (not sure yet).
> Can you give some brief indications where I would have
> to start / what the major steps would be ... ?
>
> Greetings,
> Oliver
>
>
> Chris Gross schrieb:
>> Hi Oliver,
>>
>> If you write your own cell renderer you can put multiple lines in each
>> row - but you can't vary the row height for different rows. That
>> support would need to be built into the Grid. I have contemplated
>> that feature and will likely add it to Grid sometime - but not likely
>> very soon.
>>
>> Regards,
>> -Chris
>>
>> Oliver wrote:
>>> Hi Chris,
>>>
>>> when creating a custom cell render, can the rows have different heights
>>> then ? For example, row no. 5 has a height of 3 lines while the others
>>> still only have a height of 1 line ...
>>>
>>> Thanks a lot in advance,
>>> Oliver
>>>
>>>
>>>
>>> Chris Gross schrieb:
>>>> Hi Lionel,
>>>>
>>>> This isn't possible with the default cell renderers. If you create
>>>> your own cell renderer it is possible.
>>>>
>>>> Regards,
>>>> -Chris
>>>>
>>>> Lionel van den Berg wrote:
>>>>> Just wondering if it is possible to have more than one line in a
>>>>> Grid cell?
>>>>>
>>>>> E.g. this is one row
>>>>>
>>>>> entry1 | entry2 | entry3
>>>>> | | over multiple
>>>>> | | lines
>>>>> row2 | row2 | row2
>>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #582788 is a reply to message #35767] |
Wed, 30 May 2007 21:44 |
Chris Gross Messages: 471 Registered: July 2009 |
Senior Member |
|
|
Unfortunately I don't have any existing code for this feature. I've
just been thinking about it but not actually coding it. The code
changes necessary for this feature wouldn't be particularly easy. I
suspect there will be a variety of places in the Grid code where I
multiply the row height by a number of rows to determine some
dimensions. Like:
getRowCount() * getItemHeight() = total height of all rows
Those places would have to be changed to iterate through all the rows
because each row would now potentially have a different height. That
could also be a performance concern. Other parts of the code will
likely rely on getItem(Point) to determine what row is where so that may
help this change somewhat. But I still think its not an easy piece for
someone to code as a patch.
Regards,
-Chris
Tom Schindl wrote:
> Hi,
>
> Would it make sense to open a bug report and attach the code from Chris
> as a starting point so others could start from there and maybe implement
> this for Chris?
>
> Tom
>
> Oliver schrieb:
>> Many thanks for your answer! However, I would have preferred
>> a positive response ... :-)
>>
>> What is your estimate of the effort for implementing this?
>> Possibly I could make some time for doing this if it's not
>> too intricate (not sure yet).
>> Can you give some brief indications where I would have
>> to start / what the major steps would be ... ?
>>
>> Greetings,
>> Oliver
>>
>>
>> Chris Gross schrieb:
>>> Hi Oliver,
>>>
>>> If you write your own cell renderer you can put multiple lines in
>>> each row - but you can't vary the row height for different rows.
>>> That support would need to be built into the Grid. I have
>>> contemplated that feature and will likely add it to Grid sometime -
>>> but not likely very soon.
>>>
>>> Regards,
>>> -Chris
>>>
>>> Oliver wrote:
>>>> Hi Chris,
>>>>
>>>> when creating a custom cell render, can the rows have different heights
>>>> then ? For example, row no. 5 has a height of 3 lines while the others
>>>> still only have a height of 1 line ...
>>>>
>>>> Thanks a lot in advance,
>>>> Oliver
>>>>
>>>>
>>>>
>>>> Chris Gross schrieb:
>>>>> Hi Lionel,
>>>>>
>>>>> This isn't possible with the default cell renderers. If you create
>>>>> your own cell renderer it is possible.
>>>>>
>>>>> Regards,
>>>>> -Chris
>>>>>
>>>>> Lionel van den Berg wrote:
>>>>>> Just wondering if it is possible to have more than one line in a
>>>>>> Grid cell?
>>>>>>
>>>>>> E.g. this is one row
>>>>>>
>>>>>> entry1 | entry2 | entry3
>>>>>> | | over multiple
>>>>>> | | lines
>>>>>> row2 | row2 | row2
>>>>>>
|
|
|
Re: Are multiple lines in Grid possible? [message #582798 is a reply to message #35801] |
Thu, 31 May 2007 12:01 |
Mark-Oliver Reiser Messages: 12 Registered: July 2009 |
Junior Member |
|
|
This is a multi-part message in MIME format.
--------------080806070908060205050505
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Chris,
thanks for your detailed answer!
I have looked into this a little and have made a quick
first attempt (see screenshot).
It seems to work so far. However, I guess that
issues will arise when testing it with more advanced features
of Grid (e.g. checkboxes). Also, I have not yet examined
dynamic changes of heights of individual rows.
What I have changed: The item height specified in Grid
is now called _default_ item height (e.g. setDefaultItemHeight()
instead of setItemHeight()). Each GridItem now has a height
which may be -1 (the default) to indicate that the parent
Grid's default item height should be used for this GridItem.
This way, nothing changes from a client perspective when
all items should have the same height. On the other hand,
specifying an individual height for an item is easy:
item3.setHeight(50);
Currently, the height of individual items is only set
programmatically through GridItem.setHeight(int), i.e.
the preferred height from the cell renderer is currently
not used for that.
If you could provide me with an example that uses most
of Grid's features (like the one shown in the screenshot
on the Grid home page), this would help me a lot in testing
my changes ...
Cheers,
Oliver
Chris Gross schrieb:
> Unfortunately I don't have any existing code for this feature. I've
> just been thinking about it but not actually coding it. The code
> changes necessary for this feature wouldn't be particularly easy. I
> suspect there will be a variety of places in the Grid code where I
> multiply the row height by a number of rows to determine some
> dimensions. Like:
>
> getRowCount() * getItemHeight() = total height of all rows
>
> Those places would have to be changed to iterate through all the rows
> because each row would now potentially have a different height. That
> could also be a performance concern. Other parts of the code will
> likely rely on getItem(Point) to determine what row is where so that may
> help this change somewhat. But I still think its not an easy piece for
> someone to code as a patch.
>
> Regards,
> -Chris
--------------080806070908060205050505
Content-Type: image/jpeg;
name="gridShot.JPG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="gridShot.JPG"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CAE5AfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwB3xA8Z3eseJL/TI5pE02zl Nv8AZ/uiRlID
M4Bw3zLxnoAOAc1zMVxEoybS3P1jFWZbJNQ+KGoWUjMsdzrksTMvUBpyDjP1 r1b/AIVFpX/Q
Qu/++U/wr7P63h8BShTkrXV9D52rhq2IqylDWz7nk/2+MDH2S2/79CmHUov+ fS2/79Cu58ce
AtP8OeGzfW08skvnonzgdD16fSvM2Fd2ExNLFQ56a02OOrh50Zcs9zS/tKL/ AJ87b/v0KP7S
i/587b/v0KzKK6uVGfKaf9pRf8+dt/36FH9pRf8APnbf9+hWZRRyoOU0/wC0 ov8Anztv+/Qo
/tKL/nztv+/QrMoo5UHKaf8AaUX/AD523/foUf2lF/z523/foVmUUcqDlNP+ 0ov+fO2/79Cj
+0ov+fO2/wC/QrMoo5UHKaf9pRf8+dt/36FH9pRf8+dt/wB+hWZRRyoOU0/7 Si/587b/AL9C
j+0ov+fO2/79CsyijlQcpp/2lF/z523/AH6FH9pRf8+dt/36FZlFHKg5TT/t KL/nztv+/Qo/
tKL/AJ87b/v0KzKKOVBymn/acX/Pnbf9+hR/acX/AD523/foVmYoxRyoOU0/ 7Ti/587b/v0K
P7Ti/wCfO2/79CszFGKOVBymn/acX/Pnbf8AfoUf2nF/z523/foVmYoxRyoO U0/7Ti/587b/
AL9Cj+04v+fO2/79CszFGKOVBymn/acX/Pnbf9+hR/acX/Pnbf8AfoVmYoxR yoOU0/7Ti/58
7b/v0KP7Ti/587b/AL9CszFGKOVBymn/AGnF/wA+dt/36FH9pxf8+dt/36FZ mKMUcqDlNP8A
tOL/AJ87b/v0KP7Ti/587b/v0KzMUYo5UHKaf9pxf8+dt/36FH9pxf8APnbf 9+hWZijFHKg5
TS/tOL/n0tf+/Qo/tKL/AJ9LX/v0KzMe1GPajlQ+U0/7Si/59LX/AL9Cj+0o v+fS1/79CszH
tRj2o5UHKaf9pRf8+lr/AN+hR/aUX/Ppa/8AfoVmY9qMe1HKg5TT/tKL/n0t f+/Qo/tKL/n0
tf8Av0KzMe1GPajlQcpp/wBpRf8APpa/9+hR/aUX/Ppa/wDfoVmY9qMe1HKg 5TT/ALSi/wCf
S1/79Cj+0ov+fS1/79CszHtRj2o5UHKaf9pRf8+lr/36FWbKSXUbpba00+2l lYE4EagADqST
wB7msPHtXUeCpPJuNVkHGLJf/SiGsqz5IOSWpdKmpSSbJzompKcGz0cfW9tv /jlNOkX4622i
j631r/8AHK0r++ZmLADn2rCubt5QysBjHpXPTnWkru33P/M6ZYelHq/v/wCA OtrW9u76azi0
q3E8P+tEiLGI+3zMxAH4mrZ0TUR1tNHH1vbb/wCOVs6fP9mS8kHePSgc9/8A Q3roZLbwnHDD
/aOq3cFy8MckiIhIBZQ3GEPr61yzx1SLVo9tk30T6PzNIYKDWr79bdTg/wCy NQzgWekOx6Il
3bMzH0AD5J9hzVSws7/VTN9k0u1IiO2RpRHEqn0y5Azx061ueMrbRYtNtrnR L24uopWlSRpR
jayBDgfKp/jrZhuPs8urAYwdcvxj/v1WONzOph8K66ir+aa621V/8jowWWU8 RiVR5n9/lc5I
+H9YHXT9I/8AAy2/+OVWudE1aGB5P7O05wilisFzBI5A64VXLH14FejXOgz6 gbWfRHFza3B2
M0mA0Dgch/Qd8/hzkZxJksIvGOlW9hdNdRR3lurzFQFd/MG7bj+H/PI5Pgf6 04uMlzQja/n+
Gp78eGcJKL5Zyuk36W76GH4M+LP/AAjMkttrBu7rTDGPJjjxI8LjAAXcwwm0 HjPBAwBk0V5X
qQwBx3FFfQYzAUJ1nKUdfLQ8jD1JRppJnokl3Hp/xM1C+lV2jttblmdUALEL OSQM4GeK9SHx
f0Q9NM1f/v3F/wDHK8n1DT9Q1Lxvr0GnWr3Mx1K6IRCMkCVs8fiKuJ4T8WKO dAvP++a1xWGw
deMPbzs0l1SOFVcTSnP2UbpvsdT428e6d4n0AadaWOoRSmdJN06RhcDPo5P6 V52YDnpW7/wi
viv/AKF+8/75FIfCfis/8y/ef98iujBvBYSHs6dRW31aOWusVXlzSh+BheR7 UeR7Vuf8Il4r
/wCgBef980f8Il4r/wCgBef9811/XcL/AM/I/ejH6tiP5WYfke1Hke1bn/CJ eK/+gBef980f
8Il4r/6AF5/3zR9dwv8Az8j96D6tiP5WYfke1Hke1bn/AAiXiv8A6AF5/wB8 0f8ACJeK/wDo
AXn/AHzR9dwv/PyP3oPq2I/lZh+R7UeR7Vuf8Il4r/6AF5/3zR/wiXiv/oAX n/fNH13C/wDP
yP3oPq2I/lZh+R7UeR7Vuf8ACJeK/wDoAXn/AHzR/wAIl4r/AOgBef8AfNH1 3C/8/I/eg+rY
j+VmH5HtR5HtW5/wiXiv/oAXn/fNH/CJeK/+gBef980fXcL/AM/I/eg+rYj+ VmH5HtR5HtW5
/wAIl4r/AOgBef8AfNH/AAiXiv8A6AF5/wB80fXcL/z8j96D6tiP5WYfke1H ke1bn/CJeK/+
gBef980f8Il4r/6AF5/3zR9dwv8Az8j96D6tiP5WYfke1Hke1bn/AAiXiv8A 6AF5/wB80f8A
CJeK/wDoAXn/AHzR9dwv/PyP3oPq2I/lZheQaPINbn/CJeK/+hfvP++RR/wi Xiv/AKF+8/75
FP67hf8An5H70H1fEfysw/INHkGtz/hEvFf/AEL95/3yKP8AhEvFf/Qv3n/f Io+u4X/n5H70
H1fEfysw/INHkGtz/hEvFf8A0L95/wB8ij/hEvFf/Qv3n/fIo+u4X/n5H70H 1fEfysw/INHk
Gtz/AIRLxX/0L95/3yKP+ES8V/8AQv3n/fIo+u4X/n5H70H1fEfysw/INHkG tz/hEvFf/Qv3
n/fIo/4RLxX/ANC/ef8AfIo+u4X/AJ+R+9B9XxH8rMPyDR5Brc/4RLxX/wBC /ef98ij/AIRL
xX/0L95/3yKPruF/5+R+9B9XxH8rMPyDR5Brc/4RLxX/ANC/ef8AfIo/4RLx X/0L95/3yKPr
uF/5+R+9B9XxH8rMPyDR5Brc/wCES8V/9C/ef98ij/hEvFf/AEL95/3yKPru F/5+R+9B9XxH
8rMPyDR5Brc/4RLxX/0L95/3yKP+ES8V/wDQv3n/AHyKPruF/wCfkfvQfV8R /KzC8k+lHkn0
rd/4RLxX/wBC/ef98ij/AIRLxZ/0L95/3yKPruF/5+R+9D+rYj+VmF5J9KPJ PpW7/wAIl4s/
6F+8/wC+RR/wiXiz/oX7z/vkUfXcL/z8j96D6tiP5WYXkn0o8k+lbv8AwiXi z/oX7z/vkUf8
Il4s/wChfvP++RR9dwv/AD8j96D6tiP5WYXkn0o8k+lbv/CJeLP+hfvP++RR /wAIl4s/6F+8
/wC+RR9dwv8Az8j96D6tiP5WYXkn0o8k+lbv/CJeLP8AoX7z/vkUf8Il4s/6 F+8/75FH13C/
8/I/eg+rYj+VmF5J9KPJPpW7/wAIl4s/6F+8/wC+RR/wiXiz/oX7z/vkUfXc L/z8j96D6tiP
5WYXkn0ra0D/AEe11qQ8Ysk/9KYaf/wiXiz/AKF+8/75FWLPw94us5XYeG7i WORDHLFKuVkU
4ODgg9QDkEEEAg1lWxeGlCyqR6dV0ZdKhXjNNxZ0ulxeD7nS4ZNU1a6gvGz5 kcakgcnGPkPb
HeuO1hrSG8uRZyGS2WRhE7dWTJwTwOcY7Vq/2Frg/wCafR/9/bn/AOPU1vD+ tN1+HsR/7a3P
/wAerho1qVOblz3v0co2XpqdlWnOoklG1vJk08vk6VNKeAy6T/6RPVu//s/U XinGsWcX+jwo
UkSbcrLGqkHEZHUHoazxpPjF5Z2ufDElzDOFD28iFU+UYTbsKldo4GCOOOlL /YWuf9E/j/7+
3P8A8eqeejFr31dJbSj2S6+hSU2mnF9ej7vt6lLxDNaW3h+2s4L6C6kSeeVz CrgKGWID76rz
8h6Vv6jKIJ77Jxu13UP/AGjWZ/YOuhg6fD+FXU5Vi1w4B9drSlT9CCKIdK8Z ATC78MS36yym
ci5DjEh6sCjKcnvzg4HHArizOlDF4R0qdSKfnJa636HZldd4TFxrVItrXZeV up13/CTafo0c
VppMMd1bsAbySdMG5yMFMHooyfx9ed2BI2lp410g6RLI1rLe2z7JFwYiZFym e+PX+fU0/wCy
fEeP+RBh/wC/lz/8epP7K8VxOJbPwTHa3K8xzoZmaM+qh5GXPoccdRzXy7yP ETkuapTsn/Ns
fTxzvCQjLlhO7TW2/rqeW6rGFVT70VY8R2tzY3BtLyEw3EbYeNjypx0or9Cr yjKd46p2PkaC
fJqes+Dv+St6z/1+6h/6Ea9Xryjwd/yVvWf+v3UP/QjXq9fH51/Hj/hR34P4 ZerCqunOyTap
tYj/AEwdP+uEVWqp2H+u1P8A6/R/6IiryEdZoefL/wA9G/Ojz5f+ejfnUdFF 2BJ58v8Az0b8
6PPl/wCejfnUdFF2BJ58v/PRvzo8+X/no351HRRdgSefL/z0b86PPl/56N+d R0UXYEnny/8A
PRvzo8+X/no351HRRdgSefL/AM9G/Ojz5f8Ano351HRRdgSefL/z0b86PPl/ 56N+dR0UXYEn
ny/89G/Ojz5f+ejfnUdFF2Bl+IZ5Tb2K+Y21r+3BGeo3g8/kKu3l5b6faPc3 MmyJMZIBYkk4
CqByzEkAKASSQACTWf4g/wBTYf8AYQt//QxS65Z3E7ade20fnS6ddG5FuCFM wMUkRVWPAbEh
IzwSoBKg7gDLen6jBqdu01ul0iK2wi5tZYGzgHhZFUkc9cY/Ki01CK9ub+3j Vw9lOIJCwGCx
jSTI56YkX05Brm9WguNZuLK8v/Ct1d2UKzRPplybWRjIxiKTBTKY8KFlXO7c N/AwSazdE0TX
9A1NNSvLObVJUiNvIbeeNpJma2slMuZWXK77aUHJDZKnBBJBYR6DRXmfh/wN PFBpw1TRbV38
+3jvPNEUm+3TTUj2NydyC4RTt5+ZQwHANT6P4T1KHTxf3unofEH2zTX+2OyN ceUkVqlx+9zn
HyTgjPzAt13clgO31LWLPSvKFyZmklzsit7eSeRgMZbZGrNtGVBbGAWUE8jN qCZbi3jmQOEk
UOokRkYAjPKsAQfYgEVz+s2eo2+qXWoWEd7L9stYbZvsBgE8BieRwwE/7tlY SspzyMDAO4lc
Ky8NavNo+pXmqWnmaxdS2TzqZEPnxJFa/aYlAOweYYpUI+VXwoY7QCCwHoNF cLp2l6jpGqrq
1toMy2P+kRQaVbvAslski238O8RBS8ErEK55lU4yW24XhfQLmOQ2v9heXq9l dackmq/uf9HW
K1tDLDvDeZ8yrIuFBU+ZgnBYgsB6vRRRSGFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFAB
RRRQAUUUUAFFFFAFDXP+Rf1L/r1l/wDQDV+qGuf8i/qX/XrL/wCgGr9ABRRR QAUUUUAFFFFA
BRRRQB80/FT/AJHnVP8Ar5aij4qf8jzqf/Xy39KK++p/wof4Y/kjyY9fV/md /wCDv+St6z/1
+6h/6Ea9Xryjwd/yVvWv+v3UP/QjXq9fM51/Hj/hR1YP4ZerCqdh/rtT/wCv 0f8AoiKrlU7D
/Xan/wBfo/8AREVeQjrLlFc3pVqNZubjUL+4vVvLW/mhFvFeSwxxJHIfLDRK wDbk2SHeDuEn
9wqBz17r+oahpuhteC1MOrtY6jbpDGyNbKLy0/duxYiQ4nHzAJ9w8fNwWA9F orhbjxfqx0jw
3NbpZJc6vYQzu0kTukckk9pHwocEqBcucZzwvPXMc3i7W4liiH9nma6ne2hf 7O+2Jor2G0kZ
l8zLhjKXABXbjaS/3qLAd9RWTod/d3Taja3xhe5sLoW7zQRmNJcxRyghCzFc CULjcc7c8ZwI
PCL3D6C4ubua7ljv72IzTkF3CXUqjOAB0AGAABjAAHFIZu0UUUAFFFFABRRR QAUUUUAFFFFA
GR4hjMsNhGHZC+oW671xlcuORkEZ+oq4dPkB/wCQtqP5Qf8Axqq2t/8AMM/7 CVv/AOhiovEc
8qf2dbLK8FteXot7qeNijRoUcgB/4C7rHHnr+8wpDFSH0EXfsEn/AEFtR/KD /wCNUfYJP+gt
qP5Qf/Gqx5Y7rTL+00TRbjy5LqKe7a41KSa9wIzEhQBpQwz5oP3sDaeDuyMX wZ4il1TxDcss
CRQ6op1BkJLNGwtNP2qG4BGJmzxzgdKYHZfYJP8AoLaj+UH/AMao+wSf9BbU fyg/+NVxWjeL
fEGsxWTrJpkH22WC2jBtJH8qRrFLtnP70bl++gXgjIO44IM+meL9W1G2GsbL KPTTdWNv9j8p
zN/pMduc+dvx8rXHTy+QmOM5BqB132CT/oLaj+UH/wAao+wSf9BbUfyg/wDj VY/iC3e/v47W
xvb1NT8oNF5NwyQ2Yyf38qqQJMkYWN9wcpgBV8xh0lK4FP7BJ/0FtR/KD/41 R9gk/wCgtqP5
Qf8AxqrlFFwKf2CT/oLaj+UH/wAao+wSf9BbUfyg/wDjVXKKLgZ9xayQW0s3 9q6i2xC2P3Az
gZ/55VHp9tcXOl2VzLq1/wCZPbxysEWAAFlBOP3fTmrl/wD8g66/65P/ACNZ slzd2XgNLuwg
8+8g0lZIIdhbzJFhyq7RyckAYHNMC99gk/6C2o/lB/8AGqPsEn/QW1H8oP8A 41WHPHBoulrq
+n3t1f3F41vBHcXN9LPCxnljQSiMN5eMuGwgUEfKpUHjCvNf1C28X2iXAtZb uyZ9PkljjZI5
Vmn00lghYlSFnx948rnodoAO5+wSf9BbUfyg/wDjVH2CT/oLaj+UH/xquR1j xfq1lq+rQ26W
X2bS4rm5dZInZ5o4YLSTYGDgIzG4cbsMBhflPOZ4tb8QXXiA6DDc6ZFc2/n+ fdPZSOkuxLV1
2xiYFOLrByzZ2Z4zgGoHT/YJP+gtqP5Qf/GqPsEn/QW1H8oP/jVZX2pfEfhX S7syPaSajAk8
Vsl60BldojIIvNUbwB1JTBwh4K7lNjwrPLPoEfnyvJLFPcQMXYsV8uZ027jy 4XbtDthmADMA
SRSAu/YJP+gtqP5Qf/GqPsEn/QW1H8oP/jVXKKLgU/sEn/QW1H8oP/jVH2CT /oLaj+UH/wAa
q5RRcCn9gk/6C2o/lB/8ao+wSf8AQW1H8oP/AI1Vyii4FP7BJ/0FtR/KD/41 R9gk/wCgtqP5
Qf8AxqrlFFwKf2CT/oLaj+UH/wAao+wSf9BbUfyg/wDjVXKKLgU/sEn/AEFt R/KD/wCNUfYJ
P+gtqP5Qf/GquUUXAwfEFvJb+H7+Q6lfyAQsNjeSAcjHOI8457Y/Ct6sjxT/ AMixqH/XL+or
XoGFFFFIAooooAKKKKACiiigD5p+Kn/I86n/ANfLf0oo+Kn/ACPOp/8AXy39 KK++p/wof4Y/
kjyY9fV/md94QLD4s62URpGF7qGEXGWO48DJA/M16Z9qvP8AoD3n/f2D/wCO V5v4J/5LDq3/
AF/3/wD6Ga7/AMU6ld6P4Y1XU7GKGW5tLaSdEnYqh2gk5wMngE44z0yM5HzW dfx4/wCFHVg/
hl6ss/arz/oD3n/f2D/45VCzvNRabUfsuizz/wCmfP8Av4V2HyYhj75yeO3t 3yBt1naLK8Gn
eIpYztdLyZlOM4IiQivIjZnWyhc6bNe38N/d+CYJ7yDb5VxK9u0ke05G1icj BJIx3oi02aCS
4kh8EwRyXMqzTsj24MsituV2IPzMG+YE8g81oza0gmubWG61r7TEsmGl0qRI SyAn/WmEIRxw
d2DxgnIqjr/iXVLPxVNpdpPHBBFZQXG4aHdagzM7zKQfIcBABEMZHOT6VfIh XII9HMV5LeR+
BLVLqZt8kym2Du28PktnJO9VbPqAeoqwbS7YoW8HISjM6ky2/wArNIJGI54J dVcnuyg9RU9t
46sfOv4bmO7xYpcXFzcrbbYoYI5riPcxDMSQbcjA+ZshgoG4IQeLry71nRoI dDuxaajbzzZM
tu7BFa3CzBkmKGLEzZwSxwMDHU5EFwjbVonlePww6PM2+RluIQXbAXJ+bk4V Rn0AHaoNPtLv
SbdrfTfByWULNvaO2lt41LYAyQpAzgDn2p/i/wAQ6xoV5K1k9ibWLRL7UDHN buzmSAJtG4SA
BSZVyNufkIz82VNW+I2k6DLBDq8E9jcPF580E89ur28W5lDEeb+8zsY7YvMb jkAlQTkQXJ/t
Ouf9C7N/4FQ//FUfadc/6F2b/wACof8A4qmSePrKI3DS6ZqSQQPclpyIipht 5DHcTACTdsRt
uRjedw2q3OOso5EFzlvtOuf9C7N/4FQ//FUfadc/6F2b/wACof8A4qupoo5E FzlvtOuf9C7N
/wCBUP8A8VR9p1z/AKF2b/wKh/8Aiq6mijkQXOW+065/0Ls3/gVD/wDFUfad c/6F2b/wKh/+
KrqaKORBc5b7Trn/AELs3/gVD/8AFUfadc/6F2b/AMCof/iq6mijkQXOMvl1 q7Npu0GeNYbu
GZiLiFiQrgkD5utTzvq11BLBceGHlhlUpJHJcQsrqRgggtggjtXUy/cH+8v8 xWF4n8YaZ4S+
ytqZ2Qz7yZPPhTYq43Ha7q74DdI1du2MkAnIguYP9gRfYPsH/Cv7L7H5vnfZ 8W3l+ZjG/b03
Y4z1xU95ps2oxvHfeCYLqOSUTOs727hpAu0OQTy20Bc9cDFP0zxqLW1upNeg u4LeO91COPUG
SMxSLBLO2xVjYyZWKJuWQZ8s8kkbuo029nvrdpbjTLvT3DlRFdNEzEYHzDy3 cY5x1zweOmXy
ILnMQWl3bCMW/g5IhEweMRy267GEflgjB4IT5M/3eOlEVpdwW/2eLwckcO6N /LSW3C7kChDj
OMqETB7bVx0FdnRS5EFzhNQ0c6tcLcal4Etb2ZV2LJcm2kYLknALEnGSePet L7Trn/Quzf8A
gVD/APFV1NFHIguct9p1z/oXZv8AwKh/+Ko+065/0Ls3/gVD/wDFV1NFHIgu ct9p1z/oXZv/
AAKh/wDiqPtOuf8AQuzf+BUP/wAVXU0UciC5yVxJrk9tLD/wj0y70K5+1QnG Rj+9TbN9attO
s7dfD87+TbxxlvtMIyVQA8bumRXX0yL/AFKf7oo5EFzh00cx3F1cJ4EtVmu1 dLmRTbBplc5Y
Oc5YE9QetSR6bNDaLaReCYEtlikhWFXtwgjkILoFzjaxAJHQ45rt6KORBc4S 30c2lu9vbeBL
WGGRXR44zbKrK4UOCAcEMEXI77RnoKtrHqKXbXaeE9ty2d0wngDnIUHLZzyI 0H/AF9BXYUUc
iC5xk1pd3GmjTZvBySWAVUFq8tuYgq42jYTjAwMDHGBU8DatbW8dvb+GHihi UJHHHcQqqKBg
AANgADtXWUUciC5y32nXP+hdm/8AAqH/AOKo+065/wBC7N/4FQ//ABVdTRRy ILnLfadc/wCh
dm/8Cof/AIqj7Trn/Quzf+BUP/xVdTRRyILnLfadc/6F2b/wKh/+Ko+065/0 Ls3/AIFQ/wDx
VdTRRyILnLfadc/6F2b/AMCof/iqPtOuf9C7N/4FQ/8AxVdTRRyILnLfadc/ 6F2b/wACof8A
4qj7Trn/AELs3/gVD/8AFV1NFHIguct9p1z/AKF2b/wKh/8AiqPtOuf9C7N/ 4FQ//FV1NFHI
gucTq6a5qGkXVoNAmjMqEbjcxHH/AI9XReVJ/wA83/75NaMv+pf/AHTT6ORB cy/Kk/55v/3y
aPKk/wCeb/8AfJrUopcgXMvypP8Anm//AHyaPKk/55v/AN8mtSijkC5l+VJ/ zzf/AL5NHlSf
883/AO+TWpRRyBcy/Kk/55v/AN8mjypP+eb/APfJrUoo5AufKXxU/wCR51P/ AK+W/pRR8VP+
R51P/r5b+lFfdU/4UP8ADH8keXHr6v8AM9A8GyJD8XdZlldUjS+1BmdjgKAx ySewrsdb1XQN
b0a80uXWvIiu42hkkgI37G4YDcpHIyOnfjB5rkPBP/JYdW/6/wC//wDQzXrB mlyf3jfnXzWd
fx4/4UdWD+GXqzAg8S6LFbxxvrCTOihWlkwGcgfeO0AZPXgAewqx4Yktb+w1 oLOphuL2QB1Y
cqY0GRWv58v/AD0b86qeGHeRtZZ2LN/aLjJOeBHGBXkx3Otl2W08+F4pNUnZ HUqw/dDIPB/g
p0dnaxazc6osx8+4t4bd1LDaFjaRlI75zK2eew6d79FaEmBp/h2x0ubUZ7O/ uI575GVpN8bG
ImaebcgK4yGuXxuBGAuQec17Dwjp2m3Ed5a6hcR3/wBoknuLpfJDXPmGPzFd QgQBvKiyUVW+
TOcsxbp6KAMDVvDtjrWqLd3l/cGD7FPYyWSvGIpYpseYGO3eCdqcqwxsGOpz G/hxJJVmbxDq
YuGiEF1Ojwo93ErOyqxWMbNvmOA0Wxvm65AIt2fifS7vQW1uWf7DYJLJE0l/ /o+wpK0R3B8b
csvAbB5AIB4o0vxRo+saneadZX0El1a7GMayoTJG0cciyoASTGRKo3dM5/EA oXHg/Sbm1uLd
7u4CT2+oW7ESJkLeSiWUj5eoYYX0HXPWuk82P/non/fQrC1zxjo+iLMkmoWL 3VvLbrc27XaI
8EcsscZkcdVVRKGyQB05Gc0X3i6wgtrG4sZINQhvZY44pYLmMoQ1zDAxBBJb aZs8Aj5cEqSM
gG75sf8Az0T/AL6FHmx/89E/76FY0PinTbvxUmg2V1aXc6288tz5NyrtbtE8 SbHUZIJMh64x
sPB7blADPNj/AOeif99CjzY/+eif99Cn0UAM82P/AJ6J/wB9CjzY/wDnon/f Qp9FADPNj/56
J/30KPNj/wCeif8AfQp9FAEUksZUYdfvDv7isHX/AAxaa99r/wCJreWP220+ xXf2Roj9oh+f
CnzEfbjzJOV2n5zknAx0Ev3B/vL/ADFPoA5T/hC9Ll8+G91G8vbCWW6mWxme NY4nuPMEhVkR
ZOk0qjcxwH9QCNzTYHsbdorjV7jUHLlhLdCJWAwPlHlogxxnpnk89MX6KAGe bH/z0T/voUeb
H/z0T/voU+igBnmx/wDPRP8AvoUebH/z0T/voU+igBnmx/8APRP++hR5sf8A z0T/AL6FPooA
Z5sf/PRP++hR5sf/AD0T/voU+igBnmx/89E/76FNiljESAuoO0d6lqhe6lDp WnwXE6yMjzW9
uAgBO6WRIlPJHG5wT7Z69KOoFzzY/wDnon/fQo82P/non/fQqtZalDfXWo28 SyB7C4FvKWAw
WMUcuV56bZFHOOQfqcu38WQS+F9S1+fTr61t9P8AtPmwzeUZG8gsJNux2X7y MoyRkr6EEgG7
5sf/AD0T/voUebH/AM9E/wC+hXNXXjqwtrHT7hbK+mkv4t8dtGsYkV/OhgMT 7nAWQSTqpBPB
V8kEcySeK7mK4trRvC+s/bLhJpEthJabhHGYwzk+ftxmVQBnPB4A5IB0Pmx/ 89E/76FHmx/8
9E/76Fc8vjCIXV1HcaRqVtbWTpHeXkvkmK2dokkw+2QthRIoZgpVeSW2gsLm p+JLPSdc0nSr
mOfzNS8zy5lUeVFs2D94xI27mkRF4OWYDqRQBq+bH/z0T/voUebH/wA9E/76 Fc1ZeOrDU4rn
+z7K+uriK7e2ito1jD3IVUczRkuF8kpIjB2ZQdygcsoaSTxhF9otrS00jUry +lSZpbSLyUkt
jEYw6yeZIoB/fRkbSwYMGBKkEgHQ+bH/AM9E/wC+hR5sf/PRP++hXPf8JhFc 3EUWk6RqWrJJ
ZQXwltfJRRFMX8snzpEOT5bHGOOM1oarrQ024t7SGwu9QvLhHkS2tTGG8tCo dyZHRcAugxnP
zDAIBIANHzY/+eif99CjzY/+eif99CueTxhF9vktp9I1K3ihuILSe6k8kxwz ypGyRkLIXJzN
GuVUrk9cAmrFt4r02fVNUsnMlumnIXa7uNqQTKv+tMb5+YRN8sh42MQDQBs+ bH/z0T/voUeb
H/z0T/voVz1x4tktbV7uXw5rK2++JIHYQKZ2klSOMKjSh1JLg4kCYAOcHitj Tb2e+t2luNMu
9PcOVEV00TMRgfMPLdxjnHXPB46ZALPmx/8APRP++hR5sf8Az0T/AL6FZWm+ JLPVP7I8iOdf
7V09tQg3qBtjHlZDYJw375eBkcHnpnYoAZ5sf/PRP++hR5sf/PRP++hT6KAI pZYzE4DqTtPe
nebH/wA9E/76FEv+pf8A3TT6AGebH/z0T/voUebH/wA9E/76FPooAZ5sf/PR P++hR5sf/PRP
++hT6KAGebH/AM9E/wC+hR5sf/PRP++hT6KAGebH/wA9E/76FHmx/wDPRP8A voU+igD5S+Kn
/I86n/18t/Sij4qf8jzqf/Xy39KK+3p/wof4Y/kjzI9fV/meheCf+Sw6t/1/ 3/8A6Ga9VP3j
9a8q8E/8lh1b/r/v/wD0M13/AIiNv9hRLia9USShUgsZTHNcvgkRqwIYdNxI ZcBCWIQNXzWd
fx4/4UdWD+GXqzVqt4V/5jP/AGEn/wDQEqLRra7s9KggvZ/OnXdk7y+1SxKp vbl9qkLvbltu
48k1L4V/5jP/AGEn/wDQEryYbnWzoKKKK1JIJr21tnCT3MMTEZCvIFOPxp0F 1b3O7yJ4pdv3
vLcNj64rI1Sa6jv5Vs9S0+wnaKI772EyqygyZAUSIc5I5yfpzxLo8s0txMbi 9tLydYYxJNaR
mOMnfIRhS7kcEfxH14zilcDnk8Oa2fDiQTWdj/acOq3N/bPBqssQgMryuHD+ QdzL5zJsZCjD
k5ztrY0DSdU0i+vReXMF9HeeXcTXn+qkadYYoWHlBSoU+UXyG4LbduBuPQUU wOPbw9rAtJNK
VLE2I1VNSjujcOJGzfLdMhi8vAwC6g7zkqpwNx209S8FaleeKptUjntBA97H cBWdt21X05iP
u4ziyl7/AMSepx3lFAHH+HfD2saZqOjJeJY/YdH0qTTYZobh2kuMmDa7IYwI +ICSAzYLYycZ
rsKKKACiiigAooooAKKKKAGS/cH+8v8AMU+mS/cH+8v8xT6ACiiigAooooAK KKKACiiigAoo
ooAKzNU0/wDtPS7e3xnZc2tx/rNn+qmSTrtb+50xz0yudw06ZF/qU/3RS6gU tO0/7FfatcYx
9uu1uP8AWbs4hij6bRt/1fTLeuedq8/D4e1if4f69ol4ljDfX/8AaHkmG4eS MfaGkddzGNSM
GUg4U8LnvgdhRTA878SeBNS1HXJ5rNdNn0t0WUWV5IyhpmuraWZMBGUROttk 8EmSWQkHdxJe
eEby7l0p38I+FHtbCK6hXTHuSYE81oXEi/6NgNlJARtH3s5OSK9AooA4uTQN evTr1hdQ6bDp
+uuGuZ4rt3lhVraKGREQxAMf3bBXLDG4MVONh1Nc8N/25q0Essnl2q6fdWrP G2Jo5JJIHjkj
OCAyGEsG6hgpHt0FFAHHw+FrzSdavNX0mKx8wSslrZO5ih+ztBaxlSVQ+Wwa 1UjCsNvGAWyl
ebwJPqWsf2jfX89rNcxXTXDabeSwPDNItskYjZcb1VLfkvwzYbYAdq9xRQBw b+FtSj16DU/+
Ed8MX729lb2tv5srQC1aGSYh4V8mTYGV4ztB+UrjLYDHoPEunzanbwW66Do2 sQBy7x6pMUVG
AwpUeTICcFhnjHvnjcooA4/w94HGnXM9xq15PqVx5tu8cj3U2yUxW0MfmSQl thk8yJnBIYj5
TuyBjLg+HOoNZWMd94gu53mt7u31WP8AchNt2jNOYSIQ2TP5bDceACPY+iUU AcfrmmeJNe0W
bS73TtDmjEtvKGa7k2XXlTxyMrxmFvLV1RuN0mMgfMOa3NAtZrHS1tZdK03S 0jciK206UvEF
POf9XHgli2QF9888alFAHP6P4e/s3+wPkx/ZmlNYf8fG/GfI4/1a7/8AU/e+ Tp907vl6Ciig
AooooAZL/qX/AN00+mS/6l/900+gAooooAKKKKACiiigAooooA+Uvip/yPOp /wDXy39KKPip
/wAjzqf/AF8t/Sivtqf8KH+GP5I8yPX1f5noXgn/AJLDq3/X/f8A/oZr0rUt L0/VoRb6lYWt
7Cr71juYVkUNyMgMCM4J596818E/8lh1b/r/AL//ANDNemm/s8n/AEuD/v4P 8a+azr+PH/Cj
qwfwy9WFnZWmnWiWljaw2ttHnZDBGERcnJwo4HJJ/Gm+Ff8AmM/9hJ//AEBK X7fZ/wDP3B/3
8FN8KMrrrDKQVOouQQeCPLjryYbnWzoaKKK1JCiiigAooooAKKKKACiiigAo oooAKKKKACii
igBkv3B/vL/MU+mS/cH+8v8AMU+gAooooAKKKKACiiigAooooAKKKKACmRf6 lP8AdFPpkX+p
T/dFLqA+iiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADJf8A Uv8A7pp9Ml/1
L/7pp9ABRRRQAUUUUAFFFFABRRRQB8pfFT/kedT/AOvlv6UUfFT/AJHnU/8A r5b+lFfbU/4U
P8MfyR5kevq/zPQPBsaTfF3WYpUV43vtQVkYZDAscgjuK9A1GLw/pcAlutLs gGfYiRWAlkkb
BOFRFLMcAnABwAT0BNcD4J/5LDq3/X/f/wDoZr0bWHuEsXEFjNeK5KSxW9wI ZthBGY2JUbgc
fxLgZIOQAfms6/jx/wAKOrB/DL1ZFZ2mhahaJc22mac8T5wTZopBBwVYFcqw IIKkAggggEVP
4VhhC6uqwQoi6gyqiRhVAEcfQAYqr4bs7iw0OKC5j8uTzZpBGSGZEeVnQOwz ucKyhmy25txL
NncbvhX/AJjP/YSf/wBASvJjudbN3yo/+eaf98ijyo/+eaf98in0VpYkZ5Uf /PNP++RR5Uf/
ADzT/vkU+iiwDPKj/wCeaf8AfIo8qP8A55p/3yKfRRYDI1LXNH0m4WC8cq5Q SOUt3kWFCSA8
rKpEScN8zlR8rc/KcanlR/8APNP++RXNeJH1K41GOxOhX2oaKYg8wtJbcfaH JI8qQSyoRGAA
SADv3BSQoZX5+58F6iunPLpFpBp+t3eoaoZ7+JlikMMwu/JLyJ8zLve3bHJB VTjK8FgO5jvL
WXWbnS1hPn29vDcOxUbSsjSKoHfOYmzx3HXsXt5a2N1p1vLCS9/cG3iKqMBh FJLlvbbGw4zy
R9Rz3hPSFsfEOr3lt4Y/sCxntLWJIdtunmSI85dtsLsOkkYycE/hWPYeD1uL fQrLUfCsBktb
uN9Xu547d01FltbhDMcMXk/eurZkUN+8zjO7BYDtbvU7Kz1OysJIJTNeSiKN hD8gJjlk5Y4B
4hfIGSMrkAMDUkd5ay6zc6WsJ8+3t4bh2KjaVkaRVA75zE2eO469vNp/BniW S8lFnF9k2+dF
Zzi4VRbpjVVh27SWVVW5tgAo+UEAD5SB1HhPSFsfEOr3lt4Y/sCxntLWJIdt unmSI85dtsLs
OkkYycE/hRYDrfKj/wCeaf8AfIo8qP8A55p/3yKfRRYBnlR/880/75FHlR/8 80/75FPoosBF
JFGFGEX7w7e4p3lR/wDPNP8AvkUS/cH+8v8AMU+iwDPKj/55p/3yKPKj/wCe af8AfIp9FFgG
eVH/AM80/wC+RR5Uf/PNP++RT6KLAM8qP/nmn/fIo8qP/nmn/fIp9FFgGeVH /wA80/75FHlR
/wDPNP8AvkU+iiwDPKj/AOeaf98ijyo/+eaf98in0UWAZ5Uf/PNP++RTYooz EhKKTtHapaZF
/qU/3RRbUA8qP/nmn/fIo8qP/nmn/fIp9FFgGeVH/wA80/75FHlR/wDPNP8A vkU+iiwDPKj/
AOeaf98ijyo/+eaf98in0UWAZ5Uf/PNP++RR5Uf/ADzT/vkU+iiwDPKj/wCe af8AfIo8qP8A
55p/3yKfRRYBnlR/880/75FHlR/880/75FPoosAzyo/+eaf98ijyo/8Anmn/ AHyKfRRYBnlR
/wDPNP8AvkUeVH/zzT/vkU+iiwDPKj/55p/3yKPKj/55p/3yKfRRYCKWKMRO Qig7T2p3lR/8
80/75FEv+pf/AHTT6LAM8qP/AJ5p/wB8ijyo/wDnmn/fIp9FFgGeVH/zzT/v kUeVH/zzT/vk
U+iiwDPKj/55p/3yKPKj/wCeaf8AfIp9FFgGeVH/AM80/wC+RR5Uf/PNP++R T6KLAfKXxU/5
HnU/+vlv6UUfFT/kedT/AOvlv6UV9vT/AIUP8MfyR5kevq/zPQPBql/i7rKL I0bNfagA64yv
zHkZBGfqDXoZ0MZ/5DOsf9/o/wD4ivPvBP8AyWHVv+v+/wD/AEM13/iKDVrm xSHSfJ3PKBcC
S4eBjFg5CSKjFGJ2jIGcFsFWww+azr+PH/Cjqwfwy9WL/YY/6DOsf9/o/wD4 ip/CcIjj1aNJ
p2CX7LukKszHy4+SQo/lWX4EMrfD/wAPGZER/wCzoAAjlht2DackDkjBI7Ek ZOMnY8K/8xn/
ALCT/wDoCV5MdzrZu7G/56v+Q/wo2N/z1f8AIf4U+vP/AB6mjx6iLq8n0O+v o7TMOiapCk8l
xgsVW2UsDHJIcoWCvuKx/L8uDpYk73Y3/PV/yH+FGxv+er/kP8K8yl8U+KU1 jVzb3FjPcW/2
4R6N5hlmCxLJ5D/Z0hEibykR3PMVYSfKAXQDQm162T7FEnj7dpMvntLrXm2R 2Tp5Oy33+X5Q
yryPtK7ztyDgEUWA73Y3/PV/yH+FRmSNbhLdroCd0Z0jLLuZVIDEDGSAWUE9 tw9a8+0zXfEV
xavrN9ez280WoabZyaUbeNIU+0RWnmg5TzQytcSEfPwQoIIBBPCuqHVvGWj3 Fzrf2zUn0S6e
90/MI/s6VpLUtFtRQ6YbcuJCzDZ1yDksB6Lsb/nq/wCQ/wAKNjf89X/If4V5 NcDRl8TarcWW
pWml/Z/FCvfahaGANbqdNZcyM6sqgzNImXH33cD5jUmp+LPEtvP4hlTVLGGS 1i1ArYearzQR
xJKYZvIEG5N2yJt8krIwk4GXQAsB6rsb/nq/5D/CjY3/AD1f8h/hXFWOp6ta eJ47GbVZ72Bd
VOllZ4ogXU2Ju/NJRF/eBvk4wuwfd3fNXcUWAZsb/nq/5D/CjY3/AD1f8h/h T6KLAM2N/wA9
X/If4UbG/wCer/kP8KfRRYBmxv8Anq/5D/CjY3/PV/yH+FPoosBFIjbR+8Y/ MPT1HtTtjf8A
PV/yH+FEv3B/vL/MU+iwDNjf89X/ACH+FGxv+er/AJD/AAp9FFgGbG/56v8A kP8ACjY3/PV/
yH+FPoosAzY3/PV/yH+FGxv+er/kP8KfRRYBmxv+er/kP8KNjf8APV/yH+FP oosAzY3/AD1f
8h/hRsb/AJ6v+Q/wp9FFgGbG/wCer/kP8KbEjGJP3jD5R6f4VLXOeJ9Rl0/T 9N/4mH9mWk9y
IrvUPkH2WPypGDbpAUXMixplgR8+B8xBBbUDchkjuULwXQlQOyFkZWAZWKsO B1DAgjsQRUcN
5a3F5c2cN/FJdWu37RCkiF4twyu5RyuRyM9a8isvEWs2dokOl63Yra+beT2l xd3CJ/acrX1y
CAqQSGfhYzsg8tv3owfnXb6B4Ht5Y9P1Gd72eWOXVb/ZA4QJDi8nB2kKGOep 3FvbA4osB0ux
v+er/kP8KNjf89X/ACH+FPoosAzY3/PV/wAh/hRsb/nq/wCQ/wAKfRRYBmxv +er/AJD/AAo2
N/z1f8h/hT6KLAM2N/z1f8h/hRsb/nq/5D/Cn0UWAZsb/nq/5D/CjY3/AD1f 8h/hT6KLAM2N
/wA9X/If4UbG/wCer/kP8KfRRYBmxv8Anq/5D/CjY3/PV/yH+FPoosAzY3/P V/yH+FGxv+er
/kP8KfRRYCKVGET/ALxj8p9P8Kdsb/nq/wCQ/wAKJf8AUv8A7pp9FgGbG/56 v+Q/wo2N/wA9
X/If4U+iiwDNjf8APV/yH+FGxv8Anq/5D/Cn0UWAZsb/AJ6v+Q/wo2N/z1f8 h/hT6KLAM2N/
z1f8h/hRsb/nq/5D/Cn0UWA+Uvip/wAjzqf/AF8t/Sij4qf8jzqf/Xy39KK+ 3p/wof4Y/kjz
I9fV/megeDS4+LusmJVaQX2obVZtoJ3HAJwcD3wa9DI8RZ+7o/8A3+l/+Irz 7wT/AMlh1b/r
/v8A/wBDNeqn7x+tfNZ1/Hj/AIUdWD+GXqzK2+Iv7uj/APf6X/4ip/CYnWPV hL5DSfb23mN2
258uPIGVBq7Vbwr/AMxn/sJP/wCgJXkw3Otm7mT+4n/fR/wozJ/cT/vo/wCF Prl/E6al/bWg
x2Wu31hDfXbWs0cEVuwwIJ5dwMkTENmNR1xjtnmtCTpcyf3E/wC+j/hRmT+4 n/fR/wAK86Pi
3VNG8OapcXsHmW7Xerx2d1Febp98L3MiqyPEVRQkLKpy+MJ8uCQNyPxdfXKY g0aMST6nPptl
595tSZ4Wn3uxVGKJtgOOCSxK4CgOwB1OZP7if99H/CjMn9xP++j/AIVww1LV 0+FOvakbyS21
S1fVJVkjcT+W0VxMVQGRcMgCBOVHy9AvGJD4m1TRG8RveR/2jY6dd29nbylv 37yyRWwVWjji
5UvMWLLluSFjOAKAO1zJ/cT/AL6P+FGZP7if99H/AArhn+IV7Fbiabw/JEIL e7u7zzpJYcQ2
4hLNCskKtISJgAGWMbkYZxhj1Gi6rNqQvYbu2jt7yxuPs9wkUplj3GNJAUcq pYbZEzlRzkcg
AkA0cyf3E/76P+FGZP7if99H/Cn0UAMzJ/cT/vo/4UZk/uJ/30f8KfRQAzMn 9xP++j/hRmT+
4n/fR/wp9FADMyf3E/76P+FGZP7if99H/Cn0UARSGTaMqv3h/F7j2p2ZP7if 99H/AAol+4P9
5f5isq5vriPxlplgsmLWbT7uaRNo+Z0ktgpz14Ej/n7CgDVzJ/cT/vo/4UZk /uJ/30f8K4q4
1bWbv4UaNf2upfZdX1CLTUN75CPseeSFHfYRtP32449sVz+r+LvE897DPbtP YW9xEtstjbiC
WQXCXlpDOySSLt3Bp5oQG+TMW/owIAPVcyf3E/76P+FGZP7if99H/CsrR7e/ fQ3S7vdVS6m3
4e9Fr59v/CMeSvlHGNwyG68+g5vS7/WFsLeGbW7u5uNT1i702O4migH2VIHu fnRUjUM7JAB8
2QGIbBAKMAdzmT+4n/fR/wAKMyf3E/76P+FcdPq+p2Otx+FTfyTz3LwiPU5Y 4xLGkiXLtlFU
Izj7KwVtoH7xcq2w+ZsaPc3cGs32h3d1JfG1t4LqO7lVFkZZWlXY4QBSVMJI YBchgMZUswBs
5k/uJ/30f8KMyf3E/wC+j/hXJWet6jL/AGJvuM/afEGoWUvyL80MX2zYvTjH kx8jk7eScnPY
UAMzJ/cT/vo/4UZk/uJ/30f8KfRQAzMn9xP++j/hTYjJ5SYVcbR/F/8AWqWm Rf6lP90UdQDM
n9xP++j/AIUZk/uJ/wB9H/Cn0UAMzJ/cT/vo/wCFGZP7if8AfR/wp9FADMyf 3E/76P8AhRmT
+4n/AH0f8KfRQAzMn9xP++j/AIUZk/uJ/wB9H/Cn0UAMzJ/cT/vo/wCFGZP7 if8AfR/wp9FA
DMyf3E/76P8AhRmT+4n/AH0f8KfRQAzMn9xP++j/AIUZk/uJ/wB9H/Cn0UAM zJ/cT/vo/wCF
GZP7if8AfR/wp9FADMyf3E/76P8AhRmT+4n/AH0f8KfRQBFKZPKfKrjaf4v/ AK1OzJ/cT/vo
/wCFEv8AqX/3TT6AGZk/uJ/30f8ACjMn9xP++j/hT6KAGZk/uJ/30f8ACjMn 9xP++j/hT6KA
GZk/uJ/30f8ACjMn9xP++j/hT6KAGZk/uJ/30f8ACjMn9xP++j/hT6KAPlL4 qf8AI86n/wBf
Lf0oo+Kn/I86n/18t/Sivt6f8KH+GP5I8yPX1f5noXgn/ksOrf8AX/f/APoZ r1U/eP1ryrwT
/wAlh1b/AK/7/wD9DNeqn7x+tfM51/Hj/hR1YP4ZerEqt4V/5jP/AGEn/wDQ EqzVbwr/AMxn
/sJP/wCgJXlQ3OtnQVXuLG3u57SaePfJaSmaA7iNjlGjJ46/K7Dn19cVYorU kx7vwto19pxs
Liz32pluJtnmuPnnEolOQc/MJ5fpu4xgYkl8PaZNYfYjBIkQuJLpWinkjkSW R2d3SRWDqSXf
O0jhivQ4rUooAxz4X0lvDk2gGGc6bNv81Ddy75N7l33Sbt53MzZy3OSDwcUN 4X0l/M3Qzt5s
SRSZu5TvKbdsh+bmYbExN/rBtX5uBWxRQBh/8IhoZt5YXtJJRNbz20ry3Ery SxzBBIHdmLMS
I4wGJJAQAEAYrUt7G3tJ7uaCPZJdyiac7id7hFjB56fKijj09c1YooAKKKKA CiiigAooooAK
KKKAGS/cH+8v8xSGFWuEnJk3ojIAJGC4YgnK5wT8owSMjnGMnKy/cH+8v8xT 6AKcul2k9hBZ
TJJLBA8Lp5krs26J1dCWJ3MQyKcknOOc5NV9X8PaZrhjbUIJHeNCkbxzyRMg 8yOThkYEHfDG
cjkbfc51KKAKem6ZBpVu0FvJdujOXJuruW4bOAOGkZiBx0zjr6mozomnHTJt ONv/AKLLK87K
HYESPIZS6tnKtvJYEEFTgjGBjQooAy4/D2mR6XNpwgkeCZ/MkeWeR5XcY2uZ WYvvXau1t2V2
LgjaMWNN0u00m3aG0SQB3LyPLK8skjYAy7uSzHAABJOAoHQAVcooArrZRL5e Hn/dyvMuZ3OW
bdkHJ+ZfnOFOVGFwBtXFiiigAooooAKZF/qU/wB0U+mRf6lP90UuoD6KKKYB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAMl/wBS/wDumn0yX/Uv/umn0AFFFFAB RRRQAUUUUAFF
FFAHyl8VP+R51P8A6+W/pRR8VP8AkedT/wCvlv6UV9tT/hQ/wx/JHmR6+r/M 9C8E/wDJYdW/
6/7/AP8AQzXW+OrCyvbCxfULvT7a3tr3zS2pWn2i2JMUiASDcoUfPkMzAbgo 6kCuS8E/8lh1
b/r/AL//ANDNeqn7x+tfNZ1/Hj/hR1YP4ZerMXwo8T+HLb7PZ2trCrSpGtpE I4ZFEjASxqOA
kgHmDk8OOW6nQ8K/8xn/ALCT/wDoCVZqt4V/5jP/AGEn/wDQEryYbnWzoKKK K1JCiiigAooo
oAKKKKACiiigAooooAKKKKACiiigBkv3B/vL/MU+mS/cH+8v8xT6ACiiigAo oooAKKKKACii
igAooooAKZF/qU/3RT6ZF/qU/wB0UuoD6KKKYBRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAMl/1L/7pp9Ml/wBS/wDumn0AFFFFABRRRQAUUUUAFFFFAHyl8VP+ R51P/r5f+lFH
xU/5HnU/+vlv6UV9tT/hQ/wx/JHmR6+r/M9C8E/8lh1b/r/v/wD0M16qfvH6 15V4J/5LDq3/
AF/3/wD6Ga9VP3j9a+Zzr+PH/Cjqwfwy9WJVbwr/AMxn/sJP/wCgJVmq3hX/ AJjP/YSf/wBA
SvKhudbOgooorUkKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGS/cH+8v 8xT6ZL9wf7y/
zFPoAKKKKACiiigAooooAKKKKACiiigApkX+pT/dFPpkX+pT/dFLqA+iiimA UUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFADJf9S/+6afTJf9S/8Aumn0AFFFFABR RRQAUUUUAFFF
FAHyl8VP+R51P/r5b+lFHxU/5HnU/wDr5b+lFfbU/wCFD/DH8keZHr6v8z0D wbGJfi7rMbFg
r32oKSrFTyx6Ecg+4rv59C0G1glnuITFDEpeSSS9lVUUDJJJfAAHeuC8E/8A JYdW/wCv+/8A
/QzXY+M7a4uINMeOW9itoL9Zrp7OATyKgjk2ERlH34lMR+42CA3G3cPms6/j x/wo6sH8MvVl
yDQtBubeO4t4TLDKoeOSO9lZXUjIIIfBBHerXhOCGOPVo4kaONL9lVRIxwBH H3JJNRaDNez6
NDJfh/OLSBWkTY7xB2EbuuBtdkCMwwuCSNq9BZ8K/wDMZ/7CT/8AoCV5Mdzr Zu+Uvq//AH2f
8ay9S8QeH9GuFt9U1ywsZ2QOsd1erExXJGQGYHGQRn2Na9cnc6PqF7461G4g 1TUtMg/syzQS
WsUJWZhLckgmWNxlQynC4++M9RWliTqfKX1f/vs/40eUvq//AH2f8a821SHx DcjUYNOOsjXp
H1BJSZJktxbmOcWvlsxECvn7JzGQ4O7d/wAtKsXlxqHiPxnbLYyeILXR2e2j nYW9xaDAivzI
P3iqQCTACwwQSmGDBSCwHatqGnq9qn2oMbq4e1h2OWDSors6ZGQCBFJnOMFS OvFSX11Y6ZZy
Xl/eRWlrHjfNPP5aLkgDLE4GSQPxrz6Hw951/aWU0GspKPEd3dXbRz3UcaRS JevE8cisEUEO
m7yyOWCvycVqamL9vhR4htriC+nujFqFnbx+TJLNInmSxQcAFnynl/Oc5HzE nk0WA62zurHU
IjLZXkVzGNuXhn3gblDryD3VlYeoYHoaseUvq/8A32f8a86v7a+8/wATXmmr qtvfajLbXEL+
Vc+X9i2WqTN5YKgTAJMNo2z4Hy4+U1nvaeIhp0ksF5rlyLXT9RubBlhurfM6 i2MKtHJI8knz
+dhZyd2WAUoFyWA9V8pfV/8Avs/40eUvq/8A32f8axvDsNzaS6xZSm7a0tr0 JZNdSPIxiMEL
nEjks48xpeSTjleigDcosAzyl9X/AO+z/jR5S+r/APfZ/wAafRRYBnlL6v8A 99n/ABo8pfV/
++z/AI0+iiwDPKX1f/vs/wCNHlL6v/32f8afRRYCKSNQo5b7w/iPqKhS5tZN RmsFlc3UMUc0
iZb5UcuFOenJjf8AL3FWJfuD/eX+YrjtTg1KHx1daikV22lx2VibhbZWEkuy W6PyEcuELKzx
LhmBHJ/1cpYDsfKX1f8A77P+NV3ubWPUYbBpXF1NFJNGmW+ZEKBjnpwZE/P2 NefWUmuRWGY4
dZlu20xk1v7Sbnal2zwqZIASNwRTdPttSA21QCCYzWfp3/CQC4nkMOpXsFvb 3trb3MtpdwMk
MhsCzgSOZ2Kk3DBd+9/LKoR8oUsB6z5S+r/99n/Gjyl9X/77P+Nct4BfUDpu oxX013NFDelL
SW6tbiBmiMUbHC3DNKR5jSDLM3QgYAAHWUWAZ5S+r/8AfZ/xo8pfV/8Avs/4 0+iiwDPKX1f/
AL7P+NHlL6v/AN9n/Gn0UWAZ5S+r/wDfZ/xo8pfV/wDvs/40+iiwDPKX1f8A 77P+NVZLq1tW
sYZ5WSS8k8mBcsd7iNpCOOnyox5wOPpV2uQ8ZwRzReHHuItSe0h1HfO2nLOZ UX7LOoP7j94B
uZQSPXB4NFtQOs8pfV/++z/jR5S+r/8AfZ/xryq8h8Vyvb/6dqtrCIn/ALL2 2dzcSM32iby/
M2Soobyfsv8Ax95UkndgiXJ4ouPEx1XU5NO/tWG4livYTa29teOqotrN5MiT bzAGZ0hYCNFc
M+0kkPuLAeq+Uvq//fZ/xo8pfV/++z/jUVja/YrOO3NxPcMuS0077ndiSST2 GSTwAFHQAAAC
xRYBnlL6v/32f8aPKX1f/vs/40+iiwDPKX1f/vs/40eUvq//AH2f8afRRYBn lL6v/wB9n/Gj
yl9X/wC+z/jT6KLAM8pfV/8Avs/40eUvq/8A32f8afRRYBnlL6v/AN9n/Gjy l9X/AO+z/jT6
KLAM8pfV/wDvs/40eUvq/wD32f8AGn0UWAZ5S+r/APfZ/wAaPKX1f/vs/wCN PoosBFLGoic5
b7p/iNO8pfV/++z/AI0S/wCpf/dNPosAzyl9X/77P+NHlL6v/wB9n/Gn0UWA Z5S+r/8AfZ/x
o8pfV/8Avs/40+iiwDPKX1f/AL7P+NHlL6v/AN9n/Gn0UWAZ5S+r/wDfZ/xo 8pfV/wDvs/40
+iiwHyl8VP8AkedT/wCvlv6UUfFT/kedT/6+W/pRX29P+FD/AAx/JHmR6+r/ ADPQPBoc/F3W
REyrIb7UNrMu4A7jgkZGR7ZFehnT9Xzzr0f/AILx/wDF1594J/5LDq3/AF/3 /wD6Ga9VP3j9
a+azr+PH/Cjqwfwy9WZX9n6v/wBB6P8A8F4/+LqfwnHKkerKZ1lYX7BpDFs3 Hy48nG44/P8A
wq7Vbwr/AMxn/sJP/wCgJXkw3Otm7iT++n/fJ/xoxJ/fT/vk/wCNPorSxIzE n99P++T/AI0Y
k/vp/wB8n/Gn0UWAZiT++n/fJ/xoxJ/fT/vk/wCNPoosAzEn99P++T/jRiT+ +n/fJ/xp9FFg
GYk/vp/3yf8AGjEn99P++T/jT6KLAMxJ/fT/AL5P+NGJP76f98n/ABp9FFgG Yk/vp/3yf8aM
Sf30/wC+T/jT6KLAMxJ/fT/vk/40Yk/vp/3yf8afRRYCKQSbRll+8P4fce9O xJ/fT/vk/wCN
Ev3B/vL/ADFPosAzEn99P++T/jRiT++n/fJ/xp9FFgGYk/vp/wB8n/GjEn99 P++T/jT6KLAM
xJ/fT/vk/wCNGJP76f8AfJ/xp9FFgGYk/vp/3yf8aMSf30/75P8AjT6KLAMx J/fT/vk/40Yk
/vp/3yf8afRRYBmJP76f98n/ABpsQk8pMMuNo/h/+vUtMi/1Kf7ootqAYk/v p/3yf8aMSf30
/wC+T/jT6KLAMxJ/fT/vk/40Yk/vp/3yf8afRRYBmJP76f8AfJ/xoxJ/fT/v k/40+iiwDMSf
30/75P8AjRiT++n/AHyf8afRRYBmJP76f98n/GjEn99P++T/AI0+iiwDMSf3 0/75P+NGJP76
f98n/Gn0UWAZiT++n/fJ/wAaMSf30/75P+NPoosAzEn99P8Avk/40Yk/vp/3 yf8AGn0UWAZi
T++n/fJ/xoxJ/fT/AL5P+NPoosBFKJPKfLLjaf4f/r07En99P++T/jRL/qX/ AN00+iwDMSf3
0/75P+NGJP76f98n/Gn0UWAZiT++n/fJ/wAaMSf30/75P+NPoosAzEn99P8A vk/40Yk/vp/3
yf8AGn0UWAZiT++n/fJ/xoxJ/fT/AL5P+NPoosB8pfFT/kedT/6+W/pRR8VP +R51P/r5b+lF
fb0/4UP8MfyR5kevq/zPQPBrFPi7rLrG0jLfagQi4y3zHgZIGfqRXoZvtYJz /wAI/J/4Fw//
ABVefeCf+Sxat/1/3/8A6Ga9VP3j9a+azr+PH/Cjqwfwy9WZX23WP+hfk/8A AuH/AOKqfwm0
3l6sZbdo5DfsWQOrbSY4+Mg4q7Vbwr/zGf8AsJP/AOgJXkw3Otm7vb/nk/5j /Gje3/PJ/wAx
/jT6K0JGb2/55P8AmP8AGje3/PJ/zH+NPooAZvb/AJ5P+Y/xo3t/zyf8x/jT 6KAGb2/55P8A
mP8AGje3/PJ/zH+NPooAZvb/AJ5P+Y/xo3t/zyf8x/jT6KAGb2/55P8AmP8A Gje3/PJ/zH+N
PooAZvb/AJ5P+Y/xo3t/zyf8x/jT6KAGb2/55P8AmP8AGje3/PJ/zH+NPooA ikdto/dsPmHp
6j3p29v+eT/mP8aJfuD/AHl/mKfQAze3/PJ/zH+NG9v+eT/mP8afRQAze3/P J/zH+NG9v+eT
/mP8afRQAze3/PJ/zH+NG9v+eT/mP8afRQAze3/PJ/zH+NG9v+eT/mP8afRQ Aze3/PJ/zH+N
G9v+eT/mP8afRQAze3/PJ/zH+NNidhEn7tj8o9P8alpkX+pT/dFHUA3t/wA8 n/Mf40b2/wCe
T/mP8afRQAze3/PJ/wAx/jRvb/nk/wCY/wAafRQAze3/ADyf8x/jRvb/AJ5P +Y/xp9FADN7f
88n/ADH+NG9v+eT/AJj/ABp9FADN7f8APJ/zH+NG9v8Ank/5j/Gn0UAM3t/z yf8AMf40b2/5
5P8AmP8AGn0UAM3t/wA8n/Mf40b2/wCeT/mP8afRQAze3/PJ/wAx/jRvb/nk /wCY/wAafRQA
ze3/ADyf8x/jRvb/AJ5P+Y/xp9FAEUrsYn/dsPlPp/jTt7f88n/Mf40S/wCp f/dNPoAZvb/n
k/5j/Gje3/PJ/wAx/jT6KAGb2/55P+Y/xo3t/wA8n/Mf40+igBm9v+eT/mP8 aN7f88n/ADH+
NPooAZvb/nk/5j/Gje3/ADyf8x/jT6KAPlL4qf8AI86n/wBfL/0oo+Kn/I86 n/18t/Sivt6f
8KH+GP5I8yPX1f5noHg2RIfi7rMsrqkaX2oMzscBQGOST2Fd+fFOh5P/ABMo f1rgvBP/ACWH
Vv8Ar/v/AP0M16wZpcn9435181nX8eP+FHVg/hl6sxP+Ep0P/oJQ/rVjwhdQ Tw6rNFMjRyag
7KwPUbErT8+X/no351U8MO8jayzsWb+0XGSc8COMCvJhudbNvzY/+eif99Cj zY/+eif99Cn0
VoSM82P/AJ6J/wB9CjzY/wDnon/fQp9FADPNj/56J/30KPNj/wCeif8AfQp9 FADPNj/56J/3
0KPNj/56J/30KfRQAzzY/wDnon/fQo82P/non/fQp9FADPNj/wCeif8AfQo8 2P8A56J/30Kf
RQAzzY/+eif99CjzY/8Anon/AH0KfRQAzzY/+eif99CjzY/+eif99Cn0UARS SxlRh1+8O/uK
d5sf/PRP++hRL9wf7y/zFPoAZ5sf/PRP++hR5sf/AD0T/voU+igBnmx/89E/ 76FHmx/89E/7
6FPooAZ5sf8Az0T/AL6FHmx/89E/76FPooAZ5sf/AD0T/voUebH/AM9E/wC+ hT6KAGebH/z0
T/voUebH/wA9E/76FPooAZ5sf/PRP++hTYpYxEgLqDtHepaZF/qU/wB0UdQD zY/+eif99Cjz
Y/8Anon/AH0KfRQAzzY/+eif99CjzY/+eif99Cn0UAM82P8A56J/30KPNj/5 6J/30KfRQAzz
Y/8Anon/AH0KPNj/AOeif99Cn0UAM82P/non/fQo82P/AJ6J/wB9Cn0UAM82 P/non/fQo82P
/non/fQp9FADPNj/AOeif99CjzY/+eif99Cn0UAM82P/AJ6J/wB9CjzY/wDn on/fQp9FADPN
j/56J/30KPNj/wCeif8AfQp9FAEUssZicB1J2nvTvNj/AOeif99CiX/Uv/um n0AM82P/AJ6J
/wB9CjzY/wDnon/fQp9FADPNj/56J/30KPNj/wCeif8AfQp9FADPNj/56J/3 0KPNj/56J/30
KfRQAzzY/wDnon/fQo82P/non/fQp9FAHyl8VP8AkedT/wCvlv6UUfFT/ked T/6+W/pRX29P
+FD/AAx/JHmR6+r/ADPQvBP/ACWHVv8Ar/v/AP0M16qfvH615R4NjEvxd1mN iwV77UFJVip5
Y9COQfcV6GfDejg4+ySf+Bc3/wAXXzWdfx4/4UdWD+GXqzTqt4V/5jP/AGEn /wDQEqp/wjej
/wDPpJ/4Fzf/ABdT+E4IY49WjiRo40v2VVEjHAEcfckk15MNzrZ0lFM8pfV/ ++z/AI0eUvq/
/fZ/xrQkfRTPKX1f/vs/40eUvq//AH2f8aAH0Uzyl9X/AO+z/jR5S+r/APfZ /wAaAH0Uzyl9
X/77P+NHlL6v/wB9n/GgB9FM8pfV/wDvs/40eUvq/wD32f8AGgB9FM8pfV/+ +z/jR5S+r/8A
fZ/xoAfRTPKX1f8A77P+NHlL6v8A99n/ABoAfRTPKX1f/vs/40eUvq//AH2f 8aACX7g/3l/m
KfUUkahRy33h/EfUU7yl9X/77P8AjQA+imeUvq//AH2f8aPKX1f/AL7P+NAD 6KZ5S+r/APfZ
/wAaPKX1f/vs/wCNAD6KZ5S+r/8AfZ/xo8pfV/8Avs/40APopnlL6v8A99n/ ABo8pfV/++z/
AI0APopnlL6v/wB9n/Gjyl9X/wC+z/jQA+mRf6lP90UeUvq//fZ/xpsUamJD lvuj+I0dQJaK
Z5S+r/8AfZ/xo8pfV/8Avs/40APopnlL6v8A99n/ABo8pfV/++z/AI0APopn lL6v/wB9n/Gj
yl9X/wC+z/jQA+imeUvq/wD32f8AGjyl9X/77P8AjQA+imeUvq//AH2f8aPK X1f/AL7P+NAD
6KZ5S+r/APfZ/wAaPKX1f/vs/wCNAD6KZ5S+r/8AfZ/xo8pfV/8Avs/40APo pnlL6v8A99n/
ABo8pfV/++z/AI0APopnlL6v/wB9n/Gjyl9X/wC+z/jQAS/6l/8AdNPqKWNR E5y33T/Ead5S
+r/99n/GgB9FM8pfV/8Avs/40eUvq/8A32f8aAH0Uzyl9X/77P8AjR5S+r/9 9n/GgB9FM8pf
V/8Avs/40eUvq/8A32f8aAH0Uzyl9X/77P8AjR5S+r/99n/GgD5V+Kn/ACPO p/8AXy39KKPi
p/yPOp/9fLf0or7en/Ch/hj+SPMj19X+Z01j4os/C3xJ1zULlfN8vUbxfKVg Cd0hHeuoPxo0
Un/kHXH/AH/X/CvF/Gv/ACPniH/sJ3P/AKNasKuephMPieWdWN3ZdSo88G1G XU+hD8aNF/6B
1x/3/T/Co9P+Mmh6d9p8nTrpvtE5nffOhwxAHGB0+UV8/wBFQsrwa+x+LH7S t/N+B9Gf8L20
n/oGTf8Af5f8KP8Ahe2k/wDQMm/7/L/hXznRT/s3Cfyfiw9pV/m/BH0Z/wAL 20n/AKBk3/f5
f8KP+F7aT/0DJv8Av8v+FfOdFH9m4T+T8WHtKv8AN+CPoz/he2k/9Ayb/v8A L/hR/wAL20n/
AKBk3/f5f8K+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf9/l/wAKP+F7aT/0 DJv+/wAv+FfO
dFH9m4T+T8WHtKv834I+jP8Ahe2k/wDQMm/7/L/hR/wvbSf+gZN/3+X/AAr5 zoo/s3Cfyfiw
9pV/m/BH0Z/wvbSf+gZN/wB/l/wo/wCF7aT/ANAyb/v8v+FfOdFH9m4T+T8W HtKv834I+jP+
F7aT/wBAyb/v8v8AhR/wvbSf+gZN/wB/l/wr5zoo/s3Cfyfiw9pV/m/BH0Z/ wvXSf+gZN/3+
Wj/he2k/9Ayb/v8AL/hXznRR/ZuE/k/Fh7Sr/N+B9Ft8dNIYYOmT9Qf9cv8A hS/8L20n/oGT
f9/l/wAK+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf8Af5f8KP8Aheuk/wDQ Mm/7/LXznRR/
ZuE/k/Fh7Sr/ADfgj6M/4XtpP/QMm/7/AC/4Uf8AC9tJ/wCgZN/3+X/CvnOi j+zcJ/J+LD2l
X+b8EfRn/C9dJ/6Bk3/f5aP+F7aT/wBAyb/v8v8AhXznRR/ZuE/k/Fh7Sr/N +CPoz/he2k/9
Ayb/AL/L/hR/wvbSf+gZN/3+X/CvnOij+zcJ/J+LD2lX+b8EfRn/AAvbSf8A oGTf9/l/wo/4
XtpP/QMm/wC/y/4V850Uf2bhP5PxYe0q/wA34H0Z/wAL20n/AKBk3/f5f8KR fjppCqFGmTYA
x/rl/wAK+dKKP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf8Af5f8KP8Ahe2k/wDQ Mm/7/L/hXznR
R/ZuE/k/Fh7Sr/N+CPoz/he2k/8AQMm/7/L/AIUf8L20n/oGTf8Af5f8K+c6 KP7Nwn8n4sPa
Vf5vwR9Gf8L20n/oGTf9/l/wo/4XtpP/AEDJv+/y/wCFfOdFH9m4T+T8WHtK v834H0Z/wvbS
f+gZN/3+X/Cj/he2k/8AQMm/7/L/AIV850Uf2bhP5PxYe0q/zfgfRn/C9tJ/ 6Bk3/f5f8KP+
F7aT/wBAyb/v8v8AhXznRR/ZuE/k/Fh7Sr/N+CPoz/he2k/9Ayb/AL/L/hR/ wvbSf+gZN/3+
X/CvnOij+zcJ/J+LD2lX+b8D6M/4XtpP/QMm/wC/y/4Uf8L20n/oGTf9/l/w r5zoo/s3Cfyf
iw9pV/m/BH0Z/wAL20n/AKBk3/f5f8KP+F7aT/0DJv8Av8v+FfOdFH9m4T+T 8WHtKv8AN+CP
oz/he2k/9Ayb/v8AL/hR/wAL20n/AKBk3/f5f8K+c6KP7Nwn8n4sPaVf5vwP otvjppDKVOmT
4Ix/rl/wpf8Ahe2k/wDQMm/7/L/hXznRR/ZuE/k/Fh7Sr/N+CPoz/he2k/8A QMm/7/L/AIUf
8L20n/oGTf8Af5f8K+c6KP7Nwn8n4sPaVf5vwR9Gf8L20n/oGTf9/l/wo/4X tpP/AEDJv+/y
/wCFfOdFH9m4T+T8WHtKv834H0Z/wvbSf+gZN/3+X/Cj/he2k/8AQMm/7/L/ AIV850Uf2bhP
5PxYe0q/zfgj6M/4XtpP/QMm/wC/y/4Uf8L20n/oGTf9/l/wr5zoo/s3Cfyf iw9pV/m/A6Xx
vrEGveIbnUrdSqTyGQKxBK5xxxRXNUV26JJLZJL7iYqyP//Z
--------------080806070908060205050505--
|
|
|
Re: Are multiple lines in Grid possible? [message #582814 is a reply to message #35835] |
Thu, 31 May 2007 14:33 |
Chris Gross Messages: 471 Registered: July 2009 |
Senior Member |
|
|
Hi Oliver,
The screenshot on the Grid page is from the examples plugin. You can
download that to get a nice little UI that will allow you to manipulate
the styles and options on the Grid.
At this point, you should open a bug against Grid and start attaching
patches so, like Tom said, others can take a look and contribute. I
would like to give it a quick look through as well.
Regards,
-Chris
Oliver wrote:
> Chris,
>
> thanks for your detailed answer!
>
> I have looked into this a little and have made a quick
> first attempt (see screenshot).
>
> It seems to work so far. However, I guess that
> issues will arise when testing it with more advanced features
> of Grid (e.g. checkboxes). Also, I have not yet examined
> dynamic changes of heights of individual rows.
>
> What I have changed: The item height specified in Grid
> is now called _default_ item height (e.g. setDefaultItemHeight()
> instead of setItemHeight()). Each GridItem now has a height
> which may be -1 (the default) to indicate that the parent
> Grid's default item height should be used for this GridItem.
> This way, nothing changes from a client perspective when
> all items should have the same height. On the other hand,
> specifying an individual height for an item is easy:
>
> item3.setHeight(50);
>
> Currently, the height of individual items is only set
> programmatically through GridItem.setHeight(int), i.e.
> the preferred height from the cell renderer is currently
> not used for that.
>
> If you could provide me with an example that uses most
> of Grid's features (like the one shown in the screenshot
> on the Grid home page), this would help me a lot in testing
> my changes ...
>
> Cheers,
> Oliver
>
>
>
> Chris Gross schrieb:
>> Unfortunately I don't have any existing code for this feature. I've
>> just been thinking about it but not actually coding it. The code
>> changes necessary for this feature wouldn't be particularly easy. I
>> suspect there will be a variety of places in the Grid code where I
>> multiply the row height by a number of rows to determine some
>> dimensions. Like:
>>
>> getRowCount() * getItemHeight() = total height of all rows
>>
>> Those places would have to be changed to iterate through all the rows
>> because each row would now potentially have a different height. That
>> could also be a performance concern. Other parts of the code will
>> likely rely on getItem(Point) to determine what row is where so that
>> may help this change somewhat. But I still think its not an easy
>> piece for someone to code as a patch.
>>
>> Regards,
>> -Chris
>
>
> ------------------------------------------------------------ ------------
>
|
|
| |
Goto Forum:
Current Time: Fri Dec 13 17:51:43 GMT 2024
Powered by FUDForum. Page generated in 0.05668 seconds
|