From 1c66ed90cf0eecd3c68fd1dde9ce54ec26e3d6ef Mon Sep 17 00:00:00 2001 From: ecubeproject <161934000+ecubeproject@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:38:58 +0530 Subject: [PATCH] Add files via upload --- app.py | 127 ++++++++++++++++++ models/best_xgb_kolkata.pkl | Bin 0 -> 749911 bytes requirements.txt | 206 +++++++++++++++++++++++++++++ templates/index.html | 255 ++++++++++++++++++++++++++++++++++++ 4 files changed, 588 insertions(+) create mode 100644 app.py create mode 100644 models/best_xgb_kolkata.pkl create mode 100644 requirements.txt create mode 100644 templates/index.html diff --git a/app.py b/app.py new file mode 100644 index 0000000..d9b7675 --- /dev/null +++ b/app.py @@ -0,0 +1,127 @@ +import pickle +import numpy as np +from flask import Flask, render_template, request + +app = Flask(__name__) + + +# Helper function to get location code +def get_location_code(location): + # Define the mapping of locations to integers + location_mapping = { + 'Baguiati': 68, + 'Barsat': 79, + 'Behala': 86, + 'Bhadreswar': 90, + 'Chkravarti Para': 138, + 'Dum Dum Park': 175, + 'Dum Dum': 174, + 'Garia': 197, + 'Gariahat': 198, + 'Hooghly Chinsurah': 237, + 'Hussainpur': 241, + 'Joka': 272, + 'Keshtopur': 320, + 'Konnagar': 348, + 'Kutighat': 374, + 'Lake Gardens': 380, + 'Madhyamgram': 392, + 'Madurdaha Hussainpur': 396, + 'Mukundapur': 450, + 'Narendrapur': 480, + 'New Alipore': 493, + 'New Town': 495, + 'Rajarhat': 565, + 'Santoshpur': 604, + 'Sarsuna': 609, + 'Sodepur': 719, + 'Sonarpur': 721, + 'south dum dum': 842, + 'Tangra': 737, + 'Tollygunge': 763, + 'Ultadanga': 768, + 'Uttarpara Kotrung': 778 + } + # Return the integer code for the given location, or 0 if location not found + return location_mapping.get(location, 0) + + +# Load the trained model +with open("models/best_xgb_kolkata.pkl", "rb") as f: + model = pickle.load(f) +# Print model information +# print("Loaded model:", model) + +# Define route for index page +@app.route('/') +def index(): + return render_template('index.html') + +# Handle prediction request +@app.route('/predict', methods=['POST']) +def predict(): + print("Prediction endpoint triggered") + # Get user input from the form + area = int(request.form['area']) + bedrooms = int(request.form['bedrooms']) + location = request.form['location'] + club_house = 1 if request.form['club-house'] == 'Yes' else 0 + rain_water_harvesting = 1 if request.form['rain-water-harvesting'] == 'Yes' else 0 + swimming_pool = 1 if request.form['swimming-pool'] == 'Yes' else 0 + resale = 1 if request.form['resale'] == 'Yes' else 0 + cafeteria = 1 if request.form['Cafeteria'] == 'Yes' else 0 + lift_available = 1 if request.form['LiftAvailable'] == 'Yes' else 0 + maintenance_staff = 1 if request.form['MaintenanceStaff'] == 'Yes' else 0 + jogging_track = 1 if request.form['JoggingTrack'] == 'Yes' else 0 + landscaped_gardens = 1 if request.form['LandscapedGardens'] == 'Yes' else 0 + vaastu_compliant = 1 if request.form['VaastuCompliant'] == 'Yes' else 0 + multipurpose_room = 1 if request.form['MultipurposeRoom'] == 'Yes' else 0 + power_backup = 1 if request.form['PowerBackup'] == 'Yes' else 0 + indoor_games = 1 if request.form['IndoorGames'] == 'Yes' else 0 + washing_machine = 1 if request.form['WashingMachine'] == 'Yes' else 0 + car_parking = 1 if request.form['CarParking'] == 'Yes' else 0 + sports_facility = 1 if request.form['SportsFacility'] == 'Yes' else 0 + gymnasium = 1 if request.form['Gymnasium'] == 'Yes' else 0 + + # Preprocess user input + location_code = get_location_code(location) + + # Print received form data + ''' + print("Received Form Data:") + print("Area:", area) + print("Bedrooms:", bedrooms) + print("Location:", location) + print("Club House:", club_house) + print("Rain Water Harvesting:", rain_water_harvesting) + print("Swimming Pool:", swimming_pool) + print("Resale:", resale) + print("Cafeteria:", cafeteria) + print("Lift Available:", lift_available) + print("Maintenance Staff:", maintenance_staff) + print("Jogging Track:", jogging_track) + print("Landscaped Gardens:", landscaped_gardens) + print("Vaastu Compliant:", vaastu_compliant) + print("Multipurpose Room:", multipurpose_room) + print("Power Backup:", power_backup) + print("Indoor Games:", indoor_games) + print("Washing Machine:", washing_machine) + print("Car Parking:", car_parking) + print("Sports Facility:", sports_facility) + print("Gymnasium:", gymnasium) + ''' + # Make prediction + features = np.array([[area, swimming_pool, resale, club_house, rain_water_harvesting, cafeteria, lift_available, + maintenance_staff, location_code, jogging_track, landscaped_gardens, bedrooms, + vaastu_compliant, multipurpose_room, power_backup, indoor_games, washing_machine, car_parking, + sports_facility, gymnasium]]) + predicted_price = model.predict(features)[0] + print("Predicted Price:", predicted_price) + + # Return prediction result + return render_template('index.html', predicted_price=predicted_price) + + +if __name__ == '__main__': + + app.run(debug=True) diff --git a/models/best_xgb_kolkata.pkl b/models/best_xgb_kolkata.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4ea2445067bd210a5931e510f79d7169ced68b20 GIT binary patch literal 749911 zcmeEv2S5}@8}^9UK~cnt0Tg15y=(N~cCS#6W{f2i0YMQEuq7s3>>9gh47Sr~qLN~Z z-FR}<#6pZFCK|&RHBl1{G0nu3|9xj~_71!~F(04b&;Ng;FYmOSo%%d8v$K0z_tk&7 z5o#7UnLa)_J3BAGd)~y%)TG?3!o?mVl_4>y<8xE<^0IRaR~2@Cx$wopPK!OV5>oT> zGbSbFXXoY>M*LK3af9sS38~}qGp42%F80bz9X~j4@|2|9)RffRT)1#?gGou#6H-!h z^3w~$>MU-EF1W+g)V#vT#r4pYoRJ0AM&om{rzPZMXJ(9>0Zvbvi;S%C3Asu6sfEhn zWwwkqn3|fKoSm1EkFn~}Jg4U3_4&D}sR@%(^V73az*%Q}(xgdAg<)i|*QAWBgmLK^ znJEd=QZvS<=R;^?Ay1k4NeOxRsX5@&Aa6=?UectT%v5kRp*Fm^n4Z_T>`Wm%A$bPg z3ZgZ2^vg`0nwklo6(VM3r(nbeP%8;ZnK|i6;An`B%%n-lDd_Ub8<&)s3gynT=dNLL zQeJ98-ni^sytv+^jJ!O^OQEvho~;g=W=)xtkdu^~l$n{DnPAI}M{ZJ9O7LDOYJ4OIwgk})YKJ2yWm zYg}qV{)`-&-uRp;2^myxGB~#Q!+C1GqUoaS3)bojdGJ_ zK-UiO$ZAAh2p4LX)RkvvrDcp4-Suc!OwAQNJjbVIr9x(f;)~ub(vmVVp;!qSS+s%@ zgbIsg>DKDWY;`MzxINWN3=&$+$wl?D^3!uulTw@nRcLxA;qG~yhQZFSnEon+-K8xiDL1LsjsncPEu_*PX%A56av zg;0BRvHcs2OB$D+ngFTV1H}>bAWA!l^Z;ruGDk0X|{G4g$0PG&}aLS}ZJ9Wd-w?vxM3 zl-xRXW@YinO-+OOPdbGbF@n89?YwRe6!Yr9^Y&0NmzAd&Vw8GQvNF=Lb0@JpG|Zcr znm;Z*AvMQd6pxtd67NIUN4G(Q-=bUh!6i8w$Q8pH*AH8lzqVcZ`jfr`R@-~`@r?KO==S+Ihm6= zEI`Cj@7|BM&r<1pY+PoNQ+REJleM(er2Hwlc8YZCZ3jj=nM=wYpXx~0BBY2pb2bHF z3qCPhmF75YQ!?`Cx`Rzc9M%@%HTI5KH-!>~7*b) zDZ}0ia857Y-qY5F5^zrIP_NC!^0)`XdPsD6#7@hY1l&JflkG64tQ(V>2McU5Rs(tF zlw?)*lsvnacMME5pTSwVDk&HCC18O#-XVTc8ZK}%>^JfZ&q&J;o(hXS>}g_5uLxXM z!?G9F%(3}NX=(P5@N8J~;vzdWYaG<6oq0V%v&WBz+r_~ue4-e?X*jG`VP7C8HAR_} zi}PeLs7YjYcmM1(|B%#_-0bX04gn*QlJfGW$g^P!BO@uxUZ-9WutLemnUV`z45=}2 zjhI#=P4=|Z+z`0)lpMRK8a5HKbCp=n228a zd7}eU#JN(_&{L|hp*mx`uz#)J6FPO`-(lW$dWQDfUnf*IA|Ukp+&N*Yw(o=v-};vN zhaKxfXROeMUUd6eeS6=|P}NZXP|wtxp*L=yVfSyy_MCxK0yD*Xh#Mqc_V5JUpm!e2 z+aXq7>i9{puL%*uT_=b8kj`UyunB2qYFhs2z<4p8rnPF3T3`qf{u42uZW$>Vq67AB z((;AJ7`drgj^%0!YYVuP)czX`=sFQN3y!`p_e-r9WAEY6O z2l}A_dt<>y?Ox2zG`kP%so*{nJUdCrzzJT(D&wCnBiv4Z5|*@n4>xBy;ePfa!y##u z(Cpkfq1LwV$e~>7$vf7oe_NrI`)Y}L(!QN)>rj9766nDFriyP?Ym3NMOzaDivfwVW8*Z_%@1Z(Z#d>h*~!v~1xG^&3-G zh4xLnqTch%N_F^;{j5XSV9XAueJX z*c*d9fMb=b>mhiyXaV8w=t)?&tNplXWh69l;SGjos8y$i%tg)hC?o0ti{Do*gHGLP z@;LSCdx7d-(+;RM**o>4;~8QZ3RVspEF2cnsbLjY&3JYPut^3Ob{_Ca1KJ;C4hZBS z7$l?>=rWLU8-_ugU@HjV+i}c}>KP|GVaEKKA(Y?UmU_DQ!|v(~1APi0uMXE@k!i6(S7lB|F%aT5vWW-is?71Q zdJ!rfI>&=JULZJCYA#i+%%2t1B}V%2h>X!Q~pDC6t{MH(})z?BX5Da1#tXlAe@TS=7m0VUdV9tGGHS#0G$_R0%qz#WZ;(we$7FbgWLe=Y4g{CeF4aF z5R3=73Q8P(j|o?Mi%&=Y-Fc#qdj83_>d2ToVfC8MQg?747W(9CrK+nxyse%#a7U=D zw2OLUrTI91&G%M`?a20FFj;r&V&f*Gp3Ap;UmTI*g2FeqiUP4Uevb2Qr z2e}Kl>Inm-77UbjGY+b5e0*H>!SF+tJ;#F7^I@R0v=5YjhO3CL%pg&rLA-saVJ-U@ zaCIr*sILRATERUKaPtO;KZq8@3k3Xww}a>*t`0P*;kfFpZms)LRd#Jw==KZORBwmg zSD*MmrW$xot18zn4{aDSRy}EFS5=x$WevCVQ_U;&QTHBtQMF)Hg0)w2x$1*0!PZk9 zC#pS_MWNoc!^HNgQF!WYpQk!qiMz96Nu#MZbb~6*QgMm|ap_EzO_wTbc00-0srQI| z8Fk~8hMtfTiSxWVF!t*4^4P5AE8{wrZbd&dv6_#LqK=bmUWj|+Wziq~91XjhGxYQ> z5VFhSKkBUXQD>uAjcyFsjPDHHG!aS^dE1Tuv4%8*Xr)(UotiKS3|;AS^_ zOmod%_G1&S4mnq0Ptsep>sTk%j1%`lV;d!^2HhU3&WIhT@@joiUF&!g^;_res_UJ( zt5VJ#da~A{eASeU=IYCH%9U>h&Qq1Vo@cGUqV!~+AD64HefXntV%KeAE!0#@WSf&> zd*aHy4l7nQU?OxQmw1SSo88U@CN{abG_Gi-3{oSpdv$AL^9%HGX)$Nw5}FmFADY;o z&-@be#|mwX4hk?==28tgHltHWg zEl1Y$QQd%nq8Rgqa-MylNTX=wJw}G2*ldn=bTcF6&%#B2zN+ zI1%ttZ^KK_3|r~5qc;TX#JQ!62>43pn?QFMFJ$>+$JOfF*KDV}=~<#&^TRjltz~7F zDLtF08g%btEs{Aku&>b7$lD_7ll*IKK1jivjcRO?S6Q&hhFE?W;BFse8A zxT|tMuT?3wU$M9!d&9cmYAegEUz%IqxG`E;@{`VTXNf`;x`MYVSCEt5pY~MTsu!;s zYtgYLs#(v=+u7FXcm{|*Gp{f^U}eJDX+7qU#@}|(k??w_XMw<pP=1Z~@IUExKzNU#s~CtOD@vF3+NL7u=k>VO`1 zxpn14Y2JRtJO>7JeHhSgFrc4=0UZJZI%|nS`N0a_Vp&0~t6)G+s28vN!aks-`2j1; z(O~6a!?0ZfDK0?&I*u1Uik(%M1bu)977odm27Utv*HBrcRMM zvNch>HvfofM#C~?_^sa78OirlHyS4@-)n!;eEiEBs_-41lYgv9<_=IZ10;{#zM5}dQLJVu7n#CjH{GHMWG%Pi&EXW`AnM0aC9y))A zL`4okkO6l!oJ)vnTD&Oc+uN5h%dwf^b7EFp-yXYUdiR(yXA;pb%DB5cwqNS{*jF{n z(5?BZgABDR!wTyR|NrUy9bp5dGVXhTU$vY|fOJHRw^eU7pG#1kX-&AJ{&fD1*es8N z`FncfM0!>gc15@`geW$=9gks(wJ=a}V4yVEwNv>C43rr#P}(i9T2{h9>1!V-()jFr zE-jE8RwOfycEoU(hPA8&{yM)WyGROmozCAwD({EP1N?-%$v_ys%D@qlBH%1ybg&-6 z!SBDYFH)WJ_ZERZik;(rQ8L9Pm*t{zhgk@kzG~8M8#yv!##n z?HA*%WaBHQ!TX4{N&N_m>5pmFt;hAOiE0+^R+_(y&)T3XfMI1q{B6J-()f#W2Rae8 z4St-X;Di$a2Pc;z_JSSfIO6=>7QZ$4{Rignv1vn>#_Z1P3#pUX29aB02d+`X`u?#f zcEz;Jm``@Z#B?Y%#(pq!Yi#0@?J*l~K85k3=UqY!A`2D!% z@3?`F@*khS+nTQp-0MF$f5-MvY0v6Vqi}1=2=0XAI|?#?aNEvR(0JFzbmO-A6V<5O z2hlD6LQnX_XY{HP7|c%CBIR$SPM03-<_S)u)i-+ku}730Hj$1 znZPA$*x&`BtSQ=E8CHvuyE)!5yK?`Ek-aXkfm@&|TG#TEn4+}PG5R^ZHBXlN!(B+s z`m`?5zYK!;l54~6<_zWk={XGq6Goci?hLz;i`^HO&mnIY#E(zzZC0rh$@!UkBtZhhSXswL7GD=m<`&({8_iy=x*1R3Me<$ev zP5SRL|77p}(rAkXM8goXvKB&xB?vAs`%%LeE#}eYm2sjS;#S%v*%q@ z4LIGK|Fq>?LmPi$ne~xY$!{a7+zw@yU3vt|eX_8@`I!le9I zzFo3W5Hbx1Y{VD`8Hm|Y%Wr6jWyKwt`Q%H4Tc{!28~(yN;@upoRoc9Z+-_j6!!lA* z1i<6=kyc^aMwE8}czW*X%Iy~3f424j;OPj!Ga7)WyW*(gmrH#V*6szCzrMEe?_bd> zF1=S~`2m2ZvmJP(Sq&>38=F-$V=in2Y(VTZ7*^R}ksZNK zSy2d~VIn(1*b~gZDw^fbCG+`(Yy;*S2a=^F$_?(@xkbQY@p{T?mbEbSM-2(&TIvXX ztwTN8W{Qs&&Ha!!q9&%_-Dn3F!UR= zT5dTHLw_&~eFY5tboWN-!Db&6Q!7OL3SV za+pjDeDs~bGsr2FyS9Qqq)fR7IZ6Zmok0A-z8u1IAP^xK+-S%5MRDJZ#)s}opU)7` zAecVoH9ffRfh2-hA3s-B+k2yJ`R~FbtX|jUiqZ3*SAIL6SmA|3#jQ36&0mZywS2f} zwe|J4#;9@+6)TFHx3PS@`=F`A$j{96eqO2E){wXSc6Oy=%!|Z)*`!r2I`WO;nM28z zBPTvoH6bk(TbFaDMFoY{37-*uQ%jlh#;1v_32WBcudT>Uc5;HQKn*Jq@{%WWNb^!# zxCjB&B`+ZuL7azj)5AcEWk-^S+D3o-PJWEfs?pJ}w%Lir(M<5x#xyva89mdx!ibM) z71va=uKc^`VdWA-kAIoo9w-#aKyxoexu z`qb;+DOJ6CnuGt<+cJN*-a2L00&~BdBWllQ!z?Ekwvm^Nea=$YIa#^+>v@WA+7Na4 zX@B!Z&kNST`#&ldXs(#Uvo4FZQlr)@Eo~=kK~-3)u+ktOG-eKIKEO2wj*kkbY!NKL zPkd6(zyti~a~IHbCy@C|X?A-_{BIe(v;&Ebz0e6#B+;9PcZ${>{~hg`5#^fLXV2G) z*1wsKZZt8i%GSgjxp^--=5+n&SHfV96gq{kgW3d{+k77LN3SaF5H*Nr7q3KCkj4Nf>{axaDOFRXOn68}v zk{;I!@@%m8+$KX@m-8U|V27;UZoTE_SqnILJA%{7D1OT?0p2%C2S1}l@9%63OLi-Y*>%%6o*%_=|wui3pTTmuevnG{yH zqgN)`28VP!((Zo(YW$c@ij z7-ZE!C;&G?)I)ceAWlmL9bkW?b5<-{l8D|;^II41=W&i5zEK`^hL6q1?k_pRx25d`T10=aw{mDc@i`0gbER2DxnzcR zY^E>Q%81hag>uFS_$@H=zT3odFo1q55#N{N7U_gp{Yls{^3@X6YcQZYT|Ye>vWaK0 zj4#80j)MW+7X~zc#K%$$1KM}T=gL`|yiMm|KnJaim#?u8Xlcg43S-F6GunLo463mmdVHZpB2|Zs$dE`3>9w`StsLUfe@Y@Jn0Ud$O^(lvF z!M`Vn2XKiDL=WMKpmiVwL@Qi_;lYq5t_xVE9v9D4+xrm#{OGgG&HWBuQ!MxNPnJVFoPVwa1Q_b0OKgFj*l9g?e!Ylzz_V5P93zjbPLzSJgo;0u8rndxydn%{* z%{1+L+S3{sdRp1^qqCL?>+dSmS65o*Wv(=jUaD0t*r!&0lW?bWEYLI6I}V5B2Z5E~iLOVF@#A@_)HcS&2}bS(1waG^VSnXty6XM;Cwmre@I$*ew-I z^qvx{=HnSxG;LmcHTpHbrP0T)dPG0-hEDVOIiktUg4r6ZMmGAki9TA(D|&jbjL7vf zwZfH;{+H#_88-zKK$#tq#41HW2t&c@MPZy&c@2X@0r+_E=?BZ8i`5D?H|7Vq z67y1@H5J&!)e6`#{Remo{3u6(mOKZ*(sQL*K3#HG0Jjj{-J73Cd5L=oRxl}7Wy&wl z=;XfwAB~iWyHdzcj$-!SrpKoql(%**C)^M4&d7?7&YEwnzssKlkf@uv(sT(xqCS8` zG=M~(5zCeDXWdq;dVQh!m+U@@Q>(tVSO6rN+d)E_%dkSF4C5+nY~(7ebgX=|W92i0 zEAW5IunLvnHdlER?#mL8;uDP355h9}nE0+w^{uP8o2EmG zrj6Q~4^EwC(4Ao#XvYZ;J=>E+hrFOZ@eEs8-=A9l{ zmSeqjsxxcL4Bz?_^V$5>$`^mrD$?Ievs`MNW@*?YTKP(m-u&FK=au!ACGzsgL5h3r ziM3Aui57lDyjWW`ir;WuWm{PZM~?wSk?;h=%7on3lsTli4LJ#~Mc~B+0bNreFo7Mn zedtpWo130M2EPisVc>q`^%cvOB$u_*ymR=I=p{dY8QtQyLD4=1hhioSn+kU#(e2(& z(99Y6a?Iv`{ef=H>NdToKc96=bMfnBw4>2{eOyG3$g&f@k&S$0G{D6lmMdr6^{{mn zRv!w&7Yg1Sr80*he=rX506SJM3JhZ^ShXm)^VOVX$OTtn^SObrdm@}Rv^5u|k1$HV z9S@qGd-5YxZOI+FY-+?y2FNCV`;{GhGpOmLYa+`99 zk}Q`|f7p4mJPiXna%~wtwKqrQuU7o|o0h)A4jg4(1OvKJk=}G=*z=0{%Mv*Q4Cv|Y ziDhp8iDr|1KudEGRu~$rbgV2CY$P;Tk!Tnv2`-^>ncZ2qW0+Grt1t=fVR>?TtqAE- zyd%7~^1i?aA#d3@0n(!Uau7HN_y~C@82pe!=<^aC*kyKpqH8E{Q!dehUJl{J##;-7 z>o7k0p@=1VJiqTzeebQb=EoHTD|)7HG(Qvc0Y6(4sapM+%<}4$uBQ9%S+_W~^}1oPz6}3Y>y~ga-V@ z^^(m^e+LBoD{u?AMNXj?I{Cx0A;}@FHB&RU$2_@Vnub4=qnSPA7NkmzCgpWb)9e#f zOz$2#^w7Mt;WgAz2dAm1d*bJ6w!ag5qWq#u-)R z3dC}h3hNt|0T&#B&4Kq6IfB(D_%SXL-;lvD@UOrX;1)T8U0YeRe7NL<*4$P&d;B^) zU3o)8IYH$EgRkY4uJVmC60(X=PB0huTZ-!!h4G{e*C?tscXixm9pQGAQ$8{M_~a<_ zcQE)8{briK?OMuzlSmY^VerMm;A>_de9|0%72;?d@gD6=FpguG<26{BE)A;?3CypY z2YXuVLMgm&P1hMa0h@uy@i{r&8-wdZJOH;5@AE-}8`lRE_jlQFJ_r0{AgI>@j)R@9 zQ$VAgt|fYcUHka)UHldKfA{%J2Y%$ND8=HsEWb+PigrkQ!= zv+?GUy^6i_^79OeDY~)BcIj$yWeXq0e=v_@ItaO zFwJZ}PPD8kYu0m{4#)%45HMg7$N-^BG^}LE2;xanX-4P(7vl8@dEzPq?BWUo><_%( z2!3>>0b1Niv%yna@WWY?A4ouDD0-NioZu zeNUm^qZpQ3XAIM!0Lto+7*;V#WrjhpLcyv>kzyRS8mY`Q>}gMh)d{5IV-tJ}rUlEW z3ns#DP=SfSEiw?;y+9s#KNI}uiUl-fA<*I%v%pSw*+92{ShH6SXZdx>SRLfqz)HMU zJRi(yWt4@6!!5ZD0weLuZflh{GKqQav8~1nz3G`S497Fa$}&?KvY7eK*TvjWfBKac zdM&Ju6wl1kn%G8eRycyu6`GsV~R)CY?b~uq{ zHmqRAUZ`<=p~1$-Mn!`SP}!g#3SQ%Am>WC5BO6x15)6oWeVAcMNO55YQ z2$4aG!T!K&TRaOB8z2-Dd7LCY{q4}J?EEKtxgEokVHbiWP4WCR5K zP*V;CJDz(8_7~!?%s#HYw`$|ej(qyo1Byv6A2h5}zRBl&T%`PA!UYqzx3*%{Sbx)> zhbAhY8V-jTuMt)EXkreyf0y?^*g`qCRBPI{+1C`=VywlF)2ccZCYs(GNEAQcA8WqY zKT2`otItfIr~Y7`qApXm@{=h%?_Dr!fAKKt2{C|0q;1RwSM-;s}#+%QUP84gkMy;hf+87k~<&Z$BLO)W`u+kxqiu*m%JlYYi z#w4o5qY#hsCjuYX@f=WV27+L(z@gyA@fgIy|A}U0k>u5mQ9I6+M|*woY}A^oX`1JJ zf78tUdqR}zyStjvcQ!^nJ78jT*B8b>E~wF1Kk(NCrFTL{)RGOCqY`pCA%u{yKMHfA z3mdl3?0)5os2cb&XYyuQFn_zRGxZC7mJd3c5 z;$f4@e2Y(&P+amYgkzJoWEpqCyVz|oub4mN{`w%2ybEEJZ?Ox2y%h-MTbtV#+#=_K zJrLwc4Ev{s<=-U_cVs-w^_NlJ<+K71bHfuUA9E+m2>;AAqI@S>JT09XHO8|WSL&zW8`XF%i=RLnGC`R$ab)U#xR)< z-2Na|5E;aSZY?Vl!f09$2Hx~q%KO0KROBX-o+G0BU zL~Dg#!`~I1E^RYsHeIRoeC~H{d&H;8_7k4BL~brJfA86e-}G~Hh2e-y`NtJ4|JUbB z%C`OV)FbGu6iloOsyH0sle&HnTBM!AZZ{%#u2 ze^n4~mQRmR&i{)jS0#G!_srAHixY}1a|RK<%@Lz{gT`L_HHzbVi5!o-j{lMCsTKb^ zF|3y%+xswwG~4%rBrqMM7NnGVAmaWh*l{BeXXcdUL5r(ou#4ZSV6Y5+ejouL9Y844 zgT~R_8Kf)7Qy@K9{OZ!In3A)CUQu5s4vjjrpuJ|v{^^>_mq%&pG})_JlsGA>aOfP( z-xEusPGxP4+TCqbXWHfz60)Va`fNtF(W#(G|x&hx3(}qh26t@6$WogAG-8{X) z0H9j{pqpF}Z!!Sr)&tP>2GE@jpz8sk>pqBZMF6_(?4T<>YrzIZgR>9pWZ1aasA#Z} znL!M~4vhGO2IG5Bn>{`{@mlQojs`ml`muDGc8v3H*;#{1%x+j2t9}obpwv947u}!t zhk40Xm}6)_E`sR5JsmU*N|_dP4u}k7Ep!lYSavo(wdEQ8$E94Q?6wqYxpS-533WwSphLH`r0LLO!PXP~U2s4+ZceK7GYp zx`FU3TN>s1UBoi`s@9Zv=d_}}>9*p{Vq$(~e!QaZ31aS5KS8l9ql>B8^exI(>BRK= z%xlUXX1#gR?IDV>B5pI{hO=M{wRj!(%Jl>s^@00ict_!QKaSx9uS5iHD5qDN2xGxU>S75|JdAaAnqV| ze|l~fG@S#m<^ng;1Hhp4*;$MW;dGaQT~}4j^68Sl1L!*+i-23FmC>(C^f2JL+6ti1Ru;uRiESXjeY{Mj1V8drdJO1b{?0J4i_LFIK2CKE%p(G&sH-4PJwd zzzjA38fR$4a9J;-zTO9 zV~F`mC#`bX;BLmGD^VP~5n=x9dp(zbkeF7U_2s88C(7d)Kk|PaE1x7O zIOBAIC}P{_&CQ1P;Qboj6>F_V@f?2p%3({M(wyVGl$8ouPTXCUW;s9TTD3qPndNLS zC+^Eb8V{`69|n6YuafNM7u7VeT~x@{oXGpHlt%V9;G#cCqrawYho8c<<;iFd52pl2A~!c1iSDWxmOE#x_ONeXVRf=9 z{U@we;gl4l#rD*3^(j7SalvNTtZpFgAdkdmwq|Vw*NM-mZGPhFwyMqQlEs8?Ujd8Z z-Z;L~ZZ=(z(RbGe=m>vbt2HfqH=di~PjGLXbJr4XkdCsJ`MFM%?Qk#LIIk-~mNP&5 zy&m6zH#Ix!%iV*aKOBbsONWc~dP0m}ZiN$87YP4x8@*}e&>q|-`_PwWFRVbuI81}r zLk&(n(9{!Dg}+r!hxI%O*228GGVF3G&Z_Y3E94i-Ll=RE;5oF&Sz6$hp1?C@;J@8w z*MVCva1UOGJcXJ*uO@<>`k~$Crs;tr*dO98ee7$qKGpW^D?jdy<9_D4acO*~y78vW zrD{v_M4}imQ7QjD;1)MOoS2JCi}_dlbjp-}buEdwu27hpYZYGK2bt?}u&n`~7wtPQ zmrpkm<kAF!Jk4t!Q*`r&1*;_`Z#@o*V2cJ%&SaWasYy_agu z?{=`SXlo=_Az$GJGwv&+FvB`3a#btl_=j8tX?og#O59ntxy4^AfjAF5Lw*>Tv2d0> zX|9U2+TRQiBckvCgRM|Xt# z-l3?&PYxIwd1pPcDK$~)L#~CH4l(CLHOpOfauq@tiquMst-vaC)uXPwTyhoMUp(Cl zcH}|&%T%Br_!UB1bHn7@z7xxuPfD|jbIn!wi-LF#3b|@HByTQEr01%*P_5wZT3XD_ zf;SPhGWsQBg`&AOWEV_3=X3N;M#^C~VCVLLwT*rJcWs|3j9xURd6D32k?`4 z=4k=A@yrzR6XXH+BT8TVm05rkSM1X661noqL};3Uh_OzqCETTdPS{sguA|x z7{=`FW7_gzu`-~S-uUdTVui(1uc&v4@F7DuQ=Ykoep@)ew!WgAWm{<>bwPKq8P?;G zwZt#8OS4u0T!vS(`dkqiHlg-1POMgQ>U z*8LIHYFrPrGZX$>Q-8EaPOS4Y^LvjIO*uJN+&{i|43WMY?3QfCpIZx#a?@!3qpn z&UC$ncv^{b7gk`D)!Lnnr(Yh%mDxLmMDYuNMEzu8C019Kh}ZHj14yK9Bqf&tB-(#i ztk~R3Z}<#ALg}gJ=U*aR$q>%?qa7rq*$pd{F%oL5Tr|uN$Cfk0!kvXNKb97AOKMi3 z5-f*#bZuAyQfo50j~JW?98?9KLteu*8C#3d=W=>G&&gyErUe0wYcuL*emWr@@*G>6 zg+N#cbXbZiGw9 zOg1-VCr4;OJ4;@YO`1gZe(7-JtO7lxMk2G4woyHG+@UD{!RE*|4GPg6?l%Od^A8x7 zx-%ANQUJGixB`nnivgMuY#p#8@}g8gf0nQd^u}s&0};RVh{Xjrf{FMf2<+nb9xFLYH{3z*E)i@7I>@Y`E0b;Pu_mY!3U5yj3GME)&wRi99q@pI^^ zsrIfajh0vd%q&AcDGgB`G^_v;D2Hh~8Wvp&)0)t;1a}3T3Aq6{qywC}V$-Fd%RscY z@G~|%f;-4SSmKWfi+WYt`v{#mzrw+$RX~x&XwhH zZi<&{*GDNjdoJZ=zaKDtK4KBC=2n_CYl+D^_5%OTpeu^w=F`0H*a5|r9>iGw<27^2 ziE@7R_}6*Z6XH(h5R=FBYv!>F^os9)(sJhhm-s8^h;pDiJPX-D6v_cX$_=eAm}}ol zGp)MPQL$q(ky~3AS=@hoN71H~m`calYqv)2Cv|>cZjK&~J4(=TsA0Va(XcIZNTXqA zxQM|B!pA?Fqr-LWK>R=gKstZ~fplc>@b79?3`x}O9C7nvOk~^F0wV_Ya%G5j!qVhTkXGRYH zWQiu`sqm=g1I9$X^74(y&U-(_IMrcTDV(8u=K`oBhnp~TM?^+JgnuZ?LmWhE6n3`I z1MDbLb9{DY0O<&&!VVU=aXE%k)inTiC(0tAk%cOpB>;Do)&LNXo*@9;9wZP1Sb}u= zce@e0o;8F^w(2ad5pHOOovuzLvf+>oCZ-LW=vf2iM$JVh5@YFF!o3Pm?ho!o{zSe` zM(7)aCv@~$?o=t^VV8?j=MdxK>DNqO0GMS1m?;3vo;ybr2i@W6&JMy`0LKP+@x{w=5JbP;aJUSl=}u?WiBAe1(TQknqpzc8=J4;2PQ^`!x9_V(C^G zNrH(?0QU+dj2OEKYhNqP?y6{Gxp2mpRsBYbJ0yvMaD{@^MXL;S0}#fSj2{vHP$(a= z47gY|VRN{FuzS=8dxh_K*_y@+({!kM+*_;gg?w;JeyfG$!zEv}=G~^#^KO)fcIyat zO+(DJiwK{jA$UH{Jidiieh@h6j-D8o!Qkr%gAdNgVSGa*48A5)vrGqJ@ZAM}4;XxX ze$|>bZz>8oar?lDyE}_Hoqh00^9@!AGmKl9+fidhRW`2TSBT3hM1n6I^HAYB5n84A zLHI_?R{|!7=s`p8MT|xc2zlRz>Cl+LkS_IyF#7w*{`Pp32g<;IyNwgH!u1f9@`ITB z$MbBZceSnWyydTclE@#s+s6>GAd~xSp+&JvM$E0c6M3Vr)*3&$9nYTxd~f@$%#c*N zRyq5N9P_Wci%oNve#gz))WEDY$V~E-t$e@L-x?1zyC&8`jarAnZ^u&r7ciXSxY(%> z!P~K7Nh3HSaRmf-fCY-=Hpmds+~&qThzGv4!fq#t)ZP(qH-0@bpp9R|-kobBnzv@B zbV$VUIZGi$YBb$1UXQFZ4<8>>6S2D8sEEU7PBAyr>~78w*}DMp$s&TrBBCHVqOcVV zLt;c9jhL>8yjV?Wz>gxZ&F%qianB0u6_A)-0Dsv1Tq3MDHvmwzCCDI< zE?T1K342&;yVKddF&etRx`h_e6h&DZy8pD@#q`ATW*spTgUo11*~+~K-G6|+`%5D! z77&dyq!dDgzgP)asmwTy&k87knCxCG4b=D-&An_D3{p&fT_dRYIAT9;a99$ zDsN%BWt4@O znY}}rDRc5^)2kyB<@exSm}EE)we=@r4Ac_StbY+j`!ia@feFRNyg!JNKjp9Rt+Ush zvQTU6qB?BuujfLixGvK7J@?4-H-C+I`UDb1=?7F)Y{4(7&p`9bX4-jKWwzYCeulgW_QmHb2K^LO~Qq!RA82 z`83L-?pI;=Kme`4BH+e#0p7bx`&F#@A%2B@E9U>GnpLz*HVP8=r?LgcF`Wn!o?#F5 zrwnA8DQHeBqi%d>2A^RYzgk($4bcmyi+i3Yih0cm*FZ}syNxd++!~Ot0C)m_B8II1 zJZ}FY{1yP70TYT1KmI`!rc?g>`Z{|}*A{9GJ5`5G`&C`J;{ZIZ?Z6|=YFOcnp-^Mx zqhWqHR?)C|3S%}FE`(O|UsmA~?1*`OxM7J%@g@E3_~1m~JBPg|y3e#9xUeU1CESCZ z=fZuXkoDlF2ho9)K^TN1Z&IEGjogdz@jJmXnN1)LjgM}f;K$;lJJ?_Fr##&1vGZ>A z{dT;MeE*F#@*ci%ih(-9C1;t8cV>~2H!e=+Q!}(C{)3tP_rJrj44ur}esG$x6)bn> z9SSmjwk^oKy|LEtRB;3Te(C}KdQZYPe)@oE%ITJdwTo)#-ja`c*>^$^679X7MT_sG_FvP z2T-v1C{jG-0bwYVm)H$mtX8mk-9W^r>tIJndw^$HH9}Z35PIU5`Bm2JzAkyfhn>{r z59$OSIO$KgPZ9~&TTk#??|e24ly}OBY0Ka=!`hjY7jOk*?$lUY@-_^V7hs^I_9WcW zrwF0jACa zeGsHfz)*^@TEQNy1AoA9#8vtoUOo7ifgfOYus_Ix$BwJLt8EXzt9-z%AiiVvr-rgx z8~KY9w8rIbYE$}zQSxz$u8NrpisZ{+E3ut|@bSlrjJNj@)4B2Sru+^0TwKGs-0H?e z*?f-Hpp_Bs?*+vCVz**rlP<-II+%55K{>&kb;$7iN24@c-IE3NUnW8pm94!^z)(5xK)3x9q z0MdcM57;Ywg^2k-s%FKJWQVR1gIlFVn2zjn{O***SHq}Sk&!e8sUB_i_OpCXTK z?iKo5lZ_GcX1*Ws8|5f%ZQ=`B98@mY47(ZT8}o_`iFp#44D4PYl)XUX zy(*mW1-H{vz2M&-B#?C@uvhqc5c7Xj%^JofOLpbrfeqcY^veRsekj~{c<%-31iv7F z=hE2M1LRO{Q_T2yZY6||hHHRH6@_!O++Z2u3KkI4pWTWL%eoY^F9R8ll@sH_vGMqh zr)hb2E%z#Xm0+Ki7=}$K<_?w+!#se!p1{Ok0qi{sur~}~PkxaYKL^-r46vsL*i!=R z)sD`W8|<(r&A!+`Xs}_>unvKC)``%L20I^%hi*qZx~ppb>2>zKzr38xjQoWB89Aw= z1LHfec4K9!N

