Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » GEF » How to create a MultipageEditor with a GEF page?
How to create a MultipageEditor with a GEF page? [message #182814] Sun, 29 May 2005 01:43 Go to next message
Tim Williams is currently offline Tim WilliamsFriend
Messages: 21
Registered: July 2009
Junior Member
I've been writing a MultiPageEditor for an XML configuration file. I'd like
to add a page to it with a graphical editor built with GEF.

The type hierarchy for GraphicalEditor doesn't make this a natural fit,
unless I'm missing something obvious.

Can anybody offer some pointers on how to do this?

Thanks,

Tim.
Re: How to create a MultipageEditor with a GEF page? [message #182824 is a reply to message #182814] Sun, 29 May 2005 08:31 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 7680
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080405040202040401030007
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi Tim

I tried to do this a few months ago: integrating EMF and GEF, it was hard
and not very satisfactory. As you have noticed, the core parts of GEF are
too concrete making integrating with MultiPage protocols a nightmare, and
requiring some very dirty code to work around initialisation races.

I decided that this direction wasn't worth pursuing because many other
people are interested in it, so I hoped that I just needed to wait.
The GMF project may have to tackle the problem, but perhaps it is not
their top priority.

There is a clear need for a much better-defined editing API that provides
consistent support for multiple pages and multiple views some of which
are read-only and may use page/view-specific model objects. Is anyone working
on this? GEF needs to support usage as an editor rather than the editor.

You asked for pointers. The attached is code that I sidelined after deciding
that multi-page was more trouble than it was worth for my shorter term
requirement. GraphicalEditorViewer provides a bridge between the standard
EMF multi-page DiagramEditor and the GEF-based EDiagramEditor in a page.
ModelSelectionSynchronizer is generalised to try to accommodate two different
selection perspectives. Be warned; this was abandoned code. I did have selections
working consistently from Outline/EMF pages/GEF page/Properties, but was so
uncomfortable with the kludges that I dropped it.

Regards

Ed Willink


Tim Williams wrote:
> I've been writing a MultiPageEditor for an XML configuration file. I'd like
> to add a page to it with a graphical editor built with GEF.
>
> The type hierarchy for GraphicalEditor doesn't make this a natural fit,
> unless I'm missing something obvious.
>
> Can anybody offer some pointers on how to do this?
>
> Thanks,
>
> Tim.
>
>


--------------080405040202040401030007
Content-Type: application/x-zip-compressed;
name="multipage.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="multipage.zip"

UEsDBBQAAAAIAKVdkTLersWVKBwAAD59AAAdAAAAbXVsdGlwYWdlL0Fic3Ry YWN0RWRpdG9y
LmphdmHVPV1z40aOz05V/kPPXFVC5TScJA93VXG8u46tSVQZe3y2JnNbW1tT tNiWGFOkjk3a
48v6vx+A/m42Jdlj79a5ElsiAXQ3GkADaHTPOptfZwvOKt6m4irtVuWnlOdF WzfpqivbYg0v
97/84ssvitW6blr2e3aTpUWdTt9NPs35ui3qat9/2bVFmR42TXb3thBt7OVR XZZ8PoRq34rY
68kNr9p3l78DSOz1L5lYnmTr2Ktpy5sMBhZ7p7pq3rjsmBwX2aLJVmdltygq F6puFimfl8Va
8HReNzxtuKi7Zs5FOn1TlHx/J8iTrLnmzW6w5+rjw6CPllm14MS5xyAic3j1 0C4e87LNHoHy
WyEKb5Y2YGpEYeZmEKer2mLFQboaHpHcQfjpWdYud4Jr6gV0TJzU1bbuK5TT rix3wuKrK8Bc
reqK/mRVnv6UiWJ+JL9ctKDDO2MqpIfCP6oRQtosPQ5yVbfF1V16mGdr0NQ3 2RwYcrcVqyvS
3wp+y5uzrBpQCx/6hqDTqcJq6psi36F3ZCben0+HATnN7iS0TQNgv2VlkWcb 55x70m6E/cEI
F3xTd8DYp3m9yooqYP0E3hTV4pje7UbgEShTD2f7dBDuWoEFPQYLvwIbwhdb +OqRAFld14Ln
u8qdj33Or2i1uuHYuO7+42j1Ju7RJEHMM1pC/Rk5pGc/Zc1RXbVNcdltZxNQ ykGhPTJSc46b
eq06tRuNt/U8K2dNVomrXVF0S9li55YGRANHDMvfZvla8Kv0V373C5iucgvM RdvU1wOqiCBm
BkQquX7OF2AIh2YuQPl58kZiQbdFm1WtiKP9fpWBuKipnp7wqttsbfvwJ1kF Ht5O4GDN2068
LSr+AKRZXZcgcLtjPKxTF3ydNcPaLmHzIivrhQDSQgDdY/q6C0KwOm9HlGsL eDQXvOfh7gK9
WTxDrLbp5m3X8PxBrX02mlTKXXA2QYrbNr34MBt+Oe9EW6/So1l2+aYuB5mC oGgqjk+PNwNs
tjwIBU7+elnMYd7rYshTRrjbIl/wVqRkRetyOyDKdBwKdH5qrPKAkiPMhEKy abXuBvplgc6y
ZivMRdEO2C6EQQqb7QhCfaib60tezZdnMkTcDrahX/hyCkq2xTV3TCTSFWuQ tpM6B7fx3RqD
u02IWqkvsht+KDbpMgCDEqbTn+u23hSc4WoD/U4x1Ntlggj4BKNqZNkOs4V6 JMABpaWr7toS
bG+qVrJ38uvDcKc+8saZkwRgOQXOtgWGaWfy893FkvP2Ybge6iPRznQqIruE hRTkgM3LTAh2
qL5KhjL+CUaYCxZh9Jdf7EHDJV8BCwSLe55j5q2j8NUPFOCBlQv2B5CE/15/ 8w38Zt+YvjBp
AtkaghJ2Bb1SJpGJbr5kmWDtkjOh7a9sgd0uwQ+1TyXFQrCMldAbVl8xrvqe Mnr5Gn6vu8uy
mLMBntjQyPDFeYS91wT6GImv4gxTQWOmkiGa2fRnJCntiQ5mK5Fw6s0+vrh3 2jEd7a96DIxl
72EiSTwQW47Cx72pi5w1/H86Llq0uTdkLxKv82nk/b58zdujrmmA+w6H2mUh 7BDvUTitLPz4
4tUrdgluX/WqE7x5lddz9urVn5yXMB+RV39ZoOBlLc/DSZZze85vQJL4Rv/W zPZmKFcAdiGb
+G9Z5n31xSB4p7nktCgjZfa3v+PUTZRoJ+ppTX80SfUQLCjAsAMmJ2uBRgGf JApaTlXDwU+p
WKKhD1jVlSX7M3NSi+nk5Gz2148Xkxn7wXsuwCKUvIWJl+ijUdrWlM5Mto7h aFmUOSD9PxvD
JfjoPKvYMhNPPwIF/EIOYJiDlkq0aUXNpSHpMPgBlSODKm3O12AxiRGg7DLm IiVCwHWDWs2Z
H5IpcCdCc9V4BjqOVhgbqMFoKrlmV0oHQIFzMvEy8gTWk7EXaK8RZ1XnvEyf 3iQ0dQv8gbbj
CYxAN4NBmcQpdDFrYeZvOPSLV2xOGd+cgQjNOQN70xJ3pC1MN/RGMtZK4Y+6 iT9pmrZNkAV+
y8wegQUl8RxivvJlmHJmaD16Dr7KkZzc9X0l3QXffer195rzNXQZ1qlrLQTE QzsE6Q2MYcUv
wB1YZXfQecYLgGxIxhSWdhqKir7igEGsmig3VFrz2fihfJS5uwY+bPCOSzTW QwLTc/18fY54
QfNwDd9xDFz6ikxmLaXWACQpf1sr2AwstBR2QQ+fU/vVCIcztrrLJhnbG2ZJ Pq4g43W75HJG
tDxd8nm94kJN3rMNwAs2cbGwXw4AbA8NhQdj/DXXq0M85bLxPPFjTrbWGHvF FSyoIHqYUptz
mFlfxQ0cASZJ8HY9wqVOOYGo+9AVWJf7NsHS2QMEE947SddklAr55kaFJ4kf xaTWs9yLOJ9J
v1Hs26zhXHu+Bvle/lV/eAkhRo8PXpwVssF/OcCFdRipPT0TlpSW1dOcbB8g dCtG0HRsgKAk
dB8Vsp+aulss21k9q9eDchZHPSpxkX4g0jHPtop1HPPdGrRlC9L9htVWTygT OKPPvNj24vy+
PO3qwDR8Vd88sQOjaD7agfEMrc5b6ZXi+bg6sI3Pmvhja2/jeFHL69MCeYvU HDCOv43evX7N
3lXlneIKLqpyrRQkYBIAFZiwyKzdrZWV8SsF0rN3F7OPR78cnv48GUlUrdo+ IMvp9wEzJOmx
NSEYBBhzpaPsfk0Cc7NHUQBDxPHPnW1Ywy78fOCv0NgtB9R2zqX1FP71bkQf LvOKrB9T3iBj
kth0OAuEXGnoKXLhTZktBEz4i96Enxye/zo5v2BffWVRGf0YZI2QjAZEJ30z fTvxGpfrnKHw
a1HlgPMVC7qdSkk7Zv8Iu3U+OXn32+R4RF3+1qe9p0HN3AMnHTHw+vz+fJrO Gw7KC58chmCl
SNYuE4zjL2D9rBawwI8hBIXFzplSNRTTkAq6gw4NDXdgULExYTzui0ea5blp 2O+SXpnVDy3Q
AbVQgnem5n5xPt87AqlTB23TcUvpvi+yUTWgrI7fucRjhqIejuBRLZ0HTI22 FHLea6nXZNRK
3ai/UqVjII6hkIKSzXFjJlGY9m1MDg7LUgOm0VFZdBTFFxth00JMVuv2DkX0 K/aiEMdFg99c
1mDmt2iVyoPHAO3Tx+NCrEtMeqWZuKvmk098btmZ0Ni7qsouS+5z2l/huip4 67cnfeB0ju7d
sBsbVdYIXJpDn4FS4kE6os3u7RtnnmMaFMxDX45DF3pvnrXzJUu8IjnG9SeH C35NZDo9vZgd
nh5N0rJeJBY+IO841qHnaZeZwJ0T8Cl/pNtGuJby1gVMpxHFMmtgWbzmd0yG CE0vgWirRBS0
VzbiZyXNhg5DIVw2dVX8L+YPVSIHnQDy2HWCJGzrBFMIZmfjwqXhEpRjCHZz lECqmZOJeTkt
r1/L3+yI1hsGa3WY2aSpuCt4mUNU0PIV07U15LMqCsRKPw3xJ0WhiDA9gFSd MfBk+F2jNFwC
JcX39esYNrFsG2q82e3lXBrbT7CqkcaTsYlpKc58mdCjmkkmsGhS8v62KEsm yyIZGgeV4Mb9
QwUtGAgfaCifd63UE0W7VyCqMeQX2dkeUCgbh3mudh8pQgA/HSJ2ldcS6M3O 0b1XlDHvfnUl
XUqZvKcs2CUPtMBLbsIY2yXowrxzhcrtK86N20cdjpAxSRTPe2+tyWauMXcJ 65Dlqqiykjl1
5UG8skdOQF214KQj4S0rCxteWBjbuLAwdlU0XMfCsnuJU9WRnp2/O/t4PD2f /dVzuQER5mqG
GlsrPsu8azAbqY/hflMspGk9p1nVTw4YJsIs10YmhrpQfjYx5CRE9BYwRgFd n3jUQWUoZMbe
zWqV0ephY7OHaohy4jzXAgndh13opRWGutADTBt+BR7pMhlqwfnM7CKtHsoH faUP0sqkDBkT
az4vQCY9k+Cohxc3ahM7nAkOtmLHnhaMCVsdm1D8u4/kMGRYgsUIlHv81DKI gzuziiltxt6C
vgrXaoC1ugWXTO3G8YYifjQhGp/2qoVNzzxpKkQHuVL9aRBHcgBY5vEGFsew sk2NRUmEU4+o
R46PFNedt8nLfzur1+/XL+XUO7BmdTHVislLeFTQZu3LUR9eaEcYPLgPS15d LOvbKsEAJkrb
rVdxShKom8jkA7fjaY8Hido6UlauqUutRpEX2DdCQsISynrDeoZd4k7TY81Z pQoFrB15lZvS
LfQWjk+P02M0c0fvzv4Kkbb5jsGo+/3t9PRXal7X9f3t77gLQx+12+G8+oN5 5cc4pqnKf4MR
vneHCxzFiuOLbo01SonXw7FtQyqOFBmnQllx0+cgkazXu5H0dFfTN7XWiaf8 hqUxvX1KPXLW
LROhSAUxDraKBYCzpjaPZAIFWQMFGcUm+jgUKxtkSWLedpC7ZRTzy4KACheB xeB+xCLYj6DM
kbtpMIwabmXQokJN3ut2ty4+/UXH77yh1N/+CUlFNogitGQBh/ciZvsLmbo2 2U+04H/8BQhf
M8c9uSfrLxDqjmIvYXdAwbMpn2P/wBXLGis7k/AgFq7k7nfFIFiGj+UOLSbk aeGFpRSCoFor
Ju6AZtAL6XnLMrwaBg5uGyWtaVehaFWYtMIq1EIN+VbvuThr9lC9qtMgJeAp Az8EbP1FdPic
3ZoVb5d1LrsCMoolAzf1NSx7dl/XNAMD0K6gdgJdPqpgos/IlcfAvSBrDh1C /lNbJgGpNsFx
8iFWBSVdpRZef9K2wY/X0fHUn0ebE+XuAyG/Jt9aN81PA9Bi7D0agEzxW9Iv tzo5PDMYQd7k
+XImasW0HNfzj5Op5letJqSE4DAII/mpwjDidRY715DEsmgjPK1InodKYI2t IJkYBPpyLp1j
6kkFTroQGXQV1teWe60nSS/m7E+uH5GOaCKm4riuTFbsQXGSYuL2OUIRrlGT UL1vMbK9bWpy
VkGrgKVdmVdft954HjCn2ImYcQWu1rZqZOlUsRVYTf7PMJqHJtPsFseTPuov 0qFyX8flhYbq
IqYwS7qIlg7TsjX8OvCIKwXuytZZpREsXNXoVLU0Jwc2Zxh3PJBmXSvzgHhE UQkQNkBkwvDP
MMRuxZyVWQvL30q3h1sztJwthndmkFnBsQDC0fHpvSMRXgH5U86zH/u4I2Nd U4z12k29U1JH
nxUzks+zv+QSIa+gLSUW6HMjJ9y29BtU3NNsxd2XSImejbT8bF7b1QrqOmmq P72za8lITz37
s5z53bDIGfVbBVI/SBI465FT3UqolYMS+iMRp+sphUAquxdTxDxYNujZSmHQ 9chbCY2AkJQr
axzihP8pA3dOV7Fghr2BbY0JNJbptUrxyw+0hYGEpAnPZKbT1B9TytPkb1OD 8xe9N9nH0TBm
M0Ars+yMqV023dNPkpHE+ENRYDLzlfloqqB8ZIHwJwSSmaWA/L7FUd330dT7 Z5/aoN4ZGRHk
6b0Z7tVDx1fjOTovMs+VzZdoPCEwL2zaOqi7fY6KWyW5R/0gbyEzMf5TPc6B wNDO9F4sLNSJ
rEi5s5NL0rvcPZghPjaONgRJzkzQKZwC99gu7wjCDSZ7J7LuwRGCibvCk6VO C/gfnSLLYDZ6
4SltOYD5BkbK2Ijq8VU7G3Kl97IFdKKRppAZGyfgdY+sRc7bK99V6sz9swmH 12emTK5N+IJE
aN30lu79UCt3k3m/FvDZBtU/YMjkaus/1PIu67S0A95D1Seg+m+kq+e6wavs mhurj2FU4h6O
pySq+gxek3+kHWJc9yu873kNJIjeE+NuygRMv3mvxbCFPjnjVPZGJrzVy10N M/Mx6I2P4oDJ
VjblwHAr/OeyvsxKCSESWfvQI2L834HE2MHB5sSYsloR2diPI+CoDDR5qtq8 JP3dE2UKDURw
lM0JKvUhp0i1as+1P7drPe6igm7pPIlQ2yjKQ4DXAtVP6YvjI5jEChAItcdx yVnooXsL4WZn
fif/RlVIOFUQToyMO76dPhRl0PFshDrPYv2fqCPUIz7oCjntUwjqF2IMOEJh vUbEFXIw8KeP
QcLntrTvY7x+jUvlVbHoGrmxD7b0mt/JeXY4sbmdFGMlHwR/zO0jMhZB050n Fx9m6fHk7Zh9
9/1/jtm3o3EfL+IpWuc26V85gvQms8koHNzndvPN90/Wwen55Gj2cXI8nXm9 vO95qJEiHQW4
RdDjtTtyQz218jtDWBdinlVGD3BXHt4FBEH/v2eUVm24oYPLOEbCv4Wa4imI 01CoG9IWbCgZ
Wjh76+6LIW1xceNBgw/CTP3NQDP98CGoYsI3MTelrOtrwbo1bpBTpsWci6P8 z9dCfXAuEHiu
bQdjgZSLKTM/xFuZA1IPQOd92zuUL7SYiDLkVEc50Bv0GN0Z2qEA9/VStEVL TsW/lg1jfc5X
fPcIjsiEmj1r/QeQUTUW24IPXZgwHHSos4CD0cZTckyqp6ozgCHq01oeS8Iz ls+fJSFXcWGu
tUjUnZQgSPhH9c5uPlAxD73CaZI19ilwNytFYi+2U9X6tlJXSUPXFIet9BrR j7OEzFOXyPvz
6cfD2ex8+tP72WTM7Laq7IZHrFfLo1Kd0IpfWe9iaWp7E139pf5uO5+BDxRO QvlUW6ChOqcp
9fo1UOIUP8Pf68WHJltjIaciPxo462d97N3Kej9vL0MurMI5bOUenYV1DiP0 FmsEhajnRUZ5
6QLvexkWTj+BLWtxD+f6uJ7sNm0+gYu17lq9+ZjlrMYDRnb7Se7W0JQMTems PgdEPJhEdVDB
nLFhWQgQ03nJs8aciSFfUO+OZZW+a0DVOcuT39B74BKVC+bIprwQ9DnVBGSZ qy807ytV8m33
8/UYX/SK8k0N/cjRYMlPKqcHl+oK7EDrlNUvPrvGfYfqdimo7omQXtctO/F1 r8zdfx1s9Xov
rTqYI6IveuR6jOpBNLowy99E1oGtZGq/1H4/Ts3r4Ybeb1C4WxQkcDHzWpYP qjac4LKudjwC
GVG3ocMvW9iHZzUSe1iD/eMfLC5uw/rl7wKnV2Wnii+JVxhIJfpGZ4YWvt8Z 9RaQWJEuM3HK
P2GAy4yMa1j3aJbd9CrSSiJIYPdkFQz0bZ3lqHzWqJuXXVXCS1so6tVJGCiC eVB5gXPn9pMX
GAwI2QUVEmRMXp4mjVYmwAkFbszVLOKarvevbQYANH2eNfnmwxta4OwNNBEZ cX0j6qx3jyPt
L/8X3tkkMybwE92ZHst3jnP68uP76UfcpNVNfSyzS16+jIJ+ODw/9YBfRkvu prTkQdAPXujv
HV7apS4q0bEKXar+ip6odREL2MYy+bMEB1RIQhTnkQvA2uySZbKi+7Ju8U7E L5/cDQxUH/ox
yy49ZVerwFHdVTgnPx4w7cjL3dsFn6G2fDtmL1UFrEbDbJoqnffuXjAXOxoR ThLnoY9Ju8nw
8hdeLJZt8p0WY7qqka3p9wFb9Ar1LyCoNJoYvBbqNWGnn8aSTHrH/p39R7ho xMIMrIrOSly0
8448Wxhb03brz52fFoJh0Lqz8E5ENjx/jhtfVHjg1m7Bghi1fNNm/2BzMCuv v2GnvKUSOUdc
2XfIFnBsyNeqFMBVU69kzYqN8O1GJuul1QD/FtP0a3SRp0G1BEMtGrMexhEm /Y/gf9tNmoaW
9i1gGYSFAex4bzA+Ia+OJEnCxkceg1CMqH4kTITl0tzi2kORhazw2Nc5JafX NzKc4ZpXPgDq
CVUiHJAEKysOMt9PkdFcydR3OMLkJSWh8OjAVcFzORPInKoGmy27oLucvhxI l8UjheHU6Kb+
cBnD415FMpSe0+2pWW0/u9E+yx7ElkhWkntdB33DpL7aKiFdk/rlSsy+dNiF WoYQwHn2OTUw
RALIpW4oYPYp7H4twVjHPcvzLUXTxm2KF1MBAQ2xUwn3OLxEgo5XeRc27Esb oiyJRLQHmCjl
WkuHA6zE3DgHEETKYlxcSHLwMNhtdmeCPOTPIr5JjmMwLFNurRnFAqcF4jCw 4oMwcgK+2YsZ
xO9BRL4xIgPjgcbwTgK8ih5XBteZtQfYNPyCLqRQsIHfO3D6LRD0QQp+7y2S 6qJltvTgzKkd
r3PSmfJb1BJCdc4fiiqvb2MgNgnMm5ti3ifjzsrw4Pog/fGgMoJLCCu6DrId O0MGWm9KIqrU
44Fl/aHV7i24n/qSuuDI1uc4AoMLvfaXbYDl+MjsUUW2hcDqtFPOc51SiPEm K0HbnARr03FT
J18Ys6oSmJiCkfUTJgp4TlbI8kaIzOtbHILHEn35Q3S+7aUukRqP4Sv279Fa QXCxRkeiZKY4
SB2NEyocd/f1pY+EkChIBPZsjJGFDdDC4WXdtbMaQ7nBsgbFrSTxRrh7Ld8o DVtyiQ9yPrxA
T9fB3TznfYZeqIORmKogp0ACvk6rnH9SDJHLvANkAdT6ZUaSgRXAeiQsfMf1 IWsgVMrTNGWT
w9nJl2axO5JH6aRgwF8TteD5uoC8LulCuMgBH3iMjgDe2YFHjZ38s/P2DZ6t Hk4jUfexAAXv
pm64XHExalW1XuauSnU9pT7wqXRcBrfqmXsX5Rjd2gKvchDyePdYtlcIDx1a eoY59gtg/Kvz
Yoc8YRqnV8qA0UIIphJmzk4aTYRLBqfDI6FPBFC6d8VXlxzz3an7yieg8fcD 7At1wl66F8JZ
oi8zVJa68hgoiXztwNk20Rvacz3FYAz2VmF7BtbAynwU+8HfjvLWdOuTeq1E UtM7S53arqN7
02XexJeif7n80L3fkYtFb8xHJ2nSu23Uio0Dubfpho/o04MN2/hSngZb9zai ehApnhySFsPL
5evTWiifbb1Wl1IUqtCyLnM9EQ5s5Ir2Gy36/YbdAeldUdU4juXGaJ0tZkWp i7BApegVEaWk
A+Pw7qDbeRhr/WHbQExk5g7FYAeD0c9V/wfjkOig3XxVf1qZK3UPERCPXxjo +BOPMfhOHPvn
TDzEEttnHUfhTfvOg3jmad8Un26dc/rVW+ui3dRMjrllz2dElRsiBcvxeBb6 3LSM0keByxJb
NwRvw+os8N1qeZs2/isGWtwKfX3xsy8RZuIie/ngSemPavjyxhkHAgZjKKB0 uf9AKontCSyV
cqWkPfT62sl5SPHySOijTXhjmvuiv7+Jng/L6+rrll1X9S0ut7QVYTdymq6S j3J+xUGcco2n
475bzlaYlJe3dsE8LIobe7sJFjySTyWPA4O0Y7E5c0pzujWlRuleGaGJYwy9 5ApJQWgcLOtq
hO9bqT/62h06pU0fDqSaDdzJs+E+nuiVOngNlrmPXfsgvqfslz2klpzylPYG vEljdzWUb8a9
jJ+8TaTvs3lSYP/Nh5GtTdHE9dbi3rAjkRr1UtbI77OsyXpAJ7QxNDuP8rue KTppPOgwPqPq
9g75WdNvLQzMDOaY3kz/+2QCgbNzvw12eJeaf9xpiE86sQE3zPvHa6xg0PvQ e+8joIH3rgHX
xxvjoLFzkT8wN8wfPgq5r01Pf6iBG0FAjq02e4Cxf8POqGDUgsr9mhianSqQ OVw4bVXIbUG7
DJZKKmhb0Gr7HEIr9u0PVvt7Y5IX39DGM+0vO3vIp7UsxJJ94flLK+p7lw3P rgPBl61957Sm
KuMod3QQuc7J+4dNw+MINOW49+qMz9Y+qCIG26OHjOyCdqCD0Y2pn9vGCKtF 1pXtI1lK/3hX
r90piDDimaPW/Rnd0i2n2sErO9rYN7Oh7e8Gw6//A1BLAwQUAAAACAClXZEy INMIqoUCAABt
BQAAKQAAAG11bHRpcGFnZS9DaGVja2JveFByb3BlcnR5RGVzY3JpcHRvci5q YXZhjVTva9sw
EP3sQP6HG/uSlFZuvzYM1qXp6Fh/QMu+y9LFVitLQpLthrH/fWfZTVOS0RFi LN29e6d3T86P
phM4ylZCKxcQLrFFbV2NJkITlCnh++oKuJGwurk6h1uMnfXPK6mi9YAvvHYa +wKQHjMxh6V1
G6/KKsL1txtaecf6WIpfaA0pFsBjQN+iZPBYqQDO29LzOjHFCoELYWvHzaZv oeYRveI6DCzc
I21JSmq50rzQCI2R6BOQMusAdp0WS1vX1sB9U2gl4KcSaOiM7Rk7HSp1lRLV lkthIBQ1I1WI
XhVNVNYcp5Zo842MxwSuYnTned51HcNBPWZ9mWssuc6F0yft2SmrYq3f9Fla MxS2PpynnSyT
ErnJsmujIh0RWvSBaPtgPp04Lp55iWAwsrBmTa1fGCbxWd3oqBwFF9PJdKJq Z30EamDbzNOa
C2Stwo5KsiVqPYxt8T/ZFYrnwr58hApdZJ2SJUbCkIg2qIiHUxuVqgdGo3bo I6nN7ofXzSUG
4ZUbaPpffjQaBsbsDchtDqzpX1irSThouW7S3Hhv2PRGc99rP1X7yptYETZJ /mpKUlloHsIW
tN8UGT2ikQEOhH5PJ1nqNusJHO9NrOS7JdnJab655TWmfWLM3GDJf3PO7oon FJFqHcMDmYau
wU6deeLNQkOoWZ+yG1v0oTyHx7vLO7ggs52UaNDTJZIgrCFvN6JvPcSmoNQ/ veB0BpgZa05+
kM+lFfPxBAHxwyle73f/WXgkvtfAMIPZh86Z7+mzHSAcrLhFAklN36xRlx3Y cFvgC12h7oAv
ZiMuaabWMKOGfnGtJO+Dc/hEwEbrvrEsG29e2E15nz/U8Rgbb0bqxavE9PgL UEsDBBQAAAAI
ALZdkTLn8PTivg4AAFxJAAAcAAAAbXVsdGlwYWdlL0RpYWdyYW1FZGl0b3Iu amF2Ye0ca2/b
RvKzAvg/bIyipQKbzl2/neugPltJBfghWHIT4HAw1uJKYkORKrn0o4X/+83s e/nQI7aC9FDB
kEjuzOzM7Lz2QR+8ebPzirwhP42zxWMeT2f8nbw/8B+Ih9/1o+/w4mDn1YKO P9MpIynjYTEJ
y3nyELIo5lkezsuExwtoPNx5tfMqni+ynJPf6B0NSx4n4S+0mJ3TxWFDU5+z nAKJpjaJYhrc
fnunMZ3mdD5IymmcHjbDzCfXQKZobp1nEUtCRWYZyDl+v6djYPJxJdxA6shl O8unIRsn8aJg
4TjLWZiXKY/nLDyBm97DmC14nDkitML3h5zyslgDchkgm08AeD7P0rCMw19j ds/yAU3Zamgc
kuurfjsgE0z0rA6WwuWsyMp8zMIrdbExwpDxVTgP8zj8dN5fowswZFTImCWJ MurjiC7AOtXQ
j3LGeqJhNZFFnt3FEauSOMlSzlI+UK1fTOeM3oKlLaUyZUDlgc4XCSuQnLDy MCt5EqfMeM+l
vB+0jhaSWdCEcc7Cgfy9yrIWrf82oTA4d8KiCrDupJynHxmGk1PK6To4/SFL 2LjdHdqgT2Y0
nbLoLC5Av20qaUNersgqFs/LMS9zFm3EKnImXW0d6BG9TdgZfYThWhsczXPD HjYA34j4Msji
nofDj6P2xnFZ8GwengCH77OkdVgqoJBF5isBjZ7aIdkd+CfabsrzLFFety54 D+/age/jaMoE
NLQXMV/ChgYVHK8JJv1tDeBWBUDA6csIN6B5iyAI8z5OVCTsp4s2E0XAj1n+ +Zal41l7gAEw
7KyfxnxFKgRI8NKw/yHj2TnNP7eNC8ChIRaQtkS01TGvr6LvyphnCED0XbCc xxBB+wN5/Tic
McYHOsMfqEpqNIsLAn80JSrokmxCKFFhlogCgai0Imut1/v75JZB7bJfFizf j7Ix2d9/Z9tY
GtVbfp5ieKOcReTicqTKsnFCi0J3JccFuABRo4Ic3xY8h6ShHv+JTHcE1x2H bT5jRDovXFJO
ihmNsnv5vNBhjsSpeKDUSrReNSlGFjTHhpwlVCDMwe1ARsDIc6CRPJKITQAl IpMMe8KeM3IP
RqKItCql066VjqcWcQ866cDYcegT+rKxy8piIlRdG+kdDLMUHVw6wXFUctE0 IuNZnERVTegs
LSCKWXavMMAe4I9wYOArCSj7bZcOmSsIcijZEqMuRqD4ShxyN5Ms5S+BlFnn 79g+B2pRxor0
BzDYciHcOIYh2aokNo8LPtaThGN4bhJFNowhaoCXACeRNBgh4X3MZ9uXx6kD JDf/HxK5Blcr
jv6qkn3I6WIWj2kig7mSb9r0FKQk8JHfIKwIV6qOh7CWcUEbGxd5fAf9Eae4 14Cq0JfqkuEa
/mAahXNfVE6NiE53arpBjkhaJomlEUcYTpEXBYGJtEYlhpDqtPdPgc5bINJx B04nNh0JFjCD
FWlFFaEQEsYzHCIvhymd3c+ywnkqKcZmOIFHaJqL0o7YgShvk3hMqO5Ypl05 C2BRTyHIHnA+
XcvBThPk4Y4m2E4h8Asogusre9VEL366kmIH4iDLAwmnWlBxnSenv/rEh0Bd WHsYaJo5g+lO
ijCSs2BjkhpvNcGn54yyDchLBriI0yn4sRpfWZDAI0Egxmp27REXte96wx1j RSgGt0lVTcZQ
Ib4dS7jLwCFpZGeylWl00DrBFrrGC+iu2RA8A8ChJ2rYRUQgG1iPa5CkwXY2 oWUtUVPCsOaT
EFrJ2Ty7Yy+nGEG0cFXiqMrYqR68eEKC1+ZpGBe9+YI/Atvff+/V4wWn6ZhB uGpaltDEOnqF
VaHaSANxNQgaUS1HYaywlZdK5qqUwhktLsABgq7ptXNwQD4wLhxrEucQVjWS dr7QAKqLy9vf
AKDKJnBZ6y4VfR3anoaqJ+HCOKvAGznjrXWjYoQKKUe1QKRklO0htApnBO2/ rnFipe0o8EKD
VyE16Q5AjGKesHYIRSpnk5wVM8vVk/yVP0/am58aKppxziCTYryrzDxfujiR 1u0FIh3nZQQS
zDexqKadc8ZnGcyrKK664sAlGYWgRPRaL1YDcjRRBozUUTancfpDYUFAo+SW YkmWpQY0y38o
VETfltjCqaWqxdq/lhzssQ9JqSjnTM6nrWWKHDSJcX1AGHso4fG7uqwihw4f op9WW7tgl86t
MhKePyqLBB7OUJNiHqsVxWd5Vk5nDeoMFZKsxPTn+qpPyjyG/uEqlJIOYHIP GXiuV9ShJTCc
orfgb9AVVxDqB5SDBYc8gzAD3UGAkNbsLOEb/vBauKPTGFTgrTBHLl7oYAXA 8h5MNEvWPfTl
serpnNPFT5KlPRl23pFMLD5hVEyh+ldbVhUg44wKOETdO/sL4eVg1L+8uDnt nZwdX/VuPp2f
7ZF/Z1nCaBqOrq57Gt/sZaC9B4pa91AM3Pv+p/Me+AI4A9bDNAHFR4/CM9AI XYlkLBhTDmVQ
YBbQCDOBCcidiHEDu0OxdGkuhsxnpaJROdyuUjXvoBaAnEKmA30eEb3fE16p Z2H/Yjg6vjjp
KXipQt01GtURcTfLQnYxvJEbS4K800RSfQE+4DZ0DQc49IGl3XWpqP0SkuqL I0MQ0VwYM7LO
5EU1KVWoKGcA9fYiUlJri0WgNdgNobDSbFXtUI4aJhnTmZwqmWHDGjdQ+TAj /zID4/XlJFuk
lbkVgWK2q9odqQLdRDIliJNQWpkilQ+GknthUd4uZlCHxA/CyT3JQG1ihr2r q8urPeLv44aD
s+sP/Yub/uleMyH8vN0ju708Bw2hR+jiXW9x7e5Jpht1Lr7q3qKvtD4rTGlz Bl+dBhb4UFNc
nd7EesHtoyyGgDAT02euRixJyCNOq7P7VKwp5lmyjYWEWtLCqUThJK0TVTUI xkXdMMmzuZNR
ZRLbMSnLy31CHW6xPXyE6UqepfEfWAegP5j6GcBqC+o6NUiihopdupFADsxA rHYuAbCrdbWm
JVjOmlhz2xJcZTi1VihRjkGcO6Hz4K1RFvoypF+tILWRpPUkjDGQTuZuSJmp dOdWphYyLWke
gXNPaFIw5dbegEt8iOYwGlHgblgRsYnlh5LXgp5T3Wr6mFUP9cMZzK9AIYWt UDtNfPh1K3nS
JSHO9O3qlmOXDUqUnHg7HetNvaUEfp26fF5tpHan0F6FG+KkUcn85NJXMwsp hZpTmN0+GAN1
ZXroeWSrS3mqEPGBgjone1gymeSkx8KpdToVwmGcxjwwBeQQWAq6gopXUWpK T0RFzNpGnVNn
YPwYXZ5ekuOSZ/t2m0qi3ibZ+LMCZOECygEOaWD8eQSjxYz5KDupcmucnSuz DawmFaZeWwB1
fWhaDw0qNJsGrxERldJM0Uiu+g4awbr12aXX6QZrH15v7WyFahhRX1/ecYuQ X9yt+Ko77p29
lMZe91DkShgo9uDmCYurLERbhx9WVahtHNwjh4GwXTZBwdkZ17WGfiKq08Ye tFYkXoD1PdKy
vlld54YcIGSs9dDqnuB3CkksjEIucDk1CwG4XEQXuKOdxzgbkDuFmgIpMnLP yIzeMaxK/oAC
P+YhuZ7OXgsQfcQCnjJRQwb2fEa3om+xYgJggSeb4hbxcY1Ej5Wvf/1UybZG 4Fkz6rTFHDTL
QprVCJeUPJaFytW0dffmun9zaltvEjyCtSsYRf0RspyMg2ot+QIKQZQVjeLg QJcQorx/4Ocs
Ld9DvI9cj9Cpc6clc1YLHjdtum1OzhyqVajqcraXOH3czVejW5ejn5c/nbBv OaxlBxuAlkWe
iogNYWeP2Ly/UfBxNibAdWxHXd/6vXBjcbS7OAcHRUm49GhhQL3WGiNI1DtF 2EDSb28gKGyr
yWZtP7Jf3NHDse+nEXtwotxS73cdyiDXfBK1WXXIpcVl86TBdZQ6xKbu0kTh m3EaZEse/pCG
j/fWZ/bI8OMoPL8+G5mVFGczHeCdO4uvukWq9ZLM23xf2x8bdfiSXumelUG/ tF0t80sXC50I
E0/vYUHT6AzmUUnw49tmuCYPvgKMvGBf4MhV6s925RZHdvvZuivLEV/tzI7V rFgrcL26EajB
sfUeU5tvt9D527199z5c5d9tenxJFzfbmJt6eQXxBVNwA+UXcN4Nd1MamJCT Cge3pm6zb1kD
qrOMWpZGH1T7AoaEScKoVkRpD0MVGluPRHZuXA1G2u5tJ40hyqk3GlcM3cBU A9i02mgg8M1E
I6dCr7D5hWV6k7AvGTIqxwVFyPAfLYsbBtQeO8RFU5+AcAH9yEVUZwwdBAPq gskXQ0gifxy1
yIbAEUSGF/FUglfafmEUYsqvcRFjH3rL1EUG3RT1drn8LzqVrx2o7Wx14/Ak nwSCoEw+F5cX
ahdUsiTXvREK3xJSq93+q0PBj3vkH2/fqk1diex2KGITunTFjy8dGN+Nq9hi YZyuEhLi0GRb
Iv6zLqLtrk3AoYHwxfMx24WrWqbIc4g2MK8+BHLvTuzg/ue/5M9durtHdm93 nxr95QUzZQPl
F8iU7sZVJctUOtx6ljExYHXJW80nS3PJs/LIXyCHPD9/bDN3VPLG6pzhhBk/ AVSyxd8p4O8U
sK0U8Lzwv53Q/1XD/tcM+ZuF+2Uzh+dMGr79+cKzpwpbnCX4E4S15gYW5yU9 5aXro6Vzeae3
L5nGW/TtO1pLWbXTcE4LX/zyD2ZFDOSZY94j97N4PMNDyCyf0DE+cF7n2Noh LXXyD4TSJ35O
hMd/Zo/KVfCUDtyF7PeSJkXQ8HJzKIKEPCOIu4vOHn4dWG/WO/7X8D8i9Gak UPexWCHRZz7N
ni1+saQALVU4HFQPfLkMeuzVIINVtO074c1ExVsePgmvXQSz0FE3KtogCLvB PV75ujd+3pAr
gVm4Zw+dY35gVjIohgbhZ8OL+A86aGi6Tb8A551S8k712BdWVF/inZUVXLEJ LROO/+YnYu+c
F/zw//zAE/sWtmSV4OvLNEkMsZgXwj+LZiFW0Xekk1vkNsG5bxuKaGxug66G /lNf4AcHHI91
4plU5/XErg8ltHGgsg3B9xyrrQ4u8U6ceCwcumhP7o0S339DUjYDHPz9D1BL AwQUAAAACAD6
oZIyLCRrKzoNAAAQLgAAHQAAAG11bHRpcGFnZS9FRGlhZ3JhbUVkaXRvci5q YXZhtRprc9s2
8rMy4/+A+Dot1ah0mo/n88y5Fp1qYss6SaknfYyHESGJMUXqANKOrvV/v10s AIIvyeldZzIx
SewuFvvehbbh4j5ccZby3JdLv9gkn30exXkm/E2R5PEWFk+PXhy9iDfbTOTs U/gQ+nHmj26C
zwu+zeMsPa0uFnmc+BdZkvAFrsq25eCBp/nNx08A0rY8yrkIgYW2tatY5i5D LuPBMA5XItxM
kmIVO3y1HA7/+NtQ5LLEgrfLcAGru4Oo8KdES3ie86HItsgbT7n4E+h7N95k EU98jeAePhMr
ny+SeCu5v8gE9wWXWSEWXPqjyzjhp3sgizSPN9wfTUS2AjR5naVxReYuSiTC xzcRqDVNSa1X
4Y7vh70M02lW5AegZmtY4DKfhPm6pL4PkW+WcILNJkv9NMvj5c4/j8ItgDdE WMfiFRH5U/3w
xQgznn8xDjjMrQi3Wx61+E07jc+b2B+G6SqJ09WP0+DyOYjKqkX2EEdcgLYA SvLoOfJZ8aU/
5MsQfD4AIsNsE8YdGyEowqC/HIb4KeaPXapEuLcglXW8CJPDJC3oIZrv+O7H MI2SAzCzXGT3
HepHEGXjYJQyD9NcdsNdZ4Xkt2vOk4O7lqA/Z9nmIPiU/7sA53gGD+gRQE2i 0vHheZDbrEij
gxhRGvlzvtkmYc7nIkzlkouhCFczZdnNoFfHR6ukUDsD5YUfE34pOF9mYjPN svyw3vnnEDaH
mAaEVAg0MVRHRAy981CseP4MXrpovQ0uIRJuuch3dK6JdqMvoUWB2kp4yCG2 84PyjVPwzjRM
kIdriMSQcvdo2kIXMbo6chwDD+/TKEPR2kOAkeVBmu9z+C3lHl/nINRGN7Ag W5Tghlmx1ZbZ
DQ7chVQAgJoEhHXU8/miO37VkEAWBP0M40dJVI9yUcg828T/2ae+JtahuNKF cdhUHMzLZAfZ
zfCpQnRcfhYcnIuni30WoIgJpQkndmbiNs7XFepfQoJO8pzIaXFnXNd4s126 WAuoHzrl/WkZ
LrjWrb/PCggQ/CnJVtLX3jBUr/sQHhT3DksXa8ickGyx0GxHlI+5P7uddy9y xJWYKA5QeYwj
iD06oKIynwMKnpkl7YAg4BFpdJRui46NEQhLvGcB3mbi/iNY1bo70AIYClG6 MWVUCSYTagWe
iduGevRikYRSMlP7Eu+Mf4agHUl2yJzZ0Yvfj170YJMclMwjBnEhjxdsGUM4 ZJDNoVBik/Or
YD4P7oY3F+/urm4uzuejmzE7Y8fDbHHPkmwRonkcn7KTk6/GN+Pvxlez777/ 6tlkZ6OfA6Rm
WJqBzf95YvPzeYUaAreRUxTjB1hkNdFFumavr7PIdgt2yQnzbFsJ+RbEKXGZ kGJBpa5d/phl
CQ9TFmUpvxAcPqFBaWOGgyzDRKKiFcPFxwQOXtW118b+oM50n6Gee/k6ljo9 A+3yqLSgYWHF
OWpPcqd+9VL+yBpVrYfo/T6CP6FNakYfsjhiOnXPcmiLdQjxnGaVqZhA7C0h qxkjJ1BvMr2Z
3A1H0/kHRV0WsOi3kSQyAEMMWGPRPKTLeFUIXovNHu1rqHYB4c61j4zCI4gK gk8bAqAQiA/y
c4syJcF9VZtHgiyxzYLuNryW7hqySD5SSX3BNT78K1MPuy8fzxhy0JmlPNpY G4zWpLFSIDPB
zhYEboK4q8BeL14yUoWvHO86lPfs7IxBVvAv5tMr9vXXBO8DpQso7cziMLgy JHpYcrJMWYfs
EDCelxITJCQtHkmK0kxYfDhukSTsjz8MST+WwWab70BOBN4TPC9EynJRcE3B LchYpGpOeLOi
Kxe9ej/hT4N/3cFpgnlg2LH4yHWgIjOPhmEewjkgx3iai16ltvXfBR/uJsH0 WhMbsB9IB/58
+t6SrjUc6Gz0vok0szUIu5lTGOuimmqIO/pT4WUcbrjZEayVeVAwsxg2eH0K f/5hBSshcoMS
WPzqlVVmz6hHQwGWZz71LSYIxovNFj17GnUKgkEQcwYrUIuBGkfol6TtvisI P4wiXDTAT/Sn
pKfiCOiCf+aLIueeg2twGhZCRPRnih+Ob9hgRIBP+FR6oFK6bZbxYAYPPeHy zYC97g8UfVgi
dUz5CpwCfF9ZPn3zmvW8D5EyuJjfBcPRvB5FHA8vWVEwJycQjyDbJN89YhvN sI+uoJqY7DXa
cizl3mJ7iLNFZA3ePePs/QFTp2jt0P3ZaPwWDPtm3Bm0VTakE8pqpK6u6GhH 74wqYm399T7J
86qFW18lLiTQJmqhHrnQuETZQNu62PKhDE0X5BiPI4rEtbO1tjn6sK1r+uja 1vBU7WCrSp7u
mwDekQkrNLzKG6tkgHp2rCJqUHKK0mLKZtFzGHa+2vjglgoC/Ebk82wWPoAz AMhTE0bCWrn0
VN0ZFNCcoigODg9bzFGqbquUd/Ltt0cv2Lfsn5LzshCggutvi3rR5tmmpY9Y J7VyqBscKkhh
UylGtJetRSGs99Bn3yUFdD4szxiORpMHDn8jCFshBuf0QZflbCmyDQPBYMOA J+sqNG1sc33M
5VNzhzBPxqqdg0VKbV59+M029JdOBX5FildpxFxKMDg81iW6PEbnMVUzulWs wVRqgWd/Hcox
dDjwThnc8wx4X62narHvK1tx7k384Hoy/3B3fT4hJTdTwCYU93iMKy09Ci5P DN4Wa2C4vKJh
cca1EesWhAuhqurj+ZozM60GzDSF5uAjV5Ybscc1dJgsX3PBGQiUsOTff01/ TY/J2l8haZQB
MpGAt0Q6Uev6Bi0DIEDHVO9lS9achGOhBcGu8b2PbNM+uEV9GTzLIds6Kids OuwrOC1y/iEr
QM9QKiXxPU92jMd4QLYOlVGa8QuaKqXuiMGfDc4C2DF7Rez0joGgzDZ4cfYI NMgALSQQk+k3
KEgOMV7KeJXCYogBLYd4B7vtwHKOlYSql1b+aAxd4fgi8JNshZIjMVYGIYzG IzprVJY8t/40
vkAF6Jon8KizXO84UKqE7ogC7vFA1SIDUvGgStW/PZ+OIQMaZNUUKDv65Tf2 +/HNu+MnLAMU
p8SbDznY2GOn+53rROku6z4LExzdWngXamSQ77a8jDX4hsVyc0DhqwmDtvXG KsPrTC23xqK2
2O5BKhPY+KinM0cS3Qhew2dpi+qFDMhwqZ5iLjVvNYA3vwHayQkEIgP3y+vf jPpx5AyxaWNS
axUXw1Ad93uDG+A9015c5Lb9GonqSPPilO8NSM/uTPSsFN1qrTpzV1mwcyLv uVtrkaJibfOq
ZG+30btSRaLvs9EqQSg8kRCaXINCn8F2v8ghlnDHokiITl1j/NYB9fQkYsBa CjTFRqUGd4xc
mbfJ4KaEMOlOWZF2ZTJsTabT2Scq+4H+MPW+X61fMjS/HZ3bHc5ULunYqmzf KyOHtv3ccUOt
aGyMspliSVVVztdmqdhANPtrdrGTA1I4yStznq7NNJlaNMWN1ZOWi3qubKDj Oc0kcq91fFhW
WTVO9KFmOD34qzhRQ8JDHNzGUb7+yzgY/dzCABW4NW0gV2bGarj502wA8Z/C pODtShmUG3Xy
VtEP8qbmPP8jY02+lIoGmvghZkhVyMwjPv3/mQFtDTRty4vtDhqtnZoGl4aE r16ZaJ0xsRlO
qY0r30tDo69mzFdpEz03/lWnz5W2ZaogJBadIDRdDDO5Sxf6gsmMWBhWrtK5 ecLqFUtX6N8j
rN5wDckosiUpKBXfMFXqQ0FbDXfSp87JDFD0BmJNG5gGyYpQ5d7WWzCUaOtC Nejpu+du4Lp0
fsyye5JNfcQLB86plM/xiPhMPZ/P2A87KGXVFHygFqh5VARjie0WCQyXWvkY YCMALUVNwPec
b0tZKnI1eUKUUhIEHuZ2X7VnIrETpIkFlsZ0qJHd3uR6RRX7r/JA30iGW8zw 1rShEuVsa5BS
6/AcUni3rLEh18Btia5/avFjNGf0vAa7nZhtM6MYes1YNU37Jv17oNCjvnTU 7849qNaRpmxx
l9Vwov6zCrpP6frRRWUmcZDMnp/PVQgdqZEf0CHzVj8Mg2/77iRUnW5KdG8f ZF+zuardeqid
az92w+ZNP50R5RpAH7dVrTC+edVfD/kXN+NxcIGJ6+7q/EMwrSrPsr4gndj3 M+Y1gOxGVoGK
mBor19BfljFbpRn7ozwtSV2428+eKdHxhSx8GwrK7W90h7fvJ3tMbqeGMCUo 1SvuwaizjOe6
VLM7dBxW5QYHKRrNbEQ8Wd1ou65uIaqQ9e20GCdhyikKACXAsOZottK6dZfs NaLbw5r7p1hS
l3ueJNkjzQjL0G+uShu9sc1U5rKw9TcNDbCgvNhqz0iy9evZnkyFR2vF8hs8 tnPTEfcklpd4
reD+ygGiIfzvBj4LRiunqjVSv3lgS/zvDGdGtZ9A9AmWjCihogOCtp7VaWt3 LrlHm21igN5P
R6wQeFMET7p4gScPN1MEwZHQgsFG8ozGHzYrGJLlKK11QOgB/YEaXmq88hLb 3Iz37U9HKw6O
b95rExFVNSlyvOqy7KmXvlaawRxyuRAxTcsOngPN+L9QSwMEFAAAAAgApV2R MiAiH3QmBQAA
zxAAACQAAABtdWx0aXBhZ2UvRU9iamVjdFByb3BlcnR5U291cmNlLmphdmHF V1tv2zYUflaA
/Iez7qFy4NDta7Jsyxy38LBc0GR9GYaBlo5tthQpkJQdo8h/3yEp2Uqs1OmW bAEiy+S5fOf2
kR4c7O/BAYwyKUqLcIYLlLosUDmorFAzeD96B1zlMDp/dwQX6JbafB7lwmkD eMuLUmIwkGY9
GOpyZcRs7mD8yzl9MyXze2H/VEoIexYMWjQLzBnczIWF0uiZ4UVw4uYIPMt0 UXK18t4L7tAI
Li0EK9wgLeUktOBC8olEqFSOJiiSZGFBT8OXoS4KreCqmkiRwW8iQ0XhLd6y N9HSci6y+dqX
QEtaBCYX1hkxqZzQqh8g0eLGGXdBee5ceTQYLJdLhjFxTJvZQOKMy0FWysPF 2zds7goZpMNj
qFU0rI09CitJkufIVZKMlXAUIizQWHJbb/IZmgmaJDnXuZgKzGFKKb9XAC85 2N8refaZpEGh
Y3bKqkLeMgwCrKikEyVtHu/v7e+JotTGwSeKh1GEkg21lJj5WI87dseUUE5W uvbOedm1/JGs
BYX1XhtUoXMkVf+8ipjbkpTBdTaxmNK7NshGpy7mDY93SQ4lt3an1Bl3/GZV 7jZ3OflE0ewU
20TydblrZ6rMVYbLd8jp8xGNSrCFwKVlNBYlGkedycZX8X11hjYzorxXkycr X+vKZN/g9d84
vcFb16m/vzc4iIQQZj/zJfMjJpRDGmRiAA0TmjOYoaLBz6A2ugIb4Ich4MQl fsZ1qJBXDhYD
eZQlzTv3Lf3aQmw4GDvIKmOI0+QKtKKHrUofhwWqiqcZP+gTrSXNIzhqDtuP dEPLuUarXrtG
JbCXTwB1tnUEuBW1d1RZ9IAIZhFQ0HsARvQZiXbdz5FVm3aMqfA0pCl2F3RE 3veEVEq+AsUL
jITk8bU9sA3J/MwrNydogVga6iWGiGmuO/p+P4DwFO753sKDVoEv+3tJacSC OLhRrnNOlUzW
W+2BjinfzERSRgLu9J22rUIv+Es8DbPoBU78RugaokFeUu5nnp9XtNHMHftQ r7HxxfXN6cVw
FLDVdVWRLn//MCaVNk6GF9d/0XIQbmMmubQt2Fs7ZVSWdGOw51XvArYBHX9K q8NfiQdznfVo
yRfDIu4clAcp/558eG73h81HLitMo7HBJpN1xrYFY/oMEreoVpleAuL2aNtt oB2s9cef8Jh2
RN8cOYmILRY5PUkyugCc1EExDItpKECyOcJ+6HD4Y5JvnJAFhUuIZ1SndG0T /EP49iO/vuwj
ur2s55Y8M1HjrBXoMiGpm4Vjc24viPsonjqiZDPwCac331+bpR6pqCAf7CRR o+GEJIz6CXi9
CKPR87uNjpimUULY8VnLcTIYgJ3rSuaevohUse6XuNtKDON5nobcbOckhTFR M91FmNNxqNI1
nvogi1770Wzrby13QdwVgNWI78ITJV3IPHgfpRcbK+u4yprywslJTc8s8tc6 sE7o3UfO/wu/
PlKehH84x+zzRN8+aww7ggiPFmuknTPba+N1+tQYvoqYu0f8yx28GDk2K5Hz wsVTcuqQyIpf
Icv7ivW6yOuabN/Okmn83KadMIlb8psildxYpC8ppLFaPZGv8+7/a+d0kaDb ecv+ezpfoHEb
xeu61KLfEYFVdPf5qVk4glevXiTTwq4XCNTONDdXp/tqD5NMfHRzeXYJp/Qj 6DDc77i/QBVI
d5YcrKsmrZCn9JsPnz02Ci3c376xjRaaStih+E8ifO6QfLl2RtSHp8X4eIT9 ZpYWfv2/HpvG
1nVrRPoRSotr6PE3UEsDBBQAAAAIAKVdkTK0bGw9zAIAALQIAAAkAAAAbXVs dGlwYWdlL0dy
YXBoaWNhbEVkaXRvclZpZXdlci5qYXZhrVVRb9owEH4OEv/hHulEHbq9tao0 1lYVUicqrdqe
TXwkbh07sp3Qatp/39mBBlBgrdaAUGzffd/dd3cm/fSxz3AAn+DKVC9W5oWH UXYCnyeTyTj8
foHZt+90aCtjuZdGA9cCjC/QOhYdp0pBdHRg0aFtUDB4KKSDyprc8jJ6kAPw LDNlxfWL1DmU
3KOVXDmIKNwibQkyarhUfKEQai3QRkeyLB2YZVxcmbKkMO7rhZIZ3MkMtUNo ztgkAq0KmRWv
VBIdOVEsQjpv5aIOKYxjRLTZcXEfnQvvq/M0Xa1WDDMlK4fM2DxVmHOVZpU6 bc4mrPClitZr
3XQLbKw7jzvhSfZVOwWppad8YXo/a/nLSmGJ2keD4Jkkt7XW3MIvnqN+0pgV vt2f0jbcol2Q
IKdQGiGXEgUsjYUbIYk6mH3skw4HFc+eKBLQ6JlbsrpUzwwjHStr5WVFhxfD QfuhdIz1QHK9
SpfjkoXw7rn1PyWu0F702j0ueYasiRaOzX6gwixo8j7rq4LrHMUdFRr126j2 fW8aKsdbHI9l
41aeraTI0TsWm8OofsNasllbvSBQFDJT3Dm4tbyiLuaqPW3JAJ8pL+GgXQ4H v4eDpLKyoTmC
m2vJw6i1DpDvAhB0EozbielFHx1HOIHAloRJYntHcNlH9ydkk3ydN2itFNix N0YK4EIcKtvo
YEFBrV8omIPwa8GB1F+/jtaxW/S11fuxsm3DLvA12lZ5AmK3CqDQj3gBOxC7 /b9B6XaOILEe
4w16T+rzxSPpFhhmuqr9Ju80hYf59RymdEOd5kE/ahgBJfrCCHC+Xmypo2ul jpavq04gel1s
ZxExDocZG8Dikv4rivfF+M+2sliaBv+zs5KjFG6j7lptGRYfm4Xb1nVLb7d5 G8PCGIVcU8IN
crWm773MOq+d3Uu601fQ6zEKQz7u/OJUJPutuQ876uXZTBR9/wJQSwMEFAAA AAgApV2RMlOK
hijlAgAAAAcAACMAAABtdWx0aXBhZ2UvTW9kZWxDcmVhdGlvbkZhY3Rvcnku amF2Ya1UTW/b
MAw9O0D+A4FdnGKV22uLAuuyFsjQZEObnQfFpm21suRJcrJg2H8fJTmJ+4Fs hwGBY/Pj8Yl8
VHYyHsEJhEeaT2Cq260RVe1g9nFOX6Zl3hf811JC8FkwaNGssWCwrIWF1ujK 8Aa4KsDVCDzP
ddNytRWqgoY7NIJLG6twg2QqKGjNheQridCpAk1IpMjGgi7Dx1Q3jVbwtVtJ kcOdyFFZhPU5
O4tIm1rk9b6WQEtZRKYQ1hmx6pzQ6n2gRMZDMe5Ccu1ce5Flm82GYS5Fa5Fp U2USKy6zvJWn
6/MzVrtGHvoz1SoCa2MvgiVJigK5SpKZEo6OCGs0lsr2Tl6hWaFJkrkuRCmw gFIb+CR4aFaj
Cwzo2XjU8vyJokGhY7ZkXSN/MiwEVWJNJ51oyXk5Ho1Homm1cfBI52F0Qsnm vB06hgChALsT
6unyiH/un7c8p1rbv8Z9jTyPxS3oOWREXd13GJuS3rVBdvMKaRhXYckM/ujQ OsumBrmf5YHj
eJSdREkG9eWSWwsEI7FB5WwUz/Ms6Cy1f7V95ltqLRnMHAgFrjNxbBQYEW7m t6cVKjSkX5pc
wAki05B7AAxR4dAEYB1XOdoA8YF3rqZJB3Hs1oemHImGRr6kN2D/0vVrPEpa I9a+4jQgOG4q
dOGdupF4f9yRt6DT10kwCaCJXxc2tF+9hP4d4TO6HJRWp59JdoXOJ2Tyx7SI /zy2dwS7wM2X
1SPmLo0I2YF5tMPzoMiSFE73TeW3eksMd8ph972NzRYPy+vF9MYTTh5oRenS 2WjzVEq9+XY/
o5yhdhkuHr6TOUQPHfuc3fcVpEP/ZM+CDurSQYXJAWs3tLL/v3qJ6nOHkenk Mkl8j5O+BXS1
0sZTouqk3PlEmQ5Hw6jJdKGmftdYUNVkN9Nkn99TYFGsPjSNRP1QE5R0l4oS 0jdg/ZXRw06O
gvrAIahBv0b9EXr9/D/5xAYtty0e088wKrakZ/Va2vT7A1BLAwQUAAAACAC2 XZEyo5zHkwUI
AABxHwAAKQAAAG11bHRpcGFnZS9Nb2RlbFNlbGVjdGlvblN5bmNocm9uaXpl ci5qYXZhvVhZ
c9s2EH6WZ/Qf4HYmQ8U2Jbd9imNP3NQPnkkaT5K2zxAJSYhJggNAUtQk/72L m+Ahy25aTw6T
2HsX3+5y+vz7/oyP0HP0mtU7TpcriZJsgn6azWan6t9f0O2vb+GQ14xjSVmF cJUjJleEi1Qz
XhcF0owCcSII35A8RR9XVKCasyXHpeYABoSzjJU1rna0WqISS8IpLgTSUjAn 8CoHog2mBZ4X
BK2rnHDNCJSlQGyhH16zsgQz7tbzgmboDc1IJQjanKczLWi7otnKq6JEABPY klMhOZ2vlQun
2iJ4GXRhqZlXUtYvptPtdpuSrKC1ICnjy2lBlriYZnVxtjmfpStZFpraxq0y ghkXL/Qb9dMO
2hmiFZXgLrq+uzXqy7ogJamkJlCM3/dnOj6qcXaPlwRVRKZika7L4nNKcgqW puW6kLSGw4vx
0fgIbGFcok8QjxQiVKTXnOPdGwjZRc/hLaQDg5C+syGet7huampadFMu/gAS 0TyHoPsELMki
vQGr7zBviB6i+JOSLeHDdGua1kAm0g+kIJkK/Yddla04q+jfQ3yfFjgj6UZL Fumt53wc9R1n
G5ofqkPydSbXnOSP0uaJX69wtST5zQYK7CDGQ/VB/IJLKtukGnJJkf7F+P2c QIBt9sZHU4s3
10gVBpU7tGAcCZ8EhQ3qmgunRN17U65wT+M0ixQZpMkKLIQWWxMO8gAtAn+Q be7ifIckvu/q
WXBWIlYBlmjhBiVKXNdAqmVTiSRrMVEFiBoOLZs2iTg+hTLWJJIrzQB72crp LllOCmO3BTcj
GEido6JtljMhEGypXBlmXDqZYJeBVWNbqm3KMDgP/62FZCWUuzaIbQjnNHcm fXlV0Ooe/Zix
Cg5kEgf8VAt17ybfUEnkiuWmEbzCa3jgaLXOBat4gEidIvjzuLuIlqq0cEEF GApOs1rBDkEG
LFH3YiEMsSDQjeD/2GxtHwCiLhP0VkWoXyX5DPWcC9R7Oj76Mj4a1ZxulBmq 9l92jbhSXU//
JtAl4NwWeSzto04mF8My3fW6QoX9TctcF0WTiVYSgvsbFbUrrUs0axNA+1N9 Lm+f9USxhgiA
lO5BV3UfTEF5cQ6oE0e5wQx/NAaMFAjkEGzs3QvXS6oLgXPIIjBD1/QBMHyv oG5gsAh8wOQe
NMVUWWkmhA2juRLlopl0A+x5J0ilePRhB49lytYyBVcrWVTJD8NVkzaEox/Q SZCm3B3RBUoa
+TOBmKiTUZTWgVLxRWBKJfAotUmk6pvC105wY9iwoQ2YCDVhm0AUWse1crgz FFZzw1o4YXls
OANV0q23iaO1HvTVh7tS+5zw187gNuAeXewUZBtkNfJsbQb8TiOngx5Q4h4e cLzvBnnXnlhN
NoiqlrwsCM90Ohq5Z0XW7va+wtXEa6rFR0VXS1MYFGYTNE5O9DuIrFHuZXum 0/6b3SPr7Kwv
lzACCh3YJYWpJO7vgq15RhAxE7FQecatCUAp9QSnRiQnON8p4rlCOQRAVOnG axpGS4LEfAl1
40TYHcU0MNsajVTbEXMwEqRY923XdH09rhtrvi5N82vUzqlqWU1yb1aDw9ll KTnR3kQzQRyD
UJecSUPQi8fgtKvMkNSeqjV2nPYL8Sbbmm5dd8NrHy6RG+lTKm4rIXGVkXeL xClo9WbdlANU
xqKaaGlD4k3RLBot380/wasrtX/CoNgBU3tsAdStL4AN2tiABdSeWELYJGHi TNTbdIXF7zAc
JBPrvw8AIu6XS+RBcKJlp5Xm0LJGxgaTwhuTQeBwzDAOmWvlyFUkItrjZiRG xlF9p5tUhlld
PBcsFYiefCZGQC/mvicl3ID/py1zreu/68yx/J7mHLqpId3bUF1kQlM0w/m/ 6qsquEb3nggd
0GQjwsf22aZnvgnu9c03lsi73gb6GA+/ezdtSu801EY7NXSP6qi2YlpNFS7u 8AR9GdTri3zA
rN1NVUaoypWecGhmdtqh3bW5B6uWCNuRWVZLUs7NJ7xG+oj6XNBacPW73sSJ VrCSdvT01wcj
wCZvsO0oLFR0Cgg7NA64e9pRL5+l79jnGlBoZn0BBq01Xqr1JmhJdHwN/8QF 0lcCrI0ZqaU9
7xsN4ldO7GFR3duqBxu0qsN4K7xCs2YfvXjCZWrbpi+UTeAJPOjHKLjaDr98 ehP21L0Rp3lJ
IYhtt/1DiSYNz4ODh6PoH26aE0hjBGnItb3X2jJ6aMONY2z6ce+0PSipd2bz 5RubZw1XX9H2
wSd6EQrWe6LRyhEcu+DbIePJy4DzOFp8j1tBjD8NotqMUPsnx5gnylvb/84A Af57Y7wRvv93
SjtRBu330rrZk16zAOmTNrrcVOoqqG9h4ZtM5wMlkVsC24edHxygCArRQD+n 5+NooMDFmqCX
GVh4BbVNXk71r4guOnLFiq2LHLEMvBr3Y4809uXJnLGCwFKkxTcw5di80D47 B2w16+uqaM7O
wuemSzRDz54Nf1RqlUU3DQOMp4MiW63AJuuATtubr31ba7yPHbByGpHdvfMJ K2c0aVk9j1g6
H1wlXT20AWAPwjxtddzsXxqD8P1rY+LkuHr6+hUF4PevbftxpSKapRIMbXcf KAJE84/MmaCe
L933foi8e/+eLAFP+M5tcXr7dIeD66kncGwHb6j7V9SBnbOzmoZd1tRRIG0u tLH7yuue1dPk
IhYTb67N1TWii1qHDW2UngdW2Ub/tioEzCzJJAwdTiqHiREXjko5EjOcofNJ 2KTh77d/AFBL
AwQUAAAACAC2XZEydQdm3/0HAACMGgAAIwAAAG11bHRpcGFnZS9NeUNvbnRl bnRPdXRsaW5l
UGFnZS5qYXZhvVjfc+O2EX62Z/w/INOHUhkJcjJ9it2b87l3rTJW4zk76fSp A5GQhDNFsAAp
RW3vf++3AEiCEuWzk0z0YJPA7mJ/frvg9Ovf9ndxzr5mt7rcG7VaVyxJR+zb y8vLMf39E5u9
m2PTlNqISumCiSJjulpLY7ljvMlz5hgtM9JKs5UZZ49rZVlp9MqIjeMAAxNp qjelKPaqWLGN
qKRRIrfMSRFGYikD0VaoXCxyyeoik8YxgnJjmV66l1u92UCN+3qRq5TdqVQW VrLtN/zSCdqt
Vbpuj1LSggm6ZMpWRi1qMmHsNMJid5aoHPO6qsrvptPdbsdlmqvSSq7NaprL lcinaZlPtt9c
8nW1yR118FvhBWtjv3Mr9Dt02oSpQlUwl93cz/zxmzKXG1lUjoAYf9vf9OK8 FOmTWElWyIrb
Ja83+c9cZgqa8k2dV6rE5tXF+cU5dNGmYp/gDw4P5fzGGLG/g8vi7VjM+83y RxDaeB+ear0m
N0ueukDxQldquec3mSgRxw8ixfn7q5NcMtVGcmSSrk0q+cfw8GqGB1k9wwMv 8FpxZOhWIcsO
tKOYIjL3YfcXy7kTC5k/L+XTUkBpkCMJ+Gwui3ouCsTlReQPSJ7a3qlCvoLp Uev8nTAv4Ngq
uaMynz3IXDru11HfrkWxkhnlkSxedtRDZeq0qo3MXnXmo5HyJ/c8TG13FX/4 x+PpzZ3KVrKy
HOBSaquqE/nWJ0Xh63yYEDkxu3Hqw9X2JE0pTMVn9wjEw8kzG7J7X63DFOQI i4pzeavrKkdO
8FnI4x/8+31T7tMA+TcA8wVgEZnBFgIgmubCWrbUhgVJLIhiBBUB76/LNx74 cgUKC8DVDr0z
uQTGAdlFwTzKAND3zIWRVZqFGmECwg3KtdRFBnIna+i40ESGtthOoeks8EId B/sZHYDm4ITV
aEJsq4TrFrYC2AqTseALFpzBKF1YQiSOPpMplCNrJPU24lXGNxRtnhayQFPZ qSLTO6eRUEVo
LOT5EbEVcuv4RNWYTx0GObCV3nHeHOdiu9Z1npEFtl64JTRN791pcG/j5hnU NoXI8/2YSQEt
Bh2CRYsyc01SdEZXqAvmi+TKtyvblJX17VYVvsN2hC6YRlKWwa/CdiwsdQXN YCgF3slb7B2/
UyLxvZfMjpgabBxRQPsngRLdgaVGCjrLR69AX2HXqc7kG79BeXs9dQvEkcIX MrtyJst/11CF
XNP6EXbVFiH4GU7KvCcjWaFoG3HIGohZqhUQ58gPO1VhkCD9S9lVhBPZ2DRm OUF89O5ae1HW
FSU+tfcTYf27rqRPlmqtUXo7AbtRPNAI+eiKxGnqRy2iLCC3SYXGZZF9HQQ2 xrkiKaQvjnbc
YBHPAEA0zJkyiB9OwgDTKtA42SnaZnNnoZONwcMn+Xx/LD7ExTL30ipl2YAq 7L8X52fwbAVF
YMRNgKr3vrh8jV31SDofuEC2HQFEDvPOmip0KfqU10ByzrnfuP5qMkFFrlQx IUSYZDplk8mb
aBOKD2y9XVFz89E4c+ZHGh23aCrOo6YNv+HncZl+QFcXYGhZyN0wPDak7kA/ DA95PBn028g5
94yCGEZC9ufIpZ+dz4LUrVbAgSw71deTkx2f5eEBx30espIAwafi6UzsD8r+ FqAc+ngZX0zl
DRBdZ6FkKPBRkXP20AJHKzECEH9WI+H1UOEFvhIuPNNbdH1cnvAXy1Gw6X8c mR6wJe0AExhd
oFn4dUWBaFNidQWTePIxw5jE5z/ePc7Y/9zz3/71cPvxh7u78PpTeKWIUqac 9Sde5EnvtUkq
jpGpT5mMHPt06v8yzOusLg89yzuaTnluZXUwoidkzbNDfNLXbOSP7wvtzesD Ivv7gwKj6wcz
0XPsCKpEQOhf9AZjRDKipYgtGdJsRjmSRAI90RwJnrfV97DHlGJ0of5DMDO4 GqsxyBdOH+Tm
AIGQLZ12R9o+hxSDYg8SYS6eaCxClcFWVuqyLq0bwqJcCEZ0qY9qpbvTB32s mlqy5KvIc7G7
Lbyv7PtNWSEfAyaGIxxUUVr6+RVpaTRmFb34RO9hbKIk5R1189Ren6+bg95E A5EvvQGa4HuS
0FKTO5Pmtt1XPc4G2kkuQw4e5E4bDZfRAzesLiyjMYqvll7MZ98Izo4hJ1OY 3q1Mgsd+5yw0
cqO3DWxBQgRix1XtiV+fkA1k2hqIzluDw07UzFhS6GLyvdgKTAWjFr3nvmXg WpEDWDOGuLt7
HksI8ulpxIdBPSA5W3mQI1DvgTjlcwzkSKc6z0cdAf2MRIgLtxMZE1Yj98SH /CrbWg838HjC
uo6QxcH/5SYO5DN/P79//OeX7I7Oji0/axU9mtyI6XCRFG/kH092bHDq+ejI w/2RZrk/2oOe
5wm7UaAxYJhhzDC++TGI/NQOTstuAmHP3YLWwt/DFlIW4XrF9vJo5hgasw/K Lw7ikdOP86tT
bzjR3lrYePKTyTutn0gyPf+BPq8mz35dGR3aEwGa424pnYsdS2yPRwJH2e5H Odas9RC3nRUo
coNp5o7foOXdNt+R6W6exF8CMX62z2N28P0Od7v4dfyiG0fAbW/R8eG98w7l HwvzkEs3iaM9
IP3QdWfgfvEFnH75FaMnFbHovsIl0Rc5JtrHnjP6DBHRVTR2rCKi1nOYPEbc rgGIf831QuSe
wrrIj9mBpEFYQB+nj29pbenCLmiAbweNwxvfYQJD7w/E2S/BE0DPO+qTKdmb GyLQ7kYF5+/P
/wdQSwECFAsUAAAACAClXZEy3q7FlSgcAAA+fQAAHQAAAAAAAAABAAAAAAAA AAAAbXVsdGlw
YWdlL0Fic3RyYWN0RWRpdG9yLmphdmFQSwECFAsUAAAACAClXZEyINMIqoUC AABtBQAAKQAA
AAAAAAABAAAAAABjHAAAbXVsdGlwYWdlL0NoZWNrYm94UHJvcGVydHlEZXNj cmlwdG9yLmph
dmFQSwECFAsUAAAACAC2XZEy5/D04r4OAABcSQAAHAAAAAAAAAABAAAAAAAv HwAAbXVsdGlw
YWdlL0RpYWdyYW1FZGl0b3IuamF2YVBLAQIUCxQAAAAIAPqhkjIsJGsrOg0A ABAuAAAdAAAA
AAAAAAEAAAAAACcuAABtdWx0aXBhZ2UvRURpYWdyYW1FZGl0b3IuamF2YVBL AQIUCxQAAAAI
AKVdkTIgIh90JgUAAM8QAAAkAAAAAAAAAAEAAAAAAJw7AABtdWx0aXBhZ2Uv RU9iamVjdFBy
b3BlcnR5U291cmNlLmphdmFQSwECFAsUAAAACAClXZEytGxsPcwCAAC0CAAA JAAAAAAAAAAB
AAAAAAAEQQAAbXVsdGlwYWdlL0dyYXBoaWNhbEVkaXRvclZpZXdlci5qYXZh UEsBAhQLFAAA
AAgApV2RMlOKhijlAgAAAAcAACMAAAAAAAAAAQAAAAAAEkQAAG11bHRpcGFn ZS9Nb2RlbENy
ZWF0aW9uRmFjdG9yeS5qYXZhUEsBAhQLFAAAAAgAtl2RMqOcx5MFCAAAcR8A ACkAAAAAAAAA
AQAAAAAAOEcAAG11bHRpcGFnZS9Nb2RlbFNlbGVjdGlvblN5bmNocm9uaXpl ci5qYXZhUEsB
AhQLFAAAAAgAtl2RMnUHZt/9BwAAjBoAACMAAAAAAAAAAQAAAAAAhE8AAG11 bHRpcGFnZS9N
eUNvbnRlbnRPdXRsaW5lUGFnZS5qYXZhUEsFBgAAAAAJAAkA1AIAAMJXAAAA AA==
--------------080405040202040401030007--
Re: How to create a MultipageEditor with a GEF page? [message #182836 is a reply to message #182814] Sun, 29 May 2005 09:57 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: christian.sell.netcologne.de

Hi,

I have implemented my graphical editor inside a MultiPageEditorPart, and
did not find any particular problems. However, my starting point was
that I read the comments in GraphicalEditor (and subclasses) that said

"This class should only be used as a reference for creating your own
EditorPart implementation. This class will not suit everyone's needs,
and may change in the future. Clients may copy the implementation"

I decided to implement my own EditorPart and fold all the
GraphicalEditor(WithFlyoutPalette) stuff in there - helped me with
understanding, too.

I am not sure that the above is even needed, though. What exact problems
are you facing?

christian

Tim Williams wrote:
> I've been writing a MultiPageEditor for an XML configuration file. I'd like
> to add a page to it with a graphical editor built with GEF.
>
> The type hierarchy for GraphicalEditor doesn't make this a natural fit,
> unless I'm missing something obvious.
>
> Can anybody offer some pointers on how to do this?
>
> Thanks,
>
> Tim.
>
>
Re: How to create a MultipageEditor with a GEF page? [message #182860 is a reply to message #182836] Sun, 29 May 2005 23:21 Go to previous messageGo to next message
Tim Williams is currently offline Tim WilliamsFriend
Messages: 21
Registered: July 2009
Junior Member
Ed, Christian,

Thankyou both for replying.

I had overlooked the comments in the GraphicalEditor class, I will see if I
can simply make my own with a bit of copying and changing the hierarchy. I
do agree with Christian that GEF should provide this out of the box as it is
a common paradigm for Eclipse plugin authors.

I also found source code for an IBM redbook that implments a multipage GEF
editor, I am part way through hacking that around so I'll see where it takes
me first..
http://www.redbooks.ibm.com/abstracts/sg246302.html
Source code is downloadable from the URL, follow the link to 'Additional
Material'.

When I have made some progrss I'll drop back and post some findings.
Regards,

Tim.

"Christian Sell" <christian.sell@netcologne.de> wrote in message
news:d7c3u7$let$1@news.eclipse.org...
> Hi,
>
> I have implemented my graphical editor inside a MultiPageEditorPart, and
> did not find any particular problems. However, my starting point was
> that I read the comments in GraphicalEditor (and subclasses) that said
>
> "This class should only be used as a reference for creating your own
> EditorPart implementation. This class will not suit everyone's needs,
> and may change in the future. Clients may copy the implementation"
>
> I decided to implement my own EditorPart and fold all the
> GraphicalEditor(WithFlyoutPalette) stuff in there - helped me with
> understanding, too.
>
> I am not sure that the above is even needed, though. What exact problems
> are you facing?
>
> christian
>
> Tim Williams wrote:
> > I've been writing a MultiPageEditor for an XML configuration file. I'd
like
> > to add a page to it with a graphical editor built with GEF.
> >
> > The type hierarchy for GraphicalEditor doesn't make this a natural fit,
> > unless I'm missing something obvious.
> >
> > Can anybody offer some pointers on how to do this?
> >
> > Thanks,
> >
> > Tim.
> >
> >
Re: How to create a MultipageEditor with a GEF page? [message #182879 is a reply to message #182860] Mon, 30 May 2005 07:25 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 7680
Registered: July 2009
Senior Member
Hi Tim

Tim Williams wrote:

> I also found source code for an IBM redbook that implments a multipage GEF
> editor, I am part way through hacking that around so I'll see where it takes
> me first..
> http://www.redbooks.ibm.com/abstracts/sg246302.html
> Source code is downloadable from the URL, follow the link to 'Additional
> Material'.

I started from this code, which has unfortunately suffered from bit rot.
You may notice some similarities with respect to my discarded code. You might
get clues as to what needs fixing.

On p170, the red book comments that you may want to EMF.Edit plus GEF and
suggests it needs another book and that Jeez provides an example. I cannot
recommend following the reference; it gives preliminary code, that presumably
came to the authors attention informally.

I found the EDiagramEditor (in GEF's CVS) much more satisfactory, because
it was so close to what I wanted and via properties and outline pages did
most of what I had expected to do with multi-page. I am currently working
to make EDiagramEditor extensible. Establishing an API that makes EDiagramEditor
multi-page might be useful to many people; certainly would be help to me.

Regards

Ed Willink
Re: How to create a MultipageEditor with a GEF page? [message #183009 is a reply to message #182814] Tue, 31 May 2005 02:49 Go to previous message
Pratik Shah is currently offline Pratik ShahFriend
Messages: 1077
Registered: July 2009
Senior Member
https://bugs.eclipse.org/bugs/show_bug.cgi?id=46207

Adding a GEF editor to a MPEP, aside from some minor quirks (if any), is no
different than making any other editor MPEP. At least, ideally it shouldn't
be. To put in Ed's words, there should be no difference between AN editor
and THE editor. Platform is working on this problem. It's not GEF, but
platform that needs to support this out of the box.

"Tim Williams" <harlene_quinn@hotmail.com> wrote in message
news:d7b70c$vr$1@news.eclipse.org...
> I've been writing a MultiPageEditor for an XML configuration file. I'd
like
> to add a page to it with a graphical editor built with GEF.
>
> The type hierarchy for GraphicalEditor doesn't make this a natural fit,
> unless I'm missing something obvious.
>
> Can anybody offer some pointers on how to do this?
>
> Thanks,
>
> Tim.
>
>
Previous Topic:problem about save the canvas
Next Topic:changing Flyout Palette background color ?
Goto Forum:
  


Current Time: Thu Dec 12 21:23:23 GMT 2024

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

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

Back to the top