Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » no table scrolling on celleditor activation
no table scrolling on celleditor activation [message #329235] Tue, 17 June 2008 08:09 Go to next message
Eclipse UserFriend
Originally posted by: niels.lippke.airpas.com

Hi all,

The table editing facility as proposed in
Snippet036FocusBorderCellHighlighter is quite fancy, but useless if the
neither the cursor nor the editor scroll into view on focussing a cell.
I tried to adapt scrolling behaviour to the cursor by adding

viewer.setSelection(new StructuredSelection(cell.getElement()), true);

to FocusBorderCellHighlighter.markFocusedCell()

but that doesn't work well in combination with the celleditor.

Can anyone help?

Thanks,

Niels

BTW: There's also an interesting effect, if you activate a
ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is not
currently not visible...
Re: no table scrolling on celleditor activation [message #329238 is a reply to message #329235] Tue, 17 June 2008 09:10 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi Niels,

The things you describe are known issues. The bugs in with information
this are:
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955

Do you by the way talk about vertical or horizontal scrolling
(Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
IIRC). The above patch 1 holds the code to scroll horizontally by tabing
and maybe could be used to get the horizontal scrolling feature.

Can you give me an example for the ComboBoxCellEditor problem? How do
you create the CellEditor? Is it possible that you are passing it to the
constructor instead of to ComboBoxCellEditor#setActivationStyle(int)?

Tom

Niels Lippke schrieb:
> Hi all,
>
> The table editing facility as proposed in
> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if the
> neither the cursor nor the editor scroll into view on focussing a cell.
> I tried to adapt scrolling behaviour to the cursor by adding
>
> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>
> to FocusBorderCellHighlighter.markFocusedCell()
>
> but that doesn't work well in combination with the celleditor.
>
> Can anyone help?
>
> Thanks,
>
> Niels
>
> BTW: There's also an interesting effect, if you activate a
> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is not
> currently not visible...
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: no table scrolling on celleditor activation [message #329253 is a reply to message #329238] Tue, 17 June 2008 16:04 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: niels.lippke.airpas.com

This is a multi-part message in MIME format.

------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=response
Content-Transfer-Encoding: 7bit

Hi Tom,

I am running the jface-snippets from cvs-head against jface-pluging (also
from cvs-head) and the latest swt-3.4RC3
still having the same problem: I can "walk" horizontally around with my
cursor and out of visible area. Same with tabbing and celleditor.

The ComboBoxCellEditor-part is a direct consequence of failed scrolling, as
the popup comes up next to my shell (see screenshot) ;)
I use the setActivationStyle-Method. The other way does not work.
I have attached a modification of Snippet024.

Thanks, Niels

"Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
news:g37v21$cjn$1@build.eclipse.org...
> Hi Niels,
>
> The things you describe are known issues. The bugs in with information
> this are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>
> Do you by the way talk about vertical or horizontal scrolling (Snippet026
> scrolls vertically which was a bug in 3.3 we fixed in 3.4 IIRC). The above
> patch 1 holds the code to scroll horizontally by tabing and maybe could be
> used to get the horizontal scrolling feature.
>
> Can you give me an example for the ComboBoxCellEditor problem? How do you
> create the CellEditor? Is it possible that you are passing it to the
> constructor instead of to ComboBoxCellEditor#setActivationStyle(int)?
>
> Tom
>
> Niels Lippke schrieb:
>> Hi all,
>>
>> The table editing facility as proposed in
>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if the
>> neither the cursor nor the editor scroll into view on focussing a cell.
>> I tried to adapt scrolling behaviour to the cursor by adding
>>
>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>
>> to FocusBorderCellHighlighter.markFocusedCell()
>>
>> but that doesn't work well in combination with the celleditor.
>>
>> Can anyone help?
>>
>> Thanks,
>>
>> Niels
>>
>> BTW: There's also an interesting effect, if you activate a
>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is not
>> currently not visible...
>>
>
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------

------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: application/octet-stream;
name="Snippet024TableViewerExploreNewAPI.java"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="Snippet024TableViewerExploreNewAPI.java"

/*********************************************************** *************=
*******
* Copyright (c) 2006 Tom Schindl and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tom Schindl - initial API and implementation
=
************************************************************ *************=
******/

package org.eclipse.jface.snippets.viewers;

import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerEditor;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrate gy;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.TableViewerEditor;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;

/**
* Example usage of ITableLabelProvider using images and labels
*=20
* @author Tom Schindl <tom.schindl@bestsolution.at>
*=20
*/
public class Snippet024TableViewerExploreNewAPI {

private class MyContentProvider implements IStructuredContentProvider {

public Object[] getElements(Object inputElement) {
return (Person[]) inputElement;
}

public void dispose() {
}

public void inputChanged(Viewer viewer, Object oldInput, Object =
newInput) {
}

}

public class Person {
public String givenname;
public String surname;
public String email;
public String gender;

public Person(String givenname, String surname, String email, String =
gender) {
this.givenname =3D givenname;
this.surname =3D surname;
this.email =3D email;
this.gender =3D gender;
}

}

protected abstract class AbstractEditingSupport extends EditingSupport =
{
private CellEditor editor;

public AbstractEditingSupport(TableViewer viewer) {
super(viewer);
this.editor =3D new TextCellEditor(viewer.getTable());
}
=09
public AbstractEditingSupport(TableViewer viewer, CellEditor editor) {
super(viewer);
this.editor =3D editor;
}

protected boolean canEdit(Object element) {
return true;
}

protected CellEditor getCellEditor(Object element) {
return editor;
}

protected void setValue(Object element, Object value) {
doSetValue(element, value);
getViewer().update(element, null);
}

protected abstract void doSetValue(Object element, Object value);
}

public Snippet024TableViewerExploreNewAPI(Shell shell) {
TableViewer v =3D new TableViewer(shell, SWT.BORDER | =
SWT.FULL_SELECTION);
v.setContentProvider(new MyContentProvider());

TableViewerColumn column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Givenname");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {

public String getText(Object element) {
return ((Person) element).givenname;
}
});

column.setEditingSupport(new AbstractEditingSupport(v) {

protected Object getValue(Object element) {
return ((Person) element).givenname;
}

protected void doSetValue(Object element, Object value) {
((Person) element).givenname =3D value.toString();
}

});

column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Surname");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {

public String getText(Object element) {
return ((Person) element).surname;
}

});

column.setEditingSupport(new AbstractEditingSupport(v) {

protected Object getValue(Object element) {
return ((Person) element).surname;
}

protected void doSetValue(Object element, Object value) {
((Person) element).surname =3D value.toString();
}

});

column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("E-Mail");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {

public String getText(Object element) {
return ((Person) element).email;
}

});

=09
column.setEditingSupport(new AbstractEditingSupport(v) {

protected Object getValue(Object element) { =09
return ((Person) element).email;=09
}

protected void doSetValue(Object element, Object value) {
((Person) element).email =3D value.toString();
}

});


column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Gender");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {

public String getText(Object element) {
return ((Person) element).gender;
}

});
=09
ComboBoxCellEditor editor =3D new ComboBoxCellEditor(((TableViewer) =
v).getTable(), new String[] {"M","F"});
=
editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TR AVERSE_ACTIVA=
TION |=20
ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION |
ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION |
ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION);
=09
column.setEditingSupport(new AbstractEditingSupport(v, editor) {

protected Object getValue(Object element) {
if (((Person) element).gender.equals("M"))
return new Integer(0);
return new Integer(1);
}

protected void doSetValue(Object element, Object value) {
if (((Integer) value).intValue() =3D=3D 0) {
((Person) element).gender =3D "M";
} else {
((Person) element).gender =3D "F";
}
}

});
=09
=09
ColumnViewerEditorActivationStrategy actSupport =3D new =
ColumnViewerEditorActivationStrategy(v) {
protected boolean isEditorActivationEvent(
ColumnViewerEditorActivationEvent event) {
return event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.TRAVERSAL
|| event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTI ON
|| (event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode =3D=3D =
SWT.CR)
|| event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.PROGRAMMATIC;
}
};
TableViewerEditor.create(v, null, actSupport, =
ColumnViewerEditor.TABBING_HORIZONTAL
| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
| ColumnViewerEditor.TABBING_VERTICAL | =
ColumnViewerEditor.KEYBOARD_ACTIVATION);
=09
Person[] model =3D createModel();
v.setInput(model);
v.getTable().setLinesVisible(true);
v.getTable().setHeaderVisible(true);
}

private Person[] createModel() {
Person[] elements =3D new Person[4];
elements[0] =3D new Person("Tom", "Schindl",
"tom.schindl@bestsolution.at", "M");
elements[1] =3D new Person("Boris", "Bokowski",
"Boris_Bokowski@ca.ibm.com","M");
elements[2] =3D new Person("Tod", "Creasey", =
"Tod_Creasey@ca.ibm.com","M");
elements[3] =3D new Person("Wayne", "Beaton", =
"wayne@eclipse.org","M");

return elements;
}

/**
* @param args
*/
public static void main(String[] args) {
Display display =3D new Display();

Shell shell =3D new Shell(display);
shell.setLayout(new FillLayout());
new Snippet024TableViewerExploreNewAPI(shell);
shell.open();

while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}

display.dispose();

}

}

------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: image/png;
name="screen.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="screen.png"