%Qe5AaKL6JPZySN9d)hc#3+}DJ;h>SnQPZ^*gv)eb_lNN1V3*m} zUV57*;D-W#klj!RgB!2KxdGi9ohigYH;o5zs2$=lH@zpg={2B({o#Ibk9`i&x7vOa z%v-*|(@pLk?5U_Xk;soMHJO$#F6Q!m-!!gYLyQUci0Qs5o;y2co$=Mny^O!l+|4ik zgm4Rw<|=&W5YwUsTCUgrOU7~VDUJgBOJFsNv51F4bl%cfi5bKW@`{##I4 zgvYj@&<{<-5?ONiU&Crgd}Mt_@Nxc^-OU*nN2I6$(#i|Oz z5h7vW+Mm+1Fh|Yq=aNgj**Rx^{zQRC<|Y#Es6VW%{E6X9=>9K2_lFf1<(S=o`ySB! z8ywB$*F*PjxIio4z5kNoDtr;{Z+rKb#(FFuVlTsA>?2au?W#!v(D|p`qGPUV5MZ(4Q#!pDmKlK1EDl&M4xWX7n+&P5+@JXF`zt z4|uQR@+Q4;2)s;N0MFXH&m+bmp~d`xbEKrjqyxq`I>(z9`otTrMkRBDPWTzyh8A;o z_Yt|75bm-UQ3MSkoFcT?*!~*fn!$0y_a|G7ji3W|Nu8|d;7jmV!_AW8x0jqxJX!hd%l%Xo$mh2k}+H14so$>h3)m?z8!-XHJl0fP6$dx*cA$(k1YM1}@C z?u=4KX5py8kN$cYXmQulG2E4%RkTY+4&v675pI9Rzm_?MpX2w4k!HxOhI@L`$2i6Py9M{~e$ zq>V52;1Bmf?!@PX!KFgnVDLk(3-)yP65w}Bej@TUO^$PZKJkj_eYE_cuSiK9b&xSlA?NE1y=LmP z@7jq!U;}^cE+YR%eMWxb9&F0Ma5sOa-YlFrLzYJ~jtMJAVq~nx%!Jo3OEBIt# zEW45{+abK`k1N7IEq*_o42}u^zTLg>zxNFZ`!nvh@ICuaN5r|UfxD6Lh_*-wBs}%E z9$~rZr>H%))eoqdQSUJ2g!LG3F!bwABSXo{GUgw?;g9*u{xHpQ>x^AH6hN6A62K}( zakB|dZcrY^u5A5_z>DHx6UMHLMWxog06tY(?_xK=yh*YuHW7r2%nEk#yLA}G4EW=( zmOQ|);8*3}24xlNl1)2s!*l{WF0}oY*dQI@w59NtF6eGrBEJW4(ia$2d8HUnOXB*M zPyUJE8GiXDpLqTrz{#Mm=t)WXk!uL&<}4>CW&)hF0yr5BX~3?gApziIFu+NJ=$718 zfRlOvCjs4w(GnletuG}dhwX48&7xSrXcz-x<3G$`W1w+lRl!H_!w%(WoW*kt7wxQq zCD@bYRgCY%!jh2UPT@B}mjnNm3VcVOp9O*&suy_-d5`ibBpzHYa2;|a-75w^v{TO1 zL)b15@I%3CX}o+}IySfXJ#kwc%Abjl-q6R-nbr1=R*-z^_*aYr^0GMhtP5O1w3%l&T#ze<#Ro_S4v5USxbyz2Z`~A3-NMjDdV;{!q4rhH`MXX83dQ& zD8$iR2L$J_^obs5x>iM41bc-yy}(^zry1Ph7stWw2ND1xp3q^?T2;-mEy?3)NdWR zse1Y;ZK!p#2Zn_gPW&WngZsGfE8K?gY*}v>|4}u|wKF!YuC*#-)2gmfrC61&Sy_f% z>>^|La096ltFq>W__)xouwKP5@S|&1(CtAUd5y}_XZd!?u0is_0I&YQl+S8~Z|AKn zBV3A}aGP}klfE*NYU6PLo;YCB58|jBf1`tok`erh>~P4Yaebn25~r`0o=>GuP8$L6 zDB#4*hX6d20eCbJF9?9APFH=&T;E)7_U57!9|G_Uc3){K0^sq=CL!1Dz$4AFSmDTm zI8}1ShB$3PgN@>7m_PGl?CdNJ7N^RZRk#G(VxAvvSRzt z5Ljd4IubdPt~>SMPi!2T0^uIuMn4@$nGi?h@GT09jkU*R88%L~a4$5q zocIg&abNz9n4bPRjgw#MQ!?n@7~_#2nsO)MoxbiJ--#FA-joJ%_-}4Yy6*(3S^b1GB z`T{cRlguH_tjL0xgwyjf;7{2VG;Sq6z^33w&%QFqdsNM`C&{3GVc!Lh4x86>EZm8N zM;BfTGkTv4mtTG&eBk>(hM7+E54)ayN%c#+g79zG+z)FK!-aM0_I%i-+sg3#ko#em z>i%1}!gA+~DW!hT0|5=i-6nNFqu_D`1t%^jm@yQ_l(>*asl5Jl%AhP`E*KG;)eXey z`5o{_Aoc>mb?pNz2!2)m?G9&6&hqDy`TXd4pLk%pzhUURYXw$=wI#9{3hxHf=Po+o zD^SA(KW^7@*o_swzF`~&L*EmIel6IQ-2p?t4GjI-mxf!(iw`9foYn z>tp<*b3FGR4E^!;p)bvFSb>hc2kqF9Xt46Ifh!xvX6TQN{ErQ*KnW(pyty*$aw!g@ zzvscu76t2}dP;ytfV=4Xb2`uqfNMZgzS4plx=P3#(20UjP9hL4gJywn8W-It@CUC8 zfm|TJQ7+VhUzs2*bB~Lws_h*QKY9Hfx{!A}Ug3vB$17f!Whj1PeejpCIZ=EqSH9=! zQsYMBX)a+nF)R+`j0@l)eW#*gC}jOwp6!4aOnOd9Ouk!!YkYC37qbjL#g4 zH*D7vQ+IfswDkzWEk8e&Kdd40+t*eafBWT<$=U^;VP3gpsuiOaYpn)z719=|U|6Y; zt2#1AHFFgL6x>wYGj#@7Rq5H--Wg%X8yyebG5&1m&#`gg*Y5p<)e#=qXmVIlkGH~Kh<~<1^*n-uF8IbxaEt~CGW$~cegAsdsv#e-aG+88Gx! zUEnF=l}pB#?L)unT!sCHaTn8$ewFR${>O$@;N##b`i!tIa7!le3UCxY{|jCV0z4Da zQ{WxsG2|ngJwJUl~A)%FXS zmGC^@WI2&H{J>xg=1zz7Z*hs=mO|uPYRxme7Wjf;(Nj-x)6+@tk$FR)!6htRxe7hWVs52)*$a><}Qjt36PM zb^37?)rOci!!rM7b4m1~hNbEZ!95Eg4=f^R%reb3Xq)R{RRzpOq@UOT_e~v-=@{h|6Hc-d{!xC%DtY;Z}T5iZIiMS-hd)Q%}k7K?fWH z9k8vv14<(uW|$TZG#Z9(^f@HBk$xU9tRf^33e&V37FlZU?1}F}vAJ_d8Q=-x$`t`a z@R>>oXTzBrpqmT$!xDW=bKYLn_D)iVkk=B9$>V-qW>|A@SV)Qf1ZU<}8n3pv6mmM~ zw&BW4#qzafbNE-5!i#x7$D2kBB=YGpV$}9o%C)=hX&AfldE?PY!e1FmLe}-2YV?6) zG1K6Xs_}ZfX)*l#$BOvKL(U=X&^j3fMbddr!VMuMc-Vc48j&otwKM=J#Glw*4b%5^5hCdtj6`qDb_ygw%Y(tx# zxrcD^Nl4}44PkyD)p(X5)G+Ryuu%=a2wS&gLs;|eo5J2L-x_u>U}{)_p*ZyQX<^~} z{||Ln0v<)Nb=w&BAOS%@wqXfj2Mr=3WO|z<6BKa?B8WzWhzp2_%X4ECP&NT0AOh;h zCKC05A|OK2GZP<+prE2CKL4nw$WtH6bKm}Rs=FqWkRAfYd>{4YrmAjLSJ!&at)*)o zxe{+wvIAe;?9Z4Kpqpl3_gbB@r`NbD>;2CI!k@YKeA=;Qpt5Y!z@eR1#q#30W#v{R zWvl8effP{X*K{bHNM-b6__+o{V$&SY*?D#YA-!R9ZHe#YJCi_s4+PWE=Lno`&dS@?=&*dSKm+3`)&9La?1K2}%~s5ngN5F#{{*q1q|NsA z>8t1m6x*5bK)m*6HQxSxSI zNrO1K?9$nxc@QU;@5U6nRGhe@4J$a-u!3ng=A>KNBB0#A*sxf)j8+j(h8<4>bavUOmtG`ULbT$^1xCw*wo#bjtaMUMlH>3HDP92m7OJMrRynoXlpOpV(!E}9S`n$ z!#L2$uU}rLPI2oav(4cRCt5GeTxKRLIV)WJOS90wZci=#;^iFQ#g{3@qc!u4%Z87O zELxct{?F+8zUlaxtWl?I)qbDZulUk6it+e)i(VUhTMkc1M&4_ZW6r3vD7+*mC-TAS zlk^UzRs_SS0j8aTP7pP+yAl<s+8! z_Tr+6*^fN)DT|f;-VJ%#cYc_jy=nFR0|!30eBj9CBm7$N(hIV_doBB|AJ53Xt|W8d z^XZp}xS{;#X=i?P9<<8iGcs2dpU? z8w0xedAJM+0~%$FT#f-<7X!K_2K2Df0qu@XtT0v(8;OPuCntaO*8{PU7)KJE!q9(0 zMpl>$3NcUaMn3F@Kds8lt#$wtf~de%u&04M4v`mtTLo6YEwBZhjMzf_AQmA=;EA3K zH#}kw0zA6;4CBEmNM@>fA-=ZrVebgnZj6@3;ug$X7>D9ZKYq@vTzkidAIu_67VpILW3lwdwFSIA7LaR z#pR3QNN-jn)1?rq8B>iEG=I~*;$909*eDUdA{yC&?%xpIKQ$n};0eDAcX*9`J8OTB zqEAEj*Ycy%+jrxISbInJ@0I?Vo?qJi-K8xHNQrv9hLyrfE@Nbcx=2yJtGtnqxXDg& zUj${Feh6|+wPhP^PMcua`nCoCJ|`SZ5&o7FhB(?bga=E)zSzQ+~{TX#NjKQ5m>j-%LCEpZSjpf4$v5WdG50Hr=sC zX0{?Jb~3MfH-;qYqbiX_>3P%-&Hrx1Wg?c4K>EUKzcKR@mB@@loVP6PfbPa zqLH@52>KbPjFC0#B4x_PmyzA%OZ;{3QIH!$LAkap!Pgw(n>(3kb;*$`TlYR)A29AB z&BED^b1g+5dw;Xyd$FmzVDjzZK|f42r@y#Aa`poSye}ql-jO%C8|kZYj}rMH?Ji&1 zHYI#r|Ng$S&dZ6s(d}pB)ShFawQ#cORuB>Pl;U3 zI_TJ#b5d90nK^Oi@m%<^QlplDEb!JivM>O@f-uDAI;wnGb;-mkn{T$#2Q}Vp)Yv~R za#qs}J%7+3^RgfI7f)X5*GCTgz)&8T6IpymhOb#|#W)vxc;8M@^cMq4cq3%!^&1s^ z&i}Rd)!e5P*Sdd^c^Bm7dUTrFC5krtfB#p!?66`?vXn^EcOQ!^#G2=wfXxl~TmiKi zt*w(vc4A%AG3>Wo)@1i3(a17UiuRBmcPYv>6+S9O3&lx=(i8kL_jEYoLVP`pu;@)& z4nOW%r_7eCv~87rTKM$rahXf9-~3;a|KodyX1`3kLMrh?9tQ&M!9#1TY`m2g#qS z7{6dZ_W?3YE5R4P*m-MzSkeEql<;F1(9N*s`4a~8xqEYTsD(0T?r6XYi#3$`G;A>T zed#AJ)<`}pw<06MD+-Hd%LO&c=c#NOvP^FHVXteh0|wx^^80GIlt|G$Hdb){uBtYP zJ1gMU^Bo)ke#kvD#*z4$K^12ilFYerBJpXBNmi(4)p7p|3;XDsL?b|oXrR~Lkf1B(6&o*Obh$NXR+?$Jj#e&etb$$vG? z+!OXkI^mAU`zFuU9{>i;Mc01%g;~aAe5X{ebXor7`X<-8^O2ZDED{!1O-nI}?$SO( zWa=q^96RgqAxZB21tm z>?jh#eI}?SD0&w@-0eU|eWeTD3ElfB^B)&EQw2ieJh=Q=DjjTCgX<5;?75XC$KVz=9=MPsAXfP zo(p?0czBb*T*Q$!_Y$=L!aO!lQ|-7shpxhnKbz<-aoj<~>1D^)(S12TBxwq4hA~Y~ zXEivN+97kSH4jK*V1b+MCb&exEr3PH^OHnz%EB%1b;9(Oe5q=G4M zbcywNsm#M)3nb=zF+4FTk$!2**SMly!|b!ZTAFp$)4}Y{{h^MR8h?TJkpGwa$7EkW zC{1z)uD$x(?6viukbY^)w^W2q4JRQlG9qkIDXcvxPZ@7!d35wLPcWPU&?-fLms5eHM>%2kY^ zBbr9k8hecUubUUXr}jI=^+tWAzjw=4VvN$hr;;Z=sGI9?j0CISQ#7n9&{3{m|d9sr+@wG<=K;4{gHk8x1W=j zm3q_2tTS)9f$rlqGPe~;?y5TfPRUD>5}i#Vngw?3Jc3O_q6$fB>`-M_*4PcA2mp6f z>cd?|+QTo>XS2e6%=yIeG{1~1D>g2Yw5P6b_<$aXHcA-7;a&>_2?fPmBJx3Ap1A?@ zgn4W5c?{+VITlvsJc@Biu3`=Y<(EX~43U|mzG8aj#fxV`mFgm#^h3Q;*LnH;8=)eWwVl{k#h&>ceB|T zYycXjaY9B`unV#=ug5Yn2{)`ObN*ekfL&7{GY7m|1n_-@9tFU%fbT%J60SYn`w@ zw>>2?=g_5*IbD|-tyZ0H&Ij&&5Kzp~gO$ij{zZ{fckU`4^^;=!v)_^M4Bwvce|PTk zO~8j6V}Y#$(2)mSwXyhmRnZ5jN^$ZzIp&I278&NoJ0strb=rSjCo=Db0^VL>v~J{& zEdTVX;J$JVZRm}#5}ssZBo7c&poQivb*Z5hI%YkE>3 z(gvR^=WRgZdotJ@rzxORQ0LgVC*qdHamC)Q{+Ir2o!#oveE+8lh74?Y)n(b|Tyv%W zx?K-s_rKu&fh*3bl@&(kg2`??+<^z`la#Dd165J#UCYR zmiR}Km%Z+#1pl9}KJI_7+e&|nkEMi@(U04frKt#;tNOPv-7vcRnjhEqNM*1Yel|C$ znL}dj4{ol{MSmD6&g_ldECG}VstGy@yTPmQ4qWiX8enX90k1X41B%`(4|hjUCs3Ez zxF_P44HFmJyPEf^_L?0Qcmyu@hL{6hbC*s04$P&hVti(=|1msr0AlY(;5Tpb>j(S0 zB}({f@V5l)=dZNWiOfAm{0@wni1er{Z1yOT#t?ftMBtMUdmSM5E}g4{AMjw=1!Au~ z;?02AYXY&?y=jIKs6Qh-9b(S|v3CK)-dUw$&mH^OKs2&(C=X%{8%!EDB#9=LZ*%Pb z>{v819m*BAxFX{5{F4pjq8rGvR3=H8l$(wqehZWL(sN$RHA3w$$OHcj8@q}5LN7Q7 zezNVRPJq^m>JO>~H~bpyAgILlQ@_wLBpA-KBC6sL{c{~Rn2e{=R%{YF3jIO*eGKFN zp)5=_=@3=-TbOONsi)1LOL$V?+G^7N8j+P6@A`;W&D!di;nZRRrL{hS0W<=~W1NaK zvR6=ZfrQafPdWRh>V-D{QBpmyE3-SWkm?yb`r`NlL)Jnl;98rBMHM_5S1?y1u%&M zlO&Ow${49UVngI8r1G=t%Fe3U+{_d6!S_-~^PNc`zAL(h3b#OLHXq#75Y7NmBPg>= z=Y)G`SJudijElH!iK3iM(2O)6^gv1s2jhA;IB<_KbxB^0=BZLIf zkU4cnQdTG%k`>8Dp`n|m9!R?Bk9A8wJB56X4Rb<9X43^BnaB7>Cg6sPZN;~Hs4y)E zT7?E!3OowHO#+XYNYdd}6^G#0;1Tm{bXu`~JR4!)2@Lhv@ifKeMR5}0#7Mmpo;e72 z&?cG5YQnp;sPz1+zuD4R%fUMH(D}{7TbpKtm65mWUv~XRM8`SH^{z9au-6)^L$|_BJIlYQTo@H5d*pzQG;08}5jl zt}2n49rLt5(UrBw7a93MC6td#5Nekw;U`tam-dTNJoMh2@I`Om6{&GUfl<&&DQ;dH zw-s;dsUHj|p+?w@z60-g;D(d*JDJWl1V(`nz<3HIFQ?7uRk23)9^zte>2b%!&Ultd zaC~xnQ#cTGlTq7}d7PTDE*d z*5}>d8Q8u~J~`O~a-k91#{bR*claNjdk=k?9q$>O@!@IEMo-+xQdESiohPAQVv=T) zkP;kX^NH3p`$+;{VG{!-4iXE+%vcs6&WxDdiFsx| zE5u#!`JO1w%I*MO8N7u*inVaJ1Bufyuseb}$>&bQmgR_x%bf+T-iKLeVnAT5>VZJw z%+&+zJz`-WH7NKZ-b@IlFV`q~q|big&-LI}y%F!lZQ@r`Lmw-OvG^MstG}_7NWG5s z_f$^+uNy&_HNqb2GzhcSs$#zMixSy)Z%*jVx99nqk%k@fFB#b&F1XGzRL;nR z-0;1#!1r~)T%^Z4==H(C-c=5EdtjG*0}iI|gIfiaApSuR(;@cv zDviUqh!WKU)F8swfO0|OZNBDlY{iKSTNa|4@V|F-ukx?re|s(cqNYZTjf%Amciz|g zVSnVTBWdB+)}F7ezkg@r0FGpR_?Qu#LY~+h3(StMTyJeq+y{{$|4jI%m%NpT)4O8(TNY zI(^+1|L|+pXTAS_bFn{s(`vPcvdrtxO-ta z{6PmhOKe>81`vig{Czb&DF#=`4}vgu87`<7o>6TgRx)k+MZAS@2jK=^^EhGf%gk02 zW>(!kbE-BJHS(sSSfT5$Hx_)jD|~J7SK;%m-}FG+f13CNJ>=_uKdz7 zGO+71vq7$+*Xwn2_#7++?YL73MNkvHL0i+(ifbGyh^z}LdS=h3BlE_+7M_@v7CwLF z_eQH?Gu&$Ze*IaGqQ5k`IK003BJSEp)^2GU#{0DciW1(tGS8UOOAI7^*QV&l6DQZc za_M&>m>r9GvP4sN9PJ}JkUNg1DsgZWVGTfK_LSj|;-(aQ(neVH%SE`O`^#{1Y##Tw zA~O4~xSE=E>47c&o~QmhYpyZIzy7}qvkpDf#_v1S$zNmQzq7j+tTb2k9F8|D{ZYv!>mSTKe|K(d+{(CR z?kmFCs{T%-{ERpW86?S>vBX)ZrX7n5*D_lx1~06Ok(MP$Xt#o<(*3?>Fk;tArYyBjdIu17Ka9>F6%Gt8Ki zE9}tA5K-9>Q3m+y6!Cilk*N?-m_2h3IGWCOkHX&>2t5H2)fplx4I-)!L{x2vsIwrV zE`o>}1re145tWF~;C@sT{lZca<&Mj202)?4$LOi_z);6!qsJOH6kaG4F7nwij%AoG zpF1HV8^8spW!{gKwoJwitHpOBVm*5Ys*yOYqWS`$#y}0YRSV4nKj*LF_sUn+M3SKhqmMLuE+K%#+jezMXt}u(YDV%FH#2w9_G(gLYvNcN>^`mhB*8}A|fmK7`YY0LA~cGw@zMU4UT zLvt}GCM?enFU`evj-}{Fu20dMn;-WhM@Jd` zk!yyS>zWM7`1DyN>+Nq}VT7!2hg_EN)NS34ihK-)Y>B@EyX73&4YSM7nIX)Mo*RQF zF}zB#JEki@AeLR#hQG{B2QhJ5A}osAPPh3xvAe&GvF147bT`nsz}-uMwGclcKSWeh ze3RK5{PTi}G0PHoZ1z!Y3_qhp(F!1fIzU974H0#fqL|)X#T*(`%vMgE%atgGdzWH& zx&(qAm>)u&gujD`Y6lT@8AQ~r*Qcl(Afgf=qO?zEtB5DNPUWy0^>$1{>?Wqu=2}-p zhG8@^F5N(?=qfq=l`=B>)q>sQfv2(a>^1POMpXw<{Q=k{xHScoi!gLEy{{9dB8;Rs z{t_oHnuu%Qd|qJnV4Kf)g78mbIrRcd1~9=29yD@th3ju!gz6??*)plG(6xhyb6UjzJQcn5z_Z!JhLO!-nZk^zIm*QE!>H$e$A4;ZKQt98h#W z;=M3-L$n8-R2bdXMrQjzaaq7KIz-gSauJ>TN{>4_x5a}*_ftVNK(#>P)>_!aH;VZv zGRKHgfzXZ!rDzw3?D*Trc$KwfHeF}XZ8P^5CuIJ1_WI1Zp+~aL@II0?;l|(bRwd)+ z?z=PlcDc>}bMr^DYW=fgR)=+HU)yAEoOV^_bysboFRS+Gx*5MbcVE^STUXJaxnt$e zw2#NgTvmj($9p!bCSFWpb(1I%Np&2Os9PRoAvP2eCs3qD4hi&?8H}?M&E`%3QRwph ze5bfw7j_be0-WhH-7+duUloHpI)fzox)dp9y! zRrJ&Es~uXMyIB8ipQ8Tv%FdymTFo#fpxd2-Gs@3An-Z>f?lAr9QTgGUKNzOHbk)Vt z(w|g#g*y$(ZKKL^5TBx}0q*$3adislR7cpKNc7-C8iNXYogR99U2+)&=|slR|BjASFHs>0?B#&{jF7hj-~ zuYU)bdp|mL>a!`KndsDGN9Bk9i%y+Z+Ns^;D+?5BSXneu*0NwUtUOmEE6znemVZa7 zYV9Tu#hnKFH;_vz3V6`518@(<2p51fl9C;gJ6=_;zdOwwy#WpHYX%ahM`RPi zFIK~(zp}Qh$hi2>maAOi7J|nP3mgy_k+?U9xIwohBjmAhVyGg{YZ`}u9f=SgpzuE- zB*sDjV40NhjqMN;9h>BM4?t1+4f^}eu^ZGS{rg)xAsiNW%nSVlyYKuQ3L5R@QX%1v zFC0IyMmCh>5lkhKN4GS@9*IA(ytr5-BgWdYLS68wd>&&TwcRoSH@vd-_l2w+&}`sQ z5QJy-UXZ}6U}wP}u<=Uo05<|P5;`h%d#Seze$akKU>lxi7^2#1Q~~>0rp0G9rk`ua zk(sO}ysNrzE4r$mci*9f`c4h4_`ZdfhyA8H9wj{O9|yIE)^*fJ_v>lR8Z|2XAi8XF zi4xkCmKGt#{k!?1aDz{08#SN1C~PW9XdI3Z4+T!1nyZ8!MfZL8)7g4c+(+65-MaVk z{7Ci%yEywXn~uQ-?A{zNx^kowhCuQ)52_F0+r(Z$>_4sFA3^t5zrr)9e)SF9DKsZn z3GYYxB}i{q>4&)|*SV3>`v{`*1)v&{u`D_&FtQ&JAf@QzXN(N3jjF5zwuitabToeHXk`v@{eFaB5N(>n??SFUQ3dF_T7{`yCjWUaV( zRaVUhl&o_*yp!?kmb{FM+If&0CG)L+Z6AJ%;>d-$nd4SLCj2!c8>b?~t?K&->L9D6$|5h7eo`Zcs1T8O z?u2x_`&H~_37|xfoSc-Iae>cwMG@IS=w{%#p6NswgmLNF61Y2os_Q-iiQu?jK%%wy z3IlhINun<+- z7v$&$S`fGmG%Bwf@cf830DdxP8c4O>N9hR25wTxIxN3m{@DFyLCBFoufENU9wD}?) z{Cq~d!{hMb*A(!BrLw=8bcm|EkD$H!!hvtKg*|449z0O2^$RHa?tl_L0u{FDTla=0 z-#A=X#%>7fSSER2RWu!gAYtY*E0FP21bt2a@BVSx$i4@{uc5>DLs)O{YOXHOYPFmY z=>a!{UTE3a4aTP)C4^SgHtZi4y1C^9{eJK*gb#y%5%h^oxV&p+>0mjzbOihR3@8L# zQxt?wK}U>{ot?Ttf9Y}84capW5XUpMcA*Rg{;_3QPY!+yIZ!fQ{PncVF5b&C?=dysZ|go6 zyzd@SGk?48vW)q!zDs}B!dH)EoKfd$x~0iHwV{%+dF=G8SvQHJ0h9=0KKSkmcg5J02;+OG zBb3<@i*06viJ3L*zw7%9iOrZ@bEk{A8oqUP0c~S%K=_6G3RN+-2E>g8+#L%~hEPQu za|-VJ@hOV62_j-0RKA`I74zA{iuo1r&6`VT-dN z$i<4|vOSky=uq!l$> z6&{|GWBmqyC@(Mk0KyvMoG1KxgS4g0a-!x_>t)HFo!D;g|{x|jcj9oQv z^v#{SK4ZggzRX2i_huY<^M9E&J{}RR3OIbrjb6U>`^S-&@!%IDg*|litc>vLV&B5c z-!-ooT|k~m06I=1E4L~zlj;horbFeiGYNcBd8}**9!bu7*)$}Hoy4^>WJZq{Gx03n zNzsnsQ+m6P)4T#V9d{Y*MBL~~G~9m^W(wTXR2%;`d&DnK3EtYEn7`5;st0k>4reGs zeGkx23jb;eTR%77Z@!yrf8%&Fx&Y?3S^)M^kD_@St_tmkIJpP$HHec0sOR$_PT<$( zCRw;ZkuDA2X#glz?1F6RYpad8rIzhmhfP#~R}42^-lV{&viSDnbb@ z&sXxyqgn$01E|Iz+^UUf0t1PMmW_k_1yzB4h|75WlssexDYdat7#`SFQ;c0tc6_-_M!|KV@O-9<>LBGW7dD zj8Ji2p4Rk^J2afH41I<*>1T44&{TB#ho{`2ZBv!-MUO8ECGOnCb?Wd^JY%6Ho-9=m zPp^9pamkJz8HFp)$XN1S&5ZH8e#ts#OYp=)HmaAg z`qRYB1{p=Z>%YM0#cFcR)5g%I@$I{Aen$7DkJ6phGrgbh*?-?ow=@|wmfV!F((LbB z8<;M6m9=HAD?-zhNho_vLacI9fy4Cb~BmbIH=0*!8|fw%nRRL7nB5wqAJ{FR*~7v;PD;e%LmvkLE;y#7)ArX2hi>z8L3z;2GW+9ks=>PkAM>1Y$@8;K+o?~#hje0gwyTW zs~1@ew}Ie6d+9j=8?BucXO(9*M?>(WLh#gp;HeM6lcg%5Hy>YQP1(6itQ5C{;87uX zT9*nQca&v?#~M~RD_R=qXQR;2Uy)&B$v85cjYh+ccU(qRxC`2r&vV6T%S7Dfs43z; zo^o?kEr^QS4LXd}jB0PIwUR z5V80d%hZOiSCP1>0?mx8^;7$ zEBa>&)@D75x-Q>ev;Yd?N2rArX=&Ck7p>4exGHkao{8G!BX8%07kUtJ`}LR=t&Njv z&e;T*Dd18p&eBaI%feZvS9;uWl1q4el0sUX`E-OBg|hfQ!SP3DosK_>ofU~Q`C3<; zYvTLh>TX6+hLT~f=7<(1BlAAR_s-8-qy9gC&&injf9GaA^Klw^nRUK7m~mIb1v0$6 zE#F!ZPBoc?e8xP$B9jsvssWqC%#b7w5fex(zN`YO4+59u3*+DntC#Oc1c_gRcdC!# zO{{!6{v`MX?l^u8HB0fn(*H{JKMfjK8`kd+O^Ot2V+Xw!YUA6Ze*zi#GrsMfhE3wH1Bx2D zvrFhf$WYwJt*wO$(X45Px(T)M7SsyNSB#s`U7!+Jk6m@KwG!)sN!`1ng2dIlp)Vni z?}b`&i=q_OTl%G50Qrp?44>gq)c=g#5IX1aMUnb@bJz+NNH*a~IiC?LfRM@*Gq#(K zsF7u(oK~gBT~4RqL8c_+G;ATCVb`NzfL&%z13$+^bOkV0csTJ}AiNc*4X7>XxaTrV zM`qhq&Zqd6XX_aQGH=TG^tp{0_3yqiv(L(FGTJnQW`jA)vJ00QU)_CK=FnveGG=x9 zBjdC^HGF1`9EO?A?pA5Xn#{see#&_8x!M`${8}@!?dDJPxv`;@cgtK?gcBz^pJ8*5 zD8@)`_>qJ#lE4qxWZDC~7~rFIioXj`@oIRX{Pv1c7%!5r=akU&5UV1y$(!yu8rw5JKPL1J{`lJY9i@ z3nADRK=9l+c7yfu zyWk}Ad~72Val=h}KJy?d^GZ~H05+b`hoWKN7HfS$#l}$;{BAZ+gn4W}*a}I;7r(=` z&rVCV5Eg_x*$$V_(dKs@Y6-#^o@=L}s<1&a)76B#X;n6#>8y60@DKGH;GG}eVO;ic zR;cFSeb)AgBe*haeYNgoZBy&kq45Fiv!T1P#%sSfPo0A4IkXnzEbuQK^?p$kbn)j# zGz~4w$x-j{?a^kooZtn%Y6Sts3IJbI5uSw_3|NZR+#VhlYAtjj_EB$hlA4nH>>{okd2aypg?!Sgc8pI~I4w^OeG43PHrB zkf%`RB2}4nMflr*1pdP2`20(Ei1U5Y$YQu+b7$X>g`0ib4*V`b?-O^!YB|SCLdHo{sYnv5A%4Ve8$~pUSW1eE z;j#d6u$$c}0d!34X44{GW01ga*k#rs;rD>rfjWRXg8tGS;<78zmgR_x<>EeZ;xn<_ z@Bxokj2Bp}cL8s5u3`)aF9$*hc{I0s?67Cyo@puiT7>lu+Bdg6+)FW^vQNXB+e<_| ztt*5X(hfa?^~h}yX7H(x2bJ`IjoH>N2(lc6Er2j<4`G(zPq7YQljKVXGY<%tCR6Ci zlDK0#8-&=-Mkc0{XlmG&_%C^qC6zzvFK@GPY3kV4U;i(Q;ez!nL**O(GFLwn6MJK9ltC@HQ|5N-6!5kJ@fUStQGbDp>7Bk6|UXdGCUC*+L2c` zd-0u#X6?-hX{|Tvb@KgM?k!uxz5igs`J?nQU?m}S+(e&gA> z*egW5mIzaN%nHv_lynukLJib3mU66VT~5;92Wdt479g&O3AF%rIBg?)05O~zsW9#s z&bjX?AdYj?j8cn24mQW9TtB}=L)1mShn*=_oQkW_;6bCcee9QyI zD&JX~RSsLsd0`W?qqlrJVbQs-<8OvIXM&=)jglYF$b7}cz*ao1VqRAwPJVikeCU7n zew(~C)a)HlwCVYNwFHOgfO*73@vD<{J&G2B*uyhMKcq1us1!Yzm#4po0bL`Yc$X+p z<}sjw{{t+D+Nl`OXJA0rE*;SBn8pf=HLNrmHYTx*jac5qVjsg;;pK6!{4-_zvcg<2 zs(hZxJR8MnH(YAP^;^yzIaAWnxl}x_<-$E1HtdO@AM0)u%2E>LIEf;H#A1^8(z@~m zabz>AD*+U}8wGBP4L&c{BUv4AA0?y7mqxxPuB>fnWIIB8}cbBg;ftXiAT}EIcl~8OgI>i!*j|VABS#38>Qgv&@#O>}+Lz zy|K0Lx$p>IyQio4t~h@YQdcq?z45(IX))dC9#o7!IXG?OyKdTjzQJQVNx!ts>7(xS zHT}8Rmvmzt-;{M`5p<*mK9ri%Kxq z9|k@T zrQmT4;VD%7@)>L+H)GOhw0xk^3wHE9ie0?jR_DiUfgG z`dc^f&@cFKh;wBDJd+FeZiJOM@!?k$@UL{@S_lu8N||cHnX1#9PxlU-@DJ~YU(O7* z#0FErp@#yd?-+;ghqGy zWfjHR2u}t@e*s*E$@j&T%BOP&oxAb8P0BnlSTVm(R(u0W6mhx?Cy+yv(fzRlucC6T zq3HgdAc5Bca5q8#+=A}kD4-M_M)x08+Wp<7Eem*}hLusq$O5`Z(Td(BA90hNr;9a* zPf#3GsgBVumW0v5WOfyLR4r zv;L!^-a{L)W_`|zl||>)k7(^%P6(r8^Zta;_c=KzG=4G`?rtc((Wb99C!na4 z*R!^lD7t~T0ab))4e-p=WW{{quwvbSU)(@C<{Xa*qmHkpKuDlYi~a#2aXZrSK}cX2 zXaRpp(F=VKSZ_c`G$|Dl?uf$*C2~lDQyA&z*s91doE7e7*hm#2Ooj1fg}NXW^BCXA z1l({-+)JqCqCtRJ#3JIB7Jwfxts!lx*Q;=IU5I|Jq3cT#7fcb~W7{gi)Dnc_S$=te zU=fGuigf4?f-JeOfCcLYY= zcK!P!?aVWe6ur^-?$AM`OJ!<1<`;)iYh6k|tvb1Iu8oazgf@&I;Zb6Z?65?+OzCk) zxi)x~Bk?GdBQk+6kPdd4)h75UTBEB>aF_X#^H``R!)5kd(XEYn=bU`=jd#xT)yO?y zPQ1cn=C563wk_F-H!8jk59FCs3qLj&;CEIU+;InaG{#3CdwgBre%p8T>wV1YzF%b) zzC6?pIlligcNL*pn@M){$P`(Hqy&dpog|_OsfI%m&1%C>DzgIse|dD{G>rrSP>OOg zV{y=o&C0y+-9%BotIT``ex}KluIMTh+(gS}pff=Ny<}4zk1g{T7sc9$--2oyRLsSP z?Nz1Ob8Up`1VlP7X!FhoT0JoyDsNt1(LV6I1hIn)VTkNW;!oui9kM@>u+G8I?}nj& z;lDpp7h&iR!q6WB6oZIR{TTY=Aub>yWDecYixtR9Bhj$(Xp(G8{AZ)e@EEq>vGUm= zSoz0oWcFN8i+PJ@GlLMVbXac?#Tv?J&A!=Bf*;s_Z+S=IN)u_KJ6K=7-i{)YM+!&wrMF z85)nyRi{IK(YjlR1_Zje5r)Ib^J}&PrQ2KKgN$9-XW*G ztS6a=GS3K)jNvBto0nN*qulqPGE|TS36uny26u_WBOj!r@nMO$(K$&Fe$;_x*|wOQ z1P~W`mdr#o$@jC*kuUtK=XjcKi7da#d-<%>t(Rt>*T1kvrdAJgj%|vvW!kjq-YK}B zO-J`pQR0#Q6zvAgGe%&KeDTQJ3&ZQOLa2?Ryu3ViDg7?Q^Ptvt+uhJYn9StKHP>h= z<+=g`x9sz>G?eOo>2a6poF{O!xJvc%VgYd}s-klaxW$TE`FQlp*SkvdrlzOoHnYpE zv&?S`YWf!Rz1{5m<_x5$m|6M-W| z6mL2S*^7zHDj+2|bSx>Jgm@$=y}2ktLU&S<<%{D;Z&o|sk5(a|e#TpRr7}IB=dKfPmWTEN;wmc@dQNA-wzP!3*bCv!6 zT=&gChvs_U-0_Ch6L*4jY~9*gzH^uL4odkuzL9^leS2#V_AdhHIA3CG)!r znIHSlmiibN{NwnDF|tPy39_Zf9SOSQQKnD^3E(fI+r!WG-J@2Rz-t2%H*CT_>brXI z%KVyz6jk7N26dJGZbIP0J zjG|_rY72J+jAl3NH}9BxfpOruR3q6^j1_(Bn@_C2$y~mD1#+kueO@_8JJx8Ma-&}3 zv=85v9<$pg=NThkL_a?Yg3?&gA$==?~a=mwxHk@p#Ub&Wi80#F#r zsqvPD-<0*>8$#IMsYfBM)fj@T5ro(}2trlC3S3YL4S~>m0fG+c5MtC$;P2cmklc&8 zlv)A-*&hP*LlBW10BNh7%rMztE}DTX(=pQ#5oBU+`a*Z1FDwMs_XRy@H;(w7 z^;Pg^!9UGzMAd@Z0~!y15Ox4`7zDQn>xD)FPgR`wa4?=AxHb9}J4}NuC>M6XevbF6 ziMUp2Jf*^Q2J=P4k z*TCHcdWh%K+1?)z{~HV?%ssilEzW5?6;QOZ^YW}w2*cK{dcha{LOQ~rZwRfgTR`C= zxrJd{G#~G#uH!+P1^5=_VYpkuojLOM5QeE2YnIVgIH}ee(_&N;&Pi#6P2I$049k*I zOBpCV?pjJ3x+zntl$Jtqj<|#+uFSLm5t7<~+Jc0Z0y_ni3W{nXa8nZWbe=!!cwwQk z@nvycwU;zw$c)xztJmH(FY9@ZS@g+uzBYS$>wmPm(;T%U&$s>Fy5>1`gXX`#9Af;@ zEg3mh^sgRlX1tiW(R}gWOO1uyhxq>aL`S3P8LLds)6jkaFK^T>Fg6U!(B|yD%$t)# zmSS9c_D=of7oHUE$&0v@}R>{jerQtQDmR$9t}#?f}zjajxzX*=vrh}#Ur_wXImsyv`}AffHR z?g;7xifS})_W<>BoBqDsdqCyfUiz_DLh_aPFrJ#kF%dG1TTbsq_+tu z>WkQ?JOB~=J<{I!ML#PHu?}rVoeRCbt^5mG#>pTj_Sla?1U-k1`I0!F^r_dkmb0+q)sN%9bD~eJLgo{ zzH0j|umAYGw-yFOGD?<;_4GTp9}2yQLDF-~1w}m?-_0vdtn+Z@KkJDZ>N@a0fc|v< zgUzh}?c7z=u3fv(DbR)1W8f{=ywsYyXJY#L{o_;)ybfPo6nX-KDS+p%oqe8q;rjg= zt|PPB9o%GnwBRu{XV1hUTwTKZ-YuLz;vkh>=HyzliT84{AJvD*I}szZ>#D=FH&Tc1Gg_Q8%)H#t zeV1Q*lVN*OI|RX|G?p2SqeHM8FmH(<=7Z2sW(Szf2_A-S*%PtwLx@&( zR|jY>zLB^Bc#YK$!xz9!?y3?xTd`L>uoJAUwsD)duL6r{>uV7H7~-!BC>CxtH0$IF zzVVfc<75`DhQVsca)=Xj<#fa^`V`B;yC6<*t!mLyh?A=pJm%fIXJR3*b(;dQv;^V= zbs}@@j^V6e8i~2IrCS6z|JX6u05oiD87J0eFwW>ZgVDr$Bvobq3Tkyyc86A+hyB>2b%_u1o~PFB1-rmi_ywlI z=6DvnAQYBxS9rsr6UMO_-TiQQso+(^?|B>R8cfzd+xn}qtt8X*OG$spwvh?T@Htb;a^?9=S{3O69WR9%|XEU zra{{co;)+mI3iwNiDDhXwQUav#P^eOelKr}3Y`a>@2V<1hpYiwy(mY~Z%BW8iDK>^ ztfXVv)fx|xxDR5lB}5uJY*7-#o&mAf7&gQtmr=b3A@(qgiT6b>L+s%gkausX*mK8z zHV_-9Hi(TvLw78`BV(em*pSjNPOPDy4Ju9faLNBmw(M{&x&g~lStFBj(-G|7^L_zR z0=2^5JrnyBxv*EEnoGdTg1Z+8@>XBJ zboim0dh)jh($_3|Po0KNfB(c0Tk!J~MN>?Z17J(P9<#{z`k_By9 z>F=yTIdHTEAbdGJL6(hL!XW8!*Ah}t9mmuX91$GV6!1(`OK`%(?Avj>o}FNLWsJr6bw=)LU}BlqDB`j358BQHNsU)ErQx7bKd-HEMslwf9=yLR+nC|Dq|~$7^J+D?IQBg({&sf7Sfms3f>=MO7k$9T0Xm;NN{Pl0^3>?hbjR_ED;zbDaJ`BOrNm01D zs90&@`-U8i~|w2pY+^efEFJD{sffIbpZVwhJmV z&&M`05jQ-xf0tk##w^m}d|eBIR)KoKZ#r%dY*H@9YKiS8R&rfkRX{=T;HO)2NVVVx z2~4FsfUpt}a9!}=r!CGbD0W;`g$ieQ6=5O{MhSIpk zu92c`DB15QvA(YdyRi4$^BY@r&pg62<<^~u^Enow#v{(<_z5Z4+~Zeof{i)0g*klD z2Hzg92VFe?o&uX1lqaC5S#Sf#z4vczsSU}?EBt!>erqZ=sQBJNcn_3V9;ht@?sId> z`UUU#34EmQ4T2w|%${7hY@cNmm`q%Taonh#qmArQ#OI5o#~q)$BZZ^znL-kLIn6t2 zCXX;q;aY&o;4=JT1`j(G)ERWb=N01#YFR8-{O)cv>3o;bbjfI=$5Y*mf@jwo&-Y-C zpmTes_!6|24gaTi8qduiqEDT*QQz>*TY8gM7HMDPDrUc{o-?{1T4(mSs*Q+$;i1(= zZaCX}*XlLebvFd{KKJHpXLc!ISXCQYs*3Rac+WD{MCM2o^`zPk)qzbq7QPdENfPIi z;U;mWO)9ej4?h=pNCNj^bMvIBEKr=;J-c55C=tZ`GM{Bu=HZv`Erb8yV>VlQF9qD~ zKpj9GL7hNdKqq`&u`=B+u71$ni`Scp0b3s!WZP=M=E+&UiDh^ZZ(P8>J*i7j?A{v> zV8#E6fcQ2{gb%dvy9Xs8)&2@$#(2d-`h`f(>Hz^5MEcv{hQ8rF1qZ(0g@7Cj0a*jW zuNQ>v8_*@NxLJg{+_Ks}6KUNA8v@ze1aUk_3j$cSn7jVK24m-8L$QOF3H| zdBZp|9vi$`j4YOme!((T-pIt<^bGqf<1EOU!63wzdH~&O33zM}*qRDAI<=Mye-Na= zy$>|ab_-sK6NYe|;Yd^H6mYAm?H0O)$9XPb$3ajuT(xYs4%~lceJoZU@zdCapQ{4!2Wor!{74ymjT!Z5a$Y^4-9}V zz$3otb1`HNqBho{CZB(FbP=k?T7ltk7`jJO-=4w}@Ucl2LMs(De|(WT6gKn|b&(xj zG{aWEi$>-9`{RrwYnsEg2*-lC-w>_Ulj>|@s;y+$ng&%3TSE|f2MQN8vUJom21}2- zrjd#VkJ2>2t5D03;uqm!A0Bq}R}|nbb595SZ9r{7(Q}IO`O4Zd`>q;As{T^`V*R<* zuj&K#{-6Fuulw}&zsypf+?%U68u@^}J+Z%eal>qFN6rv!_A{R$C&K78o@r^EqUY%^ z={+RR$o87n-@O~flm4B_%`}93PzjpuC1kvL%GWQi}4ylt+2QjI!2}lVJQAm># z9jXDFMBz-L_CS(?ySxTbA7La4eUj7|q^3|tBS3gFhqzR7rp$O84T0T;d1d~XALfGq zlmz1Yl0keIhG^+`esJ?Wd`I;5S-9i=5<9}n>&X1a)dW&05+oVEfMVXED5gJX zpXb9~zA+p;5BxxNakh?#jAzX49d_2Oj*DurM=U`lE@a}{7 zITs=dWiNcpx2LGCEusn!Kt$Dsh*BZ;0*Hen-`pFJC2&W4HUO7-*hypqz*)wyQOX;3 z6q?vDK40F*&R3paDZk9V3$iosl`%3IH%w10bH>g@bIi4IQ_q4s0BlD0RD*C2hOL4W z@RHz1Gm(hVBprMiPFwSU&}16;0>^Wmbja@oT4noX+8V+cPb~pi_H#1x)r8$?Rd!Eg zN_vAO%~kY|!q&SNYNtS5ZHR*?Uk!RK-FhvL^LXtGln`pZwE$PPtwE>VGJd&t%#AyW z^sDx8Ag}`$eTi=+aSnic^j5;QE7E(sGf?ex=bc5H?T(JhQY=)FH39g)2ztUpfar*M~$?I1V`<``KvBKF17a~a+$jQ-g-=pz`D^UvR{&rN(?dt$L}hoINZ z9I`*^{^EB<+qAT+ex&tg?e}H};(bXkpDAz4Tvvq9Rke0cRFue=1b2C4mTUDyN>YV$ zcJP~#WQOA)GrLCu$Q7Ao6CzHTdnTEFOjw0?O(IS^&{5wf%IDl{neVuWoMQI(M3K|% z7O?M*UjYPt=CH!Muk zI#8M>*75_$e$h_QcMv>h4jaZFZ%f~ebbI1?EQW5z#G+`UEzS!uxsW+`M`Bhu4N)`} zNg+X9O}sEZ#BdT-C^qDA8<}kv1eSS@pRP>A4S&VjJ#kdrL2sdfl0nG!U^?yic*+h$8$l)76E$ zRkn8DbwJ71H@x2f@6K%WqgsqDre}e>^S-($z1u4dwh(upM@bJV;@Z^01q&Xt+Tz?g zFtVuO)|Tx40(Y@D&h`DG64W?a!deM;hkXBle}v|$0l3$pn@5t)f>W{3vn+J+q8soL z36`YD;~d*kkyZ)f@@|5Dz;f{Uogja{vnYT#F~j2ITC8t7Y1jgd9iBjB@HlEyLDg{XPQRx0&Bn-Ue$ta}*=43~ zf6(aOc9C{i+o{*Sc~v^LNRbO+^nuIg>3U&n{rnaO^f%TgX;14jWSIKp@Nsmj7yi3M z-EAYh-v9Xx+T-&U8?z1-=$9>8tr^44k?~K|mW@*pidWUSJBi{{vPek|xuJRam3X)L zHaBcYm7RC9nAiC4F%Iwf1P6tp&P$y6qnbwKg zvSH$)e%Fdn-<+4Lm`?|7)bEZiG{#1K)dPDK!hrgmV{fryP=7E)6L{t$s$!uGzSPor zIQcxQ7l2(f1%xR@;UOF^n(BzX@!(kyd%3WAb;T&NZZwm2VG;_$(v&LH#wG@}-D_$urGh<=g+!atJslamH{LAZ0#bpmi(wp$ja znskV&J9pP2z0>^t#QiP3Q@&Oo9lN3EyvG*}D0!x5(Yg^$g%0rmO1VbCmekgk{U3e( zTydTr*v}3g)ge@b&%imo7aHGPxYSuoUxfki3kE}7=mTTmp4xh2w3be)Ie80#{5JR# zupJ#hxMYcl`IkzMJLb0#4_9&~j<`qtqM9RwEBr-=@wyEU=t@C}Ki6WQ#rw*_g+LL!2(56h7SS~o~mAR=1 zb6ZS8-lH*XwTLyH;1I=^6k&;Q*KkOROo}{GdCZkFW*3quscx9}j`HA;u6J7%$hXk_KsKD(l*RFpSth z8gJHL1b4U@GNJ8sh_WYpE>{jo;9|M7*$LDZ;An!lyZoi^PVyk&*9@lb(U zIO-|wne82-5#UfC{dt()X76vYyvn*|t}8;Rs#@Qzjm(hPM5OXFLb>w_39gVNig9*E zDl;>b8IFTy>>dfAM35BNWzYEv2p-f|Iu^qC`$Jo1F8y)~HngbB%AC8SBP%@C5D`h7xv?Q)3Erql zf{WvqMs^a8>GFmRdE7>3+XY3-=egqaWg>2PYM;%kx3V5ho4Q`&T(!ii!?}o4vCk}Wj`GY~Za0hKZ(_|b3+54^mC%)yx_kge3;WE?J zgu7`~hP$1)2b%s>{R;}8_`XHq>r21%W@8JYS0o9ARnpHozcIgi)-XiV|5N`*c5N#c zZk~?aw8{Xlj=zaK|@$fORm;w;-#EP!tj^Z%=(jZPN(Eqo0KX7u?_5H_} z5Ml@^1_B0zkONW>3Iqfd&F${o<*2%^ysHwjyLfzyJXvjRGQYfC>$$ zpe>@@?HvL|EDEAl>K{xI6$CYiSPQoPKA-RIdvEV@b2;$H=a)WS^LTu3cK+<{%ag`aPxsaIm)h4l<<{o?+Af^1Q`@cAO~`JW+1WN}pS@;HZCTWI;eu;2 zyCSabxO1P*+G=&V?aAtj?90b3v85_xAD(`h--$Ro?aEL1u)0}e_qexh-1POO=fBfZ z{^QQicywj2K61LIztq0gVyIfZ-%8syO)s22UmG4%Z_cW>vGul%^}Tt0^ya%z-o)_W zBg?#+J>W>wp6|O@-Uifc8{Wm6R$!Rg?cwCh?8}*3yFCnSx+U(wBTgG`Ts2jnC)IEp zzn3-t0QRxgxHqiN^HMsk$FQ}0Kds2kv0vlsln5GaBX_}-{AUhP2cNE*IoB!wRuY4KJ-vO^3B#7Vm7X7 zuT|RGFtY=fs{Jsu)Mqu_psd=oO2J;westn}tx0}u_YcH74-D@VAhn@^f4$~=;CZL{ zeTT2P(}(KgJRnD<(`w|@dac8z-%Br)SMT>r*HhVt=Jh_+_YmUD_C1!o4@@v)^D+9&-3Zt&$3!ej|=tJuxb7r->G(X& z*H@p{#`$~rIIYBHs{ex95D!c7IQ`6GZlD_3mufS6jOD9(w4ZrApIQ+@k7y?OtT{bGMd@smAwbWx+ee zhgbM_X(0b-dvAM+XSHXmmkcixp4Gm0?`7eYBGewIqi*Xr{$GeaZd7`EoT_`%{OK3b z8Xiesi3TibqC`)BvRG<*Lxf14`x7aw0~OOd*^%RlvC z+YZ;h%KvA9#$}U!a%uUdySv*z{>weHXC@zCe!iolG3}iXd_#{%+Sk$!Rk2^}y~y$^ z_TWlA(H73zrjDvrxl^Uqf(}!eJq*TJ8*5F74>+pU$7j>i(Y5s(|G&f@?_%xM)^@ix z;KbBqXE1h32;-7V=< zUB!mexYJu2)j3tdna@d7i5CJbh7}HgHZw)v^xvntF-6T3Wjo*%bq8X?u$a z-)Hr$%QkbR)>19CVIP-jURJArZQi$*YN)+Vs;xe5RqZwGVWF+X9$P=vVXL93ey*=S z-)m~c9v{>H@oc7=IePaZn_Qf8-#1I!{L_=Yc5jekS8WUR+E3`xJ;k;^^W&*@_SI|T zgDoGcPQGnsqh?<7&=r|&h2EChbbVx7)-_9$y~w3f=YI;R)0%jVd$$JiYn)>^pvDOy z8{epPP2(Kbbmg$dHTU&)xixBX_SA-B+s>c#bb0@u%*h^_b3j^T`&0bcDerA7eCR`7 zt2D0db-S<1PPyl44G-??-G-_$lULeuH9f&s(VO$&ZR>h-GQ2q%-kczBUgEt?^rkl& zrbhT?^w(|F2yGS{*Qgau<0jeobcLjvf2be=lqtHQD9+{xke)*TC@4H`-TF8^<@w;LbN_bLaEsc3Qz4WBt7bcX~>m zsgu+3$@-dm?T^+?>?1&&7XiImv^;FJrD0Y%6qG5w`-~W7QXQDF^|(gzL>k(lLm-s z!`n8euMIbj5bSX}GSGAz_LD@T@V{cS+ipKE`%>TYE@t`J@&j%2e|fmQa-+*$apL~% z+Z_9@?3(fcol=#)&4h^UwEXX;k>>!#!$k(*#8wPJiMrQ8`0jo7GM~8 z{o@!QufMi7xA$#$qBY-fOzK*HqyIeKJpWLSwH(8WysIlb>!3>7%kFr4miD?E;&vG^ z_SSx0%=_s)*mryjRussJkDqKzehob_&+*#-ihaUF>NCr~W**;OGg@}H*?8Bg z{g#^bZF6k6Quq4~8~-62Zy$8pC${DJdmY^HtQ(fePqJJ^aAitqTd zJ>7Q?t>Sf`e@$;+t%&;?7Y{#sU+WbzYt^IgdAj)9DG&L9ncu6&$F)AX<2jAB-=fa% z?BKh)=5D{;S`T;ocn##c?G88GuEX#OCA&>ad%I1;e&pCV!=v$fo7_Fz9kS1z`txkR zuZ`E9Y&K`ZckPu@=W&{Cea*i0!9w}wqwj57y!dGitFLz%%H17S+OlXy>-#Es8&hw- z2kPxl-J|u*<*(_lHO^Px`s2Otojp!_wY8x%oP5==`dX1;-P|F$`J7#q?R%_!X5nF# z#@UDt3uiaAVsGgI?sodwjGj|%hs1Vdd|c~E{Xw1YqOZ`VI=4@quYB`x8m|?~ac|@I z&=c~!+ac|@*1gLz^XV~*5$mh9|Ii-Wd;5we57$}Wobz!$kN=)ZZ?c&@J7mltHlL}^I#irYHOV;mgvH5M^ z)_*eS(@U8R+xO*u*+)9xZu4YwY<~Nn9qGJzU+n~#jZP=RdZu3RAC0ZPML9YnofvQa zgDP_BfIq-cV?%~J2d<7BbDr9k3XM%ciXpT=iYl? zxohoj+FEC?%>MJbx3o=p;o_40Q-1eYva7C&U#JL_#3+lv;NDf z?WbA_vp!oNpVj*5JA=P766e$?)$gVJNTjz?o5w=?W|GJ9;TQmFO2ukNQbzk2%zsLnq${}A04|3Ll2^x*W) zANx4}P`&eE?=;>YdmwnHX|T+VS54ox3O>P`wu5*wet5L9D9GB=bsmuwErLoZ8)7-)3En# zTslg#{zl(R=YZ=KG1mOG8ud<_&BmqI z(r|qT+-|r0cE*-~RZ_~PJEtzQZdB5GpwY6BAW6d77o3DDa&2@Y?YTrjp>waX#C9Qp{ zw{;UsTi<<8&vReBR3`S=xvSDwC!OoZZp9fF{RbXqI-^h6EhdpgaYxJgfK9^d))vlkxg>9|Zd*zm5_cC$9%9*&wmTwjZq>+iJe zhR5GtetfG*?r(PTp4Vn?7=NF=Q|hw!Ec{V++v;DJHyr+WHu;9HWOp60Q}&U*LU!;E z-lBO*m+!tT>wDE*0G;XAQE!|LFPg`m0)$~HX3B8S}H>bv%`|545*CRdtnPkuP z=9}J|AA{_u1sle9|5$xl{JnF1w`u;`1CDF-aoPCB@r}lfw6EnGwjNCLdeHIFtoCh4 z{kTN+!0qpNeO8$D{l5O=l*1~u$CX-o`#iHwsHA%;maS$u1^!cq>M?f4&;IvO$xi+B z^jYfLd=6);O?L|XPEA_E{QBV=aB$aL7qn4TS5#YkqpMSa*6@h?TD+WkGt{y*zqX#9 zS9_*4pHpl<-)cyQ>6q18x_|Kot1YM5cw4*ldz(J%TdnfVn60QkHiMsXPV@c#^B0vf z8@7R>{bbC~+Y~3RzSwI|*;?`)x=|5@fw%t4}LB8?60lf1S%j+gKO>qCU!Q_3@@y$3$2 zpT|7Arwp)r&~ZciC1$oQv5p)3ep;EmL)#o{H(9&FroW|Ta&q~Y+T*NZ(^mDr`DQwf zc4ao*hJowGmCxp2XIS1dna z`pJ#o+U?eT-!~_=K3x0WyXQR%?l0N*GP1dN+JYe|4ym+?1M%Ben?BRWm#Rj zca1xp4jpReU~KKZ(;B(gCutzx>)q@rBl6nj+sJAg=ds_ogKQok8n4C4^?SGMQ@4#P zcg_Cabc|4#_7B-<7g`?Fy7CL(d~5lW4?N&QoNu7UecycCaGjQCSnqdh_FkULdkwqg=@)%(>}r@_u|?_lbYB{- zuCX+ItEK4-OH)h7>J68?vFCP6Q*+<%;#yq(VA0c8OO)@wZy@h{qk88DSk3$RzVUpc zcsIV*OVfS7UY&2m5p`OeoO+;T8S1t4)V!LI?p@RVgjwHbzF%hT0DGL(ntSi(>B|)x z{~CL2^Q7P8&9T0H?CyTrkGJ_#jj+wzR;V?9y)=&xciHP%)52`78Zm0;->3H2Z|G;L zMqIns6{V*0@2x%8&8S+?_*N?Z``;X2Zn1sz8y1|I&N10<>HMDJrQ@!?(D&!F2^Mr# zQ(DLFIo@lGKd+Qo-@eT9=^m6Gfc~7u*4m=ZF-`5?udkhDa>^Q=*2$~IYz^dBi>da+ zmsBn6d8txZzww_!h9jtXniea!YD~?pzW8_LFP?F2+UtMrptWrYh8ByUu~Zi zA1wM%xqMDn+v{xaVfqi(WaHPZD<6CN56gdTcbtFEtcUBfkGQ9$8mf9sU1`hT^h%>$ zJsdV~FSd&K$M=$|h&?Y=5bF>4?RoRZl=oO0YS?NrwYi#fjIE^V(3=$s6?;qnFWjmq zswV!eL*xH*SvBccy}nSjdCM1CvToS$%*=Bwq3!uqOWprX>gEIW{Ho#` z%sW+;@%Fg6s`xYw`!w&=-{et6ZT5}-YJ=re7cJAqPxLW*a$bFzI^dXNaD91atv0B> z_<0}y4Y>Eyxg*t=E*n>{aTRMDYLC-#%6fa;XXCsU`E;M(`dX;XRc9Jh|Eb3!(|YWh zwTi7l`i(`$({C@Hbk(Wx?*2s-FfQv*OmNQw9MwSYtZ}x34c!U6KkHRzRzwe z|FG2@+oAFENq+B5pO$LNm@gla>Wtr0%|@15EPUvqw!)20 zYvmPZjt258&NO?XKi{)y8*9G5*7ya6J@y@JzqrUV)c5()-O#K*;9iuyZl9|QX5~qvUVqx^0^n4 z%AdaF-DRW9zr(6c9r<5vyrC-4%k`axZ)$CB-{h9)srjb&=DXN0%Xb=HUF@|7+9iq2}@0aKl!l^qq!&;i2lIisW}X$yzL3?d?0(wG{k6Mf=y89joTlD%Q-3 z-HoiPHhpX*{rARht2`B(KUJY~EcJa?)b2>uYvYPtmj3pYsHSTP^DEOddzN>qHeQ7$ zrZKfYKHhV~KM?OUUu~#=*mG;}G|iLS*W%?=C@ovw^Y!$+8a3cMjr9F_)9*ss4z`*y z$Lf-u4@=iGt+$V&QfqB3HvX7;-SNJKXI8M*Wz8O>y5{w)&!$ys!(Q9caG^G=h1*QE zYV^L-nAT&z2W+ihlhl3VjBWhnX`@zc`^Yt|H@$Oz|Bk{|Jk_6c5ytUWua3F=pM6}} z=Jz_~PWf?=k89L2`#%%q%!1UXS>XErZB7U5^?KIWYFlot@;WuJR5kWnyjIQCDvn~U zvJKq0F1ilfOR7`;TrFPiQPQ;Ry2_p9qgNi{wW{>=)G7XX+Y+R%botv>l+Rwfu59t) z*U|guoNCt{`|n@A`~GxvRQ|vRK2%)ts}1$1yr`a*ZgbYEiME8^RI{8&Z-zpD&C-Gm zbMDPK8)I#(wQ<&*%Z<*x**Je)=XNJ+ud=p_wRFzS`Y)+YHGiy|u2mgVx@y;B9b~m< zW~K4nOWEFjR(GXVi|o!?9T)Yb+BM6P-ltWpbzGShI^MEAeZTHUOg_#j@P5($O>3#o zQs2j2W~slk{iN7<=&2K-EjaR8iJPSajgUyHXnYE`<&^c7Z5 zvRX^EYfY^VwY6CPU~6-%**yL`^i-EBwdr1)+6wjO`r{UB*7w(Hv(`S{9v7P0`pte^ zHF~vba!>h#56qlcyMDIXXBTvwaZXvas(Y*Be(Awh8rOY&&jF9^&N8msy}?X{HmVx-MYP+-B;|*|K)w}N>5$8y7Y(leJ#8H zzh`CRZ@!>(*1V3|l%fCX-G-_Mo4S719rosjg5Jc*kk?`9jfU~vH{%#<{+hYJeza+- z9UEOUt4-*Az2C52r|W0^{{HD#keT_rW8VO;J={B5Thf1Ik8yItiL^S7(E>(;u{ zg2%eQVzkpcIe|-f9cg_B~yS@QN)M*8CJRR!2^pw2){Q=j{x_8aLi)`;U|IEua zbF|(2tLg^YeEO|-yNzpWvGMEsH^*k$e;>X3c}!{kPNVhr4`0-LO;YhAyD#%|N4h4d z_2S~crG2#X)_kFweuH4&gIBCrTl4+&o`U71J=T7_K7uXld+w23lQdtemhYs0^U!e8 z9y=NvokLO*+q7h*^*xpw_xRKF!F|1buA5WRw-fuFb#vP9zWC=`54a|2`XLj_2VQ-u zy;JJSZR;*Bf6hL;?>^a6vM)k4KCiELAIed#NgDQ=q_j(6+ja0YNwYR&X}`E=|1%|> ztFd`XeRfS!#ri&feg9aSKHpuBJMSjddK>-qg467-$E6Ru&D&TTw$t0^IIQ;`{2F>% zp2aWjnxvD>-8t57wRVj8++lrtN8iuQGV7mKGug-azOLSUGub?P*Cb8p+2`yDt@ZuY z)}Mav#;WamYJatO$>ERt_rtQb_123^$>!I-YL?r4ryn%g78qc&Z5_?u*eYAp{_99= zK3S{w|F6y0yn9w@{g1~bn|rVPMd_-2zHT2?>dJd;^}F)qwx2bI-#GueWb@fQhhy{L zI@mOZ;E~x}x3**LoMf_WzSB-YrWCW!MmGDt@XKej2f>zY^ND7#t;GL1o2T~d zap2cmXH0k|{TA1LP}pwY=!Ex7dGEnO?eM_S|g8z4j{Id+a-lc1B$Dc)z@4-+AS|_S&m?+;ESzR735B z|Ebpk4S80>7G`3->FoB4{RY-QJ_l{AwHI|(y9xR~+H+rRZN%3EX+sTL8Pc^t9T(Ql zX8Vp))?z39vRWega7U+AgFgG1>~R`Cca8m@iI!9eDmKn{x_rFf@uFmj>tA&Fx3AUA zcEbAV32lk)ce1Y7e15g5mMnj7-Zxlt=Nrz?QmgaRL*Dr~ZPYYk&>x?#`RvP}$pZ(q zSUG$7gO_ROC+F?!54;x0_SM_x*v8Ikt=-;Q*YUL5xOC3CVAJ~Q^VA>vIqr1th%W2T zvGzp&YxrxWadtf5&(A9T%51J7r&EU$(8%+hR4v>PY$ywy$Zc{GU4pI7K0xUrGE}b(57u?AW{m zDvHME_4W3-6=OqH zetFz>bLyjWdwTbwDg)m11>dxfDoSG>8?`I(6}(jO1o>Fsmm)_V_r4LvQ-?BUPPe4_4e zmsx8q-5+(1jmxa9vf<;bZ)>Y#faJ3e+dTeQZ@#%~9<|?$P3_tF`xms<@0HqP`|`zo ze*0q`15_&(7~89BW@{-?eCpf5F}32bZ>cpmXi+c-flw zdu%>8zWYZD?r&_ZEz0cXV*q0}U7%TLbXq4r23Vkhe7Sx9W0P{*JV|T`ZNrT->-N|) zVbqTSo|;~|X}42c^x_{*{QGkI6x;i#b;Wh-ZYhmfdUW}Ux#yR6`Q5&a@ej8Cw)C0W zeY1=Euj?zH``c?v&#m~Krf;gRjWv|?qkRmZeSY7S^yYwhds&YGnm)dCg^Lf{d+uWG z)z)5yV*p)!*>PM}n6TLrm)eH!kl*gRt^>DZy$ zlG;A@n{}q&&*FO}@qYJrEurnX-S$IMeT4ZH!{gn%@wMJYk2Sh^y2ds4eR}h;L-Vwa z9&533Dv6e9qvxd&dU9Sp8E_0R_*%{5Fr;F~F1_Y_|VjeZur(8@JLJiOmZYZP>iTZ$#4nPrtDl zn+?fPLyCKqxxA{~>8#ZI}(j^0KlZDL#VYVS<3pQi(+!dV*mM&Y^ zxqP?PhYg+CE5IUiZ*P zXvAi0#%5&$He>Vb<(&%_cP15v*dw0Q|JCEmwcos0(TL61jLpghY{uqro0ljWu^F4O zS=oTi*c@*2Qbi*+V>31@8?YIh!)-oI(TL61jLpghY{uqro8PBs#Aa;9W@Q65V{^F8 z%M^{+jLq1rY`|u04!3!^q7j?18Jm?2*o@8LHm^`LVly^lv$6r3u{qr4(-n=_jLq1r zY`|u04!8OJibib4W^7hAU^6y{+x!7VBQ|3*HY*#j8Jojx{(D6uHe)k3D;uyGo5OAX z2Sp<`V>31@8?YIh!)^Ycq7j?18Jm?2*o@8LHlLwr#Aa;9W@Q65V{^F8A5t`8Gd5$h zvH_d1Io#$m6^+=8&DgALz-DX?xA`nZBQ|3*HY*#j8JnYRKC-Y<;Rw#)49?01a0cgi zoGS`Pa0X{^RyKe$ILG6Bw!#sd!5N&D4d4vU@i?EOa0F*?24`ghID>OM&L37df-^XS zv$6r4!8so1a}|!@49?)JYyf9)j>q{tg(EnFGdL?7z!{w5aXw$+2+rUP&dLUG2IqL3 zKca91XK)5*Wdk^ab3D$g6pr8w&fu(U0B3NH$N2(eGdRcNe6hk2oWU8Kl?~tw&ha>3 zqHqLfa0X{(12}_oJkFOY9Kji!!CBb=&fpx6^BRRCID<1dD;vNWoa1r+sKODP!5N&D z4d4vU@iOM&i|-z1ZQvtXJrF8gL6F2YZZ>*49?)JYyf9)j>q|9 z3P*4TXK+?FfHOG91{ z;Rw#)49?01a0cgioUc|mf-^XSv$6r4!8so1YZQ*)49?)JYyf9)j>q|0g(EnFGdL?7 zz!{w5aqdz$f-^XSv$6r4!8so1>lBXQ49?)JYyf9)j>q|Wg(EnFGdL?7z!{w5alS#} z2+rUP&dLUG2IqL3Kc#R4XK)5*Wdk^ab3D$URycw)ID@mY0i3}(9_P;}9Kji!!CBb= z&fpx6^Nk8ea0X{^RyKe$ILG6Blfn_4!5N&D4d4vU@i_mJ!V#Ro8Jv|3;0(_3IImMU zf-^XSv$6r4!8so1n-z}W49?)JYyf9)j>q{Hg(EnFGdL?7z!{w5asI5r5uCvpoRtmW z49@X5e@@{D&fpBr$_8)-=XjhyuW$rsa0X{(12}_oJkGZ&9Kji!!CBb=&fpx6^KA-8 za0X{^RyKe$ILG7s1%)FxgEKfQ8^9Ty<8l6?!V#Ro8Jv|3;0(_3IRCT45uCvpoRtmW z49@X5|BJ#AoWU8Kl?~tw&ha?ku5bira0X{(12}_oJkDQIID#`cgR`;$oWVIB=Q|XR z;0(^-tZV>haE{0M%L+$u24`?qHh?oY$K(7Jg(EnFGdL?7z!{w5alTXG2+rUP&dLUG z2IqL3yA_V$49?)JYyf9)j>ox2;Rw#)49?01a0cgioT~~)a0X{^RyKe$ILG7Mt8fHo za0X{(12}_oJkEUzM{ovba8@>eGdRcNe3!xzoWU8Kl?~tw&ha>ZRpAKE;0(^n25<)F zc%1K6ID#`cgR`;$oWVIB=X(^6;0(^-tZV>haE{0MUWFq#gEKfQ8^9Ty<8l61g(EnF zGdL?7z!{w5alTLC2+rUP&dLUG2IqL3zou{mXK)5*Wdk^ab3D%XD;&WYoWWVy0M6hX zkMq|Rj^GT=;H+!_XK;?k`QH?d;0(^-tZV>haE{0M0fi$tgEKfQ8^9Ty<8l6m!V#Ro z8Jv|3;0(_3IDb>&2+rUP&dLUG2IqL3A5=JkGdP2@vH_gIIUeVS6pr8w&fu(U0B3NH z$N5_dM{ovba8@>eGdRcN{IJ3ioWU8Kl?~tw&ha>ZTj2=K;0(^n25<)Fc$~kZa0F*? z24`ghID>OM&firyf-^XSv$6r4!8so1e^)qyGdP2@vH_gIIUeWlDICEWoWWVy0M6hX zkMko6M{ovba8@>eGdRcN{2vNOa0X{^RyKe$ILG7seT5@9gEKfQ8^9Ty<8l6h!V#Ro z8Jv|3;0(_3IR8-L2+rUP&dLUG2IqL3f242(XK)5*Wdk^ab3D$EDjdNXoWWVy0M6hX zkMoZej^GT=;H+!_XK;?kdA-6BoWU8Kl?~tw&ha?^r@|4O!5N&D4d4vU@i;%Ga0F*? z24`ghID>OM&OcE&f-^XSv$6r4!8so1#}$s?49?)JYyf9)j>q|@3P*4TXK+?FfHOG9 ztoWU8Kl?~tw&ha=up>PCea0X{(12}_oJkC!l9Kji! z!CBb=&fpx6^Dh*R;0(^-tZV>haE{0MDTO0AgEKfQ8^9Ty<8gjk;Rw#)49?01a0cgi zoPVis1ZQvtXJrF8gL6F2zfw4YGdP2@vH_gIIUeUhaE{0MIfWxQgEKfQ8^9Ty<8l6-!V#Ro8Jv|3;0(_3IRBTz5uCvp zoRtmW49@X5|6bt;&fpBr$_8)-=Xjj|Tj2=K;0(^n25<)Fc$}YCID#`cgR`;$oWVIB z=NA-?;0(^-tZV>haE{0M4+=+c24`?qHh?oY$K(7z3P*4TXK+?FfHOG9eGdRcN{6~c&ID<1dD;vNWoWpV6s-SQLXK)5*Wdk^ab3D#lDICEWoWWVy0M6hX zkMkIXBRGRII4c{#8Jy#B-df=Z&fpBr$_8)-=XjjQDjdNXoWWVy0M6hXkMlMPM{ovb za8@>eGdRcNJWk;V&fpBr$_8)-=Xji7p>PCea0X{(12}_oJkH}4j^GT=;H+!_XK;?k zd0T}eID<1dD;vNWoa1qxpl}3da0X{(12}_oJkHxG9Kji!!CBb=&fpx6^F)OsID<1d zD;vNWoa1r+Gle5KgEKfQ8^9Ty<8j_z;Rw#)49?01a0cgioL{MM1ZQvtXJrF8gL6F2 zlN65N49?)JYyf9)j>mZig(EnFGdL?7z!{w5ao$nk2+rUP&dLUG2IqL3Co3Gm8Jxjc z*#OSq9FOx(3P*4TXK+?FfHOG9+5VoWWVy0M6hXkMk}HM{ovba8@>eGdRcNysN?yoWU8Kl?~tw&ha?ETHy%J;0(^n z25<)Fc${}rID#`cgR`;$oWVIB=iL>K;0(^-tZV>haE`}$s=^VR!5N&D4d4vU@i_0H za0F*?24`ghID>OM&eIf*;0(^-tZV>haE`~hMd1j};0(^n25<)Fc%1iCID#`cgR`;$ zoWVIB=e-n;;0(^-tZV>haE`}$Z-pZ`gEKfQ8^9Ty<8hv@a0F*?24`ghID>OM&VR0O z1ZQvtXJrF8gL6F2`zRd28Jxjc*#OSq9FOz93P*4TXK+?FfHOG9haE{0MK!qbXgEKfQ8^9Ty<8eMn;Rw#)49?01a0cgioM$K;!5N&vS=j*2 z;2e+h!3sxk24`?qHh?oY$K!m6!V#Ro8Jv|3;0(_3IKNim2+rUP&dLUG2IqL34^=pV zGdP2@vH_gIIUeW36pr8w&fu(U0B3NH$N6;%M{ovba8@>eGdRcN{Cb5WID<1dD;vNW zoa1qRgTfJOM&TmvWf-^XSv$6r4!8so1Hz^#! z8Jxjc*#OSq9FOx%g(EnFGdL?7z!{w5ac)&Of-^XSv$6r4!8so1qQViJ!5N&D4d4vU z@i>OM&VQ+J1ZQvtXJrF8gL6F2Z&5gcGdP2@ zvH_gIIUeUD6^`Hx&fu(U0B3NH$N4CQBRGRII4c{#8Jy#BeyhR}oWU8Kl?~tw&ha?^ zmBJC6!5N&D4d4vU@i@Ot;Rw#)49?01a0cgioR3yGf-^XSv$6r4!8so1w<{dM8Jxjc z*#OSq9FOxc3P*4TXK+?FfHOG9eGdRcN{0@a9ID<1dD;vNWoa1r+ z8-*h{gEKfQ8^9Ty<8gkc!V#Ro8Jv|3;0(_3I3KHU1ZQvtXJrF8gL6F2?@~B|GdP2@ zvH_gIIUeVCD;&WYoWWVy0M6hXkMnT~M{ovba8@>eGdRcNe7wRDoWU8Kl?~tw&ha?^ zt-=wU!5N&D4d4vU@i?ELa0F*?24`ghID>OM&L=7y!5N&vS=j*2;2e+hdlZh~49?)J zYyf9)j>q{Vg(EnFGdL?7z!{w5ah|Pk1ZQvtXJrF8gL6F2a}mbf z!V#Ro8Jv|3;0(_3IL}i!f-^XSv$6r4!8so1`3gsH24`?qHh?oY$K!mm!V#Ro8Jv|3 z;0(_3ICm->!5N&vS=j*2;2e+hDGEn$24`?qHh?oY$K$*};Rw#)49?01a0cgioZqW( z1ZQvtXJrF8gL6F23l)yw49?)JYyf9)j>q{_g(EnFGdL?7z!{w5asE4nBRGRII4c{# z8Jy#BUZijYXK)5*Wdk^ab3D$A6^`Hx&fu(U0B3NH$9aju5uCvpoRtmW49@X5FI6~# zGdP2@vH_gIIUeWJ6pr8w&fu(U0B3NH$N7BeGdRcNyiDN;&fpBr$_8)- z=Xji#D;&WYoWWVy0M6hXkMjzJBRGRII4c{#8Jy#BK3(Am&fpBr$_8)-=XjjouW$rs za0X{(12}_oJkB3bID#`cgR`;$oWVIB=f77tf-^XSv$6r4!8so1e^5ArGdP2@vH_gI zIUeT^DjdNXoWWVy0M6hXkMkJ{M{ovba8@>eGdRcN{2_%SID<1dD;vNWoa1pmQ{f2C z;0(^n25<)Fc%08tID#`cgR`;$oWVIB=amXaa0X{^RyKe$ILG5$Q8OM&gUr{!5N&vS=j*2;2e+h`3gsH24`?qHh?oY$K(7Fg(EnFGdL?7z!{w5 zabBfx1ZQvtXJrF8gL6F27bqOT8Jxjc*#OSq9FOyb3P*4TXK+?FfHOG9<9w0A5uCvp zoRtmW49@X5uU0sMGdP2@vH_gIIUeVW6^`Hx&fu(U0B3NH$N3V4BRGRII4c{#8Jy#B zzEt4|&fpBr$_8)-=XjjgC>+5VoWWVy0M6hXkMlOM&L2}af-^XSv$6r4!8so1 zk1HI(8Jxjc*#OSq9FOzm3P*4TXK+?FfHOG9<9vm}5uCvpoRtmW49@X5U#V~eXK)5* zWdk^ab3D$UP&k4!ID@mY0i3}(9_OnRj^GT=;H+!_XK;?k`I8Dqa0X{^RyKe$ILG6B zwZajc!5N&D4d4vU@iOM&etj&!5N&vS=j*2;2e*0m%OM&etm(!5N&vS=j*2;2e+h4GKqa24`?qHh?oY$K(7d zg(EnFGdL?7z!{w5asITz5uCvpoRtmW49@X5e@5X5&fpBr$_8)-=XjiNR5*e&ID@mY z0i3}(9_O1Bj^GT=;H+!_XK;?k`JWVy;0(^-tZV>haE`}$ox%~E!5N&D4d4vU@i^bC za0F*?24`ghID>OM&bKHW!5N&vS=j*2;2e+hXBCd%49?)JYyf9)j>q|P3P*4TXK+?F zfHOG9haE{0MpB0Ya49?)JYyf9)j>q|56pr8w&fu(U z0B3NH$N6@JBRGRII4c{#8Jy#B{*uBGoWU8Kl?~tw&ha?kp>PCea0X{(12}_oJkDQM zID#`cgR`;$oWVIB=dUOn!5N&vS=j*2;2e+hoeD>A24`?qHh?oY$K%|sa0F*?24`gh zID>OM&OHi8a0X{^RyKe$ILG5$RXBn(ID@mY0i3}(9_L<#BRGRII4c{#8Jy#B?o&8| zGdP2@vH_gIIUeV`6pr8w&fu(U0B3NH$N8%YM{ovba8@>eGdRcNe7C|8oWU8Kl?~tw z&ha?kqi_Uga0X{(12}_oJkIwj9Kji!!CBb=&fpx6^S>$_!5N&vS=j*2;2e+heF{f# z24`?qHh?oY$K(7pg(EnFGdL?7z!{w5alT*S2+rUP&dLUG2IqL3zpiiuXK)5*Wdk^a zb3D%frf>vja0X{(12}_oJkAd&9Kji!!CBb=&fpx6^EVWZ;0(^-tZV>haE{0Mn+iv8 z24`?qHh?oY$K(8b&GdP2@vH_gI zIUeVS6^`Hx&fu(U0B3NH$NAd|M{ovba8@>eGdRcN{2hfOID<1dD;vNWoa1r+uEG(V z!5N&D4d4vU@i_mx!V#Ro8Jv|3;0(_3IDb#!2+rUP&dLUG2IqL3A5l1hGdP2@vH_gI zIUeW#P&k4!ID@mY0i3}(9_Q~X9Kji!!CBb=&fpx6^A8k`;0(^-tZV>haE{0MhYCk< z24`?qHh?oY$K(7Xg(EnFGdL?7z!{w5aeh?c2+rUP&dLUG2IqL3f2?o>XK)5*Wdk^a zb3D%L6^`Hx&fu(U0B3NH$N4`Mj^GT=;H+!_XK;?k`7wnfID<1dD;vNWoa1r+iNX<_ z!5N&D4d4vU@i;%Oa0F*?24`ghID>OM&OcQ+f-^XSv$6r4!8so1pD7%{8Jxjc*#OSq z9FOzQ6^`Hx&fu(U0B3NH$N33`BRGRII4c{#8Jy#Bep2BG&fpBr$_8)-=Xjidp>PCe za0X{(12}_oJkC!k9Kji!!CBb=&fpx6^V14Pa0X{^RyKe$ILG7sONApigEKfQ8^9Ty z<8l6#!V#Ro8Jv|3;0(_3IR9GV2+rUP&dLUG2IqL3Hz*vz8Jxjc*#OSq9FOxe3P*4T zXK+?FfHOG9vllNtxpUF%)8;OlyZ8*vJYnA4<(;#a&tJN%{{_ar?uY{q z(G1%zIeqc$`HSW*U*33wtq#`2?R?@XopV>5-t_b_uWd}9;L}&kUACZeMgOx8X)M{c zOXr>1Ie*2%_jfjyXW*(#TGqMXP0QbR`rKumCwDGewse`^czc^Ld(qP6%LlE_q~-JH zF6x|p+S28-KhU{w!Fvb1?U{`?e#QGcmn~nobjb;O>jk%7xYfdO3&)&!=En{z)Vj6j zt$oMZ)!WbOT)txV!WEs%=B}_OtbNh^A7rd D>l@v| literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..73a8ad4 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,206 @@ +absl-py==2.1.0 +annotated-types==0.6.0 +anyio==4.2.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +astunparse==1.6.3 +async-lru==2.0.4 +attrs==23.2.0 +autopep8==2.0.4 +autoviz==0.1.806 +Babel==2.14.0 +beautifulsoup4==4.12.3 +bleach==6.1.0 +bokeh==2.4.3 +Brotli==1.1.0 +cachetools==5.3.2 +certifi==2024.2.2 +cffi==1.16.0 +charset-normalizer==3.3.2 +click==8.1.7 +colorcet==3.0.1 +comm==0.2.1 +contourpy==1.2.0 +cycler==0.12.1 +dacite==1.8.1 +dash==2.15.0 +dash-bootstrap-components==1.3.1 +dash-colorscales==0.0.4 +dash-core-components==2.0.0 +dash-daq==0.5.0 +dash-html-components==2.0.0 +dash-table==5.0.0 +debugpy==1.8.0 +decorator==5.1.1 +defusedxml==0.7.1 +dtale==3.10.0 +emoji==2.10.1 +et-xmlfile==1.1.0 +exceptiongroup==1.2.0 +executing==2.0.1 +fastjsonschema==2.19.1 +Flask==2.2.5 +Flask-Compress==1.14 +flask-ngrok==0.0.25 +flatbuffers==23.5.26 +fonttools==4.48.1 +fqdn==1.5.1 +fsspec==2024.2.0 +future==0.18.3 +gast==0.5.4 +google-auth==2.28.0 +google-auth-oauthlib==1.2.0 +google-pasta==0.2.0 +grpcio==1.60.1 +h11==0.14.0 +h5py==3.10.0 +holoviews==1.14.9 +htmlmin==0.1.12 +httpcore==1.0.2 +httpx==0.26.0 +hvplot==0.7.3 +idna==3.6 +ImageHash==4.3.1 +importlib-metadata==7.0.1 +importlib-resources==6.1.1 +ipykernel==6.29.1 +ipython==8.18.1 +isoduration==20.11.0 +itsdangerous==2.1.2 +jedi==0.19.1 +Jinja2==3.1.3 +joblib==1.3.2 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.21.1 +jsonschema-specifications==2023.12.1 +jupyter-events==0.9.0 +jupyter-lsp==2.2.2 +jupyter_client==8.6.0 +jupyter_core==5.7.1 +jupyter_server==2.12.5 +jupyter_server_terminals==0.5.2 +jupyterlab==4.1.0 +jupyterlab_server==2.25.2 +kaleido==0.2.1 +keras==2.15.0 +kiwisolver==1.4.5 +libclang==16.0.6 +llvmlite==0.41.1 +lz4==4.3.3 +Markdown==3.5.2 +MarkupSafe==2.1.5 +matplotlib==3.7.4 +matplotlib-inline==0.1.6 +missingno==0.5.2 +mistune==3.0.2 +ml-dtypes==0.2.0 +multimethod==1.11 +nbclient==0.9.0 +nbconvert==7.15.0 +nbformat==5.9.2 +nest-asyncio==1.6.0 +networkx==3.2.1 +nltk==3.8.1 +notebook==7.0.7 +notebook_shim==0.2.3 +numba==0.58.1 +numpy==1.24.4 +oauthlib==3.2.2 +openpyxl==3.1.2 +opt-einsum==3.3.0 +overrides==7.7.0 +packaging==23.2 +pandas==2.2.0 +pandas-dq==1.29 +pandas-profiling==3.6.6 +pandocfilters==1.5.1 +panel==0.14.4 +param==1.13.0 +parso==0.8.3 +patsy==0.5.6 +pexpect==4.9.0 +phik==0.12.4 +pillow==10.2.0 +platformdirs==4.2.0 +plotly==5.18.0 +prometheus-client==0.19.0 +prompt-toolkit==3.0.43 +protobuf==4.25.3 +psutil==5.9.8 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pyamg==5.0.1 +pyarrow==15.0.0 +pyasn1==0.5.1 +pyasn1-modules==0.3.0 +pycodestyle==2.11.1 +pycparser==2.21 +pyct==0.5.0 +pydantic==2.6.1 +pydantic-settings==2.1.0 +pydantic_core==2.16.2 +Pygments==2.17.2 +pyparsing==3.1.1 +python-dateutil==2.8.2 +python-dotenv==1.0.1 +python-json-logger==2.0.7 +pytz==2024.1 +pyviz_comms==3.0.1 +PyWavelets==1.5.0 +PyYAML==6.0.1 +pyzmq==25.1.2 +referencing==0.33.0 +regex==2023.12.25 +requests==2.31.0 +requests-oauthlib==1.3.1 +retrying==1.3.4 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.17.1 +rsa==4.9 +scikit-learn==1.4.0 +scipy==1.11.4 +seaborn==0.12.2 +Send2Trash==1.8.2 +six==1.16.0 +sniffio==1.3.0 +soupsieve==2.5 +squarify==0.4.3 +stack-data==0.6.3 +statsmodels==0.14.1 +strsimpy==0.2.1 +sweetviz==2.3.1 +tabulate==0.9.0 +tangled-up-in-unicode==0.2.0 +tenacity==8.2.3 +termcolor==2.4.0 +terminado==0.18.0 +textblob==0.17.1 +threadpoolctl==3.2.0 +tinycss2==1.2.1 +tomli==2.0.1 +tornado==6.4 +tqdm==4.66.2 +traitlets==5.14.1 +typeguard==4.1.5 +types-python-dateutil==2.8.19.20240106 +typing_extensions==4.9.0 +tzdata==2023.4 +uri-template==1.3.0 +urllib3==2.2.0 +visions==0.7.5 +wcwidth==0.2.13 +webcolors==1.13 +webencodings==0.5.1 +websocket-client==1.7.0 +Werkzeug==3.0.1 +wordcloud==1.9.3 +wrapt==1.14.1 +xarray==2024.1.1 +xgboost==1.6.2 +xlrd==2.0.1 +ydata-profiling==4.6.4 +zipp==3.17.0 diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..e4636d9 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,255 @@ + + + + + + PPP:Kolkata + + + +

+

Property Price Prediction: Kolkata

+
+
+
+ +
+
+ +
+ +
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ + \ No newline at end of file