This is a multi-part message in MIME format.
------=_NextPart_000_000C_01C57CAA.37A4F810
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_000D_01C57CAA.37A4F810"
------=_NextPart_001_000D_01C57CAA.37A4F810
Content-Type: text/plain;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Joaquin,=20
>>oDataSet:oDataSource :=3D nil no hace que el array =
oDataSOURCE:aDataset tenga 1 elemento menos
Lo has probado. Deber=EDa funcionar.
Un saludo,
"Joaqu=EDn Mart=EDnez" <
jmartial@interbook.net> escribi=F3 en el =
mensaje news:[email=
42c27633@ozsrvnegro.ozlan.local...]
42c27633@ozsrvnegro.ozlan.local...[/email]
Ignacio,
no se si me explicado algo confuso, pero lo que dices=20
oDataSet:oDataSource :=3D nil no hace que el array =
oDataSOURCE:aDataset tenga 1 elemento menos. que ser=EDa por eliminar el =
oDataset que queremos destruir del sistema.
Eso nada m=E1s lo hace oDataSOURCE:DelDataSet( oDataSet ), y mi idea =
era que lo hiciese autom=E1tico el DataSET al hacer End()
Un Saludo,
Joaqu=EDn
"Ignacio Ortiz de Z=FA=F1iga" <
InvalidAccount@ozs.com> escribi=F3 en =
el mensaje news:42c27067$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
Joaquin,=20
oDataSet:oDataSource :=3D nil
Posteriormente, al DataSet no hace falta destruirlo, yo lo har=E1 =
el recolector de basura.
Saludos,=20
"Joaqu=EDn Mart=EDnez" <
jmartial@interbook.net> escribi=F3 en el =
mensaje news:[email=
42c26d01@ozsrvnegro.ozlan.local...]
42c26d01@ozsrvnegro.ozlan.local...[/email]
Ignacio,
Entiendo tu planteamiento y lo veo correcto, pero no quiero ahora =
en concreto utilizar procesos, lo que pensaba era que al hacer END() del =
Dataset, el datasource hac=EDa un oDataSource:DelDataSet( oDataSet ) =
autom=E1ticamente, o por lo menos deber=EDa existir en el dataset una =
Property que fuera "lDelAutoDataSource" o algo por el estilo, o existir =
un m=E9todo Dataset:KillEnd() que lo "Borre" del datasource y destruya =
el Dataset.
Bueno, es s=F3lo una opini=F3n, con esto oDataSource:DelDataSet( =
oDataSet ) puesto manualmente por m=ED tambi=E9n me sirve.
Un Saludo y gracias,
Joaqu=EDn
"Ignacio Ortiz de Z=FA=F1iga" <
InvalidAccount@ozs.com> =
escribi=F3 en el mensaje news:42c26362$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
Joaquin,=20
> inicio, y cuando quiero cerrar todas las bases y destruir los =
datasets hago
> lo siguiente:
De la documentaci=F3n:
Y para m=E1s abundamiento, tambi=E9n de la documentaci=F3n:
La propiedad 'cProcess' marca el proceso vinculado a la tabla. =
El TDataSource contiene todos los TDataset que se abierto a trav=E9s de =
=E9l, pero si lo desea puede adem=E1s distinguir entre TDataset dentro =
de un mismo TDataSource estableciendo nombres de proceso en el momento =
de su creaci=F3n. Por ejemplo, podr=EDa tener un =FAnico TDataSource =
para toda la aplicaci=F3n, pero luego m=FAltiples procesos para las =
distintas operaciones a realizar, por ejemplo, el proceso de 'Facturas' =
necesita abrir 5 DataSets. Para asignarles el mismo proceso a los cinco =
puede indicarlo con el parametro 'cProcess', o bien establecer el nombre =
del proceso con el cual se abrir=E1n los nuevos DataSet con el m=E9todo =
DataSource:NewProcess( 'facturas' ). Una vez que tiene englobados varios =
TDataset en un mismo proceso puede manejarlos en bloque en operaciones =
de apertura, cierre y destrucci=F3n de los DataSet. Vea los m=E9todos =
OpenProcess(), CloseProcess(), y DelProcess() de TDataSource para m=E1s =
informaci=F3n. =20
El hecho de que se cierre la tabla no significa que se destruya =
el objeto, ni mush=EDsimo menos qu desaparezcan de aDataSets. Porque =
como podr=E1s comprobar se puede abrir de nuevo haciendo lOpen a .T. =20
De hecho es perfectamente normal y muy recomdable tener =
m=FAltiples procesos vinculados al DataSource e ir abriendo y cerrando =
uno u otro seg=FAn te convenga.
Si quieres destruir el objeto y hacerlo desaparecer del =
DataSource tienes el m=E9todo DelProcess() que viene perfectamente =
explicado en la documentaci=F3n.=20
Te recomiendo que te tomes el tiempo necesario para leer la =
documentaci=F3n existente sobre los Datacontols, que creo, =
efectivamente, es un tema importante y muy aconsejable de leer.
Saludos,=20
"Joaqu=EDn Mart=EDnez" <
jmartial@interbook.net> escribi=F3 en el =
mensaje news:42c25e69$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>=20
> Estoy intentando hacerlo todo con Datasource y Dataset, =
entonces para abrir
> una base escribo:
>=20
> oDbf:lOpen :=3D .t. y as=ED varias veces para 4 bases por =
ejemplo,
> efectivamente lOpen es .T. y las bases est=E1n abiertas, si =
quiero saber
> cuantas tengo uso
> len(oRdd:aDataSet) teniendo en cuenta que oRdd es mi =
Datasource creado al
> inicio, y cuando quiero cerrar todas las bases y destruir los =
datasets hago
> lo siguiente:
>=20
> aTotalDbfs :=3D aClone(::oRdd:aDataSet)
> aeval( aTotalDbfs , { |oDbf| oDbf:End() } ) =
he probado con
> lopen:=3D.f., destroy(), End(), para estar seguro
>=20
> Y Aunque la base est=E1 cerrada, =A1existe en datasource!, es =
decir datasource
> sigue teniendo 4 dataset=B4s en aDataset y si los consulto =
puedo ver el alias
> y que lopen es .F., entonces =BFPara que sirve aDataset, si =
cuando cree y
> destuya 1200 veces una base va a tener una longitud de 1200 =
aunque haya 1
> activa solamente?
>=20
> Me parece que no est=E1 descontando las dataset=B4s que =
destru=EDmos, para m=ED lo
> veo un tema importante.
>=20
> Un Saludo,
> Joaqu=EDn
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>
------=_NextPart_001_000D_01C57CAA.37A4F810
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1252">
<META content=3D"MSHTML 6.00.2900.2668" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>Joaquin, </DIV>
<DIV>Â</DIV>
<DIV>>>oDataSet:oDataSource :=3D nil no hace que el array=20
oDataSOURCE:aDatasetÂtenga 1 elemento menos</DIV>
<DIV>Â</DIV>
<DIV>Lo has probado. Deber=EDa funcionar.</DIV>
<DIV>Â</DIV>
<DIV>Un saludo,</DIV>
<DIV>Â</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Joaqu=EDn Mart=EDnez" <<A=20
href=3D"mailto:
jmartial@interbook.net">
jmartial@interbook.net</A>> =
escribi=F3=20
en el mensaje <A=20
=
href=3D"news:
42c27633@ozsrvnegro.ozlan.local">news:
42c27633@ozsrvnegro.oz=
lan.local</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>Ignacio,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>no se si me explicado algo confuso, =
pero lo que=20
dices=20
<DIV><FONT face=3DTahoma size=3D3></FONT>Â</DIV>
<DIV>oDataSet:oDataSource :=3D nil no hace que el array=20
oDataSOURCE:aDatasetÂtenga 1 elemento menos. que ser=EDa por =
eliminar el=20
oDataset que queremos destruir del sistema.</DIV>
<DIV>Â</DIV>
<DIV>Eso nada m=E1s lo haceÂoDataSOURCE:DelDataSet( oDataSet ), y =
mi idea=20
era que lo hiciese autom=E1tico el DataSET al hacer End()</DIV>
<DIV>Â</DIV>
<DIV>Â</DIV>
<DIV>Un Saludo,</DIV>
<DIV>Joaqu=EDn</DIV></FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ignacio Ortiz de Z=FA=F1iga" <<A=20
=
href=3D"mailto:
InvalidAccount@ozs.com">
InvalidAccount@ozs.com</A>> =
escribi=F3=20
en el mensaje <A=20
=
href=3D"news:42c27067$
1@ozsrvnegro.ozlan.local">news:42c27067$[email=1@ozsrvnegr]1@ozsrvnegr[/email]=
o.ozlan.local</A>...</DIV>
<DIV>Joaquin, </DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV>oDataSet:oDataSource :=3D nil</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV>Posteriormente, Âal DataSet no hace falta destruirlo, yo =
lo har=E1=20
el recolector de basura.</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV>Saludos, </DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Joaqu=EDn Mart=EDnez" <<A=20
=
href=3D"mailto:
jmartial@interbook.net">
jmartial@interbook.net</A>>=20
escribi=F3 en el mensaje <A=20
=
href=3D"news:
42c26d01@ozsrvnegro.ozlan.local">news:
42c26d01@ozsrvnegro.oz=
lan.local</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>Ignacio,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Entiendo tu planteamiento y lo =
veo correcto,=20
pero no quiero ahora en concreto utilizar procesos, lo que pensaba =
era que=20
al hacer END() del Dataset, el datasource hac=EDa un =
oDataSource:DelDataSet(=20
oDataSet ) autom=E1ticamente, o por lo menos deber=EDa existir en =
el dataset=20
una Property que fuera "lDelAutoDataSource" o algo por el estilo, =
o=20
existir un m=E9todo Dataset:KillEnd() que lo "Borre" del =
datasource y=20
destruya el Dataset.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Bueno, es s=F3lo una opini=F3n, =
con esto=20
oDataSource:DelDataSet( oDataSet ) puesto manualmente por m=ED =
tambi=E9n me=20
sirve.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Un Saludo y gracias,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Joaqu=EDn</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ignacio Ortiz de Z=FA=F1iga" <<A=20
=
href=3D"mailto:
InvalidAccount@ozs.com">
InvalidAccount@ozs.com</A>>=20
escribi=F3 en el mensaje <A=20
=
href=3D"news:42c26362$
1@ozsrvnegro.ozlan.local">news:42c26362$[email=1@ozsrvnegr]1@ozsrvnegr[/email]=
o.ozlan.local</A>...</DIV>
<DIV>Joaquin, </DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV>> inicio, y cuando quiero cerrar todas las bases y =
destruir los=20
datasets hago<BR>> lo siguiente:<BR></DIV>
<DIV>De la documentaci=F3n:</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><IMG alt=3D"" hspace=3D0=20
src=3D"cid:000701c57c99$7419b710$
0e00000a@ozlan.local" =
align=3Dbaseline=20
border=3D0></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV>Y para m=E1s abundamiento, tambi=E9n de la =
documentaci=F3n:</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial">La=20
propiedad <B>'cProcess'</B> marca el proceso vinculado a la =
tabla. El <A=20
=
href=3D" mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdatasource.htm ">TDa=
taSource</A>=20
contiene todos los <A=20
=
href=3D"mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdataset.htm ">TDatas=
et</A>=20
que se abierto a trav=E9s de =E9l, pero si lo desea puede =
adem=E1s distinguir=20
entre <A=20
=
href=3D"mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdataset.htm ">TDatas=
et</A>=20
dentro de un mismo <A=20
=
href=3D" mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdatasource.htm ">TDa=
taSource</A>=20
estableciendo nombres de proceso en el momento de su creaci=F3n. =
Por=20
ejemplo, podr=EDa tener un =FAnico <A=20
=
href=3D" mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdatasource.htm ">TDa=
taSource</A>=20
para toda la aplicaci=F3n, pero luego m=FAltiples procesos para =
las=20
distintas operaciones a realizar, por ejemplo, el proceso de =
'Facturas'=20
necesita abrir 5 DataSets. Para asignarles el mismo proceso a =
los cinco=20
puede indicarlo con el parametro <B>'cProcess'</B>, o bien =
establecer el=20
nombre del proceso con el cual se abrir=E1n los nuevos DataSet =
con el=20
m=E9todo DataSource:NewProcess( 'facturas' ). Una vez que tiene =
englobados=20
varios <A=20
=
href=3D"mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdataset.htm ">TDatas=
et</A>=20
en un mismo proceso puede manejarlos en bloque en operaciones de =
apertura, cierre y destrucci=F3n de los DataSet. Vea los =
m=E9todos=20
OpenProcess(), CloseProcess(), y DelProcess() de <A=20
=
href=3D" mk:@MSITStore:C:xailer2helpXailerEs.chm::/tdatasource.htm ">TDa=
taSource</A>=20
para m=E1s informaci=F3n.ÂÂ<BR></SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3>El hecho de que se cierre la tabla no =
significa que=20
se destruya el objeto, ni mush=EDsimo menos qu desaparezcan de =
aDataSets.=20
Porque como podr=E1s comprobar se puede abrir de nuevo haciendo =
lOpen a=20
.T. </FONT></SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3></FONT></SPAN>Â</DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3>De hecho es perfectamente normal y muy =
recomdable=20
tener m=FAltiples procesos vinculados al DataSource e ir =
abriendo y=20
cerrando uno u otro seg=FAn te convenga.</FONT></SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3></FONT></SPAN>Â</DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3>Si quieres destruir el objeto y hacerlo =
desaparecer=20
del DataSource tienes el m=E9todo DelProcess() que viene =
perfectamente=20
explicado en la documentaci=F3n. </FONT></SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3></FONT></SPAN>Â</DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3>Te recomiendo que te tomes el tiempo =
necesario para=20
leer la documentaci=F3n existente sobre los Datacontols, que =
creo,=20
efectivamente, es un tema importante y muy aconsejable de=20
leer.</FONT></SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3></FONT></SPAN>Â</DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3>Saludos,</FONT> </SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: =
Helvetica,Arial"><FONT=20
face=3DTahoma size=3D3></FONT>Â</DIV></SPAN>
<DIV>"Joaqu=EDn Mart=EDnez" <<A=20
=
href=3D"mailto:
jmartial@interbook.net">
jmartial@interbook.net</A>>=20
escribi=F3 en el mensaje <A=20
=
href=3D"news:42c25e69$
1@ozsrvnegro.ozlan.local">news:42c25e69$[email=1@ozsrvnegr]1@ozsrvnegr[/email]=
o.ozlan.local</A>...</DIV>>=20
Hola,<BR>> <BR>> Estoy intentando hacerlo todo con =
Datasource y=20
Dataset, entonces para abrir<BR>> una base escribo:<BR>>=20
<BR>>ÂoDbf:lOpen :=3D .t. y as=ED varias veces para 4 =
bases por=20
ejemplo,<BR>> efectivamente lOpen es .T. y las bases est=E1n =
abiertas,=20
si quiero saber<BR>> cuantas tengo uso<BR>> =
len(oRdd:aDataSet)=20
teniendo en cuenta que oRdd es mi Datasource creado al<BR>> =
inicio, y=20
cuando quiero cerrar todas las bases y destruir los datasets=20
hago<BR>> lo siguiente:<BR>>=20
=
<BR> >ÂÂÂÂÂ&a mp;nbsp; =
;  ;Â=20
aTotalDbfs :=3D=20
=
aClone(::oRdd:aDataSet)<BR> >ÂÂÂÂÂ&a mp;nbsp;Â=
ÂÂÂÂÂÂ ÂÂÂÂ=20
aeval( aTotalDbfs , { |oDbf| oDbf:End() } ) he probado =
con<BR>>=20
lopen:=3D.f., destroy(), End(), para estar seguro<BR>> =
<BR>> Y=20
Aunque la base est=E1 cerrada, =A1existe en datasource!, es =
decir=20
datasource<BR>> sigue teniendo 4 dataset=B4s en aDataset y si =
los=20
consulto puedo ver el alias<BR>> y que lopen es .F., entonces =
=BFPara=20
que sirve aDataset, si cuando cree y<BR>> destuya 1200 veces =
una base=20
va a tener una longitud de 1200 aunque haya 1<BR>> activa=20
solamente?<BR>> <BR>> Me parece que no est=E1 descontando =
las=20
dataset=B4s que destru=EDmos, para m=ED lo<BR>> veo un tema=20
importante.<BR>> <BR>> Un Saludo,<BR>> =
Joaqu=EDn<BR>> <BR>>=20
<BR>> <BR>> <BR>> <BR>> <BR>> <BR>>=20
</BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY ></HTML>
------=_NextPart_001_000D_01C57CAA.37A4F810--
------=_NextPart_000_000C_01C57CAA.37A4F810
Content-Type: image/png;
name="Image1.png"
Content-Transfer-Encoding: base64
Content-ID: <000701c57c99$7419b710$
0e00000a@ozlan.local>
iVBORw0KGgoAAAANSUhEUgAAAgEAAAEpCAMAAAA9LwGVAAAAB3RJTUUH1QYd CDERAeorJgAAAAlw
SFlzAAAOwwAADsMBx2+oZAAAAARnQU1BAACxjwv8YQUAAAAhUExURf///wAA /+zp2KyomQAAAMDA
wAAAZszMzGZmZgAzZv/MAK6XzpkAAAqoSURBVHja7Z2LmqMoEEZxl0z3zvs/ 8HYnKlVFgWgSo3LO
fJPIRa6/BSqhww36Jny6APBhUEDvoIDeQQG9gwJ6BwX0Dgq4OsGQhd8/o0S5 /VR979oZT6ESXpvF
Ul2uTvijWK0At9lc37e1tEl4uwL61MDTCnBaLe6qAFsWFLCO8Odu/L9+/oWv r5IC7ogWmg/dZivJ
IhbPeAJ57U/qXJtApS7XJ/z5+iXcP9crQLeftA/aU0e8iVNMOuJCFpKRGZt0 VGA5fTMJydOZj0TW
OoViSbJ5yKmk9BgFfiyBPwr8XVLALephQSrAGmfdLP7oLbtdJXLT3jLjm03X T7+aTlaV7JxqSXQ9
T6WB8Of7+/u3+8PP97dVwN8VCpi6Q7Vg6iPbLoXR2yqg3Lolm2/jymjldFSK Jmv/JD/t3DIdnZ9R
IIx24AejgL+tCsiuy3KnmlG3ooAslm7xrCTaR6evko9+Z5kS5SkUSmLTLpTr qPzOA8b7gK9vMw/4
26wA7TC1z8xooZ1N/930981v3ZICTPrK/mR6LVkjk0KhJDbt0/T9g7sNCKMJ 0Dbg70oFWLOoPYtx
mhQgTs4SNDVy01fnZQOEDc0rViuJm/an+7WdHwV8f3/dLcC3tQH//dCqAGdg LMyKomnQXRSQ2R/P
pVNsVsDpZ4JFG/AIt03rH6bLQbfh7GnP2KiArPx5W/sKuM19Y9OxCTQqIC9G ntEpCOPF780D7uFu
tev95/VizBt08zzAtn06VGUww3lyNCtgcR5gzou+49g8bMDE1meCywpYmGJX bg3yGX1mkOcDHSk2
FbCkgNq9gErBKv12uxXUekja3gvYSolx0G9ufctUmHLXnSYnz1EqSzlBf+Au K6CSeTntkymg6e1w
RQHW46auRrePnb51IpusMkfhzFwZFZfXV3nWcbkkBccVWFKA8rEWX3nmM6Tc 5V1CXjZucbJiVnLz
08ncbSmc/pFAFdYI9Q4K6B0U0DsooHdQQO+ggN5BAb2DAnonAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAMDFiTHev1aepb7Wn9jguSqn4cHjuxZnRaleFWd9I+1K3FbEdgXE qnM5mdgaedAfwlMe
Dl7Qyt7ddrUclLixjIdWgN/NKKBeurstiA+L8Pg3jQ9BhsQ5eozqrF93TCZl Pnc8U8ZJrphlXsx0
jmISTM1rFHC3+A+zP36mmCkoL1WYKyGqq+LIEoyNdffVZ7lVlvWJthbu164K mKow/U/BMmRukRDV
Weqk/NylOMUTvZyc2FYBg/pKmggqKARbqkJ13ZLLxoqmhm6VZctlycVSQ+yv AOFtmsTzWSp/3mHi
y808eJkWFTCTjwKimycfoYjBzafFx9FgVspimxZr4bp2VkCMSq9RmvJYqoff u+LccgNKs+t62otJ
lULH9kaBqZvlPcAw3xNYBWRF9qxCKoFTGFuRlQqIenjZVQFRlcT8zwrfogCd Q9VAVDxzG1As2/Io
oIKCawOCl3Mex7dw62yibwNSAXZTQO0SDWH5otDX6OpRoN1cVm2wUcDU5UN2 aMWx2N+bR4Fye8RC
GsXWebsE0hMhY3/GaWzIQ+YRQljiNOk1xlzF8Sfyrmeac+uc6vcCs8X/fTw0 DfzDPC5MkcIYFLwi
h2zQ03EcY+2NAoX2SPc2DfcCO4ngVbyzuCdrig4qsnflFtIeNnG1Rvo476vc Tk9H9uA6NQEAAAAA
AAAAAAAAAAAAAACAU/APXBwU0Dn/Livg3x3YJRPI+Wn4BgXsMdbskQnkoIDe QQG9gwJ6BwX0TqsC
4sjbfplzV8CUiSFWnfAUK2zA/PPfNxUk5H0bxaf1hdewWgHvK0ho7WsU8Eo2 2YAo9sJ6VXcYBXgb
cpktCB6en27A07NRAWlztFdJQM8D/K1K8m03EMDTbLUBb1LA5DLb5tS2lYHn OKgC5P4ovlWYPeE5
jqqA0LyVEjzHweYBk8t0tNf12IDXcLB7gfmJkNqQKzf/whOeY9NT4XdMwXkq /CFQQO+ggN7h3WDv
oIDeaVIAXJkmG7DPklX4BIwCvYMCegcF9A4K6B0U0DvNCvBX8YaXPSD0FFDM E17HCgUEt7crPbSq
73wFhPc8gobE0woos67rkgKiTmFNMohlPRsUkN7gR/W63qwaGH9foiJVenNS gE4izEtSUjImOVsO
WMd6BaReCdIRs5VDpg8XVhQ9FDCGy2UoNhmTnBSISAFa2TITlA0uHKX/qa9i tSBB/uW+OW21Viio
jEWqMm0ksIp1NuCOupzd616rQgVUChKC6l2Zp68Aaf+FPD/dpCdjvQIKnZuv Hs4ihZoZUPOANgWE
OXQ2A/T/at6kgK3zgHsGZjlq8PPy5gH0/3o2jQJq4hWdHlcjxLp7gZSHtQEt 9wKwGp4K9w4K6B0U
0DsooHdQQO+ggN45lgJYELA/B1PA/RAJ7AkK6J2DKuCxO4B6meB++YdpozGR Ds+MfY6qgNq+MWI/
ieAdyp1HtBNyDqaAeUFACGavINc1EbMvrRL2GylzMAVMLkcBensZETndPuio cxz2HatxHgWkqNVR
IA/Q6YDhHApYmAdE1/zLNFBAkQMroP1eQA4I6UuMAtiAMsdSAOwPCugdFNA7 KKB3UEDvoIDeYTe5
7mE3uc5hFOgdFNA7KKB3UEDvoIDeaf/L0/djuVWH97Jt+3Jvu06Qd3k78XIF 2JDWjhQ/UUcBe7J9
N7k2BTQbhNEGpNUdKGAfntlNTh5LG5Ft7CBjxcJfqkMBH+K53eTs1kHLW8tk e86lggTR9yhgN9rv
BdK+Pv4GcnNQfYsp97SAAj7GBgWUNo4cw9IgsEkBIaKAXVmvgNoGcnb3OBRw fFb93eHJBDw3D1hQ
wDTZQAH7sF4Bajc5u6GzFEl2rA2Efy8QwjwPYC+BXeCpcO+ggN5BAb2DAnoH BfQOa4W75yhrheFz
NJgJuDSfHogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AOAZhgeP71qcTxcU3segP4SnPEQC10V0/qA95SEKuC5GAXeL/zD742eKObt/ o4Q5XmCUODVaAYP6
SpoINmjII8M5yUeBIXXo5KMuftvtKODc5KPApAB5DzDUFMDNwqlZGgUKQcYG wHnRd4NmhF9WAPOA
0zMb/LGrh6nrx8MUlr7EOCG+AOB0DK/j01UBAAAAgHVUZnFDswtOTPO7XxRw UVBA74hnvmldgHgX
OD30q7mQw5lJCsjeBqh3AEPFhUU4M/NM0F0B4L4HzN8QwYmRCwAcBaS3QHrt QApjFDg5CwpQYcWL
HwmcGFcBgz8KuBMA5gEnRymgci9gFwyosE9XAl4MPdoRLA4AB/oTAACgD/TP w4ZyBLgo6VcCId9F
wHHC1VAKeByaCJ8uIbyX8Smfv3UAKwE6QCjA/UEgKwGuzpC6v/iTUFYCXBmp ALMYINcEo8AFMTYg
1BQQsAMXpHLFsxKgC9QSwWkRQL4ugHsBgGvCSgAAAACAbmF+1zvDxjC4Ciig d+QqMbOBAM8Du2Ca
B4h1IvKHg7wTuDzid4PDwjsiuCRGAXqHgMDagOuT24DgKiBgBy6KXiO8tFIA rkd6IqQ2EJgnhNwL
AFwa1gYAAAAAAAAAXJr/AUQ3nGF3E0ZbAAAAAElFTkSuQmCC
------=_NextPart_000_000C_01C57CAA.37A4F810--
Attached files