Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fichier tableur xml

18 réponses
Avatar
Bernard Schoenacker
bonjour,

j'ai un fichier tableur xml que je n'arrive pas à ouvrir pour le
convertir en csv quels sont les outils disponibles ?

slt
bernard

8 réponses

1 2
Avatar
Bernard Schoenacker
Le Thu, 10 Mar 2016 19:43:16 +0100,
Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 19:26:38 +0100,
Daniel Huhardeaux a écrit :

> Le 10/03/2016 18:57, Bernard Schoenacker a écrit :
>
> [...]
> > steve à essayé et à trouvé l'astuce
>
> Il serait bon de la partager ...
>

bonjour,

comment déposé le fichier exemple sur la liste pour que les gens
comprennent ?

en premier steve a employé ceci :

**** extract.py

# !/usr/bin/env python3
# -*- coding : utf-8 -*-

from bs4 import BeautifulSoup

f = open("fichier.xml")
xml = f.read()
soup = BeautifulSoup(xml)

for p in soup.find_all('block'):
print(p)

****

ensuite :

# !/bin/bash

# echo
Num,Nom,Naissance,Bapteme,Mariage,Décès,Inhumation,Profession,Résidence
> out.csv

x=1
while read f
do
# il y a 9 champs, donc au 9e, on passe à la ligne
if [ $x -lt 9 ]
then
echo -n "$f",
# le -n permet de ne pas passer à la ligne
x=$[x+1]
else
printf "n"
x=1
fi
done<raw


ensuite je cite :