iVBORw0KGgoAAAANSUhEUgAAA9IAAAIxCAIAAAAuVhcRAAAACXBIWXMAAA7E AAAOxAGVKw4bAAAg
AElEQVR4nOy9f3xdVZnv/3nWPglto1b80l5+aGshqZpGZfhOHWi+VwJqNS3j 9Dqd8mIuQ3GEZhQk
1StqsSDUljLUGRNhLjdl1NbhytAv936rQiOoNM7LBKUveDmaZrAJA60D5SaC Lf2ZZK/n+f6x9t5n
n3P2+ZWcNGn6vF+Q7rP22mutvfbae3/Ws5+1FokIJpvOFlqGXdLRPNkFqTDD w8NDQ0OpVKq6utoY
E4UTkYgQUTyEiE6ePFldXQ1g9uzZhw8fdrtmz57tNqKQAkSRx8LQ7van5rZe vahwrMOHD5eSy4HH
9lz3zNwWDOLTi685DwDuuuuur371q7kx84UriqIoiqIUYHh4+Dvf+c51110n ItaytZaZreVDhw/7
o77v+75vR0ZGhoeHZ89+c8/TP/+LlX/hhFZRctXX7Nmzu54bANB0Se2YC2yK R5l4mjtk+mnu046h
3l+f21BEc5dO9zM1mzbMv+bTc596YH+l0lQURVEURTl9SU12AZSpQu+vz21o rVhq12yoB4Dz5j+4
oWJpKoqiKIqinL5MCWu3MvkM7a6krVtRFEVRFEXJRGW3AlTaw6QAd911V+K2 oiiKoijK9EadTBQA
mHNF69WnJKP46EkdSakoiqIoypmDWrsVRVEURVEUZcJRa7dy6lCvEkVRFEVR zlhSSJw2u7OFlm0F
AKyJ7Rhob6xb2wMAWNLW3738cfdzyZo12Lq1xwW25pnMsLOFNtZn7M4NKX6M cvqiLiWKoiiKopzJ
GAy0b+xds6Z3Y/tAGDbQ3rgMu0RERPrr93WGgVTXt14CtuPxztrW7l1rsKRt e0dHsFFhgdzc0b9q
x+p0wRRFURRFURTl9MQMPL4Dq269dRV2PB7K2/6+niX1dW67trW1GcBA++q1 DXGDeBA+0dS2rm9Y
u6XzFOSkKIqiKIqiKBOHeXwHVi2vrV0e093NK9b0rM0wMg88vqNnzYrK6OzO FiJq6cwJaW9vjAV3
tlBj+wCAuvolvfvU3q0oiqIoiqKc1pgdWLW8FsjU3R3Sv2pHXYY8juzf4yL0 X0mbzaOQ1tb1a7bu
DPLr3Ll1zfrWWgC1Cxt6+vorkLWiKIqiKIqiTBopp7qd7q7b0tkaCOLa1m5p HWhvrKOWXdJRB/T0
9QNluG6nh1+mB2XuWF2HVf3dMat5RkjzijXLdnZ2NDejc2dv260dLkpg7m7W cZWKEqPAtDA6elVR
FEVRpiCpnrV1tDb66VRvSG3r9rYddTs7OzqWr1qyNnNfMWpbu6U1M6gHWJKp 3rNCmm9t27i6faAO
G3tXbQ8j9ff1NKxQzT2R7H1k3UO/AgBcfO3mqyu2VuWBx/Y8dP7i2y4pKXJ3 R9dXngYAzFvw3Q8M
ln7g+Onu6Np2weIHr6qJlaSmZfPia847RQUYM4nyWmdpVBRFUZSpiemXiP62 JVt3dgKd7aFf98Dj
O9zoytrW9Wu2Lov5nAy0t5c90HHJqu3du7CsMe01nh1Su3wVdmzZsqNhfTQn ysC+3sr4tyjJDO1u
fwjXbt68efPmzdfioUf2ViLR54a6o+2D++9+7Fjh6N0dXV/Boq5tTV3bmr77 gcHrHi0SvwAP39HX
XTxWBo0tTZHmdj9b5p2KfBVFURRFOaNIxezItYFNu2NhHxG5sDW7xCng5g7p r2+sC8OXtPV3D7Q3
LtsKYHVLH7ZuBbC6fXmxSbabO/r3NdbRjrb+7oU5Ia21tctXYe3ahl0d0QFq 7J54Lm4ILNxz5577
6uAQFs0Zd5JDX7ne6feuJ1HTsnl+obgH92/Doq6WINN5Vy3uuiq98+E7ujoO BKXbtK2+ETjw2J7r
Hj229LK5Tz49GA/Hwf03rnuxH8D1LhxLb2lyJnOXSN3Kxbej77pHj2UlBaBu 5eK48kY8NQSW7yDf
W5puuySwzQdH5c83sfwFypMRf15NHeY+uCGquqG7r9/7ZCymoiiKoiinFxmr VNa2dgsAoEOkIzdu
jt9I7HdHQvwMmjsk5jUe5JIdkpPHQPvG3rbtxdJWxsGcKz6MdevWuR/nLt3c On7NDVxS/92Vx657
Zm4LBvHpYt4aB4/hgnMS9zx8R9dTH1jctaEGAJ7ra7pjf9eG+fOuWvxd7Lnu UWza1uSk89ceO9Z4
VQ3Om//gtvkP39E3b0O2ML1mQ9M1z/U1fXPPdfMWdG2bj+f67n4OjZcEEv/A Y3u+lp3zsY5vDrZs
bnrwPKe/++Ztq2+8avF3sechAEBjS1PX4r4bXwGAAvkmlr9AeQ48tieK393R 9ZWXi9e0oiiKoiin
C1N6cfjOlrq1DbtEbd0Tyt5eXLt58yIAGNr9yO4hXFEJ4d39TM2mDfMbD+LG B/Zfs6GgtTsfB/c/
dcGitBH6kvpNe/Y8fHC+E/FLbwk07rzza/BKSemlTdqX1N9WLPLSW8Lewnnz b1+556Hn0Fiur3nB
8ieWZ95V71xw/Z6mR93+uZu2xettzm3bmooWW1EURVGUKcuUlt3NHSKTXYZp z97eV+deGWzPmYtf
9w5dUQndfc2GegA4b/6DG4pFPa8GO3+PLB+PSaZmweSMp4xp65h1XFEURVGU aYCZ7AIok8zcuRgc
nNQSnDf/+gtevDE97HLo7uu77n4OOG/+lS+/9PDBKN7Qz16eW8LsIscOuEOe 62u6fszDHI91PLA/
2Dy4/2uP1lwemrpffOWYC7zxm1m1lpNv+eV/+I49sfjABbNiP4buvr5rHGek KIqiKMokM6Wt3cop
IMO3Gxdfu7kSLiZl0tjSdOCOrtC5Ij0k8ZpPz71xXVfk2r/0liakx0F24Zam 29DX9M1BYPBGBA4b
16yoaQoOiUYfusGIAAZdFmH6UTgA59oxd9O2enR0dRyoWXrZYNP1LwJwQyoD h5b/ey7WuZg1LSvn
djy6p2C+yeXPXx4AxzrS8edu2lb8Wtx1113RNILxbUVRFEVRphok6scxYQwP Dw8NDaVSqerqamPS
HxaISESi2WJcCBGdPHmyuroawOzZsw8fPux2zZ49221EIQWIIk8chw8fPgW5 KEXJJ7JVfCuKoihn
CMPDw9/5zneuu+46EbGWrbXMbC0fOnzYH/V93/d9OzIyMjw8PHv2m3ue/vlf rPwLJ7SKkqu+Zs+e
3fXcAICmS8Y+6FCdTBRFURRFURRlwlEnE0U5XdEFKRVFURTlNEJlt6Kclqgn iaIoiqI43HLrzMzM
IsyWQywLs/BkFzAg7mTS2UKxhduTKB5DURRFURRFUU4VzrHb931rrbVsLfv+ qO+P+tZ3gVNnHGN5
1u7mjv59jSUsAa8oiqIoiqIoE8zZZ5996NChN7/5zcYYQIyBiJk1a6a1LHAG cGHmY8eOvXX2Wye7
sGU7mdS2rm+gLZ2tHc0TUhxFURRFURRFKY358+f//Oc/f+311wpHe+vst86d O/fUFKkAKaCzhZZt
XbNLoumFg5C2tt61feslENidLbSxvr+7tbaufknvvgE0q71bURRFURRFmUTe /va3v/Od7yx9pubJ
KGOaVHvjMuwSaQbQCQAYSId09tHOzo7mZgCdO7euWS+1AGoXNvTs7AdUdiuK oiinNQWmA9JRy4qi
VJzUjlX93TGHkR2r6xCFNK9Ys8zp7s6dvW23BuZwNXdPN/Y+su6hXwEALr52 89WLKpXsgcf2PHT+
4nD9xUkjXNUyTk3L5sUlrDNfBg/f0dVxAABw2dylL9fctmF+4fLEVqbMpruj a9sFweKXJTN09/V7
n5y3oGvDfMROuW5luemUQbnlnLj4ZZ5vbHXSsMYc6YsIxFPr7uj6ytOxBC5b 1NUyQYu5ZlzHwoyp
nWRwatrJRDP+esi37NQ4CqUoipKM6enrj/3sAZbEQppvbevd2D4w0L6xd9Xy UGb39/U0LFTNPW3Y
+8hDry7dvHnz5s2br8VD7buHKpDmc0Pd0fbB/Xc/dqxA3FNA3crFXduaNl2G pbc0dW1raplX4fQP
PLbnqQ8s7trW1LWtaRMGnywYed5Vi7+7spBEaGxpKl9DzLlt26KlsSy6tjUV zmX8lFvOxPgP39HX
nRi7nPTLPN85t21r6tq8oG7egk0XDD58ML3jmg2LlmLupm1N7lJe+Uyf29vY 0uTSdw1pwjQ3sq5j
YcbUTjI4Ne0kkQLXvdz4468HRVGUU0ZqF5Y1tveHU5MsWbW9e/0WikJql6/C 6i1b0LC+OxTaA/t6
l9TfOmkFVirM0OCrF3/4are96Opre9t7ccUV40/1K9fvBQB0PYmals3FTXcT x7yrFj+YGXLNhsXR
dszAOXfTtvrGg/tvXPdi/7yapQeOPYm5m27BV745GOwqLbvGlqau2M+0oXTe ghYM4tOhlf2V/Td+
88X+KF8AeayPgXX8srlPPj2IzPhwpQUALL2lYp8pilJuOZOtqlHhr3fxEX0B yGuFfa6v6ZtB5HEa
aA88O7hgxeJGHNv27LFr8qTT+AE8dBAYw1eRpHJW8Dom1E/+dnvgjq6OAzUt K2s6HnX5lvCpJ1ae
4INA4fsiN36B881/3ZOv7xjaSe59Xbj+FUVRThki/W1LgCVt/bJrDZa09Uss JNxes0sidq3J+Knk
5+TJk7/73e8OHjz42muv/SHGoUOH3N+Iw4cPv/HGG4ODg+6niES7otQOlcBY Stn7z19ue8ptDj7V
9uUv/3Nvwegl5rL/h89cfvtL37v9me+9MpZCTQQ//x+7Nz2bEfK923ff8MOj wY9n915++0siIq+8
dMPq3ZueFXl27+Wr9/5cZP8Pn8k6MJfv3b778tW7L1+9O0gkzPHy/zHotvf/ 8JnLVwe1kbWdLoPk
DXElydw7uGl1VL2DmzKzTkynspRczkLl+d7tQfxS0pdnB6PI37s9+2qWdb5h voObMiptcNPqvbEs
MlpvGennKefYrmM+ssuTv91+7/bdUb7yyks3rM6o89zzip+4u5GLpZ8Uv2B7 SL7u+a9vWe0k+b7O
U54777wzMdl84YqiTCnGLLRKF1TxkN3P9u9+tn88BU4Bta3d0goA6BDn050O ydwGMNC+sbdteweU
acOiqz8/2L5u3ZMAcO7SpecOViTV7mdqNm2Y33gQNz6w/5oSHFUngYP7n7pg UdpIdkn9pj17Hj44
/xoA8xbcdgnwHHDZnEbgQKFUAq7Z0HQNAODAY3ua7kDXhvnA0M9eXtC1IXBI mHfV4q6r0vGX3hJY
HOedX4NXiqe/9JbAMpeO/9zQiyvrbwvMlnNu27zgxQdKKGgC+x+9c3dvRsiF V9/5wfeMKa2EclaQ
845vu77rK1FeY07nub6OC+Z0AcCcyy/ouvu5+TE/+8GvXB8zuI5tAED+ck7k dSzUbqN8cd7821fu
eeg5NOYbdHFw/1MHjvWv64o95Y91A4350i8Qv9z2UJHrm+++Pq/88iiKolSa 8ubt7mypW9uwS9Sx
e3ox54rWzYFfyd5H2jF+FxMA12yoB4Dz5j+4oRLJnT7Mu+qdSx8dimTH6cD8 lXdev3KyC1ECQ3ev
G7xyc5OTwgce2/PQWBPq3jOIpweb0qMkh267JHLXHr/vQcXKWTlqFpTefzhv 1oJ5Cx4svatcbvy8
TMF6UxRFqTCmeJQYzR0iulDO9GXvIw/hwxVR3acD582/8uWXYiPqhn728twx TW8ydPf1e9LpHDz+
4mVzGgFgzuUXvHhjejjp0N3Xd9393HhKnMklcxY8uj8aZ9b9g9C59jTj2AFX dc/1NV1fcJjdweMv
zgsv0MH9X8uenaZ0hn728oKucNxk17amlpeHyhreV4Ryy3kqruOxjgf2Rz+6 n6m5vND8Qlnttijl
xg+KlH3di9Rbye2kYve1oihK5SGZMuvUTz+Gh4eHhoZSqVTps7hXV1cDmD17 9uHDh92u2bNnu40o
pABR5DJITx9Y0gSChw8fHksuk0rmHILJQ9nghmqdF4Zctqhr8VDTNwfrVi6+ HX0Fp/yLTUgHZA1Z
i89J51KICrP0lqbbEIwhq1u5+MGrjmemExT1HXnj18SHoOGyuUufHnxy3oKu DbMS06mc9X2ozHIm
n1dQnvQpRIHJ6TdmXMeapZfhyafdRckbP4H0FXeXKTq2pmXzYjwQXayMi1ju BIKJ5bz2lXKvYz77
cdL5bq7Zlr/dLti558UL8OTTwS0QDkAsVG+ZcykWSf+2S3LiF263SLzu+a4v 8sTPX/7c+zr/fff2
Z7/+1a9+9a677oqmEXTb8RBFUaYsYxZaRclVX7Nnz+56bgBA0yVj9/pQ2T2B nB6yu0xOR9mtKGcy
D9+xJz2FjpJJPnmtsltRTgtOO9ldnpOJoijJ3HXF6bGtnGE8fEdXx4FjHeu6 mu7YXzy2oiiKMpGU
N6RSUZQE7roCX909df8qZzDRHDtKPnRBSkVRThnqZDKBqJPJGYFTt1N8Ox6o KIqiKNOC087JRGX3
BKKyW1EURVEUZYI47WR3Pt/uzhZqbB8oHFL8GEVRFEVRFEVRUNkhlc0d/at2 rFbhrSiKoiiKoihZ
VHYmk9rW9Q1rt3RWNE1FURRFURRFOe0pOpNJZwst27pml3RkhbS19a7tWx+u WdnZQhvr+7tba+vq
l/TuG0Czrh+vKIqiKIoy0Rx4bM/XUP/gVTUFpuXReeinCIWt3QPtjcuwK74g fBTS2rp+zdadgWG7
c+fWNetbawHULmzo6Ts9F6me/ux9ZN26devadw9lhQ/tbl/neGRvBbM78Nie xLXQNVzDNVzDNVzD
NXz84QCAoYcerbnerf8KfDWJfEcqp55Qdg+0N7pBntQS+YjsWF23Y1V/WnJn hTSvCHV3587etluD
aIG5W5lqDO1ufwjXbr724uwdex/5+1+/b/PmzZs3b74WD1VGeD831B1tH9x/ 92PHNFzDNVzDNVzD
Nbxi4SEHHnvpxZXzG6GcHoROJrWt3dKauasHWNLT1w/U5glpvrVt4+r2gTps 7F21PYzU39fTsEJd
TKYec65o3Qxgb29W+N7eV5f+5dVue9GVS3/y1F4sWjTu3Ia+cr3T711PoqZl 83wN13AN13AN13AN
r1x4sPehR2uu31YD5TTBu/POO5PCBx6768Wmp7pv6Vl4/b9f+6lL35YUgred c/Tbm74/sHfumq2r
64Ljdt3z7JxPud1nPNba48ePG2M8z8uaPDL6G4UQke/7nucBmDFjxvDwsNs1 Y8YMtxGFFCCKnJeh
vb88tuDSBTXJAcdf+uXTxy69dEGBBIaHh4vnct6cK1ND/9/Rt7fMHv3jLy++ 5jwN13AN13AN13AN
r1w4AODAY33fr6+7aWEwEfXPfvazpqYm5JAvfBowZqFVlFz1NWPGjJcOvg7g neeNQ+RKMrvWYElb
v4j0ty0BlrT1J4SE22t2ZRwX/3lmc/Lkyd/97ncHDx587bXX/hDj0KFD7m/E 4cOH33jjjcHBQfdT
RKJdUWqHSqB4mXr/ue2pwbwBg0+1tT1VOIGSchH53u17fy4ir7x0w+0vabiG a7iGa7iGa3hlw0UG
N63e+/PY7zvvvFOSyBc+DRiz0CpdUMVDdj/bv/vZ/vEUuLKrVA60N67G9u5W dTIBMDVXqdz7SPvg
la1XzIkFrOtt2Hy18ysZ2t3+1NzWqws5megqlYqiKIoy6UQTmEQhd911V+IA ynzh04DTbpXKohMI
lkFnS93ahl2imvu0YtGVS3t7h7BoDoC9Tz15bsPmyS6RoiiKoiiFUa/ucXHw lbzusuedf3Li8q2k
7G7uqKTlXKksex9Z99Cv3Oav1j0JnLt0c+sVADDnirm/XrfuSQDAxdduHv9w SkVRFEVRJpIDj730
4sr625J2xW3b09jOPX7OOSfByfv3v7cTmmklZfdpR9zBJt/2eLDWWmuJyFob TzPftw8XPzowSiRr
o3CO+Xa9e+XGjSuTI3/w5o0fLCGF+EkVLYmiKIpyiskdUpa7rUwLhh56FFdu TjZ1x3W2au6pxhkq
u50Idn+ZGeHQUlROcwPwfd/Jbt/3S3E5stb6vu8OdBtuO2ujcI6VKnyBLE5B LoqiKErpRO+U6K/b
yHr1TFbxlEoz57Ztc4rHUqYeZ5zsjrR1BDMzszNIR+K7IgwPDw8PD/u+z8wl evq7PsDJkyejCWtO
njwZpVY0xyjyxDE8PHwKclEURVFKJy67HZ7nGWNceKTCoeJ7ulNgfXgli4n2 J0nkzJLdcc3tpDYz
O5u023ZUKruRkZHjx497nlfU2u0CnUYH4Hne8ePHXXg0wWQUUoASZ6McD+6M JjoXRVEUpXSid4oJ
8TzP87xUKuW23Tso8e2jTBvUpaR0JnTcZAHOINkdae7IvD06OmqtHRkZcY4T Tnln+WGPh5GRkSNH
jqRSqaqqqrjszsWZIoaHh6uqqlwhjxw5Ei82gCikABWdDjKZI0eOnIJcFEVR lHKJjNxOcLtZ1TzP
q6qqcuHGGFXeijKJnEGyG6Hmdrbt0dHRkZGRkZGRkydPnjhxYnh4eGRkxO2q lKwcHR09dOiQe+Rl
uZTkOpkAGBkZcbL72LFjx44dc7tyNwpQSpxxEi+boiiKMhWInEmqqqqqq6ur qqrOOuuss846y/f9
6upqEXHKG4BT3pNdXkU5Q8mQ3Z0ttLG+fxqvdhPJ7pGRkeHh4RMnThw9evTI kSNvvPHG0aNHT5w4
4ezflZLdvu8fOXLEfekrRXaPjo6mUikAM2fOPHHihNs1c+ZMtxGFFCCKPHGc OHHiFOSiKIqilI57
pzjz9syZM2tqat70pjfV1NTMnDlz5syZzrWyuro6y89bUc5YpsS83c0d/fsa V7cvn27CO3Is8X3f
mbeZ+dChQ6+++urLL7/8/PPP/8u//Mvhw4eZuYLuE7nzorjtEp93+aLlK2Hx 4TKlnJs+jBVFUU5P
iGjWrFl//Md/vGDBgjlz5pxzzjkAUqnUWWedFT3+9RmvKBFTYd7u2tb1DbSl s7WjeUJzPZVE85NE
jiUnTpw4ceLESy+9tGfPnl27di1duvTOO+983/veN+b0C4ePTco7i3judoE0 8yrvIHbuQQJkxkyb
QQiEMT+ex9l7KXx41HspJZcSSzLmpIoGlnIu4yzYNGbMEmEq1Ns4O9hlRatU XmVV+ARFLmxBcMry
61//+tq1a8sa/p4vtccff/zjH//4+CdFdUldddVVFRmUX7i6cpu3Maatre0L X/hCd3f3T37yk3/6
p39asmRJfX39+eef71xKHHHf7qK5KIoyEYSyO/Ivqatf0rtvAM3Ty96d4V5y 9OjRoaGhZ555Zu/e
vRs3bnzXu9519OjR/v7+MaSZGJg7R2E8fmE9ne/dkJVIlik9a6LW+DdEEQEz Q5hFhAFyh4II7idA
Ub5Exhgi4xkiYyizPLlFLVeJJh5SuEdR4GdimqVslxKt9DQTr0g0GXy+CAV6 ZaWr9mnPeGTBGKqx
rNrOdRtDUoFzJywa/3bRwHKPLSVCWUUtMSRfhNznWDx83rx5Q0NDL7/88uuv v56v5InkRnjLW97y
yiuv/J//838GBwcLxyzKW97yloMHD/7+978fGhoq99h8FChGVls9++yzX3vt tddff33evHmf/exn
r7zyyvvvv39kZISZZ82aFU1pkkql3HalSqgoSrkEsrtz59Y166UWQO3Chp6d /cB0kt1ZHiZHjhx5
+eWXOzs7N23a9I53vOM//uM/xpBm6YpzDHFKxD2UiydIQk5qI/1+kihEAu3t XANFBBAWMoLomZ84
7L3EGiisfsoV2bk/x6O5yz02cTurH+UEd+S+Hzd9FdXcZ7jIzmU8NrnC/dui h5RFVg8wq7Oa72c8
clZ44e18gblZ56Y/tsSzTrboKeQ7vEBtxEPiN4ibA6rAdUkseeGYRRlPwys9 l/EklXUJIg4dOnTo
0KELL7zwlltuaW1tPeecc+bOnTtjxozq6urq6mqnvJmZiFR8K8rkzNvdCTSj c2dv260dLmR6mrud
qdv3/RMnTrzxxhvPP//8Rz/60YULF1ZQc2Mcr+18qRXIKyvTpKezO1CEA6O7 MIOIGWQI4lS3ZSZA
nA4nwJABWSIwux9hWmNyh0jU2fnOawzG6aL5lmvkzrddejpZoqH0bwKqufMx Zh0zBuU9HvLpvxJ/
lqi8kXPL524X1uVF5X4+YV3KKaBgr6NobeTiNGK+ghUoeSIl6umf7n76V//6 2wIRLn7/uz585ZIC
uZTSYn/80+4ol4vf/66PfKgxN6RoUokN+/XXX3/3u9991VVXvfjiixdddNFb 3vKWmTNnRuKbmVVz
K8qkzdu9sX2gDht7V20PZXZ/X0/DimmkuZ3gdDMD+r4/PDx89OjR3/3ud5/8 5CdLmQk7N7XKlq1o
nKKP73yqLjhOxEVhZmEGGWYxIAHAFkTWMpEARkSMYZgUGViQm2NKMs0q+cxg ZSnLoopzzFqZ8juc
lJLOmEU5yrF5J1JiBZ6xxOu2rAMnTnkn6qECyhs5FsrS9W5i/HwRCivd3LwS 08lXwnynX/jhkHts
gcSL9hOy/hY4nXwU1bK/+tffPvK9/14gwtV/+ZkCsrvEYvzqX3/76COBuWvl 1S25IR/5UGMpSSXu
Onbs2Mc+9rENGzYcOXLk+PHjb3rTm6IZcq21qVRqzL1ZRVHGg8GOLVt2NKyP 5i4Z2Ne7pL5uUstU
cZzyjny7T5w48Zvf/Gb+/PmHDx8uN53xFGBsxxZOquATmcL/ABIKQtJHpmPF 3CMF4qzkIm5mF4nn
mPUzXobcchYNSQzPOruy5G8pmjv3dEpMvPB2Pt0TNz3mk1CJdaWaO5FxVktk Nx1zhKzCFLh2Re+U
fG14/G2+cNalt/kCN1TpRU0sT278wkkl3qrRrlJKWyD3iaNwLhe//10rr25x PpA7Hn7gV//62x0P
P+B+rry65eL3v6v0pHI5fPjwggUL9u/ff+LEiZMnT46OjrpV4aLH+ljOR1GU cZNaha1rG3Z1RAHT
zdgdIJmLU/q+/+Y3v/nVV1/Nivbjp/6lxAQvWjB//ry35649OQaLmozJ6pCV S/gKa74AACAASURB
VP5vrCISeJSE28GhIqCMdEQgFI67JCKED+dcK3I+z8LEkNzASHqWIg7yHV5i dqdyO05Rm3c+K7i+
EStLbjMr6r5V1l2ce9ONwcMEsZsiN7zwduEIUsyqXVbiuedY4BQKV0W5teHE YqKrd9GqSKSUS3z1
X34mK6SwFTwxl3zFcMbsVdd8+uGH7gfw8EP3W2sBXHPtzc7DpPSkEnnzm9/M zKOjo+6V55Zhruw8
uYqilEuqtVta0z8H2jf2tm3vyB//tMQ9r6P1KQssiLP0Ix9KDDdEZEgkbXR5 8sc/Pe/cuTNmJEy3
nvsxNF6SxO+tRSnsPpGbdYawIAILARJauyX9VyjQ10GQQIgQnGmYSOnFLkWF l2KdGqcOThQKRbfH
Kfqj7UgixL+PRwo7CoxHyJeXUhEq616SSz49FG8J+SLn+1mKnI2rZ+SR7Lkh pTur5CYenVeB0y+g
fctS3om1kXW3JkZIrLdEoud5Lq+99prb+G9rr48C/65tWxReOgWK4bT1Ndfe /N/v+5oL+cxnb0/U
3FFSZXmbSOhgGaHWbkWZXLJWqaxb27BLppetWzIp3N1//8UXl5jskz/+abnz s47nSVf02LzKmIiI
jDEC8sBpS7aT3UQQMQCImIXIPbkN3PwmwuFOcgObUM6cVqWEFJWeFd+eiMRz f0ZkCa/CKjwxBSWL
oloqkVwLd2EtXq5STyxVvNVlqcl45NyfiQbjwuq5wIFlHVt6hAICt7Dyzi1b gdrIOoWsezBejKe6
fvHr3xSaB/b971v4oSsuKxBhQimsmMtKB/nbf27nJOvFF2f8hVEUpVyyVqmc zjdiKY+bao+6fra3
42f7TIpNlZhq61Xbv/3zD7/tbWdHcT70+Ud++vdXF82rlAj5Hp2577OiqeV9 oEv0B24NHBGXKLns
jTNuu/1EAgIJuYkFgUCL55jBEl+6iedY9GeJWnbStXW55czVba66Is8TxGq1 IktsnFFURHwXVd4o
7QaMlypReSfajHP1aD7z9hiUd2L6yGl4pRybL8LYTqFARZVi9c/qpsafRb/+ TX80HjGRlVe35JPd
ueUZHh52G3/Xti0xfAzk5uKmLvnG19dHyX7j6+s/94WNCA3hpSdVIKaqbUWZ OqSKR5kWxJ/UBXCP
sfP+00yvSkyVNVXsVZU9rWOJmruUvWN75Wc8jgPnEiISAbl1cohMYO52mpsI gDEEgkGQgMCNwow0
ecKLNl/xcsOLSvBcO1bRYwvHz9VMZYn1co9N/BkvTFzqZYXnnr5yyiha82Mw e8dvwALStvSfJSrv
qLT5lHe+vYl9g3zSHLEnTFarLnwKKNjrKP3043+jM3IhL7zwAsZKVglHRkYA /O3dX8yK5sLHk0uU
hdPcf3v3F12aX7rtXpfd3979xS/ddi8qrbxR8ntQUZSJI3tE4LSkqDaKOHZy BMDZb63699df/beh
A8//fv9vX3spOCo8cM57y1iELPFTaYlFTYxJRAUetfFDwjcWnNAmonBt4AA3 R2C4dLAxhrxwD+CE
eXbi0WfKuKNOidKz8M8SNW6Jmjte2tzwfNv5Mhqb5s76maVpcnsFFfkArZRC VlVXvOaz2gwytXtu
O8nX9pDZbhPjJMYv0MgTjfGF80pMJzqvAoeUtavA6STGjIdHR40WpEA6uTmO P6kCWbhjf/Wvv914
1+dcgl+67d6L3/+uL912r/u58a7PFZ44PCupAk06tzWOp/CKooyTM8XaXSLu WfXL/f3eWbaq2npV
vlftA8Fa6s4qfO78301qGYGct3h+Pz+IwLmLOAeTwMKdLPgofRjgjOD5ntf5 vr+XpUQTH/0l6u/C
2xVJpMB26T8jezZyXHSQg9q8yyVRc0wR8mncMTic5LM0j8HhJPfGL/3YfBES oyFHlOez9yPnCiYm
FQ+sqqryfT/r8Pc21K7/6jeQn/e/b2FiybMQkYvf/67CSbnZ/cbT/LJyiYZR xkNKTy13BZzCBhpF
USYLld2ZEAGomul71b5XZVPVo16VD8Ck/Z/RduXfjiHhCsqpfNaLpIescxdJ C2pQMGlg7K0GIKls
mYklqu1En8usQ4r8jH35DLKkhPjj0dlFDXITqr8dhXU2xXy7c6NNuXdneOWy Sprg4HQKS1Ruvokt
Od9NWtSrqqyC5VOuhZU3CqrkfNv5IuRGQ2YlFHBWyZd4lOzEOZxEgTNnzhwZ GfE8z/f9KOumD37g
isv/JF6GfG2yaIO5sunS0gdfjqH5OT585ZIsN5KPfKixsGNJIsaYkydPzpo1 awxlUBTlFKOyO030
+E7NGE1V+V61n0qNpqpGAbhl1Se1dAGlyLJkeyoRRIjcKMmYyCCnfSlZfMcy zbLVRRlFqeV7DSf/
dH2H4DCAQRRt0NjEd+J2gZKUKKbHo7njwi6qwMz5vMEsEGFhVytw4TmigQI/ /PRHiYlukVkXOvwp
rsAiwkE4yHkqBYubTgUzW3rdJyBvvWXdJkW/Nozhc0R0U8RvuhKUt0DAEg1o zig/8ivy3O18EXJy
TNguK/H4UUWVd+FduacWT/zkyZPz58/v7+9ftGjRsWPHnPLOLS1lun0nJl6A xKMKRx4DZeWSCxF5
njdr1qz+/v4LL7xwbIkoinIqUdkN5Dw0q2aMpKp8LzWaqvK9lA/g17173a73 NjQMjwxL/nknChjM
SnnQFzBNFUi8BEKhK+lEJDJ0i2Rq7uycI62QlgssZFwsEmdRNwin/Xa+KWkj e6SA0tsiIhwWK1jN
h8JjJLTKh4ck1oAIxwz1GeeS7kc4qRqY0TMvgdO+udK8iMgWcasMZb3Os6+v 61MwZ12wbKu2BLhl
MkSEhYmMxM6JiJCTo0i8G0hhtPyk1TzFnIko49+M0kcNJpKtbgdDELj4Q1wX TgBiMmRA5AmRMcEs
OaFATGi3sd5FdCb5y5OusajekKfJErnPOQLEqytvvSX1lFCgPrMbTEaKhS6E McZ9+UessylAMDVn
ZutxF0mCST5NeF5EBCLi8NYiSg+JpuxqzN52BxmTMbo3S/ZlHetunXhgzgJh QdkLK+94yoWVd06Z
s+MDOHTo0J/8yZ985zvfOXny5Hve8545c+bEJwLKtXAnnl2cGTNmvO1tb0vc VS4zZsw4++yzi8fL
YWzKm4gOHTr061//+pe//OUnP/nJ119/PfHFoSjK1CHVPoDW/BN1d7bQxvr+ 7gIxTn/i7ztD9Mor
L6yZd1W+yG7BAeSRv0mv8ATjdCnRSkm8JJykFhHJ0Xyx7bSkppiIRrYeEBGw gEhYyMKZOSPbmzFG
MmWWiJAhSKh9hQGwAMyBuZTD+VIQKiaiQI9QtCudRZhyIP+cYGcBwAA5UW/I ABAPcEKDCAIy6anH
AbC1AkQLJ0V6WkQoXJ2TMusnowDhbgEMGTJBxVEoTi1bd3buO0lYLQCYyDCz U0tsLQhsmdkCYBaB
ONntOjXM7OZcB9iQCU8/WEvUFTBtb85U51nFJoI7KNIlRAYEYwwh7EOFTYHZ soi17DJiEUMEAbMF
xPetCIvAsjXGuEw8LwUiz/M8zxDIeIbiRtOYzhZAhAnEwbw6BcvjCsUsIpY5 uPAiYc8mrb+dPPUM
gUiYiYghEBhj2On7hHrLNooDIEPCEisY3H1jDDEHd1PYZwv7mVH5g8sXzQIk FDYOZnHjlYObSoSj
/k26g5ZuXRQ7LzKuOklEjDHp7mVmx8/hrnU0iiNU78FPz5jggoaDpsNGkqvW XJM2AAhC7sDwJopu
dqfMEauHXOUdb4pZxc6ViUVDnIX7b/7mb3p6eh5//PE//OEP6eLGi57vlHK4 5557cgOLHpVI0aQq
kkuct73tbQsWLPj0pz995MiRaKynKm9FmbIUsXY3d/Tva1zdvnzaCu8sLTvi y1/95XIYsiOjXsqD
qQKs+P7ZZ79VBL71R63vecYkPdQSLKN5yFSQZReyQJpIsjZBhCPrZdo8RyJM zuEhlEQS6mj3Sk7o
IAiYmdxKOk5H+0HexhinZQGBk/fOEmeDDRAQqG5CtHYDRykRDJEJxGsorp3+ JQg77Q0RMhCOdCWL
RD/dwvdgYgJgyaUlnpDrJ8QMjUHegdUWwoGCk0xP63Tli1NdjECgwa1aSoas sBEynkFQRDA71Rqu
UJHW7gDE6ZW0HmVXEisCn1lEjPFY4HlEMNZad8UgAgOO9Ku7CoE5GQg6KYH6 SV9T5mB1VeZQ9wcl
97ywuj2QcWo3s1VLMBdMIAoNiQhbSxDr+yxWhKz1jfEktBsDJMzCHggee4Ed 1JiomxrI7uC6utMp
Xh5XQcLC1ncFYvdxIEwwuAGMS9zpWtfbCWrdXd/ceotdiODmAMg1n7BrJVEr IzIibIhchy2qT2NM
eFkZImQkFNEkwpGR2/Nc6h4QF/rum0FY00GWAhEyQS+LDMACjwDDbJ3Sjd28 acUd3rYUljv43BNq
ZSIiNgbB7U/B3UUEBBFcW0O4Izw7UHC2wexHAFxHlwycKqfYt4X0XZP0aIq3 r3jkfBo9MWR4ePjo
0aMf/OAHP/KRj8SjJRq5E39mUVmdeupV7x/+8AenuR2qvBVlylLUyaS2dX0D bels7Wg+FcWZbNrb
2xKfVlVVKSJvdGQ4epnM+b/Ojr63li6g45T4WMxNvNzsArGdPixtyxUneiXw JwgUEkGEndUuy0Dl
0nEaCJYBEhYCyBgm66ZKIZBE1lwOFHzaeuwEATPYGYQD0yUAZ04jD+liWAbg Npw7AlgCQzwQGPGd
cHemfAmEHEFMlQc3YWKVIWPgkTEQcpZWYWuZmdlay4EsI4jAqRlrOa3SCBB3 Xq7/kpbdgPE8z6RM
IH0MGQSWYmt96/ujvm99606TyAkoeJ7n7JFERkSMAbOItUTGWjYEZhaQBKuE MjOsEAkLhK2IWDg5
TiDEVw9F4NQB+NaNMzPM1jPEArYcdRvIeCKSSqXIeJ7nVVWlPM9Lec5QHLUL cdZlZnY2TqfSrO8T
xPd9ZkvGsOXIWiwChnh+IDA9z7h+m2e80BRKIkwQZnEdA99akaCXlac8rm/C bK21dnR0xPetCHzf
d+fKwp4xAhAZ43mu+2eMEbGGjPsCQh6EGcK59eYUL6LPCHG5SRABCxOc1V9A Rpg9zwiIWTzPuMWk
PC9FBM8Y1500RG4JbhCxZc/zXJmqqqo84xFgPBMkzkEbZGbfcsYAEmFDxvUg yAT9KYB83ydDbJmt
JWP8Ud9dUBC8yJZujAk1vetsWw7KD6CqKgVAhDwv6NcY4yF0PgluMstw/TyI 53nkuuKe53pHxnhE
JExkiMTAMyQQkyC4c00AWQo7a1dR5R0/9ujRo0ePHnX9DRcSt3Dn/gUKifIC gWVFGEPMyh4bEXVu
FUWZUjjZ3dlCy7auaWvrXdu3XgKBHfmX1NUv6d03gOZpau/OoOk/Xxa3GRTA GFNdXY2xau4SDyyq
uaNXUYKRO4jBkFBWiwDELGQILM5ylv68LUIcjGc0oXtGzJCZfosLC/sW1r3S RQDjtExoRRcOvD1E
RAwJQRiukyIAhIQtmJnBloMP7ALyDBFMyoAMsxjjEhciwz4TwYlPMkifjTNX W/e13w31g3Nc8AAY
EQ/wyEAoNLk66ezkju9EjyuwE47ODSawboayO+hdSPDdICiGAZmUsBHPMyYF CxZx58psrW+d7vZ9
AVm2hgwF3gHRKpVWBJ4hay3YwhCzMIRMCiCyApD1fXgpn4WEU/BGfUvMQuT7 PgECI8yR57rTrwYS
Tu9AzJYNscBaa4yxzAQyXtDRMR4AZ2YmNoZc38N1S9j6Pvu+7z5u+Gw9Y0R4 dHTEgEZGR8RaMp7v
W88zIiTCXoqZxTfkeSlmTqU816/gFCP0XxJmEmYWy4zAiUXIBL7sSeURCJzq Zmt93/dHfRb4/ihB
WNL9OjLGeCkCPM8Yzwiz8TxmJsADrM9GWIj8UZ8oXW/MLNbCGNfLA9woRkMU yW4hiHNGIuMJM7Mn
ILaWPS+w2XsskJTnEZFl6xljA6s8MdsUp2CMZzwiI86QH4xiYGH2R31m31r2 feu+/5BxgyTEfT8h
kKkCBPBIBNb3iWAZwhYg9zGEiMU5IXkmdAQXct9RXPldachz7ldEhkVEPApq TgTiGQOAg/JbkaBK
JCUCMgaeIPYwoFTKELurChjjusNxgRs9NHKfS/mEeG405GjQAnGivJBE8uMx k/FHKFz4ElFbtaJM
Y1LAQHvjMuwSaQY6+2hnZ0dzM4DOnVvXrJdaALULG3p29gNnguyuqqqqqqoq PX5FNHe+h2zRxEvJ
nYMvysERCGcQ5DAF93KMva4IAnjBLOWUm4tzy7YMtsyw1n2rdu4fBCJwOEuJ O9rAmc3YEMJUSQRs
nfYONgSGDQBjDRkjLOIBlkUAY3nUOh2P9Fd4pxAtWysMARAYzwkg8ggQeMYY YksCSXFKDALLughL
oPxCV5fAY1gkNIe7oY2u+ESW2UAoZp03RAK2lgADsc4JViAEFmttYOi2vnVO 2yxg8jwBqmBCkyoR
kHbqFTCLcTZ3gick5GpKwr6MM39bIWMtEyDGeU0EV9V1kyI9ywK2PhsTym5i FhB5AiKwNSAmMmyF
YC0FdWsgHF4nZJoShQnBmEwSMmQ8z0jY1XKdFRZLIhBrIRbkiUjQzTCGyEAY bF15nJplERKPiNhy
UnncRQs/TNjAf8f6FhCG+wbgzPwQWGPICFnLzsmEWQyJtW6uGCvkOh7pehNh 61sY5x8jcAIWvjHk
vDds0E9g14sBAsuvc/YJbqmgSQoDgRk/cC8itgxYMJCCsVYEhoAUIGJIArM/ s/WttdZ58wR9KLBI
4FJv2NWoIHQ6skLClgDfZwOB5+45Iuf64kYCBPe4+7ogBIIR4vCjjLsV3MDo wPHHOY+BLQdnbIxY
i+AzBcLPVa5L7nrohlyKgPEydHN8I/4AmQiHkyj9uLCOy/3cv4nJ5suu3Ahj jlyRAxVFmeKkdqyu
w6r+bmfhbl6xZpnT3Z07e9tu7XBxprO5u4B1pDDj+X6X+J7IilD0mVtCAUIR CQltuRByoxido4cQ
Bc4ZFDiEAMJkSOClRxem3UNAAAuc84GMWmawz84d1LmFEBmAA/8TIglHBArE mMAmzgQSBvtOcgsz
WwFIrBGISRnjGbYwvojP4qx5vk8iYjyI86kQIQgT2LJvRUiYA4cH57XgGbae qUoJkBIYMdazxhqn
/23oBMLMvnUSlQGxDJFwaKOwMR4zG4JzQyEKnFgsA2DjWVBKUiyA4eBbtwdA rLXs+/7o6MjIqD86
MspEbC2BYAyIrOe5qT7csEnPM8xs2IfxAu0lJARDnoDsqO+lMGJhxIrI6KgP 9hlmZGTUAGI8a62h
UHgisnaPCjOD2PomlN0ekRUGjEl5AFVXWa+qKuVZIlj2znJOMKHudmI5dH0H W2YCs/Wt7xH5vnWC
zFprmMSItT6ERn337cNjf9TzPJiUQFLWeW0b8lLCPtgyi7UsbP3AGcMDUXV1 YnkEJNayPzpqrT8y
MjwyOiqM0dFR1+CsSMoYIggZz0sRkU15RAZijXPmAajKiG+NJNQbM/OoL2QE IGEyFA4BIAMGEQuD
rbWWWcR4BKnyq4Q8YU6lUoAQKAWCMDx2TiDGwPdHfWsFxMyerSJjmD2Q8Tz2 PAKzc0ayLDboTVg7
6jORsCXnISLWqxIWMSDnX+WBBTQyOkoio5aFrTGe74+CBV4KIM8j5+giQoai gRxCIpYthMR4xriv
WyQiVVUp12pSVSkIpzxPALbWEDmfFwEJi2cFRB4kVQ0RSaU8CcZQsjGeW9vW Ocln6eYsO3Su2buw
Cbwsh5MCwnpsyhuZ0r/cCFmRx6y8S89FUZTThRSwpKcvsmU339q2cXX7QB02 9q7aHsrs/r6ehhXT
UXM7sj53lkJZmjsrckVs2Llp5j0LCeS38xMWImZ2I6fcNIhOhQuRiFgL43ks bmoMt6xldsZwo+Lc
IEBm67PzRHG+K0LsAexb5+zsrMjOx5fDpT6ZQMzkimQD52UW52ErJMzWY4YQ hK2bKsL6TAQSK6Ez
NAhiAWH2OTAYM7s82LktiPNCiEpOoduyqyTXfbC+77OzbQMssNYPfHMBw+Es KURirSGCsGW2wSQW
ziDqgUhg3FhQFvHAlq3PIoJwmBxEwnFowizkNLzzBEfgKm9hxbcWYOPBihhh KxDftyyjlo0we1Uj
IyPElsmMjo4SRMhjZs+QCIwJnH3EeZezCJnAIzuYjc597AimaSR3wsZ5b8P3 KQUwyPMIgBsSKq7L
RnBOzizCgW+Dz9bCN771DZFY41srhqy7XgK2zk3ZCsS4S00eCSDWCDvH/uhT i+szJJdHxDOwlq21
1rdsWVisIOgmwbAIw3VpyMKZyIWIIGzYdRaELJhtSji33qxl8X3nI0HCxhgr iJz0YYhFTPjxJkyb
0pZuZudJIswEIwTLvghZy8ISjDUwDDEc+LPD+hZkRFhIrIjz5hARMdGMl8FM L2wts5t4xTDbKkPs
ZL0bScnCYGEJVLowiQmHAhMHNy4FgxHckIugbThfdg4GMARu924wqLG+L55n mcUKw0DYCANkBYbZ
XVk2DCJ4nrOXp5zvVtjhzXoiuQ0KR2znKm+U7OqNHA2aGz9XWCNoYeUp78K7 SowwhpiVPVZRlClI
atX27vVbqLE9mCWwdvkqrN6yBQ3ru0OhPbCvd0n9rZNZyKnFeOzcpSde4tO2 oEUk+Ezv5v4AuQGF
FA00cvozmGbEOU64QY0I38VRKtHHYufabUWcfy6LWIbAioCZjIFnLLMwh94s 1r1sJZgRTwREYtzg
SxaAYIgs0pOKs3U+tzDGfR53lkcW51QgbnwjC4wIxLJYy+w+yzPcXhONEYU4 6eO2GE5DQQQSji8E
QkkeqCknT8ECL5glgwAGhK2bb4KZRKzAwJBL3MI3bIyFATNbDmqAKUifTKB7 XW7h8EenfolgQPAE
5Dm/WyIjhsh4boIJImOcGRbOKd95JrhpEZmZYACIZTEE5+kTNI6olURXOn39 ozI4LSbCzAYkztUn
/EoiQcERzPdtYIybzg5UVVUVakVDEGfzZGdkhXO0d18IGE53IZoUT6LRn0IE Z9dOLA+EON30ogYZ
ffAAIgeb8LxA0WyKBOcdHdZATr2JCFsLgS8wYiWYZwcG5HoaEtwzxpCwIFwL yBgRQyRuMCIZeDCG
BLCBE3v6HgzHGRvXDWNhCny4EXyf4OBDUVAz7ouRGENkAc+AiCQ+6FMAEBM8 d8ZhbzbsIxEAZmsI
Ii6PaPL4oI4lrCk3vQ+ZqFsYXEpPyBIMELqiwXW03eOGw463m5TFXZ3oKZFP eccDC6vtaFeikbsU
5R2r/QzxjUz9Hf+JJCqrvBE75bJQ5a0o04kUglkC62hHW393a23t8lVYu7Zh V0cUZZobu8tjzHbu
wgdSbOXC0nMvYPPOCE/rFROue0fhvGPOZisUvtcpSgwmSivdGQj1sbCwDYYz cjiVhRMM0fhKAUgM
ec7sHb3vCYHrijFGmA15MAI2weQRzgHDwPULKBjdGS7NA6e/gjVbABtZ09n5 t5DxxBhjCIYyVvag
8BwMwASCcXMbhkov3suI/e+qy0kwOJcAX0jYuuFphsnYYJQnuY8IhghkjGHx yAh5xs2NaEDu8gTO
Ns4rxUlyBoEMBQP7jPGsMAWmVTcNtVBQn8HXCwizFTaWrS+BqR2BW68ToMGw QM94ziHb84yxTARy
g/YoVLrBJQkM4K5LQ4Gpldl59VhmCqfbA8gYE5TNuOl8DAsb40YECMHAGM8z 7KoomIEuUMLu2rJr
80Aw6XdY4uzySNhTCQocAONBiMgYFpOOTkQSrfES6XMEIxRctVlhsLFsrRgO JpF0nuXhAAFjUkhP
uAdDRtz8jRReONfIjRG2FJYThqLxEMGJkgEsGQpm3XOzjERdAuc+QkSeCbo6 LmEyIkLGnS+7Lkys
T0HGEFvxXFeGYIiCqvEQCGqiYAgxGRb2yLBlictciNPpzoAfzErJBBMIczdN pnP7DipCXM8j6iGF
Lk3kpihPm7qzdDNCaZtlgaYcs3f82ZUbucBTLlG1J1q1c3sCuQb4LEpR3lkl LBxZlbeinOGknI27
tVtag5D4NoCB9o29bds7ko6dblxwwQWpVN4ZFccguON/K0timlnPZXImwaAI kv7cnHl8qDgDB2EE
L24TbWd0HtyQPhv4pQrCOf7ghLpxVsx4SSPxG+SSse57uJ6lhLPQpU30sdGc FPjDRB8CXPxgHZf0
CYf/BMLMSVlDnvMsNvCifIMxb8xhvQQTCEr8kjlTYuiaInBSP5yHm4znqsl4 bv41Y4yBiDOLuhFw
LgOEKxG6czIm6POEsj743BCejQBGIIG4CSbcgFtnxw0WFOergMDGGehVBDMw GkI4YtatrhLMRRha
+ELdaAwomCDbaSkK9LE7kAGEfghpdcLMFEwwB2O8KCPnpRNM9RLEh1t0KZpn M1hNBmHPIWyYCMrj
5ZZHJDCi29hIRYSzRYrzZQ+GeIYmb9fGos84QdsOJqkO6o1IggWAxC2g407S 9W2cfjeAm2LFxBti
2CUEhMhzAzddf8+ABG45IYTdE3dPBPNee54XpG0MBSodgaNX2AAkWPVThC0R BdNVRiIS8fnXg48H
0c0bfU1yG1EDgDNNh50QY9ygCyfjXCfKyX0CkZsAUWL3vDHG/TCecb2gqMEH PSDjBV2l/LrwVO4q
EIGih1qZqZUYp0QmSED7vn/w4MGJSFlRlApSZN7uzpa6tQ275AywdZ9//vlP PfXUT37yk/EnFZO6
8fdXeXaReLRQMKUTyRc/sAVm24fCKTvCFOLa2BU2dlTwBg2Vd+apMYvPwmJ9 K9aKQGz6A3Po4RyZ
12NGmuitHEhEZ293qjveCUBoXAvTdHFj69QA0SqF4WnEz9jZ40woKz1Dngkt jqHdM1yhRGILCQWW
9AzZbaKaYWaKKXQRN4FgJLvJC7xCxE1vGCn6YJVK53QbuzSU+RPhYpCRxxmh yQAAIABJREFUgd2E
dngEV1+IjLXWKeJgqVQidvPAUXQMUVRPYX1I5NyRDoNJ245N+DOS3UE3w43w dN4IbpkYJ8ucyzi5
GfQkWoYGnJ7XPLxwca1DgdQMNXB0exQoT7iCejQhjDsy1g2jaBBCmJM7AXLV ThAYCCfWmwDCztla
KJxZLywG3KqZQasJ6871ChAt0+j6Cu6ecu0kuvcDD69gRmsnW40hN2gy/Zkl tjyThJ444SqeEpXW
9dWC/ltoPE5bbcN1ZYOvWIjSiblPxRpdeKAAwTT5ru0E81EGN0LQzt0FDfsP 6Xm+w/6bFz51lMnk
Ix/5yJVXXqnKW1GmOEVXqZwAU+2UJJVK/eQnP3n3ez8w2QVRFEVRlPL48Y9/ vHTp0skuhaIoRSi6
SuUZx+1fbi0eSVEURVGmBl+7p32yi6AoSkmY4lEURRk3R44cmewiKNMQbVeK oiinESq7gYkZ9ago
iqIoiqIoESq7VXMriqIoiqIoE84Z7dutgls5ZWhjUyYCbVeKoiinEWeutVtf V4qiKIqiKMopwwxg
oL2RiIgaW1qCjfaBvPE7W7J354YUP0ZRFEVRFEVRzihSj3fWtnbv6qON9ds7 WmtXgDbWb2+t7PI4
zR39+xpXty/vrnC6inL6oF9XlIlA25USp6xF2RRFOfWY1uZTkEtt6/qGtVs6 T0FOE0v4YSD9TWCg
vVFN+cp46GwJm1TL6X+HKFOEdKvK07A6W5J2DLQ35v3cmX7W6ffLqY52xhRl yjJm3+7cp7YLaW9v
jAVHz+e6+iW9+07vB/VAe2PdjlX9wcLPuxr6+gHUtnaLWvGV4iS/CAfaG5dh l2tS/fX7VHcrZZJf
YC1pCx9WHcm2lSVLejdmeQxuWduTNyd91p1WqPJWlKnJ2GYyCcVCM4DO7JDO PtrZ2dHcDKBz59Y1
66UWQO3Chp6d/cCUfWjHH1K+b33LmfsH7v+rte/5/kjLO0ZPDgPAFd+8H8Oj J09pGZXTlaqUd3J4
NKFd9fX2XPqeea4hveMzUetSlFLI267gW8joSIHm5FvIe96Df/7+v7XcHD6V n/jfWz91w6e+tbfg
gaUkrpxSZpxVNdlFUBSlVIpZu9NuFWkT9o7VdTtW9cctKBkhzSvWbN3ZCQCd O3vbbg2iTWlzd3HD
wAud/+sXN/zpR3N3/OjmGZff/8LA/U3VNz8Rhj3xmZlN970A4IX7rphRPXNG 9cwZn3kiinz/Z2bO
qJ45o/qK+weQNxBP3OQOrJ5504/S0Z4IErz5Cbxw/+VZh+Rkp0wpktrYRz/+ qV/8txvuj98YrkVl
bf/o5hmX33zT5TNnfOYJbTBKBmM3ar778+sWfeHvw0s/cP/mvVs+//Fob3KL emE8RVUURTnTKSa7
a1u7sz9U9gBLevr6Y5GyQppvbevd2D4w0L6xd9Xy0JDS39fTsHDq2brduWUH huFxcOm7LxIRkYH7
PjhzRvXMGR+8b8DtEJGLbvryDd/6QaeL+cQP/vGvv3zzhdJ506L/9xO9w8dP DB/fiXtcbDx967/9
6fETw8d33vCLL/z9E0HSCYFL7x8+fmL4+Inv//W37g4zevrWzfLgieHjO2/4 1p9V3yDfyjwkKTtl
agCAmZPa1UfvO9H3iUfrZ86ovulHUez4kdHG03vf/a3jJ/5hqWiDUQLytysR PH3rorBPlXywiHz0
Tz/1jz9wDW9g1//Cn3/swnSTS2pR8WOVqcIkvDgVRRkrpr1sd9Ilq7Z378Ky 2Jia7JDa5auwY8uW
HQ3rI0/AgX29S+rrKlLkylHeA+sXzztDz0U3/+z4ie//ddbej/7pX3/rh08C wI9+sPfrn/so8EJ/
H37xxYazZs08a9aKf/zF865bcum9n/tYEB+9+wLTUVLgEzfNmnnWrJl/9u10 Hpfe+4+fvSiIdukn
mi/KOCQ5O2Xqc9HNu4eP9369b8VZNxeyOYdXHNAGo5TApfe6PtWJf1gK4IX7 rpx51qyZZ82aedOT
sUhLP/f1vnvuewF48htfqP/yZy+KJ5DQohRFUZRxYZY3D7Q3LtuKnrWrW1qC jeKD1Js7+lftqIsP
Z88IqV2+Clu3NqxI+6FMUWN3yVxUV59WyYl87HNbeu+5/4UX7t/c9+fLwrfX DTtPuDff8PH7P1ZG
di/cd+UK7DwxfPxE372Xln7YWLNTJhiiYn28iz774JZLv/3DH40xA20wZyTF 21XERZ996kRMhafD
l30Cj3Y+cd89zlgQMcYWpSiKohQiVYva1m5pDX52dBSJ39whTkunj8oNydwG MNC+sbdte7G0pw4J
X+4+uvbeze9r+Ezd8dhLK4olIoILP7YSN/7dN7DoS09dKCK4sK4eX7jnvs99 5OYMExLiaWemkA58
4d9+cel7LhSRF3b971/gE/mixbcvypOdMgUQQCSpXT15/z9cdPNNF8GNHrj0 E7UiePelv3h+QORC
4MkffBu4t5Srrw3mjCRvuwp2F9PkIiIX3vTlRTUrvnDpvXsvjKKX0qLUu0FR FKV8TsXi8J0tdWtj
/ianKRfd3HVsJ/7LrBk1s2bUzPqzvnu/dVOWXLmo+RP41rfrPx7q8o/e95uv 44uLatwhBR0Isln6
+XvxhffNmlFz47/Vl2pqGkd2ymSxtO7597oWteiL9d//6c0XARfd9OVPfXvF jJpZM2p+gGxfprzp
aINRsvjFF4OmNeNDhQdCLv38vZd+6ktZva+xtChFURSlCDTtTRbW2pGRkZMn Tx47duyNN9549dVX
9+3bd//99+/evXvfvn1RtPnz53/pS19693s/cPuXW0dG/dFRfxLLrEwzZpxV /fIrB8899z9pu1Iq
iLYrBUDNrBlfu6f9+d88s2XLlgMHDkThtbW1f/RHf3TttdfOmzfv/PPPP+ec c9761rfOnj27pqZm
xowZ1dXVnudNYrEVpSIMDw8PDQ2lUqnq6mpj0qZkIhKR+Iqtbla+kydPVldX l5Ly7Nmz3cbhw4ej
kK7nBgA0XTJ2Q/LY5u2e5ujwcKXi6LQDykSg7UpRFOU04lQ4mSiKoiiKoijK Gc4Zau2Ojx3KDYTo
yrpKZRER0XalVBptV4qiKKcTZ6rsTnuSiHNwj3+oFR2lr1QUCfWRtiulgmi7 UuJoM1CUqc+ZKrtZ
AFhmiBDBvbiYebLLpSiKoihjxCnv+DAyRVGmFGeo7I6MRICIEGdau//9haLr BSlK2Wi7UiYCbVdn
OPX19VkhWRM4KIoydYhkd2cLbazv726t7WyhZVuDwCVt/d1jnG97oL2xbseq 7MOjXMaTyPh45huf
Xtf3rndViYCd8iYwC2Jf6BYuXFi5/BQF0BehMjFou1ISUYcTRZmaJFq7A7U9 0N5Yt7p9+dhEb9Y6
lWOjIomkeemf/ut/vuftV/0/wKAIIMwCsWSMtczMbAMnk1TqjP0IoEwUr7/+ uud50TygilIRtF0p
EW5a4skuhaIohSg0gWBt6/o1PTsenz4fMN/5V/9z708/14j4osqZS2ZPYuEU RVEURVGUaYwhauks
Hq2zhRpbWhqDyAPtjRQQ/U6n0tlCje0D4T+IxW9sT68KGUvEHZqZRWZabisW PTHHrDiFEGYRsdZa
3/3xWdhaHVKpKIqiKIqiTAhGdmFje7JBe6B949Ylq5YHLiY9vfXbRTqa0dlS t7Zhl4iI9Lf1Lmts
H6htXb9m685A6Xbu3LpmfdwvJR1/O3ZsTQfuWNUvIhIrQJRFAs0dbtDjrjVb N+bLMTNOodMWEREe
9UdHfd8f9f3RUWGx1pZYa4qiKIqiKIpSFoaWbe3p688M7FlbR0RUt7ZhV9qx OxTgA/t6sWaFk8a1
revX9PT1A80rQhXcubO37da4cB7Y17skCKltXb8mCgxziRUgrfETCEzZ4XDP xByz4hSDiAgEAtz/
6hSnKIqiKIqiTAxGJNe+vKTN2aHzGJ6TaL61rXdj+8BA+8beQto5zppd0So1 RfMZaG9chl3OwL4k
T44JcYrhlssRFPXqTruvhDQWNqcrSokUd42K+WtFDLQ3ltoGo8OT0lGU8TJR 7TPmzJj1wD01Lbnk
XMo4WUVRznQKDalMpnZhA0L/joH2jVsDy3ft8lXYsWXLjob1WROf1C5s6Fm7 pTOMHkskvyNIzvOu
v69nSX0dgIHHd/SECWflmBSnMMEqOZaFiyz0lnZfCfskFZ3UUDlTSfcVRfrr 95UwzCKgtrVb26CS
l8nuYo23fQ60N1Jd3/rIMiPr++pKGoZUgMrWSSy1Ct+Mk33tFEWZSEwpAxAz ae7ob+tdRkREdTtW
9YeW6trlq7B1a8OKHMN1c8euNVuXERGtxqo1sUQQeJmUUIDmW4PYq/saIkt2 Vo6JcTJ46Z/+66IP
fWjdz/HvhgwRVVWlUqlUqjpVVVVFxnieV049KMq4ifqKAGpbW0v+uqQo05iB 9tU7VvVLR52zdzc2
Njbuu1V2Ydk4hfd0R+fqVpSpT+Rk0twR9NejjTiZgbWt3YEJIh6ztrU77i4S OyS0FXe3tqYD04lk
FSAru4aFtbHY3R0d3dGurBwT48R551/9z70//elPH3jgAdfdABGRIcQ2yyV7 UhcEtorOILylMx1F
LRhKNs0r1vSsXZ30hT67Q9ofTQfkImd+mm9vyW5jidMHKWcGLbRsqxs80xJ8 ZxzHYyq3NU50+xx4
fEfD+tbaQHyLrG/oaVhYi+Zb23p3pnV3do655Yr/7sysk5xTSKiiiLj52W1n pZYwbVd2VefWQCz1
2AGd2deuTFR5K8oUp3wnk1NJ586tkS2wohAIIENObBtjDAHGlFsbuZO6uPCe tRux3U2psoxWY7vz
Twl9bRQlorlD+lftqMvUNNEsP1GnMt2iklpRz9q+FZltLHH6IOVMoSNyh+to Hu9jqnNLeLBrjaeg
ffb3ob4O6O+DG7ZTV+8+X9YubOjdl1X4/jYE/dac2bEySt6cUSfZJ5WvivKR mVqssvJWdXYNZKQV
m4ArX8pl4JIb27GKokw0U1V2O5vBst627RPiv2oMGUOpVKq6urqquqqqqsp4 XtlOJomTugDAkqDY
zf8/e3cf38hV34v/e2Zk7yabxNtkU2BTNptk5Ate0QshCUGC3mQTUmTxu7gP qLclYAoXiTYkEhST
FBygxNAQh0STZ6m/Am4p/K7SBt1brNmQBtIHCZon+IFWEGuStpSHlBQ3u/1t Yluac35/nJnR6MHP
8lqyPu+XCNLR6MxIe3b03a++c85YzJ2eJTwWI/c7A8ClJQryS1qm4WazxVjz BRINI6p1FDlTBbnP
tp0+CPrTJk9T/pFgxhOHnpzxGRjWyJwryZ86iSggr9rxtDh7dN9R6+xYTUfu 1fymlvuI1mmFj7rp
E/Ba5wRca4TIG6A7dWvYbReMbO1FY8yZMlDekVMJAmwDLTGTCmZy+DkEuoyW KAgxQ+NruQanYzI5
o57bNqaTmXJF1p60XjtkzpXc+42zY61w5NvyptrawARcANDLujXs3mKKoiiK oqqqz6EoiqKu89NY
ZlIXgLUydCfjZs5mi8ERP2mRaHC11Z5W1Xb6IOhPGzxNNcynoSUKlVSwNGee lPEZHpP1FhOy/Co3
Ji/i95cn63UXxeysSWRn38fCy86OVT/y1qOov6mVPyL/SNDJWxu5lf42reOj dj7e9U/AtQLWaLPd
AcAW6NOwW3JPT4qiykB8nR0sM6kLwBqFh8v2dD7u4lRaopAPOJP8bDQV13b6 IOgf4bGYe1ne5k5T
zhV//qScqvVkjM9wOh9I+kOzkYJMXNs/fnqPPBgojzt/b2R7y+xYzUfu+Uxa nlrxI9ISk/bRshy5
k3F5PmHPga/3o24zAVfbngFgh2A7vgLMsqylpaWFhYUTJ04cP3782WefnZub u/POOx955JEf/OAH
jDFZY3Luued++MPXv/KXL7nxhsR2HzLsQPPz86qqDg0NbfeBwI6yg8eVnNTD Ectv+BrDPnDTzfoP
vvfo9PT0D3/4Q7dR07TXvOY1V1999YEDB/bv379v3769e/cODQ3t2bNn9+7d g4ODmDMXdoDFxcXn
nntOXqrnTZ4yxoQQ3p995D+2FxYWBgcH19Kze149duyY2/LIkyYRXXbhxgug fRt+ZU/jnAshajVL
UeywW+AaFACArhFOC5He7oMAAOioPg27iUgIwTknkmE3I8TcAADQs5A5Auh+ ijtV/6aWczH1UPt1
ANbTZ/tONseI+3xvvPvp5mZ5sbtlWZwLzrlMfuOcBQAAvQtfZABdzkcUTFUK CY1MPeQf1yMbm7JP
SxTEpkuiO9JJnamH/MlA7L1tnnrOnmSKc8EYEQnGhKinCtw6HoBOkWWUGFrQ WRhX0FrZ31TSCgDd
o15koiUmY8mpWTOxpVNln0Qyijdime+1PHW2/D/OhcKEYEyhhvTA0NDQ8ePH jx07trCwcFIOFXa+
arV6zjnn/OxnP9vuA4EdBeMK2l5Qi5w3QHdqW9ttxNkUxSiTCeRFOmzqIX9S zigacx6XJ52ryo04
mxqpFIan2dRIpZDQ7CxzkSiYSgXcLuudyAvSG3fh2a/spH4Neywv0v52e0xU GrZZ3zXuXHDBRa1W
EyQUUkhh8tc5+ez8/PwLL7xw1llnDQ7uWle3AMupVqtLS4vnnXf+dh8I7CgY VwAAPaQedpv6VCYY
rdip7mJppCKERmTE/clAXhTCMnQO6ZVCYjLGckY6HCYiI5eJTQqN3BlG69ub eshPlLIbs9GKKGhE
Rjykm+GEdxdtONewG3E2pU+03SNpDduE15WkF1wIwavVqiChMFUlpaHI5Pnn zznnl4gxzq11dAqw
PDmWMKKgszCugAjzAAL0DIWoKFcYcJfrICKiYDSiEcmVd52ltrTEZKxYrshF xORSXEaulJrwJprN
uVLQbtESkzG30dkLG8046305u2jLXs7Amba17R6bttnAm2eM2UvCyzI4uxiu ZlmKqggSggg33Dp1
o+0+ANx25A3jqs9vANBD6pdUrkd4IjU1rpt+mipFZ9b20qZCkBXX3zL10Cjl hQiTqYfG2++xzTbr
Zl90IoiYaJ1AUHCc0KBj5HDCoILOwrgCL1xJCdDlVlsOXRsOkJ1nJlOfytiZ by0Spez0dFaurNu4
fTE5bTibezqZWnZqwJZ5BivlYnDET0TmbLbodNy0x3bbrMHf337FdV9/joiE IOJCCJksEM05A9Hs
yDWn7D7FuV3zYMvzbZl3Xn7KZXeaa9sYdrrNjasj13R4LLV0iOHam076+aqr B61552XusZ1y+UZ3
Xu+242+h85q+udb+dQgAJ9+qy+WE05VUyC//BR1MVQp2xlqLRCmZDORbFhEL p/MxNsoyRMFUKkZZ
Tyd+liQimfheeZ8TqSm/nyUpGIsFncamPbbdpoHnUtBXnTpxyaf//q/ecab9 1HMKUxRFGRwcYExV
FKaoTFEYU+p5AiEEF9zTmyC69DPfffiaC4ievvvwL19z5MSdV634JoiIzv/9 vznx+0QcqSjggjOi
xkFF6xlXMrrq4Fhq6RDDtQdtelx5rHUAdO2gffruK375+pGv/H8nnMP52rWn nXrNA2t5703q3Xb8
LWw5GXkj7Q3QnXxpUWhpDKeFpx6k/XTaTa2el3iX9E0k2m9O5NmFd3eBYW25 XTY1rjrLt72BZVlL
S0sLCwsnTpw4Tm/8wMP+ubm57zDGGFMVlamKe4JqOks1pg2EIG63na8dor+s PC3ehMkDYM2EEIyx
llzU2seVZ8tOHdGKHQ6/IvilL95z0UWv7tT+YCtselxtaJ9dOWifuft//tWv ffc/r6G7L99z/aN0
ySWX0G/83//5QOr0ax/8zzvWHXivZY/drPeOGKA/rFZkcjIZuYysG9l6MtBW VEVRmKIwRVHIvrbS
xrkQnHtvRCQsLjgXR/7687/74d87yAXnonLXFaeddvppp51+2mnXHZFbHrnu tMPXXXv49NOufZAf
ue60w3dXuOCVuw83bYZb392IqH3jmsaVu+WR60477fRrj7Td7MFrG8bh3RWn t2uPtA7Clg49L+Gc
iD55022PPfbtbf/ccFv5trlxtZHzVVcO2orxV4c+/HsHzbv+51/9+rePHz/+ 4UOPHrrgoLjy2ptL
f/2gfeTNvT14rf3QPrb6rX4kRCTm7GO+4q5K/dkjduN1R7h51+HTGzbw3lo+ zGX+FNbcYZs/DgDo
Fd0Rdpt6iDE2WkrNnKS1ehRFYYypPlVVVZ9PVRSVMVIafpUTvIEQ9OgNrznj jDPOOOM3xf23X8k5
5/zB615zw8j9zz///PPPP/nHR3/zyrtNe8ujw/c9//ztV3Ih5A+UD+rOds/b L4X+Q0QtbesaVySE
efeVvynul8OozWZXjr7r8199kHPOH/zq0UvogSMm59w88gANn98yCFs7dIar c7Rf/PN7PnnTbY8+
9u2T8/nAxmx6XK33fNWdg9b8AQ2fz7n5A/q1q87jnJ8/fIkQnPPzLhg5WjE5 5+bdV77mgV970vu+
rrxdPrr/XZ+/5W6z6T3KboWgR2+4Rdz3/PPPP/nHdEPc/dDsxvvf9fnfPCMu 7pPdPHqD/mDDZ9W6
02X/FNbWYfsBAAC9ojvCbi1REEKIjS1Mv0GMMRl8EzGnDK6xtrsxpyDo4k8/ 8R/z8/8x/8TwLXvf
dM/Tgj9dOUrvGr1CcC74wfd9aPzRH5j2lmNXnee8Sggh+PnDF3/hbW+655nt zovhtp03ImptXM+4
Eg/EL3xg7Mnb5FNtNzt/+OKjlae5+NpXj459aEw8cORp/syRB8TYVee1DsLm Dt3hKu8Lsf9lL/mL
L9479anUY49/Z9s/PdyWu216XK37fNWdg1a88oKD/JnK0ZELDgrOhRAjw+cL 7rY8feSBR9/1ofh5
De/la8m9e/fu3fu2L3hGfnO3dPGn733fwZYPzW68YnTc/QCvGB2no5WnPf20 7nT5P4U1dbjMAACA
XtEdYfdJx2Rtd50iW9wNhBBCcM/NvrBGCC4OXjV28WNPmbLRsxkRNW3p3j8Y P/Lzn98r4mee+Qsf
eIg39oxbv9w8A8O9rWtcPUZ08WNPVTyvbdns4FVj9JUjz3xttjx21RVXjdFT 5jPGV2jsqoOtg7Bt
h+Q9WiJyI+/Hn/jOtn+AuLW9bXpcrfd81Z2DVtDM7EPi3AtGjlae4UJ87Y6P fOEpk4tnjK+MhK9o
3bXg4pl7fjUq/tfPf/7znz/+qYtpmffo/XyerpSX/9Ca77d7v8t9AuvosP0A 8H5zdf77EgA6p0/D
brvIxIm55UNvjYkQouV3VRKW/NnwSO6xi/0HOT/3glfSzOxDsvHeW2feGT7c uGXDfX5uLP+PUxeX
KyaHvkTtiwHWPq4ufutd+f9H/Nab7zU5X26zc698K+V+79byW688l5975VvL s3c8RW+98lxnf55B
2NJh43B1/y7sf9lLvvQX933q0/pjj39nqz4a2IRNj6v1nq+6c9AeDr9z5tZ7 zcO//9bcRWedddZs
+B+nyr911lkXPfUHtx7mcicXz9x6r+ftmE/JY+fmkdxjspOHPnCW7NjtVgh6 LHfEdN7syh+ae9/p
p3Wn6/tTaPgTWU7Ttxsib4ButuoEgn1K/rzY0ECPTb7u7Ekiootu+lb+vQcF 54env3VT5NKzz3Ya
L+eCk/vrpHyVEELwv/nQS377z4iI6J1f/rfz8LNgH3KLARqb1z2uLp/+x0rk dWfnbvrWbLzdZnTw
yv8uJv/3W+88j3Nx8Mr/Xp7832/91nmcC/p60yB8pqVDzTN0G8jI+7d/531/ eMO1F77mVVv7ScF6
dGpcred81aWD9vLpL8++5HVh8Y+z/2avj3y5vMNlQvi89371y0+9xD7ud3z5 Z7cevuamW1/3urMn
6aJ3vuMit6Sk9c5Fr3jqmrPPfly+atkPreG+e6d1p2v+U2i+vw6IvAG6VuvM UztNwwSCx48/++yz
c3Nzd9111ze+8Y25uTl3s3PPPff6669/xasuufGGRKVSeelLX/rCCy9s42HD DlOtVk8//fSFhYXt
PpC1evVr3/TTH33Xfcg5//GPf3r1O6+54fr3I/LuHj03rrba1yde+jt/7j56 x5eenT68jUdzUrzk
JS+56Wb9B9979JZbbvmXf/kXt93v91944YVXX331gQMH9u/fv2/fvr179w4N De3Zs2f37t2Dg4Oq
qm7jYQN0xOLi4nPPPefz+QYHBxWlXsEhZ1b1ljHIWuKFhYXBwcG19Dw0NCTv HDt2zG155EmTiC67
cONXIvZ1ttv982j7bw/kpKGDlslK9gb5W/Yv/uK+z/1p6t3vSX544hpE3l1i 68fV1z+8/+1frD+8
+os/6epA9rLP/PQnn/E85s0rCe1sTUHGNh4JALTVUtttxFnTUu0tTD3E4kbD KzwPnSbJ+4ScJpAx
JvfgPAzF4yG3cTktC8i3aVn9NW21xtw+n49z7vOpRAI33Dp3o+0+gPUeLZET c1uWZVnW2fvOvO+e
z9wyffeT3/7udh8ebu5tS8fV5bf8xOuWw9v/fnFrugFAz2jKdpt6rtR+qXXP JuPZqLtIPJn6VCkW
oyndDNvT/5l6aJTyQoSJyNR1g8Jhe6X2gN0q27VEIV9mUyMz6YQ2RmxqpNOT dofTlbnQ+B1v/rv3
HVh2m7Z57qGhof88fvz0M87YtWtXR48I+le1WiWiPXv2bPeBrJVMlXlj7lqt ZlnWvn1n6rd/8gN/
8IkbJz9w0Wv/63YfZr/ruXEFWworwwN0ucaw25jOjkQDlF3hBeZslqIzWuPD CRofnzUTMmyulIvu
YpOabDP18WQgL9LuGvB2+1bTEpMB9tkj79Pb/yjqxtxNwbeqqqefcUZrO8CG +Xw+6rUR1Rpz12q1
Wq121lm/8Jk//sj1f/jp3AOf3+5j7He9OK5gi3i/0ToSeSN8h47Dycobdpv6 FE0WhnPJFbZvG3Vr
GkXJjbvDY7HR0XE9Ul/8xpzNFmOT4fY9rpMRZ6OZWF6km1pSqVIy85j1AAAg AElEQVSyPOlE9kac
TY1UCgnNP/L60tzTdPicZbpbLtvdkWMFcM3Pz6uq2kNDizHmxtw/+tFPzj77 rFqt9jtXX+Nu4PP5
eujt7FQ9N65gS7kBd6eCm9emRfoJFn8t/ov/duC/T8TxDznvTCZGnOXGRJqc iLXt9vZGdght6qFx
mikkNM895wl/skgxmeFuerKhN7kvY8WdulvO0Ljfia1bWjyH5r0bY1+JvKD/ SruZTJ566il3BwcP
HnRnMtnIBwmwop4Lj8458OpnKv8oY+6LXvfme++++fDlofHfTV77/vf8X2+5 aruPDmw9N65gK8iZ
TD7zmc/ImUxk5L35mUwYY4/HKP7afk9PQkekn2AXZTqf7e65mUzcQzT1qVJq Yn0ZaXM2S9GIRkSk
RaKUnHavn9QSBSEqqdKoc01lsVxZX9fu5Zf1izKz4/5stJL2HGNDS3gslskZ RERGrv5W/K98fany
9Lr2DQBERG7M/dCD2Vum76nValOfnJi88ebtPi4AOEkQc0OnYCxJbthdKReL ST9jbDRDxaR/LVOA
GNNJ+zWMMX+ySHbU69ASM6lgJmeQFokGm55bjZYoCMkNs4tEwcbovaklPJEq TemmqU+V7H8MEFHl
+98M+C9ovxPmsZ6DA+gLbsz9uksuPPfcX3ryye+deebec8/9pb/+6te2+9AA YFkdTCimn7C/HG+L
0eNvan72v1xMj8fo2jM7tTfYydyx1OcUZ569cNoOc/MxCqaWrffwjwRLczIi N3KZYKoiXBUZY5Oh
OyG7OZuVV1dqiclYZtSTuDZ1fV1ROBFRMDpTyNOo5x8EzS1aJErZ6elsYLJe Vj5Xev0rW6NueU5a
ed5ugH428sphN+Ymoo9+JPmRG2+2LOsPPvDej338lu0+OgBoQ/6qLr/aOpJO 8mYof7i3OcKOv2bz
e4B+gWy31DJv9yq0SJSysybJqLueVJZPBTM5g8LDZTcDHsjb8Xs4LWtObOMU CZt6aDRDxeR4PG7f
WT3DHk5Xolm/dzruhhYtEqVMJjBWr0OplL8ZGF4m2W1bS8xdn4jcO/P46tY4 dTj0uaYp7bvCQw9m
j/+HKWNuInrdJRdecP7BZ5/92Vln/cLAQF8vs9X9tuZ8tZ2j1LPvTezd1EP2 i3fmmVl+l3HO5Z2O
pJO8Gcp/fp4u936bXkC/8k/0d5vfB/QHZLslH1E4Lbwl3U0Pm2kRe9KS1u20 REH+LU8Lz0QjDU83
XK3oeZxus30Dd2/1XlpbWvZh6lOl2z53D9FSU3fyD3/tU5yG7be06qWfAOvU Zkp7SnRm2p8Ou++e
W9705uilr7sofd/0dh8LrKTz56vtHKVN+7ZXaPNOSLtWLd9BO4/Mdnfw91tv hvKfniD6TXrLY/RV
IiK69kKaeZjOO69Tu4IdLv5a4QRffW292W4iLTETzfrj664ROfmMuD8ZmLxu +a+c5ebtBjhZ2k1p
35UxNxHt3//So9/9uz/9k9te82qsDN9XtnOUyvXZRNov892hUCg0NyHyNNoL 30HbooOpbmrJUH79
n+iwTHifSZcTfW2+IzuBvoBst7T+sFumDNafaDj5wmmx6nHKsvSN78Pz26e3 ct1Z7X5u4z1DPzBn
s8XYWJtBasRZKB4P2cOqZWKfehWB3dCyRUODqYc843Nn/sAOa7Cx89V2jlJz NhuYTGh28C3EZKAY
GNYoPJEquVfpN3fbsl9q6tRWcd+4WX/WsBvtA1q2qmWF9+Ludl0ddtIWZbuJ 6KtP0MEL6b8QveW1
9M9P0lPLvQygBWq7pY2E3TvMJs5QRlz++CnkbIlO1aDTOEPZTAcPFHYkd0nX ZsXSyIwQ6TAZcb8M
OYTI05RukvwnpbwAOjOlm0TGtDMQnZnrG15CicmYO5eQkcvEJlEn1Yc2cb7a tlFaKdOIn6hStueq
9Y8EiYhIGw7Ii/tNPeT2YqdZmve7zJEnp2hGCFFJUf26IqcxH8uMsnGakd0U PZPjErXdadvPdu0d
doAQJARxbk8YsEXZbpqnbxBddQG9ey+lMTMvrAey3VKfht3Cgzac8zbnSuQk gbTEZKxYrhCZc6Wg
PWu4lpiMdfSwYQdadkp754plc65EzkSdoxl7czuhN2rHSf6RYMYzyU/rS9rP ag/9ZDPnq20cpYFh
jcy5UmDY/pdiYMQvXxwY1pwlkJv+Fdm032WOPDWT0LwfhbcxPBZz31p4LEbO /F32kbfstO1nu/YO
O4ELIYSwOOdcWFyIDkXerRnKO5+k8SuI/hmpblgfZLulPg27Oeec82q1Wq3W qrWaZVlCCM4xJuDk
WuuU9rG8+8/EdJhMPTRKeXvWTtlPoiDEDI17fuBufEn7We0B1mB7R2kmZ9Rz 28Z0MlOuEJmz2UC7
sheiNvtdhTlXWstm3c6yhMVFrcarVV6riWqVc0GbD7zbZCifppn/oM89ttme od8g2y31adgt6okB
btUsy+JCCEHrPEVpwwF3iSBTn8rExsJE2nDA+QXR1KdQZAIrWsOU9tpwgBp/ LK+U5Xz4ZM5mi96+
CpVUsDRntnlJfVZ7QtTdpzZ+vtrGURoei2WmdDM8Ec36GWO5MTkRrb88KQtK tEg0uOp+217NUJQz
4S5fud7K6ad1p20/25NLBtmWxTnnMue93G+4P3rw278a+7vD7/7b9371xKrd uhnKD2boTucCyjvv
tyczaWoHWAGy3VK/ht2cCyGqS0vVarVWq9VqNSFIcL7ObsJpdzLy+ir14XQ+ lhlljLFxiqLIBFbR
Zkr7li0qKXKWg2Vxg8IT9uPxckDm85yLyPxJuVZUy0uISEtMBjKZAMq6+9Ym zlfbN0rD6Xwg6Q/N
RgoyJW4vYOxeLK8lCvmA00ncoDb7bS8YKI/bR5Nf7xQBLTtt/9meVDJ1VLOo WhXVmliqcsHbB96/
9KuveTDzK1/4jT1r6RYZSugUjCWpT8NuLjjnvFar1Wp22M3XVGMSTovGSXDr i9h72p0regqJRPP2
AK3qo8gdR40jzbtBOlx/XEinCwUZwHifbvcS2zZk4WDbdPR8tW2jNJwWYtJZ g63dBCVN/bbst36c
DXfS6ULjnr1vp+39psbGA2/z2a7aYSdZNWFxXq1aNc6rNcuy7CKTL83+8PY/ m/vol55bSydf/tgj
l73rkcve9chlH3vsvR/7FyKKv1bIaAn/xX83+V9ku6Xl59W3r9Xu6NnBiLPR UvuV51d4qumgypPu
adKIs1FqXDbBiDsX0sTkE5ZlLS19P3XZqz7yKBERHbrmk+9/yZ/dOvONb3zj sccfZ0wRgnyqOnJo
5Pobbvivrw3deMMOX08BtsX8/LyqqkNDQ9t2BKYeGqcZ/DNwZ9mCcVU/hxKR eyI9STBKN+Smm/Vv
FYufnf7j75bmmMoYMUZ0yUWvuvjii3/3Xe84cODAwE9O3P2j8774oVcMDQ3t 2bNn9+7dzz703U8r
gT95Sz3n/cOvPnYTjciWQvqRj/74vL+96eCyEQLA+rGOruUkLS4uPvfccz6f b3BwUFHqqWS5L+ZZ
D1H+q31hYWFwcHAtPbvn1WPHjrktjzxpEtFlF278FLV8tltLFDr5L3JTDzGW o3Y/Yq7wVPOG496f
70x9qhSLlTwldvWLaYSojMzZlXZ3HD71VU99aP5f//Vfjx49+vD19L2jZ3PB uRC1mlVzMt5CCL7u
IhOAnmDqIcb82egMohlYVT2P25yF3loYpZsl5I0LLr/hhBBCyGx3qrhI/7bw 7RVffuAtB8/7y8dk
tvuj3/zFT33y3JN03AD9xHeydiSX5TXimdaLxld4qoE5m6XojNb4cILGx2fN hDxRuxfTEJEm28w7
fveDI7kXbv2VhRPy6pFzfv3wobknZomImF3jTarKhBACM5nAztQHi2JDz8Mo 7QBGxIgECYUxmd37
nciBAwcO7N+/f9++fXtXefXZH/nCZR+Rd58sX/axf9nywwXoPz5ZuJEsEjX/ mmjE2dRIpZDQmgo3
/A2FHs5Wlebijo5rG3VrGkXJjbvDY7HR0XE9Us/Sm7P3f/O9119FtNDQl0wD VKs1RkwwVqsyIQR3
fvtwf1AA6BRVVQlDCzoN4wqcn8IFCXJ/Vbe/ztaTSvryxx6j37v4t1/mPD7n VM+TDaVHwVXrQQFg
GT575bDCSoFyOC1EmmSIrU8UEpMxljPS4TDZa4kJjUhr2Ca8BX8lK+ViYKw5 6iaiiDfuTouKHvKz
pCf4f/0rL2jpy563u1ZlTCVB5BOcC3cmk+0swIUdavtru2EnwrgCSVUYU8in MMFIYYwRMRLE6Euz
P9y1Z2Hw1PmBXQf/YPrVl9HPb7vm23+rDjJlgLHHLvtLIvrFT31hJEREdCL9 h4+k7f5+8VNfOPsN
7/PuAcE2QAf47JXDRlb8+1T/h24wRTKpLONuI1dKTaTbbbPFPKlvLRIl/7SR 8FxPnjD1kJ/F8yLt
J/rm958mOqfx5bKy3qeqRIogpqjesnsAAIBeoihMUZjiY4wYESmMMcYURi1F Jmd98O4DH9m9e3Bw
UP5U4vrtT17229ty6AD9RGm3clijNot+tawltu6FwTbJmE4WnWWFmT9ZpKY1 1LTETCqYyRmkRd72
+j/5P19rfj2zT0mKoigKYwpT7VMUAABAr1FVphDzqYqqMlVlTCGZ8QaArmLP ZFJfOax1Qa92i405
a4k5qxossyDZatouHrYc/4g8QCIycplgqlK/1r4iY2wydKc3czYrj0i77qPv /dzYqR/4G6ebHz/w
9aNERCSIk3MFCgmcnwAAoEfZRSYq+XxswMcGfIwxUjr5M26xaWkjANgApWXl sBZtF/3SIlHKZALO
qgarLwxm6iHG2GhG/tVtCLZXeMpLi0RJLudr5DLBhhWutUg0mMkZFB4uuxnw QN4um3nzvS98b/r7
0TNf/vKXHzp06IrP0KsOPacoClPY4ODAwIBvwDcwMDigKKQqfbp4EAAA9DRG JOfrljdFYZ0unazn
urZhEU6AncLnXi/pCKeF+1cqMKzRMvM6NTWuOvdT2w2cfa1t3ijNuXjSe4j1 3omIqOnN2C645sj8
e06cOHH8+PFnn312bm5Oxuaq6mOMkUqqohBT2PJhtxFnuTHvKj1T9WL4xucA 1qNhfoCTuzAJQGfU
J8OiDVx355xOaQsWaOsnisoURqpTKsmYICJcswSwnJ/+ZPdyT71s/8JyT23e 8vldI5dx58DuElpi
Jpr1d+L3LaYojDH7GhT5f7TS73HhsVi9etycK1FR5t3lo277nKCnODmkSqo0 uvbBva4CLYAtYuoh
5i9P1iv+Jsv+jdUgdHiBtr7jxNvCuSHmBljFvn1q622rd9ou7LaLPkqp7lst TEsUOpIPVBSFEVPk
73B2bbdQVigy8RSWm7PZQCpF5YrziBoKXgA2RhsOkDPIAHqBXDhYpP16iDHG QqFQaG5C5Gkd/36E
zrEse93lWq1WrVax7jJAF2oXaGqJghBiRyce5DpeDqdxhZlM6oXl5myWRiLD ATv7XSkXZSmOWyQv
rzcx9ZAn52OnJo04C+m6vV09Vyn/nYMrVfqckcvEnMsrWoZE4+iSpSnFpN95 vr69O4aWGWzQB4x4
4zCwEwZ6KG5QJ89U5mw2MJnQ7OBbiMlAMTCsUXgiVXJ+HGxzclvufOceqhFn Id2wt/IcfeOrVjht
LvPXIR4P2Q2m27m+k341EkJYlmVZllyYov7d1gHh9I4OCQBOmj69iFDOHDjg UFWVMbbiRd/acKBY
rhBRpUzRiBYei8l5X3KZmH1daTgtg/h8LDOlm1pisl6X4gmoisnymNyqmJw2 iIiMuF9+ZwmRp6kd
8w0Aa+XMDzBKeXfp15Yh0Ti6wmmRj8nqlHSYyIj7k4G8W6nihhGtgw36Qr0o zsiVgt6EgZ86eaaq
lGnE75wTicg/Ii+o14YD8neb1peYsoJ7tSvziskpmhFCVFKUHNdNspd1q79q hdPmsn8dSiMzQqTD
ng1mKJtpt/te19GAG2DH+vd/t1pvW73Tfg275bzdNhlyr3Ldt/1NZuQygWGN yD9C2VmzobDbTiI5
V8g1fPWlJuwvmKB9LzwWkxUF5lypHnhlinbtCvQPt7Z7ZEom3toOiabR5WXO lcj5x5+WmIy5g6hl
sEGfcIrijFwpOil/qPOUw3XwTBUY1sicK9m/+BEF5DyydkvrS8zZbDHWfsqs BkG7xNEdz3JZt3re
ffnT5vJ/Hey3b86VnDenJSZjG/uEux4ib4CVvWz/wnK3Ld1vn4bdRLLEhBqq TFbmHwmW5oy5kjyj
a5EolWfr32RrWVRoWbG8W/CCmSz6lhaJBt0QoXFInOzlqKDH2UVxRq4UjYQj USpX3Ki7s2eqTM7w
5Lank5lyRdaeOHPLbvbkZs6V5DtqXdYNp8021vGNtjYMoHM6ODJ7V/+G3UQk L/eWd1Y/VWmRKCVH
k2Rnt7XhQCaZdAq7V1xUaMVrLrXhAGVQWwKeJZ5ahsTKy1FpwwF3mVZTn3LL nqB/aZEoZcdlGK1F
oqXctFMI0skzVXhM1jxNRLN+xlhurJIqjTLmL0/KOLj1JVokGlzL6c6ZKsqc zRbr47m+rFubg3FK
w1f966ANB5y6GVOfQpHJyv0AdFZHRmZP69OwW/7x12o1eQFKrWatYUBokWiQ 6uv0hMdi5P6Yucyi
QonJQCazzDJEjnC6Yr+UMVxU2Yec38rrkxa3DIk2oys8FnMvqQynZbhjd4LU H5AWiVLRDqO1SLSU
cRLZHT1ThdP5QNIfmo0UhBAiHbYvx3dHYOtLtEQhH3Balj/bBQPlccbkumd2 Lbd8ibOs2wqnzVX/
OoTT+VhmlDHGximKIhMAOJnYev9yrr5wzMRcu1UPGresN66wVsiKyyiYa11b wbKspaWlhYWF+nI5
hfv0L33voYceeuLxxy3OGREX7FWvOnTjjTcGXhO88Ya1LN2zVlhLB6T5+XlV VYeGhrb7QGBH6dS4
2syZquE83oFFn9p+WWwNUw/5y5O9f4a+6Wb9B9979I/+6I/K5TIRyV/zL7zw wksvvfTqq68+cODA
/v379+3bt3fv3qGhoT179uzevXtwcFBVt3yKYoCttri4+Nxzz/l8vsHBQe80 0IwxIYS3skX+I31h
YWFwcHAtPbvn1WPHjrktjzxpEtFlF2789LTubPfqC8fUVz1Yy4oea1hvtm2H m1lb4ezDQggSwrJq
tZpVrdaq1aqcc2lD3S3P1KfqlygBAHSlzZ2pnKlRVjmRdyFjOlncQauduUk0 pLoButb6i0x2xMIx
gnPO+eLC0tLiwosvLiy8+KJcX6BzezD1EGP+bLT7lhwCAHD04ZmqPq33aCaW 31mzUSPyBuhy9sR5
Tg657SoJjcsSrL5wjMxJt6zoQUSVphUQ2qkvZDDnNLXtsHFtheVXdnjjHXe8 /9TD9z3j3cdRzgXn
vLq0sLCwuLj44sKLL8rlvTrzoRI5aw7trDM6AOw0XXim2uqVWewK9J7Lza8R Im+AbuYTQpARZ6PT
RkKegIrJ8qQQ6XqjXKeg4J6dtOFAMVch0iplik5o4eHY1JxJ4UouExtL13sO p0We6iV6BlExORWt
CKE17c7PkkRORaC9kEEhTKYe8hOlVurQ1XLMnn6euj34CqJPN75tuYjX4uJS Va7nZQnL4m7Y7dbx
AHSKLKPE0ILOwrgCtwJVOJNzCSEwVRtAd/IRyTk5puZMCmvUuErC1JxJYblO gecKl/BYbDRnpCmX
CYyliWiEpmbNCJWCIxMr7stZAaFpd95LZ8y5UjA14y5kkJxa27toOWby9HPd R9/9weZ+hBBC8Gq1
WrU4tyzOybI4t+zViXDdG3QcLqmErYBxBZIgIkGC29eQIdEN0J3WUNvduk7B ygvH9ApBxBiRIleK
Z4yY0qfTKQIAQE8TggQRJ7KE4J7MNwB0lbUGmvV1Cmi1hWM2o1MLGXj7ueNT n7Nbv/GJQ29/4MdE
REIILkStVqtZNc65EJwECdHpmUwAAAC2nrC/10gI4lxYQshAHAC6im/1TeqT ssbyQkbWWiQaTFLD
wjEZal0aLzwWGx31s2QsL9LNzznc2m5ZbhJO52NslGWIgqlUjLLr79De0u3n 9bfd9u7mfoiIGJGi
+HyMM8GIkaIyVV3DpwEAANBl7Gy3EIwYUT3XfWKJji+IU18UygvCGhBVVbwg xK6qGBgUqoqwHHrY
S07vyUsY1r1cTs+xnrr9Da8ofXD+1te7y+XMfeWWz8w+9NDXHn7o4ZoQTGEK Uy699HWTkx+9JHRl
Z5fLAZBQgwtbAeMKiOimm/XS//voJz7+8e987ygRESPG2OsvuSgUfP2vR68+ 55de/tKX7T/zrH1D
Q3vPOGPo1D17du3aPYDlcqDHybB75y+X03OOfPaD37r0led7m45+hykKY4o6 4BsYGBwcGBwcGFQU
pqK2GwAAepDMdgshhLzPBeq7AbrQTi2rMPWQP1mU99+be+Ga8xcWThDRD//8 uvDNR+l8TVMUhQ3u
2kVETFEUYj6fb2BgYDsPGQAAYENktM0FkRCMMUEkaKf/lg3Qg3Zqfre+IEKt du9VbvOBd9zx8MP3
3jvBmEKMqapPUX0+VVUHfIwxBb+4AQBAb5I5bi6IC8ERcgN0pZ2a7V6FojBF UQYGVMEUn6IQY4qq
KigyAQCAXuSslEOMCUGMkOsG6EZ9GnYTY0RMUVR5PSVjTGEMYTcAAPQi4ZR3 u0UmANCF+jTslhMs
CcFJKFwIRWGyImW7jwsAAGCDnC8xfJcBdKk+DbuFEJxzq2aRIlRFMCYELj8B AIDeJoiYEMR6ckZj
gJ2vf8NuIUStWmWqKhSVc0vetvu4AAAANkYIIuZE3gDQhdZdzWzEWdzwPgrp ZuNzph7yNrbdst5Y
5+m28SVtO2y/l5V94xOHDl1x+6NExDkXQlSr1aWl6tLS4uLComVZVq22ru4A AAC6BrNTSvYU3tt9
OADQYt1hd3gslsk5AbI5V6JidtZ0HwVH/KQlCqKQ0GiZULtJMFWxZ/pLtywu b2vbYb1xXV596J/+
8C+OEuecW9bi4uLS0tLS0lK1WrUsy7KQ7QYAgJ4kBBExO/gmQoU3QBda/9wd /pFgaU6GvuZsNpBK
UbniPKJoZOMLZp4cl119zU/yXxdccM6XFpcWFxcXFxZfOHGiVqtVke0GAIBe 5clwI9cN0JUUWeDh
5JCNOAvperyx0dRDnjoQLRIlmeA2Z7M0EhkO2NnvSrkYGK7npI04G81QMen3 lI9U7J5WyoGb7jZz
TlPbDt3Md9tjrvfzxjvueP+ph+97xunsnF8f3X8/55xzvrS4uLiwsLDw4uLC Qq1aq1WrnftgAQAA
ThJm/1c48wgCQDdShBAiHysmp53QuJgsjzU0GtPJQN5TB6INB4rlChFVyhSN aOGxWGnOJDJymdiY
p04knBb5mKwhsctHiskpmmndnd9b2m3E/fbeZiibaTjU1g5dLcfs6efzdP/n Grc+9Pb3EwnORbVW
rdaqS0tLC4tLKDIBAIAexRgx+V9GjJHiBOIA0FV8REThsRhNzZkU1ogomJoI NzT6R4KZ0dBIxa2k
Do/FRnNGmnKZwFiaiEZoataMUCk4MrHivoKpmYTWuruKp0TbnCsFUzNhIiIt MRlLTq3tXbQcM3n6
ue6j7/5gUz+HiP4PY8QFF5xICKtW5ZxbnMunjx07trb9AqyVqqqEoQWdhnEF Q0ND9j1GRIIRcyNu
RN4A3WYNEwhqiYJImHqIsWIsL9Jhu7zbGCnFxtIkq06mZ2dLFJ3p9sLuOsYY Yz6fykkRQhDncrl4
+WT9LAbQIfPz86qqYmhBZ2FcgSSz3YobeZN9dSUAdJW1ztutJQoVCo3LHLUW iZJ/NBlMyWspteFA
ZjRJsfzmo25tOFAcnTYS6TCZ+lSGKLX5fu741OeIPt34vKxrUZhCxLjgRBzX nwAAQI+SM5g4kbZw
U957BumM3WzvKezMU9nePWzoNLZnD9u9mw0OMlVFVA5wsq1hJhNncm1/MjBp l4NokWiQgu60JeGx
GFFDYbfb3nhJZRtubbe8GjKczscyo4wxNk7R2EY6tLd0+/ldetu7W55WFEVR lMHdu3ft3rVr165d
g7tVVfWpfbp4EAAA9DS5LKXCBGOkMPurHWE1QLdhO35Kfeup29/witIH5299 /YkTx48ff/bZZ+fm
5j772c8eOXLk4Yce4oK44FatFgyFPv7xj7/uDW+68YbEdh8y7EAoBoCtgHEF RHTTzfr3v/vo5I2T
3/nOdxkjGW8HX3/pG94Quvrqqw8cOLB///59+/bt3bt3aGhoz549u3fvHhwc lBcGAPS0xcXF5557
zufzDQ4OuqXCRMQYE0IwxrwtjLGFhYXBwcG19OyeV92LZ4aGhh550iSiyy7c eHXH+uft7jVHPvvB
b136yvMbGxVFYYwpPp9vwDfg8w0ODKiKgnMQAAD0JGcmE7KrTXZ4Qg2gR+3U sgpTD/mTRXn/vbkX
rjl/YeGE52lZZLJ71y65hK7gXPX5BgYGtuVYAQAANsPO6TWk9xB5A3SdnRp2 a4mCkMUilmUtLS0t
ND7N7JlMfG7YrSiKoiDbDQAAvYrJmUwYiroButRODbtXwRhTFEX1OW9fCEVR VHXnl9wAAMDO1lTS
CgDdo0/DbklRFHlqEsIuO9nuIwIAANisHT9ZAkCP6uewWwghBJHgdmJAoBIO AAB6FvLcAF2uf8Nu
IahWqzHGBBFzY3AAAICeJb/JEHwDdKc+DbuFEEJwy6oxpghnfkdC3A0AAL3J mzpCGgmgO7WrZjbi
9pKRzUw9ZK8oufIykaYe8m5hxFte4Kx82fhEvX8W0k33YSgeD9XXsVyGEW9+ urWlTgjOuahVq7Va
rVat1apVzgUWiAcAgN4l8LstQHdrCrtNPcRYjlpWZSciImOWZoQQQuRjmdHl A29TH89GK+mw+3Cq
FIuVpuoRsKmHRikvTw+VkTnD3bO/PClsMzRraIlCPkbB1H9sgooAACAASURB VEw6bd9JbHxdoEZC
kBC8VqtVrVq1VrUsjmw3AADsAIi8AbpWU9itJQpCpMfabxtO2GFveCxGpbll EsnmbJaiEa3h4cRE
lLKzzgsq5WJwxO/sMBEmIlMfTwbywo3VnfatIjjnXNRqllXjtZpVsyzkCAAA YGfA9xlAd9rQlHnm
XCnoiawbn2sTdUc0LeKJu8NjsWJy3Fv/Yc5mi7GxzsTZRry5CObI+0899cwP 3Penv/byT/y93cQF
t7hVrVWrS9WaxWW2GzOZAABA70J5N0CX20DYberjycDkcvUelXIxMNwcdRM1 xt1pUYlm/Q3hsZv/
3hSnfqWeNjfveONbKPfC/O3ve891b7//YTvuFoIEF5xzy7I454JzRN0AANDr EG0DdLN1h91G3J8M
5NNry0x7Ut9aJErJaTfK1hIFISqp0qgTeRfLlXUdR7vLO7Pjfm9VuWy5/20/ uOsqIiK6/Fffdv/D
jxIRHZUlJRbnFuecc05CEKJuAADoeYi8AbrW+iYQtJPJawy6yZhOFovkZ0m3 JWekw/UXa4mZVNaf
M9LpSDSYbHxuNVqiIBKNTUWiYLFcIdK8Ld/8vkl0gIiILn/3Dbd96IEf/9bP 8kREjIgLUklwZ4pT
51R17NixNR8HwJqoqkoYWtBpGFcwNDTU2ojIG6A7rSXsNuJsaqRSSFTi/my0 Ulg5NPaPBEtzJoU1
IiOXCaYqBbccxdRD/pyRDpOu++XVmeZsthiM+om0xGSMjbJ6SG/qemW9V1UG ozOFyWkW0t19BqMz
hY/cwg7f/b38e84hogP/7c30oezXXtxP9BMiIoWRYExhClOYZ32BtmcxgM2Y n59XVRVDCzoL4wpc
CLUBul+7CQTZaIaKSX/TPNmmPmU3rzh1d72I28hlGi+81CLRYCZnUHi4bPfi TwbydogcTsuaE9s4
RcKmHhrNUDE5Ho/bd1aYt9
Re: no table scrolling on celleditor activation [message #329259 is a reply to message #329253] Tue, 17 June 2008 17:18 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
be! After we shipped 3.4 I can add the fixes until then you'll need to
fix it your own.

To scroll the active cell into view before the editor is opened you can
install a listener on ColumnViewerEditor and do what the 1 patch in
227421 does. If you read the comment I removed the scrolling before
committing the patch!

For cell-navigation I think you can work around this problem by
installing your own navigation strategy and do some something similar.

Tom

Niels Lippke schrieb:
> Hi Tom,
>
> I am running the jface-snippets from cvs-head against jface-pluging
> (also from cvs-head) and the latest swt-3.4RC3
> still having the same problem: I can "walk" horizontally around with my
> cursor and out of visible area. Same with tabbing and celleditor.
>
> The ComboBoxCellEditor-part is a direct consequence of failed scrolling,
> as the popup comes up next to my shell (see screenshot) ;)
> I use the setActivationStyle-Method. The other way does not work.
> I have attached a modification of Snippet024.
>
> Thanks, Niels
>
> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
> news:g37v21$cjn$1@build.eclipse.org...
>> Hi Niels,
>>
>> The things you describe are known issues. The bugs in with information
>> this are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>
>> Do you by the way talk about vertical or horizontal scrolling
>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>> IIRC). The above patch 1 holds the code to scroll horizontally by
>> tabing and maybe could be used to get the horizontal scrolling feature.
>>
>> Can you give me an example for the ComboBoxCellEditor problem? How do
>> you create the CellEditor? Is it possible that you are passing it to
>> the constructor instead of to ComboBoxCellEditor#setActivationStyle(int)?
>>
>> Tom
>>
>> Niels Lippke schrieb:
>>> Hi all,
>>>
>>> The table editing facility as proposed in
>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>> the neither the cursor nor the editor scroll into view on focussing a
>>> cell.
>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>
>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>
>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>
>>> but that doesn't work well in combination with the celleditor.
>>>
>>> Can anyone help?
>>>
>>> Thanks,
>>>
>>> Niels
>>>
>>> BTW: There's also an interesting effect, if you activate a
>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>> not currently not visible...
>>>
>>
>>
>> --
>> B e s t S o l u t i o n . at
>> ------------------------------------------------------------ --------
>> Tom Schindl JFace-Committer
>> ------------------------------------------------------------ --------
>
> ------------------------------------------------------------ ------------
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: no table scrolling on celleditor activation [message #329265 is a reply to message #329259] Tue, 17 June 2008 17:42 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Niels you can find a sample implementation now here:
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.s nippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippet s/viewers/Snippet058CellNavigationIn34.java?view=markup

I only tested on OS-X.

Tom

Tom Schindl schrieb:
> Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
> be! After we shipped 3.4 I can add the fixes until then you'll need to
> fix it your own.
>
> To scroll the active cell into view before the editor is opened you can
> install a listener on ColumnViewerEditor and do what the 1 patch in
> 227421 does. If you read the comment I removed the scrolling before
> committing the patch!
>
> For cell-navigation I think you can work around this problem by
> installing your own navigation strategy and do some something similar.
>
> Tom
>
> Niels Lippke schrieb:
>> Hi Tom,
>>
>> I am running the jface-snippets from cvs-head against jface-pluging
>> (also from cvs-head) and the latest swt-3.4RC3
>> still having the same problem: I can "walk" horizontally around with
>> my cursor and out of visible area. Same with tabbing and celleditor.
>>
>> The ComboBoxCellEditor-part is a direct consequence of failed
>> scrolling, as the popup comes up next to my shell (see screenshot) ;)
>> I use the setActivationStyle-Method. The other way does not work.
>> I have attached a modification of Snippet024.
>>
>> Thanks, Niels
>>
>> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
>> news:g37v21$cjn$1@build.eclipse.org...
>>> Hi Niels,
>>>
>>> The things you describe are known issues. The bugs in with
>>> information this are:
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>>
>>> Do you by the way talk about vertical or horizontal scrolling
>>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>>> IIRC). The above patch 1 holds the code to scroll horizontally by
>>> tabing and maybe could be used to get the horizontal scrolling feature.
>>>
>>> Can you give me an example for the ComboBoxCellEditor problem? How do
>>> you create the CellEditor? Is it possible that you are passing it to
>>> the constructor instead of to
>>> ComboBoxCellEditor#setActivationStyle(int)?
>>>
>>> Tom
>>>
>>> Niels Lippke schrieb:
>>>> Hi all,
>>>>
>>>> The table editing facility as proposed in
>>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>>> the neither the cursor nor the editor scroll into view on focussing
>>>> a cell.
>>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>>
>>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>>
>>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>>
>>>> but that doesn't work well in combination with the celleditor.
>>>>
>>>> Can anyone help?
>>>>
>>>> Thanks,
>>>>
>>>> Niels
>>>>
>>>> BTW: There's also an interesting effect, if you activate a
>>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>>> not currently not visible...
>>>>
>>>
>>>
>>> --
>>> B e s t S o l u t i o n . at
>>> ------------------------------------------------------------ --------
>>> Tom Schindl JFace-Committer
>>> ------------------------------------------------------------ --------
>>
>> ------------------------------------------------------------ ------------
>>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: no table scrolling on celleditor activation [message #329275 is a reply to message #329265] Wed, 18 June 2008 06:13 Go to previous message
Eclipse UserFriend
Originally posted by: niels.lippke.airpas.com

Works also fine on Vista.

Thanks, Niels


"Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
news:g38t21$jn$1@build.eclipse.org...
> Niels you can find a sample implementation now here:
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.s nippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippet s/viewers/Snippet058CellNavigationIn34.java?view=markup
>
> I only tested on OS-X.
>
> Tom
>
> Tom Schindl schrieb:
>> Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
>> be! After we shipped 3.4 I can add the fixes until then you'll need to
>> fix it your own.
>>
>> To scroll the active cell into view before the editor is opened you can
>> install a listener on ColumnViewerEditor and do what the 1 patch in
>> 227421 does. If you read the comment I removed the scrolling before
>> committing the patch!
>>
>> For cell-navigation I think you can work around this problem by
>> installing your own navigation strategy and do some something similar.
>>
>> Tom
>>
>> Niels Lippke schrieb:
>>> Hi Tom,
>>>
>>> I am running the jface-snippets from cvs-head against jface-pluging
>>> (also from cvs-head) and the latest swt-3.4RC3
>>> still having the same problem: I can "walk" horizontally around with my
>>> cursor and out of visible area. Same with tabbing and celleditor.
>>>
>>> The ComboBoxCellEditor-part is a direct consequence of failed scrolling,
>>> as the popup comes up next to my shell (see screenshot) ;)
>>> I use the setActivationStyle-Method. The other way does not work.
>>> I have attached a modification of Snippet024.
>>>
>>> Thanks, Niels
>>>
>>> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
>>> news:g37v21$cjn$1@build.eclipse.org...
>>>> Hi Niels,
>>>>
>>>> The things you describe are known issues. The bugs in with information
>>>> this are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>>>
>>>> Do you by the way talk about vertical or horizontal scrolling
>>>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>>>> IIRC). The above patch 1 holds the code to scroll horizontally by
>>>> tabing and maybe could be used to get the horizontal scrolling feature.
>>>>
>>>> Can you give me an example for the ComboBoxCellEditor problem? How do
>>>> you create the CellEditor? Is it possible that you are passing it to
>>>> the constructor instead of to
>>>> ComboBoxCellEditor#setActivationStyle(int)?
>>>>
>>>> Tom
>>>>
>>>> Niels Lippke schrieb:
>>>>> Hi all,
>>>>>
>>>>> The table editing facility as proposed in
>>>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>>>> the neither the cursor nor the editor scroll into view on focussing a
>>>>> cell.
>>>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>>>
>>>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>>>
>>>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>>>
>>>>> but that doesn't work well in combination with the celleditor.
>>>>>
>>>>> Can anyone help?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Niels
>>>>>
>>>>> BTW: There's also an interesting effect, if you activate a
>>>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>>>> not currently not visible...
>>>>>
>>>>
>>>>
>>>> --
>>>> B e s t S o l u t i o n . at
>>>> ------------------------------------------------------------ --------
>>>> Tom Schindl JFace-Committer
>>>> ------------------------------------------------------------ --------
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>
>
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
Previous Topic:dispose menu and menu items
Next Topic:A custom CellNavigationStrategy (to be used in SWTFocusCellManager)
Goto Forum:
  


Current Time: Sat Jul 27 18:27:04 GMT 2024

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

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

Back to the top