Home » Modeling » EMF » [EMF] How to create an instance of an ecore model
|
Re: [EMF] How to create an instance of an ecore model [message #427159 is a reply to message #427157] |
Wed, 04 February 2009 18:06 |
Ed Merks Messages: 33141 Registered: July 2009 |
Senior Member |
|
|
This is a multi-part message in MIME format.
--------------060801030103030800010203
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Miguel,
Comments below.
Miguel Angel Garcia de Dios wrote:
> Hi,
> I think my question is easy for us but i have spend too much time in it:
> I want to create a simply ecore model and then i want to instanciate
> it and check some OCL queries on it.
> My purpose is to create an instance of an ecore model which contains
> as instances of a class named Person as I want.
> These are my steps:
> 1.- Create the ecore model. It is compoused by two classes:
> -People, which contains an EReference with multiplicity 0..*
> to the EClass Person.
> -Person, which contains only an EAttribute named "name" with
> String type.
> 2.- Create automatically the .genmodel file from the ecore model .
> 3.- Generate the Java code aotumatically fron the .genmodel.
> 4.- Launch an Eclipse application from the project.
> 5.- Create an instance of the ecore model.
> My probles is in the last step: I begin the model with an instance of
> People and hten I desire to create as number of instances of Person as
> I want but I cannot do that. I don't know the reason. I've seen the
> EXTLibrary example too many times but I cannot get my desired result.
The lack of there being a containment reference is the likely reason.
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will *not *change, so you'll need to update
those as well to support children and child creation.
> Being more exaclty, the idea is to be a EClass which can generate as
> many Person as I want. That class is People. I've tried many
> possibilies changing the class properties obtaining different errors.
> Can somebody tell me how to create an ecore model that has an EClass
> which can generates as many instances of another class as I want?
> Thank you in advance!
>
--------------060801030103030800010203
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Miguel,<br>
<br>
Comments below.<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<blockquote cite="mid:gmckjs$qfp$1@build.eclipse.org" type="cite">Hi,
<br>
I think my question is easy for us but i have spend too much time in
it:
<br>
I want to create a simply ecore model and then i want to instanciate it
and check some OCL queries on it.
<br>
My purpose is to create an instance of an ecore model which contains as
instances of a class named Person as I want.
<br>
These are my steps:
<br>
1.- Create the ecore model. It is compoused by two classes:
<br>
-People, which contains an EReference with multiplicity 0..* to
the EClass Person.
<br>
-Person, which contains only an EAttribute named "name" with
String type.
<br>
2.- Create automatically the .genmodel file from the ecore model .
<br>
3.- Generate the Java code aotumatically fron the .genmodel.
<br>
4.- Launch an Eclipse application from the project.
<br>
5.- Create an instance of the ecore model.
<br>
My probles is in the last step: I begin the model with an instance of
People and hten I desire to create as number of instances of Person as
I want but I cannot do that. I don't know the reason. I've seen the
EXTLibrary example too many times but I cannot get my desired result.
<br>
</blockquote>
The lack of there being a containment reference is the likely reason.
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will <b>not </b>change, so you'll need to
update those as well to support children and child creation.<br>
<blockquote cite="mid:gmckjs$qfp$1@build.eclipse.org" type="cite">Being
more exaclty, the idea is to be a EClass which can generate as many
Person as I want. That class is People. I've tried many possibilies
changing the class properties obtaining different errors.
<br>
Can somebody tell me how to create an ecore model that has an EClass
which can generates as many instances of another class as I want?
<br>
Thank you in advance!
<br>
<br>
</blockquote>
</body>
</html>
--------------060801030103030800010203--
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427161 is a reply to message #427159] |
Wed, 04 February 2009 18:47 |
Miguel Angel Garcia de Dios Messages: 22 Registered: July 2009 |
Junior Member |
|
|
Ed Merks,
I have the containment property of my desired container class in true,
the GenFeature properties are also update: containment=true and the
GenEdit properties contains children=true and create children=true.
I hope you can be more explicity with the solution of my problem please.
The last error I've obtained is when I create My.container file from a
Poeple object. Hten I click on it and I get the nex error:
Unhandled event loop exception:
java.lang.UnsupportedOperationException
at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
at
org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
at
org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
at
org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
A lot of thanks!
And always sorry for my bad English.
Ed Merks wrote:
> Miguel,
>
> Comments below.
>
>
> Miguel Angel Garcia de Dios wrote:
>> Hi,
>> I think my question is easy for us but i have spend too much time in it:
>> I want to create a simply ecore model and then i want to instanciate
>> it and check some OCL queries on it.
>> My purpose is to create an instance of an ecore model which contains
>> as instances of a class named Person as I want.
>> These are my steps:
>> 1.- Create the ecore model. It is compoused by two classes:
>> -People, which contains an EReference with multiplicity 0..*
>> to the EClass Person.
>> -Person, which contains only an EAttribute named "name" with
>> String type.
>> 2.- Create automatically the .genmodel file from the ecore model .
>> 3.- Generate the Java code aotumatically fron the .genmodel.
>> 4.- Launch an Eclipse application from the project.
>> 5.- Create an instance of the ecore model.
>> My probles is in the last step: I begin the model with an instance of
>> People and hten I desire to create as number of instances of Person as
>> I want but I cannot do that. I don't know the reason. I've seen the
>> EXTLibrary example too many times but I cannot get my desired result.
> The lack of there being a containment reference is the likely reason.
> And note that even if you change it in the Ecore model, the GenFeature
> properties for the feature will *not *change, so you'll need to update
> those as well to support children and child creation.
>> Being more exaclty, the idea is to be a EClass which can generate as
>> many Person as I want. That class is People. I've tried many
>> possibilies changing the class properties obtaining different errors.
>> Can somebody tell me how to create an ecore model that has an EClass
>> which can generates as many instances of another class as I want?
>> Thank you in advance!
>>
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427165 is a reply to message #427161] |
Wed, 04 February 2009 19:32 |
Ed Merks Messages: 33141 Registered: July 2009 |
Senior Member |
|
|
Miguel,
Did you mark the feature as volatile such that no code is generated for it?
Miguel Angel Garcia de Dios wrote:
> Ed Merks,
> I have the containment property of my desired container class in true,
> the GenFeature properties are also update: containment=true and the
> GenEdit properties contains children=true and create children=true.
> I hope you can be more explicity with the solution of my problem please.
> The last error I've obtained is when I create My.container file from a
> Poeple object. Hten I click on it and I get the nex error:
>
> Unhandled event loop exception:
> java.lang.UnsupportedOperationException
> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>
> at
> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>
> at
> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>
> at
> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>
> at
> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>
> at
> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>
> at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
> at
> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
> at
> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
> at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>
> at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>
> A lot of thanks!
> And always sorry for my bad English.
>
> Ed Merks wrote:
>> Miguel,
>>
>> Comments below.
>>
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Hi,
>>> I think my question is easy for us but i have spend too much time in
>>> it:
>>> I want to create a simply ecore model and then i want to instanciate
>>> it and check some OCL queries on it.
>>> My purpose is to create an instance of an ecore model which contains
>>> as instances of a class named Person as I want.
>>> These are my steps:
>>> 1.- Create the ecore model. It is compoused by two classes:
>>> -People, which contains an EReference with multiplicity 0..*
>>> to the EClass Person.
>>> -Person, which contains only an EAttribute named "name" with
>>> String type.
>>> 2.- Create automatically the .genmodel file from the ecore model .
>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>> 4.- Launch an Eclipse application from the project.
>>> 5.- Create an instance of the ecore model.
>>> My probles is in the last step: I begin the model with an instance
>>> of People and hten I desire to create as number of instances of
>>> Person as I want but I cannot do that. I don't know the reason. I've
>>> seen the EXTLibrary example too many times but I cannot get my
>>> desired result.
>> The lack of there being a containment reference is the likely
>> reason. And note that even if you change it in the Ecore model, the
>> GenFeature properties for the feature will *not *change, so you'll
>> need to update those as well to support children and child creation.
>>> Being more exaclty, the idea is to be a EClass which can generate as
>>> many Person as I want. That class is People. I've tried many
>>> possibilies changing the class properties obtaining different errors.
>>> Can somebody tell me how to create an ecore model that has an EClass
>>> which can generates as many instances of another class as I want?
>>> Thank you in advance!
>>>
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427180 is a reply to message #427165] |
Thu, 05 February 2009 09:29 |
Miguel Angel Garcia de Dios Messages: 22 Registered: July 2009 |
Junior Member |
|
|
This is a multi-part message in MIME format.
--------------050408040500070401030408
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Ed Merks,
Yes, I did. I marked the feature as volatile.
I think it cannot be so complicated. Maybe any value of a property is
not correct so, to ensure that I'm going to attach screenshots for
everything (it is not so much).
I am really concerned with that because I think it should be easier.
Thank you in advance!
Ed Merks wrote:
> Miguel,
>
> Did you mark the feature as volatile such that no code is generated for it?
>
>
> Miguel Angel Garcia de Dios wrote:
>> Ed Merks,
>> I have the containment property of my desired container class in true,
>> the GenFeature properties are also update: containment=true and the
>> GenEdit properties contains children=true and create children=true.
>> I hope you can be more explicity with the solution of my problem please.
>> The last error I've obtained is when I create My.container file from a
>> Poeple object. Hten I click on it and I get the nex error:
>>
>> Unhandled event loop exception:
>> java.lang.UnsupportedOperationException
>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>
>> at
>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>
>> at
>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>
>> at
>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>
>> at
>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>
>> at
>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>
>> at
>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>> at
>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
>> at
>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>> at
>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>> at
>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>
>> at
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>
>> at
>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at
>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>
>> at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>
>> A lot of thanks!
>> And always sorry for my bad English.
>>
>> Ed Merks wrote:
>>> Miguel,
>>>
>>> Comments below.
>>>
>>>
>>> Miguel Angel Garcia de Dios wrote:
>>>> Hi,
>>>> I think my question is easy for us but i have spend too much time in
>>>> it:
>>>> I want to create a simply ecore model and then i want to instanciate
>>>> it and check some OCL queries on it.
>>>> My purpose is to create an instance of an ecore model which contains
>>>> as instances of a class named Person as I want.
>>>> These are my steps:
>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>> -People, which contains an EReference with multiplicity 0..*
>>>> to the EClass Person.
>>>> -Person, which contains only an EAttribute named "name" with
>>>> String type.
>>>> 2.- Create automatically the .genmodel file from the ecore model .
>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>> 4.- Launch an Eclipse application from the project.
>>>> 5.- Create an instance of the ecore model.
>>>> My probles is in the last step: I begin the model with an instance
>>>> of People and hten I desire to create as number of instances of
>>>> Person as I want but I cannot do that. I don't know the reason. I've
>>>> seen the EXTLibrary example too many times but I cannot get my
>>>> desired result.
>>> The lack of there being a containment reference is the likely
>>> reason. And note that even if you change it in the Ecore model, the
>>> GenFeature properties for the feature will *not *change, so you'll
>>> need to update those as well to support children and child creation.
>>>> Being more exaclty, the idea is to be a EClass which can generate as
>>>> many Person as I want. That class is People. I've tried many
>>>> possibilies changing the class properties obtaining different errors.
>>>> Can somebody tell me how to create an ecore model that has an EClass
>>>> which can generates as many instances of another class as I want?
>>>> Thank you in advance!
>>>>
--------------050408040500070401030408
Content-Type: image/png;
name="ecore.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="ecore.png"
iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkR MiAkDQoAACAA
SURBVHja7N13XFX148fxNypLVJDlHjgwczQcmebImZliKZqZflsOpKWCuQEt V46yqfb92q8y
V9ssN4gNpdQy9wIERcAZyryX+/tDOXKVcQEtx+v5fZwH3PM553M+53PO7fv2 8zn3YmexWCwC
AADAHaMUXQAAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAAAEQAAAABEAAAAAQAAEAAEAABAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AAACIAAAAAiAAAAAIAACAACAAAgAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAIAACAACAAAgA AAACIAAAAAiA
AAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAA IAACAACAAAgA
AEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAAAA
BEAAAAAQAAEAAEAABAAAAAEQAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgA AAACIAAAAAiA
AAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAEAABAAAAAEQAAAA BEAAAAAQAAEA
AEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAAAEQAACA
AAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgA AAACIAAAAIqj
DF0AW/0ds4NO+JfYl/eUJK1f+6MaNm0ur8rV6BTcEJHrvlW7rn50xC3KzbMy nQACIK4vizmL
TviXZJ5LkCR17txFGzas175dvxMEAQDFZmexWCx0A2xx7uBPdMJNwL68lyRp Y3gEIRA3BKOA
ty5GAGErRgBhs2xGAG8KGedOSJI6PdxBG8MjJIkQCAAgAOLGsJisA+DWTa8X uH2rjhPptBso
/VSsOrZ/SJs2/3TDQuDPS/oVWN5m4AouBAAQAHFbB8A8RgC7jAjPc9tDa17S 1k2v64H2r9Fx
NzIEJsfo4YdaKfynrTcsBBZ0jX9e0o8QWAI+9Rsq+tC+674tABAAcd1cPQVs stgpO59HSB1c
PFS7TmNt2zxTLR4aReflo1Lzx43fE3//2uay3NKSo9XhweaK+PX36x4Cc65x p2cWGus2fjzU
uMY+dRoTAgHgFsT3AMJmFnOW1WIyl1K2RXkuDi4eRgjcEvH2NfvmXio1f1xt /V9StinTan22
KVMP9X1RlZo/XuD+t/IiSRaLRRaLxeo8KzV/3FifV99fvaQlH1X7B+7Rvl2/ K/nk8esXAC9f
Y0n6+fMRl/4hkOsa27t4qHadRtr4fwMKrMenfkN16f6Yrv7MmcViUedHesin fkPeYADwD2IE
EEUIgJlWr7MspWQ2W2/Tq0cXfbd6vdybvGis++tAt2v2vZqzo73WRW5T14fu N9atidyusk4O
eR77tuxfi0V2dnbG7wX1fV7Sko6obfNG2vL79RsJzMq+co3bPPW+JBmvr77G hSnr7KxN4RHq
1PFhY936DZvkUrYsby4A+IcxAgibZZuzrJYss52yJWPZ8dvP0uWfuddnme2u 2Tf3Ikkjnuqu
dz9dZbX+nU+/U+DAR41j9w6Yoq/X/WS1TdyJk7qn54s6//ffV9qVlaE33l+q xo8GyOfh5zRs
0nz9nZJilGdmpGvyW5+oUffhatB1qD5YcuW4aWmpGj1toXy7DJFvlyEKmr5I aWmpRnmV1k9r
wdLVut/vJVVtM8im4xW0HN+y2Ah9OcEvd/izs7PT8S2Lbaor25yltKTDeui+ BtdtJDAr+9I1
/uGjS9O+P3w0VNmSHnlhobHkXOPCDB3yvD5YsMhq3QcLF2nY0BeM1/0GPK3v V/9gtc2JEwlq
2bqdUlJSjHUZGRkaPWasGja5Ty0fbKsPF35kNYpoNps1c/ZcNX+gje5qfK9e fnW0Ll68aJT7
1G+oz5cu10MdOsn37qbq0etx7d2336p8yefL1O7hLmrQqKm6PtpTv2/foS++ +lodu3Q39jlw
8KCxT2ZmpsZNmKwm97VQk/taaPzEycrMvBLcMzIzFfzaeKPNCxb91+o8C2sz ABAA8e+MUF01
7ZhlLiWz2WIsoaGh6tChg0JDQ63WZ5lLFToN2v2he3Tq7Hn99ud+WcxZ+mX7 bp09n6JH2jQ1
jv3y0901b/G3MmddmSqet/gbvdCno8o5lTHWzf+/77Rrf7TWLJqoP76eLSf7 Mnrj/WVG+ez/
fqWD0fFa+9EkbV02TScSTxtlMxeu1MlTZ7Xls9cV+dlUxZ88pVkLv7Bq6449 h7Vm0UTFhS+w
6XiFLfERC61CYO7wFx+xsMjTymlJh9TmnrrXJQTmvsaS9OgLC/XoC5eeB/y8 wyOXg8ula1yY
7t266syZs9qxc6ckaeu2KJ0/d16PdO1ibBM4Yrjeeuc9ZWdnG+vmv/u+nv3P IJUvX95YN2fe
20pJuaCfNm/Uj6u/1e/brf9KzfsfLtSePXv1/bdfafu2n+Xo6Kjps2ZbbbN1 W5S+XL5Uf27f
pm5du2j8xMlW5T/98ouWf/6p/twepd69HtMzzw9VRESklnyyWLt2RKnHo49o 7IQr+8ye+5ZO
JiYqfMMabVr/o06cSNCceW8b5fPemq/TZ85oS8QGrV71tX75dWuR2wwABED8 8wHQlGW1ZJrt
ZM62yJxt0dcrPlGHDh1UvXp1dejQQV+v+MQoyzTbXbNv7kWS7LJNGubfSe99 /qMspiy9+9kP
Gt6vs+yyTcax293nq7JODvp2w6+ymLJ0NPa4IqJ26xm/tlb1LVu9RVMC+6py xXJycSitcc/3
0g+RO4zyL9b+oimB/qpcsZzKO9krZPjjRtk3G6IUGvCEPMo7ybO8s6YE9tU3 G6Os2jp52ONy
L+dk8/FsWWztc1uXtJMH1bpxzRKHwNzXWJK++eAFffPBpRG7pyLWXAqAl69x of+xKVVKLzz/
rD5Y8JEk6cMFizTkhedUqtSV/wy1b/uQyrm4GKOA0TEx2rxli579zyCrur77 frUmjn9NHu7u
8nB318Tx1p82X77yC4VMmqDKlSvJxcVFY4JHad26DVbbTAmdrEqVvOXs7Kyh LzynPXutP2E7
beoUValSWU5OTnrumf/o4sWLmhoWYrVu9+49xvbfrlqtyRPHydPDQ16enpo8 aYK+XfW9Uf7N
d6usykMmTShymwHgeuEZQNjs6k8B39V2nPb+8asx8le9enXVq1dPkhQfH69+ vbspNDRUd7Ud
p+zMPwutu0+nZpr7f6v19YZt2nf0uD4Kfd44Zs7PFwd01vSPVqlH26aa8/Eq DffvKMcydlZt
O3nqnDo8O+Wa0bScbZJO/63q3q55frH1qbMpVmXVvV116uzfVtt6uZUt0vEK U6vbq8rrD/Lk
PBMYu/atYl2v1JMH9eDddfTrruI/E5hpLiXTlcE44/cv3nvBal2m2bZ/S/Z5 orfemv+uVn2/
Wnv3H9CCD9+7ZpvAgGGa+eYc9Xi0u+a9/a6GD31BTk5O1tfp1GlVq1rVeF29 mvW5JSYmqXO3
R6+5Jrm5ubkavzs5OclkMlmVV6zoZlWe17rc+5w+fVo1a9QwXtesUV2nT5+x anON6tWtyova
ZgAgAOKfHwG8KtCEhYVJ0jXhL+dnznSwJH08pkehdduXkp7t9ZBGvfmZRg9+ RPalLFc+KXv5
Z+cWDTTn4x8087/fafveaM0e2e+adnm5V9DXc19UZQ/XPNvv7V5ex46flE81 r2va4VmxnI4d
T1Ttqp6SpGPHk+XhVs7qGEU9XkFqPxp8zTN/OeEvdwiM+eHN4oXAhANq1aCu thYzBGZll1Ku
2Vjj934vfWSsW/HOCzJl2xYAHR0c9Nx/BmlU8FiNevVlOTo4XLNN504dNWfe fL05Z5527vxD
s2dOv2YbDw8PHT9xwghc8cetRzm9vDz19crlqlTJ+x97f3h4eCguPl61a9W6 dO/Excvd3f3K
veVpXR4XH/+vtxnAnYspYBQpAOZeQkJCFBoaqoiICMXHx+vw4cOSpMOHDys+ Pl4REREKDQ1V
SEhI4V+Fcvn34X0e0qFvXtfwJx7Ks1zZJgX2a68FX0Toxf4Pq4xdtizmrEtB 6vI2Ax9pqXFv
r1RMfKJMmRnafyROL07/1Cjv0/F+TX7/ayUkntL5v1M0ZcE3RtljDzXRlAXf 6NSZszp15qxC
P/xGPds2zbMtth6vsHPPHf6iV01T9Kpp14z8lOSrZlIT9uuBeu7Fmg7OMpey mgLu99JHRvgz
ngHMttg8AihJw4cN0aF9fylg2JA8y+3s7BQ4YpgWLPqvXgwcLgcHe0my+pBH r8ce1RvTZ+rM
2bM6c/asXp8206qOp596UmMnTFLssWMymUw6cPCgXn519A19f/Ts0V1TXp+u U6dP69Tp0wqb
+oZ6PXZlRM+v52N6fdpMnT5zRqdOn9aU16f/620GcOdiBBA2u3pK86c1c/X0 qJVavHyNNq76
TPGXRzTi4+NVvXp1LV5+6Rmxz+b6q+aDzYtUd0HldrKodlUPPdG+idX6nN+H PdFaC77M1sAJ
HynxTIrqVPPQi/3aG+Uv9W+r6R+vU/eX5ssiWZWNGviwQhf+oPZD5kiSHm3T SCOf6pDncXIU
drzC5IS9I9+EGfsc+SbMKgSW9O8wX0zYp5Z16imqiCOBJrOd8T2AS9563lg/ 8NX/Gs8AZlsu
bXc9lS5dWj61a6vP473zLB898hWNmzhZrds+rPLlyunZZwYpcstPV0Lm0CGy 00caOPhZJSUl
y8entl4cMfyGvj+CR4/U5NCp6tDp0lfi9Oj+iIJGvXpNm9u066jy5crpheef VcTmyH+1zQDu
XHYWSz5/ygG4ypGvJlm9/mTrLg0etdx4/cKA7urQoYMiIiL00dIfr2w3t78G t2p63doxbMYK
PfZQI/V8qBEXpYjKVqqv32LT1LBpc5tC4LxZw6yucX4+ndNfr7624Lq1c8jw QPV67FH1fKyH
TdsfPRqtZ54fqsjw9Vzk6yBy3bdq19WPjrgFuXlWphNgE0YAYbOrpyzN2aW0 ePaVvwARGhpq
LLnXS6Vseh6uMNkWi1Zu2qXYhDN6tFX961Lnnebiib1qVt1X220cCTRnl9Li OQMkWWSx5IxW
5jyfKF16aSfp+owAZmdna/nKLxUTG6sej3YvcNupb0zXyy8GKisrU1OnzVDX Lp24wABAAMSN
9swDDaxex+f64MLVZddDg/6zVM3LVfNH+qkUn44strTEg7q/ah3tsCEEBo39 4B9tW90GjVS9
WjW98/Zcq6+HyUv16tXUscsjSs/IUOdOHTXq1Ze5uABgI6aAYbPDK8fSCbcR B9cq+uOUk83T
wbhzMAV862IKGLbiU8DAHSrzfILucb+gfbt+V+S6b6/Ln44DANwamAIG7mBZ Kclq6nrpy4x3
leALowEAtxZGAIE7nCn1rEypZ9WkXDKjgQBwh2AEEIAkyZxxQY3LXhoN3L3r d+27PCLIM4IA
QAAEcBvLzkqXJDVyjDPW7dklwiAA3Gb4FDBsxqeAsTfLh04AbmK9nhpGJ8Am jAACsNnd9tF0
AgDcBvgQCAAAwB2GEUDYrG5jpv8AACAA4g7D46IAABAAcYflv2z6AAAAAiDu rADICCAAAARA
3GH5jxFAALiZ2dEFIADiBkTAG1ZzZFxageXtajjT/QAAEADxz+e/GzsF3Lpz UJ7rD615SZFx
tdSuulOJj1G66asy73qr2Ptv/v2w/jP+M8WdPFeienBnKel9d7O18VY4HwAE QFy3/HfjpoBN
2aWVbbHITnaSLLJIl3+XHFw85H0xVpHxtdS2msO/eh5j5nyn+eP6qGeHRkyJ 46Z5//wbbeT+
B25tfBE0ivJ/DzdsMZnLKNsifbJqpxZ9+Zve+/xXzf2/SGVbLHJw8ZC9i4e8 TDFaH1PSdti+
f5l7Rl2zbvfhE3rkoQY3tC9sXfYeSZBvjzduirZwvtfvvvv3zlXF3jZ3e8vc M0pNH595OSBe
2cZiyVaTx2fm+b5iud7XEWAEENd3eECbfz+iTi98YPMuGz8KUPvmdQvdLstc WmazNODRey+P
/l36b5k5W/Jo+qKx3dG1H0iWzBKfR3G3Tc8wyb50qZviE9Hrfz2oLg/63jGf zr7lz7cI7f7X
zrWY742r2+vs5KDVm/fqsfZ3G9t8F75bZZ0cin4cAIwA4t/+P7BstW/mo42L hsnT3VXh4eGy
WCzXLOHh4fJ0d9XGRcPUvpnPpe8PLGTJMpdWtqS1vxzUD5H79fXG3Vr64x/6 +JvftGD5r3rn
sy0yZ0tZptIF1lPm3iC9uXiTqnYMVYVW4/RCyDJlZGRe2ebyeciSraNxp9T7 lf/JrfV4ubQc
qx4jFinp9N9GPZJU5t6gS7/nsy49I1PDwlbIvc1EubeZqOFTVio91/HK3Buk tz7drNrdpsr+
vmBj3Ycrflb9HtNUtsVratrnTf2846j+79soNew1Q87NX1Oz/nO1++CJa84t 9+sNvx5Q5wfq
53scs9mkCW+vVpWHQ1T+gXF66rVPlXIhzdh/zU971bTPm3Ju/prqdn9D//1q q1Fmy3nl1fcF
nXdWVpaCZn+ryh1C5Nl2kuZ+EmFsX1hbrz7fgrYPfP0LffxNlNW+i7/epsDX vyj0uhf3+hTl
vivquRanPYVdv4yMTD0/eZkqtBqnap1CNfvj8KK1Mde2V7dXkoKfaa9ZizdZ bTPrf5s05tkO
xr4dnntPy9fssNrmWMIZ1eg8RedTUm1uS0H3VXHen7Zcn5t6AQiAuO757/L/ 2jWvo2Uzn5R/
n96KiIiw2iYiIkL+fXpr2cwn1a55HWOfwv6XaS4ts9mih1vWV9fWDdSjfSP1 6XqPnnqsuZ7t
00rDnnxI5myLMs1lCqxHkrbsOKqdK0fq0OqxSjx9QSEfrLUqz/nd75XFevmp h3Ri02Qd3zhJ
vrW9FDRnlSyyKGvnzEsjkztnKmvnzHzXTXp3jU4k/6193wVr77fBOnbyrCa/ t8bqeFG7jylq
6SvK3DHDWLdx2yFt/GiYkiPDNKD7vXrspf/qx5/2a+2CITq1JUx9uzTRsKlf XHNuOb9nZJn0
884YdWhZJ9/jTP/vJm3fF6+opa/o+MZJcnK019i3Vxt1PDNxuUICuujsz1O0 6X/DtXVXrFFm
y3nl1fcFnXfYh+u150iiflv2ig6tfk3xieeM7Qtr69XnW9D2c8f00v9995tW rPtTFlm0fO0f
+mTV75r3Wq9Cr3txr09R7ruinmtx2lPY9Zv8/loln72gQ6vHavvykQqPOlyk NhZ2Lz7eqbGS
zlzQL3/GyCKLIn4/otPnU9W7YyNj33HPd9TUBRtkzs426pq6YL1eeqqNKpRz tLktBd1XxXl/
Fna8m/1/AAEQN2Z66PLSvpmPls3obxUCjfA3o//lkT+LzUumqYzM2RaFRx3S ul8OaPXmPfpy
3Z/6/PvftfjLrVqw7KdLAdBUuuC6JM0N6invii7yruiiuUGPadmPf1iV5/y+ 64uRerhFHTk7
lJGri6Nef7Gb1v96MM9t81u3fM0fmhv0mLwruqiSu4veCu6l5Wusj/fmqB7y citrte6DiU+o
RiVXlXUso5efekgpFzP07vjeVuu27423OlbWjhnG71v/jNFdPl5yK+eU73EW f/2b3h7TS9W9
K6h8WQdNe+kRfbNpt1Hu7FhGJ5P/VvKZC6pZyVULJ/cp0nkV2Dd5tOez77cb 7XEr56Q5ox+z
ua1Xn29B2zuUKaWlMwdq/PwfNWH+j5rwzhotnTnQmLq35boX+foU4b4r6rkW pz2FXb9lP+40
2lvJ3UXzgnsWqY25t82rvaXspNGD2+nNxRGSxaJZ/wtX0OB2KmV35b8lXR+s r3JlHYx2HY5N
1vpfDyrwydZW91VhbSnovirO+7PQc7/ZF8BGPAOIIk0B59a+WW0tm+Ev/z69 FfjSq3rvnbe0
bIa/2jerXeSpiEyzvUzZUpv76+Uz+njpecBMs32hddeu6mpsU7uqm06eSrHe 5/Lvv/55TOPm
r9EfB07oYtql5wrt7Ozy3Da/fkg8fUE+1dyMdT7V3JR4+oLVNlU9y11Tj0cF J2NdWcfSea4z
mfOf0tmw9ZA6t6pX4HGOJ51XoyfmWO2X+/xWvDlQb3y0SVM+3KAK5Zw0N+gx PdbuLpvPq7C+
ubo9CckpVnXmVlhbrz7fwrav5F5WTz96r15ftEmzRj6qSu5li3Tdi3N9bL3v inquxWlPYdfv
5KkLVu31qeZWpDbm3jav9sqSrUE97tWUD9dr2Y879dehBH0192nr6WNJ457r oHHz16hf18YK
+3C9gga3u3R+RbiPC7qvivP+tOncAQIg7qj8l8f0QrtmPlo6w19dhoZp/cIX 1K6ZT7GmITJN
pZWdLW3947BMpmxlZpmUnmFSRmaWMjJMyswyafATbZRlKl1o/dHHz6huDQ9J UsyJM/L2KGe1
T87vT479XG+OfFRdW9dXBRdHpaRmyrPdlDy3za8fvD3KWR3vaPxpebmXK1Id RV2X83+6M17t
XuBxKnuW108fD1dV7wp51tmsUTV9NW+QLBaL1vxyUMPCvlaPdWNtOq8ypUvp YnqmyjrZS5JO
n0+9pg3XtMervI7Gn1b9Wp7XnE9hbb36fAvbftfBBC3+brtWzh6oV2atUs/2 dxnncj2ue17r
bL3vinquxWlPYdevkqd1efTxM0Vqoy3tdXAorcABD+rZySsVNqKLHBxKW00f S9Jj7e9SyAfr
NeGdtfp11zF9FNqnyPdxQfdVcd6ftpw7cDtgChhFSIB5Tzm0v7+2zm6ZrPb3 1y72tEWW+dIU
cIumdfXg/fXV/oGG6tauiXp1vl/+PVpqYO/WxjOAhU1/BM39QclnLij5zAUF zVmtAY/ck+fU
VXp6lpwcSsvJvrRijp9RwOtfW5W7lXfSwZjkAqeA+3VprNGzVyvp9AUlnb6g UbO/V/+uTYo0
jWzrOodmEySLRWfPp+pg7Cm1alK9wP2H9mmpgNe/1tG40zKZzNp96KQGjltm lD89brn2HUlU
VpZZlmyLTGazzefV1Ley5n6yRalpmTqReF6Bb3xj3YY82jO4x316ddYqHU88 r3N/pylozmqb
2prX+Ra0/cXUDD0zaaU+meovvw4N9d7YXhrw2lKlpWfadN2LdX2KcN8V9VyL 057Crt+T3Zoa
7U06fUGjZ39vcxtzH6uw9o75Tzulbpui4P+0zbPc7vIo4JxPtmj88x3kUKaU 1b1uS1sKuq+K
8/4s9NyZAgYjgLjzAmD+UyAuTmVKNEWSZSqtbIu0JWrfNSN/A3o9ePnf3nZX PgVcgDb31NR9
/efrQmqm+nRupJBhD+c5dbVwUm8Fzf1BxxLOq6p3eY16uo1WrvvLKB/5dBu1 GvS+LqRmKvO3
KXn2w5QRnfTKrNVq2HuuJKlP50YKC+hYpKnSIq2zZCvityNqc29N2ZcueLp6 zH8e0pufWNQ1
4H9KSE6Rby0PjX++g7Fdr/YN5B/8uY7Gn5FvLU99PKWvUVbYeX04wU9Dp36j aR+Fq6p3BQUP
fkhfbdxTYHsmDmmvsW+vU7Mn35FF0vjn2xvbFNTWvM63oO1fmvGdAvu3Utv7 akqWbPVo66vD
caf08ozvtGjy44Ve9+JeH1vvu6Kea3HaU9j1Cx3eUSOmfad6j81WeRcHjXy6 jX78+aBNbSzO
vVhQ20uXkurV8NCgHvcUub8Ku6+K8/606dyB24CdxcI/GWBjSPt9yg2re/a2 JurXp/vlmCfj
uwCN7wS8/PvKL37U6FZ/5VuPQ4sQZf4Wdltfh8Dpq3SXj5deerLVHXHf3Qrn e73uu1vt2l6P
9j4x+nP179pE/bs14T+y14F988l0AmzCCCBsdiP/9JPZXFpLV67Tpb8YcPmh 65znhSzSpZd2
kkoV2o7b/U9Ubdh2RIH9W94xf4rrVjnf69G+W+3alqS92dkWLf5up47EnVHf znfzp+UAAiBu
4v+Hu2FVj2m1vQjt+PfaeTPY/9VLd8R53nLnex3ad6td25K017nVFNWq4qYl b/S59PUwTEYB
/yimgGGzzCimFgDgZubQcgqdAJswAgibMUUDAAABEHdeAqQPAAAgAOIOS4B0 AQAABEDcWfmP
KWAAAG4HfAgENsvKTKcTAOAmZu/gRCfAJvwpOAAAAAIgAAAACIAAAAAgAAIA AIAACAAAAAIg
AAAACIDAP2xws1dum3NxcHTmggIASozvAYTNbpXvAfx8cITMWVe+tHpvwh+6 u8q9xuvS9qX0
1CcdCq3nwIEDmjQ5RJGRkbpw4aKaNGms4KAgPfHE49ctzGVmpHFjAbhu+B5A 2IoRQPwrNkdG
ysHR2eZlc2Sk7UE13azKd7urRnNvuVZ10d1V77V6nZVuLrSOw4cPq0uXburU saP27N6t06eS
9PZbb2n5ihVcPAAAARAojvbt2mn9+rXy9PRUeHi4LBbLNUt4eLg8PT21fv1a tW/Xzua6LdkW
2Zcto/LeZeVQzl6n/062em3JLnzQe8rU1xUUHKRhw4bKw8Ndjo6OatmyhZYv W2psk56eruEB
I+TpVUmeXpUUMCJQ6elXRkkdHJ21cOEi1avfQC7lKqhFywf055+7jLKcciRx SwAAHxpJREFU
n7mndaOjo/X4E33l7uGl8hXc1LOnn5KSk63qtKV+STKbzZo4cZKqVa8hVzd3 DXx6kFJSUqz2
f3v+O/KpU0+OTmW5KQGAAAj8MyFw6dIl8vf3V0REhFVZRESE/P39tXTpkiKF P0lKN6Xp7xMX
lXz4nC6eStex80etXqebCp92Dd8ULn//vgVuExISqoQTCdq7d7f27PlLccfi FBoaZrXN5shI
RW4OV1Jigvz8/BQwYoQkGVO/mRlpVtPAvR/vo5dfflHH448pPi5Wvr6+Cg4e k28b8qtfkmbM
nKUdO3YqattWxcfFytnZWeMnTLTaPyoqSlHbtiojPZUbEgDuIDwDCJvdqGcA N0dGasCAgVq5
cqU6dOhQovA3uNkrqla+liqVqyZJOnb+qFFW07WOJCnxwnEdT4nVJ9vfzree si7l9ff5sypT
pky+29SqXUcbN6xTvXr1JEmHDh1Sl66PKCb6iKRLI2wnE07I3b2iJCk1NVWe XpWUejHFKC/s
GcDU1FTV922g4/Fx1+xTWP316jfQD6tXydfX99J5JyWpebMWiouLNfaPjTmq KlWqcHMDtwme
AQQBELdMAMwdAgMDA/Xee+8VK/zleOux5Wr0QAPZly2jv09cVETUJnXv2t14 ffRAjF79vn+B
ddSoUUtRv21TlcqV893GuWw5XUg5r9KlS0uSTCaTKrhWLDDgXR3gri7/9det Gj9hgv74409d
vHjx0pvUzs4YoSts/9zryrqUl8lksn7D51MXAAIg7ixMAeOmkDMdHBYWVqLw J0mZ5gyrZ/5q
utaxep1pzii0joc7Pqwvv/yywG28vb0VExNjvI6OjpaXl1eJ+mHAUwM1IiBA MdFHlJGeqlPJ
iSruv9EqV66smOgjxjRzZkYaU70AAAIgbr4QePbMqRKFv5wAmPuZP0lWr20J gJMnTdSbs2br
o4/+qzNnziojI0O//fa7+j85wNimn39fjR4drKTkZCUlJ2vUqCD17+dvczvd 3Fx18OBBq3Xp
6WlycnKUk5OTYmJiFDAisNj9MHToEAUEBOro0aMymUzavXu3Bj49iBsNAEAA xM3FxcWlxHXU
r3mXdv21S7//ul37Du1R4oXjVq/r17yr0Drq1auntWt/1Np163RXw4by8PTW K6++qv79+hnb
TJkSJu9K3mrYsJEaNmykKlWrKCws1OZ2jhw5Uq0ebGP1yd6FCxYoKPg1uVX0 UOcu3dS69YPF
7ocxwUFq3aa1unbrLlc3dw0a/Ix6+/lxkwEAeAYQtrtVvgj6aoObvVLgBz4A 4HbBM4AgAIIA
CAAEQCBPTAEDAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABStDFwB5+3Rqq0K3GTRpKx0FACAAAreTgZM+ybds ydTBdBAA4JbE
FDCQj2yLXYnKJcnB0dlYvLwra8BTA5WcfIrOBQAQAIHi2hwZaRWyCls2R0ba XLfJLFks9rJY
7CVdXixXfprMttWTmZGmzIw07dnzlxwdHTUiMJALBwAgAALF1b5dO61fv1ae np4KDw+XxWK5
ZgkPD5enp6fWr1+r9u3a2R4ALaW04uP3tfzj97Vs8eXl4ys/TZaivX28vbw0 d84cbdiw0Vhn
Nps1ceIkVateQ65u7hr49CClpKQY5Q6Oznp7/jvyqVNPjk5lJUlr1q7Vvfc1 k0u5CqpXv4H+
97/Fxvbp6ekaHjBCnl6V5OlVSQEjApWenm5V38KFi1SvfgO5lKugFi0f0J9/ 7uJGAgACIHDr
hcClS5fI399fERERVmURERHy9/fX0qVLihT+JCkru5T6PztET+azZGUX/e1j Z2c9bTxj5izt
2LFTUdu2Kj4uVs7Ozho/YaLVNlFRUYratlUZ6amSpOeee14hkyfpzOlkhW/a oG1RUca2ISGh
SjiRoL17d2vPnr8UdyxOoaFhVvVtjoxU5OZwJSUmyM/PTwEjRnATAcAdxs5i sVjoBtgUiDLT
b+r2bY6M1IABA7Vy5Up16NChROFPkuaNa69Xpi/Kt/ztcUM0cvrmAutwcHRW ZkaaJCk5+ZTG
jhunc+fO68svVkiS6tVvoB9Wr5Kvr68kKTEpSc2btVBcXKyxf2zMUVWpUsWo s07d+goKGiW/
Xr1UrVo1q+PVql1HGzesU7169SRJhw4dUpeujygm+ohR38mEE3J3ryhJSk1N ladXJaVeTOEG
B24D9g5OdAJswgggbhu5RwJDQ0NLFP4kKdNsV+AzgJlmO5vqyXn+sOHdjXTh wgW9//67RtmJ
EyfUuMk9xjY1atRSUnKy1f65w58krVi+TOvXb1TzFi3V4K67tXr1aqMsKSlJ Pj4+xmsfHx8l
JSVZ7Z8T/iSpbNmyMplM3DwAcIfha2BwW4bALl26FfmZv6tlme305tyVUj5j 5CYbA2DOCGBe
KleurJ+2bFbVqlVtblfz5s309VdfyGKxaM3atRo2dLiOHeshSfL29lZMTIzq 1q0rSYqOjpaX
lxc3BgCAAIjbPwSePXNKLi4uJaonK7uUxo/unW952Mi1JW7r0KFDFBAQqHnz 5qhmzZrav3+/
ps+YqSWffZrvPk8PGqwJ48epbt26slgsMpmvjOD18++r0aODtXDRAknSqFFB 6t/Pn5sCAGCF
KWDclkoa/nICYEnKbTEmOEit27RW127d5ermrkGDn1FvP78C9+nVs6f8+z0p t4oeGj9+oj7+
+MqngKdMCZN3JW81bNhIDRs2UpWqVRQWFsoNAQCwwodAYHsgusk/BHK9jXmx q6a/c2kkzfjw
rkWS3aWfY18aplnvruPGAHDT4EMgsBVTwEA+zJZSGj0iIN/y0qUYQAcA3JoY AYTN7rQRQAC4
1TACCFsxhAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAA AAAQAAEAAEAA
BAAAAAEQAAAABEAAAAAQAAHcYRwcnekEACAAArgZQlleS47z589r9Ohg1fe9 S2VdyqtS5Srq
07efNoWHFznYZWak0eEAQAAEcDPIzEi7ZskxcOAgZZmytH7dGqX8fU67//pL A57sr2nTptNx
AEAABG4tn05tVehSGAdHZy1cuEj16jeQS7kKatHyAf355y6jPDo6Wo8/0Vfu Hl4qX8FNPXv6
KSk52Wr/BQsWyrdBQ5Ur76p772umn3/+RZ988qnubtTEqHP37t3GPmazWRMn TlK16jXk6uau
gU8PUkpKSqHtLK6IzZs17Y3XVbt2bZUuXVpeXp7q27ePNqxfZ1X31SOHDo7O env+O/KpU0+O
TmWvaUdhfZeWlqbnnn9BbhU9VKNGLc2eM5cpZAAEQAAlk24qpYGTPsl3STfZ 9jbcHBmpyM3h
SkpMkJ+fnwJGjDDKej/eRy+//KKOxx9TfFysfH19FRw8xmr/jZs2adPG9UpK TNCTT/ZXL7/e
+nHNGq1b+6OSk06qT58+ChgRaGw/Y+Ys7dixU1Hbtio+LlbOzs4aP2HiDeun 1g8+qIARgdq6
dZvS0q6dws0ZLbx65FCSoqKiFLVtqzLSU4vcd6GhYTp//m8dOnhAO3Zs188/ /8JNC+C2Z2ex
WCx0A2yRlZlOJxTDW+Pa6eXpH+VbPn/cC3p1emSBdTg4Outkwgm5u1eUJKWm psrTq5JSL+Y9
Ipeamqr6vg10PD7O2D/hxHF5eLgb5W4VPa5Zl7vOevUb6IfVq+Tr6ytJSkxK UvNmLRQXF1us
fshvVC0nzJ07d16zZ8/W96t/0NGjR+Xl5aXefn6aOHGCKlZ0M+q4Ovw5ODor NuaoqlSpYrUu
Z7vC+q62T12Fb9ogHx8fSdKRI0fU8O7GPEeIW5K9gxOdAJswAgjcYCmZZWSx 2MtisZd0ebFc
+ZmSWcamenICjCSVLVtWJpPJeP3rr1v1cMdOqujuKQdHZ7lV9NCpU6et9s8J ejn757Uud50n
TpxQ4yb3GFOuNWrUsppWLo6CngF0c3PV669P1R87t+v8uTP6YfUqXUy9qKee GlhovbnDX1H7
LjExUTVr1jRe16pVi5sWwG2vDF0A3FgXM8to9IiAfMudypT8bTjgqYF6c9ZM de3aRRUqVFBK
Soo8vSqVqM7KlSvrpy2bVbVq1X+8z+zs7NSgQQPNnTNb3pWq3NBjeXt769ix Y8YIYGxsLDct
AAIggJKZ8c66G36M9PQ0OTk5ysnJSTExMZo4aXKJ6xw6dIgCAgI1b94c1axZ U/v379f0GTO1
5LNP890nrylaW3Xu0lXDhw1T23Zt5enhoYSEBM2ZM08PPNDS2MbNzVUHDx40 pqWvh/79/BU8
5jV9+MEHkqSg4Ne4aQHc9pgCBm4DCxcsUFDwa3Kr6KHOXbqpdesHS1znmOAg tW7TWl27dZer
m7sGDX5Gvf38SlRnQd8DOGHCeC1fsUJNm96jcuVd1bZdB11MvajPP19ibDNy 5Ei1erDNdf2U
bmhoiMqVK6e69err3nvv0wMPtJS9vT03FYDbGh8Cgc34EAjuBAcOHFDPXr11 8MA+OgO3HD4E
AlsxAgjgjhcUFKyzZ8/pZGKixowZK79ePekUAARAALid1apdS40aN9bddzeW q5urQkIm0ykA
bmtMAcNmTAEDwM2NKWDYihFAAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAA AAAIgAAAACAA
AgAAgAAIAAAAAiAAAACuhzJ0AZC3T6e2KnSbQZO23tTn4ODorMyMNC4mAIAA CNhq4KRP8i1b
MnUwHQQAuCUxBQzkI9tiV6Jy6dIIXM7i5V1ZA54aqOTkU3QuAIAACBTX5shI q5BV2LI5MtLm
uk1myWKxl8ViL+nyYrny02S2rZ7MjDRlZqRpz56/5OjoqBGBgVw4AAABECiu 9u3aaf36tfL0
9FR4eLgsFss1S3h4uDw9PbV+/Vq1b9fO9gBoKaUVH7+v5R+/r2WLLy8fX/lp shTt7ePt5aW5
c+Zow4aNxjqz2ayJEyepWvUacnVz18CnByklJcUoT09P1/CAEfL0qiRPr0oK GBGo9PR0o9zB
0Vmz58xV9eo15VbRQ0OGDlNGRkaexy/sWAAAAiBwS4XApUuXyN/fXxEREVZl ERER8vf319Kl
S4oU/iQpK7uU+j87RE/ms2RlF/3tY2dnPW08Y+Ys7dixU1Hbtio+LlbOzs4a P2GiUR4SEqqE
Ewnau3e39uz5S3HH4hQaGmZVx09bftKOndt18OB+JSUmKSxsSp7HLuxYAIA7 h53FYrHQDbAp
EGWm39Tt2xwZqQEDBmrlypXq0KFDicKfJM0b116vTF+Ub/nb44Zo5PTNBdaR +1O4ycmnNHbc
OJ07d15ffrFCklSvfgP9sHqVfH19JUmJSUlq3qyF4uJiJUm1atfRxg3rVK9e PUnSoUOH1KXr
I4qJPmLUv2/vbtWtW1eSdPjwYXXp+oiijx6+5viFHQvArc/ewYlOgE34FDBu G7lHAgMDA/Xe
e+8VO/xJUqbZ7vLzf5IxcGeRZHfpZ6bZzqZ6HBydJUkVKlRQp04d9f777xpl J06cUOMm91j/
qyzXKGFSUpJ8fHyM1z4+PkpKSrLavnbt2la/JyYm5tmOwo4FACAAArd0COzS pVuRn/m7WpbZ
Tm/OXXkp9OXBZGMALOh7+CpXrqyftmxW1apV8yz39vZWTEyMMcIXHR0tLy8v q21yl8fGxsrb
27tYxwIAEACBWzoEnj1zSi4uLiWqJyu7lMaP7p1vedjItSVu69ChQxQQEKh5 8+aoZs2a2r9/
v6bPmKkln30qSern31ejRwdr4aIFkqRRo4LUv5+/VR1Bwa9p4YIPL/0eNEYD nuxfrGMBAO4c
fAgEt6WShr+cAFiScluMCQ5S6zat1bVbd7m6uWvQ4GfU28/PKJ8yJUzelbzV sGEjNWzYSFWq
VlFYWKhVHW3atNZ9992v+r4N5O7hrpCQycU6FgDgzsGHQGB7ILrJPwRyvY15 saumv3Np5C2v
ZwDHvjRMs95d96+2kT/1BiA3PgQCWzEFDOTDbCml0SMC8i0vXYoBdADArYkR QNjsThsBvBUw
AgggN0YAYSuGMIBbGOEPAEAABAAAAAEQAAAABEAAAAACIAAAAAiAAAAAIAAC AACAAAgAAAAC
IAAAAAiAAAAAIAACAACAAAgAAAACIAAUh4OjM50AAARAADdDKMtryXH+/HmN Hh2s+r53qaxL
eVWqXEV9+vbTpvDwIge7zIw0OhwACIAAbgaZGWnXLDkGDhykLFOW1q9bo5S/ z2n3X39pwJP9
NW3adDoOAAiAwK3l06mtCl0K4+DorIULF6le/QZyKVdBLVo+oD//3GWUR0dH 6/En+srdw0vl
K7ipZ08/JSUnW+2/YMFC+TZoqHLlXXXvfc3088+/6JNPPtXdjZoYde7evdvY x2w2a+LESapW
vYZc3dw18OlBSklJKbSdxRWxebOmvfG6ateurdKlS8vLy1N9+/bRhvXrrOq+ euTQwdFZb89/
Rz516snRqew17Sis79LS0vTc8y/IraKHatSopdlz5jKFDIAACKBk0k2lNHDS J/ku6Sbb3oab
IyMVuTlcSYkJ8vPzU8CIEUZZ78f76OWXX9Tx+GOKj4uVr6+vgoPHWO2/cdMm bdq4XkmJCXry
yf7q5ddbP65Zo3Vrf1Ry0kn16dNHASMCje1nzJylHTt2KmrbVsXHxcrZ2Vnj J0y8Yf3U+sEH
FTAiUFu3blNa2rVTuDmjhVePHEpSVFSUorZtVUZ6apH7LjQ0TOfP/61DBw9o x47t+vnnX7hp
Adz27CwWi4VugC2yMtPphGJ4a1w7vTz9o3zL5497Qa9OjyywDgdHZ51MOCF3 94qSpNTUVHl6
VVLqxbxH5FJTU1Xft4GOx8cZ+yecOC4PD3ej3K2ixzXrctdZr34D/bB6lXx9 fSVJiUlJat6s
heLiYovVD/mNquWEuXPnzmv27Nn6fvUPOnr0qLy8vNTbz08TJ05QxYpuRh1X hz8HR2fFxhxV
lSpVrNblbFdY39X2qavwTRvk4+MjSTpy5Iga3t2Y5whxS7J3cKITYBNGAIEb LCWzjCwWe1ks
9pIuL5YrP1Myy9hUT06AkaSyZcvKZDIZr3/9dase7thJFd095eDoLLeKHjp1 6rTV/jlBL2f/
vNblrvPEiRNq3OQeY8q1Ro1aVtPKxVHQM4Bubq56/fWp+mPndp0/d0Y/rF6l i6kX9dRTAwut
N3f4K2rfJSYmqmbNmsbrWrVqcdMCuO2VoQuAG+tiZhmNHhGQb7lTmZK/DQc8 NVBvzpqprl27
qEKFCkpJSZGnV6US1Vm5cmX9tGWzqlat+o/3mZ2dnRo0aKC5c2bLu1KVG3os b29vHTt2zBgB
jI2N5aYFQAAEUDIz3ll3w4+Rnp4mJydHOTk5KSYmRhMnTS5xnUOHDlFAQKDm zZujmjVrav/+
/Zo+Y6aWfPZpvvvkNUVrq85dumr4sGFq266tPD08lJCQoDlz5umBB1oa27i5 uergwYPGtPT1
0L+fv4LHvKYPP/hAkhQU/Bo3LYDbHlPAwG1g4YIFCgp+TW4VPdS5Sze1bv1g iescExyk1m1a
q2u37nJ1c9egwc+ot59fieos6HsAJ0wYr+UrVqhp03tUrryr2rbroIupF/X5 50uMbUaOHKlW
D7a5rp/SDQ0NUbly5VS3Xn3de+99euCBlrK3t+emAnBb40MgsBkfAsGd4MCB A+rZq7cOHthH
Z+CWw4dAYCtGAAHc8YKCgnX27DmdTEzUmDFj5derJ50CgAAIALezWrVrqVHj xrr77sZydXNV
SMhkOgXAbY0pYNiMKWAAuLkxBQxbMQIIAABAAAQAAAABEAAAAARAAAAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAABAAAQAAAABEMA/wsHRmU4AAAIgAAAAblVl6ALgxvp0 aqsCywdN2ir/
gcO0csmCO7J/co8uurq6qnPnTpr/9tvy8vLk5gEAAiBwa0o3ldLzYR/nWfbX T1HG72279dCW
tavvyD7KzEiTJCUlJ2vMmNc0IjBQK1cs5+YBgBuEKWDgBruYee2/s3pO26ee 0/Zp0g9pemLY
JElSZc/qatutR551ODg6a/acuapevabcKnpoyNBhysjIMMrNZrMmTpykatVr yNXNXQOfHqSU
lJQrITQ9XcMDRsjTq5I8vSopYESg0tPTba4/t8KOlV/7beHt5aW5c+Zow4aN Nh/PwdFZb89/
Rz516snRqawkac3atbr3vmZyKVdB9eo30P/+t7hIfbFw4SLVq99ALuUqqEXL B/Tnn7u4kQEQ
AAHYLiWzjCwWe1ks9pIuLavGN9Wq8U01tkt5fbVgqiTp5Kn4AkcAf9ryk3bs 3K6DB/crKTFJ
YWFTjLIZM2dpx46ditq2VfFxsXJ2dtb4CRON8pCQUCWcSNDevbu1Z89fijsW p9DQMJvrz62w
Y5WUnZ1dkY8XFRWlqG1blZGeKkl67rnnFTJ5ks6cTlb4pg3aFhVVpL7YHBmp yM3hSkpMkJ+f
nwJGjOBGBnBbsbNYLBa6AbbIykynE4ph7EtdlW7K+99aTmWyNeOddYU+A+jg 6Kx9e3erbt26
kqTDhw+rS9dHFH30sCSpXv0G+mH1Kvn6+kqSEpOS1LxZC8XFxUqSatWuo40b 1qlevXqSpEOH
DqlL10cUE33EpvodHJ2NadrCjlVUuetOTj6lsePG6dy58/ryixU2Hc/B0Vmx MUdVpUoVo846
desrKGiU/Hr1UrVq1ayOZ0tfnEw4IXf3ipKk1NRUeXpVUurFFG5m3PTsHZzo BBAAQQC8XTg4
Oist9YJKly4tSTKZTKrgWtEIJWVdystkMlm/ue3sjBEx57LldCHlfL77F1Z/ 7pBW2LGKc245
KlSooE6dOmr+/LdVydvbpuPlbluO33/frjemTdfWrb+qQgVXzZ3zpnr06GFz X1xdX17rAAIg
bmVMAQM3yJKfL6hW1xDV6hqiJT9fyHObWl1D9Fu0Sb9Fm1Sra0iB9cXExBi/ x8bGyvtyQJKk
ypUrKyb6iDIz0owldyDz9va22j86OlpeXl42159bYccqjpx6TiUnavmypUb4 K+7xmjdvpq+/
+kInjsfrrbfmKiAgsEh9AQAEQADFMj7sTcWuC1PsujCND3szz22+WDBJfYdN Vd9hU/XFgkkF
1hcU/JqSk08pOfmUgoLGaMCT/Y2yoUOHKCAgUEePHpXJZNLu3bs18OlBRnk/ /74aPTpYScnJ
SkpO1qhRQerfz9/m+nMr7Fh5KckXSRfneE8PGqx9+/YpKytLFotFJrOpSH0B AARAADdEra4h
6jtsqvG677CpBY4CtmnTWvfdd7/q+zaQu4e7QkImG2VjgoPUuk1rde3WXa5u 7ho0+Bn19vMz
yqdMCZN3JW81bNhIDRs2UpWqVRQWFmpz/bkVdqzrrTjH69Wzp/z7PSm3ih4a P36iPv54cZH6
AgBudzwDCJvxDGDRA17surBrfs/tt2iTEQK/WDBJLXzy/mrOG/0MGs+4AbcH ngGErRgBBG6Q
aSHBxjOA00KCjSCY+2fO1G/OVDAAAP8ERgBhM0YA/z2MAAKwBSOAIACCAAgA BEAgT0wBAwAA
EAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAADuXHYWi8VCNwAAANw5GAEEAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAA ARAAAAAEQAAA
ABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAAIAACAAAAAIgAAAACIAAAAAgAAIAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIg AAAACIAAAAAg
AAIAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAQAAE8P/t1rEAAAAAwCB/60nsLIoAQAAB ABBAAAAEEAAA
AQQAQAABABBAAAAEEAAAAQQA4BK0HTRLSWOoTAAAAABJRU5ErkJggg==
--------------050408040500070401030408
Content-Type: image/png;
name="genmodel.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="genmodel.png"
iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkS MZIAD3MAACAA
SURBVHja7d13XFX148fxNyhLHMh2izPTMkvzK5aaMyvDUtz2bbgA85sDLSc4 c4+mVF9balr9
sszKCdJSvqZlbktAEGS4Itlwf38oR64yLqCm+Ho+HufBvedzPp9z/Jwjvv18 zrnXymQymQQA
AIA7hjVdAAAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAA ABAAAQAAQAAE
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAg AAIAAIAACAAA
QAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAAAE
QAAAABAAAQAAQAAEAAAAARAAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAAQAAEAAAAARAAAAAE QAAAABAAAQAA
QAAEAAAAARAAAAAEQAAAABAAAQAAQAAEAAAAARAAAAAEQAAAABAAAQAAQAAE AAAAARAAAIAA
CAAAAAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAIAACAAA AAIgAAAACIAA
AAAgAAIAAIAACAAAcEerSBegPDl+4Bcd3r9HHbr70Bm3sKTTp3R4/x5169FT WSnJdMgdwqaK
qyRp6+Zv1eze1nLzrHXb/RmcXD05kSAAAkBZmHKyZcrJoiPuEJnn4yVJXbt2 07ZtW3V4/57b
NggCBEDgFsLo360vb/SvyyOdlHk+jg65I4NgnLo80kmStD00TJIIgQABEMCd IpfRvztWxuXw
3+WRToRAgAAI3Dg/ru5XZHn7wevppJvIlJstU/a1AXDXjtlF1vtX56l0XjmS nhytzh0f0o6d
PxACAQIgcGN08w8tcP3x717Uj6v7EQJvZgAs4v6/os7Trh2z1bbjJDqwlNxa PaGkfV9f923L
FAKTovTIQ/9S6A+7CIEAARC4vrJNVso1mQoss3V0Uf0GLQiBNzkAFjQFnHee ujwbYqzb/v4I
4zx5NWih3Tvnq81D4+jEUirJ1Lsl23q0fsp4nbDnC4vL8ktLilSndq0V9vMe QiBwE/A5gLhz
AmCOtXJNKnCxdXQxQuD2DwYW2Y5X42bq1vMJma4KkyaTSV0ffVxejZvR2ZYE wNwsmXKuXfLO
kyT9uMb/UgjJd55sHF1Uv0FzfR+2vMD6eYtH66f0sO+Lys3ONFufm52ph/qO lkfrp4qsX16X
S+H7+m6bd/2bTCazfvVo/ZSx3pK20pJOqGPbljq8f4+STp/iLwlwAzECiDtG lslaOTnm6558
vJu+2rRVzveMNtb9frRHsW1VcnDQjtAwden8iLFu67YdcqxUiY62eGQpW6ac zGvPU+6V89R+
0JuSZLy/+jwVVD8/BzsbbQnfre4P3W+s+y78F1Wyt70cSDLvzPBdgj93SfvI ZDLJysrKeF3S
ttIS/9TDrZvr+z2MBAI3EiOAuHMCYI6VciVj2fu/H6XLP/Ovz8qxKratEcNf 0Fsr3zFb91bI
Oxo5Ypjxvt/AIfp60zdm28TFxetB7w5KSUkx1uXk5Gj+oiVq3ba97mpxn8a8 NF4XL168ctxZ
WZo991U98KC3Wj7woN55b5VRlpmZqVemTNc9rdronlZtNHnqdGVmXvlH1qtx M7236gO1e7iT
GjS526L93bwQcmkK+OolK/fSefrm3UvTvt+8O0K5kh4dFmIseeepoPp5iyT5 D+qp1z/aaLb+
tY++UsDgxy6H0Cz19pupL7b8YLZNTNxptew1Whf++stYl5p6US/OfEsNOj+v e5/w1+sffaka
3kOuHHdWhua8uVYtHvOT1yPPa+S0FforJcUor+E9RB98vkVtnv6P6nT4t7r+ e7J+P/KnWfn7
n29R2z5jVbfjs+o0eJJ27TukT74OlXe/8UadQ8cjjTppaakaPzdETboNV5Nu wzVh3jtKS0s1
ytPT0/SfWW8bx/zGx18Zf25Ljjn/tkUtp75fZYS+vOCXP/xZWVnp1PerLGor NydLaYl/6KFW
TRkJBAiAwPUIgNbKyTEZS1BQkDp16qSgoCCz9Vk5xf+16Nmju86ePae9+/ZJ knbtjtCF8xf0
aPduxjYB/qO07LU3lJuba6xb8fqbeu7fQ1WlShVj3Ztvh+jgwUP6+sv/0y+7 f5SdnZ3mLVhk
lC9b8YaO//GHNn31hb4P3a7Tp08bZYuWLNPphASFbvtOO7Z+q7i4eC1eutzs WH/7bb++/vL/
dOLYIYv2d9MCYG52gdOA+c+TJD02LESPDbt0P+CaTo9eDrGXzlNx05I9H2qp 5HMX9L/fjsiU
k6WffjmgcxdS9Gj7ey+H0CyNGdJTS1d9qZysK1PFS1dt0LA+nVXZvqKxbsE7 nykl5aJ2fTJP
2/47QxG/HTPaMOVkacUHX2n/kUh9985U/frFItnbVNScNz8xO56f9h3Whtcn 6dDXy/ToQ/cp
cMEqs/Lw/x3QZ8vH69DGZerdpY2GBi7R9p9+1bolY3X46+V6ouP9Cpx/pc78 kE91Ovmcvv94
tsI/nqXY08laEPLZlWMO+Uxnzl3Qz2vnact70/XDnoMlPmZLp4tjw0LMQmD+ 8BcbFlLiqeq0
xONq37IhIRAgAAJlk5ljpZxck3JyTfpi/Yfq1KmTateurU6dOumL9R8aZZkW jABaW1tr2AvP
6a2V70qS3l75joYPe17W1lf+SnV8+CFVdnQ0RgEjo6K08/vv9dy/h5q1te7T zzRj2hR5enrI
0dFREwPHacuWbUb5/23YoBnTpsrT00NVq1bRtCmvGGVfbtyk6VNfkauLi9xc XTV92hR9udH8
qc2pkyfJxdnZ4v3dvBHALJmyr13ynydJ2vDWMG1469LI6qCw7y4FwMvnqaD6 eYskWeVma6Rv
F72x5luZsrP0+sffaFS/rrLKzb50DNlZ6tCqiSrZ2+rLbT/LlJ2lE9GnFBZx QM/6PGzW3pfb
/6fpo56Sc2V7OVe21/SRTxltmLKz9Mmm7zUzoK88q1eWo20FvfLCk/omfK/Z 8cx50VceTo5y
qGitkX0f0cHjJ83K5780QDWcq8i+opVeeKqj/k5N19wx/c3W7T8aZdTZsC1C QX5Py6WKvVyr
OGhmQF9t2B5hlH+xbbeC/PoY5cH+fUt8zEX1cUF9XuC5LkEb+Ze008fk3aIu IRC4AbgHEHeM
ux5+RYd+/dkY+atdu7YaNWokSYqNjVW/3j0UFBSkux5+xaL2+jzdW8tWvK6N X2/SoSNHtfLt
N67ZJsBvpOYvXKzHH+uppctf16gRw2Rvb2+2TUJCorr2eOyaUZM8SUnJqlun doHHcObMGdWt
U8d4X7dObZ05c9ZsG3d39xLt72aOABb0hGlmjrWyrwyaGq8/e2OY2brMHOti n1DNzclSny4P
aMkHm/TFtt06fOKU3g16wWx6U5JGD+yqee9u1OMP36vF72/UKN/OsqtoZdZ+ 0tm/VMO1irGu
pltVszZOJ59Xp+dmXtOv+duoWsnWeG9X0UrZOblm5dUczcsLWpe/TvK5FNV2 r2a8r+1eTcnn
/jLeJ539S7Xcq5qVl/SYLX1iuF6Pl66550+6ck9g9OZlpbpOUk8fU7u7G+jn /dwTCBAAgVII
Dg6WpGvCX97PvOlgSfri07XFtmdna6vn/z1U4wJf1riXxsjO1vaabbp26azF S1do4eKl2rfv
Vy2aP++abdzcXPXFp+vk4eFe4H7c3Fx1MiZWDbzqX1Pm4uKimNhY1a9XT5J0 MiZWzvlG+wpr
r6j93bwRwII/BzAr11r5Zs2N1/1efNdYt/61YcrOtS72e4RNOVmysZaee/Ih jVv4scY/86hs
rE1m05uS1LVNUy1+/xvNf+8r/XIoUovG9rumbdfqlRUbn6i6ni6SpJi4ZLM2 3Jyr6oslo+Xp
Uu2aYyjodWnKr17nWr2yTp5KUP2arpfO/6kkuThVvnJM1auYl1+nY75a/ccC r7nnLy/85Q+B
Ud8sLF0IjD+qfzVtqF2EQOC6YQoYd4wZM2YoKChIYWFhio2N1R9//CFJ+uOP PxQbG6uwsDAF
BQVpxowZFrc5auRwHT/8u/xGDi+w3MrKSgH+I7Xynfc0OmCUbG1tJMnso2KG DBqgl6dMU/TJ
k8rOztbRY8c05qXxRnmfp3oreNZsnT6doL/+StGsOVdCZK/He2rm7HlKPnNG yWfOKHjWHD35
xGNFHnNx+7vZAbDAewDzTQH3e/FdI/wZ9wDmmpRpwT2Aea9H9XlIxzfM1qin HyqwXLnZCujX
USs/C9Po/o+oolWuTDlZl4LN5W16PXyvZod8pbPnzuvsufOaFfKlWRuDH31Q ryz/VFGxCcrO
zNCRP2M0et5HRd5PZ3YMxZQXtO6Jh+7RzJUblHz2nJLPnlPQ2xvU6+F7rxxz h3s1K+RLnTl7
Xslnz2nm2xvKfMyF9XX+az5y41xFbpx7zchyWT6+JjX+iNo2cmY6GGAEECiZ H75boiHjPtWq
dd9p+8aPFRsbK+nS9G/t2rW1at2l+8s+XuKr+1qEXLf9VqhQQV7166vPU70L DpEjhstK72rw
M88pMTFJXl71Ndp/lFH+nxcDNG/+IvXs5SOTyaQXA/yNssDxYzU9aJY6dbn0 0TWP93xUE8a9
VHRoLWZ/Ny0A5mYV/EHQOVbG5wCuXvaCsX7wS+8Z9wDmmi5vZ8EUsKXlVjKp fk0XPd3xngKn
QF8a2ElT39wo7+cWyNHBVs/2+pd2/nLcKB/5tLdWfp6rwVPeVcLZFDWo5aLR /ToWO51akvKr
140b/IiCQr5Rx+GLJUmPtW+usYM6GeVjB3bSlLc2qv3zl455eO/2Ct1ztMzH XNh/diTpzw3B
Rp0/NwSbhcCyfvfzxfjDerBBI0UwEgiUmZXJVMhXIwC3oa/WrFSH7j4Fli1d MFLPjFtnvB82
sKc6deqksLAwvbv2W2P9h0v6a+zEldftmIaPCtCTTzymXk88zgmSlHT6lA7v 36M29RyUmnD8
mvIPd+03O0+F+Whxfw1td+91O66Rr67XEw81V6+Hmlu0/Z+nzuiF2WsV9tZo TupNVsmjsf4X
naZm97a+6SHQydWTE4BygRFA3DFycq21atGVb/kICgoylvzrr9edEbm5uVr3 6eeKio7W44/1
5ARc3T+F3AOYk2utVYsHSjLJZMobWcq7l0y69NZKkpVF96cVexwmkz7dsV/R 8Wf12L8aF9nm
nA+2a3Tf9srMytG8VVvUrU3j63IMKJmLcYf0QO0m+oWRQIAACBRnwstvmb3/ 9cCRy6HCdE3Z
9dCwaXPVrlVLry1fYvbxMLjEdPmjWK72bNumN/U4mvZfoFpu1bRirI+si3ka urZbNXUbE6KM
rBx1ad1IL/V/iBP5D0lLOKb7azbQXkIgUCpMAaNcKWoKGLeGvCngVh7Zyjgb Q4egTGyr1dCv
yfY3bTqYKWCUFwxLAPhHmHKy6QSUWeaFeLV0/luH9+9R+JYveUIYsBBTwAD+ mQCYSwDE9ZGV
kqR7q126nvYzJQxYhBFAAP9MAGQEENdRduo5Zaee0z2VkxgNBCzACCCAfygA 8vQsrr+cjL/V
otKl/1wc2L9Hhy+PCP4THxkDEAAB4OoAyBQwbpDcrHRJUnO7Kw8ZHdwvwiCQ D08Bo1z5as1K
OuE20dwuhhCIf8ShLK9S131y0Eg6EOUCI4Aod+62iaQTbgOmXPoA/I4A/ik8 BAIAAHCHYQQQ
5VezvvQBAAAEQNxJuL0VAAACIO68BEgfAABAAMQdlf9EAAQAgACIOysAMgII AAABEATA6yHB
qmaJ63iY4jghAAACIHATEuD1D3/WtVTf00mSNGjsarOyNUsHF1ov6rTkkcv3 kgIACIDADc5/
N34K+Mc1/pKk9oPevCWOBwAAAiAIgLf48TRv/bAaNqivL9d9KCsrK7Ntn+w3 VCcio3Vwz/ec
TAAAARCwKHDJpP/9sk/PjfyPxXVWrVyuNg+0snh7S0b+8h9PQezt7RX2/Y/q 1KG9sW77zu/l
4OBQZD0AAEqLr4JDOU6AJrW5/z6tenu5nJ2dFRoaKpPJdM0SGhoqZ2dnrXp7 udrcf9+lewcL
W/LJu+dvzdLBxutBY1ebLVcfT0HtPT90oN77YI3Z+v9+sFovPDPQqPfv4aP1 7eZtZtvEx5/W
I48+pb9T/i76mFlYWK7fAhAAgVs+/8lkklrff58WzZmhPn36KCwszGybsLAw 9enTR4vmzFDr
+++7Lr/73+06QO92HVDo8VzdXtdHOujs2XPa99sBmUxSxJ5fdf78X+rSqYNR b/hzQ/XWOx8o
JyfXqPvWOx9oyIC+cnR05N9lFhbyH1AiTAGjHAfAK7+tW9/fUgvnTFefPn30 +eefq1OnTkb4
Wzhnulrf37LU9wxePdKXHlP88eRnZWWlfw/pr/c+WKMVi+bo3Q8+1rNDBhj3 BJpMJnm3baNK
lRz07ZbteqxHV52MidWPuyL08vgXebgEAEAABAoLXK1btdTC2dPUp8/TevHF MXrttRVaOHu6
WrdqWaYQlf/jXwaNXa3RRz8pUQA0mUzq9VgPvfnO+/pm8zYd++OEli+cY2yf 93PYs0O07I2V
6tH1Eb0RskrPDR0gOzs7AiAAgAAI5EtW16xq3aqlFs6aphcCxum9N5aodauW 13Vep6jPAix0
PyaTbCtW1GDfpzUleJ5Gj3xethUrXtn+8s9OD7XTGyv/q+VvhOi33w9q1tRJ zEkBAAiAgFmu
KuTp2Qfub6mfd2ySg4P9dX/CtqgPhy5sX3nrn3tmgJ57ZsA12xqvraRhzw7W pGmzNGPyBFW0
qcATwgAAAiBgFqyKGB2zt79+U6dXh768B0CGbfvEouMp7jjyl1tbW6lunVrq 1bMbU78AAAIg
UNJgdT1cPeU7aOzqEj0EsvfHrUUe59XlX3+7VaNe+Lesra0JgAAAAiDwTwTA gpT0IRBL5Oaa
9OXX3yomNk7dOnck/AEACIBAIYnrujdZJeWootS00PK5kx43ex91+rxRryza dOihmp4eenXm
FFlbiYc/AAAEQKDg/HdjQlLlv46U/FjKuM894d/d8D8XAIAACBAAAQAgAAK3 WQDkI1IAACAA
4k5LgARAAAAIgLjD8h8BEAAAAiDuKK28u9AJAAAUwJouAAAAIAACAACAAAgA AAACIAAAAG5L
PAQC/EN+OpxQ4jrezTzoOAAAARC4XcNffU+nUtUjBAIAyoopYOAW83LXieXm z2Jr58AJBYBb
ECOAwD8s7D8/Kycr13hfq0o9bff/0XhfwcZanZa3K7ado0ePatr0GQoPD9ff f1/UPfe0UOCE
CXr66aeuW5jLzEgrUZ2Sbg8AuDkYAQQssDM8XLZ2DhYvO8PDLW47Kz1Hnnc7 q05rd1Wr6ai7
a95n9j4rPafYNv744w9169ZDXTp31sEDB3QmOVHLly3TuvXrOXkAAAIgUBod O3TQ1q2b5erq
qtDQUJlMpmuW0NBQubq6auvWzerYoYPFbZtyTbKpVFFV3CvJtrKNzvyVZPbe lFv8V9rNnDVb
EwInaOTIEXJxcZadnZ0efLCN1n2y1tgmPT1do/z85ermIVc3D/n5Byg9Pd0o t7VzUEjIO2rU
uKkcK1dVmwfb6rff9htleT/zT+tGRkbqqaf7ytnFTVWqOqlXLx8lJiWZtWlJ +5KUk5OjqVOn
qVbtOqrm5KzBQ4YqJSXFrP7yFa/Jq0Ej2dlX4qIEAAIgcHNC4Nq1q+Xr66uw sDCzsrCwMPn6
+mrt2tUlCn+SlJ6dpr/iLirpj/O6mJyukxdOmL1Pzy5+GjV0R6h8ffsWuc2M GUGKj4vXoUMH
dPDg74o5GaOgoGCzbXaGhyt8Z6gSE+Ll4+MjP39/SVemcjMz0symdXs/1Udj xozWqdiTio2J
VpMmTRQYWPg9jIW1L0mvzl+gvXv3KWL3LsXGRMvBwUGTp0w1qx8REaGI3buU kZ7KBQkAZWBl
MplMdAPKi6/WrNTdNpGSpHo+QTdkHzvDwzVw4GB9+umn6tSpU6nCX95TwC93 nahaVerJo3It
SdLJCyeMbepWayBJSvj7lE6lROvVbQsUdfp8gU8BV3Ksor8unFPFioXf1luv fgNt37ZFjRo1
kiQdP35c3bo/qqjIPyVdGmE7HR8nZ+fqkqTU1FS5unko9WKKUV7cPX2pqalq 3KSpTsXGXFOn
uPYbNW6qbzZtVJMmTS79uRMT1fqBNoqJiTbqR0edUI0aNbjQ8Y+xsbWnE1Au 8BAIUEL5RwID
AgL0xhtvlGrkT5Je3bZA64duUPO2TWVTqaIaxNVXWMQO9ezeUzaVKuqvuIvS UenFLwKKbMfF
2VlJycmq4elZ6DaJiYny8vIy3nt5eSkxMdFsm7xwJkmVKlVSdnZ2kfv9+edd mjxlin799Tdd
vHjx0v8qrawK3b6o9uPi4tTinpbm/0O9qi3CHwBcH0wBA2UIgcHBwaUOf3ky czLM7vmrW62B
2fvMnIxi23ik8yP6/PPPi9zG3d1dUVFRxvvIyEi5ubmVqR8GDhosfz8/RUX+ qYz0VCUnJai0
kwqenp6KivzTmGbOzEhjqhcACIDArRcCz51NLlP4ywuA+e/5k2T23pIAOH3a VC1csEjvvvue
zp49p4yMDP3vf3vUf8BAY5t+vn01fnygEpOSlJiUpHHjJqh/P1+Lj9PJqZqO HTtmti49PU32
9nayt7dXVFSU/PwDSt0PI0YMl59fgE6cOKHs7GwdOHBAg4cM5UIDAAIgcGtx dHQscxuN696l
/b/v156ff9Hh4weV8Pcps/eN695VbBuNGjXS5s3favOWLbqrWTO5uLrrPy+9 pP79+hnbzJwZ
LHcPdzVr1lzNmjVXjZo1FBwcZPFxjh07Vv9q197syd6QlSs1IXCSnKq7qGu3 HvL2blfqfpgY
OEHe7b3VvUdPVXNy1tBnnlVvHx8uMgC4AXgIBOXKzXgI5Hoo6qvgXu46Ua9u W1BgWWEPgQC4
OXgIBOUFI4DALaaw8AcAwPXCU8DAP8C7mYd+OpxQqnoAABAAgds4BAIA8E9g ChgAAIAACAAA
AAIgAAAACIAAAAAgAAIAAIAACAAAAAIgAAAACIAAAAAgAAIAAOAG4ZtAgNsc XykHACAAAndY
+Kvv6SRJ2v56x2K37zJ6p1GPEAgABEAA5cDgaR8WWrZ61jN0EABAEvcAAuVG rsmqTOWSZGvn
YCxu7p4aOGiwkpKS6VwAIAACKK2d4eFmIau4ZWd4uMVtZ+dIJpONTCYbSZcX 05Wf2TmWtZOZ
kabMjDQdPPi77Ozs5B8QwIkDAAIggNLq2KGDtm7dLFdXV4WGhspkMl2zhIaG ytXVVVu3blbH
Dh0sD4Ama61//02te/9NfbLq8vL+lZ/ZppL9dXd3c9OSxYu1bdt2Y11OTo6m Tp2mWrXrqJqT
swYPGaqUlBSj3NbOQctXvCavBo1kZ19JkvTd5s26r9UDcqxcVY0aN9V//7vK 2D49PV2j/Pzl
6uYhVzcP+fkHKD093ay9kJB31KhxUzlWrqo2D7bVb7/t50ICAAIgcPuFwLVr V8vX11dhYWFm
ZWFhYfL19dXatatLFP4kKSvXWv2fG64BhSxZuSX/625lZT5t/Or8Bdq7d58i du9SbEy0HBwc
NHnKVLNtIiIiFLF7lzLSUyVJzz//gmZMn6azZ5IUumObdkdEGNvOmBGk+Lh4 HTp0QAcP/q6Y
kzEKCgo2a29neLjCd4YqMSFePj4+8vP35yICAAIgUD5CYFnCnyRl5ViXqfxq SUnJmhAYqM6d
OxvrVq16X8uWLVGtWrVUpUoVzZkzWxu+2GBWb9HCBXJzczXe29s7KP50vJKT k1WnTh2tfPst
o+yTdeu1ePFCubu5ycPdXUuXLtYn69abtffaihWqWbOmHB0dNW7sS/r119+4 gACAAAjc/iEw
KCioTOFPkjJzrIq8BzAzx8qidvLuP2x2d3P9/fffevPN142yuLg4tbinpbFN nTr1lJiUZFa/
Ro0aZu/Xr/tEW7duV+s2D6rpXXdr06ZNRlliYqK8vLyM915eXkpMTDSr7+xc 3XhdqVIlZWdn
c/EAQBnxMTDALRACu3XrUeJ7/q6WlWOlhUs+lUwFl2dbGAAzM9IKLfP09NQP 3+9UzZo1LT6u
1q0f0Bf/95lMJpO+27xZI0eM0smTj0uS3N3dFRUVpYYNG0qSIiMj5ebmxoUB AARAoPyHwHNn
k+Xo6FimdrJyrTV5fO9Cy4PHbi7zsY4YMVx+fgFaunSx6tatqyNHjmjeq/O1 +uOPCq0zZOgz
mjL5FTVs2FAmk0nZOVdG8Pr59tX48YEKeWelJGncuAnq38+XiwIAbjCmgIFb QFnDX14ALEu5
JSYGTpB3e29179FT1ZycNfSZZ9Xbx6fIOk/26iXffgPkVN1FkydP1fvvX3kK eObMYLl7uKtZ
s+Zq1qy5atSsoeDgIC4IALjBGAEEyonsy/cASpLx8K5JktWln5ZMARc1gBpk wgAAF6VJREFU
/StJ1tbWmjQxUJMmBlpcv18/X/UrZFTPwcFBISvfVsjKty1ur7hjBAAQAIE7 Ro7JWuP9/Qot
r2DNgD8AgAAI3Pa8m3nop8MJkqQ+oz8odvuo0+eNegAAAiCA2zgEAgBQEswJ AQAAEAABAABA
AAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAA3CB8EwgASTK+ Uq4k+BYSACAA
AriNw199T6dS1SMEAsDthylgAPiH2do50AkACIAAcCuEsoKWPBcuXND48YFq 3OQuVXKsIg/P
GurTt592hIaWONhlZqTR4QAIgABwK8jMSLtmyTN48FBlZWdp65bvlPLXeR34 /XcNHNBfc+fO
o+MAEAAB3F62v96x2KU4tnYOCgl5R40aN5Vj5apq82Bb/fbbfqM8MjJSTz3d V84ubqpS1Um9
evkoMSnJrP7KlSFq0rSZKleppvtaPaAff/xJH374ke5ufo/R5oEDB4w6OTk5 mjp1mmrVrqNq
Ts4aPGSoUlJSij3O0grbuVNz58xW/fr1VaFCBbm5uapv3z7atnWLWdtXjxza 2jlo+YrX5NWg
kezsK11zHMX1XVpamp5/YZicqruoTp16WrR4CVPIAAiAAMomPdtag6d9WOiS nm3Zr42d4eEK
3xmqxIR4+fj4yM/f3yjr/VQfjRkzWqdiTyo2JlpNmjRRYOBE8yC6Y4d2bN+q xIR4DRjQX0/6
9Na3332nLZu/VVLiafXp00d+/gHG9q/OX6C9e/cpYvcuxcZEy8HBQZOnTL1h /eTdrp38/AO0
a9dupaVdO4WbN1p49cihJEVERChi9y5lpKeWuO+CgoJ14cJfOn7sqPbu/UU/ /vgTFy2AErMy
mUwmugHlxVdrVupum0hJUj2fIDrEQvmfAl6/oJvGzHu30G1XvDJM/SZulSRF nT5f4FPAtnYO
Oh0fJ2fn6pKk1NRUubp5KPViwSNyqampatykqU7Fxhj14+NOycXF2Sh3qu5y zbr8bTZq3FTf
bNqoJk2aSJISEhPV+oE2iomJLlWfFDaqlhfmzp+/oEWLFunrTd/oxIkTcnNz U28fH02dOkXV
qzsZbVwd/mztHBQddUI1atQwW5e3XXF9V9+roUJ3bJOXl5ck6c8//1Szu1tw H+FNYmNrTyeg
XGAEEICZlMyKMplsZDLZSLq8mK78TMm07NOj8gKMJFWqVEnZ2dnG+59/3qVH OndRdWdX2do5
yKm6i5KTz5jVzwt6efULWpe/zbi4OLW4p6Ux5VqnTj2zaeXSKOoeQCenapo9 e5Z+3feLLpw/
q282bdTF1IsaNGhwse3mD38l7buEhATVrVvXeF+vXj0uWgAlxucAAjBzMbOi xvv7FVpuX7Hs
vzYGDhqshQvmq3v3bqpatapSUlLk6la2zxP09PTUD9/vVM2aNW96n1lZWalp 06ZasniR3D1q
3NB9ubu76+TJk8YIYHR0NBctAAIggLIZM3PjDd9Henqa7O3tZG9vr6ioKE2d Nr3MbY4YMVx+
fgFaunSx6tatqyNHjmjeq/O1+uOPCq1T0BStpbp2665RI0fq4Q4Py9XFRfHx 8Vq8eKnatn3Q
2MbJqZqOHTtmTEtfD/37+Spw4iS9/dZbkqQJgZO4aAGUGFPAAG66kJUrNSFw kpyqu6hrtx7y
9m5X5jYnBk6Qd3tvde/RU9WcnDX0mWfV28enTG0W9TmAU6ZM1rr163XvvS1V uUo1Pdyhky6m
XtSaNauNbcaOHat/tWt/XZ/SDQqaocqVK6tho8a6775Watv2QdnY2HBRASgR HgJBucJDIKVT
2q+CK+whENw8R48eVa8ne+vY0cN0xk3AQyAoLxgBBIDbzIQJgTp37rxOJyRo 4sSX5fNkLzoF
QIlwDyAAeTfz0E+HE0pVDzdfvfr11LxFC6WnZ+iJJx7XjBnT6RQAJcIUMMoV poAB3EhMAaO8
YAoYAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAAC AADgBuGr4IDb
HF/hBgAgAAJ3WPir7+kkSdr+esdit+8yeqdR71YMgbZ2DsrMSOPEAgABEICl Bk/7sNCy1bOe
oYMAAJK4BxAoN3JNVmUqly6NwOUtbu6eGjhosJKSkulcACAAAiitneHhZiGr uGVneLjFbWfn
SCaTjUwmG0mXF9OVn9k5lrWTmZGmzIw0HTz4u+zs7OQfEMCJAwACIIDS6tih g7Zu3SxXV1eF
hobKZDJds4SGhsrV1VVbt25Wxw4dLA+AJmutf/9NrXv/TX2y6vLy/pWf2aaS /XV3d3PTksWL
tW3bdmNdTk6Opk6dplq166iak7MGDxmqlJQUozw9PV2j/Pzl6uYhVzcP+fkH KD093Si3tXPQ
osVLVLt2XTlVd9HwESOVkZFR4P6L2xcAgAAI3FYhcO3a1fL19VVYWJhZWVhY mHx9fbV27eoS
hT9Jysq1Vv/nhmtAIUtWbsn/ultZmU8bvzp/gfbu3aeI3bsUGxMtBwcHTZ4y 1SifMSNI8XHx
OnTogA4e/F0xJ2MUFBRs1sYP3/+gvft+0bFjR5SYkKjg4JkF7ru4fQEACIDA bR8CyxL+JCkr
x7pM5VdLSkrWhMBAde7c2Vi3atX7WrZsiWrVqqUqVapozpzZ2vDFBqP8k3Xr tXjxQrm7ucnD
3V1Lly7WJ+vWm7WbV+7u5qbFixdq7SfrCtx/cfsCAJQeTwEDt0AIDAgI0Btv vFHq8CdJmTlW
l+//k4yBO5Mkq0s/M3OsLGrH1s5BklS1alV16dJZb775ulEWFxenFve0NNs+ /yhhYmKivLy8
jPdeXl5KTEw0275+/fpmrxMSCv4cw+L2BQAgAAK3dQjs1q1Hie/5u1pWjpUW Lvn0UugrQLaF
AbCoz+Hz9PTUD9/vVM2aNQssd3d3V1RUlBo2bChJioyMlJubm9k2+cujo6Pl 7u5eqn0BAAiA
wG0dAs+dTZajo2OZ2snKtdbk8b0LLQ8eu7nMxzpixHD5+QVo6dLFqlu3ro4c OaJ5r87X6o8/
kiT18+2r8eMDFfLOSknSuHET1L+fr1kbEwInKWTl25deT5iogQP6l2pfAIDS 4x5A4BZQ1vCX
FwDLUm6JiYET5N3eW9179FQ1J2cNfeZZ9fbxMcpnzgyWu4e7mjVrrmbNmqtG zRoKDg4ya6N9
e2+1anW/GjdpKmcXZ82YMb1U+wIAlJ6VyWQy0Q0oL75as1J320RKkur5BJX7 P2/+r4JbNq2X
5r12aeStoHsAX35xpF6atVGSFHX6/D/yVXB81Rtudza29nQCygWmgIFyIsdk rfH+foWWV7Bm
wB8AQAAEbnvezTz00+FLT9H2Gf1BsdtHnT5v1AMAEAAB3MYh8HbB9C8A3BqY EwIAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAALhB+CYQAJJk fKVcSfCVcgBA
AARwG4e/+p5OpapHCASA2w9TwADwD7O1c6ATABAAAeBWCGUFLXkuXLig8eMD 1bjJXarkWEUe
njXUp28/7QgNLXGwy8xIo8MBEAAB4FaQmZF2zZJn8OChysrO0tYt3ynlr/M6 8PvvGjigv+bO
nUfHASAAAri9bH+9Y7FLcWztHBQS8o4aNW4qx8pV1ebBtvrtt/1GeWRkpJ56 uq+cXdxUpaqT
evXyUWJSkln9lStD1KRpM1WuUk33tXpAP/74kz788CPd3fweo80DBw4YdXJy cjR16jTVql1H
1ZycNXjIUKWkpBR7nKUVtnOn5s6Zrfr166tChQpyc3NV3759tG3rFrO2rx45 tLVz0PIVr8mr
QSPZ2Ve65jiK67u0tDQ9/8IwOVV3UZ069bRo8RKmkAEQAAGUTXq2tQZP+7DQ JT3bsl8bO8PD
Fb4zVIkJ8fLx8ZGfv79R1vupPhozZrROxZ5UbEy0mjRposDAieZBdMcO7di+ VYkJ8RowoL+e
9Omtb7/7Tls2f6ukxNPq06eP/PwDjO1fnb9Ae/fuU8TuXYqNiZaDg4MmT5l6 w/rJu107+fkH
aNeu3UpLu3YKN2+08OqRQ0mKiIhQxO5dykhPLXHfBQUF68KFv3T82FHt3fuL fvzxJy5aACVm
ZTKZTHQDyouv1qzU3TaRkqR6PkF0iIXyPwW8fkE3jZn3bqHbrnhlmPpN3CpJ ijp9vsCngG3t
HHQ6Pk7OztUlSampqXJ181DqxYJH5FJTU9W4SVOdio0x6sfHnZKLi7NR7lTd 5Zp1+dts1Lip
vtm0UU2aNJEkJSQmqvUDbRQTE12qPilsVC0vzJ0/f0GLFi3S15u+0YkTJ+Tm 5qbePj6aOnWK
qld3Mtq4OvzZ2jkoOuqEatSoYbYub7vi+q6+V0OF7tgmLy8vSdKff/6pZne3 4D7Cm8TG1p5O
QLnACCAAMymZFWUy2chkspF0eTFd+ZmSadmnR+UFGEmqVKmSsrOzjfc//7xL j3TuourOrrK1
c5BTdRclJ58xq58X9PLqF7Quf5txcXFqcU9LY8q1Tp16ZtPKpVHUPYBOTtU0 e/Ys/brvF104
f1bfbNqoi6kXNWjQ4GLbzR/+Stp3CQkJqlu3rvG+Xr16XLQASozPAQRg5mJm RY339yu03L5i
2X9tDBw0WAsXzFf37t1UtWpVpaSkyNWtbJ8n6OnpqR++36maNWve9D6zsrJS 06ZNtWTxIrl7
1Lih+3J3d9fJkyeNEcDo6GguWgAEQABlM2bmxhu+j/T0NNnb28ne3l5RUVGa Om16mdscMWK4
/PwCtHTpYtWtW1dHjhzRvFfna/XHHxVap6ApWkt17dZdo0aO1MMdHpari4vi 4+O1ePFStW37
oLGNk1M1HTt2zJiWvh769/NV4MRJevuttyRJEwIncdECKDGmgAHcdCErV2pC 4CQ5VXdR1249
5O3drsxtTgycIO/23ureo6eqOTlr6DPPqrePT5naLOpzAKdMmax169fr3ntb qnKVanq4Qydd
TL2oNWtWG9uMHTtW/2rX/ro+pRsUNEOVK1dWw0aNdd99rdS27YOysbHhogJQ IjwEgnKFh0BK
p7RfBVfYQyC4eY4ePapeT/bWsaOH6YybgIdAUF4wAggAt5kJEwJ17tx5nU5I 0MSJL8vnyV50
CoAS4R5AAPJu5qGfDieUqh5uvnr166l5ixZKT8/QE088rhkzptMpAEqEKWCU K0wBA7iRmAJG
ecEUMAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAA BAAAwA3CV8EB
kCS+Cg4ACIAA7rTwV9/TqVT1bsUQaGvnoMyMNE4sABSCKWAAAIA7DCOAAMxs f71jkeVdRu/U
f0aP0fLXV9yR/WNr52C8rlatmrp27aIVy5fLzc2ViwcAARDA7Sk921ovBL9f YNnvP0QYr/sP
eFrzl/33juyjvOnlxKQkTZw4Sf4BAfp0/TouHgC3DaaAAZi5mHnt/wt7zT2s XnMPa9o3aRr9
8mxJkqdrbU166fkC27C1c9CixUtUu3ZdOVV30fARI5WRkWGU5+TkaOrUaapV u46qOTlr8JCh
SklJuRJC09M1ys9frm4ecnXzkJ9/gNLT0y1uP7/i9lXY8VvC3c1NSxYv1rZt 2y3en62dg5av
eE1eDRrJzr6SJOm7zZt1X6sH5Fi5qho1bqr//ndVifoiJOQdNWrcVI6Vq6rN g23122/7uZAB
EAABWC4ls6JMJhuZTDaSLi0bJ9+rjZPv1cvdquj1V6dKkk4nxxY5AvjD9z9o 775fdOzYESUm
JCo4eKZR9ur8Bdq7d58idu9SbEy0HBwcNHnKVKN8xowgxcfF69ChAzp48HfF nIxRUFCwxe3n
V9y+ysrKyqrE+4uIiFDE7l3KSE+VJD3//AuaMX2azp5JUuiObdodEVGivtgZ Hq7wnaFKTIiX
j4+P/Pz9uZABFP27y2QymegGlBdfrVmpu20iJUn1fILoEAvlfwp4xfReSs8u +P+G9hVzNWbm
RuMewKjT5wt8CtjWzkGHDx1Qw4YNJUl//PGHunV/VJEn/pAkNWrcVN9s2qgm TZpIkhISE9X6
gTaKiYm+dO7qN9D2bVvUqFEjSdLx48fVrfujior806L28z8FXNy+Sip/20lJ yXr5lVd0/vwF
ff7Zeov2Z2vnoOioE6pRo4bRZoOGjTVhwjj5PPmkatWqZbY/S/ridHycnJ2r S5JSU1Pl6uah
1IspXNg3gI2tPZ0AAiBAACx/AbAkigqAaal/q0KFCpKk7OxsVa1W3QgllRyr KDs72/yXkZWV
MSLmUKmy/k65UGj94trPH9KK21dpAmCeqlWrqkuXzlqxYrk83N0t2l9BH1Gz Z88vmjN3nnbt
+llVq1bTksUL9fjjj1vcF1e3x8fgEACB4jAFDECSFHooS+36z1W7/nMVeiir wG3a9Z+rU+cr
6NT5CmrXf27R4TAqyngdHR0t98sBSZI8PT0VFfmnMjPSjCV/IHN3dzerHxkZ KTc3N4vbz6+4
fZVGXjvJSQla98laI/yVdn+tWz+gL/7vM8WditWyZUvk5xdQor4AAAIggFKZ HLxQP6+brJ/X
Tdbk4IUFbvPZymnqO3KW+o6cpc9WTiuyvQmBk5SUlKykpGRNmDBRAwf0N8pG jBguP78AnThx
QtnZ2Tpw4IAGDxlqlPfz7avx4wOVmJSkxKQkjRs3Qf37+Vrcfn7F7asglj4E cr32N2ToMzp8
+LCysrJkMpmUnZNdor4AAAIggBuiXf+56jtylvG+78hZGvifNwvdvn17b7Vq db8aN2kqZxdn
zZgx3SibGDhB3u291b1HT1VzctbQZ55Vbx8fo3zmzGC5e7irWbPmatasuWrU rKHg4CCL28+v
uH1db6XZ35O9esm33wA5VXfR5MlT9f77q0rUFwBQUtwDiHKFewBL56fDCRr4 nzf187rJRtjL
e53fqfMVjBD42cppyko/U+g9gDfyHjTuccM/hXsAUV4wAghAkjR3RqBxD+Dc GYFGEMz/M2/q
N28qGABwe2IEEOUKI4Cl99PhhBLXKWj0T2IEEOUXI4AoL/gqOABFhrnSuNHh jPAHAGXDFDAA
AAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABw8/BNIAAA AHcYRgABAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAA ACAAAgAAgAAI
AAAAAiAAAAAIgAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABA AAQAAAABEAAA
AARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABA AAQAAAABEAAA
AARAAAAAEAABAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAAAI gAAAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAgAAI AAAAAiAAAAAI
gAAAACAAAgAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAEAAB
AABAAAQAAAABEAAAAARAAAAAEAABAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAI gAAAACAAAgAA
gAAIAAAAAiAAAAAIgAAAACAAAgAAgAAIAAAAAiAAAAAIgAAAACAAAgAAEAAB AABAAAQAAAAB
EAAAAARAAAAAEAABAABAAAQAAAABEAAAAARAAAAAEAABAABAAAQAAAABEAAA AARAAAAAXOX/
AVoxC2t2MkkCAAAAAElFTkSuQmCC
--------------050408040500070401030408
Content-Type: image/png;
name="PeopleProperties.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="PeopleProperties.png"
iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQkW HLOzlgIAACAA
SURBVHja7N13dBRVA8bhd0kHEkISIPQaikiT3lF6R0VAAUV6750AIl16UQQE UQEF/CwgIkVB
AYEgVYrSkhh6EqSm7ma/P0KWLKRsIEESfs85e7I75c7MndmZd++UGMxms1kA AAB4bmSiCgAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiA AAAAIAACAACA
AAgAAAACIAAAAAiAAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AEAABAAAAAEQ
AAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiA AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AEAABAAAAAEQ
AAAABEAAAAAQAAEAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEA AAiAAAAAIAAC
AACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAACA AAgAAAACIAAA
AAiAAAAAIAACAAAQAAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAEAABAAAAAEQ AAAABEAAAAAQ
AAEAAEAABAAAAAEQAAAABEAAAAAQAAEAAAiAAAAAIAACAACAAAgAAAACIAAA AAiAAAAAIAAC
AACAAAgAAAACIAAAAAiAAAAAIAACAACAAAgAAAACIAAAAAiAAAAAIAACAAAQ AAEAAJDB2adV
wRvXLtULDv6SpIKt36OmAQAAUsjB0Tl9BcD4Ar8nAAIAAKRUsTdmpEm5nAIG AAB4zqRpC+Cp
6MLUMAAAwGMqlkblGsxmszktCr4ZcpW1BgAA8ATcvbzTpFxOAQMAADxnCIAA AADPGfunObHg
q5d0+vgf1DoAAIANWr3VK/0GwPjBr06j1qzNNPDbtu+pX+qMdUIdwYbjUFod UJG8jWuXWt6X
KltJObzzUin/kTS/CSTuS8fOKm0PCNQvdcY6oY6QdPhr+WZPKuMZsunLZYRB G6TVTSBpGgAJ
fxwQqDOwTqijZyH8tejQg8p4hv3w1XKCYEYJgGdPHCL8cUCgzsA6oY7++/DX vjuVkV6C4LpP
CIFPKQDaU7UAgIzMLDOVkE40b99Nm9et0OnjfxAE01iaBUBa/2gRoM7AOqGO /itxrX/N23WV
zATAdBUC23WVJG1ev1KSCIHpLQAm5Pv/jZEiIiRnZ0nOkrO7nOUuOd9/yV1y dpazs7skZ9Ut
nY01hDS1+9OmSfav/e4WKglIx8yEv3Sr2Rvv6scNnxICM0IAVESEyndZpXLZ nHQtMvKR3rmc
nLRj7ymVqVRUkvTr/quqW9qJtYQ0Y4oxqNnQgwn2O/vTAO3+tCkh8Bll2NZW q/w8VaSwl5yc
7VXcJ7fcy/Z+bpa/3+L9OnIzh83DV3AP1of9q7HhgBCIpx8AI+RseR/592nd /ekHhe3/XZmr
1VDWJi2ksuWl+9dqGCRVq+b91ENgYZ9S8j97+rH74+msh1QLgGZDov0cs3iq aMnqz1wIZBuM
DX+RmfOp36ROkqQDR9115q8vVKXs87N9H/nXU6XDdto+vLnuc7k/SKgF8N1h C2Rnl0mZDAZl
ymQnO3uD7DLZy94+k+zs7WRvby97OzvZO9jF/rXLpFG92rBj/o80bdtFW75e RQhM1wEw4v4X
UtLdnzbLPeiiCpStqNtBF3Xzp82KKVtOMksGg2SQgab7VLDs92B9v++sIm8H y8kth4oXyKnX
qxRUrYIOVI4ko9mgmHibWYU+y3RkSU8ZZJZjFk9JUpGS1bRtWQs16vkDgfwZ Cn8eL3dSq/E3
9L2viyoWDNb2o8bna6XEGGVnZ6fR00YkO+iMsbOkGONzue0mdBypXKmEqpR/ USajSSaTSVev
XFd2D3dFG42KNhkVY4yRyRQjY0yMYmJi5B90NUMej3J559a1q1fSdBpOzi6W 95ER4Tb3e1iT
19/RT//7jBCYXgOg7rcAxpilsP17leeGs2IUrMwy6/LZv2QeMVaSlEkGGSTF SIpI5qAUx9XV
VXVq1dSk98bL08ODNSup2aTvFe3sqemda6hB2TySpM2HgzRtw0F1bVhGr5d1 TTcH/TQLgCaD
Yu4nwIr9luvQhz1iPxuknOX7W+4dPHa8us1BSZIMBoOyZMmiAvnzqW6d2urW tUu62S4TWu/P
avj7ztdFprC7igm7owv+IaqdwDh37tzRvAWLtX3Hz7p67ZqyZMmsKpUr653O HVWzRvX0u/Ga
jbKzj/137iWyxv6yNtz/gS2D4f4bsySD7O3tZEgmAF644K9Zc+dp/wE/hYWF qWSJEurVs7ua
NWmc3hPgI50O/vG3boXelSGTQZkyGZTJzl72l4OVyS6T7Owyyc7OLvaVKZPs 7TNJMiR6I0mu
3Hks793cXFWvbj1Nnz5NXp6ez1bYy51H165ctup27crlp3KDTFx4NhgMigwP iw1/Lpmtutsy
H01ee1s/ffM5ITA9BsC4FsAYc4xc5aC73k5ydXbT3Yjbco3KZtlxZZJBBoO0 a6e/GldM+kaQ
uANTSGiopk6fqXHjJ+rjDxc99yt2yIZzMmTNoYPTX4v9ot8MVy53FzV/Kb88 XZ01bOVuvV62
xnNfT9EPtQBa3sfEJY7YP1mzuNhcZtw2GR4ergv+Afr6f9+qWctX9b/1a5Uv Lzut1Ah/kvS9
b2aZwu7IFHZX4ef/UJcqoQk+7GPAoKHKXyC/1q5epTy5c+vmrVvat/+AFn24 JF0HQIMpWg5O
sbvwwdN+UHhYuO7cuq07t+8oPCxMW78aI7MMMpjNsre3kzkyOvFtNiBA7Tu+ rcED+mna5PeV
OUtmnTp1Wss/WZnuA2BCj4ApX9ZHw3u8avl84PgFVS1bJNEyZi//NslHyVy9 cin2OBQSoonv
TdKIESO1cuUn6aIunm4WN8eGPT3aMmvrvDV+rbO2fvMFITAVZHqqATDesTXb +5N1r+KLOnsn
SHcrvqhs709WjNksmc2yM0h2Srr172Fenp6a6DtOv+3ea9WSseLTz1S9dj0V Kf6CJCkqKkpj
xk1QmQqVVaZCZY31naCoqCirsj5e9okqV6ulUmUqaOTocYp8qH8ck8mkmbPn qlLVmir5YnkN
HDxM9+7ds5r+mrVfqc7LDVWidFk1atZSfxw6rK+/+VavNGyq4i+UVfNWr+rv M2cs4/z62241
atZSxV8oq1r16uur9RtSXM/fn7ytVTtPaPWQRpKkmmO+0erd51Wp31L1X3lA 1XxyKPJ2cIrK
/CcoSN179VXpchVVsnQ5vdO1h0JCQ3Xz5i1VrFJDt27dthr+5s1bqlytlm7d up3ouHEio6I0
YtRYlSpTQVWq19bS5SusykpunUVHR2vKtBmqWKWGylWsouUrPrV5uUym2Ffl /su1f0EPmUzS
6GW/qvKA5ao8YLlMJskYI2XOnPLrUF1cXFT6hVKaOH6s2r/xuubMW2DztmPr MiVXtwl9B5Ia
J64Fs7BPKasW9vjvk1sfhX1Kae2X61SrXn3LNn7q9F+Pvd/45YvR+uWL0dp+ tZh2/h176YI5
MkKmsDuKuXdH4ecPyuHOBZkbfZ3g+PsOHNCYkcOVP18+2dnZydPDQy2aNdVX az63eX08Tj0n
tw6ftI7MMdFycIgNgDOGN9eCCW21Yk5XbVg+SD+sGaNok2Q0mRVlMsvBwT7J FsD5Cz9Un149
1PGtDsqe3V1Ojo6qUL6cPlq8INXWe1L7Nlv2y7auqwRbAB9+Sdp7+Kz2HT6r vUfPyhhj0t77
72Nf5y3v9x09m3g5cSHm/nsvT09Nmfy+dv36q6Wbd+68Wrp0mSq8VEm58+ST zGZFRkRo2LAR
8ileQj7FS2j48JGKjIiwGmfx4g/1YplyKlykmAYPGWrV32Q0aurUaSr9YlkV KlxUvXv30d07
dxOdpnfu2KDknTtv7Pt4w9la5i+//KK6dV9W/gKFVKlyVa1ZsybxOon3igi7 awl9ccEvfvgz
GAyKCLtrU1lxr8avdtLp438o+OolUlx6CYCSs45u36f13+3Rz+dv62jJV3S+ y3j9Xa6JDl2P
0c49J2QwSIf/OKcjhy8oIiIiRaXH38jiHDt2XD98/40unDkV+0tu7nxdvXZN O3f8pF+2b9Hl
y1esDsyS5HfwD23Z/L1279qh4JAQzV+QcIviRx8v08mTp/TD99/o0IG9cnJy 0vQPZlsNs+f3
37Vu7Rc6dshPbVq1UJduPbVr129a8/mnOn7YT82bNdHocRMsww8dPkpDBg3Q n0f/0Pq1q3X0
6PEU1/LhgBsq62lQ4ZxZ9e6SPSpeIKeGtXxRjk+wtrv17KOuXd7WYb/fdXD/ HhUtUkRTps2Q
u3s2NWnSSGu/Wmc1/Ffr1qtVy+bKls0t0XHjzJu/UKE3bmj3rh3avOlb/b5v v/Wv72TW2fyF
H+rsuXPavPFb7d75s65evWp7C2BMJhnNZu2Z313VBi2X0WzWpK51tHd+d+2Z 110mc4xiYsxy
yfpkvzQ7tHtDe/bus3nbsXWZkqvbhL4DSY0T13rpf/Z0oqd9bfkO7T/gp/+t +1LHDh1Q40YN
NdZ3wmOHv/w1+ilftb7KXamnclZ4V5/P+cLS8hd24Y8kw58kVXzpJY0eN0FH jhxVZAJPH7Bl
fTxOPSe3Dp+0jgwmoxwcYwPx6NmbNXr2Zg2b8o16j12tTgM+1uvd5qpFx+ky 3g+AiolKtKx9
+/arZfOkH4n0pOs9qX2bLWWnZL/7cKvTwy+j0aSaL/mo+ks+qlneR6Yoo2re fx/7Kmp5X728
j4zG6ATLiQsy8T8b4tqz4vU/fOSItm/dossX/5HZbNb0GR/o6tWr+n3Pbu3d /ZsuXbqkGTNn
WY2zf/9+7fx5u/z2/67g68H6YNZsS/8FCxfp+PE/tX3rFv15/KicnJw0ecqU RKd55VKQJOnK
pSBduRSU4LwnV2b/AYM0Yvgwnf37tL775msdOnQ40Tp5+BV+706Cx2eDwaDw e3dsLif+q1Gb
joTAJz2LkFb/Cm7j2qWPPLx05pyZ6jB6hoplsYu9pEKSMeSsHLx8JBlklln7 959RtWrFteLr
k3qnfq4kpxH/WqXQGzc0feYs3b59R8uWLLb0P7D3V+XMmdMyTtWadfXVms9U uFAhSdIF/wC9
1fkd7d/zq2WcnTt+UqGCBS2nRt7q3EX7du96ZJq16tXXZys/UdEihSVJwSEh at7yVfnt220Z
9rDfPmXP7h7bAhoRoVJlKjzSrUyFyjp7+k9JUo06L6t3j+5q1LCBvL0TX/6k Hg47cXOAdu0/
pmNLesnQ7mOdW9RRRXO5ytDuY+2f1lY53Zz1xqQ12jGptc31+0hrbkSEatWt rz8O7NWFC/7q
/G43/frzNtnb28toNOrlBk20bu0XypMnd5LjSlK1WnX11ZrPLXV+wT9A9Rs1 tUw7uXVWvXY9
rfl8lYoULpTk8iRUZ1/Mf1Xth8eWU3fYCv06p5ve/2y3fj4e2yr729xu2jct 9lEbdUb8nex2
n1idRUdHq3S5ijpz6rhN205Sy2TreknsO2DLOA+XH7+bLd+hIwf3y909W4Lb uK3bcVz4kyRj
lFFRkZGKDI9UVHiEAg6sUod6rsmGP0m6ffuOlixbrp9/2anAwH/k5eWpxg0b atCAfsqWzc2m
9fE49ZzcOnzSOqo5cqcaFLitdwd2U06zyXICzWA5pXb/vUGauWCVfg5y054P Xk5weXxKldHp
P4/I3j7xq4KedL0ntW+zpWxb97tx4h4E3ahNx0eWZebyTapVqYyljszx6i0h e/74U6N6tEyw
X+68+S0BKzQ0VO9Pnqrbt2/p05UrLP2PHv5DuXI9WObyL1XSN19vUJH7y3D+ /AW1bddeRw4d
tIzz+57dKnx/27lwwV9t27XX4T/8JEmVq1bXl2tXq1jR2EemBQcHq37Dxjp+ 9HCi04w/nwl1
S67MipWrql/fPmrapLFy586d8jMiWVwfOe0bFw
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427183 is a reply to message #427180] |
Thu, 05 February 2009 10:23 |
Miguel Angel Garcia de Dios Messages: 22 Registered: July 2009 |
Junior Member |
|
|
This is a multi-part message in MIME format.
--------------080806060604020202060300
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Ih Ed Merks,
I've changed the property volatile of the "people" ERefeference of
"People" class, which is my container of Person. Then I can generate
instances of Person from "people" EReference but now I have a new
different problem: with the "OCL Interpreter Console" plugin installed I
have made many OCL queries but I've obtained an unexpected value
attached as a screenshot: Having three instances of Person, the OCL
query "Person.allInstances()" returns an empty result. But if I write
"self.name" (being the context an instance of Person) I obtain the
desired result ('Ada' for example). I think I have any wrong property
value because it seems like Person isntances are no related ro something
similar.
Thank you!
Miguel Angel Garcia de Dios wrote:
> Ed Merks,
> Yes, I did. I marked the feature as volatile.
> I think it cannot be so complicated. Maybe any value of a property is
> not correct so, to ensure that I'm going to attach screenshots for
> everything (it is not so much).
>
> I am really concerned with that because I think it should be easier.
> Thank you in advance!
>
> Ed Merks wrote:
>> Miguel,
>>
>> Did you mark the feature as volatile such that no code is generated
>> for it?
>>
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Ed Merks,
>>> I have the containment property of my desired container class in
>>> true, the GenFeature properties are also update: containment=true and
>>> the GenEdit properties contains children=true and create children=true.
>>> I hope you can be more explicity with the solution of my problem please.
>>> The last error I've obtained is when I create My.container file from
>>> a Poeple object. Hten I click on it and I get the nex error:
>>>
>>> Unhandled event loop exception:
>>> java.lang.UnsupportedOperationException
>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>
>>> at
>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>
>>> at
>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>
>>> at
>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>
>>> at
>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>
>>> at
>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>
>>> at
>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>
>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>> at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>> at
>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive Method)
>>> at
>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>> at
>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>> at
>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>> at
>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>
>>> at
>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>
>>> at
>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>> at
>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>
>>> at
>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>
>>> at
>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>
>>> A lot of thanks!
>>> And always sorry for my bad English.
>>>
>>> Ed Merks wrote:
>>>> Miguel,
>>>>
>>>> Comments below.
>>>>
>>>>
>>>> Miguel Angel Garcia de Dios wrote:
>>>>> Hi,
>>>>> I think my question is easy for us but i have spend too much time
>>>>> in it:
>>>>> I want to create a simply ecore model and then i want to
>>>>> instanciate it and check some OCL queries on it.
>>>>> My purpose is to create an instance of an ecore model which
>>>>> contains as instances of a class named Person as I want.
>>>>> These are my steps:
>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>> -People, which contains an EReference with multiplicity
>>>>> 0..* to the EClass Person.
>>>>> -Person, which contains only an EAttribute named "name"
>>>>> with String type.
>>>>> 2.- Create automatically the .genmodel file from the ecore model .
>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>> 4.- Launch an Eclipse application from the project.
>>>>> 5.- Create an instance of the ecore model.
>>>>> My probles is in the last step: I begin the model with an instance
>>>>> of People and hten I desire to create as number of instances of
>>>>> Person as I want but I cannot do that. I don't know the reason.
>>>>> I've seen the EXTLibrary example too many times but I cannot get my
>>>>> desired result.
>>>> The lack of there being a containment reference is the likely
>>>> reason. And note that even if you change it in the Ecore model, the
>>>> GenFeature properties for the feature will *not *change, so you'll
>>>> need to update those as well to support children and child creation.
>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>> as many Person as I want. That class is People. I've tried many
>>>>> possibilies changing the class properties obtaining different errors.
>>>>> Can somebody tell me how to create an ecore model that has an
>>>>> EClass which can generates as many instances of another class as I
>>>>> want?
>>>>> Thank you in advance!
>>>>>
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
--------------080806060604020202060300
Content-Type: image/png;
name="OCLQuery.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="OCLQuery.png"
iVBORw0KGgoAAAANSUhEUgAABkAAAASwCAYAAACjAYaXAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQoK F8BQrI4AACAA
SURBVHja7N13XBTH3wfwD6D0Ir1YAMFCNGqMXYMYe6+o2GNXwAaoiAXsvWs0 MbFFjbHEHrFE
JMaujy3qTzSAhXYUjYKUO+75A1k5OLgDEY7j885rX97tzs7Mzu6R2fve7GhI pVIpiIiIiIiI
iIiIiIiI1Igmm4CIiIiIiIiIiIiIiNQNAyBERERERERERERERKR2GAAhIiIi IiIiIiIiIiK1
wwAIERERERERERERERGpnQpsAiKikvU6PgYAIIp5hUf3bqJRq3awq+bEhinj op4/w81L54T3
LvUawdKmMhuGiIiIyq3QM0cV9omy+8TdPcaywT6j4/t+YD9VRT4HlSxs2ChE RCVIQyqVStkM
REQl53V8DIMfai5nMIQ3mERERFSeFRQEye4Tdxs4hg1Vgk78+iP7qaX4OWAA hIioZDEAQkRU
wsIe3GLwo5zIDoTw5pKIiIjKM3lBECH4MWA0G6iUnNi/jf3UUvgc1Kj7NRuD iKgEcQ4QIiKi
z8SumhMatWqHR/duIvTMUYhiXrFRiIiIiHKQ8r9S+6/rgFHspxIRkdrjCBAi ohJ2bO9Wjv4o
hzgahIiIiMqz0DNH4dqhp8z7rv1HsmFUxMnffmY/tYQ+Bz0GjWNDEBGVIE6C TkREVAKyRoNA
mBuEN5dERERU3vH3mKqji/t3OHVgO/upRESkdhgAISJSISfXuRa4vevkUDZS GcYgCBEREZU0
U0tbpdIliaJLJB9l9OrdR+m0R34/zJNcTNQ5CFIWPwdERFQ8GAAhIlIx7Sde kLs+7LQ3Tq5z
ZRCkjGMQhIiIiEqaopEWGhoaJZqPMvnt2XNC4f6DB3cr0VEkVtY2iIuNUetr pXO/Efjj4A61
7Keq6ueAiIg+L06CTkSkQsRSDWRKpXIXbQNzOFSvq3CUSHlgampaamVraGgI S2G25ZRzcnRO
OElERERlRc6+jrylsKRSqdylOPL4HEtxlWdlbfNZ6qetoysshdmWe+nUdzj7 qSX4OSAios+L
I0CIiFSIWKKJzHzu+bQNzAEADtXr4tCqNujrcyHffExNTVGrVi1cuXJFphMu lUrRrFkzPHny
BElJSSpxzKampoWuS2nXPfsGWENDI9/XinAkCBEREZWU4vpStth/+V5AfmJx JoYP7wEDAwNU
qmQCMzNzWFpYwtLSAmbmZmjWrEuBeVjb2uWbd2x01Kc0glLJrG3t8i0nNjpK qXwKykOZfmra
+xQAgI6evmw/VYmyO/UZhtOHd6lVP1VlPwdERPRZMQBCRKRCMqSakEhk10U8 mwsHp/kw+9JL
WHf/fx0V5qWvr4/g4GB06tRJWHfq1CkYGBiwoYuJVCoVbnCK8vgFBkGIiIjo c1PluQikyL//
lJEhwbZtvwPI/qEJoPFhDw2NrO0F5RET/XH0go1tZZn3BZX7KXX+lLTFnUdB /VRl8+zYZyiC
D+9Wi34q5+QgIiq/+AgsIiIVkiHRQCYgLLdv/A18+Dfn+gyJ4l8VTZo0CWvX rpVZt3btWkye
PFl436VLFxw+LDtx5MuXL1G7dm38999/OW5AMxAQEABnZ2c4ODhg48aNwra0 tDRMnjwZ1apV
Q7Vq1TBlyhSkpaUJ201NTbF9+3bUq1cPVlZWcHV1xf3794Vt2f/mfKxVREQE PDw8UKVKFdjY
2KBfv34QiUQyeSqTPwBIJBIEBQWhRo0asLW1xahRo/Du3TuZ/Tdv3ow6derA zMysUDeT2e9z
3lTmHAmiDD4Oi4iIiMotqVT+AiA9Q4zRo3tj8uQhmDt3Itatm4M9ezbg7Jl9 uHkzGOkfAiD5
5pErv+zXkRERGDZsBJyca8DeoTo8PAYjXiQStv/5559o3boNqlZzQKPGTbFn zx65+dy9excN
vvoaP/64TWGZuRcb28oKy7OxzQo42NhWlklf0JKa8k5hPzU15Z1ybfZh6dh7 CPupRERUpjEA
QkSkQjIkmpBIpMJiZhaMw4d1YGYWLLM+Q6L4z3ePHj0QHx+P69evAwAuXbqE pKQkdO/eXUjj
4+ODZcuWITMzU1i3fPlyjB8/HsbGxsK6pUuX4vHjxwgNDcXdu3cRFfVxKP7C hQsRHR2NW7du
4ebNm3j58iUWLVokU5dLly4hODgYERER6NatG6ZMmQLg46OskpKSZB5rNXDg QEyYMAFPnz7F
kydPUKNGDQQEBOR7rPnlDwCrV6/G3bt3cfHiRYSFhUFXVxfz5s2T2f/WrVu4 ePEiEhMTlbxX
l+Y7B0jRR4IwCEJERETlS0FzbaSnSbBm7X4sWvQT/PxWY9SoAPToORbNW/RB rVpuSE+TFJhH
fnN3DB02AmPGjMKDe3dx7+7/wdnZCXPnBQnbvbwnw8/XB2H/e4Qjhw/i1q3b efI5c/YcBg0e
iiWLF2H0qJGFni8k57b8yot+9QIAEP3qBaJfvVB6HpD3yW/z7ae+T35bpLlF OvQazH4qERGV
WXwEFhGRCkmXaEDyYRIQTfFNHD6sAy+v9ti48Sy8vG4gs0IjIZ0impqa8PLy wtq1a7F3716s
XbsW3t7e0NT8GDxp27YtDA0NcfjwYfTr1w/Pnj3D+fPnsWzZMpm8fv31Vxw9 ehR2dlnPUl68
eLGw7eDBgzhx4gQsLS0BZAVLevTogfnz5wtpVq5cKYza8Pb2xooVKwqs+9Wr V4XXurq6mDt3
LurVq5dv+oLy3717Nw4dOiTUfd68efjmm2+watUqIc2iRYtgYWFRqueej8Mi IiIi+ig1VYyZ
M4fkOweIvcM3Rcr3YsifMv1M/5kz0Lhpc5l1sXFxSExMROXKlbFqpWy/dfuO nVi3fgN+2bUD
DRo0+OTjVFSequjQazDOHNnDfioREZU5DIAQEamQ2t/44+GdK8LIDy+v9njw IEMIgvTpcwKJ
iR1R+xt/pfLz8PDA0qVLcejQITx48CBrSH0uPj4+CAwMRO/evbFkyRJMnjwZ enp6MmliY2Ph
4OAgtwyRSCSzzcHBQeZxVYDsI6v09PQgFosLrPf169cxb9483Lt3DykpWZM3 FjSZYEH5R0dH
o0mTJjLpc+dlY2NTqPOU30iP7JEhRRkFAjAIQkREROVLQX2mtDQxgubvyOp7 ZSfL7sJJgfS0
DIV5yCvr5q1bWLhwMR788wApKe/z9O22/bAVa9atw8pVq2FsbIT5gYFo376d kM/WH35Af/d+
qF+/vsKyC9qubHmF7VfqGxoX2E9Nefdfkc9X+56DcPboXvZTiYioTGEAhIhI hZibnwEAmeAH
gFxBkOAPqd0U5qejo4Px48dj/PjxCAgIgI6OTp40nTt3xqJFizB//nzcuHED mzdvzpPG2toa
ERERcHZ2zrPN0tISkZGRqF69OoCs+Ts+dTTFiBEjsHDhQrRr1w5GRkZ49+4d qlWrVqS8rK2t
cfbsWdja2hbLOcod4Mg9uSSDIERERKSuCvpBSlEoCoAsXjw63xEgpqaNFOYh r6yx4yZg7pzZ
+LaNGwwNDZGcnIxaLnWE7fXr18OOn3+CVCrFhQshmObrhzu3bwr5HDpwAO79 B8DExBgTxo8v
8vEpW15h+pQGRiZK9VOT374p8jlr18MD547tK9f91OL+HBAR0efFAAgRkQpJ SOgADQ0N9OkT
/OGxV1lBkLp1K34IfqQhMbFjoW6EpkyZIjMnhrwOvI+PD0aNGoX169dDW1sb QNaoiux5OTw8
PDBjxgxs2LABBgYGWLZsmfAYrD59+sDf31+YGH3mzJno27ev0vUzMTFBWFgY atSoIaxLTU2F
rq4udHR0EBkZiQULFhS5TUeOHInJkydj2bJlqFq1Kp48eYJVq1bhp59+Kpab n+xz8SlBj9wY
BCEiIiJVkySKLv5MCwyAZMDHZ0t+OyItTawwD3llpaamQldHB9oVK+L58+dY tnyFzPaJXt6Y
OnkS7O3tIZVmQiKRyJRha2ONQwd+g/tAD0jEEnh5TizS8SlTnrGxMZ49fQon J6ci9VOT/3st
v5/6iX3Wdt0H4tzxX8tlP/WzfA6IiOiz4iToREQq5NLp1bB3aQYj63nCiI/s 4IeXV3sYWc+D
vUszXDq9uljL1dLSgpOTEzw8PORunzFjBmrWrIlWrVqhQYMGqFKlirBtzpw5 sLKyQsOGDdGw
YUPY2tpi9uzZSpft7e2NNm3ayDzGasOGDQgICEDlypXRvXt3NG3atMjHNmXK FDRv3hw9e/aE
nZ0dRo8eja5du35Se2loaOS5kcz+RV1x/SKME6MTERGRupPm8x8ApKVJkJYm zmeRCAEQqRL/
5Uy3csUyBM1fgBq1v4B7/4Fo1Ohrme0dO3TAqLHjUaP2F1i4eAnWr1udJx8r a0sc/O1XHDh0
CGvWrc+3zMrVHPIsuetTUHnjx41Fp67dhf2UOc7s/ui7/5KE9e/+S5Lpp0qL 4b+23Qewn0pE
RGWChrS4fq5KRERKObZ3Kxq1age7anl/yTVvek8Mm7ZfeJ8imo/Dh3XQp08a 9C3nCut3rR6A
oOVHi61OgwYNQt++fQs1coNKRtTzZ7h56Rxc6jXiSBAiIiIqs0LPHIVrh54y 79t26y837YBB
QzFyZNYPfqRSABpZ039IAUSGnwAAODh0w8/bp2H/3t1s3FJ0/sRv7KcW8nPQ Y9A4NgQRUQni
I7CIiFSIJFMT21d+HIXRvvsU9OkTjMTEjti/M+fojOIZwJeZmYndu3fj33// Re/evXkCVBAf
h0VERETqKr/fY/66Zxd+2LYDVap2kVn/8sUpjB09AgDww7YdBeZBJePbru74 8+QB9lOJiEhl
MQBCRKRCFq78XeZ9SEiIcGOXe1txMDc3R7Vq1fDzzz9DU5NPRVRVDIIQERFR eTN29AghyJFz
Xc7XOd9T6WEQhIiIVBkDIEREKszNzQ2A22fLP3uSc1J9DIIQERGRulE0emPM qOGFSk+lp02X
frhw6iD7qUREpHIYACEiIiojcgZBHt27yectExERUZnGgIZ6cevcFyF/HGI/ lYiIVAoDIERE
RGWIXTUn9BjkJEyODvBXdkRERFRGMQCidtw69QEAhJw+zH4qERGpBAZAiIiI yiCOBiEiIqKy
TgoGQNRV6069cfH07+ynEhFRqWMAhIiIqIzKPRrk0b2bAMCbTCIiIiobOAJE rbXu2AsAcDH4
CPupRERUahgAISIiKuOyAyEAGAwhIiKiMoNzgJQPrh16Cq9DzxxlP5WIiEoU AyBERERqpKBg
CBERERFRacovGEJERPS5MABCRFQK7Ko5sRGoRK6z7GAIERERUWk6tncrG4Fk 5AyGlBehZ47y
xBMRlTBNNgEREREREREREREREakbjgAhIipFr+Nj2AhEREREpLYqWdiwEcqg O3fv4ZvWbfD2
dQIbg4iIyjSOACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdPgKLiEiF 3NzTTe76RoNP
sHGIiIiIiIiIiIgKgQEQIiIV4zrxmsz7sNPeuLmnG4MgREREREREREREhcBH YBERqRBJZt51
2gbmsK3eBNd3d2MDERERERERERERKYkBECIiFSLO1EKmVIrjof/DwbMPkJmZ FQDRNjBHZecm
+HtnDzYSEREREVEh3TjYmo1ARERUDvERWEREKkQiyVo6taiZ9T5TCvN6XtCu kBWvNvny/wqd
p2MNF+G1vr4+vmpQH4FzAuDs7KTWbfn27VusWbcRZ8+dR0xsLAwM9NGkcWMM HzoYLVs0V7rt
wsMe8cIkIiIiKsNuHGyNdmOv4dwPTdG438Viz3//30lYdyExz/rJbcwwoKUp T4AaMLW0VSpd
kiiajUVEpGIYACEiUiFpUk1kZEpx/moYUtMykJySDofKZjD7u4+QxnlEcKHz zf4S/+3bt9i5
ew8mT/PFyWO/q3Vbek+ehqrVqmLvLztgZ2uL12/e4MrVa9iw6XulAyBERERE VLZsPyI7n16t
FB9AI+t1RoYEl/e1QguPS59UxuWtDQAALcbdwYSdr1BVJx1BfZ3QvK45wl6+ Q/zrNPwT9hKX
771CyNMUfD+8stq3+6nLT5VO26WFc7GU+So2ASKRCKmpqdDV1YWlpSUqW5t/ luNLEkXD1NIW
UqlU7nYNDQ0GP4iIVBQDIEREKiRDrAmxBGjdqAagIYW+jhYuz3VGo2XhQppz MxzRyO9KkfI3
MjLCmNEjsWHTZgCARCLByjXrcODAIbxLTkaHdm2xZNF8GBgYAAAuhv6FRUuX IyIiElZWlvCa
OB4D+7sDANLT0zEvaCFOnPoDANC9a2cEzp0NbW1tAPJHT+Rc51jDBbNnzcS2 n7cjNjYO/z55
iIyMDCxbsQq/HzkGsUQMr4kTMGbUd0rVNbcr165h88Z10NfXBwCYm5mhW5fO 6Nals5CmoDyz
R85k/8uRIERERESqbf73wfimWV0AWTEP6Z2+6DTxCABAmhKBTt8dBDSAo5ub oc13Vz+prM7+
j/HHktq4G7MP1Vz08k135+p94BMCIAGbQoXXizxdVbr9G3zbSmGaO39eKpay XsUm4MWLF6hS
pUrW+dbQQHx8PAwNDWFioPNZji9JFA0NDY08QRAGP4iIVBsDIEREKiRDogmx RIq/bz+FnaUx
tIK7oLXPXGTEbYc4JRUJz6NRrVVvPNneEUB2x1sDNb9TblTI27dvsWPXL/jC JetL/c1bfsA/
/zzEiaOHYWRkiMD5i7Bk+UosDJoHAJjmOwMLFwTi2zZuSIhPwPqNm4UAyMrV axETG4sL505D
KpXCb7o/Vq1ZB/8Zfkof792793Di6GGYm5kBANau34Swp09x8tjv0NfXx7oN G4W0iuqa29cN
G2JmwFx8N2wIvvjCBTo6eW+ECsozPOwRH4FFREREVEZMXfo7HB2r4f6TGEjx YdCH/ia8X90V
ADBgzDL89uMMQAp0nnirSGVkj/zI1tn/MbCkNjb87wdUrKgFaUYqEt68x+3H MXgV8wbxr99D
w8b+k4+ttnMVPH76EgCw6rd/hPUSsRgZGRKIMzIgzhBjwYSWpX4eTu0+qDDN tgMxAIDR7q2K
XI5IJEKFChUQE5OVV8WKFVGpUiXo6uoi4mU0YmNj8f79e+jp6cHa2hoOVWyK 5fhyB0EY/CAi
Un0MgBARqZCMTA2IJUDT+k4w1tfCw9NARcN6WZ16Q6CK1YeEbQfL7HdtYwfU Gnkm33xzzgNi
aWmJwwf2AQD2HziInT9vg42NNQBgut80dO3eWwgq6OjqQBQnQlJiEuzsbLF0 8QIhn6PHT+LX
PTthYZ41zHzunAAMGjq8UAGQ2bNmCMEPADh85Aj27Noh1GdOgL+wTVFdc9uy aQO+/+FHzAiY
g8jI57CwMEfH9u0x2dsTJibGRcqTiIiIiFTPzWu7sWXx1Hy2RmJvYGVIUyKQ +l6M3tPuFqmM
y1sboE7rjqjyRVY/PPP1dQBAO49RwL6xSK59R3gEloWFKf4Je4nwV2m4Efv+ k48vO/gBAD79
66j8+egytJ/CNMoESgqSmpqK169fC++NjIxgZmaG6OhoREREwN7+Y+ApIiIC AIo9CJL9moiI
VBsDIEREKiRdoglJphQ37z9D26Y1kZkpBTJSPozhB6AhBaQaH/6F8DxjSaa0 wHzDwx5BKpXi
+YsXmOE/G//88whVKldGbGwc2nXsIpM2uzMPAN9vXI8Nm77H2g0bYWRohLmz /dH22zYAgISE
BFSrWlVIW61qFSQkJBbqeK2srGTei0TxqFa1ity0iuqam7GxEWb4TsMM32mQ SqUID4/Ajz9t
h9fkqdi946ci5UlEREREZc+gwFf4OcAG/Wc8+KR87J3qQfTkME7+sh8AMGKm L3av3ozwBmdR
N7+dMjM+qcxFnq4I2BRa6MdfxcTEYPjIsbh+40a+aZo0bozgU8c+S5tb63ze cyqVSmFsbAxt
bW1UqFABxsbGsLS0xNOnT2FgYICYmBhkZmYCyBodEhUVVWwBEICBDyKisoQB ECIiFSLO1IAk
U4qv6lRHJgCJBEDGG0AqFYIdHwMfGlnrs9MpoKGhAftq1bB21Qp0790PrVo2 h6WlBX4/sB/W
1lZy96lf70ts27oZUqkUF0P/gt/MANy48hcAwNzcHC9evoTDh19XPX/xEmY5 RnNUqFBBmJAQ
AJKSXiuso6WlBZ6/eInqjg5ytxVUV0XHXr26I+bNmYX6XzcpljyJiIiISFX6 0FoK01RznfXJ
5byOvIeTvxxDr8BHOBLogh1LV2KFeBcKGu+gkSku1mNVdk4QGxsbHDtyEDP9 A7Bj1y95to8Y
NgRLlyz6bOdE8zP/psjJyQkxMTGoUqUKdHV1oaurC21tbZibm+Ply5d4+/Yt UlJShCBIzvsU
IiIqXzTZBEREqiNTqoFj67vg2PouePrvC0gkmUBqApCWCKR+WNKScrzOei+R ZCpdho2NNZo0
+hpHjp3AkEEDMTNgDiKfP4dYLMb/njzBpCk+QlrvKT54+vQZMjLEkEqlyMwR aenetTPmL1yC
+IQExCckIGjBIvTo9nE0hUvtWvhh289ITU1FbGwcZs8NVFi3vr17IWjBQsTE xOK//95iwaIl
wjZFdc1t4OBhOHHqD4ji4yGRSBAdHYOly1ehQf36SudpbGyEZ/+G88IkIiIi UmFpGRUgyUSB
S1rGp/3+s8W4OzjyyzF4LH8mrOsV+Agrqo5B09huAIB7m6uibrK/zH5SSXqx HGPAplAh+FHb
+eOI6UU7byNo2zXM+f7vPPvoaGtjzaoVWLNqBXS0tfNd9zloKVg+lZWZMerX r49Xka9w8uAt
bFt3Aft+voD4mHjUqlULNjY2MDExgb6+PvT19SFR5hdjRESkljgChIhIhYyY tlfm/e1MZAU6
NIRnYOWY+/zD47AAZGYWrpwB/d2xYtVqHD18ABrYhsHDvkNcnAiOjg7wmjhe SNexfVuM9/RG
5PMXcHR0wOpVy4Vtfj5TMTdwAdzadgQAdO3cCb7TpgjblyxagBn+Adiw6XtY W1thwtgxOHW6
4MnaJ3t7YsmylejcvSekUim8PScK28aPHVNgXXOb5DURu37Zg9lzA/HuXTIs LS3g2qoVNq5f
o3SeY0ePQo/e/ZCSksLJ0ImIiIhUVJq4IsRiqcI0n6pX4CO8T0kXXl/e2gCd /R/jjyW1AQBx
0Wm4cf4I4Boo7KMhKZ4RINmjPQI2hcrMCRIwvKHie4xhQ/CFSy3MnDUHSxcv QJPGjT/7OanU
NSDfba9PFs/Ik3u37+FKSBxq13OCdeWsdVdCsgJUNpVtkJmZieTkZMTGxqJh w4b8oBARlVMM
gBARqbDMzEwg/T98fO6VNCsYIpXmTZcPeV/cu37TEq7ftAQATBg/FhPGj5W7 b7euXdCtaxe5
23R0dLBsyUIsW7JQ7vY6X7jgxNHDMusGDxpYYL0qVqyIubP9MXe2f55tmpqa BdY1txbNm6FF
82YFplGUp+eEcfCcMI4XIhEREZEKS83QRoZEqjBNccoOfmRL3u+C4evDhWCI QJpRrOUWdi6Q
bE0aN8afZ0+X2DlJ/mMRwlPkb3uZWjxlPL7/GhW09fD0cZSwroK2Hu7dTEIX hyp48+YNUlNT
0bBhw2Kd/4OIiMoWBkCIiFRYo0kXcHqNm8J0zaaGsLGIiIiIqFxKzaiIDIni NMXl8tYGaOcx
CpmvrwMAOk7YBQD478mavIkzizcAouwcIKVNC4Cz/uctIykhHZEReecZtHeo BFMjPbRu2ZQf
DiIiYgCEiEjVMbhBRERERJS/NHFFhSNAiuMRWNlajLuDvYEuGDQNSJcY4OC6 FcK2F43O4mnI
A8QnpSA9XVJsj8DKGfio7VxFeAzWop23Ic7IgDhDjAUTWpbqebjz5yXhtUYJ zDgrTs+EiZme
3PVERETZGAAhIiIiIiIiojIr/cMk6IrSFKdegY8+BEGy5qy7Uf0Y6jhYAP8l y6Tr29r5k8vK
OdKjKHOAlIQuLbKOc9uBGABACcQ/8E0HG/y64wmcv7AU1j19KELnEVX5oSAi IgEDIERERERE
RERUZmVkauHXgycVpNIq9nKzgyAAcPH6bVy8Lru9Z+smmNrbsVjLVOXHXmU7 tfsgTpVAOV9+
WQMYAZw5/gqJCckwMzfAwBE1s9YTERF9wAAIEREREREREZVZ4we0KLWyewU+ yvqXpwEAMNq9
VYmW9+WXNRjwICKiAmmyCYiIiIiIiIiIiIiISN0wAEJERERERERERERERGqH j8AiIipFoWeO
shGIiIiISG31GDSOjUBERESlhgEQIqJS1LnfcDYCERERERERERHRZ8BHYBER ERERERERERER
kdphAISIiIiIiIiIiAQN6tfD29cJbAgiIirzGAAhIiIiIiIiIiIiIiK1wzlA iIiIiIiIiKjU
hJ45ykYgtebaoScbgYiolDAAQkSkps5836HA7R0mnGEjEREREVGp45fDRERE 9LkwAEJEpMba
T7wgd33YaW+c+b5DsQRBtHX0kJ72vsj7h4b+hRHfjcTLly8/KR9SPZ96bXyu vNSlzcpLmxAR
EREREREVFecAISJSU2KpBjKlUrmLtoE5HKrXVThKpCTM9PfH+nVr+EVuOaSt o/dZ9ytq/qS+
1w4RERERERGVLwyAEBGpKbFEE5lSyF20DcyFIMixDZ1LrE7yvrR88OAfdOzY USXa7OHDh6hV
+4tyc42U5PHKO/dFDXopu1/OdEX5wrysXQ8566uto4f6DRpCKpXKpJFKpahX /yuVCiAUpS4M
mBIREREREZEy+AgsIqJSdjE0FO3bKx8AOHs2GK1dXRWmy5BqQiKRXRfxbC4c nObD7EsvYd39
/5Vu8CE1NRUVK1ZUiXNx7vyfaN++Xbm59srb8ap7++Sur76+Hk6dOoWuXbsK 644fPwEDA32e
XCIiIiVlZGRALBaX+3aoUKGCyvTZiYiICvX/MDYBEVHpau3qirNng+HhMRgH DhyAm5tbnjQh
ISFwd3fHvn17lAp+AECGRAOZOd7fufE3zMyA2zf+RoPGLWXSFURbRw+L3IFP pAAAIABJREFU
Fy/C2jVr8S45Ge7u/bBxw3ro6OjkSRseHo5pPn64ePEiMjIy4Na6NX76eRus LC2FX3ln/5ue
9l7uutTUVEyZOg0HDx4CALi798Oa1augq6srpF2xYjnWrl2HqKgopKWmQFtH DxvWr8Oq1WsQ
FRUFZ2dnbNq4Ac+ePcPSZcsRGRmJL75wwfaff0LdunVlji3nL8nPnzuP774b kW85EokE8+YF
YvuOHXj3LhndunXFlu83w8jICABwOjgYM2fOQlhYGGxtbTHLfyZGjvwOAJQ6 rty/as+5Tl59
MjIyMGtWAPbs3QuxWAx/f39MnTIZABTWVd7xFrYNFdU557rc51ne8Sl7neXc r6A2yE4nr/xv
27bD+HHj0L+/u5Dvixcv0KqVK+7duwMTE5NPbh9F5zwtLQ2eXt44ePAQjAwN MWXqFJnjVOYc
5pSzvgDg6+ODFStXyQRAVqxcCT9fXwz0GAQASrWDonZW5treuGE9lq9Yiejo aHzxhQu2/fgj
6tevl++1UdDfEnnXTn75K9OO8j5bRERE2SpWrIgXkf/ixuW/EC+KgyT3L4zU mJaWFiysrNG4
eStUd67Fi4GIiMokBkCIiFRAa1dX7Nu3B+7u7nmCIEUJfgBAhkQTEsnHx9+Y mQXj8GEd9OkT
DImkhUw6RS79dQm3/+8WAGDM6LEICpqPxYsX5UnXq3dfrF27Gnv37EZ6ejrm z18IP7/p2Llj
u/BFdM4vx+WtmzcvENFR0Xj48AGkUilGjRyNwMAgLF26REhz/fp1XL92FZaW FsK683/+iT/P
n4WZmRnWb9iIHj17oUOH9jgT/IewbsJET/wVelHuMaanp+Pvy5exc+eOfMtZ umw5bt/+P1y/
dhXGxsaYOs0HswJmY8P6dQCAkSNHYdPGjejSpTPi4uKwcNFiIQCizHEpkrs+ CxYsxMOHj3Dj
+jUYGBhi4cKFQlpFdZV3vJ/ahvmRd54/5TrLqaA2KKj8mTNnwNd3Ovr16wtN zazPwMJFi+Hl
7QUTE5NiaR9F5zwwMAjxong8efIYUqkUo0eNkam3onOo6Prt3bsX5sydhytX rqJ582a4GBqK
hIRE9OrVU+l2UKadlbm2L4aGIvTiBZiYmGDN2nWYMHEiLv99Kd9ro6C/JfLk l7+y7SjvbwoR
EREAvHoRiYvnz6BV2y6wq2oPTU2tcnPsmZkSRL2IROiff0BHRxeVq9rzgiAi ojJHQ5r74dBE
RPRZHdu7FT0GjQMAZKSnymy7GBoqMxKkqMEPAPhpWU/0nXQcAKApvomNG8/C y6u98G9mhUYA
gEPru2PUjKP55qOto4dHDx/AyckJAPD06VO079AJ4f8+Fbbn98V2SkoKatSs hVcvX+SbNvc6
e4fqOH/uDJydnQEAYWFhaN+hEyLCnwnpIyP+ha2trUwe0VGvYG5uJpRbydQ8 zzoLS2ukJL+V
W9fQ0L8wKyAAl/4Kzbcc5xq1cOrkcdSsWRMAEBsXh0ZfN8aLF5EAgOpONeDr Ow09e/RA5cqV
ZfJX5rgUjQDJXR/H6s44E/wHatSoked4FNVV3vEWtg2VqbO81/mlVfY6y/m6 oDZQVH6Llq0w
ydsbAwcOEMr758E96OvrF0v7KDrnDo5OOH/ujHDMYWFhqFO3nlBPRecw5zHJ q2962nts2/YT
Tv1xGocPHUC3bj3Qu3cvjBo1UmbfgtpBmWtNmWs7JjoKZmamSl9Hhflboih/ Zdox92eLiIiK
T0VtXaEP7NrhYxA+9MxRmfeq6rc929Goxbdo2LhpuT2Hkf8+RfDxA+g/+Dte 0J8o9MxR4V6Q
iIhKBidBJyJSITlHggQGBhY5+AEAtb/xx8M7VxDzPFAIejx4kCEEQWKeB+Lh nSuo/Y2/wrwc
HBxkXsfGxspNd+XKVbT5ti1MzSygraOHSqbmiI9PKFS94+Li4OjoKLx3dHRE XFycTBp5X1Rm
fwkNQPjiNve6gp7ffP78ebRr27bAcqKiolD3y/rQ1tGDto4eqla1R5xI9PEG ef+vOHv2PBo1
boJatb/AyZMnC3VciuSuT0xMjEyehamrvOP91Db8VMpeZ8q2gSL+M2dg4aLF kEgkCJq/AL6+
04TjLo72UXTOY2NjZY4593EoOoeKrl8AGDp0CG7dvIn9+3/D/fv3MWTI4EK1 gzLtrMy1nR2c
UPY6KuzfkoLyV6YdGfwgIqL8iGKiYW1XuVy3QRV7B4hionkxEBFRmcQACBGR iskOggQFBRU5
+AEA5uZnhMdeZQc/AAhBkMOHdWBmFgxz8zMK84qIiBBeR0ZGwsrKSm46j0GD MXHCBESEP0Na
agriRbEo7EBDKysrmfLCw8Nh+eG5/5/TufPn0VbOF8g52djYICL8GdLT3gtL zvkCGjX6Gr8f
PoioVy+xdu1qTJjgqfRxVahQASkpH/NKSEhUWGcbGxuEh4cXqa7KHK8iRalz cVxnyraBIt26
dYO2tjZmz56Dq1evYczo0cXaPorOubW1tcz2nK+VOYfKXL86Ojrw9PLEdyNH wcvbS+6cKgW1
gzLt/Dk+s8Xxt6Qo7UhERJSbRCIpV4+9kkdLq0K5mvuEiIjUCwMgREQqqLWr K5IS44sc/ACA
hIQOSEzsiD590rBx41nUrVsRAFC3bkVs3HgWffqkITGxIxISOijMy9dvBkSi eIhE8fD1nQ6P
gQPkpktNfQ9dXR3o6uoiIiICEyZ6ymyvVMkET548KbCs/u794OPjhziRCHEi EaZN88WAHBM0
F6fsiZeTkl7jyZMwNGtW8KMNxo4dgwkTPPHvv/9CLBbjwYMHGDxkqLB9yNBh ePToETIyMiCV
SiGWiJU+rnr1vsTqNWuRkpKCqKgoeHp5Kaz/sKFDMGXKNLx69QqvX7+Br6+f UnVV9ngVKUyd
lTn3yl5nyraBovI1NDTgP3MGVq1eg1n+M6GtrV2s7aPonA8c0F845jiRCD4+ foW63rIpqu90
P1+kJL+Fn6+P3O35tUP250NRO3/qZ1beuVH0t6QwlG1HIiIiIiIiUj8MgBAR qSgDA4NP2v/S
6dWwd2kGI+t5wmOvsoMfXl7tYWQ9D/YuzXDp9GqFebVs2QJffdUQNWrWgpm5 GebNmys33Q9b
t8LXbwYqmZqjXfuOaNGiucz2qVOnolnzljJfrOY2f34QrKyt4OJSBy4udWBr Z4ugoMDP2tYh
ISFo2aIFKlasWGC66X6+aNGyBTp07AyTSmYYOmwEevX8+OzqHt27w73/QFQy NcesWbOxI8eE
zYqOa8v33+PYsWOwsLSGa+s2aOPmprDes2cHoHbt2vi6UWPUql0bVatVU6qu yh6vIoWpszLn
XtnrTNk2UKZ8LS0tODs7Y+jQIYW+HhRRdM4DA+fB1LQSnGvURMOvvoZra9dC XW/FWV957aBs
O3/qZ1beuVH0t6QwlG1HIiIqHxxruLAR6JNVHfu33NdERKR6OAk6EVEJK2gS 9OK0cPYADJu2
X3ifIpqPw4d10KdPGvQtP36xvGv1AMxeuD/ffJSZoLis8/TyRu3ateCtxKgL Hu/nUVrXWZ++
7hjQ3x0DBvQvs9dDcdRXXjsQEREVh+KeBN2xhgvCwx4VuT6F3X/98gUYM3V2 uZ8vav50T0ya
PocX9AdVx/6NFz+0zPNaEU6CTkRU8iqwCYiI1JMkUxPbV3oI79t3n4I+fYKR mNgR+3d65EjJ
wYDnzp2Hl+dEHm85kpmZie3bd+DZs2dwd+9XptvnU+pbUDsQERGVJnkjNcLD Hn1S8IPKjzbt
O+PC2T8+KY8twa+w9PdIzOxtj/EdK7NRiYjKKAZAiIjU1LzF+2Te/335KgBA KpXm2Vbe/e/x
Qx5vOaOrZwB7e3vs3fMLNDU1y3T7fEp9C2oHIiKi0sZgBxVVeno6+g0cgoO/ /lKk/TOlUuy6
GIN5Axyx7WwUxnawg6aGBhuWiKgM4p0uEVE50bJFM9SuNRctWzQr3M2Dmj/+ ilTkJrWEr7P0
tPcIe/IYjRs3KvftznYgIqKyJOfIEMcaLti7bz9aubVFzS/qoWuP3nj46LGw PS09HX4zZsHl
y6/QpPk32PrjTwXmR2rUx0lPR3JyMsZOnFSk/UMevEYlfS1818YWZoYVEPLP azYqEVEZxQAI
EREREREREZVJV69dx6H9+3D31jV07NAes2Z/nOtuzdr1SEhMxF8h53Dy+O+4 fOUqG6yc0Pgw
WkNfXx+Ll68u9P47L0RjxLdZ874Mc7PFzj+j2ahERGUUAyBEREREREREpHIc a7jILPLMD5wL
a2sr6OnpYezokfjn4cfHZh05dhxzZ/vDwtwclhYWmDcnIM/+fMyWetLS0oKW lhbs7OzQqFEj
nL/4t9L7Po9Pxd2Id+jZxBIA0KOJBe5GvMOL+FQ2LBFRGcQ5QIiIiIiIiIhI 5SgTnKhUyUR4
raurC7FYLLyPj09A1SpVhPfVqlZho5YThoaGsLCwQN26deHk5AQne+UnMd8d EoOEdxlwnnhF
Zv2uizEI6OvAxiUiKmMYACEiIiIiIiIitWNhYY4XL1/Cwd4eAPDi5Us2Sjlh b2+PmjVrws7O
rlDBjzRxJg5cjsOVJY1QxVxHWP8iPhXdF9+Db89q0KnAh6kQEZUl/KtNRERE RERERGqnZ/du
WLh4GRISExGfkID5C5fkScNJ0NVTrVq1ULNmTTSoW7tQ+x27Ho8G1Y1kgh8A UNVCF/UcDHHs
ejwbl4iojGEAhIiIiIiIiIjUjs/UyTAxMUZL12/RuWtPNGvahI1STpiZmaFX t06F3m/nhWgM
d7ORu21YaxvsCuFk6EREZQ0fgUVEREREREREKiW/+T9yrpeXJuc6bW1trFq+ FKuWLxXWjRsz
SqlyqGwbNXxwkfY7EVA/323t6puhXX0zAMCLH1oK63O+JiIi1cMRIERERERE REREREREpHYY
ACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdBkCIiKhc0NbRK5P1UtV6 ExEREZUHWlpa
yMyUlOs2kEjE0NLS4sVARERlEgMgRERUaB06dmYjEBEREZHas7SxRWzUq3Ld Bi8jI2BpY8uL
gYiIyiQGQIiIqFAuX7km86+ytHX0hMXSygYegwZDJIpX6WMVieJRpUo1pKWl yazv595f5n1q
aioqV6mq8sdDRERERIXT0vVbhJ49jmdPHkEiEZerY5dIxHj25BGO/rYLLV2/ 5cVARERlUgU2
ARGRergYGor27Tsqnf7s2WC0dnUtdDmBgYFwc3NDYGAgzgT/Uah909PeAwDi RCJMnz4DEz09
ceC3/SrbppaWFmjarBlOnDiJvn37AAASE5Nw4sRJxMcnwMLCHABw9OgxNGvW HJaWFrwQiYiI
iNRI5ar2cP22Pc6f/B2iuBhIJOXncVhaWlqwtLLBN27tULmqPS8GIiIqkxgA ISJSE61dXXH2
bDA8PAbjwIEDcHNzy5MmJCQE7u7u2LdvT5GCH3uifoWbmxvsh9vDDW7YE/Ur BtsNLHQ+VpaW
WL1qFZycawjrJBIJ5s0LxPYdO/DuXTK6deuKLd9vhpGREYCsURZTpk7DwYOH AADu7v2wZvUq
6OrqAsgaYbJ48SKsXbMW75KT4e7eDxs3rIeOjk6e8hWVldPwYUOxffsOIQBy 5eoVZGZm4urV
K+jWrRsAYNeu3Rg3bqxSdVyxYjnWrl2HqKgopKWmyJSVlpYGTy9vHDx4CEaG hpgydQovbCIi
IqJSVKGiNr6o9zW+qPd1uW4HcUY6xBnpvCCIiKjM4SOwiIjUSGtXV+zbtwfu 7u4ICQmR2fYp
wY/LV66hQ8fOiNwZCfvh9nCMdIT9cHtE7oxEh46dC/04LADQ0NCQeb902XLc vv1/uH7tKl6+
iISenh5mBcwWts+bF4joqGg8fPgA//xzHy+ev0BgYJBMHpf+uoTb/3cLT548 RlxsHIKC5sst
W1FZOXXu3Am3b99GnEgEALhy+Qrat2uHy5evAACioqJw//59dO7cSak6Xr9+ HdevXc0T/ACA
wMAgxIvi8eTJY9y8dQMhF0J4URMRERGVInFGOlJT3pX7hcEPIiIqqzSkUqmU zUBEVHKO7d2K
HoPGAQAy0lM/SxkXQ0NlRoJ8SvAje8Lz7JEfjpGOwrZw+3BE7owUgi0FPRJL W0dPeASWSBSP
mf7+eP36DQ4d/A0A4FyjFk6dPI6aNWsCAGLj4tDo68Z48SISAGDvUB3nz52B s7MzACAsLAzt
O3RCRPgzIf9HDx/AyckJAPD06VO079AJ4f8+zVO+orJy8/Hxg72DPSZ5e+Hb tu2weNEizPT3
R8iFP7Fs+QrExcZh1aoVStUxMuJf2Nraym0XB0cnnD93RjiGsLAw1KlbT9hO REREVNZU1NYV
+sCuHXoK60PPHJV5T1QehJ45KtwLEhFRyeAjsIiI1FDOkSCenp7YtGlTkR97 dSb4D1y+ci1r
7g+4AcMBx0hHmeBHYGAgWjRvqjAvbR09AICxsTHatv0WmzdvFLZFRUWh7pf1 ZdLnHCUSFxcH
R8ePwRdHR0fExcXJpHdwcJB5HRsbK7ceisrKbdiwoRg9ZgzGjxuLpKTXaNas KRITk5CWlobd
u3/Bnl92K13HnMGP3GJjY2WOIWdeRERERERERERUOAyAEBGpqewgSPv2HYs8 4Xm2Fs2b4kzw
H9gT9Ssid0YCwyE8DuuMv/IToRc0ksHGxgaX/roIOzs7udutrKwQEREhjI4I Dw+HpaWlTJqc
2yMjI2FlZVWksnKrX78egKy5Ppo0aQwAaNKkMTZ/vwW6urrCdmXqWBBra2uZ /SMiInghExER
EREREREVEecAISJSY61dXZGUGP9JwY+cBtsNREhIiDDyoygToOdn7NgxmDDB E//++y/EYjEe
PHiAwUOGCtv7u/eDj48f4kQixIlEmDbNFwP6u8vk4es3AyJRPESiePj6TofH wAFFKkueoUOH
Ys7cuUJbtnZ1xYIFCzFsWOHqWJCBA/oLxxAnEsHHx48XMREREak9DQ0NLlzU eiEiotLDESBE
RGrOwMCgWPMLDAwUluI03c8XK1auQoeOnREdHY2aNWtilv9MYfv8+UGYPGUq XFzqAAD69u2D
oCDZOrRs2QJffdUQ75KT0bdvH8ybN7dIZcnjMXAg/P1noXXrrACIq+s3SEtL g8fAgYWqY8Ft
Ow8TPb3gXKMmjAwNMXXaVPxx+jQvYiIiIlJr+vr6bARSa8nJyWwEIqJSwknQ iYhKWElMgv65
dejYucAJz0tDzsnEiYiIiEg1KDMJOgMgpO5SUlKE656ToBMRlSw+AouIiApN 1YIfRERERERE
REREufERWERERERERERUavhgCiIiIvpcOAKEiIjUAh9/RUREREREREREOXEE CBERERERERGV
mtIYAXJnSyeZ9w3Gn+aJUGF6RqZ4/zaJDUFERIXGAAgRERERERERlRsnfOuh 28p7CtdR4TBI
QUREqogBECIiIiIiIiIqF66vbIXuQQFA8n6kvk5FamoqUl+/xped++L6ylZ5 0jfxvVRgfgV9
6V9SAQFVCTww+EFERKqIARAiIiIiIiIiKjUl+QisNEgA3QYAAF0bQDfHNge3 gTJpQ9eMUKpu
BaUpqWMrDxPJl4djJCKi4scACBFRKYp88oCNQERERERqy7luI9WqUDqA1Bil kiamORRbsfrG
Zli/ZhVWrl6L6JgYuLjUxg+bN6JevS8BABkZGZg9NxB7f/0NYrEYM6f7YrK3 JwAgPCICfjNm
ITT0L2SIxXD9phW2bd0MS0tL6BubCfkDQMp/iQAAiUSCoAWLsGPXL0hOfoeu XTpj04Z1MDI0
BAC8f5+KSVOm4fcjR2FoZIhJXp6YPTdQ2D81NQ3T/Kbj8OEjAIC+fXtj1fJl 0NXVEcpbtmQR
1m/chKioaCS/SYC+sZmwf3Z9clK2bmlpaZg0xQeHDv8OQyNDTPb24geJiIiK jAEQIqJSxF8x
ERERERH7xCXXJ04FgNTXMuvObF0qvK6oawQTuy+gbWAK53q18fDEfABAenIS 6vdfXej659wW
+tclnD/zB0wqmWD9hk3wnDQFoRfOAQAWLl6Kh48e48qlEBgaGGDx0uXCvn37 e2D1imXYtf0n
ZGSkY+HipZjuPxs//7gFyW8SYGBijuQ3CTLlLV+5Grf/7w4u/3UBJsbG8Jk+ E7PnBGLt6hUA
gKCFi/Dmvzd49OAOAGCC12SZ/QMXLER0dAzu/d9NSKVSjBk/EUELF2HxgiDh eG7cuInLoRdg
YWEh7Jf9b3Z9AGD7zl04eep0Ieq2GKL4eDy8fwdSqRRjJ3jy3omIiIpMQ8r/ gxARlahje7ei
x6BxAICwe9fZIERERESktmrUayL0gV079BTWh545KrzX1tYusfqcmt0Y3T0n Ce+Pb1qP7j7T
hfeaunbQ1K0CjYrGMvs9+fsMqjUdkCe/nMGHgrYZmJjjZcRTmJqaAgBS3r+H bRUHvEmIBQDU
dPkSJ48fQQ1nJ4XHkPL+PVzqNkDks//lWweXug1w7PeDqFHDGQAQFydC05bf IDzscdZ5camL
M3+cgKODAwDg2b/hqPdVIyEf59p1cPrkcTg7Vc+6b3n6DF2690TYowdCmU8f /wNbW5sC2+JC
yEUEzAnEmT+Ow/DDCA9l6nb65HE4VXcUym7wdZN827ksSE9PF6777HtBIiIq GRwBQkRUiqRg
DJqIiIiIqKSkpmfgwzgQHN/0E7p7jpUdEVLRBhqaeji+ub3Mfu3H3pSbn6am JiQSCbS0tGTW
SyQSaGpqyqzLDn4AgL6eHsRisfA+JjYWjg72csu4eu065swLwt2795CckgIA 0NDQKPA4o6Kj
0aBRU5l1OfeJjY1DtapVhff21arKpI2LE8nUx9HBHnFxIpk0OYMf8jx+/D9M meaL40cPC8EP
ZevmYF9NpmwiIqKiYgCEiKgUcRAeEREREbFPXIKToL9LB1Jf4/hPh9B91GAg NfXjRi0dICMd
kEhw12gdmkt9AQBXNFaiXT51rFK5Mv55+Ahf1q0js/7+g39QtUoVmWOTd5zZ 62ysrREeHgFn
OSNAhg4fiSWL5qN9u7YwMjLCu3fvYFvVscC8bayt8ee507CztZVbnpWlJSKf vxCCC5GRz/Ns
j4iIRPUPozDCwyNgmeNRV4qORySKx8Ahw7Bl04Y87aCobtZWVjJlR0RE8t6J iIiKTJNNQERU
ujd7XLhw4cKFCxcuXLio66Jq3ryTfAh+9EXWSJCPi6aeOTT1LAFIAABtxzxA 2zEPCsxv1MgR
mOg1Cddv3ERaWjrS0tJx7foNTPSahDGjRypdr8GDBsJn+ky8iorCmzdvMMN/ trDtfWoqdHR1
oaOji4jI5/CaPE1mXxMTE4SFPc1TL+/JUxEeHgGxWIx/Hj7E8JFjhO39+vbB rIA5SEhIQEJC
AmbOmi2zf98+vTHdfxZEoniIRPHwmzkL/fr2Ufp4BgwaAt9pU9CsWVO5bVZQ 3dz79cHMWbMR
H58AkSge0/1n8caRiIiKjCNAiIhKNwLCNiCluDRsiUe3/2ZDEBERkRp2iUuu Tzx2xyPsn9YI
v6zbl2ebY+OucGxki92332JE34+PwBrRtz1W/XoW0wY0z7PP1Mne0NfXh/fk qXj67BkAwNnJ
CSO/G46xo0cpPWJi5nRfzJ4biGYtW0MqlWKGn4+wbfOGtZg5azYGvxgBO1tb TPL2xKHDvwvb
J3t7opVbWyQnJ+NtUtZjqqZNmYQ169aja4/eiI6JQQ1nZ0z3nSbsMztgJiZP 8UHtOvVhaGSI
iePH4ez5P4Xtc+fMgo/fDHz5VSMAQO9ePTBntr/Sx3P9xk1cv3ET4yZ4CduU r5s/Jk/xgUvd
rLpN9vJE8JlzHAFCRERFwknQiYhKWM5J0Mv7F9pxPudgtaodLwolfPF1Kzy8 dYkNQURERGWK
S8OWQh84v0nQK1RQrd9mrt5/Bb06tkJVC30AwIv4FBwJviQ3AKIunoSFoY/7 QDy4c4sX7WeQ
Pd8LJ0EnIip5HAFCRFSKynMMWvQu69ECcW/FsDTUUnq/Oo2+EV4bGRqgRbMm mD1jGsxMK5Wp
4/951z6s3bgFU7zGY+QwD14vRERExD6xinkRn6LWfbGZAXMw088Haenp8A+Y i25durC/SURE
aocBECKi0rzZQzm+wQgMQYgb4BYYAunKbwu164OboQCAxMQkLF+7CYGLV2Dd ioVl5tAzMzPx
68HfMd3HG7v3HsDwIf2hqanJ64WIiIhIBUzt3wxrfruUZ526sa9aFV81bobU 1DR06dwJs2fN
4MknIiK1wwAIEVFpKqe/sKp48Q1C3AAPw4bY53YbHiGvkdHapNDtZmZaCf4+ 3mjXzV1Yl5mZ
ifXfb8OhoyeRkvIebVxbImi2Hwz0sx5hULdxa0yf6omde35DnCge96+H4K/L 17Bq3feIeP4C
VpbmGDdyGPr26gYASEtPx+IV6xB89gIAoFP7NvD3mwwdbW0hv7kzp2Hbzj2I EyXAuboDFs7z
R+2azvlW/9LfV2FibITB/fvg+MlgXLp8Da4tP95Up6dnYP6SVTh97gIM9PUw YsgAmeN++SoK
S1dtwPVb/wexWIwmX3+FxYGzYGZmys8UERERUTFQx4BHbhPGj8WE8WN5somI SK1psgmIiEqP
VFq+lvhkKeL9LmDfu9vwMGyI6EbGWUGQd7cR73cB8clShXnkbjdAQ2bdDz/v xj+P/ocDu7fh
YvAR6OjoYPX6LTL733vwCAd2b8O9ayGQSoFZ8xZh4tjvcC3kNHZs3YC79x8K 6ddv3oY4UTxO
Ht6DE4f2IDomDhu+/0kmv+u37mD3ts24fP4k2rq5InDRigKPYd/BI/Bw7wOp FBjYrxf2Hfhd
ZvuGLT8hMek1go/+ikN7t+Pajdsyx+g51R9DPNwRGnwUF08fhYN9NSxbs6nc XU9cuHDhwoUL
F9VflOsTS7lwUeuFiIhKD0eAEBGVagCk/HSGE2eEAIAw8iO6kTGPaX9AAAAg AElEQVQAZAVB
bmaNBHELDEECALNlbkq1W1LSa6zasAXNGn8trDt89CS2rF8JK0sLAMAUz7Ho N3gkAqZPFfb3
mzIRlSqZCPvo6OhAFJ+AxKQk2FhbITDAT9h2Kvg8tm9ZC9NKWXOMzPTxxqiJ UzHNe7yQX8D0
KTAxzjqe4YP7Y8tPO/M9ty9fReHBw8dYvXQ+pFIpOrb/Fqs2bMHLV1GobGcL ADh5+ix+3rJO
KHPGNG9cch8q5Pn7rzuE/LS1tTFpwmh07DWQN1dERERERERERDkwAEJEVIrK 0xfWpktbIylV
A26BIVmPvbqZFQSxvfkf9r27DbcQAIFuMNVV/Cupek3dAAAGBvpo3qQR5sz0 EfaJFcWjR/+h
Muk1NDRk8rQwN5d5v3pJELb+vBvf/7gdhoYGmD7VC61btQAAJCQmorKdrZC+ sp0tEhKTZPY3
NjKSCaZIJJJ8j2H/oaNISnqNxt90yLN+qtc4AEB8QiIq29rIlJnzerlz/x+s 3bgVj5+E4f37
VLnHSERERMQ+MREREZV3DIAQEZXu3V65OlxTHSmwxBUef7/LegzWzYbC47BS lxgCyIQy83zf
vfJnvm1paWGO3T9uFEaAyG3rXO1ex6UW1q9YCKlUiktXriNw8QqcP9EcAGBu ZoqXr6JQrUpl
AMDLl1EwM61UYH75rUtLT8exk8H44/Be2NnaCOtfRUVj8ChPTBwzAjra2rAw N5Mp89WrKJk8
/WYFwnfSBLRs1gQGBvpISXmPFu26lds5ZYiIiIiIiIiI5GEAhIioFElRPr+w ft/SAG7+yHrs
VQjwfokBUIi2KKjd+vXujqClqzBjmhfsbKzxb8RzbNvxC5YtmJPv/jPnLsTY 74aiapXKkEoz
IZZIhDQd27XB8rWbEBTgBwBYtmYDOrVvI5OHvPrIW3f67J/4sk5t2Npay2y3 s7NBHZeaCD53
Ad27dEDnDt9i5brNCAzwhVQKLFu7SSbPtLQ0aGtXREWdingZFf3/7N15uFV1 of/xz2E6TMo8
OaQoZqS3UnHCMkoBrRRFwSG14ZcDig2IOVwVHLrlmIlpNum9dR0qUUxLHBK5 pYlEN4fMa4al
gnAUFJkOcNi/P4gdB86Bg8A5sHi9fPbD3mutvfZ3fTmPD+w3a62M+94Pt+qf JwBgy9Z2mw4m
gUJbMO9tkwDQRAQQgCa0VZ/uP3ZABoydlIwdkFJp2Uabty+cdHxu++mdOW3k 6FS9+VZ2ft8O
+dLnT6r1ntXfP+Bj/TPq/DF59fUZ2fl9O+YbYy4obzPy9C/kW9eOyxHHrris 1sBPHpyzTvvC
WvdX37I7f3Fvzjz183WuO/boI/KDW3+azxw+MGee+vlcfuW3c9hRJ6Zd2zY5 5cTh+e0TT5Xf
N+bC0bnmOzdnxgVj071b13zuxOGZ+Mgkl48AAAAAWEVFybclAI3qvttvyZEn rrjXwx+feGSr
not5//67bPuNg/xQAAAU1F79Dy3/GfjgQUPKyyc/NKH8ut22HU0UhbbyDJDJ D00o/10QgMbh
DBCAJrS1N+htrujvrAUAAAAANgkBBKAp+fIfAAAAADYJAQSgCTn7AQAAAAA2 DQEEoAkJIAAA
AACwaQggAE2oFAEEAAAAADYFAQSgKTkDBAAAAAA2CQEEoAm5BBYAAAAAbBoC CEAT2qv/ISYB
AAAAADaBZqYAAAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEE AAAAAAAoHAEE
AAAAAAAoHAEEgCbzxOArTQIAAAAAm4QAAkCTeOLJp2r92lCtKtuUH92698wJ J342VVVvbjHH
ver4V30AAAAAsHEJIAA0jbGTMmnAil/X15LqRVlSvSjPP/9sKisrc+ZZZ21R h75y/Ks+AAAA
ANi4BBAAGt30cQ9n0oDkhPZ7Z9KAFa/fi+7duuW6a6/NI488Wl5WU1OTiy66 ONvvsGM6dOyc
z550ct59993y+laVbfKdG8al9y59Utm6bZLkwYkT85G99km79tumz26758c/ vrW8/eLFi3PG
iDPTtVuPdO3WIyPOPCuLFy+utb/vf/8H6bPb7mnXftvsu9/++dOfnlnvY5kz Z262236HzJ37
9hrLd9jhfZk79+11HhsAAAAA/yKAANBonnjyqTwx+MrcMX9aTmi/d2b22zYn tN87d8yflicG
X7nel8NKkoqKilqvv3XlVZk27Y+Z8tTv89qrf0+bNm1y4b9fVGubKVOmZMpT v0/14oVJki9+
8f9lzCUXZ85bVXnsN4/kqSlTytuOGTM2M2fMzJ///Fyef/7ZvPqPVzN27KW1 9vf45MmZ/Phj
mT1rZoYMGZIRZ5653sfRuXOnDB06ND/80Y9qLf/hj36U448/Lp06dWzQsQEA AACwQkWpVCqZ
BoDGc9/tt+TIE09PkixdsnirOe6VNzxfeebHzH7bltf1mjovd8yflgGTVrzu P/G8evfTqrJN
+ZJRVVVv5vwLLsjbb7+Tu3/xsyRJn912z68e+GXe//73J0lmzZ6dfvvsm1df /Xv5/X9/5W/p
1atXeZ+77LpbRo8elSFHHpntt9++1ufttPMuefSRh9KnT58kyUsvvZSBgw7L K9NfLu/vjZkz
0rlzpyTJwoUL07Vbjyxc8G6946/LkupFefHFF/OpTx+RF//y57Ro0SLLli1L 3w/umd88+nB2
3HHHdR4bAMDmpmWr1uU/Ax88aEh5+eSHJpRft9u2o4mi0BbMe7v8c7/y74IA NA5ngADQKPpP
PC8ZOyADJiV3zJ+WXlPnJVktfowdsNb4sdLKG4f3/eAemT9/fm666cbyuhkz ZmTPf/tweZsd
d9wps6uqar1/1fiRJD+76848/PCj6bfvftn9Ax/MAw88UF43e/bs9O7du/y6 d+/emT17dq33
r4wfSdK2bdssW7ZsreOv7x4gu+++e/b44Adzzz33JknGj78nBx54QHbccccG HxsAAAAAK7Qw
BQA0lv4H7p9M3D+9xj284jJYU/cuXw6r98SBDd7P2m4a3rNnz/z2fx7Pdttt 1+D99eu3T+4Z
/4uUSqU8OHFiTj/tjPzjH59OknTv3j2vvPJKdt111yTJ9OnT061bt002R2d/ eWQuv/yKDBt2
bMbdeGPG3XDDBh0bAAAAwNbKGSAANLreZw8snwkyYNKK1xvLaaedmhEjzsrf /va3LFu2LM89
91w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqzq6oy atToHDd82Cab
m4GHHpp5897NTTffnPbt2ucjH/nwBh0bAAAAwNZKAAGgafzzclgZO2Cj7vbr 545O/4P6Z9Dg
w9OhY+ecfMrnc9SQIWt9z5FHHJFhw49Px05dcuGFF+W2224tr7vsskvTvUf3 9O27R/r23SO9
tuuVSy8du0FjXHkJq1Ufq/ry2SMzatTojDrnaxt8bAAAAABbKzdBB2hkW+tN 0OvyxOArG3TP
DwAAtkxugg5ugg7QlJwBAkCTET8AAAAA2FQEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEADYwrWqbGMSAAAAAFYjgADQ ZJ4YfKVJAAAA
AGCTEEAAaBJPPPlUrV8bqlVlm/KjW/eeOeHEz6aq6s0t6thffPHFDD/u+PTs tV3ab9MhB/Y/
KOPH3+OHAgAAAGAjEkAAaBpjJ2XSgBW/rq8l1YuypHpRnn/+2VRWVubMs87a Yg77r3/9awYO
HJxDPvnJPP/cc3nrzdn5zvXX566f/czPBAAAAMBGJIAA0Oimj3s4kwYkJ7Tf O5MGrHj9XnTv
1i3XXXttHnnk0fKympqaXHTRxdl+hx3ToWPnfPakk/Puu++W17eqbJPv3DAu vXfpk8rWbZMk
D06cmI/stU/atd82fXbbPT/+8a3l7RcvXpwzRpyZrt16pGu3Hhlx5llZvHhx rf19//s/SJ/d
dk+79ttm3/32z5/+9Ey9Y77s8isy+tzROf3009KlS+dUVlZmv/32zV133pEk +eQhh+ZnP/t5
rfe8+uqr2Wmn3nnnnXdSXV2dL516Wjp26pIdd9wp1173bT9QAAAAAHUQQABo NE88+VSeGHxl
7pg/LSe03zsz+22bE9rvnTvmT8sTg69c78thJUlFRUWt19+68qpMm/bHTHnq 93nt1b+nTZs2
ufDfL6q1zZQpUzLlqd+nevHCJMkXv/j/MuaSizPnrao89ptH8tSUKeVtx4wZ m5kzZubPf34u
zz//bF79x6sZO/bSWvt7fPLkTH78scyeNTNDhgzJiDPPrHe8j/3msQwbdmy9 688//7xc8Y3/
yPLly8vLrvjGf2Tk2SPToUOHjB17ad6sejP/939/ydQ/PJ1Jj03ygwUAAABQ h4pSqVQyDQCN
577bb8mRJ56eJFm6ZPFWc9wrb3i+8syPmf22La/rNXVe7pg/LQMmrXjdf+J5 9e6nVWWbLKle
lCSpqnoz519wQd5++53c/YsVl5Dqs9vu+dUDv8z73//+JMms2bPTb5998+qr fy+//++v/C29
evUq73OXXXfL6NGjMuTII7P99tvX+ryddt4ljz7yUPr06ZMkeemllzJw0GF5 ZfrL5f29MXNG
OnfulCRZuHBhunbrkYUL3q1z/G3bbZN578xNixYt6j3G/gd9NF8+++wcf/xx Ky6ZNeiwPP/c
M2nbtm127r1rHn3koey6667l8eyx54fKcwIAsDlp2ap1+c/ABw8aUl4++aEJ 5dfttu1ooii0
BfPeLv/cr/y7IACNwxkgADSK/hPPS8YOyIBJyR3zp6XX1HlJVosfYwesNX6s tPIm6H0/uEfm
z5+fm266sbxuxowZ2fPfPlzeZscdd8rsqqpa7181fiTJz+66Mw8//Gj67btf dv/AB/PAAw+U
182ePTu9e/cuv+7du3dmz55d6/0r40eStG3bNsuWLat37F06d07Vm2u/afsF /zwLpKamJpde
dnlGjx6Vtm1XXK5r1qxZ2XnnnWuNBwAAAIA1CSAANJr+B+6f/hPPK1/2amX8 OKH93uk/8bz0
P3D/Bu1n5U3Q36yalbvuvCM9uncvr+vZs2demf5yeZsl1YvKl7qqT79+++Se 8b/IjNdfy/XX
X5cRI/51U/Xu3bvnlVdeKb+ePn16unXr9p7n4BOf/ETuvvvutW7zmc98Jq1a tcpFF12c3//+
qZz6pS+V1/Xo0aPWeFZ9DgAAAMC/CCAANLreZw8snwkyYNKK1xvLaaedmhEj zsrf/va3LFu2
LM8991w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqz q6oyatToHDd8
2Hse3yUXX5Srr7omP/zhjzJnztxUV1fn6aen5rjjTyhvU1FRkQvOPy/XXvft XHjB+WnVqlV5
3fHHDc/oc89LVdWbmV1VlXPOOdcPFAAAAEAdBBAAmsY/L4eVsQM26m6/fu7o 9D+ofwYNPjwd
OnbOyad8PkcNGbLW9xx5xBEZNvz4dOzUJRdeeFFuu+3W8rrLLrs03Xt0T9++ e6Rv3z3Sa7te
ufTSse95fH369MnEib/OxIceygf69k2Xrt3zla9+NccNH15ru+bNm6dPnz45 +eSTak/b2DHp
1Klj+uz2/uy91z45+OMH+1kCAAAAqIOboAM0sq31Juh1eWLwlQ2658fWaOgx w3Lc8GE57rjh
JgMA2GK5CTq4CTpAU2phCgBoKuLHmpYvX55bb70tL7/8coYNO9aEAAAAALxH AggAbEZat2mX
nXbaKbf/90/TrJkrVQIAAAC8VwIIAGxGllQvMgkAAAAAG4F/WgoAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABROC1MAAAAANJUF 8942CQDAJuEM
EAAAAAAAoHCcAQIAAAA0uskPTTAJAMAmJYAAAAAAjergQUNMAgCwybkEFgAA AAAAUDgCCAAA
AAAAUDgugQUAAAA0uao3Xs8Lz0w1ERRC3w/1S7ee25sIgCYmgAAAAABNZtXw ceSJp5uQBrrv
9lvKz33ZvvmZ/NCEvPDMVL83AE1MAAEAAACaxMr4ccQJpyVJSqWSSWmglXOW JL+84/vliOQL
983DwYOGJFkRQpL4PQFoIgIIAAAA0OhWxo/PHH+q8LGBPnP8qeXn99/5A2ce bEYOHjREBAFo
QgIIAAAA0KjK8eO4LyXix0b1meO+lCS5/64fJvGl++Zg1QjSsWtPEwLQiJqZ AgAAAKAplPy3
yf779HH/Ly88MzWTH5qQqjde98MGwFbJGSAAAABAo3rhman59PAvOvtjE/v0 8C8mSR742Y+T
OBukKa08C2S3PfcxGQCNSAABAAAAGl1d9/3o9ZX76tx25neONGEb4FPDvpBf /fzWJCIIAFsX
AQQAAADYbPzh2mNrvd7nnF+YlI1ga44gnbr1atB2c6tmNsp+AGg8AggAAADQ 6Er1XP7qrYUr
fq2oSEqrbPvk3Mo6tz+wU3Wjj717j56ZPeuNLW7ODz/28/n1L25LsvVFkNI6 LrdWUVHRqPsB
oHEIIAAAAECjq++L5NffXZ5S1gwgQ86+us7tZ/3k7CYdf4+evTLrjU3/L/4r W7cpP69evKjB
61Z32DGfy4N3/2cSl8N6LwQOgC2LAAIAAAA0vnoCyKvvLkkq8q/68c9tZ/3X yPXaT5L85S8v
5tLLL8tTT01Jkuy//3655KKL07fvBxo8zB69tsusmTPq/dxZM2c02s3cV0aX ioqKVC9acapM
ZZu2tZY3ZCyHDT0lD47/ryRbTwTZWOHCGSAAWxYBBAAAAGh0pdT9RfIlN9/f 4G3XZvr06Tlm
2LB8/dzRueV730uS3HPPPTl2+PD88r5707t37w0a63sZ00abu1Kp/EX76l/I N3Rcg4eenInj
f5Kk+BHEPTkAtl4CCAAAAND46viX9K9de3i92+5wzq/Xvd0qrrnm2pxx+mk5 5eSTystOOfmk
zJs3L9dce12+O+6GJEnP7XbIGzNeq/Xelct6brfDite9VgSCWtv9c/yrvr/n djvkqiu/mRvG
fTezZs3K7u9/f66//rrsucceSZKampp868qrcvsdd2bBggU5bPCgXHP11Wnf vt06j2fxwvmp
qKgoB4/Vw0dFRUUWL5y/XmejDD76pEy856dJXA4LgGJqZgoAAACAxlYqldbr sezN6am66dgs
e3N6Sv8MIj0/d1O920/+n9/mmKFHr7H8mKFHZ/Lk/ym/rmssK5fNfP3VJMnM 11/NzNdfrfM9
qz//3RNP5pcT7slf/vx8Dj/8sIw+97zy+u/cMC7PPPNsHp746zz7zP+msrIy l19xRYPnYNGC
d+u8xFJFRUUWLXh3vee0VCpl0FGfzQvPTE3VG6/7oQSgcAQQAAAAYIvQafi/ boT+6jWHZeZt
I+rdds6cOenatesay7t27Zq5c+dusjF+6z++kZ49e6Zt2zYZccbpee6558rr br/jzlxxxWXp
1atX2rdrl3+/8IL86tcPNvm8iiAAFJVLYAEAAACNrq6bSb/v3Il1bvuPqwdn xq1nrPW9q+vU
qVOqqqrSs2fPWsurqqrSqVOnWvuoa3/vdX2HDh3Kr1u3bp1ly5aVX7/xxhv5 2MEDau1n1cta
rUvb9tvWO5aKioosnD/vPf9+DBxyYh6ecHsSl8MCoDgEEAAAAKDR1fel/x+u PbbW633O+UWD
A8GqPnpQ/9w9fnzOHFH7LJG7x4/PRz96UHmfLVq0yMKFi9KmTeskKZ8d8l4D yNq27d69W345
4d41okxDjq/dNh1qbbf6TdBXRpAF777znn9PDj3yhDxy3x1JRJD61HUJMgA2 XwIIAAAA0Pjq
+dL/rYUrfq2oSEqrbDt1YYc6t+/Xtu4v/Ed99Ss5+tjh2ab9Njn6qCFJknsn 3Jfv3fKD3HP3
z8uf/8G+ffO9730vZ5xxet55+52MufTSWuPbdttt8/Jf/5pdd921/vHX93y1 ZaecdFLO/fr5
ufyysdlh++3z17++nBtuvDE33ThuvaauoqIiC+a9XX5eWtfnr4dDjzg+j/zy ziQiyOrmVs00
CQBbGAEEAAAAaHSl1P1F/evvLk8ptQNIKaUMOfvqOrd/7Uen1rl8l113yZ23 /zTf+I9v5rLL
r0iS7Lfffrnjv3+SXXbpXf78q678ZkZ//bxcf8O49OzRI2edOSL3P/Cr8voz Tj8th336iCxc
uDCv/WN6neOv7/nqy84884zk5lty3PEnZtbs2dlll975ytkj652L1a08+2D+ vLnl98yfN7fW
WQkN3dfaHHLEcXn0l3clEUEA2LJVlEqlkmkAaDz33X5Ljjzx9CTJ0iWLTQgA AIXVslXr8p+B
Dx40pLx88kMTcshnhq+x/c7nP5rLRnwmqUi5flxy8/155VuHmMwm8Oj9P0vf D/UTQTaSyQ9N
KP9dEIDG4QwQAAAAoNHV9+8xL7n5/gZvy6b1yU8Py28e+BIY8roAACAASURB VHkSZ4IAsGUS
QAAAAIDNwvRvftIkbGZEEAC2ZAIIAAAA0Oic1bHl+MSnjs1jv/pFEhEEgC2L AAIAAAA0OgFk
yzLg8GMy6dd354VnprovCABbDAEEAAAAaHwCyBZnwGFDkySTHhyfxNkgAGz+ BBAAAACg0ZUi
gGypPn7Y0Xn8wXucDQLAZk8AAQAAABqfM0C2aB8ffFSS5PGJ9+aFZ6YmiRgC wGZHAAEAAAAa
nXuAFMPBg4aUn09+aIIYAsBmRQABAAAAYIPVF0MAoKkIIAAAAABsVKvGEFaY /NAEkwDQyJqZ
AgAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHBamAIAAAAAqFunbr0atN3cqpkmC2AzI4AAAAAA sEVZXL0kS5Ys
yfLly9OsWbO0atUqrStbbZLPmls1M5269UqpVKpzfUVFhfgBsJkSQAAAAADY YiyuXpLFixen
devW5WVLlixJixYt0qL5prna+9yqmamoqFgjgogfAJs3AQQAAACALcaSJUtS UVGR6urqJCsi
RMuWLdOsWbMsWlyd6urq1NTUpHnz5qmsrEyb1pUb5XNXjyDiB8DmTwABAAAA YIuxfPnyLF26
tPy6RYsWadmyZaqrq7Nw4cK0adOmvG7hwoVJstEjyMrnAGzeBBAAAAAAthil UiktWrRIs2bN
UlFRkRYtWqSysjILFixI8+bNy2eGJEmzZs2yePHijRZAEuEDYEsigAAAAACw xWjXrt2KqNGm
TZo1a1Z+tGzZMjU1NVm2bFlqamrK27ds2dKkAWylBBAAAAAAthitWrZIZWWH vPPOO5k/f0GW
Ll2ali1bpn37dmnfvn0WLlyYpUuXZvny5Umyxo3LAdh6CCAAAAAAbFHeeeed zJ37drZpv01a
V7ZOksyd+3aSpHXrFa9rampSXV2dDh06mDCArZQAAgAAAMAWZf78BWlW0SwL FiwoL2tW0Szz
5r2bNm3alM8A6dChw0a9/wcAWxYBBAAAAIAtytKlS7No4aI1lrdp2yYtWzRP l86dTBIAAggA
AAAAW5bly0t13tx8+XL3+wDgX5qZAgAAAAC2JF26dMrSpUvTqrJV+bF06dJ0 6eLMDwD+RQAB
AAAAYIuy7Tbts932vbJkydIsmL8gS5YszXbb98q227Q3OQCUuQQWAAAAAFuc bbdpL3gAsFbO
AAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApH AAEAAAAAAApH
AAEAAAAAAAqnhSkAAAAAmsrkhyaYBArt4EFDTAJAExFAAAAAgCbzwQ/tYxIA gE1CAAEAAACa
TKlUMgkAwCYhgAAAAABNRwABADYRAQQAAABoMqUIIADApiGAAAAAAE3GJbAA gE1FAAEAAACa
TF0BZMrUadmv394bvO+XHz9vret3/fiVfgMAoMAEEAAAAKDp1BFAPnfqyPzn 92/Mfv322uDd
DzzzsTqXv/Tg2Xn58fOy68Hf2uDP6Lv3QXlh2u/e8/uf/sMf8/WLLssbs2Zv 0H7Y/PTd+6DM
rZppIgCaSDNTAAAAADSVUqm0xiNJvnb+JXlq6rQ61zf0saxUkeWlUp2PVu26 ZOdd9szLk8/f
oM9YOd4Nef9V1383F583Kn/+w283eCwem9cDgKYlgAAAAABNpr4vje++++6M On9MpmxABFlW
0yzLS6nz0apdl3IE+fNjFzVaAPngPh9dY9lLL72cj/bff7P4wv6ll/+WQUcO 32oCxaY+XgCa
lktgAQAAAE2mlLq/JB4wYEDuvvvuHHPMMbn2m2Oy7z7rfzmspaVmqampveyV ly/Jzrtels7/
NrK87NkXB9c7jg09joZsW71kSZq3aL7BY9gYnvj90+l/wL6bxVgcLwAbyhkg AAAAQNMpldZ8
/NPKCHLOBZfm6al/rHvbtTyW1lRkeVJ+THt6xf01pj39u1rLl9ZUrHU/e/Y7 OD/+z9tz8KAh
6ffRQbn40m9mSfWS2uP95/PXXns9I792fvY7eHD27n9Izjh7dOa8Nae8nyTZ s9/BK57Xs6y6
ujpjrrgqB3z88Bzw8cMz9oqrUl1dXWs8//Xfd+WQTx2Tf9v34+Vld/383gw+ 8rjsdeAhOWr4
5zLtj8/k3l/+Kp8++sR85IBP5tgTv5iXXnp5jWNb9fWTTz2d/vv3q/dzltfU 5Pobb8nHBh6Z
fQ4amNEXjM2CBQvK7/+f3/0+Rw3/XD5ywCcz6IhhufueX5bXNeS46pr7tR33 sqVLc9V1N+Zj
hx6RAz/xqdz2kzvL269rrHUd7/rO4brGDEDTEkAAAACAJrOW/pFkRQQ5++yz 84UzvpJFixav
VwNZWtMsNTWl8qNz54kZP74ynTtPrLV8aU2zte4nSaZO+1PuuePWTJxwZ96c Mzc3fu9HdfWP
nPW1C3LSCcMyeeKEPP7ghOy80/ty5be/m1IpeXbK40lW/PrslMfrXXbDTT/M 7Ko388D4/879
d/93Zr4xO+Nurv15zzz3Qn7+kx/mmacmlZc9OWVqbrvlhjzx6P351OBDM+Ir X8/k3/4+P7zp
23nyNw9k0CGfyJhvXL3Gsa18vmTJ0kz732ez3z571/s53//xT/L8Cy/m5z/5 YR6feG8qKytz
3Q3fK+/jwjHfyJmnfSFPTXowt90yLn969s/ldQ05rrrmfm3H/d3v35q/vjw9 P//pjzLx3rsy
a3ZVeft1jbWu413fOWzImAFoOgIIAAAA0GTWdd+ESZMmZdy4cfnRzdensrJy ve6/sKSmIjXL
S6lZXkppydMZP74yI0cOzPjxlSktebq8bklNxTrv4/D1USPTqWPHdOrYMed9 bWQemPhInfcA
uefO27LfPnulVatWadeubb484kt54qmn13q/kNWX/Wrioznvays+r3Onjjn/ nLPzq9U+79yv
npmOHTvUWnbJBaPTo3u3VFZW5qTjj8mChQtz0Xmjai17/oUXa33WipCw4vn/ PvN8eu/8vrRv
367ezxk/4YFccM5X0r1b17Rt0yZfPeu0PPLY5PL6ysrKVL35VubMnZuePbpn 7L+fu17Htba5
qWs89z0wMReM/nK6d+ua9u3b5dyvntXgsdZ1vOs7hw0ZMwBNxz1AAAAAgCaz ti+JJ02alGOO
GZqrr7gk/fb68Hp/ofyBj12QP//vk+UzP0aOHJjnnluakSMH5sYbH87Qofdn zpzB+cDHLljn
vrfv1bO8zXa9eubNt+bUes/K5//77PO5/sZb8pf/eymLFi1OklRUVNS5bX3z 8NacOdl+u17l
Zdtv1ytvzZlba5uuXbqssZ8O225TXlZZWVnnspqamnqP9cmnns6B+/Vb6+fM qnozRw4/udb7
Vj2+6755aW758U9y8w9uTfv27fL1r43Mxz/av8HHta65WX08VW++VWufq1rX WOs63vcyh+sa
MwBNRwABAAAAmk49XxSX48flF6ffXh9+T9cT6tLl4SSpFT+SrBZBJq4YxoKB a93Xa6/PyPt2
2D5J8vqMmenSuVPtMa08Q+HCsRn95RE56ID90q5d2yxcuCj9D/1MndvWNw9d Oneq9XmvvTYj
nTt1XK99rPeyrLj806izz1jr53Tr2iU/+cGN6d6ta5373KPv7rnh6itSKpXy 2yenZOx/XJ1H
7z+wQcfVvHnzLF60OK1brwgPb78zb80x1DGe116bkZ3et8Max7OusTbkeNe1 rEFjBqDJuAQW
AAAA0GRKdfyXJMccMzRXXX5x9tn7w3Vu05D/3nprUObMGZyhQ6tz440PZ889 WyZJ9tyz5T/j
R3XmzBmct94atNb9JMk137kpc96emzlvz83V1383hw86pNb6lc+rq6vTqlXL tKxsmddmzMyl
37qm1vpt2rfP9H/8Y439r/p68KGfyFXXfzdvzZ2bt+bOzZXfHpfDBn6i3u03 ZNmHD/xkSinl
nXfn5ZV/vJoP7dl3re8/9ugjcum3rs0/Xn89y2qW5f9e/lu+fvFl5fXnXXJ5 Xp7+SpYuW5ZS
aXmW1dQ0+Lh2323X3Hb7XVm0eHFmVVXliquuqzWGusZzxKcG5ZvX3ZA3Zs/O vPnv5qrrv9ug
sTb0eNe1rCFjBqDpCCAAAABAk6nvnhtXXnZR9tnrQ+t1z4/VH7998Lrs1PeA bNNjTPmMj5Xx
Y+TIgdmmx5js1PeA/PbB69Z5D5CPfGjPHHPi/8vhR5+YDh22zZmnfq7Oez6M uXB0rvnOzTlg
wKfypbNG5SP/tmet9aecOCwnfn5EPnLgIfXeR2Lk6V9Il04dc8SxJ+eIY09O t65dctZpX1iv
+4g0dNnK11Om/jF7fWjPNG/efK3v/8JJx2evD+2Z00aOzv4DPpULLrkinzj4 o+X1Az7WP6PO
H5MDPvGpXP/dH+QbYy5o8HFdfP6oPPb4b3PQoUfkc6d9OfvuvVetMdQ1ntO/ eHJ67/S+DD/5
1Hx66Enp2aN7g8ba0ONd17KGjBmAplNR8n9jgEZ13+235MgTT0+SLF2y2IQA AFBYLVu1Lv8Z
+OBBQ8rLJz80ofx6+v89t8b7pv7xTysue7WB7r13XE4ZdVf59cKqyzJ+fGWG Dq1O226XlJf/
13XH5aijzq53P3sfNDDTfvdwoX+vvnH1d9J7p/flxOFHbxU/m415vL3fv2f5 537l3wUBaBzu
AQIAAAA0mbr+XeY+H/nQRvnX8zXLm+XWa04ovx54xFczdOjEzJkzOHf95wmr bNlsnZ9X9H8/
+vspf8jxxw7Zas5a2NqOF2BrJYAAAAAATWcTfgE99KgRtV7PW/avyxetvm6d 4yj4F+X33XXb
VnGcW+vxAmytBBAAAACgyTTmv8Dfpnl1lrz98WzTvHq9vveeOvlBZwoAwBZI AAEAAACajLAA
AGwqAggAAADQZEoRQACATUMAAQAAAJqOM0AAgE1EAAEAAACajEtgAQCbigAC AAAANJm9+h9i
Eii0BfPeNgkATaSZKQAAAAAAAIpGAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAAAApHAAEAAAAA AApHAAEAAAAA
AApHAAEAAAAA/j979x1mRXm3AfhZQEEBRQGxG1FUxGA3FkQNtlgwJl800SS2 iCkSMWosIBaa
xhJLYjcmxm5igiUaS+y9G0sEFRVQOliQtrvn+2PZlZUFlr4O931dc3H2zJz3 zPnNnGF3nnnf
ASgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDCEYAAAAAA AACFIwABAAAA
AAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACgcAQgAAAA AABA4QhAAAAA
AACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAAKBwBCAAA AAAAUDgCEAAA
AAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAAAApHAAIA AAAAABSOAAQA
AAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDCEYAA AAAAAACFIwAB
AAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACgcAQg AAAAAABA4QhA
AAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAAKBwB CAAAAAAAUDgC
EAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAAAApH AAIAAAAAABSO
AAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAAAIDC EYAAAAAAAACF
IwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAAAACg cAQgAAAAAABA
4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAAAAAA KBwBCAAAAAAA
UDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEAAAAA AApHAAIAAAAA
ABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAAAAAA AIDCEYAAAAAA
AACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQAAAA AACgcAQgAAAA
AABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4ABAAA AAAAKBwBCAAA
AAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUjAAEA AAAAAApHAAIA
AAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDhCEAA AAAAAIDCEYAA
AAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQOAIQ AAAAAACgcAQg
AAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAAFI4A BAAAAAAAKBwB
CAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAAAIUj AAEAAAAAAApH
AAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAAAEDh CEAAAAAAAIDC
EYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAAAABQ OAIQAAAAAACg
cAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAAAAAA FI4ABAAAAAAA
KBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAAAAAA AIUjAAEAAAAA
AApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAAAAAA AEDhCEAAAAAA
AIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEIAAAA AABQOAIQAAAA
AACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcAAgAA AAAAFI4ABAAA
AAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIRgAAA AAAAAIUjAAEA
AAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBwBCAA AAAAAEDhCEAA
AAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAoHAEI AAAAAABQOAIQ
AAAAAACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAACkcA AgAAAAAAFI4A
BAAAAAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAAgMIR gAAAAAAAAIUj
AAEAAAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAAAKBw BCAAAAAAAEDh
CEAAAAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUjgAEAAAAAAAo HAEIAAAAAABQ
OAIQAAAAAACgcAQgAAAAAABA4QhAAAAAAACAwhGAAAAAAAAAhSMAAQAAAAAA CkcAAgAAAAAA
FI4ABAAAAAAAKBwBCAAAAAAAUDgCEAAAAAAAoHAEIAAAAAAAQOEIQAAAAAAA gMIRgAAAAAAA
AIUjAAEAAAAAAApHAAIAAAAAABSOAAQAAAAAACgcAQgAAAAAAFA4AhAAAAAA AKBwBCAAAAAA
AEDhCEAAAAAAAIDCEYAAAAAAAACFIwABAAAAAAAKRwACAAAAAAAUThMlAFh6 llu+mSIkufOm
KxUBAKCAuh9yjCIAAEuNAASABqHrngd8rdf/sfsHL5XPsLTet6Gux9d1/bCt AQAAWPQMgQUA
AAAAABSOAAQAAAAAACgcQ2ABFFBZWVlKpZJC8LW0foeOGTb0rQWer07Fek8A im/yp5MUAQBY
LPQAAWC+lJWVKcIisn6HjoqA/QMAAAAWEz1AABqYTz75JGeccUYGDx6cESNG pGXLlunatWt6
9uyZbt26LdF1qasnyZLsWTLrCeCWLVuma5edctaZp6f1qqsulW2zIFe/z+01 9W1rft93bifO
l+TV+w1lPb6u6zfrOiyqnhfvvTcs5134+zzz7HP54osvssnGG+eYHj/LPnvv 5eALAABA4QhA
ABqYgw8+OBtssEH+85//ZN11182ECRPy8MMPp1+/fks8AGkIqk/6jhs/PgMG nZvep5+RK/54
qR2lHjVLlu6QRQ1lPb6u67fIP+/77+fgQ3+aXj1/lYH9zs6KzVfMm2++lauv +ZMABIClbvyY
j/P8U49mhRWapqys/oNVvPLKa4pHg7Xf9w5K+w03VgiApUgAAtDAPPzww/nb 3/6WFi1aJEna
tm2bgw46KAcddFDNMhUVFenTp0+uvfbafP755+nevXuuvvrqtGzZcrb25rXs jBkzcvLJJ+ev
f/1rysvL06dPn5xwwgk1Q11V/1vd82PWXiFTp05Nz549c9tttyWpCm8uueSS NGvWrGbZyy+/
POecc04++uijdOrUKdddd1222GKL+a5Lm9atc0af3tmx625Jkg+HD8/Z/Qfl 6WeeTUV5eb71
re1ywXnnpE3r1kmqTmj3Oe2UXPOn6zJ69Ji8N+TNVFRU5PzfX5zbb/97Pp88 OXvu3i2DBpyd
5s2b17xmwNln5rIrr8qYMWPTYcMNct65g7Jpx01qegtU/7soTpbPetL90cce z4Bzfpf33/8g
q63WNsf+8uf54UE/WKTvuyA1mdf8BTGvbZckV1x1Ta7905/z+eTJ2X/ffdLv 7DPSdPnl69y/
F/X6Le467dptr1x9xR/TocOGSZK/3/HPfP97302SDB36To7++a/yyEP/rtk/ 5rYP3HTzrXXu
r3W56JI/5hfHHJ1DD/lhzXNbbrF5LvvDxTU/T58+PWec1T93/+veJMn++34n Z/btk+XrqH1d
odGsz63foWP6n3VGrrz62oweMzrrrbdeBvY7K+9/8EEuu/yqjBg5Mh023CAX nn9uNt5oo3l+
B+f2PQHg6+2TiePz7pDXs+3O3bLSqm3SqFH9hlx98t+Dc9qA38/2/ND/vZFv tN9QYZO8/947
6bBJp9meH9j7+Oy+++4KNB8efPDB/PaMc+q1bEVFeT58f1juv+eONG3aLGut s54CAiwl7gEC
0MDstNNO6dGjR55++ulMmTKlzmUGDhyYF198MS+99FJGjx6dFVZYISeffPIC LXvmmWfmjTfe
yMsvv5xhw4ZlxIgRSb4MPEql0hyHverTp08++uijDB06NEOGDMmHH36Y008/ vdYyjzzySJ58
8slMnDgxBx54YHr06LHAtZn1/iNH9fhFjjz8p3npuafy/DNPZIP27dN/YO0/ SF599bXcPfiO
vDfkzSTJZVdclTfeeDN3D74jLz77ZJo2bZpBvzu/1mueefa5/P3Wm/Pqi89m rz33yGl9+ib5
8qTzsKFvLZaeAr858eQcf1zP/PeVF3LbTTfUXM24qN93fmtSn5rNr/psu+ee fyH33jM4jz/y
YMaOG5eLLq6718/iWL/FXaedd94pzz3/QpJk1KjROePs/pk8eXKS5Nnnnk/X rl1qLT+3fWBO
+2tdnn76mey/73fm+rnPv/CijBo9Og8/eF/+88C9+eijj3PB7y9e4Do+8dRT ufWmv+bVF5/L
d7vvl8OP6pFHHnksN15/XV576bnsu8/eOaV333p/pjl9TwD4entv6JvpsNlW adWmbb3Dj2ql
ysrZp1JlKisqTBUVKZUq66xRkjRZbnnTfExJUlmqrNdU1qhR1mu/Qfbu/oM8 +dh/fMkBliIB
CEADc8cdd2S99dbL0UcfnVVXXTXrrbdeevXqlYkTJ9Ysc+211+bSSy/N2muv nZYtW+acc87J
HXfcUWd781r2+uuvr5nfqlWr/P73v6/3ut5888256KKLstpqq6Vdu3a55JJL cvPNN9da5rLL
Lstaa62V5s2b58QTT8zLL7+8QHUZP2FC+g0clC477ZgkeeDeu7PjDtunadOm admyZX574vF5
4omnar2mz2kn17pfyK23/y1nnN47q6/eLs2bN89vT/pN7r//wVqvOfvMvmnX brWssMIK6fGz
I/PGm0tmWKSmzZpm7JixmThhYtZcc42cM7DfYnmf+a1JfWo2v+qz7fr2OTVt WrdOm9at07fP
qfnnnXfV2dbiWL/FXadddu6SZ597Pknyj8F3plnTprnrnn8lqQpAdtm5S73X c37214mTJmWV
VVaZa3uD77qnpvZt27RJ39N7Z/Bddy9wHQf2OztrcAMS9AAAIABJREFUrLF6 mjVrliMPPyyT
J09Ov7POqPXc66+/Ue/PtKS+JwAsWZM/nZgWKy/YPd6qL9aZdUopqaysMFVW JKU51ChJo8aN
TfMxJXMI3OYyrbHmmhk76mNfcoClyBBYAA1Mq1atMmjQoAwaNCilUilvv/12 Lrjgghx00EF5
4IEHkiQjR47MJpvUHuZm1t4Rs5rXsh9//HHat2+/QOs6evToWq9t3759Ro8e XWuZVWc5ibzi
iiumvLx8vt6jetifFi1aZOeddsyAfmcmSV56+eUMOvf8vPHmWzU9Zb5ag9VW W+0r6zsmu++1
z1zr1qrVyjWPmzVrNt/ru6Au/8MlufSPl+eiS/+Qli1apm+fU9Pt27st8veZ 35rUp2bzqz7b
bp211671eNy48XPYBxf9+i3uOu24w/Y54+z+SZLBd96d884dmD9cdmV+eNAP 8tIrr+R35wyY
j+NF/ffXVVq1ysSJE9O2bds5LjN+/Pisu846NT+vu87aGT9+wgLXcZVVWtVa v7qe++o6z+0z
LanvCQBLVmVlaY49P0qlUt5/+42sv8lmc5hfOftzqaw6+b+YDXnn/Wy11Vb5 /NMJC/V4cSql
ss4asYD1rKOWZ57VP31PPy2NGs1+jXGjRo1SUVGhcABLkQAEoAErKyvLJpts kosvvrjWldtr
rLFGnn766ay11lrzbGNey66xxhp57733stHMMfjnR7t27TJs2LBsuGHVGMvv vffebCeOF9ac
hn36Zc9e6X3qydm1685p0aJFJk+enG9uue1c22rbtk3+cfutaddutQa3rTfv /M1cc+VlKZVK
efSxx3PSKb3z/NOPL/b3nVdNFkfN6rPtho8YkW+sVzVW8oiRI9O69apLdZsu yjqtuOKKWXed
dXL3v+7NCis0y2677pJL/nBZHnjwoay37rpZYYUVFstn2GGH7XPPvffl8J/+ ZI7LtG7dulbt
Pxw+olaIWeuXyCZNMnXq1JpgY+LESYX9ngCwdFRWVmTIay9m/OiPs9nWO2by 5E9nW6auoVpL
paSyYvGf9N9qqy2TlFJZUblQjxenUilzHM6WBahn5ey1vPa6P+ejjz/Oxb+/ IM2aNlUkgAbG
EFgADcyuu+6a2267LaNHj05FRUWGDx+eU045Jdtvv33NMj//+c/To0ePvPvu uykvL89///vf
/PCHP6yzvXkte9hhh6Vnz54ZMWJEJk2alOOPP75mXqtWrfL222/PcV0PPvjg 9OrVK2PGjMmY
MWNy3HHHzXE9FrVp06alWdOmWb5p0wwfMSKn9Tljnq/58SE/zCm9T88HH36Y 8vLyvD1kSH7d
64R6v+dKK7XMu+8NWyyfp2evE/LOO+9mxozylEqlVM5ypdjifN951WRha7ag 267/wHMzfsKE
qqHPBpyT73bff7Fs06VVp647d0n/gefkuwdUfa4Duu+Xvmf1S9c5DH+1KPaB Xr/+VS674urc
dMttmTTpk0ybPj2vvPpafnnscTXL7L/vd3J2/0EZN358xo0fn7P6DUj3/fap s72Om2ycq675
U6ZOnZrRo8ekT98zF/v3fm7fEwCKZcb06Xn9+acyfnTV8EHNmq1Y53J1D4FV WiLDS00aPyaT
xo9Z6MeLdwis0hyHwGL+1XW/jyS5975/5+AfHZpx48
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427192 is a reply to message #427183] |
Thu, 05 February 2009 12:58 |
Ed Merks Messages: 33141 Registered: July 2009 |
Senior Member |
|
|
This is a multi-part message in MIME format.
--------------040000050301020605090905
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Miguel,
I don't know much about OCL. I've added the OCL newsgroup to the "to"
list of the reply. Do doubt Christian will see it...
Miguel Angel Garcia de Dios wrote:
> Ih Ed Merks,
> I've changed the property volatile of the "people" ERefeference of
> "People" class, which is my container of Person. Then I can generate
> instances of Person from "people" EReference but now I have a new
> different problem: with the "OCL Interpreter Console" plugin installed
> I have made many OCL queries but I've obtained an unexpected value
> attached as a screenshot: Having three instances of Person, the OCL
> query "Person.allInstances()" returns an empty result. But if I write
> "self.name" (being the context an instance of Person) I obtain the
> desired result ('Ada' for example). I think I have any wrong property
> value because it seems like Person isntances are no related ro
> something similar.
>
> Thank you!
>
> Miguel Angel Garcia de Dios wrote:
>> Ed Merks,
>> Yes, I did. I marked the feature as volatile.
>> I think it cannot be so complicated. Maybe any value of a property is
>> not correct so, to ensure that I'm going to attach screenshots for
>> everything (it is not so much).
>>
>> I am really concerned with that because I think it should be easier.
>> Thank you in advance!
>>
>> Ed Merks wrote:
>>> Miguel,
>>>
>>> Did you mark the feature as volatile such that no code is generated
>>> for it?
>>>
>>>
>>> Miguel Angel Garcia de Dios wrote:
>>>> Ed Merks,
>>>> I have the containment property of my desired container class in
>>>> true, the GenFeature properties are also update: containment=true
>>>> and the GenEdit properties contains children=true and create
>>>> children=true.
>>>> I hope you can be more explicity with the solution of my problem
>>>> please.
>>>> The last error I've obtained is when I create My.container file
>>>> from a Poeple object. Hten I click on it and I get the nex error:
>>>>
>>>> Unhandled event loop exception:
>>>> java.lang.UnsupportedOperationException
>>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>>
>>>> at
>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>>
>>>> at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>>
>>>> at
>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>>
>>>> at
>>>> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>>> at
>>>> org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
>>>> Method)
>>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>>> at
>>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
>>>> Method)
>>>> at
>>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>>> at
>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>>> at
>>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>>> at
>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>>
>>>> at
>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>>
>>>> at
>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>> at
>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>>
>>>> at
>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>>
>>>> at
>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>>
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>>
>>>> A lot of thanks!
>>>> And always sorry for my bad English.
>>>>
>>>> Ed Merks wrote:
>>>>> Miguel,
>>>>>
>>>>> Comments below.
>>>>>
>>>>>
>>>>> Miguel Angel Garcia de Dios wrote:
>>>>>> Hi,
>>>>>> I think my question is easy for us but i have spend too much time
>>>>>> in it:
>>>>>> I want to create a simply ecore model and then i want to
>>>>>> instanciate it and check some OCL queries on it.
>>>>>> My purpose is to create an instance of an ecore model which
>>>>>> contains as instances of a class named Person as I want.
>>>>>> These are my steps:
>>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>>> -People, which contains an EReference with multiplicity
>>>>>> 0..* to the EClass Person.
>>>>>> -Person, which contains only an EAttribute named "name"
>>>>>> with String type.
>>>>>> 2.- Create automatically the .genmodel file from the ecore
>>>>>> model .
>>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>>> 4.- Launch an Eclipse application from the project.
>>>>>> 5.- Create an instance of the ecore model.
>>>>>> My probles is in the last step: I begin the model with an
>>>>>> instance of People and hten I desire to create as number of
>>>>>> instances of Person as I want but I cannot do that. I don't know
>>>>>> the reason. I've seen the EXTLibrary example too many times but I
>>>>>> cannot get my desired result.
>>>>> The lack of there being a containment reference is the likely
>>>>> reason. And note that even if you change it in the Ecore model,
>>>>> the GenFeature properties for the feature will *not *change, so
>>>>> you'll need to update those as well to support children and child
>>>>> creation.
>>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>>> as many Person as I want. That class is People. I've tried many
>>>>>> possibilies changing the class properties obtaining different
>>>>>> errors.
>>>>>> Can somebody tell me how to create an ecore model that has an
>>>>>> EClass which can generates as many instances of another class as
>>>>>> I want?
>>>>>> Thank you in advance!
>>>>>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
> ------------------------------------------------------------ ------------
>
--------------040000050301020605090905
Content-Type: multipart/related;
boundary="------------050408000005020407060604"
--------------050408000005020407060604
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Miguel,<br>
<br>
I don't know much about OCL. I've added the OCL newsgroup to the "to"
list of the reply. Do doubt Christian will see it...<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<blockquote cite="mid:gmeemi$n7a$1@build.eclipse.org" type="cite">Ih Ed
Merks,
<br>
I've changed the property volatile of the "people" ERefeference of
"People" class, which is my container of Person. Then I can generate
instances of Person from "people" EReference but now I have a new
different problem: with the "OCL Interpreter Console" plugin installed
I have made many OCL queries but I've obtained an unexpected value
attached as a screenshot: Having three instances of Person, the OCL
query "Person.allInstances()" returns an empty result. But if I write
"self.name" (being the context an instance of Person) I obtain the
desired result ('Ada' for example). I think I have any wrong property
value because it seems like Person isntances are no related ro
something similar.
<br>
<br>
Thank you!
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Ed Merks,
<br>
Yes, I did. I marked the feature as volatile.
<br>
I think it cannot be so complicated. Maybe any value of a property is
not correct so, to ensure that I'm going to attach screenshots for
everything (it is not so much).
<br>
<br>
I am really concerned with that because I think it should be easier.
<br>
Thank you in advance!
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Miguel,
<br>
<br>
Did you mark the feature as volatile such that no code is generated for
it?
<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Ed Merks,
<br>
I have the containment property of my desired container class in true,
the GenFeature properties are also update: containment=true and the
GenEdit properties contains children=true and create children=true.
<br>
I hope you can be more explicity with the solution of my problem
please.
<br>
The last error I've obtained is when I create My.container file from a
Poeple object. Hten I click on it and I get the nex error:
<br>
<br>
Unhandled event loop exception:
<br>
java.lang.UnsupportedOperationException
<br>
at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
<br>
at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
<br>
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
<br>
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
<br>
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
<br>
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
<br>
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
<br>
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
<br>
at
org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
<br>
at
org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
<br>
at
org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
<br>
at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
<br>
at
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
<br>
at
org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
<br>
at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
<br>
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
<br>
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
<br>
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
<br>
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
<br>
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
<br>
at org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
<br>
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
<br>
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
<br>
at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
Method)
<br>
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
<br>
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
<br>
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
Method)
<br>
at
org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
<br>
at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
<br>
at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
<br>
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
<br>
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
<br>
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
<br>
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
<br>
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
<br>
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
<br>
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
<br>
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
<br>
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
<br>
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
<br>
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
<br>
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br>
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
<br>
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
<br>
at java.lang.reflect.Method.invoke(Method.java:597)
<br>
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
<br>
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
<br>
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
<br>
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
<br>
<br>
A lot of thanks!
<br>
And always sorry for my bad English.
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Miguel,
<br>
<br>
Comments below.
<br>
<br>
<br>
Miguel Angel Garcia de Dios wrote:
<br>
<blockquote type="cite">Hi,
<br>
I think my question is easy for us but i have spend too much time in
it:
<br>
I want to create a simply ecore model and then i want to instanciate it
and check some OCL queries on it.
<br>
My purpose is to create an instance of an ecore model which contains as
instances of a class named Person as I want.
<br>
These are my steps:
<br>
1.- Create the ecore model. It is compoused by two classes:
<br>
-People, which contains an EReference with multiplicity 0..* to
the EClass Person.
<br>
-Person, which contains only an EAttribute named "name" with
String type.
<br>
2.- Create automatically the .genmodel file from the ecore model .
<br>
3.- Generate the Java code aotumatically fron the .genmodel.
<br>
4.- Launch an Eclipse application from the project.
<br>
5.- Create an instance of the ecore model.
<br>
My probles is in the last step: I begin the model with an instance of
People and hten I desire to create as number of instances of Person as
I want but I cannot do that. I don't know the reason. I've seen the
EXTLibrary example too many times but I cannot get my desired result.
<br>
</blockquote>
The lack of there being a containment reference is the likely reason.
And note that even if you change it in the Ecore model, the GenFeature
properties for the feature will *not *change, so you'll need to update
those as well to support children and child creation.
<br>
<blockquote type="cite">Being more exaclty, the idea is to be
a EClass which can generate as many Person as I want. That class is
People. I've tried many possibilies changing the class properties
obtaining different errors.
<br>
Can somebody tell me how to create an ecore model that has an EClass
which can generates as many instances of another class as I want?
<br>
Thank you in advance!
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
<br>
------------------------------------------------------------ ------------
<br>
<br>
</blockquote>
<br>
<br>
<hr size="4" width="90%"><br>
<center><img src="cid:part1.02050102.02090700@gmail.com"></center>
</blockquote>
</body>
</html>
--------------050408000005020407060604
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-ID: <part1.02050102.02090700@gmail.com>
iVBORw0KGgoAAAANSUhEUgAABkAAAASwCAYAAACjAYaXAAAAAXNSR0IArs4c 6QAAAAZiS0dE
AP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kCBQoK F8BQrI4AACAA
SURBVHja7N13XBTH3wfwD6D0Ir1YAMFCNGqMXYMYe6+o2GNXwAaoiAXsvWs0 MbFFjbHEHrFE
JMaujy3qTzSAhXYUjYKUO+75A1k5OLgDEY7j885rX97tzs7Mzu6R2fve7GhI pVIpiIiIiIiI
iIiIiIiI1Igmm4CIiIiIiIiIiIiIiNQNAyBERERERERERERERKR2GAAhIiIi IiIiIiIiIiK1
wwAIERERERERERERERGpnQpsAiKikvU6PgYAIIp5hUf3bqJRq3awq+bEhinj op4/w81L54T3
LvUawdKmMhuGiIiIyq3QM0cV9omy+8TdPcaywT6j4/t+YD9VRT4HlSxs2ChE RCVIQyqVStkM
REQl53V8DIMfai5nMIQ3mERERFSeFRQEye4Tdxs4hg1Vgk78+iP7qaX4OWAA hIioZDEAQkRU
wsIe3GLwo5zIDoTw5pKIiIjKM3lBECH4MWA0G6iUnNi/jf3UUvgc1Kj7NRuD iKgEcQ4QIiKi
z8SumhMatWqHR/duIvTMUYhiXrFRiIiIiHKQ8r9S+6/rgFHspxIRkdrjCBAi ohJ2bO9Wjv4o
hzgahIiIiMqz0DNH4dqhp8z7rv1HsmFUxMnffmY/tYQ+Bz0GjWNDEBGVIE6C TkREVAKyRoNA
mBuEN5dERERU3vH3mKqji/t3OHVgO/upRESkdhgAISJSISfXuRa4vevkUDZS GcYgCBEREZU0
U0tbpdIliaJLJB9l9OrdR+m0R34/zJNcTNQ5CFIWPwdERFQ8GAAhIlIx7Sde kLs+7LQ3Tq5z
ZRCkjGMQhIiIiEqaopEWGhoaJZqPMvnt2XNC4f6DB3cr0VEkVtY2iIuNUetr pXO/Efjj4A61
7Keq6ueAiIg+L06CTkSkQsRSDWRKpXIXbQNzOFSvq3CUSHlgampaamVraGgI S2G25ZRzcnRO
OElERERlRc6+jrylsKRSqdylOPL4HEtxlWdlbfNZ6qetoysshdmWe+nUdzj7 qSX4OSAios+L
I0CIiFSIWKKJzHzu+bQNzAEADtXr4tCqNujrcyHffExNTVGrVi1cuXJFphMu lUrRrFkzPHny
BElJSSpxzKampoWuS2nXPfsGWENDI9/XinAkCBEREZWU4vpStth/+V5AfmJx JoYP7wEDAwNU
qmQCMzNzWFpYwtLSAmbmZmjWrEuBeVjb2uWbd2x01Kc0glLJrG3t8i0nNjpK qXwKykOZfmra
+xQAgI6evmw/VYmyO/UZhtOHd6lVP1VlPwdERPRZMQBCRKRCMqSakEhk10U8 mwsHp/kw+9JL
WHf/fx0V5qWvr4/g4GB06tRJWHfq1CkYGBiwoYuJVCoVbnCK8vgFBkGIiIjo c1PluQikyL//
lJEhwbZtvwPI/qEJoPFhDw2NrO0F5RET/XH0go1tZZn3BZX7KXX+lLTFnUdB /VRl8+zYZyiC
D+9Wi34q5+QgIiq/+AgsIiIVkiHRQCYgLLdv/A18+Dfn+gyJ4l8VTZo0CWvX rpVZt3btWkye
PFl436VLFxw+LDtx5MuXL1G7dm38999/OW5AMxAQEABnZ2c4ODhg48aNwra0 tDRMnjwZ1apV
Q7Vq1TBlyhSkpaUJ201NTbF9+3bUq1cPVlZWcHV1xf3794Vt2f/mfKxVREQE PDw8UKVKFdjY
2KBfv34QiUQyeSqTPwBIJBIEBQWhRo0asLW1xahRo/Du3TuZ/Tdv3ow6derA zMysUDeT2e9z
3lTmHAmiDD4Oi4iIiMotqVT+AiA9Q4zRo3tj8uQhmDt3Itatm4M9ezbg7Jl9 uHkzGOkfAiD5
5pErv+zXkRERGDZsBJyca8DeoTo8PAYjXiQStv/5559o3boNqlZzQKPGTbFn zx65+dy9excN
vvoaP/64TWGZuRcb28oKy7OxzQo42NhWlklf0JKa8k5hPzU15Z1ybfZh6dh7 CPupRERUpjEA
QkSkQjIkmpBIpMJiZhaMw4d1YGYWLLM+Q6L4z3ePHj0QHx+P69evAwAuXbqE pKQkdO/eXUjj
4+ODZcuWITMzU1i3fPlyjB8/HsbGxsK6pUuX4vHjxwgNDcXdu3cRFfVxKP7C hQsRHR2NW7du
4ebNm3j58iUWLVokU5dLly4hODgYERER6NatG6ZMmQLg46OskpKSZB5rNXDg QEyYMAFPnz7F
kydPUKNGDQQEBOR7rPnlDwCrV6/G3bt3cfHiRYSFhUFXVxfz5s2T2f/WrVu4 ePEiEhMTlbxX
l+Y7B0jRR4IwCEJERETlS0FzbaSnSbBm7X4sWvQT/PxWY9SoAPToORbNW/RB rVpuSE+TFJhH
fnN3DB02AmPGjMKDe3dx7+7/wdnZCXPnBQnbvbwnw8/XB2H/e4Qjhw/i1q3b efI5c/YcBg0e
iiWLF2H0qJGFni8k57b8yot+9QIAEP3qBaJfvVB6HpD3yW/z7ae+T35bpLlF OvQazH4qERGV
WXwEFhGRCkmXaEDyYRIQTfFNHD6sAy+v9ti48Sy8vG4gs0IjIZ0impqa8PLy wtq1a7F3716s
XbsW3t7e0NT8GDxp27YtDA0NcfjwYfTr1w/Pnj3D+fPnsWzZMpm8fv31Vxw9 ehR2dlnPUl68
eLGw7eDBgzhx4gQsLS0BZAVLevTogfnz5wtpVq5cKYza8Pb2xooVKwqs+9Wr V4XXurq6mDt3
LurVq5dv+oLy3717Nw4dOiTUfd68efjmm2+watUqIc2iRYtgYWFRqueej8Mi IiIi+ig1VYyZ
M4fkOweIvcM3Rcr3YsifMv1M/5kz0Lhpc5l1sXFxSExMROXKlbFqpWy/dfuO nVi3fgN+2bUD
DRo0+OTjVFSequjQazDOHNnDfioREZU5DIAQEamQ2t/44+GdK8LIDy+v9njw IEMIgvTpcwKJ
iR1R+xt/pfLz8PDA0qVLcejQITx48CBrSH0uPj4+CAwMRO/evbFkyRJMnjwZ enp6MmliY2Ph
4OAgtwyRSCSzzcHBQeZxVYDsI6v09PQgFosLrPf169cxb9483Lt3DykpWZM3 FjSZYEH5R0dH
o0mTJjLpc+dlY2NTqPOU30iP7JEhRRkFAjAIQkREROVLQX2mtDQxgubvyOp7 ZSfL7sJJgfS0
DIV5yCvr5q1bWLhwMR788wApKe/z9O22/bAVa9atw8pVq2FsbIT5gYFo376d kM/WH35Af/d+
qF+/vsKyC9qubHmF7VfqGxoX2E9Nefdfkc9X+56DcPboXvZTiYioTGEAhIhI hZibnwEAmeAH
gFxBkOAPqd0U5qejo4Px48dj/PjxCAgIgI6OTp40nTt3xqJFizB//nzcuHED mzdvzpPG2toa
ERERcHZ2zrPN0tISkZGRqF69OoCs+Ts+dTTFiBEjsHDhQrRr1w5GRkZ49+4d qlWrVqS8rK2t
cfbsWdja2hbLOcod4Mg9uSSDIERERKSuCvpBSlEoCoAsXjw63xEgpqaNFOYh r6yx4yZg7pzZ
+LaNGwwNDZGcnIxaLnWE7fXr18OOn3+CVCrFhQshmObrhzu3bwr5HDpwAO79 B8DExBgTxo8v
8vEpW15h+pQGRiZK9VOT374p8jlr18MD547tK9f91OL+HBAR0efFAAgRkQpJ SOgADQ0N9OkT
/OGxV1lBkLp1K34IfqQhMbFjoW6EpkyZIjMnhrwOvI+PD0aNGoX169dDW1sb QNaoiux5OTw8
PDBjxgxs2LABBgYGWLZsmfAYrD59+sDf31+YGH3mzJno27ev0vUzMTFBWFgY atSoIaxLTU2F
rq4udHR0EBkZiQULFhS5TUeOHInJkydj2bJlqFq1Kp48eYJVq1bhp59+Kpab n+xz8SlBj9wY
BCEiIiJVkySKLv5MCwyAZMDHZ0t+OyItTawwD3llpaamQldHB9oVK+L58+dY tnyFzPaJXt6Y
OnkS7O3tIZVmQiKRyJRha2ONQwd+g/tAD0jEEnh5TizS8SlTnrGxMZ49fQon J6ci9VOT/3st
v5/6iX3Wdt0H4tzxX8tlP/WzfA6IiOiz4iToREQq5NLp1bB3aQYj63nCiI/s 4IeXV3sYWc+D
vUszXDq9uljL1dLSgpOTEzw8PORunzFjBmrWrIlWrVqhQYMGqFKlirBtzpw5 sLKyQsOGDdGw
YUPY2tpi9uzZSpft7e2NNm3ayDzGasOGDQgICEDlypXRvXt3NG3atMjHNmXK FDRv3hw9e/aE
nZ0dRo8eja5du35Se2loaOS5kcz+RV1x/SKME6MTERGRupPm8x8ApKVJkJYm zmeRCAEQqRL/
5Uy3csUyBM1fgBq1v4B7/4Fo1Ohrme0dO3TAqLHjUaP2F1i4eAnWr1udJx8r a0sc/O1XHDh0
CGvWrc+3zMrVHPIsuetTUHnjx41Fp67dhf2UOc7s/ui7/5KE9e/+S5Lpp0qL 4b+23Qewn0pE
RGWChrS4fq5KRERKObZ3Kxq1age7anl/yTVvek8Mm7ZfeJ8imo/Dh3XQp08a 9C3nCut3rR6A
oOVHi61OgwYNQt++fQs1coNKRtTzZ7h56Rxc6jXiSBAiIiIqs0LPHIVrh54y 79t26y837YBB
QzFyZNYPfqRSABpZ039IAUSGnwAAODh0w8/bp2H/3t1s3FJ0/sRv7KcW8nPQ Y9A4NgQRUQni
I7CIiFSIJFMT21d+HIXRvvsU9OkTjMTEjti/M+fojOIZwJeZmYndu3fj33// Re/evXkCVBAf
h0VERETqKr/fY/66Zxd+2LYDVap2kVn/8sUpjB09AgDww7YdBeZBJePbru74 8+QB9lOJiEhl
MQBCRKRCFq78XeZ9SEiIcGOXe1txMDc3R7Vq1fDzzz9DU5NPRVRVDIIQERFR eTN29AghyJFz
Xc7XOd9T6WEQhIiIVBkDIEREKszNzQ2A22fLP3uSc1J9DIIQERGRulE0emPM qOGFSk+lp02X
frhw6iD7qUREpHIYACEiIiojcgZBHt27yectExERUZnGgIZ6cevcFyF/HGI/ lYiIVAoDIERE
RGWIXTUn9BjkJEyODvBXdkRERFRGMQCidtw69QEAhJw+zH4qERGpBAZAiIiI yiCOBiEiIqKy
TgoGQNRV6069cfH07+ynEhFRqWMAhIiIqIzKPRrk0b2bAMCbTCIiIiobOAJE rbXu2AsAcDH4
CPupRERUahgAISIiKuOyAyEAGAwhIiKiMoNzgJQPrh16Cq9DzxxlP5WIiEoU AyBERERqpKBg
CBERERFRacovGEJERPS5MABCRFQK7Ko5sRGoRK6z7GAIERERUWk6tncrG4Fk 5AyGlBehZ47y
xBMRlTBNNgEREREREREREREREakbjgAhIipFr+Nj2AhEREREpLYqWdiwEcqg O3fv4ZvWbfD2
dQIbg4iIyjSOACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdPgKLiEiF 3NzTTe76RoNP
sHGIiIiIiIiIiIgKgQEQIiIV4zrxmsz7sNPeuLmnG4MgREREREREREREhcBH YBERqRBJZt51
2gbmsK3eBNd3d2MDERERERERERERKYkBECIiFSLO1EKmVIrjof/DwbMPkJmZ FQDRNjBHZecm
+HtnDzYSEREREVEh3TjYmo1ARERUDvERWEREKkQiyVo6taiZ9T5TCvN6XtCu kBWvNvny/wqd
p2MNF+G1vr4+vmpQH4FzAuDs7KTWbfn27VusWbcRZ8+dR0xsLAwM9NGkcWMM HzoYLVs0V7rt
wsMe8cIkIiIiKsNuHGyNdmOv4dwPTdG438Viz3//30lYdyExz/rJbcwwoKUp T4AaMLW0VSpd
kiiajUVEpGIYACEiUiFpUk1kZEpx/moYUtMykJySDofKZjD7u4+QxnlEcKHz zf4S/+3bt9i5
ew8mT/PFyWO/q3Vbek+ehqrVqmLvLztgZ2uL12/e4MrVa9iw6XulAyBERERE VLZsPyI7n16t
FB9AI+t1RoYEl/e1QguPS59UxuWtDQAALcbdwYSdr1BVJx1BfZ3QvK45wl6+ Q/zrNPwT9hKX
771CyNMUfD+8stq3+6nLT5VO26WFc7GU+So2ASKRCKmpqdDV1YWlpSUqW5t/ luNLEkXD1NIW
UqlU7nYNDQ0GP4iIVBQDIEREKiRDrAmxBGjdqAagIYW+jhYuz3VGo2XhQppz MxzRyO9KkfI3
MjLCmNEjsWHTZgCARCLByjXrcODAIbxLTkaHdm2xZNF8GBgYAAAuhv6FRUuX IyIiElZWlvCa
OB4D+7sDANLT0zEvaCFOnPoDANC9a2cEzp0NbW1tAPJHT+Rc51jDBbNnzcS2 n7cjNjYO/z55
iIyMDCxbsQq/HzkGsUQMr4kTMGbUd0rVNbcr165h88Z10NfXBwCYm5mhW5fO 6Nals5CmoDyz
R85k/8uRIERERESqbf73wfimWV0AWTEP6Z2+6DTxCABAmhKBTt8dBDSAo5ub oc13Vz+prM7+
j/HHktq4G7MP1Vz08k135+p94BMCIAGbQoXXizxdVbr9G3zbSmGaO39eKpay XsUm4MWLF6hS
pUrW+dbQQHx8PAwNDWFioPNZji9JFA0NDY08QRAGP4iIVBsDIEREKiRDogmx RIq/bz+FnaUx
tIK7oLXPXGTEbYc4JRUJz6NRrVVvPNneEUB2x1sDNb9TblTI27dvsWPXL/jC JetL/c1bfsA/
/zzEiaOHYWRkiMD5i7Bk+UosDJoHAJjmOwMLFwTi2zZuSIhPwPqNm4UAyMrV axETG4sL505D
KpXCb7o/Vq1ZB/8Zfkof792793Di6GGYm5kBANau34Swp09x8tjv0NfXx7oN G4W0iuqa29cN
G2JmwFx8N2wIvvjCBTo6eW+ECsozPOwRH4FFREREVEZMXfo7HB2r4f6TGEjx YdCH/ia8X90V
ADBgzDL89uMMQAp0nnirSGVkj/zI1tn/MbCkNjb87wdUrKgFaUYqEt68x+3H MXgV8wbxr99D
w8b+k4+ttnMVPH76EgCw6rd/hPUSsRgZGRKIMzIgzhBjwYSWpX4eTu0+qDDN tgMxAIDR7q2K
XI5IJEKFChUQE5OVV8WKFVGpUiXo6uoi4mU0YmNj8f79e+jp6cHa2hoOVWyK 5fhyB0EY/CAi
Un0MgBARqZCMTA2IJUDT+k4w1tfCw9NARcN6WZ16Q6CK1YeEbQfL7HdtYwfU Gnkm33xzzgNi
aWmJwwf2AQD2HziInT9vg42NNQBgut80dO3eWwgq6OjqQBQnQlJiEuzsbLF0 8QIhn6PHT+LX
PTthYZ41zHzunAAMGjq8UAGQ2bNmCMEPADh85Aj27Noh1GdOgL+wTVFdc9uy aQO+/+FHzAiY
g8jI57CwMEfH9u0x2dsTJibGRcqTiIiIiFTPzWu7sWXx1Hy2RmJvYGVIUyKQ +l6M3tPuFqmM
y1sboE7rjqjyRVY/PPP1dQBAO49RwL6xSK59R3gEloWFKf4Je4nwV2m4Efv+ k48vO/gBAD79
66j8+egytJ/CNMoESgqSmpqK169fC++NjIxgZmaG6OhoREREwN7+Y+ApIiIC AIo9CJL9moiI
VBsDIEREKiRdoglJphQ37z9D26Y1kZkpBTJSPozhB6AhBaQaH/6F8DxjSaa0 wHzDwx5BKpXi
+YsXmOE/G//88whVKldGbGwc2nXsIpM2uzMPAN9vXI8Nm77H2g0bYWRohLmz /dH22zYAgISE
BFSrWlVIW61qFSQkJBbqeK2srGTei0TxqFa1ity0iuqam7GxEWb4TsMM32mQ SqUID4/Ajz9t
h9fkqdi946ci5UlEREREZc+gwFf4OcAG/Wc8+KR87J3qQfTkME7+sh8AMGKm L3av3ozwBmdR
N7+dMjM+qcxFnq4I2BRa6MdfxcTEYPjIsbh+40a+aZo0bozgU8c+S5tb63ze cyqVSmFsbAxt
bW1UqFABxsbGsLS0xNOnT2FgYICYmBhkZmYCyBodEhUVVWwBEICBDyKisoQB ECIiFSLO1IAk
U4qv6lRHJgCJBEDGG0AqFYIdHwMfGlnrs9MpoKGhAftq1bB21Qp0790PrVo2 h6WlBX4/sB/W
1lZy96lf70ts27oZUqkUF0P/gt/MANy48hcAwNzcHC9evoTDh19XPX/xEmY5 RnNUqFBBmJAQ
AJKSXiuso6WlBZ6/eInqjg5ytxVUV0XHXr26I+bNmYX6XzcpljyJiIiISFX6 0FoK01RznfXJ
5byOvIeTvxxDr8BHOBLogh1LV2KFeBcKGu+gkSku1mNVdk4QGxsbHDtyEDP9 A7Bj1y95to8Y
NgRLlyz6bOdE8zP/psjJyQkxMTGoUqUKdHV1oaurC21tbZibm+Ply5d4+/Yt UlJShCBIzvsU
IiIqXzTZBEREqiNTqoFj67vg2PouePrvC0gkmUBqApCWCKR+WNKScrzOei+R ZCpdho2NNZo0
+hpHjp3AkEEDMTNgDiKfP4dYLMb/njzBpCk+QlrvKT54+vQZMjLEkEqlyMwR aenetTPmL1yC
+IQExCckIGjBIvTo9nE0hUvtWvhh289ITU1FbGwcZs8NVFi3vr17IWjBQsTE xOK//95iwaIl
wjZFdc1t4OBhOHHqD4ji4yGRSBAdHYOly1ehQf36SudpbGyEZ/+G88IkIiIi UmFpGRUgyUSB
S1rGp/3+s8W4OzjyyzF4LH8mrOsV+Agrqo5B09huAIB7m6uibrK/zH5SSXqx HGPAplAh+FHb
+eOI6UU7byNo2zXM+f7vPPvoaGtjzaoVWLNqBXS0tfNd9zloKVg+lZWZMerX r49Xka9w8uAt
bFt3Aft+voD4mHjUqlULNjY2MDExgb6+PvT19SFR5hdjRESkljgChIhIhYyY tlfm/e1MZAU6
NIRnYOWY+/zD47AAZGYWrpwB/d2xYtVqHD18ABrYhsHDvkNcnAiOjg7wmjhe SNexfVuM9/RG
5PMXcHR0wOpVy4Vtfj5TMTdwAdzadgQAdO3cCb7TpgjblyxagBn+Adiw6XtY W1thwtgxOHW6
4MnaJ3t7YsmylejcvSekUim8PScK28aPHVNgXXOb5DURu37Zg9lzA/HuXTIs LS3g2qoVNq5f
o3SeY0ePQo/e/ZCSksLJ0ImIiIhUVJq4IsRiqcI0n6pX4CO8T0kXXl/e2gCd /R/jjyW1AQBx
0Wm4cf4I4Boo7KMhKZ4RINmjPQI2hcrMCRIwvKHie4xhQ/CFSy3MnDUHSxcv QJPGjT/7OanU
NSDfba9PFs/Ik3u37+FKSBxq13OCdeWsdVdCsgJUNpVtkJmZieTkZMTGxqJh w4b8oBARlVMM
gBARqbDMzEwg/T98fO6VNCsYIpXmTZcPeV/cu37TEq7ftAQATBg/FhPGj5W7 b7euXdCtaxe5
23R0dLBsyUIsW7JQ7vY6X7jgxNHDMusGDxpYYL0qVqyIubP9MXe2f55tmpqa BdY1txbNm6FF
82YFplGUp+eEcfCcMI4XIhEREZEKS83QRoZEqjBNccoOfmRL3u+C4evDhWCI QJpRrOUWdi6Q
bE0aN8afZ0+X2DlJ/mMRwlPkb3uZWjxlPL7/GhW09fD0cZSwroK2Hu7dTEIX hyp48+YNUlNT
0bBhw2Kd/4OIiMoWBkCIiFRYo0kXcHqNm8J0zaaGsLGIiIiIqFxKzaiIDIni NMXl8tYGaOcx
CpmvrwMAOk7YBQD478mavIkzizcAouwcIKVNC4Cz/uctIykhHZEReecZtHeo BFMjPbRu2ZQf
DiIiYgCEiEjVMbhBRERERJS/NHFFhSNAiuMRWNlajLuDvYEuGDQNSJcY4OC6 FcK2F43O4mnI
A8QnpSA9XVJsj8DKGfio7VxFeAzWop23Ic7IgDhDjAUTWpbqebjz5yXhtUYJ zDgrTs+EiZme
3PVERETZGAAhIiIiIiIiojIr/cMk6IrSFKdegY8+BEGy5qy7Uf0Y6jhYAP8l y6Tr29r5k8vK
OdKjKHOAlIQuLbKOc9uBGABACcQ/8E0HG/y64wmcv7AU1j19KELnEVX5oSAi IgEDIERERERE
RERUZmVkauHXgycVpNIq9nKzgyAAcPH6bVy8Lru9Z+smmNrbsVjLVOXHXmU7 tfsgTpVAOV9+
WQMYAZw5/gqJCckwMzfAwBE1s9YTERF9wAAIEREREREREZVZ4we0KLWyewU+ yvqXpwEAMNq9
VYmW9+WXNRjwICKiAmmyCYiIiIiIiIiIiIiISN0wAEJERERERERERERERGqH j8AiIipFoWeO
shGIiIiISG31GDSOjUBERESlhgEQIqJS1LnfcDYCERERERERERHRZ8BHYBER ERERERERERER
kdphAISIiIiIiIiIiAQN6tfD29cJbAgiIirzGAAhIiIiIiIiIiIiIiK1wzlA iIiIiIiIiKjU
hJ45ykYgtebaoScbgYiolDAAQkSkps5836HA7R0mnGEjEREREVGp45fDRERE 9LkwAEJEpMba
T7wgd33YaW+c+b5DsQRBtHX0kJ72vsj7h4b+hRHfjcTLly8/KR9SPZ96bXyu vNSlzcpLmxAR
EREREREVFecAISJSU2KpBjKlUrmLtoE5HKrXVThKpCTM9PfH+nVr+EVuOaSt o/dZ9ytq/qS+
1w4RERERERGVLwyAEBGpKbFEE5lSyF20DcyFIMixDZ1LrE7yvrR88OAfdOzY USXa7OHDh6hV
+4tyc42U5PHKO/dFDXopu1/OdEX5wrysXQ8566uto4f6DRpCKpXKpJFKpahX /yuVCiAUpS4M
mBIREREREZEy+AgsIqJSdjE0FO3bKx8AOHs2GK1dXRWmy5BqQiKRXRfxbC4c nObD7EsvYd39
/5Vu8CE1NRUVK1ZUiXNx7vyfaN++Xbm59srb8ap7++Sur76+Hk6dOoWuXbsK 644fPwEDA32e
XCIiIiVlZGRALBaX+3aoUKGCyvTZiYiICvX/MDYBEVHpau3qirNng+HhMRgH DhyAm5tbnjQh
ISFwd3fHvn17lAp+AECGRAOZOd7fufE3zMyA2zf+RoPGLWXSFURbRw+L3IFP pAAAIABJREFU
Fy/C2jVr8S45Ge7u/bBxw3ro6OjkSRseHo5pPn64ePEiMjIy4Na6NX76eRus LC2FX3ln/5ue
9l7uutTUVEyZOg0HDx4CALi798Oa1augq6srpF2xYjnWrl2HqKgopKWmQFtH DxvWr8Oq1WsQ
FRUFZ2dnbNq4Ac+ePcPSZcsRGRmJL75wwfaff0LdunVlji3nL8nPnzuP774b kW85EokE8+YF
YvuOHXj3LhndunXFlu83w8jICABwOjgYM2fOQlhYGGxtbTHLfyZGjvwOAJQ6 rty/as+5Tl59
MjIyMGtWAPbs3QuxWAx/f39MnTIZABTWVd7xFrYNFdU557rc51ne8Sl7neXc r6A2yE4nr/xv
27bD+HHj0L+/u5Dvixcv0KqVK+7duwMTE5NPbh9F5zwtLQ2eXt44ePAQjAwN MWXqFJnjVOYc
5pSzvgDg6+ODFStXyQRAVqxcCT9fXwz0GAQASrWDonZW5treuGE9lq9Yiejo aHzxhQu2/fgj
6tevl++1UdDfEnnXTn75K9OO8j5bRERE2SpWrIgXkf/ixuW/EC+KgyT3L4zU mJaWFiysrNG4
eStUd67Fi4GIiMokBkCIiFRAa1dX7Nu3B+7u7nmCIEUJfgBAhkQTEsnHx9+Y mQXj8GEd9OkT
DImkhUw6RS79dQm3/+8WAGDM6LEICpqPxYsX5UnXq3dfrF27Gnv37EZ6ejrm z18IP7/p2Llj
u/BFdM4vx+WtmzcvENFR0Xj48AGkUilGjRyNwMAgLF26REhz/fp1XL92FZaW FsK683/+iT/P
n4WZmRnWb9iIHj17oUOH9jgT/IewbsJET/wVelHuMaanp+Pvy5exc+eOfMtZ umw5bt/+P1y/
dhXGxsaYOs0HswJmY8P6dQCAkSNHYdPGjejSpTPi4uKwcNFiIQCizHEpkrs+ CxYsxMOHj3Dj
+jUYGBhi4cKFQlpFdZV3vJ/ahvmRd54/5TrLqaA2KKj8mTNnwNd3Ovr16wtN zazPwMJFi+Hl
7QUTE5NiaR9F5zwwMAjxong8efIYUqkUo0eNkam3onOo6Prt3bsX5sydhytX rqJ582a4GBqK
hIRE9OrVU+l2UKadlbm2L4aGIvTiBZiYmGDN2nWYMHEiLv99Kd9ro6C/JfLk l7+y7SjvbwoR
EREAvHoRiYvnz6BV2y6wq2oPTU2tcnPsmZkSRL2IROiff0BHRxeVq9rzgiAi ojJHQ5r74dBE
RPRZHdu7FT0GjQMAZKSnymy7GBoqMxKkqMEPAPhpWU/0nXQcAKApvomNG8/C y6u98G9mhUYA
gEPru2PUjKP55qOto4dHDx/AyckJAPD06VO079AJ4f8+Fbbn98V2SkoKatSs hVcvX+SbNvc6
e4fqOH/uDJydnQEAYWFhaN+hEyLCnwnpIyP+ha2trUwe0VGvYG5uJpRbydQ8 zzoLS2ukJL+V
W9fQ0L8wKyAAl/4Kzbcc5xq1cOrkcdSsWRMAEBsXh0ZfN8aLF5EAgOpONeDr Ow09e/RA5cqV
ZfJX5rgUjQDJXR/H6s44E/wHatSoked4FNVV3vEWtg2VqbO81/mlVfY6y/m6 oDZQVH6Llq0w
ydsbAwcOEMr758E96OvrF0v7KDrnDo5OOH/ujHDMYWFhqFO3nlBPRecw5zHJ q2962nts2/YT
Tv1xGocPHUC3bj3Qu3cvjBo1UmbfgtpBmWtNmWs7JjoKZmamSl9Hhflboih/ Zdox92eLiIiK
T0VtXaEP7NrhYxA+9MxRmfeq6rc929Goxbdo2LhpuT2Hkf8+RfDxA+g/+Dte 0J8o9MxR4V6Q
iIhKBidBJyJSITlHggQGBhY5+AEAtb/xx8M7VxDzPFAIejx4kCEEQWKeB+Lh nSuo/Y2/wrwc
HBxkXsfGxspNd+XKVbT5ti1MzSygraOHSqbmiI9PKFS94+Li4OjoKLx3dHRE XFycTBp5X1Rm
fwkNQPjiNve6gp7ffP78ebRr27bAcqKiolD3y/rQ1tGDto4eqla1R5xI9PEG ef+vOHv2PBo1
boJatb/AyZMnC3VciuSuT0xMjEyehamrvOP91Db8VMpeZ8q2gSL+M2dg4aLF kEgkCJq/AL6+
04TjLo72UXTOY2NjZY4593EoOoeKrl8AGDp0CG7dvIn9+3/D/fv3MWTI4EK1 gzLtrMy1nR2c
UPY6KuzfkoLyV6YdGfwgIqL8iGKiYW1XuVy3QRV7B4hionkxEBFRmcQACBGR iskOggQFBRU5
+AEA5uZnhMdeZQc/AAhBkMOHdWBmFgxz8zMK84qIiBBeR0ZGwsrKSm46j0GD MXHCBESEP0Na
agriRbEo7EBDKysrmfLCw8Nh+eG5/5/TufPn0VbOF8g52djYICL8GdLT3gtL zvkCGjX6Gr8f
PoioVy+xdu1qTJjgqfRxVahQASkpH/NKSEhUWGcbGxuEh4cXqa7KHK8iRalz cVxnyraBIt26
dYO2tjZmz56Dq1evYczo0cXaPorOubW1tcz2nK+VOYfKXL86Ojrw9PLEdyNH wcvbS+6cKgW1
gzLt/Dk+s8Xxt6Qo7UhERJSbRCIpV4+9kkdLq0K5mvuEiIjUCwMgREQqqLWr K5IS44sc/ACA
hIQOSEzsiD590rBx41nUrVsRAFC3bkVs3HgWffqkITGxIxISOijMy9dvBkSi eIhE8fD1nQ6P
gQPkpktNfQ9dXR3o6uoiIiICEyZ6ymyvVMkET548KbCs/u794OPjhziRCHEi EaZN88WAHBM0
F6fsiZeTkl7jyZMwNGtW8KMNxo4dgwkTPPHvv/9CLBbjwYMHGDxkqLB9yNBh ePToETIyMiCV
SiGWiJU+rnr1vsTqNWuRkpKCqKgoeHp5Kaz/sKFDMGXKNLx69QqvX7+Br6+f UnVV9ngVKUyd
lTn3yl5nyraBovI1NDTgP3MGVq1eg1n+M6GtrV2s7aPonA8c0F845jiRCD4+ foW63rIpqu90
P1+kJL+Fn6+P3O35tUP250NRO3/qZ1beuVH0t6QwlG1HIiIiIiIiUj8MgBAR qSgDA4NP2v/S
6dWwd2kGI+t5wmOvsoMfXl7tYWQ9D/YuzXDp9GqFebVs2QJffdUQNWrWgpm5 GebNmys33Q9b
t8LXbwYqmZqjXfuOaNGiucz2qVOnolnzljJfrOY2f34QrKyt4OJSBy4udWBr Z4ugoMDP2tYh
ISFo2aIFKlasWGC66X6+aNGyBTp07AyTSmYYOmwEevX8+OzqHt27w73/QFQy NcesWbOxI8eE
zYqOa8v33+PYsWOwsLSGa+s2aOPmprDes2cHoHbt2vi6UWPUql0bVatVU6qu yh6vIoWpszLn
XtnrTNk2UKZ8LS0tODs7Y+jQIYW+HhRRdM4DA+fB1LQSnGvURMOvvoZra9dC XW/FWV957aBs
O3/qZ1beuVH0t6QwlG1HIiIqHxxruLAR6JNVHfu33NdERKR6OAk6EVEJK2gS 9OK0cPYADJu2
X3ifIpqPw4d10KdPGvQtP36xvGv1AMxeuD/ffJSZoLis8/TyRu3ateCtxKgL Hu/nUVrXWZ++
7hjQ3x0DBvQvs9dDcdRXXjsQEREVh+KeBN2xhgvCwx4VuT6F3X/98gUYM3V2 uZ8vav50T0ya
PocX9AdVx/6NFz+0zPNaEU6CTkRU8iqwCYiI1JMkUxPbV3oI79t3n4I+fYKR mNgR+3d65EjJ
wYDnzp2Hl+dEHm85kpmZie3bd+DZs2dwd+9XptvnU+pbUDsQERGVJnkjNcLD Hn1S8IPKjzbt
O+PC2T8+KY8twa+w9PdIzOxtj/EdK7NRiYjKKAZAiIjU1LzF+2Te/335KgBA KpXm2Vbe/e/x
Qx5vOaOrZwB7e3vs3fMLNDU1y3T7fEp9C2oHIiKi0sZgBxVVeno6+g0cgoO/ /lKk/TOlUuy6
GIN5Axyx7WwUxnawg6aGBhuWiKgM4p0uEVE50bJFM9SuNRctWzQr3M2Dmj/+ ilTkJrWEr7P0
tPcIe/IYjRs3KvftznYgIqKyJOfIEMcaLti7bz9aubVFzS/qoWuP3nj46LGw PS09HX4zZsHl
y6/QpPk32PrjTwXmR2rUx0lPR3JyMsZOnFSk/UMevEYlfS1818YWZoYVEPLP azYqEVEZxQAI
EREREREREZVJV69dx6H9+3D31jV07NAes2Z/nOtuzdr1SEhMxF8h53Dy+O+4 fOUqG6yc0Pgw
WkNfXx+Ll68u9P47L0RjxLdZ874Mc7PFzj+j2ahERGUUAyBEREREREREpHIc a7jILPLMD5wL
a2sr6OnpYezokfjn4cfHZh05dhxzZ/vDwtwclhYWmDcnIM/+fMyWetLS0oKW lhbs7OzQqFEj
nL/4t9L7Po9Pxd2Id+jZxBIA0KOJBe5GvMOL+FQ2LBFRGcQ5QIiIiIiIiIhI 5SgTnKhUyUR4
raurC7FYLLyPj09A1SpVhPfVqlZho5YThoaGsLCwQN26deHk5AQne+UnMd8d EoOEdxlwnnhF
Zv2uizEI6OvAxiUiKmMYACEiIiIiIiIitWNhYY4XL1/Cwd4eAPDi5Us2Sjlh b2+PmjVrws7O
rlDBjzRxJg5cjsOVJY1QxVxHWP8iPhXdF9+Db89q0KnAh6kQEZUl/KtNRERE RERERGqnZ/du
WLh4GRISExGfkID5C5fkScNJ0NVTrVq1ULNmTTSoW7tQ+x27Ho8G1Y1kgh8A UNVCF/UcDHHs
ejwbl4iojGEAhIiIiIiIiIjUjs/UyTAxMUZL12/RuWtPNGvahI1STpiZmaFX t06F3m/nhWgM
d7ORu21YaxvsCuFk6EREZQ0fgUVEREREREREKiW/+T9yrpeXJuc6bW1trFq+ FKuWLxXWjRsz
SqlyqGwbNXxwkfY7EVA/323t6puhXX0zAMCLH1oK63O+JiIi1cMRIERERERE REREREREpHYY
ACEiIiIiIiIiIiIiIrXDAAgREREREREREREREakdBkCIiKhc0NbRK5P1UtV6 ExEREZUHWlpa
yMyUlOs2kEjE0NLS4sVARERlEgMgRERUaB06dmYjEBEREZHas7SxRWzUq3Ld Bi8jI2BpY8uL
gYiIyiQGQIiIqFAuX7km86+ytHX0hMXSygYegwZDJIpX6WMVieJRpUo1pKWl yazv595f5n1q
aioqV6mq8sdDRERERIXT0vVbhJ49jmdPHkEiEZerY5dIxHj25BGO/rYLLV2/ 5cVARERlUgU2
ARGRergYGor27Tsqnf7s2WC0dnUtdDmBgYFwc3NDYGAgzgT/Uah909PeAwDi RCJMnz4DEz09
ceC3/SrbppaWFmjarBlOnDiJvn37AAASE5Nw4sRJxMcnwMLCHABw9OgxNGvW HJaWFrwQiYiI
iNRI5ar2cP22Pc6f/B2iuBhIJOXncVhaWlqwtLLBN27tULmqPS8GIiIqkxgA ISJSE61dXXH2
bDA8PAbjwIEDcHNzy5MmJCQE7u7u2LdvT5GCH3uifoWbmxvsh9vDDW7YE/Ur BtsNLHQ+VpaW
WL1qFZycawjrJBIJ5s0LxPYdO/DuXTK6deuKLd9vhpGREYCsURZTpk7DwYOH AADu7v2wZvUq
6OrqAsgaYbJ48SKsXbMW75KT4e7eDxs3rIeOjk6e8hWVldPwYUOxffsOIQBy 5eoVZGZm4urV
K+jWrRsAYNeu3Rg3bqxSdVyxYjnWrl2HqKgopKWmyJSVlpYGTy9vHDx4CEaG hpgydQovbCIi
IqJSVKGiNr6o9zW+qPd1uW4HcUY6xBnpvCCIiKjM4SOwiIjUSGtXV+zbtwfu 7u4ICQmR2fYp
wY/LV66hQ8fOiNwZCfvh9nCMdIT9cHtE7oxEh46dC/04LADQ0NCQeb902XLc vv1/uH7tKl6+
iISenh5mBcwWts+bF4joqGg8fPgA//xzHy+ev0BgYJBMHpf+uoTb/3cLT548 RlxsHIKC5sst
W1FZOXXu3Am3b99GnEgEALhy+Qrat2uHy5evAACioqJw//59dO7cSak6Xr9+ HdevXc0T/ACA
wMAgxIvi8eTJY9y8dQMhF0J4URMRERGVInFGOlJT3pX7hcEPIiIqqzSkUqmU zUBEVHKO7d2K
HoPGAQAy0lM/SxkXQ0NlRoJ8SvAje8Lz7JEfjpGOwrZw+3BE7owUgi0FPRJL W0dPeASWSBSP
mf7+eP36DQ4d/A0A4FyjFk6dPI6aNWsCAGLj4tDo68Z48SISAGDvUB3nz52B s7MzACAsLAzt
O3RCRPgzIf9HDx/AyckJAPD06VO079AJ4f8+zVO+orJy8/Hxg72DPSZ5e+Hb tu2weNEizPT3
R8iFP7Fs+QrExcZh1aoVStUxMuJf2Nraym0XB0cnnD93RjiGsLAw1KlbT9hO REREVNZU1NYV
+sCuHXoK60PPHJV5T1QehJ45KtwLEhFRyeAjsIiI1FDOkSCenp7YtGlTkR97 dSb4D1y+ci1r
7g+4AcMBx0hHmeBHYGAgWjRvqjAvbR09AICxsTHatv0WmzdvFLZFRUWh7pf1 ZdLnHCUSFxcH
R8ePwRdHR0fExcXJpHdwcJB5HRsbK7ceisrKbdiwoRg9ZgzGjxuLpKTXaNas KRITk5CWlobd
u3/Bnl92K13HnMGP3GJjY2WOIWdeRERERERERERUOAyAEBGpqewgSPv2HYs8 4Xm2Fs2b4kzw
H9gT9Ssid0YCwyE8DuuMv/IToRc0ksHGxgaX/roIOzs7udutrKwQEREhjI4I Dw+HpaWlTJqc
2yMjI2FlZVWksnKrX78egKy5Ppo0aQwAaNKkMTZ/vwW6urrCdmXqWBBra2uZ /SMiInghExER
EREREREVEecAISJSY61dXZGUGP9JwY+cBtsNREhIiDDyoygToOdn7NgxmDDB E//++y/EYjEe
PHiAwUOGCtv7u/eDj48f4kQixIlEmDbNFwP6u8vk4es3AyJRPESiePj6TofH wAFFKkueoUOH
Ys7cuUJbtnZ1xYIFCzFsWOHqWJCBA/oLxxAnEsHHx48XMREREak9DQ0NLlzU eiEiotLDESBE
RGrOwMCgWPMLDAwUluI03c8XK1auQoeOnREdHY2aNWtilv9MYfv8+UGYPGUq XFzqAAD69u2D
oCDZOrRs2QJffdUQ75KT0bdvH8ybN7dIZcnjMXAg/P1noXXrrACIq+s3SEtL g8fAgYWqY8Ft
Ow8TPb3gXKMmjAwNMXXaVPxx+jQvYiIiIlJr+vr6bARSa8nJyWwEIqJSwknQ iYhKWElMgv65
dejYucAJz0tDzsnEiYiIiEg1KDMJOgMgpO5SUlKE656ToBMRlSw+AouIiApN 1YIfRERERERE
REREufERWERERERERERUavhgCiIiIvpcOAKEiIjUAh9/RUREREREREREOXEE CBERERERERGV
mtIYAXJnSyeZ9w3Gn+aJUGF6RqZ4/zaJDUFERIXGAAgRERERERERlRsnfOuh 28p7CtdR4TBI
QUREqogBECIiIiIiIiIqF66vbIXuQQFA8n6kvk5FamoqUl+/xped++L6ylZ5 0jfxvVRgfgV9
6V9SAQFVCTww+EFERKqIARAiIiIiIiIiKjUl+QisNEgA3QYAAF0bQDfHNge3 gTJpQ9eMUKpu
BaUpqWMrDxPJl4djJCKi4scACBFRKYp88oCNQERERERqy7luI9WqUDqA1Bil kiamORRbsfrG
Zli/ZhVWrl6L6JgYuLjUxg+bN6JevS8BABkZGZg9NxB7f/0NYrEYM6f7YrK3 JwAgPCICfjNm
ITT0L2SIxXD9phW2bd0MS0tL6BubCfkDQMp/iQAAiUSCoAWLsGPXL0hOfoeu XTpj04Z1MDI0
BAC8f5+KSVOm4fcjR2FoZIhJXp6YPTdQ2D81NQ3T/Kbj8OEjAIC+fXtj1fJl 0NXVEcpbtmQR
1m/chKioaCS/SYC+sZmwf3Z9clK2bmlpaZg0xQeHDv8OQyNDTPb24geJiIiK jAEQIqJSxF8x
ERERERH7xCXXJ04FgNTXMuvObF0qvK6oawQTuy+gbWAK53q18fDEfABAenIS 6vdfXej659wW
+tclnD/zB0wqmWD9hk3wnDQFoRfOAQAWLl6Kh48e48qlEBgaGGDx0uXCvn37 e2D1imXYtf0n
ZGSkY+HipZjuPxs//7gFyW8SYGBijuQ3CTLlLV+5Grf/7w4u/3UBJsbG8Jk+ E7PnBGLt6hUA
gKCFi/Dmvzd49OAOAGCC12SZ/QMXLER0dAzu/d9NSKVSjBk/EUELF2HxgiDh eG7cuInLoRdg
YWEh7Jf9b3Z9AGD7zl04eep0Ieq2GKL4eDy8fwdSqRRjJ3jy3omIiIpMQ8r/ gxARlahje7ei
x6BxAICwe9fZIERERESktmrUayL0gV079BTWh545KrzX1tYusfqcmt0Y3T0n Ce+Pb1qP7j7T
hfeaunbQ1K0CjYrGMvs9+fsMqjUdkCe/nMGHgrYZmJjjZcRTmJqaAgBS3r+H bRUHvEmIBQDU
dPkSJ48fQQ1nJ4XHkPL+PVzqNkDks//lWweXug1w7PeDqFHDGQAQFydC05bf IDzscdZ5camL
M3+cgKODAwDg2b/hqPdVIyEf59p1cPrkcTg7Vc+6b3n6DF2690TYowdCmU8f /wNbW5sC2+JC
yEUEzAnEmT+Ow/DDCA9l6nb65HE4VXcUym7wdZN827ksSE9PF6777HtBIiIq GRwBQkRUiqRg
DJqIiIiIqKSkpmfgwzgQHN/0E7p7jpUdEVLRBhqaeji+ub3Mfu3H3pSbn6am JiQSCbS0tGTW
SyQSaGpqyqzLDn4AgL6eHsRisfA+JjYWjg72csu4eu065swLwt2795CckgIA 0NDQKPA4o6Kj
0aBRU5l1OfeJjY1DtapVhff21arKpI2LE8nUx9HBHnFxIpk0OYMf8jx+/D9M meaL40cPC8EP
ZevmYF9NpmwiIqKiYgCEiKgUcRAeEREREbFPXIKToL9LB1Jf4/hPh9B91GAg NfXjRi0dICMd
kEhw12gdmkt9AQBXNFaiXT51rFK5Mv55+Ahf1q0js/7+g39QtUoVmWOTd5zZ 62ysrREeHgFn
OSNAhg4fiSWL5qN9u7YwMjLCu3fvYFvVscC8bayt8ee507CztZVbnpWlJSKf vxCCC5GRz/Ns
j4iIRPUPozDCwyNgmeNRV4qORySKx8Ahw7Bl04Y87aCobtZWVjJlR0RE8t6J iIiKTJNNQERU
ujd7XLhw4cKFCxcuXLio66Jq3ryTfAh+9EXWSJCPi6aeOTT1LAFIAABtxzxA 2zEPCsxv1MgR
mOg1Cddv3ERaWjrS0tJx7foNTPSahDGjRypdr8GDBsJn+ky8iorCmzdvMMN/ trDtfWoqdHR1
oaOji4jI5/CaPE1mXxMTE4SFPc1TL+/JUxEeHgGxWIx/Hj7E8JFjhO39+vbB rIA5SEhIQEJC
AmbOmi2zf98+vTHdfxZEoniIRPHwmzkL/fr2Ufp4BgwaAt9pU9CsWVO5bVZQ 3dz79cHMWbMR
H58AkSge0/1n8caRiIiKjCNAiIhKNwLCNiCluDRsiUe3/2ZDEBERkRp2iUuu Tzx2xyPsn9YI
v6zbl2ebY+OucGxki92332JE34+PwBrRtz1W/XoW0wY0z7PP1Mne0NfXh/fk qXj67BkAwNnJ
CSO/G46xo0cpPWJi5nRfzJ4biGYtW0MqlWKGn4+wbfOGtZg5azYGvxgBO1tb TPL2xKHDvwvb
J3t7opVbWyQnJ+NtUtZjqqZNmYQ169aja4/eiI6JQQ1nZ0z3nSbsMztgJiZP 8UHtOvVhaGSI
iePH4ez5P4Xtc+fMgo/fDHz5VSMAQO9ePTBntr/Sx3P9xk1cv3ET4yZ4CduU r5s/Jk/xgUvd
rLpN9vJE8JlzHAFCRERFwknQiYhKWM5J0Mv7F9pxPudgtaodLwolfPF1Kzy8 dYkNQURERGWK
S8OWQh84v0nQK1RQrd9mrt5/Bb06tkJVC30AwIv4FBwJviQ3AKIunoSFoY/7 QDy4c4sX7WeQ
Pd8LJ0EnIip5HAFCRFSKynMMWvQu69ECcW/FsDTUUnq/Oo2+EV4bGRqgRbMm mD1jGsxMK5Wp
4/951z6s3bgFU7zGY+QwD14vRERExD6xinkRn6LWfbGZAXMw088Haenp8A+Y i25durC/SURE
aocBECKi0rzZQzm+wQgMQYgb4BYYAunKbwu164OboQCAxMQkLF+7CYGLV2Dd ioVl5tAzMzPx
68HfMd3HG7v3HsDwIf2hqanJ64WIiIhIBUzt3wxrfruUZ526sa9aFV81bobU 1DR06dwJs2fN
4MknIiK1wwAIEVFpKqe/sKp48Q1C3AAPw4bY53YbHiGvkdHapNDtZmZaCf4+ 3mjXzV1Yl5mZ
ifXfb8OhoyeRkvIebVxbImi2Hwz0sx5hULdxa0yf6omde35DnCge96+H4K/L 17Bq3feIeP4C
VpbmGDdyGPr26gYASEtPx+IV6xB89gIAoFP7NvD3mwwdbW0hv7kzp2Hbzj2I EyXAuboDFs7z
R+2azvlW/9LfV2FibITB/fvg+MlgXLp8Da4tP95Up6dnYP6SVTh97gIM9PUw YsgAmeN++SoK
S1dtwPVb/wexWIwmX3+FxYGzYGZmys8UERERUTFQx4BHbhPGj8WE8WN5somI SK1psgmIiEqP
VFq+lvhkKeL9LmDfu9vwMGyI6EbGWUGQd7cR73cB8clShXnkbjdAQ2bdDz/v xj+P/ocDu7fh
YvAR6OjoYPX6LTL733vwCAd2b8O9ayGQSoFZ8xZh4tjvcC3kNHZs3YC79x8K 6ddv3oY4UTxO
Ht6DE4f2IDomDhu+/0kmv+u37mD3ts24fP4k2rq5InDRigKPYd/BI/Bw7wOp FBjYrxf2Hfhd
ZvuGLT8hMek1go/+ikN7t+Pajdsyx+g51R9DPNwRGnwUF08fhYN9NSxbs6nc XU9cuHDhwoUL
F9VflOsTS7lwUeuFiIhKD0eAEBGVagCk/HSGE2eEAIAw8iO6kTGPaX9AAAAg AElEQVQAZAVB
bmaNBHELDEECALNlbkq1W1LSa6zasAXNGn8trDt89CS2rF8JK0sLAMAUz7Ho N3gkAqZPFfb3
mzIRlSqZCPvo6OhAFJ+AxKQk2FhbITDAT9h2Kvg8tm9ZC9NKWXOMzPTxxqiJ UzHNe7yQX8D0
KTAxzjqe4YP7Y8tPO/M9ty9fReHBw8dYvXQ+pFIpOrb/Fqs2bMHLV1GobGcL ADh5+ix+3rJO
KHPGNG9cch8q5Pn7rzuE/LS1tTFpwmh07DWQN1dERERERERERDkwAEJEVIrK 0xfWpktbIylV
A26BIVmPvbqZFQSxvfkf9r27DbcQAIFuMNVV/Cupek3dAAAGBvpo3qQR5sz0 EfaJFcWjR/+h
Muk1NDRk8rQwN5d5v3pJELb+vBvf/7gdhoYGmD7VC61btQAAJCQmorKdrZC+ sp0tEhKTZPY3
NjKSCaZIJJJ8j2H/oaNISnqNxt90yLN+qtc4AEB8QiIq29rIlJnzerlz/x+s 3bgVj5+E4f37
VLnHSERERMQ+MREREZV3DIAQEZXu3V65OlxTHSmwxBUef7/LegzWzYbC47BS lxgCyIQy83zf
vfJnvm1paWGO3T9uFEaAyG3rXO1ex6UW1q9YCKlUiktXriNw8QqcP9EcAGBu ZoqXr6JQrUpl
AMDLl1EwM61UYH75rUtLT8exk8H44/Be2NnaCOtfRUVj8ChPTBwzAjra2rAw N5Mp89WrKJk8
/WYFwnfSBLRs1gQGBvpISXmPFu26lds5ZYiIiIiIiIiI5GEAhIioFElRPr+w ft/SAG7+yHrs
VQjwfokBUIi2KKjd+vXujqClqzBjmhfsbKzxb8RzbNvxC5YtmJPv/jPnLsTY 74aiapXKkEoz
IZZIhDQd27XB8rWbEBTgBwBYtmYDOrVvI5OHvPrIW3f67J/4sk5t2Npay2y3 s7NBHZeaCD53
Ad27dEDnDt9i5brNCAzwhVQKLFu7SSbPtLQ0aGtXREWdingZFf3/7N15uFV1 of/xz2E6TMo8
OaQoZqS3UnHCMkoBrRRFwSG14ZcDig2IOVwVHLrlmIlpNum9dR0qUUxLHBK5 pYlEN4fMa4al
gnAUFJkOcNi/P4gdB86Bg8A5sHi9fPbD3mutvfZ3fTmPD+w3a62M+94Pt+qf JwBgy9Z2mw4m
gUJbMO9tkwDQRAQQgCa0VZ/uP3ZABoydlIwdkFJp2Uabty+cdHxu++mdOW3k 6FS9+VZ2ft8O
+dLnT6r1ntXfP+Bj/TPq/DF59fUZ2fl9O+YbYy4obzPy9C/kW9eOyxHHrris 1sBPHpyzTvvC
WvdX37I7f3Fvzjz183WuO/boI/KDW3+azxw+MGee+vlcfuW3c9hRJ6Zd2zY5 5cTh+e0TT5Xf
N+bC0bnmOzdnxgVj071b13zuxOGZ+Mgkl48AAAAAWEVFybclAI3qvttvyZEn rrjXwx+feGSr
not5//67bPuNg/xQAAAU1F79Dy3/GfjgQUPKyyc/NKH8ut22HU0UhbbyDJDJ D00o/10QgMbh
DBCAJrS1N+htrujvrAUAAAAANgkBBKAp+fIfAAAAADYJAQSgCTn7AQAAAAA2 DQEEoAkJIAAA
AACwaQggAE2oFAEEAAAAADYFAQSgKTkDBAAAAAA2CQEEoAm5BBYAAAAAbBoC CEAT2qv/ISYB
AAAAADaBZqYAAAAAAAAoGgEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEE AAAAAAAoHAEE
AAAAAAAoHAEEgCbzxOArTQIAAAAAm4QAAkCTeOLJp2r92lCtKtuUH92698wJ J342VVVvbjHH
ver4V30AAAAAsHEJIAA0jbGTMmnAil/X15LqRVlSvSjPP/9sKisrc+ZZZ21R h75y/Ks+AAAA
ANi4BBAAGt30cQ9n0oDkhPZ7Z9KAFa/fi+7duuW6a6/NI488Wl5WU1OTiy66 ONvvsGM6dOyc
z550ct59993y+laVbfKdG8al9y59Utm6bZLkwYkT85G99km79tumz26758c/ vrW8/eLFi3PG
iDPTtVuPdO3WIyPOPCuLFy+utb/vf/8H6bPb7mnXftvsu9/++dOfnlnvY5kz Z262236HzJ37
9hrLd9jhfZk79+11HhsAAAAA/yKAANBonnjyqTwx+MrcMX9aTmi/d2b22zYn tN87d8yflicG
X7nel8NKkoqKilqvv3XlVZk27Y+Z8tTv89qrf0+bNm1y4b9fVGubKVOmZMpT v0/14oVJki9+
8f9lzCUXZ85bVXnsN4/kqSlTytuOGTM2M2fMzJ///Fyef/7ZvPqPVzN27KW1 9vf45MmZ/Phj
mT1rZoYMGZIRZ5653sfRuXOnDB06ND/80Y9qLf/hj36U448/Lp06dWzQsQEA AACwQkWpVCqZ
BoDGc9/tt+TIE09PkixdsnirOe6VNzxfeebHzH7bltf1mjovd8yflgGTVrzu P/G8evfTqrJN
+ZJRVVVv5vwLLsjbb7+Tu3/xsyRJn912z68e+GXe//73J0lmzZ6dfvvsm1df /Xv5/X9/5W/p
1atXeZ+77LpbRo8elSFHHpntt9++1ufttPMuefSRh9KnT58kyUsvvZSBgw7L K9NfLu/vjZkz
0rlzpyTJwoUL07Vbjyxc8G6946/LkupFefHFF/OpTx+RF//y57Ro0SLLli1L 3w/umd88+nB2
3HHHdR4bAMDmpmWr1uU/Ax88aEh5+eSHJpRft9u2o4mi0BbMe7v8c7/y74IA NA5ngADQKPpP
PC8ZOyADJiV3zJ+WXlPnJVktfowdsNb4sdLKG4f3/eAemT9/fm666cbyuhkz ZmTPf/tweZsd
d9wps6uqar1/1fiRJD+76848/PCj6bfvftn9Ax/MAw88UF43e/bs9O7du/y6 d+/emT17dq33
r4wfSdK2bdssW7ZsreOv7x4gu+++e/b44Adzzz33JknGj78nBx54QHbccccG HxsAAAAAK7Qw
BQA0lv4H7p9M3D+9xj284jJYU/cuXw6r98SBDd7P2m4a3rNnz/z2fx7Pdttt 1+D99eu3T+4Z
/4uUSqU8OHFiTj/tjPzjH59OknTv3j2vvPJKdt111yTJ9OnT061bt002R2d/ eWQuv/yKDBt2
bMbdeGPG3XDDBh0bAAAAwNbKGSAANLreZw8snwkyYNKK1xvLaaedmhEjzsrf /va3LFu2LM89
91w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqzq6oy atToHDd82Cab
m4GHHpp5897NTTffnPbt2ucjH/nwBh0bAAAAwNZKAAGgafzzclgZO2Cj7vbr 545O/4P6Z9Dg
w9OhY+ecfMrnc9SQIWt9z5FHHJFhw49Px05dcuGFF+W2224tr7vsskvTvUf3 9O27R/r23SO9
tuuVSy8du0FjXHkJq1Ufq/ry2SMzatTojDrnaxt8bAAAAABbKzdBB2hkW+tN 0OvyxOArG3TP
DwAAtkxugg5ugg7QlJwBAkCTET8AAAAA2FQEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAE EAAAAAAAoHAE
EAAAAAAAoHAEEAAAAAAAoHAEEAAAAAAAoHAEEADYwrWqbGMSAAAAAFYjgADQ ZJ4YfKVJAAAA
AGCTEEAAaBJPPPlUrV8bqlVlm/KjW/eeOeHEz6aq6s0t6thffPHFDD/u+PTs tV3ab9MhB/Y/
KOPH3+OHAgAAAGAjEkAAaBpjJ2XSgBW/rq8l1YuypHpRnn/+2VRWVubMs87a Yg77r3/9awYO
HJxDPvnJPP/cc3nrzdn5zvXX566f/czPBAAAAMBGJIAA0Oimj3s4kwYkJ7Tf O5MGrHj9XnTv
1i3XXXttHnnk0fKympqaXHTRxdl+hx3ToWPnfPakk/Puu++W17eqbJPv3DAu vXfpk8rWbZMk
D06cmI/stU/atd82fXbbPT/+8a3l7RcvXpwzRpyZrt16pGu3Hhlx5llZvHhx rf19//s/SJ/d
dk+79ttm3/32z5/+9Ey9Y77s8isy+tzROf3009KlS+dUVlZmv/32zV133pEk +eQhh+ZnP/t5
rfe8+uqr2Wmn3nnnnXdSXV2dL516Wjp26pIdd9wp1173bT9QAAAAAHUQQABo NE88+VSeGHxl
7pg/LSe03zsz+22bE9rvnTvmT8sTg69c78thJUlFRUWt19+68qpMm/bHTHnq 93nt1b+nTZs2
ufDfL6q1zZQpUzLlqd+nevHCJMkXv/j/MuaSizPnrao89ptH8tSUKeVtx4wZ m5kzZubPf34u
zz//bF79x6sZO/bSWvt7fPLkTH78scyeNTNDhgzJiDPPrHe8j/3msQwbdmy9 688//7xc8Y3/
yPLly8vLrvjGf2Tk2SPToUOHjB17ad6sejP/939/ydQ/PJ1Jj03ygwUAAABQ h4pSqVQyDQCN
577bb8mRJ56eJFm6ZPFWc9wrb3i+8syPmf22La/rNXVe7pg/LQMmrXjdf+J5 9e6nVWWbLKle
lCSpqnoz519wQd5++53c/YsVl5Dqs9vu+dUDv8z73//+JMms2bPTb5998+qr fy+//++v/C29
evUq73OXXXfL6NGjMuTII7P99tvX+ryddt4ljz7yUPr06ZMkeemllzJw0GF5 ZfrL5f29MXNG
OnfulCRZuHBhunbrkYUL3q1z/G3bbZN578xNixYt6j3G/gd9NF8+++wcf/xx Ky6ZNeiwPP/c
M2nbtm127r1rHn3koey6667l8eyx54fKcwIAsDlp2ap1+c/ABw8aUl4++aEJ 5dfttu1ooii0
BfPeLv/cr/y7IACNwxkgADSK/hPPS8YOyIBJyR3zp6XX1HlJVosfYwesNX6s tPIm6H0/uEfm
z5+fm266sbxuxowZ2fPfPlzeZscdd8rsqqpa7181fiTJz+66Mw8//Gj67btf dv/AB/PAAw+U
182ePTu9e/cuv+7du3dmz55d6/0r40eStG3bNsuWLat37F06d07Vm2u/afsF /zwLpKamJpde
dnlGjx6Vtm1XXK5r1qxZ2XnnnWuNBwAAAIA1CSAANJr+B+6f/hPPK1/2amX8 OKH93uk/8bz0
P3D/Bu1n5U3Q36yalbvuvCM9uncvr+vZs2demf5yeZsl1YvKl7qqT79+++Se 8b/IjNdfy/XX
X5cRI/51U/Xu3bvnlVdeKb+ePn16unXr9p7n4BOf/ETuvvvutW7zmc98Jq1a tcpFF12c3//+
qZz6pS+V1/Xo0aPWeFZ9DgAAAMC/CCAANLreZw8snwkyYNKK1xvLaaedmhEj zsrf/va3LFu2
LM8991w+e9LJa33PSSefkhdeeCFLly5NqVTKspp/ncExfNixOeecczO7qiqz q6oyatToHDd8
2Hse3yUXX5Srr7omP/zhjzJnztxUV1fn6aen5rjjTyhvU1FRkQvOPy/XXvft XHjB+WnVqlV5
3fHHDc/oc89LVdWbmV1VlXPOOdcPFAAAAEAdBBAAmsY/L4eVsQM26m6/fu7o 9D+ofwYNPjwd
OnbOyad8PkcNGbLW9xx5xBEZNvz4dOzUJRdeeFFuu+3W8rrLLrs03Xt0T9++ e6Rv3z3Sa7te
ufTSse95fH369MnEib/OxIceygf69k2Xrt3zla9+NccNH15ru+bNm6dPnz45 +eSTak/b2DHp
1Klj+uz2/uy91z45+OMH+1kCAAAAqIOboAM0sq31Juh1eWLwlQ2658fWaOgx w3Lc8GE57rjh
JgMA2GK5CTq4CTpAU2phCgBoKuLHmpYvX55bb70tL7/8coYNO9aEAAAAALxH AggAbEZat2mX
nXbaKbf/90/TrJkrVQIAAAC8VwIIAGxGllQvMgkAAAAAG4F/WgoAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSOAAIAAAAAABSO AAIAAAAAABSO
AAIAAAAAABSOAAIAAAAAAB
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: [EMF] How to create an instance of an ecore model [message #427195 is a reply to message #427192] |
Thu, 05 February 2009 13:29 |
Miguel Angel Garcia de Dios Messages: 22 Registered: July 2009 |
Junior Member |
|
|
Thank you Ed Merks.
I will see that NewsGroup looking for the answer.
Ed Merks wrote:
> Miguel,
>
> I don't know much about OCL. I've added the OCL newsgroup to the "to"
> list of the reply. Do doubt Christian will see it...
>
>
> Miguel Angel Garcia de Dios wrote:
>> Ih Ed Merks,
>> I've changed the property volatile of the "people" ERefeference of
>> "People" class, which is my container of Person. Then I can generate
>> instances of Person from "people" EReference but now I have a new
>> different problem: with the "OCL Interpreter Console" plugin installed
>> I have made many OCL queries but I've obtained an unexpected value
>> attached as a screenshot: Having three instances of Person, the OCL
>> query "Person.allInstances()" returns an empty result. But if I write
>> "self.name" (being the context an instance of Person) I obtain the
>> desired result ('Ada' for example). I think I have any wrong property
>> value because it seems like Person isntances are no related ro
>> something similar.
>>
>> Thank you!
>>
>> Miguel Angel Garcia de Dios wrote:
>>> Ed Merks,
>>> Yes, I did. I marked the feature as volatile.
>>> I think it cannot be so complicated. Maybe any value of a property is
>>> not correct so, to ensure that I'm going to attach screenshots for
>>> everything (it is not so much).
>>>
>>> I am really concerned with that because I think it should be easier.
>>> Thank you in advance!
>>>
>>> Ed Merks wrote:
>>>> Miguel,
>>>>
>>>> Did you mark the feature as volatile such that no code is generated
>>>> for it?
>>>>
>>>>
>>>> Miguel Angel Garcia de Dios wrote:
>>>>> Ed Merks,
>>>>> I have the containment property of my desired container class in
>>>>> true, the GenFeature properties are also update: containment=true
>>>>> and the GenEdit properties contains children=true and create
>>>>> children=true.
>>>>> I hope you can be more explicity with the solution of my problem
>>>>> please.
>>>>> The last error I've obtained is when I create My.container file
>>>>> from a Poeple object. Hten I click on it and I get the nex error:
>>>>>
>>>>> Unhandled event loop exception:
>>>>> java.lang.UnsupportedOperationException
>>>>> at Container.impl.PeopleImpl.getPeople(PeopleImpl.java:113)
>>>>> at Container.impl.PeopleImpl.eGet(PeopleImpl.java:141)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1012)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:1004)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjec tImpl.java:999)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:338)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:397)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.hasChildre n(ItemProviderAdapter.java:384)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.hasChildren(AdapterFactoryContentProvider.java:198)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2076)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:582)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2102)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2752)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:842)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:828)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:802)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:776)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:634)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpan d(AbstractTreeViewer.java:1442)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeVi ewer.java:927)
>>>>>
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded( AbstractTreeViewer.java:1453)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:126)
>>>>>
>>>>> at
>>>>> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1167)
>>>>> at
>>>>> org.eclipse.swt.widgets.Tree.gtk_test_expand_row(Tree.java:2 026)
>>>>> at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1572)
>>>>> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4105 )
>>>>> at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native
>>>>> Method)
>>>>> at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:57 92)
>>>>> at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177)
>>>>> at
>>>>> org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Na tive
>>>>> Method)
>>>>> at
>>>>> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS. java:1550)
>>>>> at
>>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3031)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
>>>>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>>>>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
>>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>>>>> at
>>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
>>>>>
>>>>> at
>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>>>>> at
>>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>>>>>
>>>>> at
>>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>>>>>
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
>>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
>>>>>
>>>>> A lot of thanks!
>>>>> And always sorry for my bad English.
>>>>>
>>>>> Ed Merks wrote:
>>>>>> Miguel,
>>>>>>
>>>>>> Comments below.
>>>>>>
>>>>>>
>>>>>> Miguel Angel Garcia de Dios wrote:
>>>>>>> Hi,
>>>>>>> I think my question is easy for us but i have spend too much time
>>>>>>> in it:
>>>>>>> I want to create a simply ecore model and then i want to
>>>>>>> instanciate it and check some OCL queries on it.
>>>>>>> My purpose is to create an instance of an ecore model which
>>>>>>> contains as instances of a class named Person as I want.
>>>>>>> These are my steps:
>>>>>>> 1.- Create the ecore model. It is compoused by two classes:
>>>>>>> -People, which contains an EReference with multiplicity
>>>>>>> 0..* to the EClass Person.
>>>>>>> -Person, which contains only an EAttribute named "name"
>>>>>>> with String type.
>>>>>>> 2.- Create automatically the .genmodel file from the ecore
>>>>>>> model .
>>>>>>> 3.- Generate the Java code aotumatically fron the .genmodel.
>>>>>>> 4.- Launch an Eclipse application from the project.
>>>>>>> 5.- Create an instance of the ecore model.
>>>>>>> My probles is in the last step: I begin the model with an
>>>>>>> instance of People and hten I desire to create as number of
>>>>>>> instances of Person as I want but I cannot do that. I don't know
>>>>>>> the reason. I've seen the EXTLibrary example too many times but I
>>>>>>> cannot get my desired result.
>>>>>> The lack of there being a containment reference is the likely
>>>>>> reason. And note that even if you change it in the Ecore model,
>>>>>> the GenFeature properties for the feature will *not *change, so
>>>>>> you'll need to update those as well to support children and child
>>>>>> creation.
>>>>>>> Being more exaclty, the idea is to be a EClass which can generate
>>>>>>> as many Person as I want. That class is People. I've tried many
>>>>>>> possibilies changing the class properties obtaining different
>>>>>>> errors.
>>>>>>> Can somebody tell me how to create an ecore model that has an
>>>>>>> EClass which can generates as many instances of another class as
>>>>>>> I want?
>>>>>>> Thank you in advance!
>>>>>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
|
|
|
Goto Forum:
Current Time: Thu Apr 25 22:27:04 GMT 2024
Powered by FUDForum. Page generated in 0.04391 seconds
|