Ensuite, j'ai ouvert le fichier dans libreoffice pour
facilement supprimer les <block> et </block> qui trainaient (oui je
sais, j'aurais pu le faire avec sed, mais je suis flemmard…)


slt
bernard



bonjour,

j'ai une qustion annexe qui facilitera le travail avec sed ...

enlever le premier <block> :

sed -i 's/<block>/,/g'

mais pour le deuxième je fais :

sed -i 's/</block>/,/g


commentr le faire en une seule opération avec sed ?


slt
bernard
Avatar
Pierre Malard
--Apple-Mail=_C48257BB-239B-4087-9D46-9029070FBEF7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8

Un petit peu gros doigts, ce serait mieux avec :
sed -i ’s/</*block>/,/g'

Le 10 mars 2016 à 21:24, Pierre Malard a écrit :

Et un truc du genre :
sed -i ’s//*<block>}/,/g’
ça ne fonctionnerait pas ?

Le 10 mars 2016 à 20:09, Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 19:43:16 +0100,
Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 19:26:38 +0100,
Daniel Huhardeaux a écrit :

Le 10/03/2016 18:57, Bernard Schoenacker a écrit :

[...]
steve à essayé et à trouvé l'astuce



Il serait bon de la partager ...




bonjour,

comment déposé le fichier exemple sur la liste pour que les gens
comprennent ?

en premier steve a employé ceci :

**** extract.py

# !/usr/bin/env python3
# -*- coding : utf-8 -*-

from bs4 import BeautifulSoup

f = open("fichier.xml")
xml = f.read()
soup = BeautifulSoup(xml)

for p in soup.find_all('block'):
print(p)

****

ensuite :

# !/bin/bash

# echo
Num,Nom,Naissance,Bapteme,Mariage,Décès,Inhumation,Profession,Rà ©sidence
out.csv



x=1
while read f
do
# il y a 9 champs, donc au 9e, on passe à la ligne
if [ $x -lt 9 ]
then
echo -n "$f",
# le -n permet de ne pas passer à la ligne
x=$[x+1]
else
printf "n"
x=1
fi
done<raw


ensuite je cite :

Ensuite, j'ai ouvert le fichier dans libreoffice pour
facilement supprimer les <block> et </block> qui trainaient (oui je
sais, j'aurais pu le faire avec sed, mais je suis flemmard…)


slt
bernard



bonjour,

j'ai une qustion annexe qui facilitera le travail avec sed ...

enlever le premier <block> :

sed -i 's/<block>/,/g'

mais pour le deuxième je fais :

sed -i 's/</block>/,/g


commentr le faire en une seule opération avec sed ?


slt
bernard



--
Pierre Malard

À propos de nos chers économistes :
«Les habiles, dans notre siècle, se sont décernés a eux-mêmes la
qualification d’homme d’état. [...] ces politiques, ingénieux
a mettre aux fictions profitables un masque de nécessité. »
Victor Hugo : “Les misérables”, La pléiade, Gallimard, P. 843

| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--




--
Pierre Malard

| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_C48257BB-239B-4087-9D46-9029070FBEF7
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJW4dj+AAoJELzRDw+wKgIyBeAP/A3WhDdvZP7PTBkNWNNI9E3N
P+jw4qaTcearg5/ToY/A4UhjSJbfUuta10r9hefps0H2p1Bql8A6LH7VMvcWqSh7
ke4yR9vE+FmV8ESt0KxMWrbj5mE7mzJ2gN6y0O0SRUbytPdeV4tQNca+HrgmvOmB
BoSCBfM0MsGMh5uUBf5dpeP43BHbBSxRlz+jJ39y1MJiAQv/JzUllvuT+kZ063OH
A1V2Pa0zi60yhxJeHxDJ6YMD/O2GnDYYPFfL1chzrmXwo5liVko295x0bRVrgUFf
3Toh/EmsbulRmcOVHJnwU9JvhM8abA1oBVNTdLEjc+1NuIqnJJ1Ik+IkDHqilPKn
dVAoDH5FvOya0UAOU1vnk6pMOWn9+4rMF89e7R1DIDh/+NdeYg9mt/NM2cnuzgvq
aA1I28bMYdlc0TxSXs4iyOH6Sym5HPNv0fUCDDuHiK6JCbZAFJXiOAC4ok6d20/G
UfVxxlvqLz1yZtEJBim2cBPF9fLkLZ2E71LzP9e6XyNsaIFiiabBurQfGQDEV1/w
GOVKAapShzppfDAJPJIoWk3VPGt5KVLR0KhqxqYnGVXvPWGPF5N/fIoihJOOC8Zj
VkzkT+uPnH5ILWG6Mt2jYkeMDD+iKrIrBk7aVJChGR7WGzoVyPLRZZqoa0zPRFnY
hle78MbByBhFudLOsX+i
=TsV9
-----END PGP SIGNATURE-----

--Apple-Mail=_C48257BB-239B-4087-9D46-9029070FBEF7--
Avatar
Pierre Malard
--Apple-Mail=_E12163C6-65EC-445B-A4A9-C095DB9F2123
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8

Et un truc du genre :
sed -i ’s//*<block>}/,/g’
ça ne fonctionnerait pas ?

Le 10 mars 2016 à 20:09, Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 19:43:16 +0100,
Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 19:26:38 +0100,
Daniel Huhardeaux a écrit :

Le 10/03/2016 18:57, Bernard Schoenacker a écrit :

[...]
steve à essayé et à trouvé l'astuce



Il serait bon de la partager ...




bonjour,

comment déposé le fichier exemple sur la liste pour que les gens
comprennent ?

en premier steve a employé ceci :

**** extract.py

# !/usr/bin/env python3
# -*- coding : utf-8 -*-

from bs4 import BeautifulSoup

f = open("fichier.xml")
xml = f.read()
soup = BeautifulSoup(xml)

for p in soup.find_all('block'):
print(p)

****

ensuite :

# !/bin/bash

# echo
Num,Nom,Naissance,Bapteme,Mariage,Décès,Inhumation,Profession,Rà ©sidence
out.csv



x=1
while read f
do
# il y a 9 champs, donc au 9e, on passe à la ligne
if [ $x -lt 9 ]
then
echo -n "$f",
# le -n permet de ne pas passer à la ligne
x=$[x+1]
else
printf "n"
x=1
fi
done<raw


ensuite je cite :

Ensuite, j'ai ouvert le fichier dans libreoffice pour
facilement supprimer les <block> et </block> qui trainaient (oui je
sais, j'aurais pu le faire avec sed, mais je suis flemmard…)


slt
bernard



bonjour,

j'ai une qustion annexe qui facilitera le travail avec sed ...

enlever le premier <block> :

sed -i 's/<block>/,/g'

mais pour le deuxième je fais :

sed -i 's/</block>/,/g


commentr le faire en une seule opération avec sed ?


slt
bernard



--
Pierre Malard

À propos de nos chers économistes :
«Les habiles, dans notre siècle, se sont décernés a eux-mêmes la
qualification d’homme d’état. [...] ces politiques, ingénieux
a mettre aux fictions profitables un masque de nécessité. »
Victor Hugo : “Les misérables”, La pléiade, Gallimard, P. 843

| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_E12163C6-65EC-445B-A4A9-C095DB9F2123
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJW4dgKAAoJELzRDw+wKgIy/wQP/2m1IqorNFIyMYHWCaNFTGpH
QtrP+cdB239DoDlIEiFBsP9lmlCw59xNMUcUeE8uXtF3KQ55Bh/vUQmdEQV675Yq
yH3nIXzHgPN9cECsbZ2AF5CrDF8iNgHsj9mweQ7/X8/iL4IMMcQnzNFGQXij7hIx
Y9pH6WlVPD4+ymwQqRLUpnKg0BuTR4aNlRNcyJxAgsfYhwyd6UBbdi+RiFqifSWM
tPziZg3lgW7RhBpXr4ohHv3mhJfhutM+w420HBBGCl9lYFAATDGRlHVrZDrd3SNV
HOdqKDcCrtcjJITbK8F5AYpnrn2qFtxQpahE3HL0NdRGmjaClyQaocK8TyyJFFtw
uVDvAYtnuMFviF+xsajHP/sLu7ZOuvUGYA3hKTx2Zyh1MTTvqtUeiI5/nYLK8ERV
7nD6bhqS5ck7IaTEcghVgxEOwRo1gZFtmByHRcUNcW0dCmgvLvfatCxsU7ovV844
rSJL8kYfsZYmvQidRunFO1dVe8Roy13LBP8eEy8brOiPh8Q7czdQPINXGnG0h7Q1
pB32uENy6OrcyfuMCJ/cquKaOSGIUtOd5zonR4tTr8RaaMe06p3v0cwktr/Tf+Gd
5fYvjhCpNot8xuWzN4JIRB4bJrr6x1Jqd4fwMAR2QZ3saORBJuXkyMtpp9pI4e4d
dMicctF8Q6d5glaJmTiI
=hozp
-----END PGP SIGNATURE-----

--Apple-Mail=_E12163C6-65EC-445B-A4A9-C095DB9F2123--
Avatar
Bernard Schoenacker
--MP_/nz17//fgPlD4WM_eJ6Yxg7R
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Le Thu, 10 Mar 2016 21:24:42 +0100,
Pierre Malard a écrit :

Et un truc du genre :
sed -i ’s//*<block>}/,/g’
ça ne fonctionnerait pas ?



bonjour,

merci pierre pour le résultar qui ne fonctionne pas

pour ma part avec 2 passes c'est bon :

sed -i 's/<block>/,/g' raw |sed -i 's/</block>/,/g'

mais j'eusse préféré quelque chose dans le style :

sed -i 's/<block>/,/g' 's/</block>/,/g' raw

mais la 2e ne passe pas du fait qu'il manque un caractère de séparation
mais lequel?

ci joint le fichier raw

slt
bernard
--MP_/nz17//fgPlD4WM_eJ6Yxg7R
Content-Type: image/x-panasonic-raw
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=raw

PHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTwvYmxvY2s+CjwvdGFi
bGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4uIChJOTEpPC9ibG9jaz4K
PC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4uLi48L2Jsb2NrPgo8
L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFi
bGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+IC4uLjwvYmxvY2s+CjwvdGFi
bGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRh
YmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxl
LXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4uIChJODkpPC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4uLi48L2Js
b2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+IC4uLjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4uPC9ibG9jaz4K
PC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3Rh
YmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUt
Y2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
MzwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4u
IChJMTI1MSk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4g
Li4uPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4u
Li48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwv
YmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9j
az4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8
L3RhYmxlLWNlbGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz40PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz4uLi4gKEk4NSk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRl
cj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVy
PSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz4gOCBhdnIgMTkxMyBUb3Jmb3U8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1j
ZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBi
b3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRl
cj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1y
b3c+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjU8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLiAoSTQ0OSk8L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUt
Y2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gOCBhdnIgMTkxMyBUb3Jmb3U8L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90
YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2Vs
bD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2Nr
PjY8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4u
LiAoSTEyMTQpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+Cjxi
bG9jaz4uLi48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
IDEyIGbDqXYgMTkyNyBUb3Jmb3U8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJv
cmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4K
PGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjc8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJs
ZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLiAoSTM5Nik8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFi
bGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gMTIgZsOpdiAxOTI3IFRvcmZvdTwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4uPC9ibG9jaz4KPC90
YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2Vs
bD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8
L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+ODwv
YmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+QkFSQkFV
TFQgT1UgQkFSQkVBVSwgSmVhbiBCYXB0aXN0ZSAoSTc2KTwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTYgamFuIDE4MzUgVHLDqW1lbnRpbmVzPC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPiAxMCBub3YgMTg2
OCBDb3JvbjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+NCBmw6l2IDE5MTAgQW5nZXJzPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBi
b3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRl
cj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIi
Pgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+OTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRh
YmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Q09UVEVOQ0VBVSwgTcOpbGFuaWUgKFrDqW5hw69k
ZSkgKEk0NjkpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+Cjxi
bG9jaz43IGbDqXYgMTg0NyBDb3JvbjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwg
Ym9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3Jk
ZXI9IiI+CjxibG9jaz4gMTAgbm92IDE4NjggQ29yb248L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjE5IGTDqWMgMTkwNiBUcsOpbWVudGluZXM8L2Js
b2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90
YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+Cjxi
bG9jaz4xMDwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+Q09DSEFSRCwgSm9zZXBoIFBpZXJyZSAoSTQzOSk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjExIG9jdCAxODQ5IFRyw6ltZW50aW5lczwvYmxv
Y2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4K
PC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gOSBub3YgMTg4MCBU
csOpbWVudGluZXM8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4K
PGJsb2NrPmFwciAxOTEzPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4K
PGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxl
LWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTE8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1j
ZWxsIGJvcmRlcj0iIj4KPGJsb2NrPkdSRU5PVUlMTEVBVSwgQXVndXN0aW5lIEplYW5uZSAoSTc1
MSk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjEg
c2VwIDE4NTkgTGEgSnViYXVkacOocmU8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+IDkgbm92IDE4ODAgVHLDqW1lbnRpbmVzPC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4xOCBkw6ljIDE5MzkgVG9yZm91PC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJs
ZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+MTI8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPi4uLiAoSTEyNjQpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz4uLi48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0i
Ij4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+IDMganVpbCAxODg5IFRvcmZvdTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+Li4uPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2Vs
bCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJv
cmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVy
PSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJv
dz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTM8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPk5FUlJJRVJFLCBKZWFubmUgQXVndXN0aW5l
IFBoaWxvbcOobmUgKEkxMDg1KTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+MjAgYW/Du3QgMTg2MiBCb3Vzc2F5PC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPiAzIGp1aWwgMTg4OSBUb3Jmb3U8L2Jsb2NrPgo8
L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjE5MzMgVG9yZm91PC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJs
ZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+MTQ8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPkNIQVJPTiwgSmVhbiBBdWd1c3RpbiAoSTM5Mik8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjMgc2VwIDE4NjcgVG9yZm91PC9ibG9jaz4KPC90
YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPiAxMCBtYWkgMTg5OCBUb3Jmb3U8
L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjEgamFu
IDE5MjAgVG9yZm91PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+MTU8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPi4uLiAoSTYxOSk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJs
ZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPi4uLjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxl
LWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2Vs
bCBib3JkZXI9IiI+CjxibG9jaz4gMTAgbWFpIDE4OTggVG9yZm91PC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4uLi48L2Jsb2NrPgo8L3RhYmxlLWNl
bGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFi
bGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFibGUt
cm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4xNjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+QkFSQkFVTFQsIEph
Y3F1ZXMgKEkxMTcpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz4yOSBvY3QgMTc4OCBUcsOpbWVudGluZXM8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxl
LWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+IDEgZsOpdiAxODIyIFRyw6ltZW50aW5lczwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MiBvY3QgMTg1NiBU
csOpbWVudGluZXM8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4K
PGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48
L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2Vs
bCBib3JkZXI9IiI+CjxibG9jaz4xNzwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwg
Ym9yZGVyPSIiPgo8YmxvY2s+Q09UVEVOQ0VBVSwgTWFkZWxlaW5lIChJNDY2KTwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+OCBtYWkgMTc5OCBUcsOp
bWVudGluZXM8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
IDEgZsOpdiAxODIyIFRyw6ltZW50aW5lczwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+MTkgZMOpYyAxODkzIFRyw6ltZW50aW5lczwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJs
ZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNl
bGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjE4
PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz5DT1RU
RU5DRUFVLCBBdWd1c3RpbiBKZWFuIEJhcHRpc3RlIChJNDU1KTwvYmxvY2s+CjwvdGFibGUtY2Vs
bD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+NyBqdWluIDE4MTIgVHLDqW1lbnRpbmVz
PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Js
b2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPiAyMiBzZXAg
MTg0NCBDb3JvbjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+MTYgbm92IDE4NzggQ29yb248L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93
Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4xOTwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+RlJVQ0hBVUQsIE1hcmllIChJNjQ5KTwvYmxv
Y2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTcgbm92IDE4
MTggQ29yb248L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
IDIyIHNlcCAxODQ0IENvcm9uPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3Jk
ZXI9IiI+CjxibG9jaz4xMiBkw6ljIDE4OTIgQ29yb248L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0
YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxl
LWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2Vs
bCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFibGUtcm93Pgo8
dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4yMDwvYmxvY2s+CjwvdGFi
bGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Q09DSEFSRCwgTG91aXMgKEk0
NDMpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz42
IG5vdiAxODA3IFRyw6ltZW50aW5lczwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwg
Ym9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3Jk
ZXI9IiI+CjxibG9jaz4gMjcgbm92IDE4NDMgVHLDqW1lbnRpbmVzPC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz42IGphbiAxODUzIFRyw6ltZW50aW5l
czwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxsIGJvcmRlcj0i
Ij4KPGJsb2NrPjIxPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz5HSU5EUkVBVSwgTWFyaWUgKEk3MTIpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFi
bGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4xMSBqdWluIDE4MTUgTGUgTWF5LXN1ci3DiHZyZTwv
YmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9j
az4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gMjcgbm92IDE4
NDMgVHLDqW1lbnRpbmVzPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz4yIG5vdiAxODU5IFRyw6ltZW50aW5lczwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFi
bGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1j
ZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+
Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjIyPC9ibG9jaz4KPC90
YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz5HUkVOT1VJTExFQVUsIEpl
YW4gQmFwdGlzdGUgKEk3NTQpPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3Jk
ZXI9IiI+CjxibG9jaz43IGphbiAxODMxIExhIEp1YmF1ZGnDqHJlPC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPiA2IG5vdiAxODU4IENob2xldDwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTcgb2N0IDE4NjQg
TGEgSnViYXVkacOocmU8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0i
Ij4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9j
az48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUt
Y2VsbCBib3JkZXI9IiI+CjxibG9jaz4yMzwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+TEVGT1JULCBBdWd1c3RpbmUgSmVhbm5lIChJODk4KTwvYmxv
Y2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MjIgZMOpYyAx
ODMxIENob2xldDwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9j
az4gNiBub3YgMTg1OCBDaG9sZXQ8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJv
cmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVy
PSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJs
ZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjI0PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUt
Y2VsbCBib3JkZXI9IiI+CjxibG9jaz5ST0JJTiwgUmVuw6kgKEkxMjY1KTwvYmxvY2s+CjwvdGFi
bGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MTYganVpbCAxODM2IExhIEJy
dWZmacOocmU8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
IDIwIG9jdCAxODU3IFRvcmZvdTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+MyBqdWlsIDE5MDAgVG9yZm91PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8
dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJs
ZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4K
PHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MjU8L2Jsb2NrPgo8L3Rh
YmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPk1FQ0hJTkFVRCwgSmVhbm5l
IChJMTAyNik8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjI0IGF2ciAxODM1IEJvdXNzYXk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9y
ZGVyPSIiPgo8YmxvY2s+IDIwIG9jdCAxODU3IFRvcmZvdTwvYmxvY2s+CjwvdGFibGUtY2VsbD4K
PHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MyBqdWluIDE5MTMgQ2hvbGV0PC9ibG9jaz4K
PC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3Rh
YmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUt
Y2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
MjY8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPk5F
UlJJRVJFLCBBdWd1c3RpbiAoSTEwODApPC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2Vs
bCBib3JkZXI9IiI+CjxibG9jaz4xOSBhdnIgMTgxOCBHw6l0aWduw6k8L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2Vs
bD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+IDIzIGp1aW4gMTg1OCBCb3Vzc2F5PC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+Cjwv
dGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJs
ZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNl
bGw+CjwvdGFibGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9j
az4yNzwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
RFVSQU5ELCBKdWxpZSBBbmfDqWxpcXVlIChJNTgzKTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRh
YmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+MzAgb2N0IDE4MjQgTW9udGlnbsOpLXN1ci1Nb2lu
ZTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gMjMganVp
biAxODU4IEJvdXNzYXk8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0i
Ij4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8
YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9j
az48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwv
YmxvY2s+CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPjI4PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBi
b3JkZXI9IiI+CjxibG9jaz5DSEFST04sIEplYW4gKEkzOTEpPC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4xNiBqdWlsIDE4MzQgQmVhdXByw6lhdTwv
YmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9j
az4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gOSBub3YgMTg2
NiBUb3Jmb3U8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Js
b2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+
CjwvdGFibGUtY2VsbD4KPC90YWJsZS1yb3c+Cjx0YWJsZS1yb3c+Cjx0YWJsZS1jZWxsIGJvcmRl
cj0iIj4KPGJsb2NrPjI5PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9
IiI+CjxibG9jaz5HUkVHT0lSRSwgTWFyaWUgSmVhbm5lIFZpY3RvcmluZSAoSTc0OCk8L2Jsb2Nr
Pgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjEzIG9jdCAxODQy
IExhIEdhdWJyZXRpw6hyZTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVy
PSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz4gOSBub3YgMTg2NiBUb3Jmb3U8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1j
ZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjE1IGp1aW4gMTg4NyBUb3Jmb3U8L2Jsb2NrPgo8L3RhYmxl
LWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2Vs
bD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8
dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+CjwvdGFi
bGUtcm93Pgo8dGFibGUtcm93Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4zMDwvYmxv
Y2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+Rk9OVEVORUFV
LCBQaWVycmUgQWxleGFuZHJlIChJNjI4KTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+MTcgZMOpYyAxODM0IFRvcmZvdTwvYmxvY2s+CjwvdGFibGUt
Y2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxs
Pgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4gOCBmw6l2IDE4NjMgR8OpdGlnbsOpPC9i
bG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz4yOCBmw6l2
IDE5MDEgVG9yZm91PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+
CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJs
b2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+
PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxlLXJvdz4KPHRhYmxlLXJvdz4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+MzE8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxs
IGJvcmRlcj0iIj4KPGJsb2NrPkNIQVVWSUVSRSwgSmVhbm5lIFJvc2FsaWUgKEk0MDMpPC9ibG9j
az4KPC90YWJsZS1jZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz45IGp1aW4gMTgz
NiBHw6l0aWduw6k8L2Jsb2NrPgo8L3RhYmxlLWNlbGw+Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4K
PGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNlbGwgYm9yZGVyPSIiPgo8Ymxv
Y2s+IDggZsOpdiAxODYzIEfDqXRpZ27DqTwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRhYmxlLWNl
bGwgYm9yZGVyPSIiPgo8YmxvY2s+MTEgbWFpIDE5MDEgVG9yZm91PC9ibG9jaz4KPC90YWJsZS1j
ZWxsPgo8dGFibGUtY2VsbCBib3JkZXI9IiI+CjxibG9jaz48L2Jsb2NrPgo8L3RhYmxlLWNlbGw+
Cjx0YWJsZS1jZWxsIGJvcmRlcj0iIj4KPGJsb2NrPjwvYmxvY2s+CjwvdGFibGUtY2VsbD4KPHRh
YmxlLWNlbGwgYm9yZGVyPSIiPgo8YmxvY2s+PC9ibG9jaz4KPC90YWJsZS1jZWxsPgo8L3RhYmxl
LXJvdz4KPC90YWJsZS1ib2R5Pgo8L3RhYmxlPgo8L2Jsb2NrPgo8YmxvY2s+CjxpbmxpbmUgZm9u
dC13ZWlnaHQ9ImJvbGQiPiM8L2lubGluZT4KPC9ibG9jaz4KPGJsb2NrPgo8aW5saW5lIGZvbnQt
d2VpZ2h0PSJib2xkIj5Ob208L2lubGluZT4KPC9ibG9jaz4KPGJsb2NrPgo8aW5saW5lIGZvbnQt
d2VpZ2h0PSJib2xkIj5OYWlzc2FuY2U8L2lubGluZT4KPC9ibG9jaz4KPGJsb2NrPgo8aW5saW5l
IGZvbnQtd2VpZ2h0PSJib2xkIj5CYXB0w6ptZSAoc2FjcmVtZW50IHJlbGlnaWV1eCk8L2lubGlu
ZT4KPC9ibG9jaz4KPGJsb2NrPgo8aW5saW5lIGZvbnQtd2VpZ2h0PSJib2xkIj5NYXJpYWdlPC9p
bmxpbmU+CjwvYmxvY2s+CjxibG9jaz4KPGlubGluZSBmb250LXdlaWdodD0iYm9sZCI+RMOpY8Oo
czwvaW5saW5lPgo8L2Jsb2NrPgo8YmxvY2s+CjxpbmxpbmUgZm9udC13ZWlnaHQ9ImJvbGQiPklu
aHVtYXRpb248L2lubGluZT4KPC9ibG9jaz4KPGJsb2NrPgo8aW5saW5lIGZvbnQtd2VpZ2h0PSJi
b2xkIj5Qcm9mZXNzaW9uPC9pbmxpbmU+CjwvYmxvY2s+CjxibG9jaz4KPGlubGluZSBmb250LXdl
aWdodD0iYm9sZCI+UsOpc2lkZW5jZTwvaW5saW5lPgo8L2Jsb2NrPgo8YmxvY2s+MTwvYmxvY2s+
CjxibG9jaz4uLi4gKEk5MSk8L2Jsb2NrPgo8YmxvY2s+Li4uPC9ibG9jaz4KPGJsb2NrPjwvYmxv
Y2s+CjxibG9jaz4gLi4uPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4yPC9ibG9jaz4KPGJsb2NrPi4u
LiAoSTg5KTwvYmxvY2s+CjxibG9jaz4uLi48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2Nr
PiAuLi48L2Jsb2NrPgo8YmxvY2s+Li4uPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48
L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjM8L2Jsb2NrPgo8YmxvY2s+Li4uIChJMTI1
MSk8L2Jsb2NrPgo8YmxvY2s+Li4uPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gLi4u
PC9ibG9jaz4KPGJsb2NrPi4uLjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9j
az4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz40PC9ibG9jaz4KPGJsb2NrPi4uLiAoSTg1KTwvYmxv
Y2s+CjxibG9jaz4uLi48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPiA4IGF2ciAxOTEz
IFRvcmZvdTwvYmxvY2s+CjxibG9jaz4uLi48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2Nr
PjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+NTwvYmxvY2s+CjxibG9jaz4uLi4gKEk0
NDkpPC9ibG9jaz4KPGJsb2NrPi4uLjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+IDgg
YXZyIDE5MTMgVG9yZm91PC9ibG9jaz4KPGJsb2NrPi4uLjwvYmxvY2s+CjxibG9jaz48L2Jsb2Nr
Pgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz42PC9ibG9jaz4KPGJsb2Nr
Pi4uLiAoSTEyMTQpPC9ibG9jaz4KPGJsb2NrPi4uLjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+IDEyIGbDqXYgMTkyNyBUb3Jmb3U8L2Jsb2NrPgo8YmxvY2s+Li4uPC9ibG9jaz4KPGJs
b2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjc8L2Js
b2NrPgo8YmxvY2s+Li4uIChJMzk2KTwvYmxvY2s+CjxibG9jaz4uLi48L2Jsb2NrPgo8YmxvY2s+
PC9ibG9jaz4KPGJsb2NrPiAxMiBmw6l2IDE5MjcgVG9yZm91PC9ibG9jaz4KPGJsb2NrPi4uLjwv
YmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+Cjxi
bG9jaz44PC9ibG9jaz4KPGJsb2NrPkJBUkJBVUxUIE9VIEJBUkJFQVUsIEplYW4gQmFwdGlzdGUg
KEk3Nik8L2Jsb2NrPgo8YmxvY2s+MTYgamFuIDE4MzUgVHLDqW1lbnRpbmVzPC9ibG9jaz4KPGJs
b2NrPjwvYmxvY2s+CjxibG9jaz4gMTAgbm92IDE4NjggQ29yb248L2Jsb2NrPgo8YmxvY2s+NCBm
w6l2IDE5MTAgQW5nZXJzPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjk8L2Jsb2NrPgo8YmxvY2s+Q09UVEVOQ0VBVSwgTcOpbGFu
aWUgKFrDqW5hw69kZSkgKEk0NjkpPC9ibG9jaz4KPGJsb2NrPjcgZsOpdiAxODQ3IENvcm9uPC9i
bG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMTAgbm92IDE4NjggQ29yb248L2Jsb2NrPgo8
YmxvY2s+MTkgZMOpYyAxOTA2IFRyw6ltZW50aW5lczwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4xMDwvYmxvY2s+CjxibG9jaz5D
T0NIQVJELCBKb3NlcGggUGllcnJlIChJNDM5KTwvYmxvY2s+CjxibG9jaz4xMSBvY3QgMTg0OSBU
csOpbWVudGluZXM8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPiA5IG5vdiAxODgwIFRy
w6ltZW50aW5lczwvYmxvY2s+CjxibG9jaz5hcHIgMTkxMzwvYmxvY2s+CjxibG9jaz48L2Jsb2Nr
Pgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4xMTwvYmxvY2s+CjxibG9j
az5HUkVOT1VJTExFQVUsIEF1Z3VzdGluZSBKZWFubmUgKEk3NTEpPC9ibG9jaz4KPGJsb2NrPjEg
c2VwIDE4NTkgTGEgSnViYXVkacOocmU8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPiA5
IG5vdiAxODgwIFRyw6ltZW50aW5lczwvYmxvY2s+CjxibG9jaz4xOCBkw6ljIDE5MzkgVG9yZm91
PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4K
PGJsb2NrPjEyPC9ibG9jaz4KPGJsb2NrPi4uLiAoSTEyNjQpPC9ibG9jaz4KPGJsb2NrPi4uLjwv
YmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+IDMganVpbCAxODg5IFRvcmZvdTwvYmxvY2s+
CjxibG9jaz4uLi48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9j
az48L2Jsb2NrPgo8YmxvY2s+MTM8L2Jsb2NrPgo8YmxvY2s+TkVSUklFUkUsIEplYW5uZSBBdWd1
c3RpbmUgUGhpbG9tw6huZSAoSTEwODUpPC9ibG9jaz4KPGJsb2NrPjIwIGFvw7t0IDE4NjIgQm91
c3NheTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+IDMganVpbCAxODg5IFRvcmZvdTwv
YmxvY2s+CjxibG9jaz4xOTMzIFRvcmZvdTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+
PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4xNDwvYmxvY2s+CjxibG9jaz5DSEFST04s
IEplYW4gQXVndXN0aW4gKEkzOTIpPC9ibG9jaz4KPGJsb2NrPjMgc2VwIDE4NjcgVG9yZm91PC9i
bG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMTAgbWFpIDE4OTggVG9yZm91PC9ibG9jaz4K
PGJsb2NrPjEgamFuIDE5MjAgVG9yZm91PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48
L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjE1PC9ibG9jaz4KPGJsb2NrPi4uLiAoSTYx
OSk8L2Jsb2NrPgo8YmxvY2s+Li4uPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMTAg
bWFpIDE4OTggVG9yZm91PC9ibG9jaz4KPGJsb2NrPi4uLjwvYmxvY2s+CjxibG9jaz48L2Jsb2Nr
Pgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4xNjwvYmxvY2s+CjxibG9j
az5CQVJCQVVMVCwgSmFjcXVlcyAoSTExNyk8L2Jsb2NrPgo8YmxvY2s+Mjkgb2N0IDE3ODggVHLD
qW1lbnRpbmVzPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMSBmw6l2IDE4MjIgVHLD
qW1lbnRpbmVzPC9ibG9jaz4KPGJsb2NrPjIgb2N0IDE4NTYgVHLDqW1lbnRpbmVzPC9ibG9jaz4K
PGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjE3
PC9ibG9jaz4KPGJsb2NrPkNPVFRFTkNFQVUsIE1hZGVsZWluZSAoSTQ2Nik8L2Jsb2NrPgo8Ymxv
Y2s+OCBtYWkgMTc5OCBUcsOpbWVudGluZXM8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2Nr
PiAxIGbDqXYgMTgyMiBUcsOpbWVudGluZXM8L2Jsb2NrPgo8YmxvY2s+MTkgZMOpYyAxODkzIFRy
w6ltZW50aW5lczwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2Nr
PjwvYmxvY2s+CjxibG9jaz4xODwvYmxvY2s+CjxibG9jaz5DT1RURU5DRUFVLCBBdWd1c3RpbiBK
ZWFuIEJhcHRpc3RlIChJNDU1KTwvYmxvY2s+CjxibG9jaz43IGp1aW4gMTgxMiBUcsOpbWVudGlu
ZXM8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPiAyMiBzZXAgMTg0NCBDb3JvbjwvYmxv
Y2s+CjxibG9jaz4xNiBub3YgMTg3OCBDb3JvbjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8Ymxv
Y2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4xOTwvYmxvY2s+CjxibG9jaz5GUlVD
SEFVRCwgTWFyaWUgKEk2NDkpPC9ibG9jaz4KPGJsb2NrPjE3IG5vdiAxODE4IENvcm9uPC9ibG9j
az4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMjIgc2VwIDE4NDQgQ29yb248L2Jsb2NrPgo8Ymxv
Y2s+MTIgZMOpYyAxODkyIENvcm9uPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Js
b2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjIwPC9ibG9jaz4KPGJsb2NrPkNPQ0hBUkQsIExv
dWlzIChJNDQzKTwvYmxvY2s+CjxibG9jaz42IG5vdiAxODA3IFRyw6ltZW50aW5lczwvYmxvY2s+
CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+IDI3IG5vdiAxODQzIFRyw6ltZW50aW5lczwvYmxvY2s+
CjxibG9jaz42IGphbiAxODUzIFRyw6ltZW50aW5lczwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4yMTwvYmxvY2s+CjxibG9jaz5H
SU5EUkVBVSwgTWFyaWUgKEk3MTIpPC9ibG9jaz4KPGJsb2NrPjExIGp1aW4gMTgxNSBMZSBNYXkt
c3VyLcOIdnJlPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gMjcgbm92IDE4NDMgVHLD
qW1lbnRpbmVzPC9ibG9jaz4KPGJsb2NrPjIgbm92IDE4NTkgVHLDqW1lbnRpbmVzPC9ibG9jaz4K
PGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjIy
PC9ibG9jaz4KPGJsb2NrPkdSRU5PVUlMTEVBVSwgSmVhbiBCYXB0aXN0ZSAoSTc1NCk8L2Jsb2Nr
Pgo8YmxvY2s+NyBqYW4gMTgzMSBMYSBKdWJhdWRpw6hyZTwvYmxvY2s+CjxibG9jaz48L2Jsb2Nr
Pgo8YmxvY2s+IDYgbm92IDE4NTggQ2hvbGV0PC9ibG9jaz4KPGJsb2NrPjE3IG9jdCAxODY0IExh
IEp1YmF1ZGnDqHJlPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8Ymxv
Y2s+PC9ibG9jaz4KPGJsb2NrPjIzPC9ibG9jaz4KPGJsb2NrPkxFRk9SVCwgQXVndXN0aW5lIEpl
YW5uZSAoSTg5OCk8L2Jsb2NrPgo8YmxvY2s+MjIgZMOpYyAxODMxIENob2xldDwvYmxvY2s+Cjxi
bG9jaz48L2Jsb2NrPgo8YmxvY2s+IDYgbm92IDE4NTggQ2hvbGV0PC9ibG9jaz4KPGJsb2NrPjwv
YmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+Cjxi
bG9jaz4yNDwvYmxvY2s+CjxibG9jaz5ST0JJTiwgUmVuw6kgKEkxMjY1KTwvYmxvY2s+CjxibG9j
az4xNiBqdWlsIDE4MzYgTGEgQnJ1ZmZpw6hyZTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8Ymxv
Y2s+IDIwIG9jdCAxODU3IFRvcmZvdTwvYmxvY2s+CjxibG9jaz4zIGp1aWwgMTkwMCBUb3Jmb3U8
L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8
YmxvY2s+MjU8L2Jsb2NrPgo8YmxvY2s+TUVDSElOQVVELCBKZWFubmUgKEkxMDI2KTwvYmxvY2s+
CjxibG9jaz4yNCBhdnIgMTgzNSBCb3Vzc2F5PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9j
az4gMjAgb2N0IDE4NTcgVG9yZm91PC9ibG9jaz4KPGJsb2NrPjMganVpbiAxOTEzIENob2xldDwv
YmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+Cjxi
bG9jaz4yNjwvYmxvY2s+CjxibG9jaz5ORVJSSUVSRSwgQXVndXN0aW4gKEkxMDgwKTwvYmxvY2s+
CjxibG9jaz4xOSBhdnIgMTgxOCBHw6l0aWduw6k8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJs
b2NrPiAyMyBqdWluIDE4NTggQm91c3NheTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+
PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+Mjc8L2Jsb2Nr
Pgo8YmxvY2s+RFVSQU5ELCBKdWxpZSBBbmfDqWxpcXVlIChJNTgzKTwvYmxvY2s+CjxibG9jaz4z
MCBvY3QgMTgyNCBNb250aWduw6ktc3VyLU1vaW5lPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+Cjxi
bG9jaz4gMjMganVpbiAxODU4IEJvdXNzYXk8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2Nr
PjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjI4PC9ibG9j
az4KPGJsb2NrPkNIQVJPTiwgSmVhbiAoSTM5MSk8L2Jsb2NrPgo8YmxvY2s+MTYganVpbCAxODM0
IEJlYXVwcsOpYXU8L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPiA5IG5vdiAxODY2IFRv
cmZvdTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxv
Y2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+Mjk8L2Jsb2NrPgo8YmxvY2s+R1JFR09JUkUsIE1h
cmllIEplYW5uZSBWaWN0b3JpbmUgKEk3NDgpPC9ibG9jaz4KPGJsb2NrPjEzIG9jdCAxODQyIExh
IEdhdWJyZXRpw6hyZTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+IDkgbm92IDE4NjYg
VG9yZm91PC9ibG9jaz4KPGJsb2NrPjE1IGp1aW4gMTg4NyBUb3Jmb3U8L2Jsb2NrPgo8YmxvY2s+
PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+MzA8L2Jsb2Nr
Pgo8YmxvY2s+Rk9OVEVORUFVLCBQaWVycmUgQWxleGFuZHJlIChJNjI4KTwvYmxvY2s+CjxibG9j
az4xNyBkw6ljIDE4MzQgVG9yZm91PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz4gOCBm
w6l2IDE4NjMgR8OpdGlnbsOpPC9ibG9jaz4KPGJsb2NrPjI4IGbDqXYgMTkwMSBUb3Jmb3U8L2Js
b2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8Ymxv
Y2s+MzE8L2Jsb2NrPgo8YmxvY2s+Q0hBVVZJRVJFLCBKZWFubmUgUm9zYWxpZSAoSTQwMyk8L2Js
b2NrPgo8YmxvY2s+OSBqdWluIDE4MzYgR8OpdGlnbsOpPC9ibG9jaz4KPGJsb2NrPjwvYmxvY2s+
CjxibG9jaz4gOCBmw6l2IDE4NjMgR8OpdGlnbsOpPC9ibG9jaz4KPGJsb2NrPjExIG1haSAxOTAx
IFRvcmZvdTwvYmxvY2s+CjxibG9jaz48L2Jsb2NrPgo8YmxvY2s+PC9ibG9jaz4KPGJsb2NrPjwv
YmxvY2s+Cg=
--MP_/nz17//fgPlD4WM_eJ6Yxg7R--
Avatar
Pierre Malard
--Apple-Mail=_F7F8CE57-09D7-4791-9002-D4FDC21481F6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8

Le 11 mars 2016 à 02:26, Bernard Schoenacker a écrit :

Le Thu, 10 Mar 2016 21:24:42 +0100,
Pierre Malard a écrit :

Et un truc du genre :
sed -i ’s//*<block>}/,/g’
ça ne fonctionnerait pas ?



bonjour,

merci pierre pour le résultar qui ne fonctionne pas

pour ma part avec 2 passes c'est bon :

sed -i 's/<block>/,/g' raw |sed -i 's/</block>/,/g'

mais j'eusse préféré quelque chose dans le style :

sed -i 's/<block>/,/g' 's/</block>/,/g' raw

mais la 2e ne passe pas du fait qu'il manque un caractère de séparation
mais lequel?

ci joint le fichier raw

slt
bernard<raw>



Je n’avais pas bien compris ton problème. En fait, tu ne veux pas seulement transformer les blocs « <block> » et « </block> » en virgule. Dans ce cas, le script :
sed -i 's/</*block>/,/g’ FICHIER
fonctionne parfaitement.

Ce que tu veux, c’est transformer un XML en CSV, c’est à dire transformer tes fameux blocs en virgule. Mais pas seulement les blocs mais aussi le passage à la ligne précédent. Un truc du genre :
sed -i ’s/FIN_LIGNE*</*block>/,/g’ FICHIER
ça, ça ne fonctionne pas parce que sed, comme ed, est un simple « éditeur de ligne ». Il ne traite que la ligne, pas plus.
Il faudrait mettre en buffer les données jusqu’à trouver le déclencheur voulu pour faire un traitement comme tu le désire. Un langage comme « awk » me semble mieux adapté pour ça.

Comme je suis un grand fainéant et que j’ai horreur de refaire ce qui a déjà été très bien fait, j’aurais tendance à te conseiller l’excellente lecture du blog de Stéphane Bortzmeyer qui traite du sujet :
http://www.bortzmeyer.org/xml-to-csv.html

Cordialement


--
Pierre Malard

« La mondialisation de l'économie a, « en moyenne », eu pour conséquence
l'augmentation du niveau de vie « moyen ».
Un homme avec la tête dans un four et les jambes dans un congélateur a,
« en moyenne », une température corporelle idéale... »
Philippe Val - France Inter 09/04/2001
| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_) πr

perl -e '$_=q#: 3| 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'_): 24πr::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_F7F8CE57-09D7-4791-9002-D4FDC21481F6
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCgAGBQJW4mzcAAoJELzRDw+wKgIyPCwP/imsozlW1hk44a4fhHH2qE53
fpSBlgoJJJx6J1b1Z+8jOGa/QrN/uaP/ydzm+9pSWtFVfoC+vXFHtfG2sImosWO0
RRD3pmnP5hxKHGWZ/5DqzUFHFwCyAPAphOLZ+Y2VAS8iV7xiTQQI6CpA6HNAMRJu
8TZMomBYC69ua1pZ+jw4HeASlseKNb54erYQ1UkXhM7+mniB1dWf7K9t+uQptghM
FW4vEKXTyjdEXt97MLDRAbe+Sjgo00LTIU1korSinx3YUtREsu7Pfj3+VCoFEoHp
AV8EODQ+43X86k2XE4dJW1NJHAsDCSlU8ArFzoeLOh42VuJqI6+Y+Qu+4XrSaI5U
FBXa5MpfSRYk/snhK8nY10yGXGNLYL/OC4+03t2WhEWtobO8NTs8UkMA4E4psz/l
onnSmoCxfWf124wqnP/ABX5jCZwEja/X+V74xLbLj2z2MvJqjzR4eEs6BA4pHPHW
+1cidTGzal+04HVuVryC/BOvpLam93/87A5e1+wCrkljyhAX/Qpjkuug7zoVpjpl
73hWLPaumCo0x50yy29WFGBlWxNP4PJz4P5nr1PQDzk31GBx0mQBvdxmlZVH+7jB
fBwN4HC0pUuQvmZrc9FQuDZyCR8NI90iUFUZ5Hm/TbrNBqq+8K63q0zOz6+qMgnt
ibNViFEoVyuZJM0a0MMk
=t+dF
-----END PGP SIGNATURE-----

--Apple-Mail=_F7F8CE57-09D7-4791-9002-D4FDC21481F6--
Avatar
Daniel Caillibaud
Le 11/03/16 à 02:26, Bernard Schoenacker a écrit :

BS> sed -i 's/<block>/,/g' 's/</block>/,/g' raw

Il me semble que la bonne syntaxe serait plutôt

sed -i -e 's/pattern/repl/g; s/pattern2/repl2/g' fichier

--
Daniel

On ne peut pas juger quelqu'un à ses fréquentations ;
ne perdons pas de vue que Judas avait des amis irréprochables.
Tristan Bernard
Avatar
Yves Rutschle
On Thu, Mar 10, 2016 at 06:57:46PM +0100, Bernard Schoenacker wrote:
le document ne se laisse pas faire :

xsltproc --debug jmb1.xml

compilation error: file jmb1.xml line 1 element root
xsltParseStylesheetProcess : document is not a stylesheet



Bah oui, tu ne peux pas faire une ligne de commande
aléatoire et espérer que ça fonctionne.

xsltproc stylesheet.xslt jmb1.xml

Avec ce qu'il faut dans la feuille XSLT pour transformer le
XML en CSV.

Mais libre à toi de faire des regexps.
http://blog.codinghorror.com/parsing-html-the-cthulhu-way/

Y.
Avatar
Nicolas BUONOMO
On 03/11/2016 10:52 AM, Yves Rutschle wrote:
On Thu, Mar 10, 2016 at 06:57:46PM +0100, Bernard Schoenacker wrote:
le document ne se laisse pas faire :

xsltproc --debug jmb1.xml

compilation error: file jmb1.xml line 1 element root
xsltParseStylesheetProcess : document is not a stylesheet



Bah oui, tu ne peux pas faire une ligne de commande
aléatoire et espérer que ça fonctionne.

xsltproc stylesheet.xslt jmb1.xml

Avec ce qu'il faut dans la feuille XSLT pour transformer le
XML en CSV.

Mais libre à toi de faire des regexps.
http://blog.codinghorror.com/parsing-html-the-cthulhu-way/

Y.



+1

Pour transformer du xml rien de mieux que xslt, et ce n'est pas plus
compliqué que les expressions régulières. Je peux donner un coup de main
pour démarrer.

Le xml produit à l'air assez sophistiqué, cela ressemble un peu à du
docbook pour la construction de la table et je suis assez surpris qu'il
n'existe pas un schéma et une feuille de styles associés.

Nicolas
1 2