Home » Modeling » GMF (Graphical Modeling Framework) » Error : "Figure must be a child" in refreshBounds() of XXXLabelEditPart
Error : "Figure must be a child" in refreshBounds() of XXXLabelEditPart [message #169712] |
Thu, 24 January 2008 15:22 |
Guillaume Gauffre Messages: 65 Registered: July 2009 |
Member |
|
|
This is a multi-part message in MIME format.
--------------090006070401090707040002
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi,
I've just generated a new editor for which each node has some child
nodes. These children are ports used to connect each node with a connection.
It works great. I have an older editor which also works but in the new
one, if I add a "Feature Label Mapping" in gmfmap model, it generates an
EditPart (in my editor "UserNAmeEditPart") for this label with a
function refreshBounds() which causes an error. I attach the src
UserNameEditPart.java and the parent src UserEditPart, and a capture of
the gmfmap model.
I don't have this function in the older version.
I currently use GMF v2.0.1 20071003
Here is the error log :
--
java.lang.IllegalArgumentException: Figure must be a child
at org.eclipse.draw2d.Figure.setConstraint(Figure.java:1458)
at
org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBordere dShapeEditPart.setLayoutConstraint(AbstractBorderedShapeEdit Part.java:67)
at
fr.irit.guideme.asur.asur.diagram.edit.parts.UserNameEditPar t.refreshBounds(UserNameEditPart.java:550)
at
fr.irit.guideme.asur.asur.diagram.edit.parts.UserNameEditPar t.refreshVisuals(UserNameEditPart.java:409)
at
fr.irit.guideme.asur.asur.diagram.edit.parts.UserNameEditPar t.setLabel(UserNameEditPart.java:172)
at
fr.irit.guideme.asur.asur.diagram.edit.parts.UserEditPart.ad dFixedChild(UserEditPart.java:125)
at
fr.irit.guideme.asur.asur.diagram.edit.parts.UserEditPart.ad dChildVisual(UserEditPart.java:170)
at
org.eclipse.gef.editparts.AbstractEditPart.addChild(Abstract EditPart.java:197)
And the exception is thrown in Figure class, during the
setConstraint(IFigure child, Object constraint) function:
child.getParent() = UserEditPart$UserFigure and this = DefaultSizeNodeFigure
Does anybody understand why this error occurs ?
Thanks for your help.
Guillaume
--------------090006070401090707040002
Content-Type: text/plain;
name="UserEditPart.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="UserEditPart.java"
package fr.irit.guideme.asur.asur.diagram.edit.parts;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.draw2d.FreeformLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.PositionConstants;
import org.eclipse.draw2d.RoundedRectangle;
import org.eclipse.draw2d.StackLayout;
import org.eclipse.draw2d.XYLayout;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
import org.eclipse.gef.editpolicies.ResizableEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBordere dShapeEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEdit Part;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditP art;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSe lectionEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEdit Policy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEdit Policy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRo les;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableSha peEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEdit Policy;
import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator ;
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
import org.eclipse.gmf.runtime.draw2d.ui.render.factory.RenderedIma geFactory;
import org.eclipse.gmf.runtime.draw2d.ui.render.figures.ScalableIma geFigure;
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure ;
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
import org.eclipse.gmf.runtime.notation.View;
import fr.irit.guideme.asur.asur.diagram.edit.policies.UserCanonica lEditPolicy;
import fr.irit.guideme.asur.asur.diagram.edit.policies.UserItemSema nticEditPolicy;
import fr.irit.guideme.asur.asur.diagram.part.AsurVisualIDRegistry;
import fr.irit.guideme.asur.asur.provider.AsurEditPlugin;
/**
* @generated
*/
public class UserEditPart extends AbstractBorderedShapeEditPart {
/**
* @generated
*/
public static final int VISUAL_ID = 2007;
/**
* @generated
*/
protected IFigure contentPane;
/**
* @generated
*/
protected IFigure primaryShape;
/**
* @generated
*/
public UserEditPart(View view) {
super(view);
}
/**
* @generated
*/
protected void createDefaultEditPolicies() {
installEditPolicy(EditPolicyRoles.CREATION_ROLE,
new CreationEditPolicy());
super.createDefaultEditPolicies();
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
new UserItemSemanticEditPolicy());
installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
new DragDropEditPolicy());
installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
new UserCanonicalEditPolicy());
installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
// XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
// removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpoli cies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
}
/**
* @generated
*/
protected LayoutEditPolicy createLayoutEditPolicy() {
XYLayoutEditPolicy lep = new XYLayoutEditPolicy() {
protected EditPolicy createChildEditPolicy(EditPart child) {
if (child instanceof IBorderItemEditPart) {
return new BorderItemSelectionEditPolicy();
}
EditPolicy result = super.createChildEditPolicy(child);
if (result == null) {
return new ResizableShapeEditPolicy();
}
return result;
}
};
return lep;
}
/**
* @generated
*/
protected IFigure createNodeShape() {
UserFigure figure = new UserFigure();
figure.setUseLocalCoordinates(true);
return primaryShape = figure;
}
/**
* @generated
*/
public UserFigure getPrimaryShape() {
return (UserFigure) primaryShape;
}
/**
* @generated
*/
protected boolean addFixedChild(EditPart childEditPart) {
if (childEditPart instanceof UserNameEditPart) {
((UserNameEditPart) childEditPart).setLabel(getPrimaryShape()
.getFigureUserNameFigure());
return true;
}
if (childEditPart instanceof SensingMechanismEditPart) {
BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
PositionConstants.NONE);
getBorderedFigure().getBorderItemContainer().add(
((SensingMechanismEditPart) childEditPart).getFigure(),
locator);
return true;
}
if (childEditPart instanceof ModificationMethodEditPart) {
BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
PositionConstants.NONE);
getBorderedFigure().getBorderItemContainer().add(
((ModificationMethodEditPart) childEditPart).getFigure(),
locator);
return true;
}
return false;
}
/**
* @generated
*/
protected boolean removeFixedChild(EditPart childEditPart) {
if (childEditPart instanceof SensingMechanismEditPart) {
getBorderedFigure().getBorderItemContainer().remove(
((SensingMechanismEditPart) childEditPart).getFigure());
return true;
}
if (childEditPart instanceof ModificationMethodEditPart) {
getBorderedFigure().getBorderItemContainer().remove(
((ModificationMethodEditPart) childEditPart).getFigure());
return true;
}
return false;
}
/**
* @generated
*/
protected void addChildVisual(EditPart childEditPart, int index) {
if (addFixedChild(childEditPart)) {
return;
}
super.addChildVisual(childEditPart, -1);
}
/**
* @generated
*/
protected void removeChildVisual(EditPart childEditPart) {
if (removeFixedChild(childEditPart)) {
return;
}
super.removeChildVisual(childEditPart);
}
/**
* @generated
*/
protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
if (editPart instanceof SensingMechanismEditPart) {
return getBorderedFigure().getBorderItemContainer();
}
if (editPart instanceof ModificationMethodEditPart) {
return getBorderedFigure().getBorderItemContainer();
}
return super.getContentPaneFor(editPart);
}
/**
* @generated
*/
protected NodeFigure createNodePlate() {
DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode()
.DPtoLP(60), getMapMode().DPtoLP(60));
return result;
}
/**
* @generated
*/
public EditPolicy getPrimaryDragEditPolicy() {
EditPolicy result = super.getPrimaryDragEditPolicy();
if (result instanceof ResizableEditPolicy) {
ResizableEditPolicy ep = (ResizableEditPolicy) result;
ep.setResizeDirections(PositionConstants.NONE);
}
return result;
}
/**
* Creates figure for this edit part.
*
* Body of this method does not depend on settings in generation model
* so you may safely remove <i>generated</i> tag and modify it.
*
* @generated
*/
protected NodeFigure createMainFigure() {
NodeFigure figure = createNodePlate();
figure.setLayoutManager(new StackLayout());
IFigure shape = createNodeShape();
figure.add(shape);
contentPane = setupContentPane(shape);
return figure;
}
/**
* Default implementation treats passed figure as content pane.
* Respects layout one may have set for generated figure.
* @param nodeShape instance of generated figure class
* @generated
*/
protected IFigure setupContentPane(IFigure nodeShape) {
if (nodeShape.getLayoutManager() == null) {
nodeShape.setLayoutManager(new FreeformLayout() {
public Object getConstraint(IFigure figure) {
Object result = constraints.get(figure);
if (result == null) {
result = new Rectangle(0, 0, -1, -1);
}
return result;
}
});
}
return nodeShape; // use nodeShape itself as contentPane
}
/**
* @generated
*/
public IFigure getContentPane() {
if (contentPane != null) {
return contentPane;
}
return super.getContentPane();
}
/**
* @generated
*/
public EditPart getPrimaryChildEditPart() {
return getChildBySemanticHint(AsurVisualIDRegistry
.getType(UserNameEditPart.VISUAL_ID));
}
/**
* @generated
*/
public class UserFigure extends RoundedRectangle {
/**
* @generated
*/
private WrappingLabel fFigureUserNameFigure;
/**
* @generated
*/
private ScalableImageFigure fFigureUserImage;
/**
* @generated
*/
public UserFigure() {
this.setLayoutManager(new XYLayout());
this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(24),
getMapMode().DPtoLP(24)));
this.setPreferredSize(new Dimension(getMapMode().DPtoLP(60),
getMapMode().DPtoLP(60)));
createContents();
}
/**
* @generated NOT
*/
private void createContents() {
fFigureUserNameFigure = new WrappingLabel();
fFigureUserNameFigure.setText("<...>");
this.add(fFigureUserNameFigure);
fFigureUserImage = new ScalableImageFigure(RenderedImageFactory
.getInstance(FileLocator.find(AsurEditPlugin.getPlugin()
.getBundle(),
new Path("icons/full/obj32/User.gif"), null)),
true, true, true);
this.add(fFigureUserImage, new Rectangle(getMapMode().DPtoLP(14),
getMapMode().DPtoLP(26), getMapMode().DPtoLP(32),
getMapMode().DPtoLP(32)));
}
/**
* @generated
*/
private boolean myUseLocalCoordinates = false;
/**
* @generated
*/
protected boolean useLocalCoordinates() {
return myUseLocalCoordinates;
}
/**
* @generated
*/
protected void setUseLocalCoordinates(boolean useLocalCoordinates) {
myUseLocalCoordinates = useLocalCoordinates;
}
/**
* @generated
*/
public WrappingLabel getFigureUserNameFigure() {
return fFigureUserNameFigure;
}
/**
* @generated
*/
public ScalableImageFigure getFigureUserImage() {
return fFigureUserImage;
}
}
}
--------------090006070401090707040002
Content-Type: text/plain;
name="UserNameEditPart.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="UserNameEditPart.java"
package fr.irit.guideme.asur.asur.diagram.edit.parts;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.transaction.RunnableWithResult;
import org.eclipse.gef.AccessibleEditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
import org.eclipse.gef.handles.NonResizableHandleKit;
import org.eclipse.gef.requests.DirectEditRequest;
import org.eclipse.gef.tools.DirectEditManager;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEdi tStatus;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEdit Status;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOpti ons;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserServ ice;
import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEdit Part;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditP art;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditP art;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectE ditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry ;
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants ;
import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManag er;
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticPars er;
import org.eclipse.gmf.runtime.notation.FontStyle;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor ;
import org.eclipse.jface.viewers.ICellEditorValidator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.AccessibleEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Image;
import fr.irit.guideme.asur.asur.diagram.edit.policies.AsurTextSele ctionEditPolicy;
import fr.irit.guideme.asur.asur.diagram.providers.AsurElementTypes ;
import fr.irit.guideme.asur.asur.diagram.providers.AsurParserProvid er;
/**
* @generated
*/
public class UserNameEditPart extends CompartmentEditPart implements
ITextAwareEditPart {
/**
* @generated
*/
public static final int VISUAL_ID = 5014;
/**
* @generated
*/
private DirectEditManager manager;
/**
* @generated
*/
private IParser parser;
/**
* @generated
*/
private List parserElements;
/**
* @generated
*/
private String defaultText;
/**
* @generated
*/
public UserNameEditPart(View view) {
super(view);
}
/**
* @generated
*/
protected void createDefaultEditPolicies() {
super.createDefaultEditPolicies();
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
new LabelDirectEditPolicy());
installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
new NonResizableEditPolicy() {
protected List createSelectionHandles() {
List handles = new ArrayList();
NonResizableHandleKit.addMoveHandle(
(GraphicalEditPart) getHost(), handles);
return handles;
}
public Command getCommand(Request request) {
return null;
}
public boolean understandsRequest(Request request) {
return false;
}
});
}
/**
* @generated
*/
protected String getLabelTextHelper(IFigure figure) {
if (figure instanceof WrappingLabel) {
return ((WrappingLabel) figure).getText();
} else {
return ((Label) figure).getText();
}
}
/**
* @generated
*/
protected void setLabelTextHelper(IFigure figure, String text) {
if (figure instanceof WrappingLabel) {
((WrappingLabel) figure).setText(text);
} else {
((Label) figure).setText(text);
}
}
/**
* @generated
*/
protected Image getLabelIconHelper(IFigure figure) {
if (figure instanceof WrappingLabel) {
return ((WrappingLabel) figure).getIcon();
} else {
return ((Label) figure).getIcon();
}
}
/**
* @generated
*/
protected void setLabelIconHelper(IFigure figure, Image icon) {
if (figure instanceof WrappingLabel) {
((WrappingLabel) figure).setIcon(icon);
} else {
((Label) figure).setIcon(icon);
}
}
/**
* @generated
*/
public void setLabel(WrappingLabel figure) {
unregisterVisuals();
setFigure(figure);
defaultText = getLabelTextHelper(figure);
registerVisuals();
refreshVisuals();
}
/**
* @generated
*/
protected List getModelChildren() {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
return null;
}
/**
* @generated
*/
protected EObject getParserElement() {
return resolveSemanticElement();
}
/**
* @generated
*/
protected Image getLabelIcon() {
EObject parserElement = getParserElement();
if (parserElement == null) {
return null;
}
return AsurElementTypes.getImage(parserElement.eClass());
}
/**
* @generated
*/
protected String getLabelText() {
String text = null;
EObject parserElement = getParserElement();
if (parserElement != null && getParser() != null) {
text = getParser().getPrintString(
new EObjectAdapter(parserElement),
getParserOptions().intValue());
}
if (text == null || text.length() == 0) {
text = defaultText;
}
return text;
}
/**
* @generated
*/
public void setLabelText(String text) {
setLabelTextHelper(getFigure(), text);
Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
if (pdEditPolicy instanceof AsurTextSelectionEditPolicy) {
((AsurTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
}
}
/**
* @generated
*/
public String getEditText() {
if (getParserElement() == null || getParser() == null) {
return ""; //$NON-NLS-1$
}
return getParser().getEditString(
new EObjectAdapter(getParserElement()),
getParserOptions().intValue());
}
/**
* @generated
*/
protected boolean isEditable() {
return getParser() != null;
}
/**
* @generated
*/
public ICellEditorValidator getEditTextValidator() {
return new ICellEditorValidator() {
public String isValid(final Object value) {
if (value instanceof String) {
final EObject element = getParserElement();
final IParser parser = getParser();
try {
IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
.runExclusive(new RunnableWithResult.Impl() {
public void run() {
setResult(parser.isValidEditString(
new EObjectAdapter(element),
(String) value));
}
});
return valid.getCode() == ParserEditStatus.EDITABLE ? null
: valid.getMessage();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
// shouldn't get here
return null;
}
};
}
/**
* @generated
*/
public IContentAssistProcessor getCompletionProcessor() {
if (getParserElement() == null || getParser() == null) {
return null;
}
return getParser().getCompletionProcessor(
new EObjectAdapter(getParserElement()));
}
/**
* @generated
*/
public ParserOptions getParserOptions() {
return ParserOptions.NONE;
}
/**
* @generated
*/
public IParser getParser() {
if (parser == null) {
String parserHint = ((View) getModel()).getType();
IAdaptable hintAdapter = new AsurParserProvider.HintAdapter(
AsurElementTypes.User_2007, getParserElement(), parserHint);
parser = ParserService.getInstance().getParser(hintAdapter);
}
return parser;
}
/**
* @generated
*/
protected DirectEditManager getManager() {
if (manager == null) {
setManager(new TextDirectEditManager(this, TextDirectEditManager
.getTextCellEditorClass(this), AsurEditPartFactory
.getTextCellEditorLocator(this)));
}
return manager;
}
/**
* @generated
*/
protected void setManager(DirectEditManager manager) {
this.manager = manager;
}
/**
* @generated
*/
protected void performDirectEdit() {
getManager().show();
}
/**
* @generated
*/
protected void performDirectEdit(Point eventLocation) {
if (getManager().getClass() == TextDirectEditManager.class) {
((TextDirectEditManager) getManager()).show(eventLocation
.getSWTPoint());
}
}
/**
* @generated
*/
private void performDirectEdit(char initialCharacter) {
if (getManager() instanceof TextDirectEditManager) {
((TextDirectEditManager) getManager()).show(initialCharacter);
} else {
performDirectEdit();
}
}
/**
* @generated
*/
protected void performDirectEditRequest(Request request) {
final Request theRequest = request;
try {
getEditingDomain().runExclusive(new Runnable() {
public void run() {
if (isActive() && isEditable()) {
if (theRequest
.getExtendedData()
.get(
RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
Character initialChar = (Character) theRequest
.getExtendedData()
.get(
RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
performDirectEdit(initialChar.charValue());
} else if ((theRequest instanceof DirectEditRequest)
&& (getEditText().equals(getLabelText()))) {
DirectEditRequest editRequest = (DirectEditRequest) theRequest;
performDirectEdit(editRequest.getLocation());
} else {
performDirectEdit();
}
}
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* @generated
*/
protected void refreshVisuals() {
super.refreshVisuals();
refreshLabel();
refreshFont();
refreshFontColor();
refreshUnderline();
refreshStrikeThrough();
refreshBounds();
}
/**
* @generated
*/
protected void refreshLabel() {
setLabelTextHelper(getFigure(), getLabelText());
setLabelIconHelper(getFigure(), getLabelIcon());
Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
if (pdEditPolicy instanceof AsurTextSelectionEditPolicy) {
((AsurTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
}
}
/**
* @generated
*/
protected void refreshUnderline() {
FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
NotationPackage.eINSTANCE.getFontStyle());
if (style != null && getFigure() instanceof WrappingLabel) {
((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
}
}
/**
* @generated
*/
protected void refreshStrikeThrough() {
FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
NotationPackage.eINSTANCE.getFontStyle());
if (style != null && getFigure() instanceof WrappingLabel) {
((WrappingLabel) getFigure()).setTextStrikeThrough(style
.isStrikeThrough());
}
}
/**
* @generated
*/
protected void refreshFont() {
FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
NotationPackage.eINSTANCE.getFontStyle());
if (style != null) {
FontData fontData = new FontData(style.getFontName(), style
.getFontHeight(), (style.isBold() ? SWT.BOLD : SWT.NORMAL)
| (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
setFont(fontData);
}
}
/**
* @generated
*/
protected void setFontColor(Color color) {
getFigure().setForegroundColor(color);
}
/**
* @generated
*/
protected void addSemanticListeners() {
if (getParser() instanceof ISemanticParser) {
EObject element = resolveSemanticElement();
parserElements = ((ISemanticParser) getParser())
.getSemanticElementsBeingParsed(element);
for (int i = 0; i < parserElements.size(); i++) {
addListenerFilter(
"SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
}
} else {
super.addSemanticListeners();
}
}
/**
* @generated
*/
protected void removeSemanticListeners() {
if (parserElements != null) {
for (int i = 0; i < parserElements.size(); i++) {
removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
}
} else {
super.removeSemanticListeners();
}
}
/**
* @generated
*/
protected AccessibleEditPart getAccessibleEditPart() {
if (accessibleEP == null) {
accessibleEP = new AccessibleGraphicalEditPart() {
public void getName(AccessibleEvent e) {
e.result = getLabelTextHelper(getFigure());
}
};
}
return accessibleEP;
}
/**
* @generated
*/
private View getFontStyleOwnerView() {
return getPrimaryView();
}
/**
* @generated
*/
protected void addNotationalListeners() {
super.addNotationalListeners();
addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
}
/**
* @generated
*/
protected void removeNotationalListeners() {
super.removeNotationalListeners();
removeListenerFilter("PrimaryView"); //$NON-NLS-1$
}
/**
* @generated
*/
protected void refreshBounds() {
int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
.getSize_Width())).intValue();
int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
.getSize_Height())).intValue();
Dimension size = new Dimension(width, height);
int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
.getLocation_X())).intValue();
int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
.getLocation_Y())).intValue();
Point loc = new Point(x, y);
((GraphicalEditPart) getParent()).setLayoutConstraint(this,
getFigure(), new Rectangle(loc, size));
}
/**
* @generated
*/
protected void handleNotificationEvent(Notification event) {
Object feature = event.getFeature();
if (NotationPackage.eINSTANCE.getSize_Width().equals(feature)
|| NotationPackage.eINSTANCE.getSize_Height().equals(feature)
|| NotationPackage.eINSTANCE.getLocation_X().equals(feature)
|| NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) {
refreshBounds();
}
if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(f eature)) {
Integer c = (Integer) event.getNewValue();
setFontColor(DiagramColorRegistry.getInstance().getColor(c)) ;
} else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
feature)) {
refreshUnderline();
} else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
.equals(feature)) {
refreshStrikeThrough();
} else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
feature)
|| NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
feature)
|| NotationPackage.eINSTANCE.getFontStyle_Bold()
.equals(feature)
|| NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
feature)) {
refreshFont();
} else {
if (getParser() != null
&& getParser().isAffectingEvent(event,
getParserOptions().intValue())) {
refreshLabel();
}
if (getParser() instanceof ISemanticParser) {
ISemanticParser modelParser = (ISemanticParser) getParser();
if (modelParser.areSemanticElementsAffected(null, event)) {
removeSemanticListeners();
if (resolveSemanticElement() != null) {
addSemanticListeners();
}
refreshLabel();
}
}
}
super.handleNotificationEvent(event);
}
/**
* @generated
*/
protected IFigure createFigure() {
// Parent should assign one using setLabel() method
return null;
}
}
--------------090006070401090707040002
Content-Type: image/png;
name="gmfmap.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="gmfmap.png"
iVBORw0KGgoAAAANSUhEUgAAAdQAAAFbCAYAAABswX9hAAAACXBIWXMAAAsT AAALEwEAmpwY
AAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UP VkLY8LGXbIEA
IiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotV XDjuH9yntX16
7+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ 5svCZwXFAADw
A3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgU AMgYALBTs2QK
AJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWB UiwCwMIAoKxA
Ii4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDS v+CpX3CFuEgB
AMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwA ABr50cH+OD+Q
5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2up WwDaVgBo3/ld
M9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe /tt68ABxmkCZ
rcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5 uVKRRCHJleIS
6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0 Mnn3AACTv/mP
QCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZE QAwkwDwQQgbk
gBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkE QcgIE2EhOogR
Yo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ 28ggMor8irxH
MZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqO Y4DRMQ5mjNlh
XIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQ R1hMWEOoJewj
tBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQO yZLkTgohJZAy
SQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrF iOJMCaIkUqSU
Eko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8uk LaPV0JppZ2n3
aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUym BdOXmchUMNcy
G5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZG VbNQ46kJ1Bar
1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXx WELWclYD6yxr
mE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57 LQMtPy2x1mqt
Zq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+ 02PreekJ9cr1
Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEcto upHEaKPRSaMn
uCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TM zMgs3KzYrMns
jjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ 1lzrLOtt1lds
UBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl 9m32zx3MHBId
1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22n iqdun3rLleUa
7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC 85DnL152Xlle
+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+ 1n6Zfgf8nvs7
+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIM CQ1ZH3KTb8AX
8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yI uB9pGZkX+X0U
KSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4 qriBeIf4RfGX
EnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8 OIWYEpeyP+WD
IEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1 xjMJT1IreZEZ
krkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuT h8r35CP5c/Pb
FWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz 2Lh4WfHgIr9F
uxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0 lamUycturvRa
uWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3r SOuk626s91m/
r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj 9nqdf13LVv2t
q7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7d uEd3T8Wej3ul
ewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+m fHvjUOihzsPc
w83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWP V56gnSg98fnk
gpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw 9CL3Ytslt0ut
Pa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bs G7duJt0cuCW6
9fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmH nv6U/9OH4dJH
zEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL +YvPv655qfNy
76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7n fP78L/eE8/sl
0p8zAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAA dTAAAOpgAAA6
mAAAF2+SX8VGAAAxv0lEQVR42uydfZwdVX3/P7MPyUKIRoGggqgBhL4kkJan AGqyqNFfBaya
WgVU5EHkQaXSGEAlCWkTkFKggpjGYAoIFiNqU36GIE2CjQQCiBLaIogi4SGA BMjTZrO7t39s
7mZ2Mg/nzJyZO3Pv+/163dfunTtzzpkzM+dzPmdmzter1Wo1VZzxJ83VI7dc JAAAgEbRYbPy
rFmzNGPGjFQZzZo1K3GdNGmvWLFi6O+kSZM4ogAAUH5BTSumJtubCG4Y5837 paYe2Kvz5v1S
j1gIqud5kiS/QQ9blhXP89QEgwAAAJBAm2uXWSRTr7xXUw/s1SO7TdHUA3s1 9cp7S1fBiCkA
AILq3KG6YsWKFRp/0lyN37hUj+w2RV88fFBUx29cqvEnzR0aBjYRu7orDXOS nucNfcKWmS6P
+z3pNwAAwKGGEhSPoIDU8wj+rTP+pLlDw7x1MZU0JKr14d/xJ8114i7rH385 bZfH/V4X8voH
AACqiVfUU75JDzTZPPC0YsWKnUT1Ww+M0PiNS7XosRG69qxjEh9Q8jvSuP/D HG3wvqvJctvt
AAAAh5o7kyZN0iO3XDQ0zFsX00d2m6JHbrnIydO+OEcAAMhNUMtyD7XOoguO 1qLHdjjTRRcc
nSodBBMAALJS2HuoeTnca886RufN+6WuPesYp+lG3Qetu9cwMY5anjYfAACo Dh4zJVlWWMQ9
Tlf3PrmHCgBQTSr9Hmqdqk876H/iGTEFAMChAgAA4FCr7FABAAAqJahlBaEH AIBGw5AvAABA
0Q61rE4QhwoAADhUAACAJqDQiR2KdKSm5fS8B1WrHbb9//AJFqra5yjiNZw8 YshCc5wbAAiq
A5EqApfByuuiGjVhg6mouBThqADoeTWCYYEAaJTj9zfPAAdR4QRd13dR+QC0 Arw24xPVtPgn
0K/yZPpJ4eeaSRhd1VczjWiUtZ4BmlJQyzY5fplENa5RMQ1GHtYwx80nnBSs 3GR5lv3wL0/a
32ADa1svSevb7EPQTaYpR9T+mOxnUj25OK+S6t5U9LPkUz9/EVZAUCvgULMG K89bVIMh4GyC
kadJNyrkXFw5XO1H0nphMWdN6yVsv2z2yS+kpvVisr9RoxRpj1Pa42FT90Xn 418PYYVmp7L3
UE2G1urlDf6NT/Ow0u2jq3tyNuuEiUOWfNKm52Kf4uou70Y+boQhTHxsxS5N 3acR1az5BAUZ
AIfa5O97lk1MXQtzkisy+S3JVblez8U+xbkjF+WwLWNW1xa1vet9cZkPwR8A QS25Q20VMXX9
kFBSWiZDqK4cZBFu1VTAinarWV17Uc47Sz5Rw+0AzUgl30N17ZaT3kN1JYRZ g5EnpRslhHHl
SMoj6j6i7f5mKU/Ufcw0+1Sv+zRp+Nf3r2uyPJi/bR0lbW+6L0GXmFc+YXkB NDvMlNSISqeh
Ac49gKaDuXwBAABwqAAAADhUAACA1hTUsuJS6Ok0AABAGhjyBQAAKNqhtsJD SWnSMplTNutc
ugAAgENt/kocJpIPRKx1+NB/VDkAQIsLapkmdnBVLhfByk1fqC9KUHnXkHoF gOKp9OT4rsqV
NVj54OwxD8ZOX2iyjl94iw4sHjaLk8s8ixAjgnIDQCPhHioUQp5i00z3pbnH DoBDrbRDLaP4
RDkek7mBTdaPys//Ny4Nk/lfg8vj5o2N29bGXZuKVdx8tcG6sHWgWfKJmhcY AHColXGoeQQr
z8O9FBlY3C8AaYJwx03WnyXodpoIJgTlBoDc2+hWf8o36YEm0weezO6Pmt1D jXIwwcbXZHmY
mCXlF/Z/koM2LaPtdnH1Y/JbsC6SXH3U6ECSW3WVj+l+AQAOtbQOtVnJGnTa xjkWtT9pnBtB
uQEgb7iH6sLmDw1bJr82E7dOlHi4LGdc3lVpuIPO2abccXXqUryy5MM9VIAW ENRmfA/VtcP1
vAdzd2dBYXEZWNxWGMLSTpNnms5DUsDwMPGNqzeCcgNApvafmZLcOdSkRrlq TjCN23UlCGUS
FkQOAEzgHqoj55h0b6xM9yHLLNLcNwQAHCoAAAAOFYcKAACQhQ6qIF+hb8RD XKMOOJfKB2s2
PX4dlQCQAYZ8mxAEFRBUgOJhyLdk5QqbAjHsdRKmpQMAwKFC2oO1/R3XpOkL caiAQwXAoba8
Q/WLZ56TRLRCg98MArHp8esS9wMhBCgHTD1YwnL5hdRkQn2bhjaNe930+HW5 ud48046rE3+e
YcvKsF9F1w0A4FCb7B7qjmHdupAGnaqNex11wLnDPlAM1DUADhWHWoFy1WqH DYmqC/ca5tbi
XFzQOdW/B//GpZdX+UzyCSurf/uwtIJu32R5MN24MkeVO+iek/YzqewIPQAO tdLlMv2b1oUm
CZP/42/s659ggxu33CS/oKiEpWfjrJPKlyWfrHnHLbcpc1JZTPIKS9N13QAA DrWh5TL9G3Sh
dWHNKg5JDtBkedr80qaX9wNIYU7bVR3kickDSq6OAQDkKKjNGr6tauUyfX3G VmjDhnKz4uIh
KJNyuBrKzKMOXIqpyZBxcJiYYV6AYrAa8sWh5l8u/8NIwe/1/4Pr5O16mjWf ZhWauP3CrQLg
UFumXGmDbNs2uGEPqsTdA/S7HtN7cVH5xDXySemblDuLUNrmHbc8bT5pt8m7 bgAgof1mpqTW
ciiQ3vWaDJO7Tr/ofQSA9PCUbwuWC8oj0vUPnSAAHCrgUKGJBB4AcKiUCwAA GgoBxnEaAADg
AIZ8AQAAHMCQbwuWCwAAcKgAAAClhIkdCnakpuX0R5KJmuwhS1/I87zY7aN+ T9rOtgxZ9wMg
r2ugVcvCfhYkqEw9mK0stkPAdVGNEjZb4TIR4jQnvE36rdaAVL2BSnNs8yx3 WCes0R0z18eA
Oq+uMHMPtfQN5oNOTjz/J460J6k/fdvpE6smYK0m1qbnju350iy4FlPqPP99 yes6xqFWRFTT
TIZvMqwbPEHDtsl68oXlE9bLjSuPv1xR60VdcEnrmzrqtOlGlc22zEnpu6pH m/pIuz/+8phs
4/8tuH0wnTR1Z7tuVJ2F7WfY92Be1HmxdR61HIdawnJ5nrfTJ6y8cQHGXTvV tK4y2GPO2uMO
nuzBCyRsveDFk5Sef3lY+ePSiDqWwf23TTdLmeP2xVU9Rp0fYeewi2OQdB6m Pe/S1l2W45V0
rfjXTzrnqPPi6ty/3JVjxaE2YDjCJMD4zmkepjIT5/hMT1bTh69cnPwmaTTy Pk0eQ1Jh9Rhc
Fvc9yhW4GC1Jsy9xD841qv5d7Cd1Xmyd247O4FArTtnFNOiS4nrDcSes6/VM 3bmJQ2tUfbq+
j+aqd257X77Iusxad2mdWt77SZ3ns5/+UaisEGC8icW0EQ8ImQyhuuyt5t0z LrphKsqtunT/
ptu47hjY3ncs8hooyzlBnZsJqat64j3UErvlpPdQ0wqcbQ8wTdDzqHsXSW7Q 1Xpx69umETYs
5Cpdm31MytOmDLbrJJXDtIE1rZO0nUGbunOdd5r9DDoj6jz/Og+rd2cdHWZK AoCy06zvLZd5
v3hX3B7uobZguQCqIjYu728BdZ57/eFQAQAAcKg4QQAAqJ6gQuOEnk4DAEC5 YcgXAACgaIfK
kG+1HGrU1Ie26wAAAA61tQ/uMJF8IGKtw4f+41QAAMCh4lATGIyruvOncQIP zdlxoyzsJw4V
mvbCSw79ZrZO+rBTadYvKqhxUe/bNXPQaFd16CKduMnkqfPGnf84VBxqUzlU iHLu+TUmUWGs
CBqd/75Q58XsC04Zh4pDTelQwwJU2wQN9v+WNAdnWDDjLIHGkwIVpwm6bOpE 4lxAo4JGp63f
qDKYltfkWCTlYRKomzovps7zGjnCoeJQC3Gopn+LFW27AMM2Ab6TeteuAhVH /W4TVioqegVB
ownU3cx1XoaITDhUqKRDjXOPcW42zg1G9XqjetFxve40ZUmzXVz9mDacUfWQ VG9p9s9mpMGm
bGH7nvUY2bhPG1dKnbuv86S2AoeKQ236cpWBRgUkznN/0vTQCRpd/H5S5/ns J5Pq41Cb3J26
iYsZ1SPO6grjerRJTtBVnq4calidmrilrPXjqj6ybOf6WCSVJ6tDpc7d1bnJ +Y5DxQk2Xbk8
78HQj2t35r/You5jRa2fJc+wnnLYhW+bZ1w+Jr39YL5x9WN6jzbv8qc5pi7z TrOfcceaOs+n
zoOOGHCoONSUEe/LvM9Z73GmSb/q9dOsx52yAQ4Vh+rMOSb1Hst0H7LMjXWV 7w8RNJo6Bxwq
AAAADhWHylO+AAAIKgAAAFjBkC8AAEDRDpWh1eYoFwAA4FABAABKSYet45ox Y0YpnWAZymXi
SE3L6Z9fN24C8NQ9qZTzcbp8DYAZVlqk1x4xG08zHfus10WaGbk4Bvkeg9wF tYxiWrZyxZXF
dgi4LqpRwmYrXCZCnOakShPImffzytGI2HZ4sjTCWaZzzEuA0u5j0YHpOQbV aEO4h1r6BvPB
zBek7WTgaXARjq0qAgZKfY64HmlxmQbHgGOQ9TrHoVZEVJPCq6XpwUUFIo4a GnJxcsb1QuPK
kzawuMn6po46bbq2Qc9N6iwsHVf1GBbLNSqwtmlg+WDaUcEVbI5V2jSC6WTd R9vg4EnXFceg
8ccgLqA6DrUBvZvgJ6y8NkHBXU1kb+sqs4ZJMwnonLReWKSLLAGibQKcRwUN t003S5lNA01n
qUcXox82AbbDfksbSNv2fLMZRTE9f10dS45BeY5BmpB2ONQCh1WC5Q3+jU/z MJWZOMdnc+GY
1KeLYVeTNBp5jyavOKBJ+xfVsDRbXdjsYxmG+TkGXkPr3rQ9wKFWgLKLaVRP NazXaDpRv4v1
TN15XLmLCiydxz6apN+o/UvrwBp5brdqEIlWPwY2QQ6sBBWHWi0xbcQDQiZD qC57xHm71TII
T575mrr/VhASm3vpZS0fxyAfITWte95DLbFbTnoPNa3A2VyYaUTZP3QTds/D JJ+s68Wtb5tG
2LCPq3Rt9jEpT5syFFnOLOlFpRX10IirY2Czj0mjKTZ1ZDusyzFwfwzSHIeh 7ZgpCQCgHPB+
drXhHioAAICLDhEOFQAAAIeKQwUAgOoJKtBpAACAcBjyBQAAKNqhMuRbrX2M mvrQdh0AAMCh
tvbBHSaSD0SsdfjQf5wKAAA4VBxqAoNxVXf+NE7gwUX9NdvogsvIRnmccxwD rnMcaks3wsmh
38zWCQ9fZnP62KzvOrCyizJlbWCy7ktYeKtmCxKd9XhEpccxaNwxwKHiUNnH FiHPCz+vnjpB
ost73nAMWtut4lBxqMYONSyIsE1gX/9vSXN9RjmBtEGM45YnzXdsOxdyWNDj NPsSlXdYmdMG
ic6Shot9DMvf5DiYnmMcg8Yeg7xGlnCouDcn+2j6t+heqE0AX5sA30k9+azB vJPSswldlSY6
RZr6CytzXHqm9WJSJpN6tNnHsPwJ1N1cx6AqoQJxqFC4Q43rCce52Tg3GNZ7 jXPCcT31NGVJ
s11c/ZjUnU3ZspbZxGnZ5m0zcpEUrSSufrMcH5v/OQb5HIOk6wGHikMFB2QN GFyGoMdhDVNZ
e+AE6uYYNPoY2ATqxqFCKS/gKAdos05Ur9V1D9ukF+ui956HQw2r0zC34HJf bNxRHi7I1JFl
qd88HCrHoLhjEHY9NDM41BYa+g37uHZn/ospuDxp/Sx5hvWEwy5s2zzj8kly ATbr29RfmjKb
HAuTMuV5jriso7SBujkGbusozTMFOFRoeodatWE10+Wu0odqnAcAOFQcauoe aVLvsJXvadk0
zq1w/wcAcKgAAAA4VBwqAAC0nKACAABAOAz5AgAAFO1QGfIFAADAoQIAAORG x6O/vi/1xued
f6GuvfoyahEAABBUSXrXoUdZb+gfZk2zPQAAQNMJqiRlcaoutgcAAKgyvDYD AABQhKAePGEi
tQQAAJBFUBFTAACAjIKKmAIAAGQUVMQUAADAgaCueXgVNQMAAJBVUBFVAAAA R4KKqAIAADgS
VEQVAADAkaACAAAAggoAAFAIHVL2eKLEIwUAgFbHmzx5MvFQAQAAsgpqswQY xyUDAEAj6Wim
nZn6Vx8qbdkW/WRJruXLO/2y5VvWcrQq1D8ADyUBAAAgqAAAAE0jqJ7nUYuQ iahgDM0cpCGv
fSOwBUDj6DARSdfPLXmeNyzN4Pe8Gpe8Z306eMJEqzzC1o9LI036QYqY+apR +ZaxHPVjZnvs
GnkeA4AjQc1L3OLIMz9/45OlUSsKl+Wrp1X0fjcq3zKWI2u+VThnASDGocY5 yzgRjPo9bHl9
Wa1WGybiceu6FGB/rz/Y8Pobsaj14kQ7S0NqmneWRtZ0P+OWu6x3k3xclsPl /gfTMDmXkvI0
FdO47YPb+svj3yauTHmfCwBNL6h1gQsTtbhh2qjvUY43SpCj0nQ9RBzlXKP+ D343WZ6HM8kj
/bjG17XDt61Pk+9V2f/gtlnSzlK2pHPdpC4AwNChRolX0gNIZXxAycR5xDV6 jXzII89GzHQ/
Xe9/2vRcl8P1/reC8CCqACkENYokV1jGSZdMhtLiGs1G33tzMcSbtp5c52tT 70UfhyL2v8oU
fT4CVJHUr81U0a02yl3l0dA3Yj/L8kpG3uWw2f+gK3XpUoP3PMvaQQWACIca 9QBQ1L1V//ew
38OW+5f500nKw2WjYNJQhT3EYbq+acNj8zBMmvTT1EdYfi7yjKv3uHxcl6MR +5/22IXV2ZqH
VyWWzbUY80ASgIHRbKbJ8ZnLl7l8gfoHaBRMPQgAAICgAgAAIKjOKPtwLwAA ND8dzRCYGzEF
AIBG4y249Rc1qgEAACAb3EMFAABwQMfTj91NLQAAAGTEW/PwKoZ8AQAAMsKQ LwAAAIIKAABQ
Dobm8l37zPNatfphagQAACCNoPqFlPc5d2bRT5ZQN9SHU/zX3IwZM6iQjPjf pZ94xATts/eb
qBTan4bgzZw5s0bjGH3wqBvqIw8x/cY3vkFl5MDs2bMRV9qixgkqT/kiHtRH sWL6ta9dTGUU
wD/8wxyElTapMYL6wKrvSD09UleXpC6pa4y6NEbq2v7RGKmrS11dYyR1af8x r3CgWvTEfXLp
F2LXHzflO1RahJhedNGFVEbBzJ17GaJKW60z5szRdy/OtzO7I8B4T48mnLpQ h75+pNZt3brT
inuNHKmfr/xvjT98P0nSqlXPa/8xz3NEW5D+AU9/+ZXVob89vuSLenLpFxDV CGoD/VRCwVw4
fZouu/wKaXX+bvXPJ7xn6P9fPfwLKr9EbO3pCwjsFfruxdPyEdQede3I+LH/ 0cYl/6HNq36p
XSceo90+dLx0yARJg6PDnqSJE9+kVavUdKKKO02uj/6aF7n+iFG7a7+Djtbv ENWd3OlXp12g
gYGBYb+dOf3bam9vU5vnqa2tXe0dntrbOtTR0ab2jnZ1dHSoo71dHZ3tg3/b 23TB6R+mUi35
6rQLJEnfvOJKTZR7UfULaXAZwpofU//qQ0Zt9u+eXKe+3g363ZPrtN+4vbYL 7Gv5OdSenu09
aEkbl9yhMU+v1b6HHKbXnl6rV5bcoYFDDpVqkudJnjzVaq196/WOp3bVT+99 XFtfe1EjX7en
3rnvWH38yLfpHR3PNv2+99U8DfgO/5+f/S/61fWfl6eaRozaXZI07qCJevSO c/WuD1/HVb+d
oJhK0hGHH6gjJxys/r5+9ff36/nnXtAb3jhG2/r6tK2/TwN9A+rvH1DfwIAG Bgb0+6efD02n
FTj+hI8M/f8fi39q/Jufv7vgb/WPV17lVFSDYtpb69UIb8Sw3xHV4vn0nEul HqlP27Stt0ed
B03S1+9Zrb/XEZp+/WW6/Gz3t192DPlud6gDNWnzqpV6y8tdGtCL2lU1Pfv4 /6o2bXDsuU2e
PEkDknpyqoiDJ0zUmodXGS8vmjO/+7C2de2uuZ8+Ru8/5C2DAvvQ05rzw9U6 7QPjNXH3l0tx
QuVVX339nga2K+ph587Xg9edOfjdk8ZOOE91rf31b46u/L66FdSdh3tXP/CY Xv3TRnltntra
PLW1d6jj2RfV1t6m9vY2tbe3D37a2tTR0SbJC02nVVi2bJkkqbu7W//+09sl SSd+5GPDlifV
z1f+9kv6p6v+2Ymo1sXUL6J+Ma0vbxZRbXTbbJPPTRdfMuROv37Pai2d/Vn9 4fk1+vx1q9X5
rvfp6/es1q3jjtfxZ5+jrq6RWnTVVe4d6kBtQKPVqY1vGqnRXa/Txp7XNLr3 9YONpOcNCqon
LV/2ex38plcid9pP2Rs6G/7xl9vk7banVs/9mCRp3StbtNeYXfThv3irdh/d pQtu+IUmfnLv
xJOiynWzLeBQh/6vG6ftI8K7jdrF6AIp07kSvGBdNhRhznLCIQfo78786ND3 +37zpI46ZFz0
+Tf/x6HpjHnDHsO+v7L+pULrbcwb9hiWZ/B7HsLa3d09TGTj6jnI+V8+T1df c60zp+oXUZPl
NtdDfVnwvAz+HncdNXObnMR+4/bSwHLpD+vW6KyrLtDts25T77bNenXzS/rk txbrmmmD74J/
6pJp6ugaPSTEaerPdw91R5v4+ktn69WfLdbzq1Zqt4nHasz/O0EDtZpUq6nd G2wvk9xpXo1S
I3nglTdo4bL/1JPXniJJOvai2/WxY96pW5es1MTDJuja047S1tdelLS3Ud2E XQhVoL9/8DPx
y/O16poz1d8vfW3BCt39m99KklZdc6ZqnrTrriON0ivzueKyLFHOaeVDj6tN 0kDbju87JgVt
G+qptCWk8/Kf1g0TNP/3oh34y39a59xJ3/6jf1N3d/eQgAaFtLu7W7f/6N+M 8/3SF8/WP3/r
+tSiGnbfNEivtmmEOofWj3OpWc59k+2asU2O44w5V0iSvnvxNM2ZfIROv+Z+ /XTmbdqt6/Xa
KKmzfYT+8fRx+sr81ZrbfYRuvfSKzPU3bMj34bvu1W/a2tTW3qaOg46TDjpO XSNHqOOFAXW8
vEYd7e166IEn1NbWpp4e+wHfeiH8hYlya0kuLuz34LK4nl2axvKhP7ysQ3b3 9I6xu+lz1/+X
3rnvWF1wwsH60dKVTpxR2P5EHUSTejNxxWnqY9tAm/pqNf3X1Wdo4pfn67+u PkOzTnuvLtV7
VatJ/bUBqeZpl932TtUwZD0/4urSJm2T9W16/mHOqa+vX8f+xQFD3++5/3/0 3iP/LDKNFff+
KtKBBZcPDAxojz3frJdefG7oryTtseebh9YJW+ZfHrd+MN037r7X0DpJ+cUt j2PRD28dJqp+
MV30w1ut7y+fd+5Zuva6eZmdaq+2DTrS7eIZ/J51KNN/Lvr/Zukopr3ObK9J 27TjymZD/Qne
T1/yDW3ZslG1A45Tb/9mbeyRfvbfi3X4Ww7VgPr09VNG6as33qcfjTsxc/0N G/Kd8IGjtf+o
dskbfDip76XH1bnHAZI81VTTqlW/1RFHHqAFix7V+w/qSS0cJoIR1xsw2S4s H5e9soXL1uiJ
b50sSbp3XU1XvXc//f6FjU6ckEk5w9YPq5e4+kpbH9sGPPX313yOtaZL//UX Qw71nn86XffO
GRyCHPOus50Pv5o0Pibnm8m5Z3POJR27sMZ+a+823b1yjWoaHPmpSbp75ZrI fdva228lqHXh
emHdMxoYGNDYvfbWC+ueGSZq9e9hy+PW96fr377+PS6/4HIXD1qlTeOcs8/U t6+f72T4t+5I
R6hzSFSLIOuQrs11ZnMdpLlukjTClpsuna2PfOkceQM1vbrpJXW2j9ARbzlU ix64Te8+8Ght
HehVf790/NnnaPSeoxKdalzbsNNrM+3e4MBSz0uP6bffO1nv/Nz31bXHOwcH nGo1dXpm7jSq
V+JK0NL2WrKI6uiu4b3N/fYarXk/HxSRo/bfQ4efO0/X/e3HpU2/c7I/Yb3S rPvvgr4+T/2+
p7z7azV97TPv1tdq75G82pDYnjD3KS2+6G3a76SlhR7nqG2S7ivlTa1/56HI nq29et+xBw99
//nKNcO+B/n5ygdD05GksXvtGBFY9+wfh9bz/x9Wjvr3qOX+dP3LTdON2n7s Xntr3bN/tKrD
vznpMzu50/rwb3d3t/7tlhtTHZuzP3+arv+XG6xE9VcP/2Jo2NcvoH5RDa6f drQqzBVlEVDT
aybPoWHT69QFnSNH6vIpR+nkK1bp+nP3U7/6deyBR+vmZT/U+458jwYGPF0z bYb2G7eXPn3J
pbrp0ktS7ctODyW1e9JA/zb99nsn68hPfEH3f+9k/flXHxjsPnuDDyQN3kHt yjymn4U06Qft
uW0aE/Z9o5a0Sc+u36TvfP44HX7uPH3ig8fokN09HXr2PF1+1vFa8d/P6cNv y+7EXK7vmt5a
m+pt512Xn6bj/u4G3XX5aXroij13Wvd95y/U3VdPSS2qtsfItG4aUYfhDrVX P/35fYPvo9Vq
GrXLqMHvkQ61N9KJPbf2D6F5RTnX4Peo5f50TdY32b6+bK+37Bu6ThifOuXU YWIafCipLqq3
3rww1fE564xTNe+7C1M71bqomg7zmrZTRbjbqFseWdrLMrVhnbvstv3ck77w rd9pzhmv09aB
Xh13xHt0853/rv6BE4beT7UVU3/d7PTaTJvn6VdXHq0j3/1W6dk7dOS736r7 v3m4Dpv+4ODv
8tTTo1Jh24tKe//hz3Z9QcdPOlxXLH5UJx62r34442S9Y+xu+uqJ4yVJNyz7 rV6/60hJm512
HMr2AEF/vyd/23nn3NP00BVj9ZcX3zJ8vQ0rNXLXEZp8xjTddf0HdNBn78p0 LKv+IEWYEPb2
9Okj7z9q6PvPVjw87HuQu5Y/ZDzk60pQ/cv33necnvnjk6nT9W8vSc/88Unt ve846+Ha7u5u
ff/GG4b+9wttluHjM0/7jObfcKOxqPpdal1Uo9ZzcZ27HOEzTSvr/dpG8+k5 l+rWSweDJtxx
7kd0/NnnaPq8D0re9hsttRP1sy99xEn97eRQ2+rvPIw+wLfa04PLa1K7PM04 a5JmzVuhqRO7
nIhF2MkS99BJ3HZphlJs+OsD+/TIpj1195pn9MzLW3Y0FG/cRZ86qC9VGWxP 2LhH5U2WR+Vr
Wid9Axp86tvHyy/3SVtfCF2/q32LtvbWUg9x2ZTbtC5N6sqkLHaCuvNQ7Suv btApX/zmsGXf
X7TUOh3T5U//4XHtve+4Yd/rv4ctj1s/Kt2n//D40O9R27/17QeEpmkipJJ0 08L5Q9vctHD+
0PK4ejDl9FNP1oKF308tqrZiWpRw2V4ztue7zbWa9Tq1IfgaTHuXdM3xg2nW Xamr+huaHP/v
v7NcF152vg59/Uj9/nsf1ovrdjx1t+deb9Y7PneHfr7yUb3/2HcNLXchqmWD qQeT6+OHC6ep
rzY4/P/mN47QG0Z3asyoDq27/+7tawx2yk65+GINbHpKt/zz93XEuXe3bB3W px783Gc+Vdoy
vm3cgXrqycc44X1878Zbref+ZS7f8rfZUy+cpkWXXZFLWTr8Xy678Ort/713 +FpPSbr/cknS
gpv/Y2jxhIPeLuntHNEW469PDT8Z9z3ya0P/33v1cRrY9JRuvPJmHX3+f1Jp DpxTq5evaD57
yif0rzffZjWpPiJabj4959LcxHSYoH79C5OpbXAKYhoUrPLOwfu7365p2TmC Yxvgk6ZKkm66
ZVEuk+pDsYTNgpSbQwVwBUJaLUGFeE7+5Mf0/R/cXkgIOKguCCpAQRALtdqc 9InBJ0Fvue2n
0vZwwIgrIKgAOFRIySennjD0/w8WLUZcYQhv5syZNaoBIH8+8bG/pBKamNtu //9UQqsLav21
GQAAAEhPG1UAAADgwKHWajUcKgCUlrBwbQBlpEOSHv31fdQEAJSORT9ZMvQ/ 7RSUHYZ8AQAA
EFQAAAAEFQCgUKochgwqLKgHT5g47MOJDwBlF0jaDWgksTMlBeOTVjm4MwAA QEMcalKP0N8T
DHOycQ43av2odOmJAkCatipqhC2uPWnkyBw0sUONO1HrbjXoXP3fw5bHrR/8 DUcMAHH425S4
9sN0hC2ufQLIJKj+HppLoYvq+cWlG3fhAACYtjN5bQdgfA/Vda8SACBPMQ06 TdonyJu2Mpz4
Nic67hQAimoXcKvgzKHanMxhvbuw5XHrR6WLgAJAlnbJ9HfT9gkgDK9Wq9Xy mCMzjx4j7hSg
tVj0kyVavny5li1bxly+UHqYKQkAAMCVQ501axY1AQClpO5Qaaeg9II6efJk 4qECAAC4cKhU
AwCUlUd/fZ/edehRVASUHu6hAgAAIKgAAAAIamXxPC/X9QEgHd3d3bRNtE3N K6ie5w37lPVg
cmIBVJsVK1YM+0vb5C4/F2Uoez1XxqHWarWhj78CeR4KAFwxc+ZMTZ48WTNn zqRtguYV1OAJ
XD9x/SdwXE8x+Jvp9mHbpRkSSSqXyXIAyI8FCxZo8uTJ2meffTR58mQtWLCA timntslkf6Lq
IthxsU237G1uae6hhvUUPc8btjxYif5lcT3N+rKw37P0YJPKi6gC5MuKFSvU 3d2ttWvXap99
9tH++++vffbZR2vXrlV3d7fx8C9tk7mYBvc7Lu1gXWTZn7B6Klub21GWC8O2 IsJO4jKUCxEF
KIb6A0h1Z7r//vtL0tBf//DvsmXLaJsclSNMJKPSDhNTvzi6KF+Z2txSONS4 3l4R27tM178+
92EA8mPZsmWaOXOmli9frrVr1+qJJ56QJD3xxBNau3atli9frpkzZ2YWU9om hbrFKFdcdD2V
qc0t3KHaDAFUnVbaV4BGMGnSJC1btkwLFizQ2rVrJWlo+NdWSGmb7EQs7l5o Utp5Dc82+hh2
FHXwTIYA0la6q4MTNW5vuk88KQjQGE4//XR1d3dr8uTJQ5Pp0zala5vC0vbf L82j3UtbT2Vr
c3Mf8o2z41E37qOWJ534wXWjtjHdPi7duH0yKS8AuKU+/Gv62gxtU3TbZLPP pmlHbZO1nsp0
i62j7BcJjg8ATJg0adKwv7RNgKCG9JQAAEzI8gASbRNk7mSteXgVZwUAAEBW QSUeKgCUGeKh
QlUg2gwAAIADOqgCAKgSy392eartdh+7v8Yf9nEqEJpfUBvxQm7WPJm4AaB4 evs6NPbYL1tv
10/VQdUFNeql6CSRihOrepr+38OWIYAAkNQ2RbUjcW2XycQHNm1U2HZp2s64 9aNe87Ets+0y
0/IjqIbYVCKCBwBx9PR1SpI+NW2+JOnOy0/TLp1tuvK2u7Wxp1frN27VSxt6 9OJrWyRJL23Y
ovUbe/TovPOtm7wo8bNZbiLscRMsuGhrg3mERcRxbTyC0WhwqA1wr/7Kj+vR +V2s/69pbyxu
Ki2b3hwAFMuW3pHDvo/s8NTR4Wn6Se/fcZ2GNfARjX5cO+KyrQsTmCLEJiyP pFFA27a2FcWz
YYIaJk5hPSZXbjWuNxY3HVbUcHPccgAoWFC3jRguqJ1t6mz3NPumu7S5t0+v be7V+k09+tOG
HknSyxt6tH7TVr22uVebfjw9c9sVNX9sHvPK2qYXN3wLTSKoeR3UuF4WYgfQ nGwOONQRnW1q
9zzNOvWDPofqG85UPRh1zbodMRmKjeqw27q1KJEuoq01DRKAQJdAUBsBBx6g OenpG3SoD377
8/WLXZ4nXbJwqV7d0qsXX92sda9s1nPrN0uSXtqwWc/efIHkSSMaUN66WEUN kwbbrEaYgbR5
m+4bgtpEwknPCqB52NbXrjt/sFh3+padOOUIfbb74Mhtnnr6OY0etYt2ffPu DemAB9MPPk2c
Z/5xt7Fcu/VGdQhaSlDDxvWTbv77f08z7JF0j8MmHmDUPRIAKJ7p53w0dPmF 85fEPuW74UfT
rfMyeZ3F5JUZm/YqKf8somqSDsO7JRbUpAMXt8z2UXLbbZNiIDaiJwsAxZB0 jWdpf2zaOdN1
srS1acuXpo5M9g1BBQAoMZed+aGW2M8oN0tnH0EFAACHThQa2NkhHioAAIAD QSUeKgCUGeKh
QlUgHioAAIADuIcKAJWCeKiAoCbAe08AYALxUKFlBTWPeKhp805Kz3Q2EQAA gIY41EbGQ0Ug
AZqLIuOhApROUG3ca1w81LgwcC4iO8TlaVMGQigB5IfLeKgAlRNUF/FQ44Zj 0zjPLPFSTcqA
MwbISVALjIcKUDpBLTqSg40TdeGqcaEAxeE6HipApQS1kUQFH08rrggnQGOp WjxUQFDB0K0i
sADFkkc8VIDKCKqLeKg28fxMXGbUPduoPF2XAQDSUWQ8VIBSCarLeKi2MQPT /JaUZ5r4fwgv
AACCCgBQCVolHiqUFybHBwAAcADxUAEAAFwIKvFQAaDMEA8VqgJDvgAAAA7g oSQAqBTEQwUE
NQEmSQAAE4iHCi0rqHnEQyXOKQAAtKRDzSMeKgIJ0JoQDxVaWlBt3GtcPFTb NIlzCtB8EA8V
WlpQXcRDTeNwiXMK0ISCSjxUaGVBzUN0iHMK0JoQDxVaWlCLEmninAI0P8RD BQS1QjCUC1Be
iIcKLS2oLuKhmrpM4pwCNDfEQ4WWFVSX8VDTphm2nDinAABQOYcKAJA3xEOF RsPk+AAAAA4g
HioAAIALQSUeKgCUGeKhQlVgyBcAAABBBQAAQFABAACahtLFQ41Lh9u9AOC6 bSpTwIu49jJs
gpyk8tJuNpmgphVQAIBWxGSectreFhZUk95Y1KT2UTFNo0KuBf+myQcAqsEN 35iQuM5psx+O
FZwosYoKOxncNk274tI5hrWLNrGcifNcMUE1GaqIil0aF9PUZJgjSXgBoLr0 9LXp9FkLI39f
MONUJ04xrB0Ka2fi2rUsRiNuvvFg+lF5mrSDacNfQoGCGtdLs1meNr+4fBBV gOqyqbcj0+9x
LtV1bGVTF2gyH3lc20Wb1uSCanPi5NFjiuut2Ua0AYDysKG3Q7Va5/ZruX5x S/IG/27oTdfE
EVsZKieojXCLwXySwsgBQLkd6gXnnB35e1eHWROXVzsQd38W4UVQnbpTk3sF YeubxFNNyocH
kgCqz5Xz7imkfcrartmKcFJZwtrLtE8BYygqJKguYpdGLTeJYWqzDABah6wx kk3+z6vtMylT
UHhNtkFcK+pQAQCg8TBah6ACAEAOTh0ydE6IhwoAAOBAUImHCgBlhnioUBWI NgMAAOAA7qEC
QKVY/rPLU223+9j9Nf6wj1OBgKCG4XqCaUa/AcpPb1+Hxh775cT1Xte54+nV 17bV1B9x3Usi
BBpUQ1AbFcmAR8EBgE40NJ1DLTqAr4uIDwBQTnr6Bufu/dS0+ZKkOy8/bXD+ Xh9dIz1ddvOD
kqTlSxdryb/OUk/vgLjLBZUX1DRO0mS5aa/TNC4gYgxQfrb0jhz2fWSHN0xP R3a2afaNq7V8
6WJJ0uQpJ2hEu6fOXdoj2x/TKUmZxhTiaOhTvnWxCpubN2x5cP0sjtlmPmAA KJGgbhsxXFA7
29TV2aZv3vqgRne1a/aNq/Wr1b/U5CknaPKUEzT7c0fq0htX632nXBLZFpi0 DWHtT1wbBjjU
Ql1onONs1IkZFu0eAMrD5oBDHdHZpnf/zdclSd/Q4BDv5Ckn6H//+Mrgsu/d P7TMpq2KMwFl
aKugRQU1bGgkboiEKPIAEEVP36BDffDbn683Ilr5g9k666p7tHzpYh181Ac0 94yjdNF375N8
Ajv3zKOsxDLq9lBwmJhONxQqqGHuz7T35yIP23RxpwDlZVtfu+78wWLdGVh+ 8dQjddJ9d+ni
qQfo9089u9N2L764Xvu8eXdn7VhebRhUl9ynHowaIkm6oZ/UO4xzuEnphn3n YSSAcpJm6sGv
XH/v0ENJD/14jv7ioxdr8pQT9E9nH53YNkV1rm0foAQcai6uNG6Zy7iAabYP G7ZBTAGaH9vY
yVnbJEBQAQAqx/Kli/XQj+cMfa+7VPkcKoBriDYDAKWGaDNQGUElHioAAAAO FQBwqAClgHio
AAAADuChJACoFMRDBQS1AmR9XYbXbQDyxzQeapB+qg6qLqimEylkzUMKf9ma wMEAkKbdiJsq
Nc3EM3FtUtSEElH5x+1PUv5xy03KbLvMtPwIagYQMgBIQ1g81F0623TlbXdr Y0+v1m/cqpc2
9OjF17ZIkl7asEXrN/bo0XnnWzd5JnONZ+2gx21nm57ptK7B73lMbBOMyIND Lci5RsUYTPo/
rEcXNVVYUu/MZipEJu4HaBxh8VA7OjxNP+n9O67LsAY+otGPazfyau+KFJuk GNEmwpjUtrai
eDZEUJPCoRUxh25cHlFTEfrXs5n/FwByFtSQeKid7Z5m33SXNvf26bXNvVq/ qUd/2tAjSXp5
Q4/Wb9qq1zb3atOPp1u3HcG2IWpe37j5frO0XTbpmc51Dk3mUONOgjAxNBHa uPUQO4DmICwe
arvnadapH/Q5VN9w5na/6nk163bDZCg2qoNuaw6iRNrWwOQh3ETgqpCgFnGQ OBEAmoOweKie
J12ycKle3dKrF1/drHWvbNZz6zdLkl7asFnP3nyB5EkjGmgYooZJg21UIzr/ afM23TcE1fHB
Mq3k+nrBbWxcqmkeAFA9wuKhnjjlCH22++DIbZ56+jmNHrWLdo2Ih5p3exAV Jq4I52cTnjKr
W29UhwCHGjiAeZ7YJvc84vI1vWcCAPkz/ZyPhi6/cP6S2Kd8N/xounVeJq+z 2MZqTmpfkvLP
u51leLcCghr38I9t7NI0Pac062SJ2woA5SbpmnYVq9nE7dk4Qtv9yVK+NHVk 2m4jqAAAJeWy
Mz/UEvsZ5Wbp3COoAADg0IlCAzs7xEMFAABwIKjEQwWAMkM8VKgKxEMFAABw APdQAaBSEA8V
EFQAAAcQDxXKSu5DvsFHvMOmqnKRh/+TtkwAAACVc6iun4XKO2INAJSDIuOh AlRCUF3HQzVx
oyZxUE3KFBU3EREHyB+X8VABKiWojY6HmiUOapT45x3pHgBiBLXAeKgAlXCo US4yyskmiVWS
E3VVJgQToLG4jocK0FSC6kKkooKKpxVXhBOgnFQtHiogqM4Fs6h4qHk5aAQW oBzkEQ8VoCkc
ap7xUKPiDAbjoMZ9x60ClIsi46EClFJQGxEPNUvaaeL8IbwAAAgqAEClaZV4 qFBemBwfAADA
Af83AL4Xy+XMtbfzAAAAAElFTkSuQmCC
--------------090006070401090707040002--
|
|
| | | | | | | |
Goto Forum:
Current Time: Fri Apr 19 01:45:05 GMT 2024
Powered by FUDForum. Page generated in 0.02534 seconds
|