需求描述:
编写一个程序实现随机产生字符串写到一个文件里,一行里必须有50个字符,产生100万行的一个文本文件。
需求分析:
脚本:big_file.sh big_file.py
产生100万行:for循环;产生随机字符串的命令(mkpasswd)
产生一个大文件使用重定向:>>命令替换
var=$(命令)随机产生字符串:random
随机产生的字符应该有那些?
a-z A-Z 1-9 !@#$%^&*()
ASCII -->python -->33~126
一行里必须有50个字符,如何控制?for,while循环。
使用shell编写脚本
[root@sc lianxi]# vim big_file.sh
[root@sc lianxi]# cat big_file.sh
#!/bin/bash
# 清空文件
>big_file.txt
# for循环遍历
for i in {1..1000000}
do
# 一行得到50个字符串
mychar=$(mkpasswd -l 50)
#使用重定向 >> 产生100万行
echo $mychar >>big_file.txt
done
# 统计行数
num=$(wc -l <big_file.txt)
echo "产生了$num行字符串"
脚本执行结果
[root@sc lianxi]# bash big_file.sh
产生了1000000行字符串
[root@sc lianxi]# nl big_file.txt
1 rhredp6xhcgpnqjydfifumbuisvbZVq2wqxpt-ictcthkydymd
2 fviipkjbdtukghpdqgsfthbtshajs(zyyaiadcXcuohn22mchC
3 ovlyodzosPkuehx"dhyunwGilmgueovwldxzxnl3bozcfcma8f
4 8|eoerqvq3slapwkabKxhruHytgphnrbgygjirwmhsokvgtnpk
5 9znfXdenmlnowbdewsdzyvxptxv<czgzbxv7lQiuomibgxuylf
6 lgqkfqdWxejznecocltzsjwvosjij|h0pllbck8mdwrntlnaCd
7 kyh8yutldfwiigotpnhdcvriGjsexGravwdszdo,saplsl0nol
8 kcuoxtsfhsbpqc2edcy+kzpbvsrenowibsfbF2xWpyayuxcqfo
9 tdisedmomcy#wouvnzjgpqAymFzfhrvmjivucsftc2qlzpci8r
10 pkylknssrarqx8vtmjsgaGxyeauqaryvBypdzyt{xrykot4qsw
11 tScwsuzrroieLfjned2chkjkb3ztnwueqpmiklhbugsbqtv,nn
12 klixgrxbgayfhodncKwkgfjj2yQ5stxkimboyrnsddfrr{pgpw
13 duogvhupuhlisvmnjszytzae1[gfxgwqlybaoPJ5qlyymwyqqp
14 juudfGeepe6zghQzk,cdxldenwcezlibgsyahhiyrbuetyz2me
15 tjjatjnoddgmxqinpdfpguwzisegrYh%piB2cvviak3utwrzgk
16 Zekhec6tnnayeCcmdumymln[szwse5jcqjucjyyenhqavemkps
17 ZexahlfthvfYthanraoodycmehwbt4js1rehlehygqslb"ofoc
18 snfbmseewyvajkdvv]emebTekgdcgnwmretynorjqBpn3casi7
19 qaxsw)zgqcxdinzzmfuimcmdvv5prznntacPgonqk5jqamozMf
20 koipyutRymdsgfauampc1yxjAftwcnvyeopkhoxnums3p>tpqa
21 wmgadpjnfnzenqogqnpPdwxltoFrpyjfrriuvufkzt52g*gdxj
22 nzp3hcytqfuhnzmdmrxzbi9epro!gqvesCtvxgscnjncfzEyin
23 z5qlwfpbptnageughuvdquterakqKyo|dizesWrdxypwefff3t
24 uoc~wtyixemlukZvswajgxszgtnep0gshdmtyzwTlunjvtcu6v
25 6lpdxfuiptbjg}picyyndqfvmovwrHufweq4pjsyhwxazkHcxm
26 rhWhzya|xjurdeqvnuoPwpkw9maatgmowozlvisuqjo4uumbjy
27 gcpicrdyemmxja0an*Mppudivzmigkdaffwrz4fjoPkymcxoaq
28 o9maqhhjrpumuduzlimoVjilwq0gegvAxlfyeqt}wyvbzscgeh
29 gjvjhdeygGmsmtizxbyhzpvrquq5Ytsrlecdsxnbenkzqvb[0x
30 wpbuqtjgB_szpnkfkgvjlhjspmfeayuvlvwatav3mupRja3mum
31 gwkxdtqjelseptwfacxtv%wqpojzttpmocngdJrs5ki8Qkjonp
32 sz5momymvdefzvcgv0lttqtuVukphhvpsxesffjwn!ygoPglnb
33 vswzee4syhxmxmekw|nmvpv6thzlxqlplrjqnltWdusdAlfsfp
34 hhamzlo7tywspfwtfSmnynevffubygj.yspspi1usxcqpylzVx
35 iqgj2qkbvuykuoymckwguybltsypBxvqr}wyhamwzZuatihme2
36 atsbzXkmafsqsxpkgsywpco9fpezrlap4uyxpnxaojmquwI|hf
37 rmPcinweezbfnnqvjwyutHqqtubwv40olchofjkxjmj"tonptr
38 iBpkkaxzuwezcdgophnsu8rivbmojawn4vbqywM,ftkfvwvjyu
39 vmkuBebiqFkwfxyzayzrhk8!dplkmnqzlzhdfunoqzfxemt2at
40 isxjUgqymxxqxrpfrxgz6=bnozjvxnmxnzxcgrwIpgm8vobtuu
41 vrexdoqLjbedVyjapbmpzq6mhkd]opwsb8keqfvcanhxprblmg
42 k~cykiq4xrzc1cxLswhtzwyxuiulBhklkhxhdtytbnhbqiiglo
43 isvylylhfuswsbk>zmfq6zqkohpylnglz8kphqlaZqcKnowaaz
44 arixjwwhl+euyqjkatxn3ughojgdsnuuziokteqbyct5RpkNgv
45 wzjaxc2ekmszglwkyfsxsFewexpzlvsgVxqrdytkbci}fzn9nw
46 aupuzivzzgpparawurofgpl,sjbolzfc06nywamcWhgalvkmnK
47 xgzpgdoekbkdnmol7iepgbtxm9wigohnt!zalgpcfnxwlYVoib
48 kzBwzvc/7ed3nocmtuxsaNssykwjyrmacuyhdtaihwntolpqit
49 kqnjtcy1wnmr3sbelopbrxoae<lwrzmTsqtnnrdtlxqamvhjDl
50 uiu1splxgvmiabzitgotbhiOidZboondzshflfuyhzbzgc3!up
51 cin4glxlhxyidyuownzj5xaeqvAxm~kystizswfwujdpwvdrxC
52 ltt#v0indvgrksXvxlbyjcolyjfw9fvbjGkuxhgsibaxawvpee
53 qlfbVrpslkspfgmdl;selukeyr6jmtdAzgaollpawjcwqjgce1
54 k*uwekjdaneaqctsXiibqpqqglvrvloofxn1xjvl7Zatgrzzzq
55 ccxlarxnfxivzgaorcvjynaxjvrnL5mxszuUalex5(iodxsfji
56 ymmnrDfjjoucnuvrbccrffdhzjO:parvxsztnr3bb3dyioyjvc
57 xxiavvqtdjewrsm4hmsjkvthcrsF2xv+ipeiqwuetjQnvfhavd
58 1hlpqdhgyrEcfmbljpw2hrjmnxjiulpCpkeuxyvlzxgxk\bawu
59 vbnfe{ebuktpmgbrfgpobHnkukust1jpwpipxu0ywkphnknnLj
60 cuwUcghbnhewPczq9qcnpazezpivgyk2h@tfzefyuaqovimvee
61 vwiwt:nnsXkxhyyjpsvrzjuzonhvwluwRxr47upnfpekkqoevr
62 cojyhstdoreipmfocbsvrwj]9bknnalwxzmaA2iuwuqwvKynql
63 4gnvt5bplwikgxa*HcxifxgfiFzmipijwontifisyusqpeyzse
64 eiyywepiziiddqrgvit/vujulxvKxhmg11jfcoTuqtaqrkemjr
65 blgYwdwkkyt@zifbwpuon7lnRzjtnykglpolby6kzycxykmtrv
66 xvxukinpnbxaxxfisynyuQ3fzbnxxjlrkrhuSavvrizedak9e<
67 wjsieri0nzdsewak5oh.RizakgtiuuqvbvgwuptSioequndpwc
68 z*gzuhernwnrpmvpuiplbrhwtpjxyuspa9usrwafsmOKjy5vrd
69 udyvZepiyzctcyegaOpfifkkqpjsq3u#ldsixqas4tzuvttwjv
70 pytgjlcq0pexlliafpyiqircezapnvv4ddzjqjylN;zilKiugr
71 jsimfhrsSzkeymhsuipvi7kfgdux1Nsnnyxqtrnjadd>ojdsxi
72 dboRfcvyllhrumyqspmgmsgaaprlulifKxgpenl'yakw1lz1ba
73 xycpswxwbkatbeezlYltn{bwup9tg6hjmjyrgnzwskngptslMi
74 opvvx]ofws7bfkpapihiuawxNnmhcreygsyfsfmubbfPv2izot
75 rosgbki$vBhljisfskffuqepdjir92rjJegbrpaipjflmusxey
76 ldlaq?jmgkrszetmhvtpGjbng7gjswidluetztxi4krnvbyqeO
77 lvIw1yujtkhkbnvgj*iuyjtlctlhibcsjqydkxk1wBhruqmuxi
78 cagncsqfrznfjtTnx(dIuanerej6fkzekk5mogrrznznibxnfp
79 ujtlwzyjtkjUntdbyzwptrg6ydeyo\fdoxrwrfbv8mWhtiiuzb
80 ddxuh9cefugcaObpEiaxgr6qzpqxurryjeciahlcrlezcoz!fj
81 ggjrqbxgmvazqayhrztc5wiizkgtgrgiucePove5lpoxvfp=Rf
82 qtzpyoetffmerrltc6cjzszlzLxgrw7zooyvsmxmhwshX.tasz
83 rtl+gofCuobewdwqRuouqun9mfqujqagxe7xtlyntbcfxbqfzy
84 bzxzx}Pqgcafjngoqemupimg1cktrdrdiOxggoijjfvibspri7
85 zwuqoa2ryzrdmsj8mekbeqw_blywtggRgurioikqhpgaTzrxlq
86 cfcWimv1uansmvadHgyoztpidxzzovrrok5iydrag/bgtwpuci
87 lymju9nzvp9Ogcl-Kxpoygroeihscypdqffkaeitarmjwsbuxu
88 rr8xookueduhbLahrgFrcgropzjbtllqq4mavbyhxfgjkno$uk
89 jhftvwrvliuoodxtjrpq3mzna3z(zdqqvrvhpspoUWjjhtzecb
90 hoazzo8tiyebcbh)dbqrpgkxoflklobdwyMbisazopkEe9mhbf
91 eaFeyqkdilydhgrh4ulvt5ejwkzmerexiunvm>ftsafvpPtcok
92 nwqsmoVuvlkimxtslbe8aeacjikqbwdwm:xhdwxuzdswfy5Zoc
93 amyphkfttmhfovndraqcdteTvrodeap4pmqsmbDwkkqos}er9u
94 ogoujbowqhmydaosmtaiuif/jjqhxknzukNhm8lw9anjhmvKol
95 ghbjmfekkelmpeufdvpb9xstenodd1ihwIjalolcziXej?hyvc
96 raah3fkxrruhhoc^iueqczvmzsosR7dMgaovttfsukbozhhmxk
97 tan(idfeiwiSxfiljemkvvrbgzmavqytcg3gxlaiovvhriHtc0
98 hquBzgtvphrhfawmasxcunu7ykhkpeftswbd6ow#llQqyoqzjg
99 ddzfwbzfmpbkzynskkxetdotorCkzcafyhgkx25tqqqGwztur=
100 pbmnt7zFcka&hfwtunabdancqswiFhjueqyhdnvhgo8fctttcd
101 z-vxyuonlikautckbefepOeabygfjvq6wwphirmiomhh2nXywn
102 tixprctklmdgwiimgwcvfwebxrfgqmzr01Thzauqmkb(iflnlW
103 jrubgranmzjkjccx8eo<lurgaPrffyGvzchjp2qcxoxrqiehww
104 tltzobs2t>zvztkwnlsbnzlv6xrHcfpymicwtuawmgWwjfeqkk
105 fnqmogy$xid8fagezs3fhdfbhTkietkqpnejpidffrkpHkgrlp
106 ihwrcanmnt3ulczqdmwevavtfovxhapsoRxlofVlu"ecn7evur
107 5pemcijtnjlwzymldctnbzbixiqMqbnte7gfwanxNeziyyv]mg
108 idmWz2cxjpbcbnxoxmaaDdcpcrnwcswrkv6fszxccdhpd~rycb
109 ojrwvylwplqya\jlvwzVeavopc07rnurhiyqsueujrenhbVgns
110 inwfElsffxmsff4by^elicbpyaoxqOegvwcgibxwx4gnffmckw
111 eobowgkhTvawlob6jq5dlddjl$epgdqmvfkiqmpVazcjxenqnr
112 djclpeqinlf86fd"ubqhjtbwmezasfkmghRkwznsikoblgxHdh
113 oNukuvyeegetaldvqaazhae1glpgrbxnvgbsyvodbtXxtszj5'
114 eqlzyhorpgrluvsuehqeMesax(aZtnuabqhincwp7lnkhhdir7
115 csdpt6fsrupbqpqvqzufotnhchCTrrxccoflfuo%vssm7javxa
116 vgoqiZbrzrW&dmkybownwosxwhypcakppmmov8ah4vnetonbti
117 umbBg3hvno6jrevwhctiqhjsg?ctAcwalfqhqbhczwefttqhyq
118 5buahqpgmor+Puidj5cywilaiplonDezekeywqzlsamboyqief
119 wmpynasall3bkqn6Oohjrkm@hdkadwktnmfnmkuxumebgfjXte
120 bSowan8dXokxtsdkkhhrdxtncvdmnra/xmprkgs1clttfqybbz
121 Xolzvqm9iraunzsM8lh_jcpcyawtlqgfoygdalbchumuiakrfs
122 kdtzcbfumfqaRtybxsbekvylx:ixrzo7poewuz2Tpuctsgmtah
123 aEOkndsxpizdeimvzn8rcgwxzeuknuztmlikxryfb0wmthw{ja
124 qkCequhbvys7bctuwtwqouozrknxmgcgf+fcbZzihununrnz8l
125 yllbwi7ayrtbjtkwxDbvwpgkcuiemdiztkexswi#bolvhaqlO9
126 encopjvqu7etvnpmketgftvpokkqi_kdqcbwibMPvx6bjwpbzq
127 5dlunohdwmkxXtnfnpqjbtefqritqgbtlyiuqvfii6vjpgiOp-
128 dppdzkdexifksed4aXamfbzakiwjljwd2,tyrsmtjgpqozicNe
129 k5jdryvhQddobklwyc2vqfddvozfnawmagerrEx'jufnlpgivj
130 qcaaoqimx%tyqwkkQejgtpbnsfpu5mgvjyatg8tmtymCbihzsk
131 urxslnnwxqvjtyqs1xlefxjzv9lgeyosvosxikdkwtpvywv#CW
132 aoduquuvi%tiwbwxpmpnpwckuYudrmNlwkhaybqjm8sxgdxp4w
133 bmnb4vjsf>zqkvpshmlzzaAffnzqu3wpohuutrjaswqwyBccsa
134 fQthoria5is}asazenchqvjfpacfExhgwch5tjuuhjpdndnkea
135 hio6svqmlmgifvacsqvzfcbgssz%ArieddijwwlqobymmZ4wta
136 gubpencuyngemdr>ttu6xgPrqujdta3wxihxalvxmcqnmdtVqk
137 rncyhwjdrimwclqxtygl2bsdd6zpmptgwnnfFhilsreaesa,mK
138 b}jx2txmkyDamnlau3ighXcvcvrmbjtqaekuefprlfviynuofe
139 rulafhq/kdiljeinnuaqinkIpdkrwrKii6xhsmyz8recvxhtcf
140 3gjzs>wxI7aqsbpblfgdkutwmejgfWfkfsstkofbnzvawhjzkm
141 vhmkv0hlxeyvhllarHemkrsxXzgjvyydlu3raut;enebdfaqts
142 Ug1Ud8oxwmmkb#rblodztensaessacakyttkqbbvamjqxgwogj
143 rwzllnyunlg.tyBsddxdden9gwwjhyvp7Uzfzgsntyshykjmcf
144 kvpayer\ebvvYaaapGxash3xnrfqvtprpdlvnbwqzxltlqgjn2
145 atygowihpkJveuppkcizy1bgl~yu7wiounwgibiamooxggjenG
146 bbx<gcraskvuojkhw5utvtkScfyr5nbbnfrokglfNsyhomrbqj
147 dghogmtly8hma@YdmdmaxldblfpajahfmpcFlepdkpxl8ydvhf
148 bxyhtFvww7krnegbyocjmazozqmqqsSdcylp7aorcyqlbjntg$
149 tyxjaqxhsielg]tkk7pL1bwfvqbxyndjDxmjreqejrloubrntw
150 jiniujyjkru|ivP3djunvthiyWimqljwwprnchnrtlklsu8fid
151 DnsoiWakrzf0myapqzpygvopjrlgiedyfqlyakkj7ji/ozbaln
152 gpalrw1pbzy1ykgxfPLdgjefpxk'vguithnqknxbqexxmvwzam
153 qeglud5wtohEegfwvwuuxtzkykksvlmcgmzlu+u5ukeessPdac
154 x7vqji7lvtsQzrilpmzvaxgfyhotmiucWplmt*xppomgybdblm
155 7xmmctd6TLudxfeqeypzsrgprutypkjegnwqqdnvfuiozoxic_
156 kszexvlajhaavuybvncpctdGcvZsibt$uz8mrmchuzd9mzcmio
157 ggstzjjcnx6tzdjsqpexdnnOwtawoaxyccY:qgl1zxvkhjxqhq
158 BgmsoCbxzxakkjrs0xqanrtvdmpxzxrvahfpqasgxweft"z2vh
159 d5eqpobskzmaNnkfgimybduazsdavblqdpjcdficiQfyk"8wbt
160 pijcfkhdsrtpqcorceq9tjmf2kG;wgfycFwkdedixupfdawaxf
161 ejtvmydbofyj48ymktf]LEaaihokwfghcypihdndxkjnlohysd
162 djmpszPib,hmhepveI6baxjykxlpeahyzksdekoup2ryioyqov
163 aaqeq^tiihvagmoqwlves4hlaKjfbuvs7zrneiDdastfbqpwyx
164 yhanblaCzifttmzwhrxfda0dx,nkneehbaorpgMjwwxzmps4we
165 anjuvnjudwuxicuXohqqgpoodqd"noR3rbuuebztcq8nlexwqy
166 pjxcwioNo{glq9aazt2sbmavvmmwaxyrErvwjhuvkjvljnofsd
167 kBgyympneqpbfqNjgsyjgfhgvcg^97hnlkuisuxdvwwktxvpsl
168 vhqpgfwsiggocspisVUkp,zrjopvpsjeev81hdagyxeysdjjmm
169 bnx7ugzmobrgwSaeuadhzwmoKxsdb>aqtmsludrtjzeelagj0e
170 mkypwiiukryhnqu[xnitdyupzhivlLlhrgfn5kgkgelyRpgkn8
171 iwhdm,nizmbbyuzrzclovbijqkegFAa2ktvzpnnurmyo4lemnz
172 kmjnGdqrwLfvn0dmpu2xzqdjiynkmkbodwlfrimvfuh(kvnvea
173 ogncq2edruyuahrycdbvtyCbwbcvvblTorlgvpgoiz8tiyk(es
174 otn]qAwzbcsmdwrdgfEvvrte2qcpkfklfwlxa7cextyhldlrqk
175 umonvxmKm(yhWe1hajfhlgbfn9idkumlwvqrkgezsepyvllodb
176 7nqmoXwzi:dgOxpal0acgunbwmgdmlkgcmjfmjyadknpmpabmt
177 swmrbilpfow2zcnruadsdgtnkuauhgzamgCzab4armgmbmu-wC
178 fsbmoptojweer>sb9tcgprzuknqyaalrbYQheun0lsnsnvwaam
179 fsbfokzlztoiczpbyaNxqsr:aqoppfxhrTnxzqg2plet7cgyoc
180 jcmhfzabgxikp$zilk1wsqsygtrxtky5sEgrxzAlibwoexfivp
181 gkior(9cvotshhyfqdfylmfjwyxjxHhxnemdfyRkhxermuvbq6
182 nhjrscucznjethlmvhv_kzyluacwrqy3ggfjgc6jppCFzgbqfu
183 quxtewmtognposm3skjDrd8ndwm$jyuennwbfgOkzaymfrotug
184 uaipkeyawkrnu0hxi*jrsr5sxFMtysrudpbspryybrqowmwlpe
185 ruf}jwFjtwxjrtjvnt5kyum9ovweuhonrdzFpbcpxcjhbgqjrd
186 jinrm3hgrzuiduZfxs3vprpfidoksqqkqufhwSa/brqsphqbtn
187 nhahb(gnznfLip3ftytliaffxvipc9nfkcxlcgyjMqnoqstglq
188 xuvlztscew6cdup0edXwzruwgen'hntsvqdTolyrmtpjqnrdst
189 niwi1nqwzuGqirdszJolivxzseelngybcgssflsgyfb1alq{jm
190 jchmPcpncxwnw3sqmwfrtjazsVlzaxnxwcoqb=8iyjjjrvvehr
191 pfexs^okYvrygtiw6wmnskkdxfanxsqrpne0kbogcsmprpjLqe
192 emxmnahfcjitripniwaoseqvcpjucrx6gwmfamr'am0tiasBFl
193 lkvqtZdqxmgrKq9oaqmtllrmemvrzhv4daarmbifkguxybf\tx
194 wictzdlih0voqqvtz;npMaibbhiAspgmrn6pfpbffrmsvytsob
195 gbxwpgswimyegswcdxqlrngjyClghxa8Wquuwtemfu6rtfzrz?
196 buw,zRbhmpzi2hisfhbygjrxfhuuSecxryvrmxqri2gyrgmonr
197 jjxhkBaepweoyasdodwqdoWsgkipmy3cooafobleb5hbvbxud\
198 qremg[ywlejelgdrqvHVhdhiwejtturdhlebpvm07cvnjnrwxz
199 gwiWuxpsyfzmuzjfbkndakbl4[jyxdlztkwthyofiimaN2vkik
200 eqdbiybwglyhud5tvncjaqakrfolvdtibjy/mBgxsim5zylrNa
201 tjwdoldsvQungoywq4anigk%aldjgkqvyv1ssvhtDxnvdfzsag
202 bQoku?uvgjmewvdyohnasmgvvxxqemSbkmggaryls0sdaw9xwh
203 0huxrrekthgxwqoli[Gtnewssowfhhqro7yTxynsmxeftluggv
204 yHinoqjuvzlo4swddwvxquhajtqtmum=rbkpb8zgxtQzzufykm
205 thu*iure30ikeogrfdBhpsrdsaxlnissyfgMsnqjjvwcwsybzg
206 Bbreq:jfhvjrjhkollls58kckgbtvxqNbmukspdxfynqrcqoru
207 rxlyti5aejkjbdptlyKKfxmhbnezhrmsaohxl4zvkswoe,wlgy
208 piknzlcsq!hc32eofpvhiMathigqmnMvgvkfknuhatjployrdz
209 wbvshtvoxflhcwojprzdhbw8xcfzpwzRyvgfykzv6mgfEfm>sz
210 wadmugkroqa6bmylagkxaOkhvqld7vwfnpm]utifsibyreYawm
使用python编写脚本
[root@sc lianxi]# cat big_file.py
#!/usr/bin/python3
import random
with open("bigfile.txt","a+") as f:
for i in range(1000000):
for j in range(50):
num = random.randint(33,126)
character1 = chr(num)
f.write(f'{character1}')
f.write('\n')
执行脚本结果
[root@sc lianxi]# python3 big_file.py
[root@sc lianxi]# cat bigfile.txt
o]0gpfPW[Wpa{#tt'h^i7<(Ilbh'P;GC~Y))tg[[|b>B?.eF}M
B/x:WC6hOrQ:lTn#L8h$498-U#YBGqdcSYa;r*<trIM|G58@+Q
8Qd_nSrwNw{~_M;%7@AO'x&gF'&On.7S2gE)v5,Ik/yCH#&CJ$
PqAd,CPHMkEj@"EoMfg0%skVPAaZnG8;g^_-q&SB$3@YK/.5Ye
n#V!u}?gYVjZV;-\AuN^Lv+=bts\ljKj)oRV/2cBT:U1p}|dxe
\,6MjTl_%J@=SXW?dw2'hm-7Np]CS4{6<l>_^D`^pdR_/CTV8@
NNzR9,Qej+.@bDd<=6v:C/&9;)-i",fEdcY2J(mm!(I,?c&yt1
Uy\p7G'c+j@&x1vhjZm$sbVQtG*N7^|?MCYkzg;?5/ej&[!p{*
BUfDd:u[(MoKqG*<4en&>S5Ho/^+q!a@IY/k'<XM:_pg6]Q%yZ
@(~u)zf\2[}w~7z;:(QM4"=eUqv<s6wNm3:=~ydmFV7~!P$9"P
r^T!@~Z|j1M]+d<TGV;i(K,d*RyNAg0%"-h!I-d=coyAs9F:s1
N?~r/V~$d?r?H`#n&}_KHXvjDtlVk|IU#O)}%J.L&D@"oNfipg
K_%u,E;g.yxI44^F{Rq{up-+-P5:C(`f~;@4G4Vfd<!l'arLN[
}m9LSE@57>l{Zy9<YDdVl=NZUq[#!^'y&EQ4[b9/M\7tP'`n}{
Zc}RrAB8]5{"~|q&YmT=jd3v4U|?$ODDrox(P7;*|}njm0,dTo
X":WisXVZeO71,5.kbu|*ie9jTSd:@v`AlL?VN!(V^w-6@b+YB
0c?bK5W|Qg38]OAqr)7{'8%s)OLwIK=T]6"m|}d#'na]W*M]}s
J_h>\e6&f:?ROI-s;'?V>Lalbc]S!8cfFT(<E0!77jV{5::chi
g2V_$l>v<S^t.\.e73,U5CO?t|_Nk\8I.`$aOI{o/^oD]xjc~X
q8cI}OSeM`>],NTh3<M#Jt^nH{gW-]xs2$)Xdpsiv7;[Teqzx1
!#*A6mMy8f*h1kGrsgce~gf`|k3j&aNU2<vWD|w34kIdttgZ&*
X;_q7O|$)6U7s_kpG$M@4P5j[b`}mh?r@z@VD#?lcO6=ly:@[P
7`f>5a+Oz`O+E$?n8pAka`!7USYY&q=M]|kS4Y}lMWo7V,z^EG
74+0<-+Y<YEYVc^.>R6HG%HL^?aAaUilfw(Wi@fdI?RqT#Ac8z
^_FKuiCZ6^|M]BWM~~]U#vi;UTI{$f@qb2'Z]FM~q<6n.tkLkq
\q!278DQmG"-["2NQ@qw(;wA*GonkoQ)g"}0%(Aoj'o}d:Q-)2
x.':~/{$:O2u>ake7wTSH3wx?[^-j6:3>Q)(m,b|cSdsGW-,m3
y6Z@T_Z[JeNo_FQ]ap1)'aR{cJs'`W!Es9lyc.;Y@-ip!dD?Fm
nP-h~-;d:YMO1:a2Q_Sk&Ia78;%UI>_>A\e,P(MUpL{|X'~26g
M7BXN5Auu<fBE*\R;f|C3bePGB*2pJppATQkR]NqknHDH3UkcP
-|YLe,zq(RG\H*V6]VR]@(ZLZ#jF}bJ72xZ-gz$`\L"qA<SIV?
W/}NAiLU&Z7K1LFQ%jtp"U`Cmaa8`(DNn4lFV`Z0BL/J*XzZ]J
ZRA9w7+$&tsSU0'L1={*Lm*VevFM^n0~Lp=I63R1NoVK\J6<[$
q}?TQ~@o@)vU3-QXwY[uASB3y{k_ke$n'+kD/6!ipF8j$IK}JR
AO0D1p0?tO#xyS*<h-_Zj(&pWjn1Dq^qD}k,}[/Y4E211hM,x`
:MHPv/F`!P%9ElQgdX'u*K/P%4'c9q)|]Ew;-Acw-/Q]3R1?bh
_hwmg_DE:,lEi-5TT{vMSO`}8V+4>{}Z&,y@qLo-Pm!="8qt\e