Skip to main content



      Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Gantt Charts in RAP
Gantt Charts in RAP [message #94545] Tue, 24 June 2008 14:41 Go to next message
Eclipse UserFriend
Originally posted by: jonathan.reid.siemens.com

I have a few questions.

I have been tasked with creating a Gantt based scheduling component (like
MS Project) in RAP. I was wondering has anyone been successful in
implementing something like this in RAP?

Does anyone have have an opinion on the best way to do this? For example
should I try to create a custom widget with DHTML, a flex component (if it
is possible to host this in RAP) or in GEF (it a web based renderer is
ever made available for RAP).

If I was to create a Gantt chart using SWT how much of this code would be
likely to translate to RAP?

Sorry for the vagueness of my questions I am new to RAP :)

TIA

Jonny Reid
Re: Gantt Charts in RAP [message #94605 is a reply to message #94545] Wed, 25 June 2008 04:23 Go to previous messageGo to next message
Eclipse UserFriend
Hi Jonathan,

I would try to use one of the reporting frameworks (Jasper reports,
Birt, etc.) and generate an image which is displayed in your app.

However, if you need user interaction within the GANT chart you probably
need to write a custom widget (see other threads for more information).

Drawing the chart directly with SWT classes doesn't work in RAP as the
Graphics classes are not supported (yet).

Regards,
Stefan.

Jonathan Reid schrieb:
> I have a few questions.
>
> I have been tasked with creating a Gantt based scheduling component
> (like MS Project) in RAP. I was wondering has anyone been successful in
> implementing something like this in RAP?
>
> Does anyone have have an opinion on the best way to do this? For example
> should I try to create a custom widget with DHTML, a flex component (if
> it is possible to host this in RAP) or in GEF (it a web based renderer
> is ever made available for RAP).
>
> If I was to create a Gantt chart using SWT how much of this code would
> be likely to translate to RAP?
>
> Sorry for the vagueness of my questions I am new to RAP :)
>
> TIA
> Jonny Reid
>
Re: Gantt Charts in RAP [message #95003 is a reply to message #94605] Mon, 30 June 2008 04:08 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cheney_chen.i-len.com

Hi all,

I would try to implement the GANT chart like RAP demo online, I want to know
how it implements, is it use the already exist widget, like table or table
viewer? Is that possible to have some sample code to study?

I also want to know that whether RAP would provide user interaction within
the GANT chart in future?

Regards,
Cheney


Stefan Roeck wrote:

> Hi Jonathan,
>
> I would try to use one of the reporting frameworks (Jasper reports,
> Birt, etc.) and generate an image which is displayed in your app.
>
> However, if you need user interaction within the GANT chart you probably
> need to write a custom widget (see other threads for more information).
>
> Drawing the chart directly with SWT classes doesn't work in RAP as the
> Graphics classes are not supported (yet).
>
> Regards,
> Stefan.
>
> Jonathan Reid schrieb:
>> I have a few questions.
>>
>> I have been tasked with creating a Gantt based scheduling component
>> (like MS Project) in RAP. I was wondering has anyone been successful in
>> implementing something like this in RAP?
>>
>> Does anyone have have an opinion on the best way to do this? For example
>> should I try to create a custom widget with DHTML, a flex component (if
>> it is possible to host this in RAP) or in GEF (it a web based renderer
>> is ever made available for RAP).
>>
>> If I was to create a Gantt chart using SWT how much of this code would
>> be likely to translate to RAP?
>>
>> Sorry for the vagueness of my questions I am new to RAP :)
>>
>> TIA
>> Jonny Reid
>>
Re: Gantt Charts in RAP [message #95106 is a reply to message #95003] Mon, 30 June 2008 11:22 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: rherrmann.innoopract.com

Hi Cheney,

the Gantt widget is composed out of 'colored' Compsoites and some
Labels.

Attached is a zip containing two plug-ins, one for the Gantt widget
and a second for a JFace-like viewer-abstraction.

As the Gantt widget was only built for the RMS demo application,
there are no plans to enhance it.

Cheers,
Rüdiger

Cheney wrote:
> Hi all,
>
> I would try to implement the GANT chart like RAP demo online, I want to know
> how it implements, is it use the already exist widget, like table or table
> viewer? Is that possible to have some sample code to study?
>
> I also want to know that whether RAP would provide user interaction within
> the GANT chart in future?
>
> Regards,
> Cheney
>
>
> Stefan Roeck wrote:
>
>> Hi Jonathan,
>>
>> I would try to use one of the reporting frameworks (Jasper reports,
>> Birt, etc.) and generate an image which is displayed in your app.
>>
>> However, if you need user interaction within the GANT chart you probably
>> need to write a custom widget (see other threads for more information).
>>
>> Drawing the chart directly with SWT classes doesn't work in RAP as the
>> Graphics classes are not supported (yet).
>>
>> Regards,
>> Stefan.
>>
>> Jonathan Reid schrieb:
>>> I have a few questions.
>>>
>>> I have been tasked with creating a Gantt based scheduling component
>>> (like MS Project) in RAP. I was wondering has anyone been successful in
>>> implementing something like this in RAP?
>>>
>>> Does anyone have have an opinion on the best way to do this? For example
>>> should I try to create a custom widget with DHTML, a flex component (if
>>> it is possible to host this in RAP) or in GEF (it a web based renderer
>>> is ever made available for RAP).
>>>
>>> If I was to create a Gantt chart using SWT how much of this code would
>>> be likely to translate to RAP?
>>>
>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>
>>> TIA
>>> Jonny Reid
>>>
>
Re: Gantt Charts in RAP [message #95123 is a reply to message #95106] Mon, 30 June 2008 11:23 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: rherrmann.innoopract.com

This is a multi-part message in MIME format.
--------------040601080902070204060506
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

sorry, forgot the actual attachment, here you go...

R
Re: Gantt Charts in RAP [message #95405 is a reply to message #95123] Tue, 01 July 2008 05:15 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cheney_chen.i-len.com

Hi Rüdiger,

Thanks in advance for your help.

From the Gantt Widget I got some hint that how to implement my use case, But
the JFace-like viewer-abstraction plug-in I didn't understand very much,
well, there are several provider like
AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How about
the contentProvider and how to use these label provider together, can you
show me the just sample code to use the JFace-like viewer-abstraction
plug-in or explain how to use it, sorry for my request, because I don't
know much about JFace viewer.

Thanks again.

Cheney


Rüdiger Herrmann wrote:

> sorry, forgot the actual attachment, here you go...
>
> Rüdiger Herrmann wrote:
>> Hi Cheney,
>>
>> the Gantt widget is composed out of 'colored' Compsoites and some Labels.
>>
>> Attached is a zip containing two plug-ins, one for the Gantt widget and
>> a second for a JFace-like viewer-abstraction.
>>
>> As the Gantt widget was only built for the RMS demo application, there
>> are no plans to enhance it.
>>
>> Cheers,
>> Rüdiger
>>
>> Cheney wrote:
>>> Hi all,
>>>
>>> I would try to implement the GANT chart like RAP demo online, I want
>>> to know
>>> how it implements, is it use the already exist widget, like table or
>>> table
>>> viewer? Is that possible to have some sample code to study?
>>>
>>> I also want to know that whether RAP would provide user interaction
>>> within
>>> the GANT chart in future?
>>>
>>> Regards,
>>> Cheney
>>>
>>>
>>> Stefan Roeck wrote:
>>>
>>>> Hi Jonathan,
>>>>
>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>
>>>> However, if you need user interaction within the GANT chart you
>>>> probably need to write a custom widget (see other threads for more
>>>> information).
>>>>
>>>> Drawing the chart directly with SWT classes doesn't work in RAP as the
>>>> Graphics classes are not supported (yet).
>>>>
>>>> Regards,
>>>> Stefan.
>>>>
>>>> Jonathan Reid schrieb:
>>>>> I have a few questions.
>>>>>
>>>>> I have been tasked with creating a Gantt based scheduling component
>>>>> (like MS Project) in RAP. I was wondering has anyone been successful
>>>>> in implementing something like this in RAP?
>>>>>
>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>> example
>>>>> should I try to create a custom widget with DHTML, a flex component
>>>>> (if it is possible to host this in RAP) or in GEF (it a web based
>>>>> renderer is ever made available for RAP).
>>>>>
>>>>> If I was to create a Gantt chart using SWT how much of this code would
>>>>> be likely to translate to RAP?
>>>>>
>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>
>>>>> TIA
>>>>> Jonny Reid
>>>>>
>>>
Re: Gantt Charts in RAP [message #95448 is a reply to message #95405] Tue, 01 July 2008 09:27 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: rherrmann.innoopract.com

Hi Cheney,

for a general introduction to JFace viewers, please google for
"JFace viewer", "JFace article" or similar. In addition you can
refer to the JFace viewer JavaDoc.

With a general understanding of how JFace viewers work, you probably
won't have difficulties to use the Gantt viewer and provider. If
still struggling, then come back here

Cheers
Rüdiger


Cheney wrote:
> Hi Rüdiger,
>
> Thanks in advance for your help.
>
> From the Gantt Widget I got some hint that how to implement my use case, But
> the JFace-like viewer-abstraction plug-in I didn't understand very much,
> well, there are several provider like
> AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How about
> the contentProvider and how to use these label provider together, can you
> show me the just sample code to use the JFace-like viewer-abstraction
> plug-in or explain how to use it, sorry for my request, because I don't
> know much about JFace viewer.
>
> Thanks again.
>
> Cheney
>
>
> Rüdiger Herrmann wrote:
>
>> sorry, forgot the actual attachment, here you go...
>>
>> Rüdiger Herrmann wrote:
>>> Hi Cheney,
>>>
>>> the Gantt widget is composed out of 'colored' Compsoites and some Labels.
>>>
>>> Attached is a zip containing two plug-ins, one for the Gantt widget and
>>> a second for a JFace-like viewer-abstraction.
>>>
>>> As the Gantt widget was only built for the RMS demo application, there
>>> are no plans to enhance it.
>>>
>>> Cheers,
>>> Rüdiger
>>>
>>> Cheney wrote:
>>>> Hi all,
>>>>
>>>> I would try to implement the GANT chart like RAP demo online, I want
>>>> to know
>>>> how it implements, is it use the already exist widget, like table or
>>>> table
>>>> viewer? Is that possible to have some sample code to study?
>>>>
>>>> I also want to know that whether RAP would provide user interaction
>>>> within
>>>> the GANT chart in future?
>>>>
>>>> Regards,
>>>> Cheney
>>>>
>>>>
>>>> Stefan Roeck wrote:
>>>>
>>>>> Hi Jonathan,
>>>>>
>>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>>
>>>>> However, if you need user interaction within the GANT chart you
>>>>> probably need to write a custom widget (see other threads for more
>>>>> information).
>>>>>
>>>>> Drawing the chart directly with SWT classes doesn't work in RAP as the
>>>>> Graphics classes are not supported (yet).
>>>>>
>>>>> Regards,
>>>>> Stefan.
>>>>>
>>>>> Jonathan Reid schrieb:
>>>>>> I have a few questions.
>>>>>>
>>>>>> I have been tasked with creating a Gantt based scheduling component
>>>>>> (like MS Project) in RAP. I was wondering has anyone been successful
>>>>>> in implementing something like this in RAP?
>>>>>>
>>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>>> example
>>>>>> should I try to create a custom widget with DHTML, a flex component
>>>>>> (if it is possible to host this in RAP) or in GEF (it a web based
>>>>>> renderer is ever made available for RAP).
>>>>>>
>>>>>> If I was to create a Gantt chart using SWT how much of this code would
>>>>>> be likely to translate to RAP?
>>>>>>
>>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>>
>>>>>> TIA
>>>>>> Jonny Reid
>>>>>>
>
Re: Gantt Charts in RAP [message #95735 is a reply to message #95448] Wed, 02 July 2008 06:31 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cheney_chen.i-len.com

Hi Rüdiger,

Thanks for your hint.

Now I know how to use the JFace-like viewer-abstraction, Attached is a zip
containing three plug-ins, one for my sample that create the gantt chart
with JFace-like viewer-abstraction,the other two is you provided before.
Use JFace-like viewer-abstraction is great, It decouple the domain model
from view. Can you please take a second to check my sample code is the
right way to use the JFace-like viewer-abstraction?

The gantt plug-ins you provided is great, thanks for your good job. But the
function is not enough for me, in my use case, first, I need to show
several task or project in one row, in interface is several different color
block in one row; second, I need the selection event for every color block
in order to show some information in different view, for this request I
think that use the Button instead of Label in Gantt Widget would possible,
But I think that use the ISelectionService should be the best way; third, I
want the gantt widget support drag and drop, is it possible can implement
in RAP now?

How do think about my use case that mention above, which one is possible can
implement in RAP now and which is impossible? If it is possible, can you
give me some ideas?

Regards,

Cheney


Rüdiger Herrmann wrote:

>
> Hi Cheney,
>
> for a general introduction to JFace viewers, please google for
> "JFace viewer", "JFace article" or similar. In addition you can
> refer to the JFace viewer JavaDoc.
>
> With a general understanding of how JFace viewers work, you probably
> won't have difficulties to use the Gantt viewer and provider. If
> still struggling, then come back here
>
> Cheers
> Rüdiger
>
>
> Cheney wrote:
>> Hi Rüdiger,
>>
>> Thanks in advance for your help.
>>
>> From the Gantt Widget I got some hint that how to implement my use case,
>> But the JFace-like viewer-abstraction plug-in I didn't understand very
>> much, well, there are several provider like
>> AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How
>> about the contentProvider and how to use these label provider together,
>> can you show me the just sample code to use the JFace-like
>> viewer-abstraction plug-in or explain how to use it, sorry for my
>> request, because I don't know much about JFace viewer.
>>
>> Thanks again.
>>
>> Cheney
>>
>>
>> Rüdiger Herrmann wrote:
>>
>>> sorry, forgot the actual attachment, here you go...
>>>
>>> Rüdiger Herrmann wrote:
>>>> Hi Cheney,
>>>>
>>>> the Gantt widget is composed out of 'colored' Compsoites and some
>>>> Labels.
>>>>
>>>> Attached is a zip containing two plug-ins, one for the Gantt widget and
>>>> a second for a JFace-like viewer-abstraction.
>>>>
>>>> As the Gantt widget was only built for the RMS demo application, there
>>>> are no plans to enhance it.
>>>>
>>>> Cheers,
>>>> Rüdiger
>>>>
>>>> Cheney wrote:
>>>>> Hi all,
>>>>>
>>>>> I would try to implement the GANT chart like RAP demo online, I want
>>>>> to know
>>>>> how it implements, is it use the already exist widget, like table or
>>>>> table
>>>>> viewer? Is that possible to have some sample code to study?
>>>>>
>>>>> I also want to know that whether RAP would provide user interaction
>>>>> within
>>>>> the GANT chart in future?
>>>>>
>>>>> Regards,
>>>>> Cheney
>>>>>
>>>>>
>>>>> Stefan Roeck wrote:
>>>>>
>>>>>> Hi Jonathan,
>>>>>>
>>>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>>>
>>>>>> However, if you need user interaction within the GANT chart you
>>>>>> probably need to write a custom widget (see other threads for more
>>>>>> information).
>>>>>>
>>>>>> Drawing the chart directly with SWT classes doesn't work in RAP as
>>>>>> the Graphics classes are not supported (yet).
>>>>>>
>>>>>> Regards,
>>>>>> Stefan.
>>>>>>
>>>>>> Jonathan Reid schrieb:
>>>>>>> I have a few questions.
>>>>>>>
>>>>>>> I have been tasked with creating a Gantt based scheduling component
>>>>>>> (like MS Project) in RAP. I was wondering has anyone been successful
>>>>>>> in implementing something like this in RAP?
>>>>>>>
>>>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>>>> example
>>>>>>> should I try to create a custom widget with DHTML, a flex component
>>>>>>> (if it is possible to host this in RAP) or in GEF (it a web based
>>>>>>> renderer is ever made available for RAP).
>>>>>>>
>>>>>>> If I was to create a Gantt chart using SWT how much of this code
>>>>>>> would be likely to translate to RAP?
>>>>>>>
>>>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>>>
>>>>>>> TIA
>>>>>>> Jonny Reid
>>>>>>>
>>
Re: Gantt Charts in RAP [message #95752 is a reply to message #95735] Wed, 02 July 2008 06:34 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: cheney_chen.i-len.com

--nextPart1340199.r0nfUOy7lS
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit


sorry, forgot the actual attachment, here you go...

Cheney wrote:

> Hi Rüdiger,
>
> Thanks for your hint.
>
> Now I know how to use the JFace-like viewer-abstraction, Attached is a zip
> containing three plug-ins, one for my sample that create the gantt chart
> with JFace-like viewer-abstraction,the other two is you provided before.
> Use JFace-like viewer-abstraction is great, It decouple the domain model
> from view. Can you please take a second to check my sample code is the
> right way to use the JFace-like viewer-abstraction?
>
> The gantt plug-ins you provided is great, thanks for your good job. But
> the function is not enough for me, in my use case, first, I need to show
> several task or project in one row, in interface is several different
> color block in one row; second, I need the selection event for every color
> block in order to show some information in different view, for this
> request I think that use the Button instead of Label in Gantt Widget would
> possible, But I think that use the ISelectionService should be the best
> way; third, I want the gantt widget support drag and drop, is it possible
> can implement in RAP now?
>
> How do think about my use case that mention above, which one is possible
> can implement in RAP now and which is impossible? If it is possible, can
> you give me some ideas?
>
> Regards,
>
> Cheney
>
>
> Rüdiger Herrmann wrote:
>
>>
>> Hi Cheney,
>>
>> for a general introduction to JFace viewers, please google for
>> "JFace viewer", "JFace article" or similar. In addition you can
>> refer to the JFace viewer JavaDoc.
>>
>> With a general understanding of how JFace viewers work, you probably
>> won't have difficulties to use the Gantt viewer and provider. If
>> still struggling, then come back here
>>
>> Cheers
>> Rüdiger
>>
>>
>> Cheney wrote:
>>> Hi Rüdiger,
>>>
>>> Thanks in advance for your help.
>>>
>>> From the Gantt Widget I got some hint that how to implement my use case,
>>> But the JFace-like viewer-abstraction plug-in I didn't understand very
>>> much, well, there are several provider like
>>> AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How
>>> about the contentProvider and how to use these label provider together,
>>> can you show me the just sample code to use the JFace-like
>>> viewer-abstraction plug-in or explain how to use it, sorry for my
>>> request, because I don't know much about JFace viewer.
>>>
>>> Thanks again.
>>>
>>> Cheney
>>>
>>>
>>> Rüdiger Herrmann wrote:
>>>
>>>> sorry, forgot the actual attachment, here you go...
>>>>
>>>> Rüdiger Herrmann wrote:
>>>>> Hi Cheney,
>>>>>
>>>>> the Gantt widget is composed out of 'colored' Compsoites and some
>>>>> Labels.
>>>>>
>>>>> Attached is a zip containing two plug-ins, one for the Gantt widget
>>>>> and a second for a JFace-like viewer-abstraction.
>>>>>
>>>>> As the Gantt widget was only built for the RMS demo application, there
>>>>> are no plans to enhance it.
>>>>>
>>>>> Cheers,
>>>>> Rüdiger
>>>>>
>>>>> Cheney wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I would try to implement the GANT chart like RAP demo online, I want
>>>>>> to know
>>>>>> how it implements, is it use the already exist widget, like table or
>>>>>> table
>>>>>> viewer? Is that possible to have some sample code to study?
>>>>>>
>>>>>> I also want to know that whether RAP would provide user interaction
>>>>>> within
>>>>>> the GANT chart in future?
>>>>>>
>>>>>> Regards,
>>>>>> Cheney
>>>>>>
>>>>>>
>>>>>> Stefan Roeck wrote:
>>>>>>
>>>>>>> Hi Jonathan,
>>>>>>>
>>>>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>>>>
>>>>>>> However, if you need user interaction within the GANT chart you
>>>>>>> probably need to write a custom widget (see other threads for more
>>>>>>> information).
>>>>>>>
>>>>>>> Drawing the chart directly with SWT classes doesn't work in RAP as
>>>>>>> the Graphics classes are not supported (yet).
>>>>>>>
>>>>>>> Regards,
>>>>>>> Stefan.
>>>>>>>
>>>>>>> Jonathan Reid schrieb:
>>>>>>>> I have a few questions.
>>>>>>>>
>>>>>>>> I have been tasked with creating a Gantt based scheduling component
>>>>>>>> (like MS Project) in RAP. I was wondering has anyone been
>>>>>>>> successful in implementing something like this in RAP?
>>>>>>>>
>>>>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>>>>> example
>>>>>>>> should I try to create a custom widget with DHTML, a flex component
>>>>>>>> (if it is possible to host this in RAP) or in GEF (it a web based
>>>>>>>> renderer is ever made available for RAP).
>>>>>>>>
>>>>>>>> If I was to create a Gantt chart using SWT how much of this code
>>>>>>>> would be likely to translate to RAP?
>>>>>>>>
>>>>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>>>>
>>>>>>>> TIA
>>>>>>>> Jonny Reid
>>>>>>>>
>>>


--nextPart1340199.r0nfUOy7lS
Content-Type: application/x-zip; name="GanttTest.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="GanttTest.zip"

UEsDBBQACAAIABWO4jgAAAAAAAAAAAAAAAAUAAAAR2FudHRUZXN0Ly5jbGFz c3BhdGiVj8sKwjAQ
Rdf2K0L2prpz0QciFXRRpdS11GRoo3ES8xD9ey1SdKPgbu7lcC6T5LezIlew TmpM6ZRNKAHkWkhs
U7qrl+MZzbMo4apxzjS+y6LROwB6eycniSKlznJK+vJ1xl9BrnEAtW0ZcCWN A3YUnqkmIO+e02xd
FfvFpqznq7Ko/pcZAYxrC8zCJUgLYqtCK9H9MOngTfCD7CCxZ5P44/EHUEsH CD8cV6ijAAAALAEA
AFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAEgAAAEdhbnR0VGVzdC8ucHJv amVjdL2SzWoCMRSF
1/oUMvsm7c5FHEGlXbUI2geIyXWMTG5CkpE+fu/MRHEUoVBwd87JufnIj5j/ 2HpyghCNw1nxxl6L
CaBy2mA1K7637y/TYl6OhQ/uCCqtIKpgfKJyOR4JlBbKD4kpbSEmwTtPuXLW AqZS8LOiMG8RW82v
za4xtd54UGSyW9KYRN0GmeJCxUDVxkdgR52YcoGEPMmuD+ECpwEZqqalxt7y gRf8lvAXpNfAPiWa
PZ1z8TTiRh3Ayn/zcpCvmFCpCdBXe30HXtdNZfCrW2y5XelBf/AaeDtyloS7 vPrgF/0CUEsHCLEh
b8jmAAAAggIAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAGgAAAEdhbnR0 VGVzdC9HYW50dFRl
c3QubGF1bmNonVddb9pIFH3vr0BWHzcDVVfaalXatQrJVkoAEZKX1QqNxxcz ZDzjzocJqvrf944h
xpsaM/QhCgznXN977sdcf/z8nIteCdpwJYfROzKIeiCZSrnMhtHD4vrqQ/T5 05uPgjrJ1l+UXPHM
aWoR3bO7AoaR0hkBJnhhgGhaEMfJHkzm8ey2+gQ6QhOJUgKojK3VPHEWek+w G0a0KECmhOrMRL2S
CocmrXYQ9U9TnFU5usDiNK05KypMEOmRCp5SCy1MgwyZvSKiOYs/0KImnMZi qOwJjk79M5lOxv92
eMXwTO9VDfWHVehbxaok1Ky337dKP5mCMlgKxX70SQ6WYqC0TwrhMi5Nv5mq IgXClIb+DZXWLsDY
DjdTWFEn7NKLuDSWavtzrri0J1gVYSmgBFHTfu94GpdMuBSmhQ+QiuAUN8NL IXFZFSDZV9hYllwr
mYO0j1RzmghoKbhWxZt2N6k9lDfiyGw+vZnHd8t4fvNwN54s7muLV8r03n7H wDOwRJkfvatt42Dr
D6hm6+OR/4aHUhyPpMADTLfBYOsPQmW/4un99GH+ZbycxYu/l+j149fReF47 +7ousIV9MSXgW15Q
g1Vl1zOtSp5iK//C0x9bJRq9gHkmMVFxUQx9InpXI2UyTqS6Xzubqq0chufH T6DD+Em02hrQdyo9
9vrXyWI8n8S3FxvDstG7mcIir22VHLYX2xE80VTvqhJs2LpfxJNRPB9dbk9l t/9rrOn19Yl2PGGh
UI1ufjcYfBhc7ASqXAqwE5oflfYDM6xVG4Ys6JxLHM4zDSVXLvhKOGHPGbij 0lExawZ5ZsD6Djhc
iDXlPXl/mrBv12XiZNocKkzlhCf4x9xfh1H45+H/bxta0ucX3X761UdDcZKv /YjOc2x8n2cc4Vkr
9CXwatp5ApWpCUFKi2Xtb/HzYH+RJFymQT40wCTBZAU4A8+FBuM1DwBvVBKA 0k5annfHBt8cl+rZ
3xFBuH06gqBrawuyAdQ3HK4h41hiFzC6Sug1ARVegcahDt3qveCDvPGj+iyg cpOfe65v3BRyFQQK
rkhP2KxwLQpDXWRXb7uVP2DIt8EfZ3FGOR3gpOtW+7CBr5TOz4uNQH+JBQHr haAVnON8Teiuvd47
5jbu1QyFDl7xcKCP9kb3S3OsgQZuccf1+PWgrjfgszowZ/AtohINL4ig1O8p nVBX+PcRwuqXK6Vb
Jey3vIR9evMfUEsHCD4EcTuQAwAAwg0AAFBLAwQUAAgACAAVjuI4AAAAAAAA AAAAAAAAHgAAAEdh
bnR0VGVzdC9NRVRBLUlORi9NQU5JRkVTVC5NRmWOPwvCMBBH90K/Q+hsDhWn iouLOChFxT3Ws56m
SU0uVb+9EaX4Z8179/JbKEMH9Cy36DxZk4sB9NNkGsxeo1y8aQeHHVqqGnMx U4Z5Ew1R6FBJMh1f
3+ud1VT+eGPhyVQaOdYm7AJ2B58DnhNWeAnkUL5wLqyrAEtNjUdwqoFAvTT5 ey2DZ1tDS3iNvTSZ
1411LAtVnlUVKyfVqht4dG3cMG5ff06yIYygnz2DXwIcmZtfK00eUEsHCOwF D1m2AAAANQEAAFBL
AwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAKQAAAEdhbnR0VGVzdC9iaW4vZ2Fu dHR0ZXN0L0FwcGxp
Y2F0aW9uLmNsYXNzlVJdTxNBFD1Dly4uC0UEAb8RSVpFJj7XmDR+JE1WxQ9Q H6e7QxkcZprZKaT/
iRefIJr4A/xRxrvbKg0hIT7MvZk795x77r3z6/f3nwCeYD3EBMNiVxjvvcw9 b/V6WqXCK2tCBAxz
++JQcC1Ml7/t7MvUh6gyrFvX5TLVqpdL7o4812pXpoNUS95+abwbbFllPEP1 qTLKP2Oo1Bs7DMFz
m8kIFUzHCDHFUEuUkW/6Bx3pPoqOlgzziU2F3hFOFfdRMPB7KmdYSi7U2WSY Sp0UXm63y0rtCNew
GGKBYWVcaF/xLS38rnUH2+0Y17HEMDNEvlB5T4sBw1q9kYxjcmruSGVd6XM+ SmqGWKERXKjlk3Vf
O9Kke63sUOXWRVjGdCHnVozbuEOjHtZrmex9/yyb4V390rLJuV7EWVl+vm6z QaMIs79drV5KTtli
CGV4/F+VGKIPtu9S+UoVu5obm8Zm8XmwCtoKnUn6cRPkafNkr9CNk2fkJx+e IPpWPsdkq2Uwxkxp
ywTMokae6HF1BP5M2RXy86f0aX5g+csJbrx+tHGKm8f/mGbLjBoCwsWELBjv DVEjxoD8XYoxeq+S
1PulxLWS4cEfUEsHCIz+bWfFAQAAJwMAAFBLAwQUAAgACAAVjuI4AAAAAAAA AAAAAAAAOQAAAEdh
bnR0VGVzdC9iaW4vZ2FudHR0ZXN0L0FwcGxpY2F0aW9uQWN0aW9uQmFyQWR2 aXNvci5jbGFzc51U
a08TURA9ty3dPlZBrPgAoQjl0SIrCqIWUWhC0qQYDQjRb7fbS7mw3SW7W9Cf pVGImvgD/FHGuVto
oUSsfNmdOztzzsyZ2fvr9/efAGZQ0BBiyFS57fu+8HxjaW/Pkib3pWMvmeq5 zN2lyr70HFdDhCHn
uFVDmJbc84RRlwZvxRvtCQwJ8UH6DTfDfKk9N/jgHeet0NFxP44WNx13tyxs c7vhzzNEF6Qt/UWG
2YlzGKf4i80CCo69Jat1V7j5yQ2GSMGpiATCSOrQEGPoLklbvKrXysJd52VL MPSWHJNbG9yV6nzs
jPjb0mMYL3WkDxWaMJvEDDP/XStDssZ3ReMTEY+ea7clzqa0K84BtRfHDdzU 0Efhneir4xZuU2tv
3hbXGcY6mkk+QRz9OgZwl4ZhuoL7pM77Dqq75MjjYBjS0YVogqxhHfcwwhBz RVV6vtI2c5Z7Z4ub
4hj8RNpg8tGDoBDC+GetJP6WtKxVYddpKgzZiyhU1Cq3eTXYMA2TbeqfiT4V HEOOoWtsRVoihvs0
BqKkzZyAoTbzAe3aRGmH73PD4nbVWPNdaVfz5z2TG0k8xKyGRyRFR1XqmMNj hjCvVBiMi1qjfSSS
cl2dir6oEZkq8IlCoCFotROBxjvUhwanulSu9oX7m0zqV1pz6q4plFIM6Qt+ u2mlDoNetG3hFizu
ecLTsMQwd6ndY+hpd2GYljBM9yVDSO0kWWGy6SahZ5xOi+QP0TuazR0h8Yms EHR6JgLvdcpJ4QpZ
fY0oXEU3EFg9uEYYEfRSVAPrNWGrqFT2M1K5Q9z5isFs9gsGD5FuIV8N6hlE EkOUmT6FnmqipzCK
TIA+hvFj9B06qcyBH5h415vtnTrC9Gpu6htmQphqsMy3WPqochBKEiN0zhDT GPoJS7GlGzhNtgE8
xTNi0amnPBYCRZ4HSIt4EWjB8JKukeVo/A9QSwcImnRIbcgCAAB+BgAAUEsD BBQACAAIABWO4jgA
AAAAAAAAAAAAAAA5AAAAR2FudHRUZXN0L2Jpbi9nYW50dHRlc3QvQXBwbGlj YXRpb25Xb3JrYmVu
Y2hBZHZpc29yLmNsYXNznVJtaxNBEH42SZP0mr4Yk6q11fpBTCz28JNgVCgx ykGQYEKKn2RzWa+r
5+6xtxf/ln4qKPgD/FHi3OVINZQg/TKzMzvzzDMvv35//wngMQ4rKDDcD7iy 1orYuidRFEqfW6nV
qTafJkL5ZyfTmYy1qaDEcKRN4Ao/lFEs3ES6/CLeXU5g2Br03g4Hve7IG/fe ey8Z6v2PfMbdkKvA
HVojVdBh2OxqFVuiMOZhIqpYZ2i+ThmNiNFxJEwcCd/KmWAoP5NK2hcMxVZ7 zFDq6qlwUMRWDQ42
GLb7Uok3yeeJMCM+CUVaUfs8HHMjUzt3luyZjBke9P+rcaK47xvBrVj8nEo1 1V8WfYat/oq5eEtp
1O4HGSRGmE57Vd7l1ToV7NIeVjP/J8NBEzfTAd1ieHplpjRux1/YDE+uCMRw EAjr0RolD+e/g4sV
e1OGRqt92Zk4Q50YX7yS6QYPV+zrOE3GPdCV0JEz7GENZdIVsgqokpel10Ky Rh6XNCO99vAcm9+y
kG2S5cy5gR2StXkArqGeAV5HI09+TmAF0us/0Hx3dI4bX5cAdjKA3XlQDpC+ 9nA7q7uPgxzqUc6j
WK8ugzT+YlFcsLiTRd39A1BLBwh8f4UjyQEAAMwDAABQSwMEFAAIAAgAFY7i OAAAAAAAAAAAAAAA
AD8AAABHYW50dFRlc3QvYmluL2dhbnR0dGVzdC9BcHBsaWNhdGlvbldvcmti ZW5jaFdpbmRvd0Fk
dmlzb3IuY2xhc3OdVO1OE0EUPdOWlpblo0VQQb5EsLTAioIIBbSgYJP6kZRA 8JfLdiyjy26zO6XG
p/BR9A+kkvgAPpTxTtsULKQEusnu7Pbcc8899878+fvrN4A5vA7Bx5AsGLaU kntSTxeLljANKRx7
13G/7HPbPNgVdt4pp/NHwnPcEAIMc45b0LlpiaLH9ZLQjbMo/fIwhuCKsIVc Y1iOZ1uEZ5riNxz7
kyiUXO6mpnYYAhtOnkfgR1hDG4IM3Vlh87elw33ubhv7FmeIZR3TsHYMV6j3 +seAPBAew0z2GqWm
GCJmIz3D4g11M/SbLjckT5sKum64DVM+tvaiEXDehVYRzRlSIfQyTFxadDM2 ghj6lKv9DPM30EXd
mbt2FENn0eU1y94Vuc3gj0/tRMAwqOEehhh6C1w2W8qwFG/pQ4tuhDDCMHw+ 1itLveAaxQNhevp7
R9gygmGMKSvuM7TFM5mpnQ48wGQIEwwLN0qr4SHiDF0elxnaBsKwcuIbzeX4 /0ZflJKq5U5oSGK6
RpA7UMyORU7SYMc/1BCzGnSFiNYROWnIkqd2RzvmaJK31AyMbtMQKPQTDfNY YGgn9LaQaov0xbOf
jSNDtwy7oOekK+xCtaldRceTZx1S0c80LGGZIdzojarkQkea7Uh1YAVrIawy jFwB1fAcL0heQRXD
LYthrIlfWVUWeQJ4ehWSimAdL0PYYBhqCdTwShmlUelvjK/ikBqRJ4NyTsk1 +aZQXkxeeTjMKq8w
RoPqh/oFaEUHEt1D9LYGH11AMJE8QftPWvkQoXuk+rWbkD3ooFV/DQUNnVWW ILroX0ZXD6J1rlXK
oFDhU8T2iO7WjwadSgf0nqMKN6jCRHW7SnUHd+tUZUqsUHriGAPZ5CmG96Ls e5RNn2C0gnEfkv4K
pmqPGXrEHlXw2Icz/QOUEkTbRqSKdoS+TGIQs7RXz0TodRFtSDTqedoQkSZM VbYSUcEiQwV0DgSO
kW42aoSOpNEqsVavtEbMsFlFbv0DUEsHCDJusUHvAgAAyQYAAFBLAwQUAAgA CAAVjuI4AAAAAAAA
AAAAAAAAKQAAAEdhbnR0VGVzdC9iaW4vZ2FudHR0ZXN0L1BlcnNwZWN0aXZl LmNsYXNzfVLLbtNA
FD2TuHZI3ZfbUGhC24SXk6BarIOQECIoknlIqbzobmKP3KmMXdmT0H4WKxQW fAAfhbgTR2qkAAvf
45l75tx77syv3z9+AniJvoUKQyPmqVJKFMr7LPLiWoRKzoQFg2H3is+4l/A0 9j5NrihhwWToZHns
iTCR14XwptIbrRwb8lBl+S2D+UqmUr1mqLrdgMF4m0Wijio2bVioMez4MhUf p18mIj/nk0QwOH4W
8iTgudTr5aahLmXBcOj/tckBw36YC67EiIpJnvj8NpsqhhPXX2uSx6JMD7rB JvbRsHDAcPRvno37
OGTYioV6F0my9YZKMRy4Xf9uLmOVyzQeaMGHNo7QJEKxeiCQhSytuBdl4Uc2 jjWvRryhvBFRDacM
2++1w3NyeDaT4qsmdmw8xhOGPR5FY8XTiCdZKgLKMvTc9SYuRsP1TT19M1nO pfW/sTDUxYpPZ12L
GONsmodiKLWj3ZWrONNktEEXTt8Gva8KIV01xXu08ggZ4UbvO+rfFmmbornY rGOLol0SsI0dQpLH
3vLwDfGqhJ3+HA7Dh351jgcV9I05WgTOSdWwX8zRNnGnfEzFQboW6WnFBqk1 4aBF2Kbh6oqnpeqy
ov57imeLtpt4DndhobtQ7P0BUEsHCKgqCUXgAQAANQMAAFBLAwQUAAgACAAV juI4AAAAAAAAAAAA
AAAAIgAAAEdhbnR0VGVzdC9iaW4vZ2FudHR0ZXN0L1ZpZXcuY2xhc3ONVdtS 21YUXcc2lhEiMWkb
ArgQQkh8Caj0njikJRBSURNooaZOb5HlEyMiSx5Jhsn0tf/Q5z71tZ1J7bbM 9AP6H/2NtvvIio0d
4jBj61y0zt5rr73P1t///vkXgCU8kRBhOFfVbd/3ueerRZMfSYgxpBy3qnLD MuseVxumWtfd9ttt
mjBEtDWGC4UD/VBXLd2uqju+a9rVPMPoqmN7Phks6laDJzBM9u8L+7tkf/GQ LDDExcBdhhuFk25c
va4aDc93amob4KnByWKwINvx26Zt+ncYoulMkSG26lS4jCiSChSMMpwvmDZ/ 0KiVuburly0uKDqG
bhV11xTrcDPm75seQ7LQGzc5GDNcrvtcxEhh+K5jMVxL95D0jnz1yKxUue+p q06t7nimz/OZooRL
DNmzhyNjHJOC9xTD9bO40DLFYTC8qUDGiIQZhqtd/sGsbV4Q57a/7TqHZkX4 mUZSOLuiYA5XSRKP
92MY1F4GB491g3dYa33wINprDJlT/a/YFc3ntYJe5laXBENaQQZZBoni2qGA GObTmUJfmWl7jvuk
zG1jX+RAwPIjuIFFCQsMs68EK1DxFkNCuNjnFmVvts/HSW0DSF7G23hXwjsk 7UCggvfwPoNMO2um
V7f0pwxzA6yHILI/jw9Fom9Sxl6e6OfwTFEkK6/gNpapRilZPUoyLA1M1V3d 4z0HAoMMHyn4GCsM
I+IGhflkmCb+3STW6DpZ7SRuimleMFlVsIZ7pCkx0ex6g069kT5x8bfKB9zw 8+I+xqlJBGbnzlDO
DEOe/1RcR6ZJ+JRh8uVEZGwgKeEBET4VJOotBG7jcwmfkXD9rUnBDnap+g5F W9p6LKLQMi82MBmb
KIps7TGMp198r2lCzw2UFDzEVwyKXql0OIiCOF3PDsNAqKEAQ012kPgkjNmW fd2hNiJyoSsow2jX
YKc/DarBEERRcVQlUNQzr4Aq+A77QYN9SH52nIZr8HVTpGlY9K1FIQhmqaCi 9AGJYAJDiNNKClYJ
+lNzonmM9qgl0/McrVQaGY1D2RbO/xpAx+gZDzZHcYGeShuA1/A6jZQdXAwP /0i7wtm9sWhkOXuM
8VIu1cLEb0hlnyF1jOlSC5ebmG2v5kvZJq7/gRxDE0stfNDELfGGPN9p4m7X +SS5B2kawyVaT2CG
dm5iioo9FRC63HYaEhKzddwnSjGs4BNoZCUiblRI8ntSQOAXjrFBfAqF6PLP mModY7OU+h1bqdgj
+rXwRRNf/hBhqaT803//5H7pkLlIMYIoJMjtKMl7hcYctesukYWQSIK6ydf4 htzKhPs2IMIoZ8+l
vhVKrYigm3jURGWvG7RMI5ClFOVOqK50VDcD5MH/UEsHCDxZIWv3AwAAIAgA AFBLAwQUAAgACAAV
juI4AAAAAAAAAAAAAAAAPQAAAEdhbnR0VGVzdC9iaW4vZ2FudHR0ZXN0L2dh bnR0L0dhbnR0QW5k
SXRlbUxhYmVsUHJvdmlkZXIuY2xhc3OVlV1T20YUht+1KSa2Athx0oSkxOQD bNyixjEUYppAIFDP
GJoZM1w0V8LeCBFZ8kgLhJ/S/8AFuaEznWkmuc2P6vSsLGRHFjEdzay0u+c8 5+Pdtb/8+/dHAE9Q
TSDGUNA1SwjBXaF6X+qmHFetZlXwVk3b4+Zrxz4ymtxJYIhBtR1d5Q3TaLtc dbS22jh0hd1Sjwx+
zB1XXT0U9ppt2l2nYYZ8r9PBW63BA/tqKMQIQ2lAiKqXYcgvybBwJb++shiG lw3LEM8ZHuVrvQz3
WKjHRlPnwlXXDbdtaieVwi7D0Jrd5EnEMaYghXGGeL6wmwRDRsENKAxjWrNZ P3EpkmyF49JKzbD4
9mFrjzs72p7JybZmNzRzV3MMOfcXh8S+QdbF2pVFqTAkmp3cGKYGps8wQvNq S9MpWjlfO9CONNXU
LF39fe+AN0Sl0IfQqZX7RoP6J71kPG7yFreErKHPn7YpwA5/T9vTkfzuUl04 hqVXEphimOxW3KLu
mmog1pacJpHDQwWP8LgTYFtrUQHZfARuBDMMqW07V+ci17FLkR41g/SwpNzz X6v8rfN44eTJPmIG
iNL/J/g62S7lM2a4F0Zt7ghSbiaiVf2lFf6gLNqBU6bfgmHU4S37iHfLvU7t qnGdW82OKlGhCm+i
ZJlnmIiUxZekjF8UlLDIcDMfTXjGMB5eJjkc2xavLg6RlHNLc95JSkRmVRnn hYJlrHgXrcpwzavI
0sW+PBZrClblnjzYdaE5Qi5uKFiXi8m6feg0+IYhb9fkpbdoTsbFFF3hOD3f IYFr9BOZonkKCo3X
abaBGD1AcvYvjM4Wz5H+QLMYsjSOkheQxhAy5HkDN2l2q2NN7+8B7+s27hCL moq7PnOB3tIqxs4C
1jCtSe8uIxYwYriHHzzGJO77jG2fkSl+Ru5PpIqfkDvHg7PM9Fkovwmq6y7G iNBlZwJ2JmDnUfDZ
8x4BYB9C6T3oQbAAwTCLoof4EeM+ouitRyCmPYTS2fQRDD9hzndc8dQgn/hp yLPgeeY6u329kV8q
fqaR0Z/cwErmBlRSwlMf8dpvdJYaXe40unyOhbP4P1gKt/oJtbpErS730LMB PYuK3+pl/OrTt3x6
+iv689PYaQi9SOglQld60OkAnQ7Qq5Ho7gl5eRoPo18QeoXQLy9BXxyQ9QHo V/3oDUJvEro6AL3p
+f32H1BLBwhE2IaKfQMAAKUIAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAA ADgAAABHYW50dFRl
c3QvYmluL2dhbnR0dGVzdC9nYW50dC9HYW50dENvbnRlbnRQcm92aWRlci5j bGFzc41STW/TQBB9
m6RxSEwKaWlp+WyLIG0kLCRuQVwiQJYMVCrKhZNjD+lGjh3Z6/S38C/KBSQk EFz5UYjx2jUoCYKD
Z2Zndt5749kfPz9/BfAIBwYqAvfGbqiUokRZOrJeZHYQhYpCdRxHc+lTbKAm cGXizl0rcMOx9Xo0
IU8ZqAs8juKxRV4gZwlZk3euR9Zc0hnFiWWfqDj1VBqTv4AnUH8iQ6meClS7 h0OB2iDyqYkqWiYM
NATWHRnSq3Q6oviNOwpIoONEnhsM3Vhm5yJZU6cyEbjv/M8UfYHWmNSzgKac 5bYHXWdxpv7h2+Wc
gQ2B3d8UUxYb5BQvs7CJDq6Z2MI2y2QGXbEVTXWViQ66DLuyv7zF4kwZztIL ednAS0IEDF8msyih
i9uDUy6TL2B3nb9vYqh9fxlwxfy8jXreJ7D/b0yBRhT4dqaFw5DOirB5EqWx R89ltqadVet4mHFj
D/wG+FvjN1ljz9tne4lPFnvBfu3oE5ofOKjAZFvXyQYuszXzC2hjnT0/UVwt mo/ZV9hv9r6j8x6t
3jd0PmLzvPoF1fMSq83UQItJTUZoa8ytvK/AzKLr2NFSdktpPc3G36KsjT9k iVLWDdwsGm095YrG
bd14lBdLboFbuF2A3WEVFR3d5Sj7ZXsaY/8XUEsHCJEB/vvrAQAA0QMAAFBL AwQUAAgACAAVjuI4
AAAAAAAAAAAAAAAAMgAAAEdhbnR0VGVzdC9iaW4vZ2FudHR0ZXN0L21vZGVs L0dhbnR0SXRlbU1v
ZGVsLmNsYXNzfVFNT8JAFJylhVKsglDBD/y6QU1sPGu8mGhIEA8Y7gtuakkp SVn9VR40kZh48Af4
o4xvl0ajNl72zXt9M/Mmff94fQNwhH0LOYadgMdSSjGT/mR6IyL/QvUdKSaX qrVgMlTG/J77EY8D
/2o4FiPJYMZ8Ihiq3e9PfZmEcXDMkJ9JntAO6zAUIhEH8pbASRiH8pSh0frL 6XTaA9I8I8cSDKw4
KKHMYLTaAxsMqw7yKChUc2ChqNCaAxtFhnI3jEXvbjIUyTUfRvqm6YhHA56E qk+HprwNZwx73f/j
0vVWIGRPh3Nb7ax4Ni1001R0IYUs0qS/yFzqT++SkTgPlWntp/ihEsM+HW/Q DzCQU6kI5VQmXW1d
TdooYYleh7qI5iZV13vBsncwR8VrzlH1tudwnzSrTm+dtEBskzRsYq8Qv0b8 Bk29BR/r2AA0Ur5M
I+Wc00h5GzTdxFbq7FNVW3nvGZXHL6sFtaylncVCKs3QxHYG2X34Ra5lkncy ydXf5EYmeVdv7X0C
UEsHCKJhMu6GAQAA3gIAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAALgAA AEdhbnR0VGVzdC9i
aW4vZ2FudHR0ZXN0L21vZGVsL0dhbnR0TW9kZWwuY2xhc3OFk11PE0EUht9p a5cu23b5VKCUIoj9
ECr4bQEFjabJIhclGOXGhY51cLtNtluiXvtHvPLGC0k0iAbjtf/GP6Ce2W6K xWrTdHfmzJznfefM
2e8/P38FMI9VBQGG0Yppu67L626+WitzK39fztfkUEGIQd8198y8ZdqV/Pr2 Lt9xGXqEy6uGqNNQ
N7zlhiusvIwUGCIlUbFNt+FwhoUTy4tGR7Ui8TzFwjIBwovCFu4yQzCd2WQI 3aEVFUFENUSgKogz
DBxjVxzHfCnZKmKIRsDQr+EUwgxxQ9j8QaO6zZ0Nc9siO/1Gbce0Nk1HyLkf DLnPRJ0h0dla0xal
Vrjb7pVyptKZrW4n6sUoEgrGGGLttdAwjiTJ18Ur7p21qCDFkPw/T+LOapjC NIPi1rzTM6TTW8bJ
eypkOsQUzDBMdjVNl+DwesOiG47SwQ1e4XZ5g7+g+VC6jVtyHWFXiJtra5Vm WEUWsxrmkCeze6bV
4OtPJaGY+ZtAl9qBy8AE/YuUTz7WTOc5g2aWyy2/8hK6nSazKat2TcN13KBK U7o00aFgj+k6hAdN
da9Q3OHV2h5vxaXGsoZbUiPcXGNQS7WGs8PvCdlp8eOOmpPimKRuDdK3yBCQ LUtvhWYB9HhjanZ6
9lJklXYxeuvZA2jZL4g9OoD+EX373u4BesY8TgQhyolTziDNtGYOhjDsaZzG GZ9XoqwAvceyH9B3
iBGGI0wYcpI7xGQA33DufQutelvp2yKwxA43U31slFbOY4bA1IXI+AJVMiIN TejJI2SN4NJbxHOJ
ROjJJ1wovQ6whJ588+tH7lhkmM4PGoVJopfQg/QbJ8dSMNVE+YJhjJDgRRLq ocg8FojAcAlJX3rW
swIEdfVdCx/2QmN/lCXYKstlXPFT7/pl0fxKXA3g4f6JOkzQztQfddB8jhzd RMETX/wncakDcYp2
Tnch3vZyVn4DUEsHCDju1rTLAgAAuwUAAFBLAwQUAAgACAAVjuI4AAAAAAAA AAAAAAAAGgAAAEdh
bnR0VGVzdC9idWlsZC5wcm9wZXJ0aWVzK84vLUpO1dNTsFUoLkrW58ovLSko LQHzkzLz9LmAhF5m
XnJOaUpqMVCsIKc0HShSkZujE8OlgAp8XUMcdT393PQxpfS4AFBLBwibZzGG RgAAAGgAAABQSwME
FAAIAAgAFY7iOAAAAAAAAAAAAAAAABQAAABHYW50dFRlc3QvcGx1Z2luLnht bKWST2/DIAzF7/kU
yPeyf5cdQqJetms1dbsjakWWUoLATbtvP8iyQZR10jRufn4y72eo28uxFyP6 QINVcCdvQaA1w4Fs
p+B1/7R5hLap6hZNTy5gtj7I+6nj+lNHtqkqIUSNF0ab+qn6PG4gywoG38l5 hvTayRNJtOzfpzY0
s7/OWp4Qj+l1CAo6bZkZA8utcz0ZzfEqWDid9vqIjF7BSHheNulwbcZ3gJuc YNKi8MXU/AEx4rm4
KYeGacSQ5xfqIpqNqRW8bHdilx3w+xKuOhPnc7Ltk624suAs1H+Cpj0XhKn8 Ae1t9RornrVlCTI9
aCZI5Tp6FdHmL/kBUEsHCMkBLbn7AAAA3QIAAFBLAwQUAAgACAAVjuI4AAAA AAAAAAAAAAAAKAAA
AEdhbnR0VGVzdC9zcmMvZ2FudHR0ZXN0L0FwcGxpY2F0aW9uLmphdmF1kMFu AiEQhu88xdyqpsEH
MB5M2oM309T0jOy4O3EWCAxV0/juRYtdYy0HBsL3//MzwdidaRFa40QEk8yU oj74KOBjq9EyhYQ6
7kUzbdEeLaNevjqJx5UnV/AHdCr0npoWJekXSoHN8SGXSa/YyNbHfr38jzAh MFkj5J3+8HG3QWe7
RfNJyccSdjqZKJjAe0cJLJtUdl/SeU5gmMGkgFYS+C1Ih3Bj9pQAD2jz+Xx2 MK4BqmraZMGmKKLP
bXdRBs4tOX3oWRd6qkLeFKfacjHYQvkFY4+uNL2ZE3wpBVBF57uNaATXy9G4 PEFZdVDQ1DqHYTb6
h67IaDy7KO6nAabWOTjc34a6J68OESVH97fRwjVveVCNrqGef1tcDE7qpL4B UEsHCPws4JMhAQAA
QQIAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAOAAAAEdhbnR0VGVzdC9z cmMvZ2FudHR0ZXN0
L0FwcGxpY2F0aW9uQWN0aW9uQmFyQWR2aXNvci5qYXZhlVTBjtowED2Trxjt oU0RNR+A9kBXRUIq
h1Zb7bEyzhBcEjvyONBVtf/esZ0sAZZFvWX8Zt68eZ64kWonS4RSGu89kp9l ma4b6zxYVwpUlW4I
xe+NVCik8toasVyhaVfScJ2b3cy+ldxqsXyybrdGo7bzWPNgDXkWRLcLnrQp 7OFaXpJAItEuOLTu
+b+SL7RdrW6aSisZR06ZX6SbF3tN9urcw5rlaxFPv9Fl64Jf2XQ8zmAMDw4l 384EZFEQSFNAoamx
hBwk2bCxDvwWoWa/U0pCYC0dgd0EGpRqC4d+IDhE8wQj06xp16wFVCWJYH4U dj4L4B+PhkVcAH+z
bNSxvFOfvzUoqNfPT8wzGlHboMsHp7Ns9ML802nXl+AzJFN5T8BbkFVluSMG DwjBmuoZtIFa7rCr
mERTGDbQEkYuDuqQFXzb6Kpi8/zWFiTgcasJ0BA3J4aljzm919Kh+ejBoYr3 UkSyN3nYEqf3Qdf5
IrGR2vc7FdKsR8VcsLe6GOrOz7e9u7fkFDfuluNUIY/qsNTk0UWkFvCji7Up 2S6ykMq5814XYZNa
b2u+NNUtl6x4bU5YD8G8cJAUAHukKt7CQjDVcR64h9Of6PvP5aNIXuWdeL7Q US8wP5b2F31mRzA1
PCS8Nfnw+YnbzofJiyHAFRjiMOQ9GDzAAM3vPiwYv5tcfXnE6tdi+e1rlNn1 EPzv5T1tBPogIhcz
vGT/AFBLBwgCjt3aHQIAAF0FAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAA ADgAAABHYW50dFRl
c3Qvc3JjL2dhbnR0dGVzdC9BcHBsaWNhdGlvbldvcmtiZW5jaEFkdmlzb3Iu amF2YZVRy27CMBA8
x1+x4kRRFT4g6gFRVOWGCirHyjibsCK1LXtDKlX8e20SXi2V6J4s787szKyV aisrhEpqZkbPmRD0
YY1jMK5KUdVkPaYNpdLampRkMjrNV8Zt16jVZkW6MO3U6JKqxqHL7kCfwJNi R978D9MtPCHFeDQS
MILlhjy0xyGQXR+UQxlcAW8Q2gPy2HoEqQvwFhWVhD5yxCGLLv4x7RCogDJw xG/SxCTrniMN02Nh
m3WQB6qW3sPkrPWnPcBPRl14+NX4EiKxjnZBIngOYAUl6bBmwY50BfPZ62I+ my7zt9l7/gxPMHiJ
Z1qGM6UXQgchBgjVC7odVR/F7ebw74OCOj0fgmDoyyE3ToPG9qb1a/YLiuzA sI/GO7W91Qo57zLu
oPOzvbwYxs1J0u+8TiUTyV7sxTdQSwcIrJeNQzkBAADIAgAAUEsDBBQACAAI ABWO4jgAAAAAAAAA
AAAAAAA+AAAAR2FudHRUZXN0L3NyYy9nYW50dHRlc3QvQXBwbGljYXRpb25X b3JrYmVuY2hXaW5k
b3dBZHZpc29yLmphdmGVU01r3DAQPVu/YshJWYKy0N5CD5seSqAlgQ3kPJFn 7SGKJKRxHFry3yvH
rbPs2nR78iC/j3kzTET7hA1Bg15EKMuVUvwcQxIIqTFkHcdMJvdimoSxZZvN XWBfcDOwjg3G6Nii
cPBmY4fPNaZN/cI5pFM4NxPpa/A7brpEp/EeQnp6JG/bB/Z16P+PfUCe+lWX q5WCFUxqGaQlYM/C
6CDzTwL0NRQtwoTeEoQdIPR/9aB/FzRF5FLF7rE4gnWYM2w+7OfdgV6FfJ1h 4fcvpao/iv/U0svj
ATuV50WzqnIXKem91ytVve15HSwVbCIUOnzWc4s88kokXfLgqd/PcKS12MxL 4BpiojHUbSSvR+GT
8sIXaEgOAXrwqD5QJpPcjAvfln3rodn3E9Cf1+sL+LRen88wtu2gGVxJoXfo Mi1gtoLS5e/saRF2
z+JIn30bThTuy42ezU4hZDkaw2w8M72O9bYl50pZrH7gKz+XkLWW1NFo86Z+ A1BLBwhB6vhDdgEA
ACUEAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAAACgAAABHYW50dFRlc3Qv c3JjL2dhbnR0dGVz
dC9QZXJzcGVjdGl2ZS5qYXZhdY9NawIxEIbPm18xx1WW2J6lh1IVBA8FxXtM xjg0JksysUrxvzdr
t3Up7SUkeT/mmVbpN2URrPLMjImnQtCxDZEhRCtRO2oTykxy+Vp8K3UJuXj+ s2BMLWqmEy6U5hAv
pW4yHgsYw0vwe7I5YgI+ILR3K7hbq4TNgRJop1KC7hI8R9plRlMSMWR76JJd V+uyJS/PRyfLcyLa
vHOk++gAAgqnwyN6TvAHHHwIUfXZUyADOqJiXHpiUu5r13qwdw86KrmqWhc4 bwENlarnEoSn70Us
8vznux5Ni7tX0lDZUqKdw3qvXMJfrgWd0dQccyfcFWXMmpU3ygWPW8L3ujvk ctbAraWBAa5czReb
Bh7lw74pFVV1Z+2mXcVVfAJQSwcIeOaspRwBAAD/AQAAUEsDBBQACAAIABWO 4jgAAAAAAAAAAAAA
AAAhAAAAR2FudHRUZXN0L3NyYy9nYW50dHRlc3QvVmlldy5qYXZhfVPfb9ow EH6Gv+LUlyVQuesz
68NEtQ2Jqmiw7nEyyRGsmTizL2Hdxv/ec+wmFDEkwvnHd+f7Pn+uZPZTFgiF LIkIHU2GQ7WrjKV+
SbQj8dn/fyzzGeFuLteoF9Y0Kkc7uZgxNSVhSRfAO5OjDmBf+8FPL8Mi5BVj bCEw06pyKKysRFY7
MjvRKNyjdSHlqZ1MzqW4PYnl99V/9/YqL5CcmBred4rwLLJWopKWhD9owQNu r6rXWmWQaekc+HXA
36xFHiYeBH+Hg4hyJInDRpVSw5KsKguY3cMdXLX9r7wEntEVFx5UVjWSEI6o QRMZDgc3o9FwACNY
bZUD/knIpNZrvmqgrSTYK62BV8weagdkILPoq9EWYxWQZQ6qVKSkVn+wraZI +HjTddwYlcdUz8Vf
tDU66WQC1oNvPvUkB6okpviskRmx2OLh23w1g3/t+MuP5fTr43wep09xOuG0 2M4dlKzeEdsk1L4O
NdMeKhyeWi7pck830pPEN7bu086ZPmFLLJlkkgo/2qLWYXivXKXlM9c+KT4r q5oSL2psIxx/OL3O
1tzwBtcqeLTZPopjUdrlpD1wYywkXm3FgPcTDh/g1sfxONQZhMcp87x7cj3V 7gEmwYKikbrGx02i
0msuNYbbGAK7A38WqbZl6CnyeTXggo3vfeyNtTH8LMHir5qd7E3Xu+2dgyyY 55zDWLpPPjfKEAUt
sDNcKnpI28DhBVBLBwhoKVg6HQIAANYEAABQSwMEFAAIAAgAFY7iOAAAAAAA AAAAAAAAADwAAABH
YW50dFRlc3Qvc3JjL2dhbnR0dGVzdC9nYW50dC9HYW50dEFuZEl0ZW1MYWJl bFByb3ZpZGVyLmph
dmG9U8tu2zAQPEtfschJAVwiPfsUtEVhwEkLuLciB5pcK0z4EMiVXaPIv5d6 uRYjJWgPPonS7uwM
Z1YVF8+8RCi5JSIMxNrTMs+VqZyns4JxEjX72ryvCM1d87p8s61vGXqcLxkK raqA7GnHBbK9wgP6
wFZrvkX93bu9kuiX/wpYq0BoZ4CeV0zUgZw5oW9rcp+cdm8STuBWp8u/r3cW /j40HGIKEf+oRASZ
GM9s20HJEimwzypUmh+j11W91UqA0DwEaAlvrXwlGfBXdEwGSK2ASKTRoKUA Y5MXMKF/kWfZjCvw
O8+zXs2sjqIXDrJ7XkdUlnEpN8cYqWmU+VAMxWWevfwd2joD8frtofi2fUJB gJ36bpBHqr0FW2s9
xm7IK1s24B/RiUms2kHRfwBlA3Er0O1gvP9d68BTFGl1mMgi0z03WDR3iEJO kKt7BxskaIpXY417
pyREK4btLqaXHnR/uG4dTwc03rkQidPq1jmN3IIKw9gKPR0TLxaDVVVfHxm7 4zrghGqPxu3xv4V3
lD8fmnzWWMZFPU/JO0df0qTOPr5Kaz6pvnI+kY0507wsHgZ5Nw/jm6tIHcF3 3D9fTmrLlor88HFS
2RptSY+XWfaeK1V2MylsQ9xf6CfsqKZlveR/AFBLBwi08Cdu4gEAAA4HAABQ SwMEFAAIAAgAFY7i
OAAAAAAAAAAAAAAAADcAAABHYW50dFRlc3Qvc3JjL2dhbnR0dGVzdC9nYW50 dC9HYW50dENvbnRl
bnRQcm92aWRlci5qYXZhhVDNaoQwED7rU8wxQgm9e1xK8VC6UOil7CGbjDbb mEgyuofiuzdGV+1C
6SnJ9zuZTsgv0SA0whIRBuLpVua5bjvnaUe0TqHhz9P7ZbpuGucbjtLoLiC/ 1EIiHzRe0QdevZHv
JfUe1cFZQktH7wat0Jf/m9/TGWu6/my0BGlECJAGuAuDmGWwjUiAvyvhO8+z Jev1fEFJHydokJ4W
K5tB0Lbrb2ARTVmma2B7NEoCCSvR1bAtZNZmHmO5Bcb2zK9MHksTWRG2SRBY UUbvmK92i9fbkI+n
yI3b7IPTCpQOnQvIivSrezbVHT6FbVCxeY8wr/VhSQVnVDWpViA2JmBNHPMf UEsHCMKrdDICAQAA
HgIAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAMQAAAEdhbnR0VGVzdC9z cmMvZ2FudHR0ZXN0
L21vZGVsL0dhbnR0SXRlbU1vZGVsLmphdmFtjkEOgjAQRdftKWaJCeECxLUx UTecYMRJaSyVtIMb
w91tKQ1g3P558/4fsH2iIlBomZk8V/3rQaaWchjvRrfQGvQeTvF8Zuqv8Qof KQan38gEDTttFVjs
qV5TbRk8o+OfzJBV3AW7WPR7cbGxlauk3PweYrngTvsqUnDM1Smb+RDm8pSm 1xDnfjGtE5ZORXwL
piIVOOLR2eze0HFJQC+zaA//ky94E+fs6bwwwJP8AlBLBwjHy3/HsAAAAIcB AABQSwMEFAAIAAgA
FY7iOAAAAAAAAAAAAAAAAC0AAABHYW50dFRlc3Qvc3JjL2dhbnR0dGVzdC9t b2RlbC9HYW50dE1v
ZGVsLmphdmGVkbtuwzAMRWf7KzgqCCAkyOi0QKeiQIIO7RZkUG3GYOMXJNp9 If9eyZLd2unSSQLv
5eUR1aj0rHKEXFXMjIZlWWdYJHFMZVNrhlfVKdkyFfJOa/WxI8PJtebLcdO+ FJRCWihj4N5F7l0a
fMVRo6lTjOCc2156YCx7+RbIXkNEFDJ+usXC9UeDB26gwjcYaeZhYpHE0WUW NMqHI+TI05oJE66c
Gk1bDANn6oAjDX2iWBzt0Egjt7oaXyO57imFz5lxPbGmKvc8O8yxyp7xnQPK KE4QQnWz6qedag2C
Kgay8iqxxxY27lwufUjkmw90tAbfKztVtPh4EgRLWDsiizSCe/8U0w2whHul z4EtmNerqbGrKQOV
ZeOexHRj/VqmXymtXfTlP6I0lnWH/0nzHb8CL/E3UEsHCMFlinUzAQAA3wIA AFBLAwQUAAgACAAV
juI4AAAAAAAAAAAAAAAAKQAAAG9yZy5lY2xpcHNlLnJhcC5jdXN0b20udmll d2Vycy8uY2xhc3Nw
YXRonZBBSwMxEIXPFfofltw7awXBw65FZIUWWqVde5U0Gbaj6SSdJGL/vdVa FKEevM0bvnnvMdXo
beOKV5RInms1hHNVIBtvibtaPbZ3gys1uu6fVcbpGINO673ofSvkJLvihdjW KopRxcfyMJanSeP5
SHrpAI2jEBGebQKnM5v1Ph0m8+bp9n7W3oxnzbz8zREnFNYOLK5yB5m+LlFg kTRbLXY5bXcBy8nF
ohkM4fIfhYJFMF4QBLeZBO2Dyx1x/MvK5xRyOrqtiD/hqvz5wHdQSwcIY3PM wM4AAAB2AQAAUEsD
BBQACAAIABWO4jgAAAAAAAAAAAAAAAAnAAAAb3JnLmVjbGlwc2UucmFwLmN1 c3RvbS52aWV3ZXJz
Ly5wcm9qZWN0vZLNTgQhEITPmvgOm7kLevPAziZqvGlMVh8Am3ZkM/ykgdHH F5DRTEYTD8ZbV1HF
RwCxezPjZkIK2tltd87Oug1acErbYds9PtycXnS7/uRYeHIHhHiNAUj7mNPZ PRJWGuwdDQxh1D4g
I+kZpBCdYZPG17yx4DVU0uCMQRt7weepuG3rUAVfqKekR7X3CEU1eZWr0qrq fHOAg4oMHOVBTrIW
kL6OkBuShlTYoWm+NARfUX7F9QrZrbT6GUO8/F/sHl7QyD+BNme+8syLibCl P8QKfz+mQdu7uljo
NfRTYfE8dtWZ50L8/AvLT/cOUEsHCFG5JWDtAAAAswIAAFBLAwQUAAgACAAV juI4AAAAAAAAAAAA
AAAAQwAAAG9yZy5lY2xpcHNlLnJhcC5jdXN0b20udmlld2Vycy8uc2V0dGlu Z3Mvb3JnLmVjbGlw
c2UuamR0LmNvcmUucHJlZnO9nEuP4ygQgO8jzX9oae9R9+zMzmiknFZ73sOs tEeL2DhhgsEDuNPZ
X788bMcvEhuKvnUn4asCiqKosvntX1w8/Z2rp5fnp5fP3798+v7569Off/34 5+nT8/PXjx9wTkkt
8a4WuMQCsxzL3SsWknC2f/n4gYvjrvvJz0Ltci7wruSiQkphsUOUHFmmrjXO KlwddLuMsyzntKmY
3JeISryOUWGmMv1ZhsSxMf/IjLAMUcpzpLQuGX7TGkqr1rdPMUzMmkpryKRC TO1f/ohivdWU5EQ5
nmhypX+Ra60jdaywOvFC//Xadj+S96vRX5YEF2Ajqtu5f/fPG5seCEPiOpT+ ZSsi51WNcpWRcv9l
q+Z6pgpi+o/oSIeVtt5zRmYkN4/CTbQzdCHQVf+hNdO/+w+L7R2rGqpITXGm 55kWcrtl10ggbXhm
DRM2suhCM/SXYYY4xraWHUWUmGKr1/JK+bwV19RYaHWkVdD6sqF6v28dR8sj TH9RIu1Ne58zhG6e
nAVovKbqJPhFZprQSHxv0uPJC/O+AnqgiJ0zSpjuMSr1Jxmpai70enu8XOdt tc84oyPe2PaA9eft
qlqxzBebCqkyZ2EHXlzHlhBC7EYhSB23UVvzCQWYuQzTnOFLlp8adg4T3U3h 1sbqgjFrhy07Ct7U
W02oY0xX3SqO0Gs2q7m0G4/bQBnjyu3Ds3WMWZHx0soNQ3N2rXgj52SG35Tl mijtIlAdxJ/tVZEK
H3RIcobRzaKsJ0MSx+rl84Ygmo7D0EhNZ/tLJG/BW4N0Wl6Iyk+x2gGYtY4g zV61yylGxmpu61zb
jjOi9id7bQGPtbzL+4leUcHzMKL7ZKyTDEKcMCr0Yg1qqioa1HDS9TDF7cxG ESRvRG4YBd7WnrDC
hDR9DKvNTuaC1NbsQkiCc5UpdNzYD8Ik1juX2T3taLTb4Y3mfhDMGwXq+4I/ 6d3paSPTgihmR3Xa
f3u8QXeHOExNhFiuHQ+mCGvcxumG1LmAx2cIX1PPnvYY2NrWsUGiIIh1wa4m cjMQejRWJkBa05iG
htKdc/U0Kz6MFwY/2bSm14gZ7Upp6CnVtztDCFRgdB6RTPywNoHVQnBVq6vz +tsa6sFW2OVqBhq4
qGhLLzwcPWDbMHaTXoa5YYGiteHABpyd8p3UK3TFAp06OXcKvK2ktU5zmcNr zAg7Zi5AWczhhPK1
LbkIqSTU+MasIlJqWRsds2fTyJEedJtAENebzQCxKZdpBqUV4HYLZgYFWPWS METpNdHAXE52KrX3
5mBok1iyPmd5cwgd6QHWe5CMRTvnFksZn6FAaJCdbE9R1gHHsiJnQNZmPXYO sOjTh7eYL4LX1wKM
T9Tq8Siasm7j5qSD1sg94nwso0W0NQ2A7ncOFLGj9hfGjZ6x6qerL+okk3DL 1gOI6HeBkOW+BDSB
A2vTO4Hec4Tl1J4FjAnr72IU7Eg27wTBuZWpIHBlnFF2GIoOmOJisIPFQKsK +Yu8EODQSG+ZFhnJ
LEI9KUagZfhIiqvSQEgYnxtB3NQIPUq4Q0Dbwv1gZEzZHlbz0pYoc4GBiQQG Nk/yApvdggA4i5sV
fmHnblxNB7e/Hm9cHwXH9/Oo/VThNvb+8R4I/qQaDYGEi29GRBCLxtT8msQg umzBLOq6O1XREY5X
7GS4EwsazAKYJLAUgw/edsDhoYMUryCIddrB+3AZ8jg1g9tYHJRnkoKQQE8d F1DEOBMBP8Zx8fsM
R0pI2kK1GJ4+eMILEG7/UCcsrfcFXdm9jDbLDUm8slwHUswoDcm1ScoIYM2l KsnbLQ8SvRDMU8mg
wF8Nlm0FEOiMPSReCC1yJIp4PSWuCNDpvRnnpiJUa3PZcAnEDgiUQexwDxN+ EXCIVN+kWPJuMeEj
uXBB4SpJMFFhqsqTl54oLnwkKS4wnNCBI0MfPTg09ANDt1IvETA49MkAiw59 AkI3CB8vMD704YAC
xAf4yAjRRwcNEX1CImJELzI2SPSBw6PEjghQdpmibN0FYGVB1V+mvAKXqKEg iz82Kpxy5kUdCCXv
FncgBYBuYP5iDyB8RdHnHaS1qXhASb4iELSIUbYcEv6wKAQobFIcAicTWOj9 YlFaQfCWeq94BCnm
ThEphZiFYhKgmNSnUl9xCRANf8D1FZvi0X3RKR717sWnR3LB5+E9yk8TUbdE Q5pE04IcoMcxH4hJ
EPrMhIQ/EOYjJjjHz2TEPG+6gpxKbdjj9wwff3adIVMZ+IrUHayxezJ4CYUk c+JpUoZ36MNrZaAe
1/VJdXnFFGCPW0ogCjrLuFiEToAlZQrqgtNLJ2WQekwgxJuBTCCrdeYpyMN8 ZAK+S0vGg32jbWQI
rBoRtRvdo9tzbhQcsP7eIeEK8C0RsgK/gIQowbfYvgYPyYJzpJB1fXe3SRtM yDTRhJPRvv9lIj3P
zVegQsbdSRDyDQXaxS3fI4pZlpok2FgWBRhsLAuA3r/vSgnev88Y1+6d1L56 Yi4AkKjadAOAw7iX
LqfrIeBCAYsjVe1eHg5srzcpFtcr89MfNSVqzXUQDL+a673a9/FHt50Y2e0d WvZiyZXiR8TRHSKh
wMYuYl6OLngxl7PgI2E2GtHfDd/6XNHtnjm4PsC8G2+8Exava666qpvu8oHR dHUvka7snUKHhrr3
6/MTEnu7cLa0WvlWvrkjQ7cyk0CvtlhBMSrM4A1e8V97g4K57Mf3ZJa7VuB/ UEsHCOhoH1PnBwAA
AFUAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAQQAAAG9yZy5lY2xpcHNl LnJhcC5jdXN0b20u
dmlld2Vycy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzTcux CsIwEAbgvdB3CLiX
pFQKhU7i7KDgGEr8Iwf1LtwdPr9O4vzxHe54hEvxkGJI03Icl2kOp/P1FsYY 575D2akZhqaoUHCB
DW+okfCa+q6KvjZ3aG4qlXasmZhFmm7F/9ngTvy0/Mvf/QFQSwcIDUUYEGsA AAB9AAAAUEsDBBQA
CAAIABWO4jgAAAAAAAAAAAAAAAAzAAAAb3JnLmVjbGlwc2UucmFwLmN1c3Rv bS52aWV3ZXJzL01F
VEEtSU5GL01BTklGRVNULk1GjY5BDoIwEEX3TXqHHsA26pKlhiWGaMK+loFU S4vTVvT2EiENiSzc
znv/zy+k1Q34wCtAr53N2E5sKTlEWxvgxUwT3Cd0kh1k7Bh9cB2rNAyjwkoT W65tki7v7uqMVpPs
sBWgjO49CJS9UN+weE7hFFouWWypwNYOM5bPDWMbJWd4RI3AJ+f3BQ5hQ8na ef6+Rm+NVEBJ/uod
Bl5KdZftH/M/UEsHCD9EjB2iAAAASwEAAFBLAwQUAAgACAAVjuI4AAAAAAAA AAAAAAAAKQAAAG9y
Zy5lY2xpcHNlLnJhcC5jdXN0b20udmlld2Vycy9hYm91dC5odG1sjVRdb9pA EHwuEv9h64d+SJgL
QalCA0gpIWqqNEEJ6cfjYS/4mvOdc3fG8O+7ZxtIGlKFFzjf7uzszJj+27Pr 0fT3ZAyJSyVM7r5c
XowgCBn72R0xdjY9g19fp98vodM+gFtnROQYG18FzQbQJ0icyz4zVhRFu+i2 tVmw6Q1beaiO761/
hrZsbMcuDobNRr8ctUqlsoM9CJ1er1c1VsXIY/+douPgq0N8yMVyEIy0cqhc OF1nGEBUnQaBw5Vj
vvsEooQbi25wcXsdHh8f9cJOwDyUE07i8HSmc9dn1YGess2kmY7XILlaDILx VXh3W9E4rBpgmggL
9WzqOaRLoPts+C1XCEctODw4+NRn2fCN7+oOL0WEyiKVdqm0rJwmCONIiswi nOtcxdwJrSDl92iB
L7mQfCYRuJSbtUAocH5wJvNFSIcP7x5y7U5qHtXhYxvgTkm0FrRL0BSC8JsN oWIRcYcxzFDqokVA
uFkAPKTRSxHTtdOw1jkQHzRlkUOTEiEVexqx8CQJeu7vmo3NApN8JkUE9Zrw A431y/i81CTHk8sd
wVPCytY1CtCVp7DbudngDvpktMH5k3BgNa5MiMQFlwwzGS47B+0qKa8u7TM+ bDcb59pAlptMW7SP
2LSgojoxemF4Wh2gEGRFilw91q7tTa4dvZiX0sUiBqUdGIxQLLGybCN1LOix k2uYG51W855l4Jk5
zcYMhVoQYiz8WzTLSyPX5ErpMWTcuPVG6ZtdlTa15qV/sZjP0XjMvZ6mfE3C ZxmRq0JgICdeJAtX
5NXsDxGn+hirHO4kABglGN2Xz54Mf29B1olwCVlacL/LNmqFcMk/QCSh0mDz KNl24ooAbat8CTgx
eDZlT+BfyPt/olyG0Dpv8VYCv7YlGSLctzZpRUAl1cdFpCKNJLkcF4rGvyLJ L+W2DOk2X8z/I1V/
URRg+vEXUEsHCKYJawjEAgAAtgUAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAA AAAAWAAAAG9yZy5l
Y2xpcHNlLnJhcC5jdXN0b20udmlld2Vycy9iaW4vb3JnL2VjbGlwc2UvcmFw L2N1c3RvbS92aWV3
ZXJzL0F1dG9Db2xvUHJvdmlkZXIuY2xhc3OVVVtTHEUU/np22IHNhFtYooQQ bsHdhTAhRoyBXLiI
WV1IIhEk+uCw28LgskPNzELw2Tf/hWWVr1olSaFVlm9W+VP8EerXvcvucimJ D9vTffr0933n9Dm9
f/79y28AJvC5BUPA8YMNR+aL3k4oncDdcfLlMPK3nV1P7skgdGbKkT/nF/0n gb/rFWRgwRRo33J3
Xafoljacx+tbMh9ZiAukGqG2vnTzsoaSVRDBEYZAIq/W2VJBvhAQWYG4NoSE zmnscuQVnZwXRlMC
F2VRbstSNFd1aWtwWXR36BGf9kpedF8glkqvCJhzfkEmEEOHjYtotXBJ4FL9 zEwQuPsKO4FOdLRA
oNtGCxIW3hDoqPs9csNN4idwueJ1xcYF2IrfK8ml8va6DJ6560Up0Jnz825x xQ08ta4azWjTo9qJ
3P/MMONpcwuF5f0wkttHMQ+njsGEe5Gz5xU2ZBQ68164U3T3p9IrCQzhuoVh gWvnONsYwVsCrbQ1
8AgMpbLpU0QbFL3p5UNHO01dQBqjFjI8fvyqbIzhBu+A4gWSqdzJIplKPxew ChUFAgPnRiTQFEZu
EBFTlogpPBYD0Wfd/FcbgV9WtqHTiTmhV1VEU74SX/95ziSghEaC22cFcn6O 7mLagoI7Vqs27kGV
KTkERs5EPmWy8FCg778JEyzPWRtzmBdoKckXUfU+B1OvJXXBxgd4RF07Zeq6 c4au11LK2622qmqJ
M7bjgQzLxaiS5AU/kEdJbuKGjFSTPbZhoVmJemrjY7SquytKN1BV98zGJ1D9 HXpfS93sWWX+VGV1
TZVc9kxRiWW/HOTlgqe6Mnmy3cbVCQyQOsZfE0dDKeAT2akeBf1l2/NrcZ/P Ccc2rp5qf+BK5hXa
M7+ic+0Vug6Q5PQyp28eoOcnbhvo1RCmcuXYy8NX0YM+jiCshuDqGr+sTy1E wX9L+CZ+r5v32tvv
906aP6A78zOSo0nzJQYPkTKw+o0pkubV7//5q07UgzjHAa4GeXyIyocJP8Rx RBPeroBWCdVsHA4p
DfrcZNQG9/v559BM+mYi3uJocv9tnqwIm6ePoaRrNRUhdf6E3kuTN6P5uiu+ NT4b72CSSALv4k4V
MSRXTGkhYg8R3zPwOx4sjv2BLuZ2ZlGbxw7xfgyrYz/WqLp1KDd4IePMr8NX +iaDuKVp+yuADWFm
8SHpWun1EQUYnOdqAiZ1Aogr6uhxfTOTDUEYNTSjiiawWCuHGY0JtGViB1hS kg/xRKCemVYt6S5F
T3E+3XD9bVVgQ/VvFa6s65B/0yJHrCXzC5XtQywLfIe+zJo2VXiSav8Qqzpp udGT+XnA1UN0UV8f
Zpml+YaIJmrEjs6Kiui5Xn/2L1BLBwjUJB5L+wMAACYIAABQSwMEFAAIAAgA FY7iOAAAAAAAAAAA
AAAAAFUAAABvcmcuZWNsaXBzZS5yYXAuY3VzdG9tLnZpZXdlcnMvYmluL29y Zy9lY2xpcHNlL3Jh
cC9jdXN0b20vdmlld2Vycy9HYW50dFZpZXdlciQxLmNsYXNzlVLbbtNAED1b h7oxS2NCy/1OoGlA
dfOGVEBIESCkAFJBed84Q7LFWUe7dvkuJGgRD3wAH4WYNZGoSh8aSyPPnJ1z ZnZmf/3+8RNAFxsh
lgQe5XacUJrpmaPEqlmSlq7Ip8m+ps9kXfJKmaIYVEGrG6ImEO+pfZVkyoyT d8M9SosQywLNf+hu
aYwaZiSwXEy0a21zlf7py+ww74k2ungmkLQXIW4OBGq9fER1CJyTCLESIUBD oo5YIGj7hEZfG3pb
TodkP/ztstnPU5UNlNU+noM137rA1gL1W11uPbCliXAJV0JcFuicni1xFdcE VlSakquG9nyxy/eP
72XH93FD4iZu8bW1Kcgale3SR0tuIrDe/p/hBxS9z0ub0kvtxxAfKbHl01np hUmz3GkzfkPFJB9J
tHBfQGozK4vehNVoJLBxgvrJ9eRrY8j2MuUcOWzz6gK2MxBx7DfIb3WJrY6I 0bPsPebYI1Hn4TfI
ziFWv1Q55z1WnXj2JzTZk+x79ALWKnwd8VzlKWf6s0bnK4uwfcfFA1w/LjXF KswRqcZcKsDtKvMO
7vK/xoO+hwcVS1R5/P0BUEsHCLna7WmzAQAAaQMAAFBLAwQUAAgACAAVjuI4 AAAAAAAAAAAAAAAA
UwAAAG9yZy5lY2xpcHNlLnJhcC5jdXN0b20udmlld2Vycy9iaW4vb3JnL2Vj bGlwc2UvcmFwL2N1
c3RvbS92aWV3ZXJzL0dhbnR0Vmlld2VyLmNsYXNznVgJeFxVFf5vMpNJJq9p mnRKQ0ObLpRkkmm6
BkyQLbQQ2pTa1mJaBSYzr+nQyUycJaWI4FJExQ0QtSxCAS3ubZUJbaEURVYV BASUTUAWRa0KoihQ
/3Pfy8tkZrLgl+/Lu+8uZ/nPOf89bx54d98BAAvUiR4UKfjjiZ5mMxSN9CXN 5kSwrzmUTqbivc39
EXOLmUg2nxaMpVLr9IsHrpz9520Mhkxn65pUIh1KpRNm2Nqv4AnFY6lEPKow a0WunsSW1KAuraNN
wdWdTm5VUOsVSo6PxCKpExSOrh/7ZMM6nm2Ph00vijHBQBkqFIrrG9aVQaHS gBslChNXRGLmynRv
t5lYG+yOmgpVK+KhYHRdMBGRd3vSldoUSSo05WkdGRda7u6RV4W5w61N0tIt kXCPmUo2t8d7++LJ
SMqkuV7aNVXsrFE4ZjxHOsTFkr5gwoxRy+xxnPDgKIW6saDzohZTxZo6scZL R5KprQKD6lDwUmT7
YABn1zeMolVvIg6lfD/NgmJOzoERYu4Nx5dFYuGOlNmrsLh+xXnB/mBzNBjr aT6z+zwzxOCOqPYs
/WwTH/wGGtFk6RdRjGBDfcOGMQ2QvRQwD/M9aFaoHUmV7DOwAAuZ05w4NZgK Kkymh3nmCpiLDSxB
CwNmfjQdjCZ1jPM2FvCUee8xo2avDnJV/gZKTJjJdJSrdWOhwlBGLCBmbBhx r3afwY4w7yM6AtPH
2usKa98n2mGL9aU1iOJ2u4FTBxFaHY+nZG6ZgdmYo2CE4x/s41HTCnTLyElv 25/v/Xqrns8w4EGp
ByuYYuMJr1ix0sCZWKVQFkwm46EIzVBYVCgmozovdbsc80XgGgNr8UG6lY71 BvuWDsZsyXuRaTtq
ST3LwIfQReySg9nlK1QLmjk2GPiwKPcOqZbpsw2cg3MVytMa6BXBbpN12zY2 f2rnCitbjm4DIYSp
LJI8NZIkuZhhza3C0ZYnNHpjOhrtDPZxFI+GT9EkPnd8ahWmUMQaZn0oFYnH liXivWfZUqsGyyud
ikSbV0SSqbYyRBHzgAnkG1ppj0ft00kDcdAK79LOVWu7zlnRsWYt+T9XCKMW kbRt30RnxZtxVifh
SKHfgzRLagwmNLAF5zPdGMzVZjgR3MK6qWf+enABr5bx3yxzFnixFRcKN39c oTk/lKNcSlauXGzg
E/ikQnUfmcNM9EdiPQ7YCkdke746HYvJHaivU7eGiITKgHZYw4mRWMpMxILR 1eZGCtsk4j9jYBsu
ZRALQLjesuBzBj4vYFTlHD85GpXlLxj4IuqpaKN9C8jklw18BZczkOkszljy f3CGuGJk1UNSU2i/
GWRlTE5mJd7a+GDaTa7PTZj1ur+Icii2fUPKbLvCseNoTEaq4GsMXIvrFCZJ 7scTKTPcvikSDfN2
L5yNvMkKXDTXY4cHNyhUDK11BlObDNyIm1ijvRFKc9d3dDR0iM5vGfg2dgoT R5JZNDhzZFQd0lP4
joHv4nsUF4qawYRkc4e18AMDP8SPNKq98X7TVqiXdhvYgx8ziKGE6QSxUKLo 5qY05CBQXdBbhQED
t2EvK5rW6WiuSsT7I2FpNOfnNBvDG9OOU4JJc9gJtkf7FRaOUU4dOorDDpZj H+4wcAB3KkwQO8we
MxZea56fGkfk2CCz/tpExl0GfoqfWXdlZzCxeQS+75Dm5ucG7sG9Fp1Y+gTH AoIF91rcb+ABiZVc
JZboSd25/ivMe294sX578sBgpzMWIxWAUJq+aBZs1QU8YYb10nQPHqWloxhq cd0w8R78hl8NI5/J
OiL32xMGnsRvrUBY9gxv62yDvHgMTwkPP51zy9vreUXUQzA2RUK0sTfYI5xa jkfwrHDHcwrH14+C
fpaBIxDIY3jewAt40UrBU4KhzT2JeFrSYlaBLt2xhBdlPNEmTr9k4GW8wuPJ 4cdn55NBzmlL/R8N
/GlQ/bJ4wrTOi+Q/G/jLoOTslcfwhCz/zcDf8Q8rNy20fQXAtJS8YeCfEpkK iUw8Hk1F+uSIiPmX
gX+LmIqktbTWWvLgPwr1o6SL9mGolN/C24LjO+P98MjBQgQcFiTe8Sg1uuLh HMKOu5hpp1z6g7GA
4jxEPIpfsC3jqjXh2Rx1blVqqDKhG/k+WpMKJlIyWW4oQybLNI/FelK80per CkNNFPooTdpbZXKS
oapk0qIg2cq67c8vPjLxaLxSoFxZ6uVZgsii4ywN5lgoO5wK/tFUDwu9UFB3 Vt7nf03lhJr7NzrZ
TM3R4U6PqjnXXVdKJ35VIdabFMmNnsJx4+PYvLi36a95BpC3c9QO7zx1tKHm ys8jnrDVzbNRMKVA
a1WDofyq0WJC67Ju4C0/vja+VAUUIJnSbKj5UppeTS0Ju2LVQkMtUoutrNKM ODrZDJKmbkTD5vki
4ljSrzou7weTgo1Xh9VTBEMhM5mcM1/hpPfWOxdqQIrRTrfWxNOJkLksIj+S VGadmScn2F11xGJm
oj3KDstMYia7lmIARaiSH6H0iB+vfPq4Ugbpasr5tozzRXx6/QMw/I23YuJu vXcS/1doCUfBhek8
MYOSgCnWblRjMqBHPkpXWuYUW+aJPCe7PP7G4gEcMSTQq6dn8cDsLGEeR5gH R2KaLazGFraK5osZ
Ff79qO1qrB3A9AHMyJU5FxNwjJZZZ+12ZFbYMmU0k7qLOJ6NObb0Zq0NcPt/ gom7HKEletKvBRrW
BlsgL3gqG8fheQUOu2hjvX3457TTI2CpTjmeQcPK4hbXThwd8LkWtrpr3BkE WktqSu5Bpb+mpDGD
RdtRUuPu3OZSTffC63MFDuw4/HjTkNq5BA1YyLdFBGUxKrGEALcwfseiCcfR 2sV4P9q0Wadbqh2Q
TuSe42hYEXe8D618enm6DcfLr5qYz9lZNH4Kg3IC97opswon8UQJZ092XDqH uwV8H11q9Gdwija6
lKOlnVmGVvGQqCyiiAoer0Z7VuR8jlE+x6hq2ygXTqPpWpk6irslnTcTvY4W l991KzoaD2J5q/uo
7ZjgbxIAO3dijjw/YAFZTiDldXWNuymDddae9X6+DeAjMg5ux1RrdvVOVLR6 /D6RWuO50xrs1qq7
+Dfoyhna8DOIw3KudHLuTJq9irWymvFYg0asZTTW0fyz6GwXzf8wd3yEo3Ow AeciyL8wn+ehOysu
mx0INsOk40qPBIwiPdpIx4up00QPRy5qPZ1x2cS4zGWyD8YlQqlWXObZeera g825aWpmpanLSdOP
ImGf/RzfJFwSz6XFGSRZhlu7SBYfy+AigrRS5l2cD9w5OBKYSnEE/wZVTddu RTi7mbN9mEoFdVQx
i08/klnRb3Rcb8SndPRl9Gntuosf/F35FEOVl+TSQT+92zICxVhJJcIutYVd QmHiY0PjPZiYlbnl
frLNZ3ei2s/yu2xl4B6U+QMcfmlI3ZGaWi9ksX2cXl1MTz9Brz7Jktim1fst wY76Blu9jK4gHkU8
4WXwWmmCwpWOf0u0Bqb5kCorXpdmeaUcscrx6qu4yoEIGtI8EZ/PwjtbxNcY GaVHV2rLiuTXE7va
XqBoieGr07YTIiEsQWkAX/dbaF3tkFjTgcCB2/DNFldxi3snlgV87oWtJf4m PmpKSGka2JmUIqwm
s4RzJ2qdDSzZiX4Z3Oz3uQdwyza38rl9rh2H9wrj3Yi5gQMit9wf0Gdv3uY+ LOs3Hv67Xza4wgP4
vtY83dKsld5LQnC0ORKf97lkY6XWLcp26aUm8uqhIcwS/K4FvkL/L2eUt5MC r+Y9cg0jey2J8ToS
7PW8RG8gCexgkX+b5bybhbeHWF6LC5BhLjCHcBslDPDkPtyMO/BdfsXvwp2c Pchv8TvwC9yNR3kj
PMPnK7hXx6dPB/FVJz6v6nxR1P8QfoJbad1M7rQo2k95N2qKDpCEhKzdtKtV k3UJ09tnz/F2sUe7
qMNafZgVac0Vya9LdvLs1e0CsIjhzawM3IV929EQOIh9ra4aV9Ne3F4E3lEy OliElpJG4cy7G30E
+74h6Kwb6QGKfpAM80vC9wuq/RUBfYhrD/NW+jXvq0ezmG+R4+4iu6+QkcV8 bvLYg5RQzP11lPYr
ulvLSniIkoT5DEqT1kLcONdO2+fttL1/0I1HtuN0uvFIq2s/HutiLT+uBvA7 cYW3wF48Uwztyu8z
+IMevJrBa3rw1wwO6cHrGby5E52U9ZYFyVs2JP91IHmXIwsSCiEkrwXuUpI5 gYMK1mZVJJv1lkNc
dGtJym0vegiplqS8GlyfO6MmCLiqMjcvH6frT9D13xLcJwnM7wjNU8yHpwnb M8yNZ7EUz+EDeB4f
4ufm2XiR18QfePYlVvbLuIhZdQn+iMv4JXkVXmNW/5V59Ddm8SHcws/lPfgH bsfrzNE3cB/e1IH6
Eu9sAuoE6n599Sg9GgzU3U6gTlTVajKDUIcFyqemcO1s1Kkj1FTObcIUVaOO 5FwChpqmhEsvQ6Wq
VdJyXoUSNV3N4OotPFGnZnJuD0/M0rl6O0/MtsP9Q/zIztortHagaVhHVeNz TduBSp+r9iZ4pbvK
qDnsoqwO6uVcLn+bVfYOfXyX74dZY++gURVpzxdbsh3Pm7QtSo+O0Z1lKftK qyLL6bHVNBXJz5e2
fZfzrVhXFe2bllH1nU3FDK38q2xSTJemasXO5JB+qHnW25tcUQtyqkq5+UVS wq8p3myqFFP5jT1D
eTFXlSPAT+uFakIWyWdVlVqiTS5jikjYhOT34Me2eSYdlOvKtx/Lu8TE4toB 1bIy987TnwWqkson
YTI/zofuufzeTZrBJRqbChaiME5xZal6n2q1VR7ttNAZ1ZbbmygtWm66InW8 /v9+dYK+4xW2ajX4
H1BLBwjSFWBaIw4AAFMgAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAAAF8A AABvcmcuZWNsaXBz
ZS5yYXAuY3VzdG9tLnZpZXdlcnMvYmluL29yZy9lY2xpcHNlL3JhcC9jdXN0 b20vdmlld2Vycy9J
R2FudHRJdGVtTGFiZWxQcm92aWRlci5jbGFzc3WOPQrCQBCF30TNX2Vj5wG0 cbGxsVcCAYWcYLMO
cUP+2Gzi3Sw8gIcSs63gNPN43/DevD/PF4A94gAe4dCaQrCqdNezMLITauht W4tR84NNL5KzbKxN
LNepzLm6mnbUNzYB5oRlKUcpKtkU4pKXrCwhLNhmVppJrjbpLz9uE0I0naTc FPZOiLN2MIpPumLC
+k/XzsX4BMIMbrypegEf7oXA7YmEzkf0BVBLBwi+m/G5qAAAAN0AAABQSwME FAAIAAgAFY7iOAAA
AAAAAAAAAAAAAFsAAABvcmcuZWNsaXBzZS5yYXAuY3VzdG9tLnZpZXdlcnMv YmluL29yZy9lY2xp
cHNlL3JhcC9jdXN0b20vdmlld2Vycy9JR2FudHRMYWJlbFByb3ZpZGVyLmNs YXNzbZA7TgMxEIb/
2UAWAoE0SHACoMGCNhVCAkVsCCKIhgI5m5HlYOzI6104GwUH4FCQSSqEMs1o Ht8/j++fzy8A59jP
kREuQjSKS2fnFauo56qsqxTeVGP5nWOlBjfap1ToCbv7GBo75Zhjg9Cb6UYr p71Ro8mMy0TI70Yv
w8uHWwINCN2r4Ksk8JN2Nbd+xSRpOBVs2E8f+UOQ45Piv07/9PlPbpyi9aYv 4kIOdXwlHKxjZGBn
HOpY8rV1TDhcs/fZEmvLdmjJAwhH2ERbfC5Rhi1kctY2Oliet4PdVU93Vdtb AFBLBwjJdvme4gAA
ADUBAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAAAC8AAABvcmcuZWNsaXBz ZS5yYXAuY3VzdG9t
LnZpZXdlcnMvYnVpbGQucHJvcGVydGllcyvOLy1KTtXTU7BVKC5K1uflyi8t KSgtAQskZeYBBYCk
XmZeck5pSmoxUNDXNcRR19PPTV8nhpdLARXoYRFLTAKaqJdRkpvDywUAUEsH CJPcw7JKAAAAbQAA
AFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAAVwAAAG9yZy5lY2xpcHNlLnJh cC5jdXN0b20udmll
d2Vycy9zcmMvb3JnL2VjbGlwc2UvcmFwL2N1c3RvbS92aWV3ZXJzL0F1dG9D b2xvUHJvdmlkZXIu
amF2Ya1VTU/jMBC9I/U/zDGl4BYuK1E4dAsL1bICARLaE3ITNzHrxJHtJNtd 8d93bOerpV1xIKra
xJ558+bNczo+/NxrcACHMJf5WvE4MRCEQzidTE6P8esLLLJMylzR0ODtSqqU Gi4zrdfasJTBdbq8
IQ5gJgQ4AA2KaaZKFhF4SriGXMlY0RRoFoFJGNAwlGlOszXPYkA8pjgV2oFQ xXAlwpiSckGXgkGR
RUy5PAxMNciVe7gKBc81g/tiKXgItzxkGT6WJ2TikKqEh0lbijONWcgl4too vixsE0eOES52xahx
yYkx+dl4XFUVYb4OkSoeCxZTMWa5OC5PJiQxqXDRtX6ZB5ZKn7kVe31APTgG nnGDEsDsfuEppbnA
7cy4aAv2qdd4cJDT8BeNGWBXbYeK5iQstJEpKTmrmNLTwcHgAMlIZeAVRSIo myCH/eU+wOuKhqzJ
JYu5FFLdK1lyHOB0Z4auDHl8ftq/ib7JcZCaOLD9cRWPYmY0ueQ6F3TtGGKX 3huhoFrDDEdjURpG
ncoaNrnCX5sM6FteojtxPAZCG7BAK/6e9rdWPMO5ddrcor18rN4R94PmwHzN eRfj4jzTbY7B0HKx
RvKYcAEZq2CmFF3bUsFw6rc3UOuoG6oTrFjHvG2VKiWPgEbRo7OiTwxqnrWK 9rC435aFVUIbigO4
AJwbmd/d3j28PN8snq6mXQRDC/f3L2cP31+uH2Y/6xg8B4EL5Bjm4KZ4e35h E/FuNOoKNo0TZBo0
fAiOukcbsTChUeLtf81+RdvHSuIrpWnVIfgisCW2r1lv7dTQJyOb97h3y1eG h76eSwftU/AFWQgr
YlAvDDcGaBsMutxG2lXQJuKEC3zf9nRqITP228O05tiyB8mLDv2oSdzQz8KZ QmX1ZtP8rta/ScU+
1noNaYnvd6T96zBbtnfHDjub7DI7CQWjqjN5/9R5kj1B9kyhpeRF7hUdwQmc N37Q/A9DjG1zusjR
aPpuEu1ww95Ue+AfkRw//wBQSwcIwDzETPICAADvBwAAUEsDBBQACAAIABWO 4jgAAAAAAAAAAAAA
AABSAAAAb3JnLmVjbGlwc2UucmFwLmN1c3RvbS52aWV3ZXJzL3NyYy9vcmcv ZWNsaXBzZS9yYXAv
Y3VzdG9tL3ZpZXdlcnMvR2FudHRWaWV3ZXIuamF2YcVZbW/bNh5/X6DfgbcX g9wqSrIdcMCyFGiz
dguQbkWT3XAYhgMt0TZbWdRIyW5wy3e/Hx8kkRIV+7YC5w2prf/z85/U6bPP +3n6hDwjV6K+l3y9
aUiSL8hXZ2dfneDPP8h1VQlRS5o3+LoScksbLiql7lXDtox8v13+kBkGL8uS GAaKSKaY3LEiI3cb
rkgtxVrSLaFVQZoNIzTPxbam1T2v1gT8mOS0VIYJlQxPCuDsKC/psmSkrQom DR0Qt4qIlfnxOi95
rRh51y5LnpMbnrMKP3fn2ZnhtN/wfNOL4kyBCroUXDWSL1ttRGo0wsNBGG0M 8aZp6m9OT/f7fcas
nEzI9WnJ1rQ8ZXV5sjs/yzbNtjTYzn+VZSyk+sY80Z8jvEdOCK94AxeQl++u rUrbugS4agy2ZvZZ
P6dPn9Q0/0jXjMCq3kJJ6yxvVSO22Y6zPZPq4umTp0+gjJAN+QAnZXBbmV2J smS5seMiAr6Bh31C
X8SHFc1Zxz17dhFF0nrIfdPp8j2tmuZ4zGs4No6tgHn7y908EElaI2uUtlDI ebw9L9assfrr/2qb
gnlJlSJGiX8aCwn71LCqUOS2kW3etJIVDvAfTUZQGHyH9CcrXiH6hpLkOo9E eeHDl0KUjFZk2ap7
AzBAK9WTlwSM1ubvQsvSmej4kksLMGweDvO6QvkIxaFEjdqsPIa6nBL3NCVw bPbjTz++Jos/yzl1
zzmEqOYexTgSVbG95TNI7fDiQq+cyQiW+5r0LCVDPKrA21GdNbEVeoDUxks0 qAxWkF9MipBCvOFV
oVOys/qn5QdgEGbrezDREaBztmWDIFVtaVmjh4D8198IPIXud9nJzYCuISpZ ODy0l8R4jwPr7KLn
ZZmRL78E4FvLJitZtW42F4Q/fz7oYEUZDHAwiL+C5reLDuyUL2hDHYLW4jv8 7JUghK8Si/G3QTD7
vUWHt89Tz3hPNBls57aE7dMH++Uh8L1FHUVtxvlV3TZ/MQLapM4ER5fqxHgv hM6LwI6e3s+6i8NG
hCbsBC9gwM81PMZ87Z2WtgWlZPDezCdm89FkXd9ZwRVvaQ0zNaEztQOKsniF vgSL+/ZEzFc8Qd9j
7kkj7wcn9Z26S7bEe7SwxvUZcHoKV23Zdqk7qovanplVQW3EHkuEn3qDrl5q oTGLnMOVXvyM5CFt
HwDB/uARHZXtkXwPJBPsL1tav7ZSuwoYye4zw/DTgpQTNKSph+zzmzWn+9Ka FLqhS1YmBimN8ISL
XypA9TKEpqy43oXQT0iLRQ4dBwtZI4hsK7N6sR2oPdISKw7JNyz/SDZMsswP h7GGq++4Al9WJKOa
D51zwJgHm5all0guz1wO+mU2KSm9l+iivGVue3kjxdaW06S3eytO9vrtu7t/ /fvm+vbukVLlustc
bWi1ho1d5piHafcLOppeNDjA7xA64u9ZIekeKUx1Ji5ihVPb1Ro535thB+P7 tqr0BpsE7nWTzKiI
6CWj1MSwYBIefc9W4LtJ/J4WS86H/nEkFHPW6B5AFqPQjFu2c+JInccb9gS9 Tx9P5F+SdUSjJONe
6dWbChummSLOiG4o//HH0YNlpDGOW8lIWB+bsJO5keE67apfSKZtoCvYeCtr vWE010geomH2sxDN
g5aPhzZeYsor3TvhCtfxMbVd4k86ioYVN2J8Ov3Yx+QHVtbmUMqajSjUkDt2 D49ljonDoynghT8O
GTVpt+ClkWp07oWm3LZi05pBJfapa9/2zIJhqjt2IQiKVB96+wmoehZLhg6P OVrdD/NRYafmVY6n
pNQH84CU5Nq4SjOtei6MypIDsccaINk6g9UkwcBbLrRuEkdnHAALsrwnyRLH 70VqrAiE4Hy/hO6D
pTohz2FpWxZGeg8xdwljOot/5oaQTTBsz/mGlwUODXYxu4WLWHHlnsX63rFL t963t1yzfUubTYav
SS/LbdlpsHOTuXVdL+cgvyDPn/P/YSfXHrI3Il0VwdFtldtZlLrUAqVCRJEp GpvWqC0kdR+tcMXt
9DeC0tHmM97aH0vreNcI2IeDZrKDGfuGGGsz9bTre6VeRbRFRnUdfY2BSTvi ICqWjh7pfYZtxQ5L
ZEOx7Ui2wu6C1FckUQxF1a7J1+dfn/994RN6i2TES3NTc2wVxA9uQZFCJipr 4J1lGSrD3mDpmtsy
hZjWAQM/+fWe0mWBkPq6DMXgfKTIhiri0iELWLzWBeqq8+SFq0j0MqmarlSh 2MmLMxw3kLhLfDP1
WgVcekzAzy0maM7BFbuOuXOjedOaXcE63GCeharcirQ3wM6E3huF5Wk4GSd7 9qQBkw8tFA96CVqi
3mIr3R71xVpfDLZnhjroM0WpBBIMMk16YOQYlYzYRJkhqkjDPjUp39I1LGFN nvXNyvEp2IrqI+CO
li1TC4jKKfZow8mWYMFyIam+KYQQ+EVUxryBi29EMk2tHGNGN4+ZwWu1sBu3 zgQ9AmwjW7J74S5h
Gf51V6l5K83VTpcxw7zSne3bUfsaEjnoYOG9wskJJy8ubT8LGsLUMjXuA33h 2HQxWox66AkGwnQm
/txFV5tqq2ePmg5kFoQuwfSztuD+nDM0ycvjFqi5VjiJJi0KM6jhEsorvaKE wQosMSZoW0aDaGJX
Llmv0LidTVb2ySIULC2Tm8f0wPZ+/YoqS/xOih3XTWs5eWKGdfBoGLxw+pSA V+jmaOLI7GujTAj2
YxoBr6ePhujpS4ooz4kWfRhvG4lQYY0o2Rr1dofG0d2/BgQ6cW56lOhmrtcM Kj/Okr8FMEZosPVx
zPJPfFUiWJaNkTR3ZDsiA/p6+f8ngb1zns+CGHwXeTbKgyjb+UTw0H3u+pYR 24wHHRqJyQRsAbaN
9JwiumVBGDyE2AGtu116RfOPaylanRIeiZbsgRYRyjc4NMxQeqAYpU3uEY21 M4aN09Qdr+NEgDUO
tpg9+B7ODvOiJ5YXZAzLg18mB0bE89EnxKBCl86x5kThUY/cHr31szxWvYtj PPzYxHjEou9pFUP1
WXrCI+P6sLtny5CMYeWoAyQT4sfcbfuuWdRAW4575VyTHWdqEzbJcCgfOX90 Kzwwg6YofPIkNoYi
rOedYt+qUdm9X5kMkFsNnBs9bu2aIb0x0Cit86djbhWYgjsGoxOyv3lE7my6 Sxszbba04nVbdi/M
p7OqWyb9l4zQxn/rqFfiYTT9ybduB9+xmW1RL8fWG/a13GUovHOOXTQzt8sn 8VyMz2Z3Rhis41XB
Pg0iJq9gRhYmHUE3asNQnk0AXRCnEL/bBOMsLLcvvohQyllYMB8i8Gt9QgsE xpZYfwWOXwHPetB3
Xv9u2i3T3RVe91o8HXnz0F0qVMX//wVQSwcIQMIqKMQJAADpIwAAUEsDBBQA CAAIABWO4jgAAAAA
AAAAAAAAAABeAAAAb3JnLmVjbGlwc2UucmFwLmN1c3RvbS52aWV3ZXJzL3Ny Yy9vcmcvZWNsaXBz
ZS9yYXAvY3VzdG9tL3ZpZXdlcnMvSUdhbnR0SXRlbUxhYmVsUHJvdmlkZXIu amF2Ya1RTWvcQAy9
L+x/0DEJXXuTSyE5hVLShYUutH9AHmtttfOFRmuzlP73yuOS9lR6iA7DSPP0 pPemvXvb2G7gDj6k
fBUeRoUbdwsP+/3Dzo73cIgxpSzo1K7nJAGVUyzlWpQCwUvoPjWV4Nl7qAQF hArJRH0DX0cukCUN
ggEw9qAjATqXQsZ45TiA8ZEw+lJJUMgqvWEmZI+dJ7jEnqT2GTAUSOeafHSe cyE4XTrPDo7sKFo6
3Tf7yjSP7MbXUUzFumyXnosKd5dFxLu6kRX/DEOtzaNqfmzbeZ4bWuc0SYbW 04C+pex30/2+GTX4
iv7tX1yJk5THWlniP9yDHXBkNQvg+XRYVwrZ23PUil7I3jTa7Saj+44Dgal6 VSiYG3cpmkIzMc0k
5Wm7MehqMEez/4yO4PCCUfVgAo7YkT9Jmnj5oh8LGhYgDKRfFEVv4MzRhH3u vpFZQKsquH36C3ik
OOj4D+TPX1BLBwh1+UYiZQEAAPACAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAA AAAAAFoAAABvcmcu
ZWNsaXBzZS5yYXAuY3VzdG9tLnZpZXdlcnMvc3JjL29yZy9lY2xpcHNlL3Jh cC9jdXN0b20vdmll
d2Vycy9JR2FudHRMYWJlbFByb3ZpZGVyLmphdmGtUU1P20AQvUfKf5gjoMZO uCCBeogqRKOGErXc
EKrG68l6yn5pd2M3qvrfO15TONIDY8nyjt978+Ztffa+NZ/BGXzy4RhZdxlO 1CmcL5fnC3ldwMY5
70NEleVz76PFzN6ldEyZLMGNbT5XRWBtDBSBBJESxZ7aCu47ThCi1xEtoGsh dwSolLcB3ZGdBtGj
yGhSEcFI0mkF0yMbbAzBwbUUC0+ANoHfl8O1MhwSwe7QGFawZUVOjv2qWhal oWPVvYxiSsISLy2n
HLk5jEt8KI6k+ToMcyF3OYfLuh6GoaJpTuWjrg1pNDUFs+hXy6rL1hT0c35u EvYxXZbOWP+RHiyA
HWeJANa7zWTJBiO/XS7oUexdq57PAqon1ASy1cuGEUOlDil7W/VMA8V0NZ+N T5giZicXsEdFsLlB
l/MWGzK76HseL+i32ByTgDS6VrBnJxsJB77e/bhdf/sCH2GxuvqH+i5hOf3w CJryljS59p5+5ZNn
2l3zkySy6H2+npKA00Id9YRxi/HpDeyf+ewvUEsHCPlAUtqNAQAAKAMAAFBL AwQUAAgACAAVjuI4
AAAAAAAAAAAAAAAAJQAAAG9yZy5lY2xpcHNlLnJhcC5yd3QuY3VzdG9tLy5j bGFzc3BhdGidkEFL
AzEQhc8V+h+W3DtrBcHDrkVkhRZapV17lTQZtqPpJJ0kYv+91VoUoR68zRu+ ee8x1eht44pXlEie
azWEc1UgG2+Ju1o9tneDKzW67p9VxukYg07rveh9K+Qku+KF2NYqilHFx/Iw lqdJ4/lIeukAjaMQ
EZ5tAqczm/U+HSbz5un2ftbejGfNvPzNEScU1g4srnIHmb4uUWCRNFstdjlt dwHLycWiGQzh8h+F
gkUwXhAEt5kE7YPLHXH8y8rnFHI6uq2IP+Gq/PnAd1BLBwhjc8zAzgAAAHYB AABQSwMEFAAIAAgA
FY7iOAAAAAAAAAAAAAAAACMAAABvcmcuZWNsaXBzZS5yYXAucnd0LmN1c3Rv bS8ucHJvamVjdL2S
wU4EIRBEz5r4D5u5C+vNAzubqNmbxmT1AxDakc3QkAZWP19ARjMZTTwYb11F FY8AYvtmx9URKBiH
m+6CrbsVoHLa4LDpHh9255fdtj87FZ7cAVS8gaDI+JjT2T0RKC30jgYGajQ+ ACPpGb1GplKIzgpe
AyWpnLWAsRd8morbtg1V8Jl6SmbUew+qqCavc1Wirs438IPOYEd5kEdZC0Bf R8gNSUMq7NA0nxuC
Lyi/4noN7FaieYYQr/4Xu1cvYOWfQJszXXnmxUTQ0h9igb8f02Dwri4Weg39 VJg9Dy4601yIn39h
/uHeAVBLBwj0v3WS6gAAAK8CAABQSwMEFAAIAAgAFY7iOAAAAAAAAAAAAAAA AEUAAABvcmcuZWNs
aXBzZS5yYXAucnd0LmN1c3RvbS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29y ZS5yZXNvdXJjZXMu
cHJlZnNTDilNVXAsKFIwMlEwNLYyMbEyNlBwdg0OUTAyMDDn5UpNzsksKE7V KyhKTUstSs1LTi3W
K0stKs7Mz7M1BErnJeenZOal69sUFOVnpSaX2Nl6BvvrWliYWuoCpQFQSwcI TEPF+V0AAABeAAAA
UEsDBBQACAAIABWO4jgAAAAAAAAAAAAAAAA/AAAAb3JnLmVjbGlwc2UucmFw LnJ3dC5jdXN0b20v
LnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzvV1fj9s2En8v kO+wwL37sklzVxTw
Q7LZ4nJoNkE3uDwKtDS22ZVJlaR21/fpOyQlW7KltUiO8rZ1xN8Mh/N/JPYf 36G4+pKbq+vXV9c/
//ruza/v3l7d3N5/u3rz+vW/X/0EeckrDYtKwRoUiBz04hGU5lIsr1/9xIU2 DH/8p1SbRftsLhUs
BJjBHxdbpj/zjWIGiqVRNbz6qfvYn4Xxj+ZyV/ESFP5RwAbEgouSC/ivVh/2 BuyPy4JrtiqhmIpg
mNqA+Voys5Zqt7xevJm6sha1huJ3mbNyiZLQoB4n8L2rSm6Fg5R+vvR0Aat6 s7A7vKt3K1BLJAtW
SBMXWtb+xxS3Aglcq2WtcviNByyslEQ6uwUTQhpmUBnu6wrUJ2FArRnu+Ikp wcVmMo5GkZpPBQjD
1xx3H7q+NnIln3HFEpSSauq6AvA0c7eBUJKdpZ/Ex+Y/oLgJUcwBrO9bEF/Q wBQvkJkj7mcwW1mE
I3Od4/GyDRR/tAYculPYVWZ/j8cMOzyf4NWi3sUf7JqVpdkqWW+2N0wHs44k y+I/TpRLvhH4zPSV
gpVfmWI7QJ3+IGtRhBNHiHL/AW3z4U6aG+sPwCDAHXof+y/BgFKteIGyPB5l kLZv3eIbZvKtYyqU
Phf2J1RT/K87q/ZbUBx182D2jZJGwaJo4BZ15f6JI3/hGAVHSzFWTXn+Pscw pQNPvOdCo3Rm57b/
nZvtjcS4qOrcSHWHGhS6mx3Xumf97w9+NpQlj9R4FEjFuccDRyE18T9wV0Le rtd4Ru8RaiNifImQ
n2xMzTmes8J1KObHWF7E7TNqLVoo/z8UHu53VGaFET5MNKIuy6NBhq2VB0// leUP6KU/wprVpYkz
pKp1V/ESriQuxb/Qgrh12qz8IGUJTMRDKvb0bV9BrIh0BTnvuGJvmb9Zxx4c DXXHO/wBOfDH8Iik
68pmgPq7X6aXIMJ42AuzhQMbt7u6jDFIgyI9kUnoTmqRbyF/gMIez5fKJn4R loSBUea1VQwobm2m
4ENL2G5qsWWiQCk2Uv0mHyCCEwFWpEztb8vwXKGz3ArkxsomHOOvGj0Kph2F 09CoQOSLjY/4IFN4
OJj9PKGzyqGKO54XwPrJZrA5eWx0yVIFe4WmomIrKCOXumIsaunBbqIO5rDa Ss/GI5cWIxPvVxjz
WW4i5djDPZ4Kxrhc4c+xqIo/YgbxGVxRGSiuR2RJbfR7tXEGfgdY3zA9+ax9 YYnV79uRJ20Zzgxu
eYFGsxGZdWrZzrGqMymyXJb1TuglVgF67JROMCyfGf6WsYZpnXGRYbYtfX2V wbNz39aUfhmr/ydh
2sIGOXQNELO8/lcS1rNPazyeTxwz1O8ykUefkeJfj832E/EO3o1Mose04nXg 0hWWV2rfpf4uFMKV
M7nJ+Hr5LpRzPKmC2/2zssfDdSBOT410sBSOpL2iK8X2+Ady5jJbFb4xTEgM R6+WueJZh2v2IQ11
HHU1unBhKFIR+7CNZichaijB8TVsKWM9u1E42wJDdrRj0PmyLntvQ+Xo8Hhb Wx99Thc0+HAGQNM5
tR2aJ50hAoaclw49HXng3CeArkomHjLbXdUZW+MvGXdZi15eNtfztZWv1QLX rgB/b6xqgpkPLlXa
ZF7DVrLY9zUhBrGVQhQ7PlA79YkFcFVuFOcCnrJ8W4uHONLtEYYuNk8AohFb tlGyrkJVqMU4tbpJ
OJheIu9Su8DjA+iho3NuxyCKTK4d3ThoKfY7WetzZAHPxuHaLO1JsSoK/yxW JTK8cpUnCW8Oynky
23VO5GvMG5Jw2k9DEzk9iy+JeAPemmTT2jeJE7kjUGvMIG2sWuQlMKs1RztH 3fFK1Dzy0qxzIt6f
7JEVMo9D9L/0edJREFtgBRpr1FKzK6MWnmw9jnF3skkIvqLN3PQ5aD0Xtpt6 zGFR7XSuuG/pxCAp
KU1m2CZwH1zYQauLnk4aTTg8ovkHovF6ifqykFcYna4CMR1QCWJjtstfLgfo toiD0maI66nysC2b
2gdOL1LvAi7XEGNLR2LaZcBGtzY1UwVnok12EVFaQaA0JjZAGtU4TQ21r3Px mI3s5gudR4JsegqZ
XlSaB31O9l1kiAFVwB56SDZ/mNrAakDcvN17/bCFup3R9zjwWVHILkZwUGBh MC5ID4N5sVChNelA
AJw78oVGC51goKdOzleBrDNLnebghnFkBbaZmvkEZbCHE4uPuuQzpDUvrW/M mjFuoGMeCRq5fZHA
NRDU/qgzRNil1PMIpSHgo4WwQiFmvXntYybBPG3dUaL3lmTQtrHkfM5wcIiV dAd2tJBMhfbOLRWl
X0ORoFFusqminANOxUo8AV1Ze2wdYHFoHx5zvgS8wyzA+kRkTyahGec2jk46 ykZeQjyXZTKJZqZB
sP3WgTKxQX9h3egDmMNxHYY6s1E4dusJSByiQIy5DwHaxEE07Z1I79mDlaWr BTL/HmsKgy2S6ztR
4BzHVBRw6zSlbGFKO/eHohPBUkB3OzY+5KUAjs30htESM5lB0JEWI5EZXqLi pzQUFPp1I4mb6kH3
Gu4UoM3gviMZO7an5XztRpS5AmJETgN23uQlVrsBAnQadzb4pT27/jSdXP8O 8O7tZXL4wznal2R9
YFfH9zjT8U+m0RSQdPlND5FEo6G0T/MUiLZbcJZ1vXhUyRnOKNkTcc9MqHMK ZJTIWgxj4M0GPDx1
kjJKiMJOW/BDukxZTp2Bu1ycFM82BSkBR+a4hCT6nQh6Gafl72dwfE2JNjAt pkfvvOFFCO7+MFvQ
zvuSWvaBRtPlpkTcixwTKWGZpsR1TcoEwEpqs+bPxz5IsiHYz5dJAf+qQTcT QKIau4v4xMsiZ6pI
51PDjhNV73W/N5XAWtPLpmsgtoBEHcQW7mLDLwGcotV3Miz5YTnhJbp0SeEk SjRZ4VyTp1H0mfLC
S5TSEsMTdOLMcAw9OjUcB4wNpaOIhMnhGA2y7HCMQGyAGMOLzA/H4IgSxAvw iRniGDppijhGJCFH
HIVMTRLHgOOzxBaRYOxyCuXmLgSWRTV/OcUr/AfilCymGv34UIeCyReHO5QE SAPY+LCHEHzC0OcH
UGta8YSUxoZA1CR63XJK8ItDIUJiJ8MhcmROC/rysGheQvSa+tLwiJLMC0Ok OcgMDJMIycxdlY4N
lwih6QvcsWFTOvRh6JQO9cOHT5fokp/Djxg/nZA6NhrmaTQN0CF6HfMCmRlS nzMi8S+EjSHOUMef
0Uh533QC8lxs05bfZ/DptesZ5FwKPqF1R6vsIx28GYnM5sTnaRm+gN69Vobq dd0xqr6vOAfwiFua
gRR1l3FwCD0DLF/PgTrg9Oaj0mk9zkBktAM5A63Gmc+B3O1HzoDv25LpwGPS tjQUmFolRaOX0F2d
mwROOH9vIekG8A0i5QR+AJJiBN/AHmbwlFh0jpRyru/vNmmSCT1PNuFpNN9/ 2Uxv5OYrUiL97cyQ
8nUJOuPWPyKLGaY6S7IxTIow2RgmQB2/X6QSHb8fACr/TephemIvANBsF3QD gIfxH12e2kPEhQIO
jtsrLu13spHrMUiJtF3ZR++rkpsp10EIeLTXezXf4/duO7G0mzu03MWSE8n3 EHt3iMQCuv/Dg/0u
u3e3GLILGy5cNoL/1v3qc8K2D5id6wPst/Ht/65iAkZVt5cP9I6r/Yh04u4M WzVXGi/yLVNLZzgh
qyZ+lW/vyMBV9hDKvRtWlMDsjalZ5xP/qTco2Mt+xt7M8tcK/A1QSwcI7vPm M+sKAAApZQAAUEsD
BBQACAAIABWO4jgAAAAAAAAAAAAAAAA9AAAAb3JnLmVjbGlwc2UucmFwLnJ3 dC5jdXN0b20vLnNl
dHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmc62Y227bOBCG7wPkHQbe XLTBWkqyxyaxu0HQ
7rbYQ4FmsTcGDFoaW2wpUiApO0bgd+9QkinZ8QKOJCOxpfFw+H/D08jf/Ycx /BNZuLyAyx+vf7qi
P7h/9/kBri4ufjk9wUjwzGCQaZyjRhmhCZaoDVdydHl6Mlc6ZdainmZazbnA 0ZRLqVSmWWSbXxu0
lsuFmfrG1JpLYxmFDJVeBNueIqUxkGgPGoOEmb/4QjOL8cjqHF0Qii+ZCGKc s1xY8k0zwV3cUWU6
PWnG+hLbIOcBX0gKKtQKdcQMSpaiqUIe8k4zpa3SMerRF7ZkN+7t8YY8b6i/ m4NtlIwxZTK2iUaT
KBGPfjjoR0mwPHru/ebNQXeLjwSZG6vSaaRinFokYMqIGd2+fUwFVCmejAaX wcUAaNBUTLmn+38f
3g9/HYDLesyEkkg2qQZvx7c+Rn0JLLeKhgi1JTeXmQGQStc93S/QjSuxpyjt tLIPIEaBNDbkMGfC
oDOYSPPMloLuS3+giQFlBEjRJip2MtlMFC3Lrri7/F984vaSgx0tA3BDua9w EB4LZjqDmd7AzEEw
0w6MrgzZIprFXegijW71QSOc6QT5XJcnPfDV0bhuN+qD8yMtdHDBulE25Hi8 pm0cnp9P9ETCOZQf
4W24bX0ssl1nvSC7ON1oG0o8bdPWoP2NkBLq/OwpJ6xNK/A5RxF3IS8CdB3g WkNjhBvGo6duuXN0
4ZFKDhWdA5q7nb/airrx7YjygLvWowkrbZ1ma898e5I84b79aEaHsiCvLozb GL0Q7gnyhPv2xuI8
e7JsYTb+ziCVG2pqmabTdXP0RlVx1rmRuHLbwdE5+RtXYu33p+67cdW/T8H2 3qH3+qoyd6+yteaL
xMKr6LUrra+G9PYzfPDFMl2W1TIBG7M2pBXh93T2R1CFuBMCihAGqEBEvcQ4 gIeEG6DSmyriFKio
A5tQ6iNXAjO5LpYG8WpOOa3CME2TicXktWRcuARCTpWnLlqSa2pAzYubd2UW 4VM+EzyCP3mENJ6w
pKKyirVKeJT47jgaakd6Yk6HNp/lDuX7QhUZ6+6YrZon1maT6zBcrVZ+yGj4 QjcbRYiZGC4vL4LE
pmLnYKRkyjI+VR6T68roXkdkE4bAJbeUELj79KEUR5MC3cQvvMtwvb5CF9P9 nz1lLPrKFjil7UQw
XXS4qb9tnJCb2rLj/PKzkdoaM1Px+gUbEE0PLoEWBRSti4IAKAbvuOy8lrrC 85axI345XvH4N2cR
tkb0EXrD3NHkUXetLXFR5mlrUte4N8itEs/nDS3RGK3ecg22BqxD9Ia5q8rD 7plbIkfMRslMqOhr
u8XpmkPRvuO69DrqhVmbxmHoCgEVqw3cEc5wgRJ1+RBYKyg3LHyMsJA6XTK9 CTJNs/6zpV3vgbZl
fPX65uVJKkufVnNiWzCUIcDYfNZHEbwzExqm8dlTIdP9oFOcKG226/qRtxNy I04P3HuqDj2g95aB
8nebTvBliG7ItYy9X5RKUI0215LWRfGIt2kxr013TtMDp3nO2TCNt4AwGYGr X6jQ3IX1l2Z8evIN
UEsHCCjhS0mOBAAATxYAAFBLAwQUAAgACAAVjuI4AAAAAAAAAAAAAAAALwAA AG9yZy5lY2xpcHNl
LnJhcC5yd3QuY3VzdG9tL01FVEEtSU5GL01BTklGRVNULk1GhY6xCsIwFEX3 Qv8hP5Cgjh2VjpVS
pZ1j+gwP0yS+JKh/r9gSOgjO557DbaTFK4TIe6CAzlZsKzZlsU92NMCbhWa4 y+goJ6hYN5zZIYXo
JjbgqCEG1pqkOdo8PL2mizOoZsGRFqAM+gCCpBf0iEJ9A1lYP1l96cGOjipW L/anVBYd3BMS8Hnz
M18W9dM7iryV6ib1nw9vUEsHCCMNLo6WAAAAEAEAAFBLAwQUAAgACAAVjuI4 AAAAAAAAAAAAAAAA
JQAAAG9yZy5lY2xpcHNlLnJhcC5yd3QuY3VzdG9tL2Fib3V0Lmh0bWyNVF1v 2kAQfC4S/2Hrh35I
mAtBqUIDSCkhaqo0QQnpx+NhL/ia851zd8bw77tnG0gaUoUXON/u7OzMmP7b s+vR9PdkDIlLJUzu
vlxejCAIGfvZHTF2Nj2DX1+n3y+h0z6AW2dE5BgbXwXNBtAnSJzLPjNWFEW7 6La1WbDpDVt5qI7v
rX+Gtmxsxy4Ohs1Gvxy1SqWygz0InV6vVzVWxchj/52i4+CrQ3zIxXIQjLRy qFw4XWcYQFSdBoHD
lWO++wSihBuLbnBxex0eHx/1wk7APJQTTuLwdKZz12fVgZ6yzaSZjtcguVoM gvFVeHdb0TisGmCa
CAv1bOo5pEug+2z4LVcIRy04PDj41GfZ8I3v6g4vRYTKIpV2qbSsnCYI40iK zCKc61zF3AmtIOX3
aIEvuZB8JhG4lJu1QChwfnAm80VIhw/vHnLtTmoe1eFjG+BOSbQWtEvQFILw mw2hYhFxhzHMUOqi
RUC4WQA8pNFLEdO107DWORAfNGWRQ5MSIRV7GrHwJAl67u+ajc0Ck3wmRQT1 mvADjfXL+LzUJMeT
yx3BU8LK1jUK0JWnsNu52eAO+mS0wfmTcGA1rkyIxAWXDDMZLjsH7Sopry7t Mz5sNxvn2kCWm0xb
tI/YtKCiOjF6YXhaHaAQZEWKXD3Wru1Nrh29mJfSxSIGpR0YjFAssbJsI3Us 6LGTa5gbnVbznmXg
mTnNxgyFWhBiLPxbNMtLI9fkSukxZNy49Ubpm12VNrXmpX+xmM/ReMy9nqZ8 TcJnGZGrQmAgJ14k
C1fk1ewPEaf6GKsc7iQAGCUY3ZfPngx/b0HWiXAJWVpwv8s2aoVwyT9AJKHS YPMo2XbiigBtq3wJ
ODF4NmVP4F/I+3+iXIbQOm/xVgK/tiUZIty3NmlFQCXVx0WkIo0kuRwXisa/ Iskv5bYM6TZfzP8j
VX9RFGD68RdQSwcIpglrCMQCAAC2BQAAUEsDBBQACAAIABWO4jgAAAAAAAAA AAAAAABFAAAAb3Jn
LmVjbGlwc2UucmFwLnJ3dC5jdXN0b20vYmluL29yZy9lY2xpcHNlL3JhcC9y d3QvY3VzdG9tL0dh
bnR0LmNsYXNzjVZtcxPXFX5WkhGW18Y2QWmxMBgo6CWOEtI2EPNmTCEiMmlq KmO7IayljbxY1qq7
K8CUJA1JkzRNmrb0NbRN6XSGL51pOhPs0EyYfmpm+mv6C9o+5+4iyUIE+8Pq 7t1zn3POc55zrv/9
33/cBfA4/hxFSMMO2ylnzWLFqrlm1jFqWeeSly3WXc9eyp40qp4XRUTDSKuV S4tLVqlsem52wl6q
2a7lmRq6+FxyNfTnLxgXjWzdsyrZvOV6Yxo2VMyyWS1p2Dznf6wY1XJ2ynOs apmfu5cMZzFvzJsV
DdvzD3KlDGgdEWsNWk6D7uOqL/S84aBVtbzDGvYmH4jSCHgslyoQbMIumTGE MaijD5uieETDnodR
kjeW7boXw2bE5dSjGsLJVEFQvqpjK4aYkWsGVhp2PTgY32QsVYhiG8lp8jbu OMaykBdDAvFusE46
urBBVjt19Pqr3Tp6oGvYlLeq5un60rzpnDHmK6zFYN4uGpWC4VjyHmxGvAWL LO3MPyw/qVjNcMyq
RL8OJll711uukEcNozqlRUZ6igtmcXFa2YoAAjJ2PIwLDRv5mvOllEqm5h4a rdiO9eDr+GYU39DQ
t1Z9Op7GfubuWldMVadcFM+QuvWgCuhBHYdASUU9WxVFQzLZKuLn5y+YRZaw wx7Tdky3XmHae9eZ
Bv0E2UvyudT6TsVwHCei+BYl1M7u1PQZHSfxLEtkOo7tkAnCFiSzUzqeQ56c qAptEW8dUuiyqiXz
MlstiGvCrosslMCDpo4nO3S1aPo7HAbtH0S3DCmKjTEUcDaK6bVGyy6d6JjB LJ0YwnjRrpH1dPL+
6HIdtnLi+Hsatn3pGAlrHIExzGFQNHteh4F5Db00OGYUF8sOk2RiO5Op++Ra ZhUWrKLIv2I7Y4JR
0mHiZR531x7v0Phtp/1CLOiwcIGFMEolKUQHdc2Kn4qOJVQpEfo5Y1722mwb xHM2WixcxR+o3eVm
pbYkUx0HsCBOcqoKGXUdF6WBN9VrJcMzJ5ujWaQ5qWZvT2AvUUhBr+joRkxi vKrjFYmxT2K07coZ
q+aHunEpsJfh1CGEnnITUsMjydT9RoL/ho438Trxy2340ZLlchypGfS2jnfw Yw0xyz3u75ZU68/K
iP6Jjh9JfrGiYzI/v9fSyfV1WtA6H0jFfibK7yBBda1YCnbPeru+p2S6nmMv 3+v89Z3zg/m1jt+I
fDhsluyLprD0Ox0f4oZcrNwYn+eDE+/L7sQqnVfG5A6bwx90/BEfkSCWsGC5 ln93JGclr9iUXXeK
5glL9mIqkseFAIyQ9jB7qgshuae4CkmPQ/4oDfXLu0r99qrvm3iiTz37+fYa T8v50XQmsYqB9GfY
PLOKLav4CpcJLodvY3tzOZIO3cauvys3X+Nzq4JM8LkNAxjmajv2YgceY2B7 +GWHD869pAphFCmk
oalVhmGFuObFHQRziL8hSSa9gseaTmJqczcihBTQuG/UAO1CFk/wqIYnsS+A OkcbsRoWqPQn2H4H
T2n4HAfy8pK5g7EQpjMfN3wMEh0MLsLwBhhagik0fQ0HvgbI4REcVb7GcSzw tRD4SoqvoRvoH2o4
vImN/Rs+xYRsDN1BLoR/4kC71yf4fBJbGPtWyqrpNdnIMIlJkiVeT2N/4PWg egf61mT41zbW9hP7
gMLUfesAU8Pz+LaPpD1FBiWO64KU+QLRKCMOH7qF/kxiX/D6ZkhLZO7e/N9/ 0pm7n+OF25jKhOl0
Kpy5+ym+K8anE3wfUUFESn/B7s8wN5MefHEV506PEvilFRTFYPQOyqT+FrXG t0TAyRxtiJbYt4JF
cSUv9Pa3pghOkSxRSASHKe8jTGec5TiGRzFB/YxTHieoqZNM9llanCJhz+Es 8jjPVZXJXsULeIvf
foEpRcdhpdzrDYqvq7aR1ojDVsocw3SwOsu9GmSIXeXTX2n4PpyG2LrWiG1K KMr79CiWhKP7xFbg
c5qCOkuxzXQQWy/zO6Ji0uAyct/XbCC2eOBr19BH0NND7Mr0KrwmX3HGBLxI H+eYw0vEOk+Jzbf4
iTdyj6sRIX4uNeT1dCCv7nt+2pVlEvrlFmV1N5R1mYT7ILkg2N4AZDmzgh80 Y+xT0+ECgRYJUmmJ
rbcRWy9e5ZCSWH6I1wPYZ4LY9HuwK7j2cVt4NlFrLeHpjfB4CwU4M2r+AEPE eetDUrqKd9OaDDw+
luUx0j7qPMqkTrouEuASCb3M/SstboYagb+H9wM3hWDG9kuXJjh7fhrG2mL5 RLxC3Fc5mV9rGZ39
Dbx+/Jzi1dRqUslSRPvLwMfxgGk9GG+/Yo+1T9BrxH+jhWS9ga0H2CH5FyRA vEYBibejUvwbnPzk
+QsMplVfD4RCbGwhibvaCn4rv/8ig5+oLdpHI7cQCa/g980ohskd2IRRvM2M 3+GV8S733+OkfZ9C
/6CFxaONYv1Jnb75f1BLBwiBUzCwJAcAAD0PAABQSwMEFAAIAAgAFY7iOAAA AAAAAAAAAAAAAEkA
AABvcmcuZWNsaXBzZS5yYXAucnd0LmN1c3RvbS9iaW4vb3JnL2VjbGlwc2Uv cmFwL3J3dC9jdXN0
b20vR2FudHRJdGVtLmNsYXNzjZffUxNXFMe/SwKB9RIrKrUi/kDE/BCjWLUV /AWKxka0DYJYtd0k
281qksXd5Ye1rb+tT+30tdPnPvXBzpTgtDN97Uz/qE7PvXvZxIUQYCb35u65 3/s5555zkvz7359/
AziM1xG0KOi3bCOl50vmrKOnbG02ZS+4qfyc41rl1CWt4rppVy9HEFawq97S IasFs2DorpPiFgra
ZjVbr7gK+jLNJIcVhF19kWz3ZBqJZrScXiLDUE6zSdysFIS4klbQ6riaTfO2 kl4x3CJNRsyK6Z5R
MBBrfnY6PkXHj1kFXYWCLoat2KagI1/U8/cn5kolBeMbUIk3N1HRjR0RvK9g bzNbhg+wUwEjz3kw
x6w57msoFk9zxl0MUfQqOLgR74R7mzNmRZ+YK+d0e1LLlXTyM2PltdKUZpv8 vVwMu0XToag1leVQ
wyLwD0sUthD6OdIByp5YwwucFiMPdwf5cJChFW0RxBX0rnvlKmJIcvVDqxyu tx2zyrOWY7r6ygGH
GSJo57MjDB1o59EfYjiGDxV00pZRLX/fsCmwBcrQWHyVsEF+F808Vy5Z9jDH OMFwEh/Rdufd7ftX
YwV2x6f48acYhjGiQM3buubqXpkkml+iiLa4x1ae9ouUneTAdVle/bEN5Z6C 8wyjGFOwSaS2dx0i
qUi4nVzKelUUjskIXmJg2ETPDP9ZB5llRJGp+ARXI8go2Br0PTs9yTCBi4Sr 27Zlc63rDJ1ci4Nn
ZJVGSGxSVP32WOaeNq+lSlrFSGVd26wYImQh3GD4DFke/Bv85SbDDLIKonyr ZZUmzVlPoWu1gHdY
WvQJjnCHQRUIzsqqii+Ri0Ajvdruq5pbZMiD7jVU1ijWrTGqIeoyqrh12zsv kluZqUbd8ja6i1Ug
HPwew31wn40Vnze59fxR4x2H+BaLocy3tOZ5ClHT2EiKDnnZOW7ZupedfHGO wRF5awSfLDLM84KI
FEyHykd0wEcM3+Bbcsx0LnirBZElt/h9PGZ4iDGezE8ZnuE5+VHQHde2HnrZ HN9gNvPbjeExeWfw
NTota83ZeX3c5H0o6hse5tHEPsIK0WdUG1p41wD/o+IWY4cc6W7FyOTYKcZt tDOKzfT6Hr27jrDQ
iSaSu5JvsaWK7cvo+Z1WWrBbaLTQ627au4f+gb2eNY37hGZUnK6IWR/ptwj1 Xqn+Kz0N0zhK6svY
n0guYSDxF2IzydAyEksYrH+TSvyBVLKKo1Ucp+mgnCYTvVV8XCPqE9710an7 6bx+7MAB+h/AERyk
XhLDecQFacI72Scd9UlHJSmfnaZZiFbP4KxkPkkjt+pIVHGOOAbeBIJxiIQH xRHMM5RHKLiAi1Jk
Re: Gantt Charts in RAP [message #96024 is a reply to message #95735] Wed, 02 July 2008 17:00 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: rherrmann.innoopract.com

Hi Cheney,

sorry to be no help in this, but reviewing your code is surely
beyond the scope of this newsgroup. If you seek consulting, you may
e.g. resort the Innoopracts RAP Professional Offerings.
However if it works, it can't be that wrong.

Except for drag and drop, it might be possible to implement all the
features by staying with the composition approach of the demo gantt
widget.
But given the rather long list of requirements plus drag and drop
you might be better off with a custom widget. Performance-wise this
would definitely be the better choice.

Cheers,
Rüdiger

Cheney wrote:
> Hi Rüdiger,
>
> Thanks for your hint.
>
> Now I know how to use the JFace-like viewer-abstraction, Attached is a zip
> containing three plug-ins, one for my sample that create the gantt chart
> with JFace-like viewer-abstraction,the other two is you provided before.
> Use JFace-like viewer-abstraction is great, It decouple the domain model
> from view. Can you please take a second to check my sample code is the
> right way to use the JFace-like viewer-abstraction?
>
> The gantt plug-ins you provided is great, thanks for your good job. But the
> function is not enough for me, in my use case, first, I need to show
> several task or project in one row, in interface is several different color
> block in one row; second, I need the selection event for every color block
> in order to show some information in different view, for this request I
> think that use the Button instead of Label in Gantt Widget would possible,
> But I think that use the ISelectionService should be the best way; third, I
> want the gantt widget support drag and drop, is it possible can implement
> in RAP now?
>
> How do think about my use case that mention above, which one is possible can
> implement in RAP now and which is impossible? If it is possible, can you
> give me some ideas?
>
> Regards,
>
> Cheney
>
>
> Rüdiger Herrmann wrote:
>
>> Hi Cheney,
>>
>> for a general introduction to JFace viewers, please google for
>> "JFace viewer", "JFace article" or similar. In addition you can
>> refer to the JFace viewer JavaDoc.
>>
>> With a general understanding of how JFace viewers work, you probably
>> won't have difficulties to use the Gantt viewer and provider. If
>> still struggling, then come back here
>>
>> Cheers
>> Rüdiger
>>
>>
>> Cheney wrote:
>>> Hi Rüdiger,
>>>
>>> Thanks in advance for your help.
>>>
>>> From the Gantt Widget I got some hint that how to implement my use case,
>>> But the JFace-like viewer-abstraction plug-in I didn't understand very
>>> much, well, there are several provider like
>>> AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How
>>> about the contentProvider and how to use these label provider together,
>>> can you show me the just sample code to use the JFace-like
>>> viewer-abstraction plug-in or explain how to use it, sorry for my
>>> request, because I don't know much about JFace viewer.
>>>
>>> Thanks again.
>>>
>>> Cheney
>>>
>>>
>>> Rüdiger Herrmann wrote:
>>>
>>>> sorry, forgot the actual attachment, here you go...
>>>>
>>>> Rüdiger Herrmann wrote:
>>>>> Hi Cheney,
>>>>>
>>>>> the Gantt widget is composed out of 'colored' Compsoites and some
>>>>> Labels.
>>>>>
>>>>> Attached is a zip containing two plug-ins, one for the Gantt widget and
>>>>> a second for a JFace-like viewer-abstraction.
>>>>>
>>>>> As the Gantt widget was only built for the RMS demo application, there
>>>>> are no plans to enhance it.
>>>>>
>>>>> Cheers,
>>>>> Rüdiger
>>>>>
>>>>> Cheney wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I would try to implement the GANT chart like RAP demo online, I want
>>>>>> to know
>>>>>> how it implements, is it use the already exist widget, like table or
>>>>>> table
>>>>>> viewer? Is that possible to have some sample code to study?
>>>>>>
>>>>>> I also want to know that whether RAP would provide user interaction
>>>>>> within
>>>>>> the GANT chart in future?
>>>>>>
>>>>>> Regards,
>>>>>> Cheney
>>>>>>
>>>>>>
>>>>>> Stefan Roeck wrote:
>>>>>>
>>>>>>> Hi Jonathan,
>>>>>>>
>>>>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>>>>
>>>>>>> However, if you need user interaction within the GANT chart you
>>>>>>> probably need to write a custom widget (see other threads for more
>>>>>>> information).
>>>>>>>
>>>>>>> Drawing the chart directly with SWT classes doesn't work in RAP as
>>>>>>> the Graphics classes are not supported (yet).
>>>>>>>
>>>>>>> Regards,
>>>>>>> Stefan.
>>>>>>>
>>>>>>> Jonathan Reid schrieb:
>>>>>>>> I have a few questions.
>>>>>>>>
>>>>>>>> I have been tasked with creating a Gantt based scheduling component
>>>>>>>> (like MS Project) in RAP. I was wondering has anyone been successful
>>>>>>>> in implementing something like this in RAP?
>>>>>>>>
>>>>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>>>>> example
>>>>>>>> should I try to create a custom widget with DHTML, a flex component
>>>>>>>> (if it is possible to host this in RAP) or in GEF (it a web based
>>>>>>>> renderer is ever made available for RAP).
>>>>>>>>
>>>>>>>> If I was to create a Gantt chart using SWT how much of this code
>>>>>>>> would be likely to translate to RAP?
>>>>>>>>
>>>>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>>>>
>>>>>>>> TIA
>>>>>>>> Jonny Reid
>>>>>>>>
>
Re: Gantt Charts in RAP [message #96066 is a reply to message #96024] Wed, 02 July 2008 21:32 Go to previous message
Eclipse UserFriend
Originally posted by: cheney_chen.i-len.com

Hi Rüdiger,

Thanks for your response! Now I know what to do.

Best Regards,

Cheney

Rüdiger Herrmann wrote:

> Hi Cheney,
>
> sorry to be no help in this, but reviewing your code is surely
> beyond the scope of this newsgroup. If you seek consulting, you may
> e.g. resort the Innoopracts RAP Professional Offerings.
> However if it works, it can't be that wrong.
>
> Except for drag and drop, it might be possible to implement all the
> features by staying with the composition approach of the demo gantt
> widget.
> But given the rather long list of requirements plus drag and drop
> you might be better off with a custom widget. Performance-wise this
> would definitely be the better choice.
>
> Cheers,
> Rüdiger
>
> Cheney wrote:
>> Hi Rüdiger,
>>
>> Thanks for your hint.
>>
>> Now I know how to use the JFace-like viewer-abstraction, Attached is a
>> zip containing three plug-ins, one for my sample that create the gantt
>> chart with JFace-like viewer-abstraction,the other two is you provided
>> before. Use JFace-like viewer-abstraction is great, It decouple the
>> domain model from view. Can you please take a second to check my sample
>> code is the right way to use the JFace-like viewer-abstraction?
>>
>> The gantt plug-ins you provided is great, thanks for your good job. But
>> the function is not enough for me, in my use case, first, I need to show
>> several task or project in one row, in interface is several different
>> color block in one row; second, I need the selection event for every
>> color block in order to show some information in different view, for this
>> request I think that use the Button instead of Label in Gantt Widget
>> would possible, But I think that use the ISelectionService should be the
>> best way; third, I want the gantt widget support drag and drop, is it
>> possible can implement in RAP now?
>>
>> How do think about my use case that mention above, which one is possible
>> can implement in RAP now and which is impossible? If it is possible, can
>> you give me some ideas?
>>
>> Regards,
>>
>> Cheney
>>
>>
>> Rüdiger Herrmann wrote:
>>
>>> Hi Cheney,
>>>
>>> for a general introduction to JFace viewers, please google for
>>> "JFace viewer", "JFace article" or similar. In addition you can
>>> refer to the JFace viewer JavaDoc.
>>>
>>> With a general understanding of how JFace viewers work, you probably
>>> won't have difficulties to use the Gantt viewer and provider. If
>>> still struggling, then come back here
>>>
>>> Cheers
>>> Rüdiger
>>>
>>>
>>> Cheney wrote:
>>>> Hi Rüdiger,
>>>>
>>>> Thanks in advance for your help.
>>>>
>>>> From the Gantt Widget I got some hint that how to implement my use
>>>> case, But the JFace-like viewer-abstraction plug-in I didn't understand
>>>> very much, well, there are several provider like
>>>> AutoColoProvider,IGanttItemLabelProvider,IGanttLabelProvider , but How
>>>> about the contentProvider and how to use these label provider together,
>>>> can you show me the just sample code to use the JFace-like
>>>> viewer-abstraction plug-in or explain how to use it, sorry for my
>>>> request, because I don't know much about JFace viewer.
>>>>
>>>> Thanks again.
>>>>
>>>> Cheney
>>>>
>>>>
>>>> Rüdiger Herrmann wrote:
>>>>
>>>>> sorry, forgot the actual attachment, here you go...
>>>>>
>>>>> Rüdiger Herrmann wrote:
>>>>>> Hi Cheney,
>>>>>>
>>>>>> the Gantt widget is composed out of 'colored' Compsoites and some
>>>>>> Labels.
>>>>>>
>>>>>> Attached is a zip containing two plug-ins, one for the Gantt widget
>>>>>> and a second for a JFace-like viewer-abstraction.
>>>>>>
>>>>>> As the Gantt widget was only built for the RMS demo application,
>>>>>> there are no plans to enhance it.
>>>>>>
>>>>>> Cheers,
>>>>>> Rüdiger
>>>>>>
>>>>>> Cheney wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I would try to implement the GANT chart like RAP demo online, I want
>>>>>>> to know
>>>>>>> how it implements, is it use the already exist widget, like table or
>>>>>>> table
>>>>>>> viewer? Is that possible to have some sample code to study?
>>>>>>>
>>>>>>> I also want to know that whether RAP would provide user interaction
>>>>>>> within
>>>>>>> the GANT chart in future?
>>>>>>>
>>>>>>> Regards,
>>>>>>> Cheney
>>>>>>>
>>>>>>>
>>>>>>> Stefan Roeck wrote:
>>>>>>>
>>>>>>>> Hi Jonathan,
>>>>>>>>
>>>>>>>> I would try to use one of the reporting frameworks (Jasper reports,
>>>>>>>> Birt, etc.) and generate an image which is displayed in your app.
>>>>>>>>
>>>>>>>> However, if you need user interaction within the GANT chart you
>>>>>>>> probably need to write a custom widget (see other threads for more
>>>>>>>> information).
>>>>>>>>
>>>>>>>> Drawing the chart directly with SWT classes doesn't work in RAP as
>>>>>>>> the Graphics classes are not supported (yet).
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Stefan.
>>>>>>>>
>>>>>>>> Jonathan Reid schrieb:
>>>>>>>>> I have a few questions.
>>>>>>>>>
>>>>>>>>> I have been tasked with creating a Gantt based scheduling
>>>>>>>>> component (like MS Project) in RAP. I was wondering has anyone
>>>>>>>>> been successful in implementing something like this in RAP?
>>>>>>>>>
>>>>>>>>> Does anyone have have an opinion on the best way to do this? For
>>>>>>>>> example
>>>>>>>>> should I try to create a custom widget with DHTML, a flex
>>>>>>>>> component (if it is possible to host this in RAP) or in GEF (it a
>>>>>>>>> web based renderer is ever made available for RAP).
>>>>>>>>>
>>>>>>>>> If I was to create a Gantt chart using SWT how much of this code
>>>>>>>>> would be likely to translate to RAP?
>>>>>>>>>
>>>>>>>>> Sorry for the vagueness of my questions I am new to RAP :)
>>>>>>>>>
>>>>>>>>> TIA
>>>>>>>>> Jonny Reid
>>>>>>>>>
>>
Previous Topic:Eclipse DemoCamps with RAP
Next Topic:When a selection event occurs in a Table
Goto Forum:
  


Current Time: Fri Aug 29 22:27:58 EDT 2025

Powered by FUDForum. Page generated in 0.06546 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top