From e29cf3fa58c20b376103eedcfa8d0e0144567ad6 Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Sun, 2 Feb 2014 23:32:01 +0100
Subject: [PATCH] =?UTF-8?q?Structure=20des=20models=20initialis=C3=A9e=20e?=
 =?UTF-8?q?t=20idem=20windowing=20Qt5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Makefile                               |  36 ++++++++
 doc/uml/models.png                     | Bin 0 -> 39630 bytes
 doc/uml/models.pu                      |  44 ++++++++++
 res/ui/addAccountDialog.ui             |  52 +++++++++--
 res/ui/addCommunityDialog.ui           | 117 +++++++++++++++++++++++++
 res/ui/mainwindow.ui                   |  30 ++++++-
 src/cutecoin/__init__.py               |   1 -
 src/cutecoin/gui/addAccountDialog.py   |  28 ++++++
 src/cutecoin/gui/addCommunityDialog.py |  21 +++++
 src/cutecoin/gui/mainWindow.py         |   8 +-
 src/cutecoin/models/account.py         |   8 +-
 src/cutecoin/models/coin.py            |  17 ++++
 src/cutecoin/models/community.py       |  47 +++++++++-
 src/cutecoin/models/transaction.py     |   8 +-
 src/cutecoin/models/wallet.py          |   7 +-
 15 files changed, 406 insertions(+), 18 deletions(-)
 create mode 100644 Makefile
 create mode 100644 doc/uml/models.png
 create mode 100644 doc/uml/models.pu
 create mode 100644 res/ui/addCommunityDialog.ui
 create mode 100644 src/cutecoin/gui/addAccountDialog.py
 create mode 100644 src/cutecoin/gui/addCommunityDialog.py
 create mode 100644 src/cutecoin/models/coin.py

diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..1a3b7868
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,36 @@
+###### EDIT ##################### 
+#Directory with ui and resource files
+RESOURCE_DIR = res/ui
+ 
+#Directory for compiled resources
+COMPILED_DIR = src/cutecoin/gen_resources
+ 
+#UI files to compile
+UI_FILES = mainwindow.ui addAccountDialog.ui addCommunityDialog.ui
+#Qt resource files to compile
+RESOURCES = 
+ 
+#pyuic4 and pyrcc4 binaries
+PYUIC = pyuic5
+PYRCC = pyrcc5
+ 
+#################################
+# DO NOT EDIT FOLLOWING
+ 
+COMPILED_UI = $(UI_FILES:%.ui=$(COMPILED_DIR)/%_uic.py)
+COMPILED_RESOURCES = $(RESOURCES:%.qrc=$(COMPILED_DIR)/%_rc.py)
+ 
+all : resources ui 
+ 
+resources : $(COMPILED_RESOURCES) 
+ 
+ui : $(COMPILED_UI)
+ 
+$(COMPILED_DIR)/%_uic.py : $(RESOURCE_DIR)/%.ui
+	$(PYUIC) $< -o $@
+ 
+$(COMPILED_DIR)/%_rc.py : $(RESOURCE_DIR)/%.qrc
+	$(PYRCC) $< -o $@
+ 
+clean : 
+	$(RM) $(COMPILED_UI) $(COMPILED_RESOURCES) $(COMPILED_UI:.py=.pyc) $(COMPILED_RESOURCES:.py=.pyc)  
\ No newline at end of file
diff --git a/doc/uml/models.png b/doc/uml/models.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4314ae24e7027f32e61959c854ac9f5ceb327ba
GIT binary patch
literal 39630
zcmb5WbySsI*FH*03laiKN=tWlcM2i`2C-@BZlt9pwsbd0HwsACCZ)T(Th7Ageco^U
zzHxqMjN?Cq?t86!tvRoG&1=qSh?<Hl7Wy-EI5;>gc{wQ!I5<QXI5-4MR0QxF`tBq*
z@P*q!`nAJHn@_Hm#wHGMvc}fNcJCdGjVM02Qa~IWJ_)e0ezJUT?ciu-$zpHgX!p_B
z#Kz9ln8n)ILBRCYb2vD7KR2z{4*&ieI5?N&&oQd12<$k&hPajlmH2$o0$zMreWyiD
z8?1nT22pSx3!IC0cr%RC+PK%ykS|pk^e4%1VW(;T3IF?)p^=wG97*Ue_~J)g_TK3m
zfBiN3A)@Tn`P06%&n720=6l)}d5;idjSUzt&^^_V5IFixAU}nyf3Yh2`8rI*X0@V9
zq#!9la7P%j(6oDn@A;k_nuXx!{rSkGprtr#?!`KSukX{Zph+w@wb~$;Ia_e_My)%@
zxAtjuxVnqPwK6h!%hc*y6!PKs-`~eiemH$0&xHF+mTlq}7CBz`o&Bcdrxh%P=z;jG
z35{%#s<+X<2->+!KJzGridj<LQL0gY|Kla|jKIF9{*n~=%kAX*SS^UNJ9{976wL8{
z(PuJ`>^(J?1E0gR=lsqI4`$$K`QqH8qBP}Bu}-~^D0(~X0gonIe|=`PNR^=_fu_h_
zoItmNVi>Xc#j731Z*;vsv8LalITME0p6l%e3C}0*+3{#kw>BYGTu(awW^uQHgY$ut
zmlD@<nchvocsp=$-?itbfy+S|$~_&B7;V=6;=7E*r5Vc;t7rA4UrGXtVKEDlCFEu~
z@!QGPd0H=N^dnRnq7>C7VzeDv^MBv(UCiAVr)cK+vuqr@iL^wLZFt-yA6%slU7Xx`
zq@{r`p5AV^Xuycz;Kb;L5q1B52S)+@=WFIafAjB;VqEZle=mji_sheNVs9W!WiLZi
z6Jm3|XFii9frEn~!TGTGo%WS=;q&YM;Y*94dJN|SL4XrW2sIgezY*giN^D^FHklGE
z5ljmQ=im>C2^Dsar)=+Q=M#PS&BLNN1B18&^a*$j3=Bz0NxU}mOfO#+78gr__5W@n
za|%9_c=3=ksGZ+=pCq!2YLbbWS^7VJn=U9_8BXY794UEPJj9<Rib2MnaI)W)I8{`(
zJ7;JsEYTn}dh-pjrKRQP&!4MMuz<9*G(C8wzx#=V#H6L9G%%@I7(|^tJ}(QJq9ogu
zvvEon+{wr2YYWT~5p+A>?jp_@c>&GaB@q@D?&0PqQBhD(5EqAk@Y9F=>oY@DpR*cU
zFOYJ1ST9CK_$Kg|uo6?kFL;o%ZN~1VdBvf_PHUZMVW-E(=%}cC&ik_i-+0x*r*V|w
z;5Id2)O|{?Ap`>LFW4B;mHTe*Ka=jYKeK=~*`hog{=<a~M?i9Q4^Z!nUcHl%YmC2|
zY{R0S?4LbA1sCx5O{y567wt`cGJ{mk_>&y>t%jUpd$F=x84oM`y%5ICtEwZ7j@P4$
zhL16dR>chy7%FqmU+v9QI<pQqbCt9%bPS?fB~dJXJIKP+sor)K5O{Nb{`}$Q9&Wk2
z3?dSIy42Jv^_%0u_4aqA&JfwX(N>_b-_RqhRA!Qs;6CBAKQ{+0CxgLxs-yq?SOMgC
z!Uki;ij@gU)fN7tQcL}nEnmx!;M9=Il!x2R^iEm5bp3sn=4jh`%$)&z&&_gJPV1ir
z_s;MOJX{s0oVSDDc<-*yDE_q-TuP{EC(}EW28`FVQ`DoM&AuBGRCeBL46BvAzYZLI
zeBDr`)FZHsd(^YRY*p6sXE}<}Jd&I)S!k==I)%a8)2?D;tf0a3nm(K;!|Te<CzxA7
zA@rb$v#q_|cS7qG4a}O0Czt)XZcYDYf?-Pz;oUU@Ie&$sroG%ki^BT4{j+BpgseQP
z7fl*&|88lH3Cd)QxYXs-;(X)FUgJq7T5}?&mhOI-h|Da_NwG+=MX?er8T7cYWNl>U
z_!z_7yl{U0#==~~&R((`<MU+Hw~=S$<g#yKq1(bPhd(d~g{E-_c;{U_@2;gI$x>LE
z!k=-<?3|j>z2Ud~t+xp-<F7AjNW~gp?5s=%wHix}e!fd{N)tB4P8!wVQdSZ%=P!=!
zh}Q1xsQW^GuhM7KW|5iYZB=iwGx62Q$wE4qc8j5Mq_=l>IHTmjKpw1&T9FG8Uj%a%
z8ErGG{m3(%_Rr$}?+8es3zFHl+dI_3_ScSQz8<WYsC*D3t}g~s(xiC93QOFkgSV!$
zd{%$-^k%%HA=)~0qt;wp*&K`;{jiO&b#m_xc1B+7w;qS-%nyq^SZfdNKzXewjV}Ih
zSL{Yp06AwGpXbQTftmMvn-gr<?b)ZxF2*aT%afrQUQ4!>){>I7^PRl6uZdo1KV4{T
z?cEwxadafKnOlyFOU5(M)J@|1^iEWDsF|Cafsi%z8CSmO2~%`vC~oZT?v$b1**1d&
zmu%$3>G8Cz;q|GRz<+k(WBpXQ^p{TZ-OcC5mkTLe@lu-V1w*y6trzk~hLs;lvr^CR
z=Pn}i26-)8>vjZNbX5}B1ZX=;j78Uazn)-|T!tDX3tlY9$2#ESyP26`4Gfx8H_+1j
z+PS+}$l;!zZl9amOJcq~pTTYqY#y&I8}UQtWMWzm!x>oVYNc|`$tiq^2B71wXYz)v
z3s3ZvM{1*o<=XocWyWNRkqqc!U?Im`MJDP&pM@v+{s(CMGN-h<Rv^z%+)44A2B>~^
z<qqBDFZg%~yPu5_aeJIO_4%AGdUx;$EOxtkqvfXmiw!TJRkMHgUT-2*{s@mEgzgBj
zF;Kiqg!%si!4KAy?g-1KG5hYAe?`dpE{T|u$=_Rl_5)o~Jlg-5Tjlpqcc<-&;T*%@
z@v<H)qk;0^D~Gw!PQ`yQ#)lqe^p?~1s59!w#B%843#M4dF`9P)wxMT_<!hAwbr)P}
zsCVS#7}w*}KdkZX^BYIpNw4>3#Q@}5OgitPnPeQWG?A~<^o0I*X<X@8*T;8cJ4VO7
zWfC$2*qe8hG>_FdP(3#)SF3BVUwBeCQQ`gPG<{Y>b1j+vHEIgzzkB<i?|dMze&JoE
zm$dDQ5n-JFwFew!e%%M8{TmjlA?pofFGDV3muM~yDgWL190imp>mgqK#Z(D!Y!BZ>
zu|apzwC3qui24{0F<ZAk`PI&||8!CO9gO_%;y$m(p2o+~n#>)AH0`f`HQ96cX`~mI
zDqRkJqWF{I?F^H3uH!benHqYvpYcn5c82Wzzn}aen$O^(hMP9%pc*6CIaEU#dFpNd
zCiuFE$g?kQt&w$xw9z%rQItAEh_g1Ms%iYo;spOcQS%sMRI&$^X0lCW;zwxKdx>fM
z+-f%KT<((kiZ12_;nVj_W!KtEmAUJL(|iwy@bK<ac?AunLYx;~auN}hstp4f7_>7l
z9Qt+9A5m_f$gvP-P|s0w7c;mFs~b+sXI@>}ww1rP5r5zb;Pf}mpDFb9)lE5jyyzj-
zj6aBg)naOMeqbC59@CG8G;p?0&`ge((F+y45G<?zBcHb)@-`$lZSciG&bQ`PQKG{e
zv;UlP6n9>DYLkH4cvMx)YK+BuZ>v_6yD;1_!UV^@{c0MhQRqsiS($#L*sJP;#)AkY
zh3hZ62V3<Cn0DPb)oEVS9PisUYc!6fPyXCho-R~XEo?bL@{4NDKM@e*yed-K-eFZq
z%5-1yL#fnN?E5SmvAcarrfjcAo^{qjwSL2(gq>Wzdz*j~npLMf?ns~W*CfP7%$Uk>
z_u`!IGRbrF^NeCDhh9ik%0`m4-knP-EB79)EHvNMJSu5&X07n{{u)N8`Zd9jqLM`L
ze6L1>BU4xV={*RJsQ@xI3NP54mZef=YTJv7Vz(+;SOn>h8XR*^Sz}bVxyNH-?Dd^@
zZpRLyRa$91*6?{pp*inxa!jM&?`U*K?6AzC{N2wYIj}f-bk$zlbNNcAQ10><8Pp}z
z^>MHBJk(*kGddyn+WMZ0{wVBB6B)n4u#&iSb^mz4@Kxj)gRseOkGf*L{<sQOim)AS
zkTJimG!cLG3b%)T%S>%}=w#!$!z9swsq(;>Q2I(Dq#-uqT|fjsshWUCl*->wF-#D}
z8pAygY}wM8$u&ejdmlaCPdss=4QYj$xQ2x{vVyGhID1S{D%d1V1pT(wrkOjvj*pgN
zad9NaK9O6etl}z@Avs3-e0$vfV4iis-3A|xro^-|Mf7I(qp!_W`Op3t_tyHW<OOfh
z;et%pw3Vy3T%xzLJ6-LW<d0qs^$$3n`8yyySgemqMn+ZgY1k?I+`8JV(hkm<tK}Lo
zELJCvX~EN~RhCjP;%#<i8Y~(KwhPPZDr?;@Emd){pE(&6q=FcW|4i~lyvfPCi4pWV
z8$XV(9YoeR?t)Cu*u4GTmS`a4f-?#NP7>#RL0M~J0%3d_xeTMLP}<cA*4Q}8#8|e2
zbY$+&?a@1v>y|s+AG9~WyDRrZFp;+Y3D9LooaG!t%=GOOpQ~c(5y`S_<h8|P)JcAo
zFf&CjrLjtI_25sIaPCd2UNv9H<Yc?B??jT{TX*AdYqX~b>YPYx^3fP_ef!2bkj$UN
z6=x7@JR<9Mv7b{SoP6&9>j)7j(oS;Fcgcz+o1ZzqZf$*$zEEucv=NvmA!k-VPArrp
zMwAOAjsU<NBDHCWY?dyxkE=E2uZyIDX{WML9UJXv-W{)AbjUNfT`l^5Hy!#ja%Rhw
zb?1lMVuwEZMou=Zw;e;+eNc|>D|znW+ZsU`8d(#8`oE~>Q>SILK~S+Ghs=^_xdKUK
zGl^<2u>qi=?xKMrBa$EtBN3`2@C*+Z($;=zs2*Ks{<Y`&EKDlf(%B3mcXn~VwO7jx
z{l@C}@rRRL$107JZ(-or@AQ#liTaD;f_g6Yox=8zx}*uMs!i7B-1z>m!66XL04iqt
z<ZcTz94-j;zA&T6$hPpVtI^HeQfatdz?S#XZfSr(zYT3I7)tBb56#w(?k|Ymyv*cx
z+MR(yC2?_86x#a5&VCtBp1TL+4~3;!NlLHLC`I>@@iTIpWu7wSFRHiGPL3Z)4-otX
zL^+(*h-~E5XrtKGxZ9h>RjBc-Wyi9Y87yw7ez1r2;99zCQ!mhrx!?BOb&E3bRDAmJ
zSIOzevhCE40|stk@F{<NHAY3+X`VE#8&fagHDZz2E6IjXL$)cWsr}cKf~ChY@W&{b
zQ<U~8q6&?J)#cvxH(Ll=3oo-xu)k`UBS*JsWaV?QV_Z!9J$7n@29<@gFq8h6dV<uZ
z4wkN|jrUC0`cgOpD!9slI<0B*G3(cKaWiA|A9BMpKO`TJg)V_C4FIdYRs84Ox?)n<
z&25#*6}FPkY<+`I2WHy`vp;Y&t=93i20%Ct5Armrg2u`vQ(5RfH?QFJRF~6*eHmuY
zbHY#6LwR7GoA~A!iu*y-Z>Lr|6KTME!W=fL@5rQ=<gs$ry3<%5f~bKCm)`m~a;#N$
zU>S#pW}>XwWSO8V`%noTkxh?1h6FF&L%8_ScT!xC#8O&c>c!CK9Aw4}Vuhcs6Jf$$
zgzy2(f&Vq`0bRS|{*q)F3lwuLss1g7`^&00N7Cnx)ddavrG^e5UanR|H!wnOvTKM2
z{!*!75u>OJN!-n8;{T$i$)46Cv4Lk1PSPkdSG-R2W{?GIC(%HHPp?&A3C2m4nrYk;
zhxPfZAiREvihvS`U9d-p4{v&j0v2_(7B8?km)T4lJ>&T4f}t-+-g%7Um_Ngy+z%Wi
z(b_)$((<L$NlpPPOV$h0Vw1S0jtB*JQxb;jP>&0>X%RhFnPT5@a6l=i(*Kyk<CC|{
z`ff>6SKX{V99tYA<>N8!mANMC^4pn**`h~duCiiSd2e+@dq<>3Q&LQQ9qiPpm@T@Z
zKUr}`1ftnAQ;~`bi6T7^cGqadb+bS~1Nxl0HgSXLI%uM%+hTx$T~6_w`spIVcE$W#
zUE{{58hX?`i=xKj2l;4~aIK3G0U(Iwrdya3^WIE*MaJ9dlKlE5Y%8A|MM?<XU}bmI
zjz+4oeMbLwet>1Oo354V5Hs)K#Y*-$q9=DN8vFxirSP<Ko$FzIIFfOS1Pvros(H7r
zPga%Ss*(Tv3O0!d!|a4HMI7x#@j+QjzV)xh>Yvm-_guM)LK5g5iw_>DtlR#CAjuE^
z@GNA2B<yxQ+Nt7%<(PVe4XH~tb@<|KKQZI2s^xw7pefrI{aF(Fx!;uh%emOYh<k~1
ztD{t2cgP_CGx9MKC+wDRA^|5O+aAE8v&9nxHl&cMhZ8cW-?~|Y%cZS#Z!40boB37+
ziSKszZopU5DPq-#w47;Sy{x(XBhQ(}!hYWE_xr*W@3N~sEuGMHL;kl0za|G*TFR75
zIxKF4GwI55Z8qNg9@PyG3VL|`VJo(jgj-?-YcgZX?wnHz1#uI+f<}p3|HPP>wxv%V
zo}R*jsDMt)EAqNKk>|DC!O9N8H4S&I>tnnq?v$>-BO@d0JMmpMxB?8AteukkRM7K8
zbS6;6iiqw3;~F9W#+g6}TTgK9S^D6(k+A_b$uSr}kgQBh*6Zyz{QUjpe>DjpEIc^@
z)M<0PB-zeRc+MtwsCUnMFQ$z3PV74A^kZ0PXv1Y4piR+tqxCY=lgzc1J$&~1cOS5d
z-zER`W~rAp_^W(3Z1!PUCmNmUxe|bol8zGIEdqJMRftTUD5xFH#Zl#MKaWj#vC2@a
z*8Z0F{{6|V=$)Uzh-wzOoM^0<rJ0#oElK)u|15xO;Ey2oHxxy&b;_4K0jwZ%Yfw-m
z+NBWt0fR_CeQpHg^X&{~N<u|1@HrB!Sm1n$9yR&-!KaLzoSZZ?YqN}aTc;L_0md8D
z{=bJm)$ETf>h5Ub#%`jF3}ut+>FQ2>k=^!^Lr4i6>(A0Q<lTQ%%~rN|;bV&c3_Jbf
zZHxiMeu&b@YXj*CT;9=!mb%@w8nNY9Z{8?8(pFRZbn=zI)z-UBM}?OrFu8cQvXke@
z=;T~ulIp{&NJ>gxkW~Qc15oLwxy;!1&Ux^TQL+*<{0h<o#l6KvCEEemsVf*Er$X@!
zIA6@ALr5=8Z!(uf-eymc;q))Tg3n@^Jsl$n0qtF7yhJNZMqNuSC=a)~m~gD<YszPa
zj^?|%tD)&gs^=PLg#K_0PXyLuc<7VPH~e~d1Wc3oH)(u1tepTp0h4}g41f;%qib*%
z8u0pVR)Q(lLq%7AmfNPYh-~FK!9mr;WqRvbC5w=OTA^BsV>&b;S-JJiTV>rAz0B*k
zig=aXe3D}u>h6IC!+ObX;M#qghPCt)4#=JXLP9uL^q8*UotrTQWmH(lv)44N-(!D#
zcK{%)ZWgyX%V^XU%`ZPaa3^|C2>10_Xtsk<d(1>3CANu4z0sS>n29EMa4cf78l3|w
zl}_kd+|=Xr5zEV^@o&W^FTpwCGTP(viD@Q|bTGk2X&tG?K4c4J2L>SZk}U8gnVH!q
zdp5XqQaunkhZi7#0Ot6@QAcVsQIlX{54*^(G>GM7>_^=S9z#+iT@NDHXHQ`%PlM8;
zG^2eoPXEoX!qzcKNmV)k^6Q?SJJj`roXkn8lfnZ#&`^^1aO*vuGa>@`{UI@Kwk@1B
zZWV!I36TpqAAmKFUSLU>(Y}Gzd--Er!D&hPeM*yXPM8B7G2LCxWZh2$aMp5IU)Ekt
zrZlxxJ(W>4P>%6kbh5+HZ>n@6iT**CiyU<e4{ghPUF=Ixy-ckg8QK<`?<mgPUz$dD
z_c?vK;0LFW%tDN-C2Az~gJI$-d)gA~R~Gc<Vqg|p@&~aj5h~UE8mfu@G=8b6@Cbr#
zY6CXXYY<}94U1rp^itF!DXPhDQWyL3qOcKozn%WwCq+`=L{UuU=w!pvG$1?r^C4Y0
zofbvE+;xYP<~|}DA8Qz2jHA6CL#=b*@gz@H3<ZHR551y%7+!eoWh*~c?brj}%5R~`
z=~wc;9@s2wN0V<^^krF5pLUE0>~W-HE%>ds^(>tM6K_yI2Js^5Lkv!=wZ_k=__sL|
z9L7upA7?dCz<oDh6?zoF$TLM)yQXB1Z6f_jmw-PKpj|UE3o<!^YkE&s8}sSQNAySB
zqS-}}QPY$?io37T9|2kpXj>bzBe?K%M*0xd$TTawQY#s5)?9)|9&%LF3ob}eo$ydA
zv)T67sniEXR`1cqpMQU(4FE8k(Y=SYfS<IW(Jwr<sghm@?eE+84K`?HGcAzjR+s<a
zBzeUQkq<0Uj7$COfRz?C5AFx#+|d>amgO2EMwYnGom%vJ>!yH3Xe7O-<!N_uc-Tlg
zMTt=<4({_W#10>)(u-`0eZP)<u828@ha!L!ivm9LM62zhQizjRqAS_rJ!{VQAxQ1X
ztlx)I=DUStr=Ld81^B?R`sw6wu`_BoOZy!?MZ*q8ZTQ6zoA6tGDoVyI$`?FJ&V}zH
zzBJxs4`kux;oq2>>-D2kWObDXY;yhaR3#rwgw=j-83dU#u~4!DIQ;?)Th0=BuAC}a
zSsq{><Z-VN84LL6`-ew>mlq5k0-6VM(WG>_xV>NMZ^tl!V~gJmzj`@29?61Or}OyD
z=cF{+foXXK=Gb#lwQ)7tKAt;z4l;8@IWJy&<)8j?a|9Ys>|P}=v>{1n#$SQUclh+M
z3o8xJA~uB~go|ErJ-I&SH&14<<<oIl+Oed~T!q3c`GAj@eYZ>`Uh`0Q!NtQzBTarl
z07jwkwa@uOea_g@+CDYYltxK0_roEO?)Ge&!dpd2Q8p!u4C)~J4SVCr=X-@rpJnK5
za_s{K@vrqy5!m_QrSN<<W`%l}A&K4dKe&h0*&=y18m{GUutP>FqqgbPJF<UpCP(O)
zeTZK@*w$}_Y=xe)(#BnZn|xIGY{XEB1Bn7E=H)su)~|O!1S0Wv8-ssolTl1He#J`m
zT@WCC-@lr6%WFY152<nat{JZy705b;elokuKBSLcgrvdXbOrozo}dAE^iVf^`;>Q7
z0OpVvCsTu{|1pVUbg4s#mPxd$H2j+~g3cl_3xT70c#ARc*rehxp#H2j1|1*deLOY*
z2WTfQ?L;>2rgL6L$tb1=HsCiNp1u6Im@ivbu;<6zJz?gtjCftm6kvrhtwsI#aO!SP
zIXs+m=!HV2&zX=BUxsS12R{X#?jlc?qmQkgMwi3c=F3vq4-yC6XE36Sk1Ro1YujOc
z-SZ<>kL7=P>Y1Z`;!-lwYs<&6W8MWu8UL<H`ei52L*~cov6N9r^7FSZYNFse$7n(i
zzWcGsl@Ron=tkp-Se)5Xx5kvkSHK$|5`%<5i*IwlK`&{*CoAlGLQ<RFtW!0?z0QRL
zriQ2N+`Gr_IWd-8;o%INL<<v#DPp<T0L_v>fCR+L_ir$I_&6=~aoUN%A&yBBejDR<
zkH!`&Wr|Jzz`8d|)*_J20V18o6RH%2cjeG%%nkvZN@6jr3=lZ)+>|obab66-1Ax;m
z6-W-|E;r}bQdCuCWstW+LBo2^!z3co63b(tr`HI9y`Z7VIa=w;vSb4u8Z}<jSk=LH
zV428o(n!O&`8JpH&FyKw=E<DKv&Nzi)W4`<)N|pm+Kx?H@LC$3q-k;u6X*^mYM#*K
zWTv#tt@U-8(5uU%mF49R_>rRbqAwej-k6+~NL-uobzp)QZ=^~55f)0@sx&XuyX^+s
z?F@|$wSZRR0p(7js|mmkj29TN96ZPk8>#@8m7la8HD;j9sDz&B)mqP0nc?*Y_Uq9`
zZ#)fnLdDDwq6+SG@>kFejZ`c{(wIbiZJm~P4eGfH#+`={^MfJV6)-bV27y3YV{WH)
zBkF#>yHnOmCgf7?=jT^iy8ju2@J%ki{d)guPwdyYxWLDxZmZo-mY7}K-6M%PbDa<7
zIZgWOoc5+OrNi(E2)Mbqr!0A5*O%IZOiWA)3k$PkzSucC6W;sBb;4k_r<*X(>(dOb
z`uh4z-o)hO;<7T;=N^ZP2WlRtZd)Tc=H}*-ftXjzVXWXg$lChAx2>-8-KkhFo!764
z6j1g1ja*Paf=H|Jq_&Ci{rbw2Io;pp1H%(j&ex|~wkw_L3c|w8V`Ew-cO`nYCWFaS
zwKfYOcytYQbxi?~KUb~6@W3Ya8gj+3hPS;&-0bb`3$e7cw4C;58J0KHe(}9;3o!J$
z`rLYlEpoZI3Cptb%#K||amNN+<6!qk&!}Dr(U<V>$D{%s)URtSiN~+B9;K#<GcX`N
z!gK+8e-X-?QvxJlkl~Vhi}b=_HQSI}kuP7qkn-D6j|)~;S8K@vHH@5jG&?Vkj+Rzi
zM@O>)lwPuO+S&CIIgCM-Pu$Fmp_xLHS~+`9?TZotyQVzst4Vtx76AbPV7^*<u!)Xa
ziX6(Wfxf=1q3Peh!^uSrP9MqZ6-X2p-N=r5gJaOv);2aa{`~o~{l;K*Rh7|%&2*Jn
zUpzBC<p+abInNs86o28d=_>)76F7ZgVg;!-f$Z#3F*kbM3FORv|Jao+A4_zf{&iwv
zVr^}W*Ls#h(3KyCUm1r!23NA5=j;2k!Eq;lFazC}`gO-pMks82{Hr;($qGL|zma+*
zxv2FHRSK5qZ+8$HgF32gsy|ToC5w8CG`k$H_N0sZ&wF0zlSRtfT<p!r`pr-HKJ`R~
z$5E!}6S6Q@;hO8wJD|@r&%HhcHxKG?f*zM_uTnC3<*?osb|Kd+?(GdU{aFekzdW-8
zuNX-toWJFLb8a;<T3FcXSEx2#<G7=3D?%R?sB}?1X^^#T(D7()7Kt^<fjOf?>0?SA
zDA0VfX_@-{8x<Bu-p4f5pR*7=onC@~WARS<l~fTT{AY_tPfXLm<=it-(S2OqJ)1P#
zpgTW2bTNY&IdMyQrUs{O#dC`l-6W-@soqF(quo=z@Ou0zd^M}t?JTpCtz@dwbg06(
zPs$^^51n(eE!Bb3abR92$uqqq^yql4&lBv{+&nZq{PuDsves%wMl>0>AIiN0oXd(7
za#ThE!kf_-kOk&HVfw(te{c3pF@c5IpegZX7)X+Mxwxv7?6=1l5D^g_9UTkp<>8T`
z2UQOj&0gkxdn7yEZK(74+D$>pYAqlj;GtqVlC$g)C67mXcX28Wym4bFjqv-=I=-Lm
zrl&h&V`G2z+X_l^Pk|SIh8#0%zFepCASe}d&CwOi;DLnYZZ`l)9%AN*pDs2)F}T$)
z7k)S;yK!6;yq>oAh1yydv8o|W%e`tgttO_rn23=1&Fbc5Q-+A$YIlA<{S)#n1)$$>
zSn4CZ!ZH+i8WS8EUFgP=U}0tDdAKMpkh{_qnJ17G5MxM(K@NfG-~hnnP&_MX1F~x7
z0TH^;gz~GNu>ws}5|TIC9lgE185tR4b$KQ%<H~KBJqr>=Es5X~zT%IDTuPARLxgo+
zy=p$6wgAwwY#D`}V>6X!x7JHgNDRyB*^~yvS-;fiPXZ7o#j}ZEY$xHGu8^XJ#YxQN
zWKWO#I@^^;&G{uI#uE?1c^N%4+#=>(2$AhzleMF00Z;m!*;Lll{!m7ts*X-VhoYq9
z%GPM!3z3mCwx9DoO<O;jA!vl^>~CJbzC9gPJ#{}hK89e`XGKO1{r>(@ngsIXpO^FU
z9I!oqk`h?JU8>*sl#o#NtBR{DfA!+t?(QYpYo>|e3`ue!7qNSAw^r4%mHLLs+!hlF
zhF-cF8X92T`1nqtQL0?X_SV*1lWS#W=5kS43zY3W0;f#n99E4H@O_JkVoLQ~tHC5r
z)A7Pr{cf&Ll}(gB3kd})x5kwSNxsZ&-*RG^Aq^X5x8eU&HV)00tBgD#H!`87cZi2w
zDNb;>9<S;U4v5aAYKo;l!kJes6b3+u$jDeEdrt+RbuLY^Wap<p$~P#~>t?U^Ma^t8
z%`K3};!=^BS+l=cy$a7$Ny&sd&DPoW&lvZ`!*;A@YC>?7|8oEs<9rSS5MH?FnifVz
zMgY4~p<8!17reZ@dA)vVi#@S)S}=MB1}q}Bcax?1ot>Smlu%&TT^niMgF>-#h8;rr
z^n)lM#<aJ!1*8esIQuiZULI0fz17uq?T(^+&TCy<TpR$2(Fi8fq~wh2$OD3DrUXvx
zH(6a0EWAI9t=blWPD3s6r1}8YE;q9xLBw)&a1as}7L?+;zrA<$2aFw5TE_31fKT}$
zV{C5Z=jXF!Vb9$0&(zxFJqv+0X4cN`%^rndPV!LAc@XvC(Ru0-e6+PavM6gdv9TFy
zIy*YbNE^a@4%rb4tMhxvp_Bn<3ov8GuWW!neuT#?ts-y*NC!nxr#N965R>?mSBL!M
zZsb+Mr&8ZYD0d0frUMTc3-1t$2WTJ=&FDU>5q}^f0{1@u3Z~DA<Aec{6o_pzeNKoj
z(6M94o72wA=iYA~Pr*LT^@K%GIN$+xo(E(&w$}ssHRVXU@JR1+IS#JtQ5u0u3)CEA
zHta7Cw@RtMr_GK&yra$vO>KHsxsE#e+Q1PoX2qXy4QL=$@t0?tm-xzh43DY?C~Bz{
ztq$Jm13e#w5BigXp%f5NzuHCfklX>1PK#u-Ly<c}a_nvY?C<hjY9zl1Hi#)GY}BFw
zy~1Tj30I0S*$a@FEE)!4$uC;tD{J{u4ah=wW`z^U&m;4&ZN1OgD_+969YZy)U)c^o
zhOw3c(vGER6Qbxx0ZVUw_brv{n>#F3T!(VKngr4Tm3Z{(%qVq-LorCiZJVUTHY9*F
zKcajcc7h<r^|S92DCDKWBecDB<a?53!(g-W8|1P;h;N5^JEn4T=gp9W0=~c6Wu17%
zFx+pQ5OaA7G^KEBZKDlJNsy5@{V*mNf`fm*e=Q9J<G6M@d$3OZ({p+_(%%tSlRUAj
zF3A1u$EYsUkAWgRW_JkQ9SDPDGbkXQJq6O>sudC$&c=x10QS{xtsGEDN>e?ypE++p
z5>W%>6X^FZrFu;(w{t4Po?(MBk`AfLVvi@lz)aBfl$k43s52Y`^+U-<E*V5;#!mNd
z<pc#dboDe@ZyG1;o}^WyiK558<SQvp&E+T-z;>%tN{h&4Oc8u{WW!r>R=dP^sR5&p
z9A=kg-^5hFtIUU|>S_K3bO3oTE!q%2@)cnX=g-u&FTh6~o`X}4@esvu5C&QdY)#wR
zTST8b<5`OA+84hEVdc3%;rFJ{!j48S7@r0!)CTO8jeY*;wE##(TQeR(PFKgfQGS5p
zKxEeY5w$lgwftf_3J(1aFG2MKBpl!@s8387T{VKQg@j(+*~!K~Gy7wsqNrb4o4W|l
z0SMF2lLDV%Clux~Jfoyzl8v1DKWKWckI1YyE$M^gH$iSIzfPTooVo<|N&koy1#cx~
zFbgQr&-#j@DB&_0TGe7xp6wI;#CpRcv?}yR%oaZZ36&-TBOMwf#X0dqfy0vpRP2Ct
zkmM!=h8&R<n>d`%W9SgW!QwPWic?DWF2qFO0!d8C8@BtdXeceZo+RVzKP30S$dP24
z-;ss1b7hywnSFR#J=<12fIem0jRii-iZhN{wF>l%j?=3XZ%$PW?Q|gr8jziU`ZYD%
zYk`!<b|Nv^S%6#1Y?lV7S@}m@g3ZbT4fNeU-VdOQ5$0AOddc}EZy<&sPx16hPTEhh
zLhV|(*cC^d!d-bDW0mV{=xTD}A#e4P@%E4;Vm!FzkSi|6=`36zD9Dc%r$k{Vx>mS<
zWdYm-Y5pCJa41+tJ&;ra#8F_)kO_p~++9gJ*YFmaV|X?vf*ey{kw8)Q6C-EM)TBNb
z8z_;)RGIMCKY3)~MBxyRT=)z`NXi2#Yq;QC%NR(*NrWo(F+50o#Ja^=RNsx+)k>~E
z0ZE}*26iGlK^^j#FIQZ=W@ALoy9alBQxD$Hf-M^1$vmc-JP_WyA5wH2kgN1!txDEP
zmXc@LJWxD!=c0okYKjVzAWi&Kpix9|)bNFd%>vzW%GbOfloYyAqO9#vM`us!w?8dc
z%(1WfQ;UftylbKXX|hy^KFEgx51l%{o6zEAwtwjffRoacSuAnxcRZ66>E;K^f$D`o
z%~i*yUVKL$6*+YP5LrR`-udjc{NTGs8kwl1_DVSu^5g0tZt1yp0y#p+85yK&sz8x`
z7Eu?fSskHBOO9*Z(EYwRG23=(pQt`%bxfz9YcpR|ut4KQpAiGm@Dtfx4S?<+fN!zk
zV68S>zrU1H?5<}`w3HN)GtpgxB+3n*m{*CiU&n7c?ocOQ$^vu)^3fN%6OeYjaYtSC
z;II%IcLr<bZbIaN@Cp>kDC`({N<o#(wt7&%0xyrym2>iLnH(nG)$tX;is!pP;UCrI
zvL7Ykz$;2z%X1hd8Ij>;k}6eY9rwQ_Nf`7G@m`($r~t$Qw=bB!5QHrsmK+ChX_0PD
zAnSsxnVsl64N!IC=(<tRf<mrdQetyFbqSQ+(p`MyX4>8%Dltj>AV%^JiX@t;rDp7W
z0M&R}Z@k5ZSi(V!g7lj50Q6525mYhdoIqy#WSWk#*!7>!z=N>l0#zOSf*#p~iU-7S
zAe&uL5JZ`)33pbPADquiO~-=325yHWj>RX$JD^k<9N#HAXuZI>P+EIx@{agLCF&0(
z9-y9rB2O_W)1r0iHQeP#p8}CKOJncZ<x%8tHR#j9RRGF%u5Yv{uClYi%z>{5&SI${
z7X!wz_;xbYz%+x~@wRoOkK_myW$p1A678QS4Lp=kG2A6!A)q2C(oF}tUO<V<p&8Zx
zhs;RdKbrX5^Lz~6;YQ?t|9J&yB=L12IYzsp(WR}Yt&m83$4!OA6JwBn)DL6Znvb$-
z;~loJuy8-!j8037L>wy!O{?(W{kxO~q_FfO0}%yLkcZv)5|WH^l>#yEH++&Sit#8@
z5Q28*yGQ`2>DLHO*bVr=BW~~P*g6P2|IgCtHyLmECVrq_Q3SD_z>PnRr(g_tXrq~1
z$2k_C2Gzh9lTAB>bNYf}@$CVhF3!$Kd99N{av2!d8PBYjtCUn>vmio}uJSp=TM8NO
zI~4#8!5-W549zFtiP@!7VOz)3FWipJ!|9{2KuHG3ISuT|?k(<+@Rl|Iwi|hQ`30|=
zl8TCooE+m1A3lKA(+HJGE*_vvj~G9uf>A=#-Q~FELVTI*<N(UN<Id_lerfcX4PZSG
zl-|Z0ZTWy2rt`-z0qfkefvn<~7+gokGmsZOCSs$YqeJP+=}Qk~F}~Ud33BMJ(CQ-)
zfVdNTbw$LTb5W1yB%l12>jdW)#$B#p@L`g91;%KDuhz)Yy>mgM7(c8B{x~~3lf;#Z
zmTl2f#36xCJ4&Xh2(9`z`R*&hq9PW}sol9IMKh?L0~^$9tJiE~0SqNVqE^QfXu_ku
zVtXhsB>fIh9aIvc4@wu*L>huZr+PVu2Uv?xctM;1tx}Ug_IYIy!|YvrH1hO_pv?q$
zP9yIrfe)k?1B6I%zSVN&$bF?JK!~I)kG8Z2*hjitioIa~P5cF8`&mGT_P~_P%b$}!
zLBvsZrSz)7S{CVkzB!1m44fyCUv0g|8JlKf=i1C2#2*|UMG4S&<ukL1qddHYRQPO}
zB$jbFWr_uaySeAf&mFMFIv)dRP9XSIkm{;r9+_vsp|T$4_~z5ZnN5e@kJduLw43-Z
zD^5Ozsm+Tyn>4-{)K2vcsaQo?H#i3h)DtrSj~C>$#koHe9PFK_wBWk`U<kEG6M)rz
zF3MBzSJ69|hOV!xYXj6+^}khf&7x4Ucpp(2`Qut8r8`I})*<#jK1mq0EA#pL27S2;
zSa$%#FM@h<9NQkDhhTHiG66vL=I<z8pc8_U3aVD%uV24Xc%z51s&+sqyi{&^J2?u#
z@138|eojHd!*x`{voW%Qt0Nk7lPnjzf}cxTerpC)`-j3lI=|3q+tRF{(+hIn#T2s%
zl`6I}s;;{*sY<{W9!u3eoVILxHt18(g@+-LiUAQ^$c{yHSQ`Jkkd(bBwXY@O6-8Rq
z2lN1YQTufz6qQv;ti&A^g9imWRq>Cec$G-{<mqAUfWq>qEk3pHGCfOmk6wfo2tS80
z0BW2)sriSQ<4o5_USVCVOSS7AxPTRp#Z&b`S6Pl`dws0MNK#_;3hH=szoz(ULWvNk
zd7FZr8VLeg#<e!3J~;@>Y(}6(&;ae8H*bk42JeBtgKGhvhO>qgh2dn*cOhtCityF+
z`Ycf*p7_t;a(OhymgDJ7(WgKKe9#B>P_7xMdOEkgc?kC!#8kmCe4+Hdm&f8{?@X$?
zHi4OcSPqB71dQlKTYanBO_M+wn^8IYmGO^n<RgY}KnVwAd6I*Qs6Y~gvVW90m~Rd$
zd^{_%c?Uf1Nr<2j+*4r6s30VaX@ii7=m0P2;_Fmjv*3UK=@A@wrt=udR7jZ9RWr}m
zCj+P{IUstzn4t-fkEOMmZ@L0<C_6iQZ>Z;6tvoc*q2U7fau9-_cH3htmpDs_bPElf
zscyQ3xXMn`0QPlC%`P?%Vf+g*vRKPaD~`138z(9Q!x<;A;{+T#dwT+W{L7R$i^<Yz
zgLD3`NWR~(Ql7zKh;bSF0+I*x2ukwR3~A8Shj&E*4IHrp8H^AUG7^M4*<Ie_8WiS8
z&j`4kL;2f9Pu#7{LBQg8i;IedMJnjTbYD_bw6i-^X@Q{#4#j1MRFL)Wt3LzL>o6)y
z2&bSC;l1Yc8lX8QJqRTlhHquif7>0RaYkde>OPcp^L{h39NAkU+;|>u&qN=BNrX4Y
zk#%Kd2PotoKfHIAme?J)$3*pn$j0RV9>PR=r>^W5E(BafKtdmL9cSo+Y9Z=3lxYdR
zWI_3*FaGoW7RPiZ$u#j!38I6F;#mppOQ@$1uj3xNehXT-r`$qp?l^$WV^?>xBZl@%
z?%62i|7LMGLe=8#_=*^u4tg2;KJBZ!G5VtnnlV86gHjZi@5-yHK~s%l7-YW1Q%_y}
zdq#$@Ya`HPSzB)_jQv1^M}UMs#P2-Ao-B!C=7G#bIoVRE2ZOZl3U1meDtm_HLtDM!
z?QCk{a9jF`2aGzw?VJfwQSV`F!t9B1+m9bVCMM3ot$+Xi9SAWXLJXw}Kj*j0uC3)g
zS?*r9nMPLt)vZN-E%gz3KaVJ@%}f^%_rS{o^@oiT2M6!vOCY>%844ey337IlWL`;R
z60g|-Wu1nT^8{#pU`XQY*RL_IaR+mayg-6BXm&G$K<es+y${1~?Z)!eMMOky36<0k
zFzbCGeiH=@E;zZ>I9C+ypx6R9tJA!aTLsd-pD&@`tY6j<v03c>^U?fOF|J>P18_lU
z{3L^*jlo5Ttlq@TtUxOvp!Yd4fL5ztHa|Puag^%=&1E_)W3BS{C2vi^xrk+9R7rzc
zZE2BVvF|HA)!Gj4iUNI@rDco5UGl=zfFX)!oger1sLy+uU0B-ZfvUQ?uBD@D)OuXy
z1DnT}*Vm6wP+~2B{QZ=GK;9iKqthdMKUCYa1GMb66C=Um3_<l4r(ZfSBc97`t78>V
zd!=tk9qfZ7goYZRw-KJ%19s|t(%$ytvPP<M%S^`Y&;}l_|5m0S>vws|-OhWbU=+cT
zZ={=pVDRAGdptH5r?{m;FnnS6zlKIaEv5JfA1nOuVNj=l+Np7ZE8K)piHaIt8Uo<h
z+>d!kZL_-GDB+mmH-+0q=>62V4KCsGUu9StwJHfUu_BGEv@W_I<}XJ4KZZ=Y52wZH
zTyd1W-2nk(Wi9jZ@d0WHkfbzCrq7xEaoLctll>bvaFh#HCrb1{d0=y{u{Jk1H!?DE
zvjZsQi$huCF(jsGpb8X~RG|P^2Z+V1l8vAb4YXyo{eo*swq0+ymX5e5%=(6qsjK;|
zm*-aK-F4`XY#$!xlY2s^Dr~(;E~`<M;9RXn6VNye>S<oHV%N=e?vG({3be}5D%X?s
zu1NB(jt-#T7@3%$=N<jO(xjGnG$6(NIO(nc1WgdMiX2lv21R(_vfU_$FK4lW32+8F
z*A*!ld5}GtIM}GN_4{rumL5I&qUW&JMNSFTz``3$aYc{yve};Y<P)cWYRFhym-_i3
zw8q-)O;^{{)U@@4hK0q(#I)R<>jBMLQL(S1L&`UU?Ez3DYKz-IHpIrw2?+zOR6q+l
zhHpY|!$!1io&(oS^Y3iUA#*#J2?FOCSZHXnO>y1q>uH)XfDMb|kdTx_&h3N>yF2YT
z8p?+>G+YA#8U>RmDmIqtZ~<h9?67*Jk+=6q>R&nnN|Bh5{o_9t!nruYic40IA>Ya)
z8c<#SFT*(ma(ES8OSiMt9{i(YBqJ+nmJ5GeFRnk>pX6N3KYwN51)s@KsMtNuD&;wE
z58LI%a2^8Z5%|B5QCl;W-`=DrhUT;l6cpy>^cPz}rTGXhKuKefIKl<tL(Bmg^j#D3
z6`X)J7bn8(T^B1ZTQ?YLIo}=E{P8To`ZevXrP`rdR_M-suxrQ4Rg`U}tmZKQ05$wn
z&^{Im`amz`G-+AH0e4BJ!cjK!`!Aldeop~)XOQf4t4{etaq0+}Xpbtb*osg#KfzX+
zZepr;1mXQj_)YMWazYD3!4%4Tk5^~k`smE0f%gD&uRewG*ma4{1-}9m^6yxXNfBsp
zGXC9A{#C@}!zG5)8)F8qfCp1ITRz{L2@MU!!oupGskWH(x>`#B>jUv*>|DaDm&ifs
z2(vm72v=92HR2<tSWp<P#h8cFqUdR~Wz1Gv)$fW>-4$;JNd5$yXS*4SC-Omgn()y9
z(n@uvw5GE1_`-c&h9rvT`Bc~G#EknrXhhdi+vK)RKF?8XQG$Bi#YK`#Nt1(C?4DT<
z6-h~R&|%%Irmmj(S>*SuM?uLDEuFhcO5sdiWLxl)?F3d7CIidvgU?o$O71IPChsq)
zBGQ!P<&RRFWn5hNs?M72MzVS$_sGW<*v#8{7sX|~rQhuF?~yUaqlfe}eIXdfQ6}#C
z{|XBC$Wodj;=8s-^(%Pt2}rAm;K)yRIQ19V(+}pn-Z5FFbw%!p;NlM+g^%e|zu{W&
zIQaq^oykPPOUhd1Y*-D1zNQRhPKw?)&5b!cjSY18^uMQ*p6*2X`Wjd<*A_F0P%cr&
zDqU8ttr5x@$&39n>O`bT!n4cl6-i441p`@X9AM;0A^yK3PjBuFT%TuMCD^JMlK(!4
z{j~S%kIiOU%B8Cwr=tAIao5#8u`>#6S787D3`g~_XUBc&Su$6bmxqQxpu_`7xQtXV
z=;~<%HJd2x^cCsKE_`_B+v~&Ha7aV>{b&oMGi@ExPrwYNw&%6J^`x2^cihO97r47A
z8ou5dJ-alM!%Ldf);0-xY{ks{Wpa|-6wEuV9`xWD=%sxLv3)N3ht&7^LR%&=>77NN
zkzQ?SRi)m{_C@bfyBPBqPLpXM=PF(A0UA&cC3hCHvWy8sT1J4y34_Ks&`BsG5-e$d
zhgWkP4nkfx`tVZb*1}D@n1Pz2vjbmC<dXsNS<)GTfyB!BCjuDL1j_5{+{_snrBpKc
zbad|V35KYcxAi%Y<5A1my30lJnN|r_TUFiH{b_vac^Q<|<3loFE=!hcDEVrr&UX41
zsix+BIn1PJfiWnvN0x7-P)igBWR()C^sfk+Xj^gcfCsm@#(nm{2?G76AOi<>feAA*
zdsZna^rm5@$KIeVGD$UAWNYuDs<piK3C;l0f#Hg2*;7L<)l`Q>4(Zwoj-&bJ?t1&Y
z5S)P`ovEsVhK8_<gEY^b5_nhF_a$C6#Y`<=AYwExg?_C>FByzCRN0+Elv&F>tE*?h
zpkNa7Xx^j8yBk~ewYjuw%fB@JADx+6cS&;1FjJ1OK-F33K&gd;lXL436kK0vYfEtb
zv<K=SWXfC8`15@OXu26<M%ASr|A%%Q=ZPR@0#%`@q6-TEm?YI8%az|+xsDk5|82&L
zE{emfE0ximq=Rsvu#lQ6%dFY`;u*Vy=lvh$7gC%ITea*Tt3Z{K-zXT`d?)iHP1t$A
zHI{aZp8j-X<QWwB1b0`Yx9qt*hG#(QS{#1a#e#Q2jF|<tvvV!sTr4^)ju?jd=`yK(
zX?SVn$i)FkQBjc+@Urn*bkLS}q#w%)HA<>V<w6GUpr%O)MEF&IK2Umntj!4~9Y8nD
z;Bau$XxH5tGNO?HO5Mws4Co!O<mzEH3gQiOm&Eft<ED50nAAF%Q@=g7uK8OlzqLNT
z{)B8XmIvP+{u_+LelxSRjci}BcoO4;)7;9xxU=(|ghWY}jgzx7KOZ#{?a%V8?DNag
zo?u#CTE(NR@BvXO`|K3Z+6a=cV{wxF-}YQez>i|NG7BOI`8-%=P7-~j$k0T1Jojbq
z9-Zz?73Fp2FBR45J<3MG$gaQaTOztMPW038`v1k0V(f8Lr}#(2sV7%I@qsyD1iZJB
zTx-y_A1*InB)?CKu^0*4h%ex3KR7D@Cl}4Hp$xiglJMG0LxCua;V0&+G9Ii)7g^z;
zjL0cr04Y7OPw?Y^bF%pc&=0(a*lIgrbw(}_<e0vf*TEry&~hd6E^4XTU&YP~hY~s>
zKI}6^>HnpNI}K$~jr-JF^1cbC)BV(p4hYZTeE4Y(QKMHv#0RW$62?>hR4>dX$+Yy-
z@_OmO^mjd4X1q*>w-V;&np1&kC`yJ;67h$vkKW1NlshVq^6UkGrn`-X6&o!DFiVw`
zRPkGZ^V6@dPN3ouls_a{Ta^eBTMZ{laxqg2sgDG_=Ao{`xE8k8+#f3>RyN8Mx#kY5
zj&P+k$rR*1p5#Okd_xd1xI&nlpZ$?;8&-OENd?rwhB%~Cp2e;UQBF6sW2xzS@)#dt
z>y8aTWar&vflpgL4CcWsKY|HBv9ga=Q<4xTzR4M8rJGTQZy+N`!cq3cl|Y%Z>3Hi)
zoZYcCiRsaIXe&bxp3K#Rg+kP4#5h#9L-++V+6fRbFr?Ov!VX%q0DYDe@c~W$CiQnS
z>=C&~Ns&4-w=NV+v#}v-Uh5j4-ex;jtoT-HCP;6yG=Q1Db}-Y2PfuCx*aT;VH=+L1
zY#;l&K`Dv5y3Bkbwb|XQCClvYj@C&#Ukn;0{CH!dbZw(BV+r5uUBRxUHfSzL3=uO6
zi4@Jq;jSua{~0MU&Ot%|BnwQ?sQJf6DXRi^Yyl@SQce&gyEr169)&gpkBW#he*2f=
zE3fmPx);a34J&J_7Byz@xNLR$BMT7LWv5m+_%wPiLMb@+6Iu`Irwj5{xgQk&OgO9h
z!o6mux;;t5LMJoVvb`%yly$%Gs&_jx?YA)9umW>Ui{EURl4?b74}VQpKa>L8<q~Uu
z9aJ*_#u`O1GI$pi03?5KSU~KP*RLeJf@^rq^<9ihFCJ&Gf>pP%1&^&e`lC#=Zee~Q
zAIZW-%C2dXrAV{q-r3}A<}9*?Ov!?qV;WUuL5EaiG*u9L*_ZI#XlF2r3Uw89Ki2{v
z3JT*V>&hFd!T@L@N~K;}#gyZ_NF$wIm(w$;OPuGejl5R>lKDd9EyfK<I#>M@L6dJZ
zl!_eGm@=on&;)RsiwGW)U(50IIJ|#jsr#$=s1=_}%ObI5smi~_&-wRI>ZP;ak)iWY
zn$XhOR@SEj10(%8=~v?|uU^R`qMSE+-&=nC2#tw(QIf|6hME^VowNNU%4}DvSoM#s
z6uC4tnrKzMB5QK<cmwP2TU@?Vw%UB<0lgm3%s}Z=5Y-*<3E0g_z1y@?)%9Nc72^b5
zFLU&=^l}*?`#>bP8ovizo+Ysy5)EHii?WH-4y|-Kk)xq+xX5g?ESv5o^IwaIM5wEG
zVPfSC&#d)rkb&5o;I5$O&KJ7~Ldn!r@%44sKa@qgC{tHANp5RP6AP<gWAN^xr1lXP
zw=g-3{qIb5TuWxW{qH1&=TDbtx_%LZbQlPUORn}uKowkj^P7rXjBb3dJ}702BRr?%
zbHNfNbm;#=EY|uK{@i_Qx%{v-m{R0@ZHCc&b~@W=)U)f4VpUSypNLdiDoCe10%nvx
zC&!4UH2Xlnlr|bBcC%v`B221Chi9e{NBIcEuntfAqmVQ!`z|_M5XuUyyIu?;z_Nd}
zUIZx}!v9(R<UyY0ELta6L+*H1>>Mz-pn669mr~xqWbrsT(`;Jn_+%tMvemC2w34US
z{=*?Op<w>p*H^Tb1`30<Zf`=+3==59j4Uz!|NQ?8T25ea;3XrYy4{;KT}^vX4B7t{
zCjZg(ReIrj(6wHH;Gi9uyF)pfi2Hq&OauvbYZ0EC%P!cFl_Qucv_W&5c-65LJMX1>
zgW>)h9;S5ohuiCXyS2TVC%5@*!bd$TP}mbXSe(QqFRQFvolg%nNE6y(GY+*jHePOa
zkG9`Xu~6iam)xQPgPDbe3NIPMBEQ_R##;VM8s3_$;3x;@G6kFXv=5Oy4(erz?8;i!
zd-EnVX7pv9%^wNSj7baKmlA;++at=F+M`+BjbVNL*d6)wXiom4JQu;&YY+ER_cZ)_
zZovumZL|9YPXvZor(K}uXBf}Nh`)K=ztK9^>^_&s?(L`=!}p9>d1tP15|H$p3mbDq
zuC%VGjnvHhmkbPrh39j1w(POHmq!QJ7djcAYY<^^pL_GaUyYpEdztcjlb$Z2Pvom2
z1`>al^?u4Ty1Yyl)HV5HHT&7|pLL(IGMi7I*a#N-`};F9U&JMA|MWZ|M7S6L&4if@
zlr+=_r?%dnKjD%F;Y&jmLJ<&YOqsdx<vQ!1k>%c*5wj9;BKi^*g+o(KvQh4zvi<D0
z>6rDwnwe@PGYN7jr)r+^-7n5!fq%*a?{6wgT<R7__VQ$Wm_bnXCHP-3NFLLH9?JA|
zI2u`^Szd2SFu4o#_D>5WVqBEa7&Qs#wu^83Mujjk9j!2~hvoHb<TcjjWTlSk7xi`>
zn_5gc?5A?}M+xoh*L`frG%nwJ^J^lybZf`GH%TUZYh>X~1CTsUJbzHMTcD(<VZlEv
zaXjny_xbAWiYjRJj>q(hlX0cHtXz{<^@=}9N?hY&f!K@iRbAQY<;>xU&lV#>EW$Li
z(Jq9%rqpaYHzhxCmE_?$a=o?>+XRo%LgR0RAX<E{zKnNWN2jyipDreCTsx<b;4;k3
z=jJg)ufBY_xbl^CxcDD^U}abpJml$mi>vZaM5E7qU?#g99}{d!E*&D`mCWXHC>EUS
z5g*n0(s~U4B%Nkr8C6V48*+Q=7?S%umB+vj;zvkt{?>-K^@%;Q2`WyWA?H6j0C;L_
z(Dx>KVGIDUpzH`*AtXgWpNYAPJR{{QG{oe&BwZr18>z)kC^?i=r4R>PV8cM^el-X>
zrv%m00tP-cXgm3fT)8No`nmnkX`O1Dq4{R61z6P|FFZj;EehpsvY-?DN%T0MVYNxK
z(N0DNhVz56|A(=!jEe$#y0!r+6%-{61d;9rr9&E|Lvrcv5+$TXdJ&M8k_KrN=~}u$
zkWT4_cUJ$;^X7;5oBmvPZ_J&0=FFM7`i5-zH77z9Lv)>;v6JrBQE~2<dI%$-7Ugg3
zqkk*SI`FXb`H=ZfU#v7GrP}x*^C5<VxmfF^#uQ;qC<M;S8#n1hUX@GE+!o#5TeI=v
zL%Q!jobu9qtD9?Xj<2eqpi$PAUU&9TM2RZlVTCtuQxBWK_Ga5V3VdHbcb1~@ZmsKK
z!8@`}d^XS+Kw?4^T9DWPo?_JMXZb&vgZtl}w_|=eF?stYfLKNAoOiwl+|pg9Ps!oo
zzthAQC<H=q@tmHsQ|5v$C$C1~HAEz!KZ%<nbqE$aIoaOpOi)DyLu`RA#q6MDfDj}9
zv&2WfLw@pZ@lu4MjDT$_-f3<XPrUL#qY;LP(#zwTgk_g~HR{Scx_;)~ZHfo)Z<Ry~
z2BFlyY1XejPnWB3HWXsZDEn+1<Jmg8oA~;97%6K|hoY!T<Me^RhN0kZqwS?N^Md;M
zJ97;0S<FrcbB{?6$pWB{$JX8?V{2JQjccD~m!Y58;@o}E7>fwJYXwR7zX89e!Xw#x
zsnqvaus%74o>l+p@<v@rZ%>cnk?z-@@7|@Qin2oGbqqhA`5+yz{yB&lFk0S>&qZRL
zCKzYJ6s=V8*BkZQpBjgrXM9T0XxPEcBHOuL)8MuDvz{R2yvp5c_vvvcr;hiQFSQn3
zoVt9rj{8F5O>%PY&c~>NWR|jW44g%A#?Ldy`}OtYY@h3cf_lp>@61qs&XGz@w6J(#
za7&4-ZTxoXPjIrmz$H}_e1Ljue}Cn(yvxBvBwM-dU}VQfXDuEa>;nnQ>c+q%&AbP4
z2LwYNHzL8($2l=3GHxb&?%5j77WrYDd{F8gQ_9-&{_}kpu$m=(?Ad@K8}{|C5c2$1
zkL9-L3u0^|7A8{u%y8R~ioBbbzQbNG(07&m^3miPhFIesw3JzY^n9AM8?2}!bLO{P
zDNpK0GiG*n6$*-GB$7~Ui9zd+-mG;W)plE(NH1zg*L&iJzCZ@0=3|P^RxB&d=bEXK
z$r|-uJz!1P*lC{~y^czi+L!V_+jj3D6py{2p-g<Yh9=`knK^sT1N6-bN(Y!s0OViL
zlL39_U`jOYLL@r}JAeHysMzpWOXS+x8RcuG*7jmjB~?mO^*8e9&VzzPplv`1Lg4={
z55Fev1E}SD@H^vhnoH{kyVKV9dK_MzXL<I72zK_wwOc%8?F;t^v-Uc9%yTpZJp-oe
zC#oDX5+^jo&a5V8m}moV6n<}d#0?QpFTXD-Pk82wn4kA&q6OT5M>aZ|gXqP8Q|qy&
zq4y7jorFJQ8$;*sAYmWj_LsQ+Hx<A*5J#UMt+02DLCCF?wY;~Krl<F5zrefGoCaA+
z%Jt{A>EnS4Sy@d7hqJ0s*%)+<G(^6=gXBq3J0zr{InomAuT0vmWdCd5)T?~&aR2PR
z>(`Ka0IJRJ=JD6V*2D*RR>)Gehu$Yr%efd@oSnV-&Yt~&m{T_49GGogj~>I>f{gQ?
zEf8=vHIi9#K6i9vS);T!`541(zjK({dfwj@8jMd~YN^6zYU@y%lDN5P3o=~E&;CEN
zp77B?igxSy3sCn^uGP7Ec$^fzYM>Nc+1c6o@ZkgHGzm@hlRlKLpXLIK&2DV`)l?ex
z=$q1gabz<+y<~Dp+qb+rJZ5$zt?RQ+{c1yBBdA=?i3Q!+&q*`InAj85^Mrw%LcIE6
zru>o$k94@Z&)yo^I5Y-lJ$Wwlqg9ni#w{f^)d5UMd!n(##CvHVH;XHk+pRP+cBpPt
zW4$kHDI;SOipoPm1=HDKz|^2}XdcO8Enl6TbpYXc>qu8F2zqFJ_B%Ci%Sg7c`FP%6
zla`fT*Y7c`Q_zz`_ahlu>T%!~@e|339d8J@kAyW&)ZV(<{;J@$Kpn3sU0`OaVzPC(
z*GA+_y>T;-82{RNwcLH9-Y|aEJ+4x|(DT!cg65E(<&kZf;%^z!3rw^Cw_EUT6DCc$
z+B#R5psV4}paV^5owaVpRcvE5wGJY2Hs~?%#oPO~Mo!L$#Wg6&S5`Ux;G9YfEk>{{
z3@t3iAAIRk7;|+54PeB#<N5rcOiDxKEGd@{Kiag7HkQNRV)m@2rp7oQeXXz4d;MbJ
zf@<TrXdR+8&(Hr-E0=0RL#ZJB@2k?*uBThl_8RiIfpQC1IW#Km9@iJTy1TQg?$6E|
zdU~Et*18M2{CRx_Ss9kVN-e8;uhT_X>F&C-Beb5C_Q{jQ<z=0(HqZ5Ve_&OyRC5ti
zk!|%W=hn~sAC(LXv^Vedf?W7XMpBZFnc35lGjxu_q-%AoV&i8Zfwq>`6_JvO4oE!z
z?-dg_rv{e4lpooS=7B&Ni9`kkwRI)(YEEE?Z9JLl&5)*<d;dVV?qDVu{*7qj;<ZPQ
z(!lvM7sS$Qit!2uE;&j`wSiJ3Nx-ws!ywmvt4~fal#Dm#Fg2KnQRvaHCxB9^ZsdMu
zAK1JU&~4;?U6#+0@?dzUl46$xRbWz(M4aYdFllw~JvrU``5DFlgPmAOQ%OsNgpB0o
z@|ddR{X8lWCALK3VZ;w#tV<IT22CLkus-LypZ!wEO}$4#!fQ7xaVuhUR6{XH@a#ZX
zk2jxckr<RuP;LawLj6&u#_4U!FcJ<6$hSyHOFxp6dhx=LCDiL|cV&oXE{u#9k}^NP
z66KecmoqRj)`Q$SKHergbFo8CPA+RrRaLbwsb;f@q?FpyQ#H4Gbh#N92L~2bRYODL
z<x4U0@nr#~RBq2B2U=QMsh4VM(9}!|s4cHc%+9ZU=<Lr<4tHiiJ^c0>uG{{EGZYio
zPE=S^&{(%y6HZ3P=!z8Mg}zQhqs?dIsZJ}i3Nc?y^~74RI~~2&6`91%$;qr~=(FA2
z44`ymVtnrtv0G8~m&AL+5(mrc^YcyKW8e!@Qi#ACQcamT{+&A{HhHAl{Jb02#wuEe
zL0TVIG5ZQCaEw?&gBVJ-mIrdLU%%d+fWggOP=CfFSQHQtz?C|}vaQMDuqb~ERbH1n
zfny?&1Pb<Qk!2b;3W?*E=S#6$?#xTUlOEfhpnZ-V_Gyo0ggS|e>}(nqmaX66f|KQz
zV@dq(h|@gv64@j^8Vxq@<26nn#y4W$AjJpzFe?S#{~M$#;I`gQBtuVzoQP;B2SG(m
z&6+ByRpns1In%h~1o>CUTKpKhDT}&_rUDg`RgrN63M7OFx3RFW-bDUn&~7s%j#it0
z6q0&+SpPg8N^?$RM8(B}A0g>k&q1Mo?b@~F<z;jQ#Kz2i(sggu+<Ocso7)TB72}U@
zrqUE{&t{hTRXcCgq455scz${rR93bNhi<6^DgX)!3aD-A=;#RPk&s;ep?f9t87_Vg
zkXS`Q8vjpv>OMDXaw_pMF%NHHL{d`HJ8Gt==;*^ocr^EP+3raYX38cm|N3>mhHUzZ
z_O}K#auA9%aJHY{K0G{37k|;LBduXftQ%-G{`EPdnYnrVZvFXLbs-|C#p8oU+X)JV
z>h0~#%%tiSs6$-$j{O5Cc5{4OONtSdHnJ=r-xf1br20iG1%Jz(t#QOBhL)a=&g*E2
z8W%UTriO16Gx{L~MKYAoTt6|pS$VNX<nK)0#L}4kudrO2S-7O3a?<M6XmaM*>Icbo
zUqn#m_9YVLj(FDQrlxtY<BqS-F7|xnb7eV&ys1B4^YKP~_q%yWE6vQzv<S7ew?nCg
zp@|7~Vd6^yhl@~~4fTJH{ey4@ON={@w%Qq`rKA>3GBYwF-j`*F$R!IrjvXyFk`@)c
zigjl${qJ<|1hYFVqA>8uQFvdgs>)Y;2+tU%wJmplLuUW@*IRrL(vzQt@9a3-JZ6HD
zEht2IpY?%P5vh{<GVqUJkN64fI|0>;yPQ^}+fF0JMmug}<(8L72qQ>t$n^g~dn1>_
zRHx$#15%matP}+y2b<5-zETskpLS&Y`YN$u*nHU}iy^pQ+d;4cd*HoCud7e!T?VbM
zOyFmrUxA>Y;H#b*m(5ggvY=gQ4!QRmYJc7ti-|Qs?cCC%e?<e-6*q=ubFp|5K;8)j
z^w2_stnB+s??wu!88}=>W(`;E^NwGiERR}j3MHZN+=)m{O$`gfi?)2#Ll|*5t4V1H
zofRP=JzQoU3&w}pLpV85F5tD$m3S5Vjywyb0F3htHIM)NnQmwdCIZ)ke~-oRcT*@x
z6(C00xyi`D;I&pZw7RwyUjYII$~pxFg}+OnNR0#r1X>yf1=YqfB-$T49YB2Fxo^Lr
zL&@4Y`@0$I=;-(A8YhJHc3k3DCRsF5gXCXQQ%lXFB|T3?rI?_nluSa$63WyJ?^UKe
z(LpMWl0$s9ziCmamdk7lL;s&A56D!6Al*EbX`1tU!XR;00}6LeX{4uxr8-`oJrOdw
zXnk6a5g|}K8WCvrS(}HkFk)2!w6>uC^|&yhQ$ciF6rZ?Xkhv$VJSHKTVlYN*XZ3J?
zZ!LMKKOI^UV%2yap!-IV9qBnbZUNh<rR5}lso0+7ved7+vhXw76H&-RR6vizeCjoM
zB_(<q?f_!)$LVQOm?8v;kPjUJbyxuyb?aT=0{`X4##Z*eeM^RRh9}2KDkQ``xvFwi
zldLOOCwuQ`2-ue!cV3eE^m+Jrsn6laT2wT(>gd@tBTzELkjC2z`SdAyp_}s=ZuqTU
zpT}2HvA{#LQ3Yo5LQ|Ya6r=z2;$rAP`|9FeRbnGg|JJgOyp1u?IP<&Fv===>@AA3a
z7YzNT$uV|V(k)<B*%^Z+K@>N1Nmr!ZAJ-Vj#Lmuzle6QCf0tGbmKII>Sls$-rlzaq
z?}3Otet-q~))tKWSdPa)9042o+fHs^K)c2*T3abH_46<<ZF_y{!=7Hd6fWY;U(a8h
zpFM?cg;{lH`Z_vlUS4Xs#1H<6mijku#|ut9)AqdYNn_>`^&XGz!3~+ECuV4}PyW@-
zfAIGQQ1l?7{JnFtWMzL|;m+1Y2?^>q$y0La*w?SuzWnl0&Klhluv8DaH&JKNgPpCJ
zU7?@7VbEMRQSHoVxi&2+SznfO^9M}sU+1Pzv=<+z8%Se{DDeal-|4{?QM$lFje{Z#
z_*)MW0-7qrtM6}wE;h}*#cu)!fGtAspU+FVu|ZidG>5JEOTQ69;l}!<Zkvw+Yj(}l
z=r%Q57h5XDpb6vAvEW9XnN{7D9ucgi;ait_L=+nC%G{$A@gz^Ox)}fsW@eGFd<%}p
z!$sC`%}7dc1)@!+0Y*h2iVM2&`)@MiKuul}ZQ?Mg_2<GTD{<Iv^!Es3#jpdRqd2tM
zSlPz_`g&;3Gkf{jL>T=4E2)8Pn9(<L9@u`rAoJg80$}4lPb<JKeh!hpmqL7t2t8Nm
z7sE|V1!B*L+ZP;pVfAmk%dAlqdzTi-h17p@5vl*d%6<_oHoyFyIrOV5tHbJW#RKG)
zmJoo~%ojb4&wUYfY6=Z+;L~XFf^EPWC@Uz{I^U&}s$WDK%no2yg?kUesAdpB(xB&t
zhCW=jBB1H#0ktiBD_iIj+TdhfXC#Dnkj-~>ThCwzKLPz4Rg|M%=CeTKuLJ0E2lNT2
zCCdi1m4ZH?B0m-8-%`u*;E?PM{`!8o!utFpBl1V`03?d7>lGv=BO16biAN~*q&MWG
zrHT4M#UJ-cMO&LEh^oARK5x%{twB%!!w3hxOut>^aceJtl(k1;hyk?KOly?yzf~oA
zM5Gs{JlNe^`*U(q7=Uj;E!&?mG%(N#^o@<}$n#}Xnt1plai@X)bQjmPwDaDq^~q4m
z$geJ&{pV%QoHjB8r{~T2HP4@eh)XmhJ@w}g7V8haLJC3ss2Uon8tE?#imbF!1;2!7
zt_#&N&`T-Z_;K;=_h)e}GMG5`9zF?ry~uJUJ!O0f6LB7%=ykk7%v3qiH8R=VOfH~D
z?quKPQ|si^wXdv_fiir7C_gT_d~GM|Rz|X=Ro72l7ltnn9zV8)0ZK@6E9xf8nqzwM
z8h5mmvehGz%5K<2E}OwpDI-pn3L4EfkgriclT#QzN5+WV9h<2TD?6I8`{;CQ_^_h(
zs~Vdn@}A=bl}DZ=clNXeuZD$5KOwt@Pwud9b?21PD5GfeGzk;y(CN_5eEv>xiR-_S
zVBjGv_}<q48P^s@6t%^&Yae)Q+@`(5q&rpl=pKtmLB?F3KB8P(Gis38m+C&-rpagQ
zbg!P70p3l`w9yQHam5(VH-{HiPsS!k-CjN!KR?-)b9J}Q3UT=z8hiU(b@E0BGeyS`
zA+jUuvqPmzM7M9|a&n`tOW2nODJeQZDXqUf4Xn>|f>0LK<xlbrFlC-0X1e8x47uHJ
zul}Bf2_jgJNp7~r;eY#4zgAh9a(H;@>9y<c8iRG|==s_8e-;u@pN$Q>WPX0KygcyP
zsc(9;Y!MPaCdOw%LmmgyW>jn{=X7U3>>Y3qPxps`OV7%pFh_6+TR%n6^i{OB3bIlp
zGHS4iFQsjln+Nyu_@l1)Qk~&A`n2>;zceQIGFN_|F^d^u!Q??zxNTi6;b5~hYYP~?
zw2(<!hF@w(o<@<Ym)+QyU<nyku5kLNq09DnNJyx-=jm>YX<tVit;z}d=l2JaFWI&c
z67bjhY}9NMd(z%GKvf(az0GDR&<*$0g9V1YJuq<aR%zc~TH-<)WxY{j*_zupNtPC^
z*CXxJ85(t=R_+cuYqSo%elKi&q5M!!-~z|P`)o!2dK5AT=efiTcg44Tp7z=^8-|<F
zm*IN6bsb*BZoy=`K6t~I>LkB1XD?j0BrdpRLH^yC^TlLu$BxFgG3wNeHQrvWtS;Qc
zuf!L;XU~jw_w-6Kw2vdY1k;(ZH!x;|OI!#n-VRmo{IDeF_eaqUH@DmE{U`{zu2{dQ
z7R(-p|2pJZnjY?Rgb?pf{UZ4%IM=Ult?(sZZVu?iw>j%A2)<;=ajmATvB3ID-r+mW
zUybz@;sR_d2TxXB<1+Bqt0P(2yb%nN8H(Ck{4Y1s-~T8GyuSG|VXO8sGsT5_K4RaA
z-=O-vKxNsNB{x<0N_fGWl9xB(PWZF?pHjCrd=1VIrw_i0`fPZtPB}h@{=NrWn&$$=
z`@hcdJH?Hsrb;Ds7u8Sot4GfNM66Fxb`t#iy`GwZ@9a-UJL;ZRU=~b~W!EZ_j(f{`
z+HxCTz5fXHL{0bxQX@<s(VH%bj*Ar$y>B8UC`)~Pg<iE>COh`qKj{56rzu=Dy~vz2
zIsX24&3l0c)}mAQeW^6R@8$w{IyKxb%XUfM`6f}W`xM)9;?-_%+2jyisFRdR%E(p+
z%TTi~d04EaO~Dn{iJT6T%E!VEFZ^e(GWW*nJb9D5p+aCo5fKv=g(^;wxE<VxmD8Ab
z-F<!S9jCyH#hAPM=l=D--lJkuIjT30x>KU%7JuE^+X*^YRGU9inih)ao+jX}yXm<h
z*PXh}DY5N4kJCwklpYuu;HmK8<6$@TVb!VOwJXR_LFkLyW0hQbe-lB7m;d0Zd#yT)
zK8`p>K+moxo3^%gH6gNJjwL=sNa|_yog5qP^I3h9Dio35#D~R$xh1lx+j|+oS>3)k
zAEjw2JU!dI#8+t(s!tL3{%g8Wp`C8N(hHuVtD5v@u(NoZ$kNTG^1A{Ar2=fAb28~F
zeTFdWB!2V#)eWQ>Zl^3yMJM&7nUb82(r@Fu=#1H&-M(;Fv&Z=!9fO&(jhc^1`2URd
zS!S)3|F+<K`c8F2<lW_R#6z~q3Q_xHqI}Aab%d+CLI^Vz#JuZKFddnO8A+8Vc8A(q
zv%CAp#Y2oQ5G>A8j_y5cH*~zJ#Ptl{HfZtmQs&|el;qSZhNxep!|xoch&1U=nqRI`
z*Yz%x|C;<IFl5}sn8S9M>2!ax#N2|fLCe6(ipS;8{rQu5DS{TcYul?Oa)yRim^iDg
zCO&M`pQla)Mz7<g1Xes87AHu_ZVP>9m=dUMpe`zBmHr|siEBy{S1$R71Ub@|+^IDF
zbf6)^<?3<{k0}kkb4NfJAvvZ>_fuTdHj0$#(|I#Ry{0O)l~q@bE34O$!?yWQs=0aJ
zlRKUsPEk=mL&^CcKAw~C^gJ5KRj{OfA29Dc<ym9YPJEP_GL54xJXFD3G&7N+a07`c
z<D2=kf@S+*h^4#NVB|If#z46d^Q2kiOvONK2A6&sNzh>+O}oH%k41^`kg_3HTX4F8
zC{iw)3ng<O7+$@a+Ex0s_|^A|dfm8&fae(2Y>K2h_p2XqF)<~4lbpFPM;zGx=T8|2
z5Vt>l(&J{t$RAXnuz72@!{?1BUxv9M4R=&~^vG2gvgMkOWXIclr_2<iD$$yR#)wd*
zZ<ketB3nh~e=NAyZ#K0D5%~JM(fAvWVG&yUoY8XZK|9oK1ARO`8-2FxLIf#TWM<ix
zH`ICL%^VDF9F#ArR8|&?@rTz;OkA(7y8Ntw&s<h%!ToX<cSR?L$^4Zte`C|7?3<7L
z6S+30nwnTeMHN&F#7@uLS3fH>^!0_avwegMYRc(Sqvoflo(qXXnJ<`4O}WR`^B=I?
zgynN7bf?b;yOZW{bFjYQ^0-VjD6Mmq{VW}Pl>z;r!~FY99oIpvX3n^*^8ITckJoP8
z9r@)e`K<?)j_o*&<`{5^5yl+M?7L628-9BVuYJzqeE+a`?MhGusy~X^ZRcILfc@&?
z;0@%euJD#8Qy7(yQlFjEs+`8J7mS}LNUrE$x$o_@J8ZqssoC{;%eLEAGGDsf-ut94
z<3Mx~;Te`tbZ7fwVeNI22Cgc9JyO_j|J#TD&2a_F<H&)AQvn)H#x?FAA1oCJkx>bW
z@n6HmDCd0Pa^<@9`4P;kZv%7w@_m@<$388U<K_bO4$)crCqLJ!Uw7B@%+EZxe;XN_
z2G`WMJ*&<`wjw2BvciDY=+bZT{1~1U{Tx3v@>=)tL=ZVPJ!>dG?YaX;L~c>u8*8Ql
zYJ;{*=<l_7){RW!?YxM@|NhYrH5+#{vxR9eRvz$rhpF-hPJV)6be<bBksGNKE6i#%
zLfv>Gaw1k5y|9!#y$J3R?3ZdNuu(rn{w^WmY_shS;bI`FFG4B<Q|4v$P%km3fn{~V
zk=q9?*cWxKb!U?%jDa~+2uDdl9bF@%s3!9~EiK%R6c<tgQL|O6s}^oEmwa9ebtacA
ze(zKIL@gwjm7abjrPb_1D7h)EmK%Si8t*zM>#v9)CAwt`M0r1l@3Q(dXKH@J=7)b5
zA4&vacG0cvR-kWEHC%ktbZ&qCGpJTWOqsn8N20lRkFuy+9Vh4RONU)CliuYXcjRD$
zQP?UwRxi>kP5a1qVCcCb?ySz8{9@POW5IKe0)Jo9)zx(e9R5d9{G_By{5Rcrz-?p7
z#8gGcQ!^DWrG-n$jaiy(FHx|PPVkO~<(33_G=N)VqKN93ly1Pux4nC#P>{{`)piTl
z>T`9f$kxx@>58TgOnTmCWj&MgO_EhoA`prUMH)scWJ<fw@kOo$F_o)qZk9Gpn45-H
zjHZ`w7upNOl&FsNxd?TIohFjr#eP<jqF&gY%NH0REgt)(RtF8#au`cK+~L}vc*gM$
zZ_p)Ub<j){Y|j)5Fnz9Bn!CRJT*3TzB9pNBM_f#<n@I45$B0Wpk@QcP<5@54_N=KI
z6TPD&8y2Kkv;{cZTd(%`%y7y^*+PDnMD{fF-<DqxDk+I;_;Sofqvqb?DsG=vlqb|Y
z6a>DKozsgq3asushxIeK050A@CN_q2esR0sn$*6%(>+p@OuIeXoAfBlxWL-7ChfPi
zpzN4sGvm95>QZ>8#ft|)7ttp5_xrV3vo9SVg;A35e|3C`*j!HJ@tP#Es^ydqFTKsM
zppB<5Z~^UaUZYkmUQl*9FIQ``&OI?1OG16<g!_euhyTO6$Zdf~FO_w*$a72@=OYL%
zL<zA@Vf;qulfpuo;jx-!y6JHFQ8_vGDt7r@<+rffwPg${Q+xY1l`zqn`<*A&Yt58E
z?53V8zL`y>{Tw0*BShN-12($(q0VoPyQdc^Rxk}TyB^zh!xm+TX8OxaXgyzHs->kR
z$S`<$ftpQq;B3?Uj{VI;((AUz48OJu!YW<lm8VlZxZQA4urNC(sYe!5$|LKP=k7Gd
z70fP%JRNQ(Q0G}3-J}5Tzawy^p2|)YUtHh+g17>of{=oQg6vgccXYh5Y6J(-Z9sX9
zdq*l&iTgC(pz3Yz7qYuQcSQ$R7CZeJHVUynQr!vm6M7{t|DM7jWFEisF;Z1An{Wl^
zKAU@b-B&F=!@i;4_h{fJc`G^ts_jF9KJujfdG>idkCIU3qmE&%bj$~W9238y6`!=?
zk`jVjx2{~eSQaH%8t@ObuoVEwRoDevb-Z3yO4a48*x(`-RQfAw1kQSP7aS-@L;hBW
zt=T~vWzVOUe!-)AtQQv@p??sZ&8JdN2>qYA{{vql+fr1KuM#i%8i$uFKc=^NdA?G5
z2PaC2N@^&P^;)B*W$#GCS~LjcG4_++UjE}#4L|%j8OGG8Z+q!~4ksr!w+KC)gd9fc
z0gj}I)Srj4bCT*BOqb(XuPyy38U}>Jg+=|lrv15w4>QH<2Jge%TqBlykE4{I();eA
zKBgQB+Xv38z(E|m_YC3W%^EG{#MYmA^B$b+Zo9qS_1*N!Vt;EU{CY<3v#HNwoDV-R
z)54nuDcRQ_&u5RUu-gs6*)21E(iSu7e|I}tu^vIMqhe(=-`J@ZtQ#-LoO2WUF|+Ze
z)qUmrF<gFBto&%7eB3*XBUD&DT2q8I@@!zRY_8&)8rb?l{^53kLa2jTDf)pJgj2I=
z^%~Ixp6TqDjk40Mqt5=~Lz>;-urjr@avzC-)gKJHGWqm*52afHzzz;(;9R%>=B3af
zm;SW3{{fw2FZx0n<x~adROU$Nymt5TC)Igja3gW}@URMMRo>o6#<wW{8pi9qI=Z>_
zLuwU7w&f>}p|(VJ(HOkDomnts<!-4{VK$hrP^2^q=>)rbQ0!JZoh2EWn5Oe!`nMko
zjewf<#Z}Pb&9P(Exn)$PT+(Cn=pi@U8>2h{W!5G#^Iw_C&KphP<d1a2#4e<?Iw=b(
z#~Y<Ogl5H+ueZ0LiWAvQ{S?kC(}w3^C1gUcUW2K~Sbbe|dNT1{<v0GL?!I%_!8JTL
z%Te``7EZptR;6Zd=NaQX`g!UZYj_gpKHHco9C>3zr@!#M&(39Dd8F{s$jRF%_siO6
z6WJ2op)A@t*wn;VFI@07=FH&zT1>g&@BsR>tPrw1l*XXH8>>^}mK7FmDPn(riuZ>1
zGZ<;gNS$W9D_9U6w~(l~&~|sdzjpuX#k1O({?*+oj~g!lN5-W%+8g1Xy@qb(LM5IM
zFAbNpe_HpY8VE%FTsN-q?dyIsnJRCww7P*;tAcvtjQw}%X#v#1ukP`YPhfQlo)gOj
zX+&0!HE57*z}2?2njAu<ZWNbN#^4OC@b0rw+_>Ijya#5DDI?Q5QY2{Uhb>M~Q=Zh6
zy}j}@>?^d@_cadK;yWGT;HmoJM^#qW((99!Miw2|8%bn6&{<E^8O?s_QNk!~<3S(1
z0fE`+#Mb&${Xi<)JmqjfH;t_44bT{N>k%tk_mPK_KBJz-f9-D%^D+9;v2a)Bxr<EK
zqu791e<TT3Fu~|C?BZ6B*M41}fS!#7M#=3^zkrlQW5kE_t6i~sq|<{2vYOMW32za-
zB$vzA>|t>*W$xT8n3QCUq4Ut=Awljo&cV8l6GIc-CJi!Dk!>AmbHLyE9egL~hgN)z
zdCdw4u|q7>ScG_ml)l6zOI&S8>ATvak^c7Wu>`dATi~5$gg2OA-(#m2yGG;s=1?cw
z1@=D0Hq9eWJtVg$NJUtiJRawYUAYWjM-|K#qf%(U@j`6c2SsPXn5c~nAV=%)LhaKE
z2@H&$nwt@%oCfq~TK~3@PS7-|pHZV(Jd|dhTJc-aIp)rXMP(SKlHt;`{6N9jzta{s
zP`}zPhs;ViOr?Y^Io_xE>c*v5+#{S7gPs2|k4G2$#C^7rIXI^r)?Ji<wTteUJ9ud4
zF)|R{9VzsP6C)c>xRb#8*U}!yeq;;h*1h>sJX@E|2sc6SS+|WtJ$#>Y4CZ4h4wJtF
z69#W!tH0kY&rgeoyV>Uq*J$@Xp5a=9v`$SKC69{p9gP3_WQXLoS{--fO-tkMz~+&m
z<@5}&faP|@LI2qGk8f}O`_=600kX(gt|_eFge=$beUp&2Nr~a1lNF0Ch_!tUjck^7
zktMYUf5#_)m&nH0(4)Of6w0ocG!d0RXThjbAJ0>aY4h~{-_x&{6b0I>O2*Z#+R_Eg
zK?$*4BO2@qvO!7dv=_0<KTb@#EW%_~|9Kw&H23cU<f`PB5!No5k<^0{ja#zLHbw)&
zA2MbO_gGIS{W{~(pH$AsDE9&2D*3WC8pGq!!^6@Er@V+DX?cj1Et``9lsn{JfT8W$
zlmDC0;RU!l?Q*fe|4w7-K88~UOFqn+ml^i)!+(DSV93ItOF*d6?Ykwl`Czf4b<=dN
zOjU&xmgc|7QUVj#ai+lrF*_M@>*z9wq&brHGPP6OUIMmKqlv!rc$ZV!$p_^ZagmGd
z;a&6=vp+IvK7%lhd%qCu^40K<@-EBm2#X!P)=O3Q7<*>aJ3s!q@SlB7fzU;Zo8<im
z>}n6jDzYC^+35S_4noxJOB01;$YEQ~_(S@nfzqR*H3@I@x)!&GzMFN)mC^E;1&>MU
z+w*1WlEDbm7x}mpc9nwiuGyyI>tS`mXe-Y=N~b&aP2=rl7G|-v8dBW-#EB2<VYbJN
z*f;foF{NM+f-i@g<#S~*RR;=L9ng=4eShvTV^6eo5Fm$5ZQkl9mPV1kF7KKIcd^R7
z2oHtbK+-uT5;ZTq>h8AOo<@y?^wWVMyge>_Id{i)F(gy_u}&?4$uqQPoxd!>;RaFj
zoWm0XoA|JP9h$*kSg7{M;!;QaQShZ~2AU)rdSrhG`&5Xa8Vqt>z$@o7Ak(~9vYuaF
zzV%m|%vNrW5TY~$1^)VV_n=#>Z4NX;$yfRPoHSj5(1sd|aZeqn8{Q#wBcDO?uvGnd
zhRBS}+B?O1LXZJb*3SnBwDEYnhCr8I!Usou-$}0O9m-J4fmftN;xs&YUG-RuJEM+J
zooD==L{qX5dQAkLZO!BZ!1^MHozvkYd_AQV@g=XPrS<C)KaP7>)ubknt#_;7afKU5
z{J~Kdaa+E%=WnkWnV7KZW@TmJQwV&l`wFe^Op-l0oL1G~wKZ()U|`DnqTx}vQYdX^
zWAj)oYR01w81FGO>+8Y0u!Ty`VznCQ3KaRF<$7|kY1)_BBMdzjJ6c-ws2J$!p$@4c
zBqRjU=6&*;0=l?4WI*%B*jOUg?>Q>DP2m)B-BEQAoPgN4#(m#Pydv}9E|0hKY+E!f
zB+Dsy92R$$`aC^6W>ZEQT)#wY+Xky{oX|79Oz=8fQuY5p)?f<fT4?)wTVyez9C@D=
zqN%xA@MtkjS#)=IH;M(ao*3Gak9R--1-<Z$jExno6*|gz<9W*5B?t(R(EBed4idv3
zbPrccy65NSdW0t+S8d<T->fAFkHpC&aHuFN6A}?IYLp^QkB;sApKhbOC^D{(SF*b8
zEM_IS1!WIFf~i2OQn4|gM!>&oimdFB3`mfaq5s<9mQfq@)Z4R3QhFeoFw%ERbwNn-
z<3{?t`>HwIP<LklMnIHdH#zrdhQVRY-}u$52cAXF8#+>?^YzdVZ?EN1cz^#%Em@Qq
zL}>zMyzxiL(r}kqKH7kkFBKIPBv*q}j}8x+b#-f86y)SKy6ejy^+tZMewn^<yuUFu
zKK>#CmJk&a6Ei$K3~lpVkN4J~3Lg3}xXwi<d!JRNX)3wlB-U4-oSXzuc&Q0khm&&u
z@HH;zu;2BbCowM)OOSP#q|7BmQxB1Uy&hqP{qhrkV+{>r0^}^T5dc9(mUV^2NN<0C
z)W?tG8{Qx?*R-To+P2S*j8VMuB-EU1no&6@C>hbm4&sT9p%;Hn4~Hh-i;0PCnS$P6
z$yK}FE3uA)gCld*$<FR*Z_IiLBiVI6zNtxUxe>DaVOBCr%noPkQD4G?gAIgAROb(C
zV+Ikd?v7rov}{GWj0{7_sn{3P-EbqGTt#2I^KaQ(pF-ezI{?AV#Pl9x1j_X1Qd&QK
zL9(02BqWRt<f_t?AmI<S>W7BQ-eRr66*>!zG@|7E5kR(0_V@2V<?0sg97S4td%>qq
z&uo=upy%tN+dMZ97Z)f|IAQ4_vEzW-83Prc*-BYCU)eL7QHRyl9)~QR3c9-8TIcPI
z^-L)vn%gxkoLY&=CuV(tUAcC_i-{rEx);#sMTUWfAcGnrh8p9hkb4lJ!`XlUqg(Kt
zj{q6VpbcW7bV_)G5&d(ZpgKEQdHWkWuzsqksYywBz{(m~oITOnpBI<>d8eoFMDJ6@
zq?<X^6zBBWfNh3_g#pD{WjX!BZ=-gf-2N1dIteOe;czlfebFcjs)Mcw?s7sUY1P&4
z`wWj)L06QUlk?f!G_YmAXEoY&64C=dhF|grB(rW9md+0)d8u=GUZVedL#os{f9l0D
z==#WQ0CW}t^@%#!gXRAH*I1oU^3K2A!RqGb_DC#54FqTGxY~!!6y7z*>(w2bT|4#n
z?%i9H%``?|%Bh6-SRVq6p$$$HjZ#f*txD7swDXK*)V0#nV*)J-{G~7aM0?iA2%mrF
zeQqx8wxyn)9%$4=9xC7qqX+JBxFyY4%jWV&4|>*uIsy*bAfM{k^a8}h^jt(2(kOXu
zKPm+$EmVRHpud1TtiRZ(Z~ejZPwz%PXZuHnwJF-o<a3yQCpFl!q=&e74qS<^u}L5u
z8C<-kBgLls@9)chSXe6XC%76-ZDiW~ZQc(<2*7Bg8GI{Tte68Oz!;+H8vFL(lf7E%
zY5uR=ys$%V7ffc8ZA;;jyoPTqrDlVT*Y8j@o0~Cpm$*@y;a`$0eVWQ{_hxr8dT!P4
zK`1(!7?~sP8zlHx%1?<o`j5=FqRU;Zu5Q`h5!|qQ-)A2<_z=hR--TXX*si+y@tMZ8
zfGdt-F(pL#*F2q%OW)Xfk^zFcEliAdi6!ljNmJ~Q>mPjllk}D^u0qa$4ow(S`C9em
zES5yRV2_4MUT@&e@AhJ%ozMh8tbz#&2BkUFRoa!yQ`S2ZH&h`p1c6{!*S%%woEQJ~
z<L23xFz?=VzkV%sf>#!r(VD)yDt=q(c|c-$I{XIWFIFVW&Y_EN_4g}@M}O~WaU&<l
ze?4D`?E_|dlv&RuIh8#nynO6&mvid-xfwoFy4+9BG@kq?@Cw>%Cx0qGzc7n@Zg%%m
zYo8)DBbE0@qWe8<H_VIt(=?;{$h0cGYWV&FmXSLeOy6FajJI_JGnF?gJb%h$lD-=J
zFoZ>0gPMMB947)&Z8EE+TUro^0SXHUwhB0M&?0#WpoR-LT=V?vfbvr+`&T&IIpdlu
zf7TE6J}q|m7N7BVLp<YUld4#G^dj>Vf!0rZquia!B)p;%E(Cz_W5R8KTawrxi=^PQ
zz$5g&{EFDTk6atPEGw0bblL6l*!ZSX^L?<1_an*3g$>ES-w3T>I9e6$987%B#2C=4
z$pJa?5lJKlb;U&1g|ZsNMpaRotQXzY|9&Tt&CZiha(}|GKl1d0`kkFFfnEMoVI*kO
zVZ4F4E||3;%h#d-?Bd-LF~5gXe}G!5bu?G06!qjJ^w9k#q4w8ZUxldYmH!~m*I^*g
zuZVGsdd_qvp(EtmZ|4;Y#x-0O?*!}xHx8fu{WO`fMr}1Gc>rwQbe#TeFchG8Q_WLa
zKj!a1`tl_V>=|NN{^Aagan#S;fJa5QDsmzAK<9k27dRdNLEA60?AnDpV1y|n*pLIL
z{Ypztr1=zR1D5IwE4J0LojSU=5=XbkrrSoc;?jQF;M_p(rhCBpM{h+@Gx2x^QB8+Z
zx1F{a3E4boq^-(z?XQUfD-cy;;0^eucI#eI3`F96v;kKjty|>%LTa@HLQ>%0j5pGL
zrvE@C64W^d8m5USWqIRU&!&z&s46@(9VChszdNQ+2tmj*#9k)s5M&IB2qA<545u?f
zq0qk5rv7G_0*TH>%fdR}K-PwwUj4)YSq`RR<LW1DG@R~s*y>$6;0Dx>uRvG<0WFWq
z=-)4V$TlFpOhjg0bS*1W8N3GL$YM{VW{ZtOmTP;LiMXd^v}AtZRos80oJvjYo!d+r
z9Z-9D(-<)kiR)#7*9lm<G1pn227XznWWVTyRc056Xg9OHqa=#6R3iwJHY90^IoNU;
zr5}Y@t^~Iiz5Bb!$HO(*l1fi_eW{!{e?N}9ZP$46GwI{=r@&nR&!c`&1FR|$oW?^K
zC(w@B0uX~k*a~j4<9btV%uAmLnF<q3(Wjk?<^0(I%OOwJc#w^@2Vmbd>zwbaV1|jr
zK$^Cybm85guQ4zMwXuuSJv(3x=p{$<5SjTl-|sN`(>=}_yKGj>#Ae!=<<O*$2Gfvr
zV12?&!`6eegVloYQR4=3M-Rq&xA`wB$CSaXFosP<$TR`VkI!f1>gnkTe*TM2ZH|jk
zUL!JRJhje6Vr??f49H9Hqce2!e{I#Cn|E))9Ydcc2c<Z6!@5keS#ui=8$ss5W-}Zf
z&PTE6{bKhgAWI7i3*{QBHV4yKJWBm_E7Ygwk<@Z{I5?}z6Z}lE%*s#E_BU|xa=CLI
zJH=OKxnTbNaeK{ji%QR9j`KiH6Fg?PpRIUh<mFMNrhOkjethxbMY+`k4+xq8`#CeR
z%{e<S_h-Lq@ORu@SN_~af9viDMCy9^;CEpD1o_#nAmD>*vEyX}fcfNRB4`1ezh(%{
zPqMSKbv-uypoRF+?uwG4A`t7GLQ0$KEznWC%FUVVmDq0xpKq<OqK9}BiI92uE+ph5
zkK@yAN1$y`dby$n3<&48tt~qPgWoW#Fj8(7XlLW)8T<EJ>O7C{&@GNmIHv!3_Jsa<
zUhBVIO=TZ>2=Z<}BAxf%$L)Q4)`HBr6Et!kxr+1~uOI1yY!P(5F}f5vCIg2zC8O8Z
zTOuBn7(1@5kE#GY1y0{nJ!k-eM#!)#7KUfFSCgl*^9ny9d}^hCV!IoVl%~7dOaJGn
zb9HY5w7MGus=8~3B@*g;Sd&WVyGbb@q7b-T)Pl4vJHOsDcg$jk*CaVy{`>-+>HOIK
zP|b1s>k(~Y-(u;MYzOC+!F;s*((Ql{ya}XTn8nbK!@+8hqSRhKpHAh?H#IUUgC&K2
z#LdmkBzNy(8gofp)+hJe>48Q(?)&S^x;rls<+atIWj?HRm|u@#Qyqkx!KNJiGBAE)
zjyfM*c4g@rttyNw<jy<kK>>RVt&XqZks|c<XI55@HT5joisi`NSBt)Vd-hatK3E4w
zCZjsde0D!|W}Rmgm(U~u4LmcAqo|GGR{Np2>SW#o2`q=L{<3aEO*0b6NAaF7xvC16
zxR3JlQ{_(s-D>;q=gltEazJ9akkI{u79i1H(IG`DIJyu*I_=a;y}d`{XB>OYdZUI<
z?z~(&;3>g>{S-=Cp!Svl&E8Ky!*nJEz}kBD%dP(OaGUHo*BP}JvAzGG5fzm&OL*wN
z-zaQWZFx4%L9zM<&9BOYg7-u-<Qc>E;L9AB-w_NXCk^S)yd*7EBu6U8J9q-CS|CVX
zCF8~yG=wT%OgsMT<eXyM_LBRqLJ02@(Fv;-#-|JaG1<-btzO5&O!j!kkf)K810PQp
zDm*v!7Q+^GW~rI8oaJHDf)4}L=+W*fTT+{c|NiHf(VCQOMST&%Ju2RAI>e7Mw}MIc
zi6dX{(<*tBZ%nHL6MsDO9hS4FcKik<>y(ZIZ&dk@tF)Bpt!JkLQmm_eC>ZWExK5JS
zf9323q;jeb{=uEk=DIG$WUO%TM>U(B<|0G^uK1l&8jIuN_+raMGW&K`?atn3j_(q_
zwTRU@0^ooVF$ZoZLI7EK-~DEp>ge@Y;3;H^rPjPM;euE3;L|=x)(euJzQTLNc@V*!
za>UrKXm_+2G3$DSA;`z;wNAC{9+7d`G3%rr_$klQdtjXxQVuTw5}Jaz{LQK(kjr8T
zBj)>qGjL@BfZ;vTHLH`ajdeLSW{D+`%Ui4#x7(vgav%b73tQL2d+TtY;q3T^sLc+c
z`}Zda((YluX8#6X{UJEw&W)Xds9;2s;t^u=+V8&%tD|_<Y~_@9m(B~LE!_FtrB{lQ
z*oo&1qXEW#c*QgP4(BUBRRzD5zd#$iSuc25AmCm--@BR90r^q^V(t&P08FxnA5H?I
z8~4Uz*F9*t>RF|}`ICTlHbM4L(};h##^;%LE-)|OOr-o}Ne(x?=X;4jtvr+th%!n>
z%*BOWJ$A_%O71K0{^^b|9_!oN`BM0*KwjT}S>2DM?x}h`M#Eq7FY-1deb5m4&8iZF
z0YJqBvS^Pwi#P0$HmbWSzEou#5}s)gXOL(1=@+Cj{1yCIfo9_CW|!_8ilo~DX0KpH
zIJ#fKKoT)Kp$Z9F&RY)`PIuQgy$OWu*VXK6MyWfH*%~BI_<<wZIuUHxKu)>?7b@H`
z?Ok0-Y^J>+DUU}PhAn)1qZ|$yV<668_aFGo>0h{Tw@Omvx$+{mlfUtq&c+rcc?H9v
zz~oNL`N8cphrf=iuiSd7Yhin0Vj><z31r$+{|Wy|$AS#@?mj^PIFvlmekqa@P8*Zl
zR@zonTQ}fI-`6O^n^4T*iZDC138zyAxMx(g11Ise!Q}^RpoV#vEUaI|#mie=SXh{z
zo?cZ&oO|!DjZ+|DU{+1ig>(aXKy*PG3JCGX(cQZ!9NS~rCxld#loFJ;%w*zU_&dU(
zzJWyI%Y=-4c@Dr7Zg-2gb9|i6`N0xbteQwo0c>wunMH$wfER_+f}3Lf9s#V?<5s#s
zJuZlA9%m|$XaoJzU`JOM0}ajhQMk4-WjX_>nk<I$fXIu;cnjXKbDbvlA)DrUQu{4Z
zT-U)QPE&=JV~TC>;r4K@AK|#a0?6?Ae-X_5B4q)ve^jff9zl%LX~014<>l3n6iSh&
zyCa>Un5ThWkbVz@4nJui^B8+>*`_RTUZ|h4Z^bbk36Z<Fx2FBW-!wDgoVGn$ttmWh
zuYC8uyB_DBrRS2SoQ$7wVJ@d%W_`W4goK2UkPz@CgFsJ%RSU2g(QrfFqL7X~Op$T4
z1JWQSk$E2;r>LtYf3NW3G+aj(_P@uY-9BeH`TDG`vADzA>kSHgHfjl_+^_cX0aNk!
zV#Bw9*8x@Z&B&kYBv=ZURPI`&Hv~LjtS4|{nDL1|+<(kZ=P{ZPTX#mBf`y*R3CWZm
zxh#GsIp7*w)<G(In=g?uW=w2-mpxn~?<nv(m9v~%R~rxCT^U<=coVDv!p38f7(76f
zg<K=QAze`CtOpe6X>JlL?NdKv&$pC6I~aCehbxMEk<7AgN2?3t2H@Rgv)TF`nOJv1
zEl90sihQSSRnMT2HT*^?OSY&e{?U1PCY6e=w+%J#7Cg?u<79y^1b*!XQY*Ur#~cqM
zUT~x(I41CA0PONR8075{N!Z+^Cmjh=S1XTOhAv;jTimaobn{jjGkAODw`I<jKB2Jv
z&f-l_;b6+3j~X@_nnED(rm<BP0z$xxKtfFjgv!G^i?^qNP2r_L{!pRt^*UnAc;m6t
z+PvuGe-F?8*wpzMvGr!o(BfDCxmSy-gPN&SPg6L<`kp*a=UWUx3PCRiM@K1D;l3_B
z^l}0xa!k*}G4cI&aAX;%2>^zJAch9xb^#*|O}v0-mB)pPx5dIp;jxn8LllnZD!bS4
z`Rt<s$`Y);S1axv?B7iqniFK>EcqA4?$5~$%aI?+ZOu3arKro_D6$x#)vTz?Cq$Z>
zdX*TfqbkA$1(sTFR@Aeqem!rcmI=V^%c1~Mj3^F87<_8d;o{bEgI~Ix8Y)Hp+KDd}
zr*is26Qn~MTkRhAWJAaRj4ZI$M;yGo?*D{+$~TelTuoo5jJ=&53p4Xbl_RYTu$t>#
zzEsvNS{V(m>vm2#36Ry{9;e@g-=z9^72UCZ>Tj&0b6{QHD9@Y3>#RkNtgxmgxp(i{
zHMjnOKvtGZO<`oBS7{<2<C5igpM0g(zDMG2^X>H+A#z}V24tdWoe{ecCFKbhNPIy#
zh2F4d2)k#Ic`O|$;^4?r&=Y`AE`+JPb9?6;(f(2(d1HP3%R{#Iwl+m2rTT*z?8}$m
zLPZ*gRU91JNas+ioJ!ebf@8;536KIO=K@@8kzv>}cWC^mJU2TzHBCB;-v=0LjpKLo
zZGZJB4i|81ZZt{+8S5w;>tXcvJilCu>vB{<Z(WM&7fiIlzedeo!?FJP0Pgd?mtX(s
z5N<b5TG!uiZwDq=E{TsD-bMlX5s&(K3WY<yqaR19RYW%7HQGryS&#3|$HXR=i1UtF
zx0eH+VrHeM>%b#F8ULn->FGZ6)BARU-B@`A4V!@hzQFM+!4_?PzKJ42@dJ>1`V@bc
z;?n2K87VEjukx2doMZFlnMdI5qnCMK1;0bx7@EdzMd2jY#8KFa6p?w${;_tCJKU-4
zmT?_jrTEe%l@d?-N4WP*nWb<fLzW!HJ$AE$!dFK-K-FFMTw7SsQKc5JpC5(}k{=?y
z&whvhOcCA{7Oq`h=_4TU?(HLyNC6Ufw57%7{7ep{iL_5Y%>4EiLHrHFKH&ogFi~u{
zD|9LeF?>f@0)OkvMigJ=3`L67y42x8zr7L-8^#L$;mo&KpBcSoGLpC*hf~{%-l%L|
zC+*?6K`TVB(L~kbt+zfu_0QoskRY?(4hyKw{L&G9^QJq6x5uryc@VfwxtTw(XOee2
zDyp=nU&6q}4X~Q5A^msWUf0bnFITNk?9cLAIk{s}W}xVJ&XoRG%w1%u72d-gq{u5R
zn5C7@kESBf2?=9yuN8XuE#3!Qf*LUrc!izOf|A(z9F07kL>w7oicSCo*|b_sc&MrR
zxoxm}ejws6Uc6|TW&J^=+&$+(2Fk+py|0Yc&wbv{gb~MAF%}ryOb=S7!2>b5TFi`w
z4+R)vMP+htpH3>3s7@0`!7r`i%FO%enlO5wApHh%rBft7Gg5~q{8^f<#M(}LAwva)
zcIAmlPa&Ot;*%m7ODjl$S*CW!i6K>bfk%#u_6BlP@#Fy;T;9Xv$V2zqr83<t^rep3
zne-{D#*K^R$1n$gZLrQUS({g}8=Wq#mtnK(>khpZ?XtR5=L4~S{1jaQ*_^Vb5r~4&
zq{b;q*=>5r54#T+vy<G+vPP*e9CTEzHV&$7ojj(dKZhHoF!0N&>)40VgN?u7=uY>?
zuOYMS9!Bbny)Rxpt?o4WcN56$`DeB)yjP=x=rU6u9(l?B@}+5X5EoV!0Gfi8F^}uh
z7^9O_T<Wa)+^;3Z;wvO&#zCj^EhcLXC-_cLaS@e0OBd@Dj0;S-y>sT<{$p7{C0b$r
zMF@(_01$$%0YE6rr>=CJoP(=ox6)GJh1H#H0#hmzZg)pJ&uXWgPc~aK1aQf1@2V>F
zcy*|)Q+HjzWpKHdua1Y?TqUnDfiv}l{p*kW|E8aiGBWPQ!RX^`*KRV+_yx;zb@x3M
z#|ic1JLHCqaqQTdG_w|dCy4x@+Vd9X6++yRkrB{atBtw6yA>%EX}6s^mcm;sRR?Nj
zVODSaz>V3X!QT6a{5uN{0r+X1I`{+b5mfUeHG~FrBE`1urWT)$I1T@^^wcRMcKcc}
zzYr}Ydo_~5LX+ol=M6euKW}<jTo7EfS-hBh17qQR5w^(S#zb4ttQCUXe)E&nr$NH&
ze)>gU(^wsZRR@S-O}MHcDK9JQ9XoHo_^A@Nan9S$6`SYZtyz2Le?=iVzm;T@gE0?J
z+TZsK#@6kMa6Z#)oURw+uL{{mokpZTY_9hz$heI@PM=o(cd&s$ezhYUdsdUK{bYf9
z@tPjUupkr*&dkT+^kDbs7drf$Az9${`adAV!it|{>CdZ{_6>(uIBPqFe@v})_KvPi
zeEJ<n#wLtW@8CTtz!D(n;Po}7>{|=fLBz-lbK^YwEN|>Rx4x5wLBD%0w`l<e0+B|D
z1gn76`Ak;rka@>TOYgtn2Z}N`uY=)9pe+3sZhc`pXG0IaZJknSyyxd66@dI71)>RG
zLR1f#RYA5D63Pe0PAM23Q9N5?_mkrbI*84<9KL<>iKIwg-I)_S<c^T)6Ir!8cI@HF
zND2-a=QQbJg$e}mkh{hPtXaidY(h%06YnJI>d`vt1=+_cg+ti?J-`JaJPg6@OvUHx
z0$aPUeJ&rJ7F0~?4(tuz|L&5IQ*$mj-@{n%!EQJE=i9Sz%?httS5}?-f4<+5Aq((C
zTcHCdn_sQ~=IM^E)YZeq$Z!R9JXX^Ay}tF=Y?Cu81w9q`{3q`V77Kf$QbQ@U$Jf4(
zE1R!C8b}=D%Ib4YV8Ot%q_{Hd6b&7`I*$xjj_ja%5s<&ZJai=)m%^IoRr&5m>$g#Y
zuLNBe1zUs9&vs5`M9&_D^LZ?Ui7Z{M&ZLUA%CF>(Jaig(ngA)IH+4)bEI4>){-Zn4
z6vXN{Uu{*;ps7#Te^FgS!1ZY7=DbM&KId@#d0%T}Gu-6$c5^>6GjXa|=sT?k>9CP@
zy_CPV7ld^@Hb*{vDu`eDckegyQ94{k>jc5J22r!P@wpCnQL%OB#zOY{5d{=367r=e
z#=#kx`OFU=@Dv8hJio6$VLRUUo-G^7vziRCw%|+Kv2=6{iXZv8vttnT0Siko>>g`z
z#@yLG{U?T;Rvz1f`MSZuqH+SJZYN(&jOI+A_P>73@8~%5<_#t?srlG=vSuOv*v?L4
zb1BQb2lubM@xp5=p^~W=8BQk_8$>S<M}N+bf1zIRFtDlr99MSY2p5tkkHW{1K^|<)
z*&G@MO(pTn<(394M$-xz6X!@8BV`g+Yik5jX&}S5dCu);Y(M`q(120<Iuy|uAh?tT
z_^U30pca6+ygA|;z8mw4TVIC5tOVDLN7ttU_{r}gvt+ORjAMLdwcJI9<)>{^xb+KJ
zR%Ys8-qAenp#IgSoR1B9w<<8R%}q5mp6Xdyjqa7{+9Ep>VxcaaBVzFr6kjwpG`Iq6
zxO|yk$Lo;W;qrn|Ng<ORJR+A^c?-ST-<JP>K*83Kv0QgP)LCKT?&jq2$;5_)T$n$4
z)vyyzv2TIkvfrBBzl?$BqK9Cic(*ZiZYm>VCMv4vaS~4EM|HaK?q)+ANxhw@noiQQ
z^T&~oWs>-;HfM-VPo2|9(BgV9&`#g^*4yWpj`pf;%~?qaQYqYO-YrBJbvT3=yz9f?
z(z8~=tD`etOcbsBVBl<wT{u5kD4|YfBV+m`*f^(YO>g*x&uwRlfGXr3kFs~`2Uk42
z0)8g84g5#RUKY?R!1MIGzrS!c4excCqlXWsn-`K;hx$kmW;_C%oKc5Up(Io36nO=5
z;+%!7Y_MfWF55hx?>EGoA3JXt_pl3|uZq#O4i}{foE>PpDwWr6?XAs@lw?&_S!Fs3
zKN;`FnJ_cvh#0K+SK=VN!GDJy$?Edw6CA?h!%AAu;J=%!i?~B}PUBL(bs>K8!SS^f
z{FkHBThSSVQju7UV&d_&IuC9Z+F(@U3#dsFIb1duW~J}kXbO!~QK4Zq=A)0eqEk=K
z3sqaJCSg77D}(f}ki`?UG;B+jIF2UTiC-(Zfek)b>gz1f4*rralV<AS;Uu4+Xv@KF
zgo*~SKFxoRqMS|Q2NlE2F`05u%jui9_C&R89<zTgUdD*y<FH+8UJ)+7BGval8oSb{
zrmih)ZBYr6@1f;cEG*j+L99$ca9}Xi3WN|9SQSBrAd0BWOPUxN1Bg_3%G3l5q%;UZ
zp~|2HN&0vUq5+eD5)G6|Fe?ly0!0Ez_q`Eq->;WH$-O7{-m}m7_C9;>bH00u-p0SI
zcv>mR|1oz1`Ibt^UZhZlWosZ^0LCR@`Akk@V}&x{<tZ{*mrkcO(HiTQ%B{=Hq|Mjx
zF+;z7ByiD))zngWyq@}Z>FBi)vZ(I#$qfZw<+vpA9kj#iSrbbS9<9ZHou7I=QzmZg
z*6+s9%Nl0Mf(Bt-9Zh`yzOXOOfSXj$rc6p$2L3-X3k{D26f4^eEo|6kgQAg<1H8RB
zslO|`!v6B7#V@<G@7>&R8$YZB@9=^2!UbuB+9UUx&{EYz@Qk_r6>st=BgvLgB5u*=
zd#sM>#0FoKHpQhkFIVQ}-RKc7r9o6Aym$U<*x+=S!Qcb;CLTy|h)74wa0CMB%D=28
zTQgKUce2d3UFK44FE83U1w_8cqJ!}OH0SZ!FpzvHnHHX{b~Who+r(?Bu#wu5#`a^I
z8@7ZzRm2rO`U1x`obaVkR>xRxH8+2FXRv`I{MkHVA?U^3sBhcbOL<D_Lue>L?ztK-
z43T>%<VcF{XE>qYEICYm_^NE^dFQCiS4*q5VUU~(Bg3J%Q0re9Wd5!hABCkV<#Ush
zC&FW?i4nO^Cw#h#qbsdNI#n2Al_lsGcOz3U_Dq!0(wRxRx8xz{3pj8<VHMn1Y;W%J
zgO1Ca1^M$TZwS$Tzclm04_5+ec{B(v!);~?qGbGZWzqDjpt`3MY^sI0m6lRK78JPb
z47a$V^SnRJ9WmU<Xt&B2@9AqHTSLbpBP+}XAm(i&%nJZ*ARG?i2PEoK`GGZd%~|qZ
zlfe$d0c73<VuV>rsC-gm<p^IJ5wM^&PZ6ErdmP8iQ`v@hjhGPaK%|Q1BEV*~Ix=Nz
zbkfGBq@6uw4A||pRTwGrBspwz3L>3&?idr}`EkmYhK85~l|w!wdVcbBb#>v~+*++v
z#nhy~{Eq^7gH15fgvjdme=w)$*tQW-sj9kCUp3pq2l5KroZvPBixn98<KKDaxP^2U
z6%>`dqZAQ5ciNp2+X9oZ73pzA1bjMsS8O?N$v1fPFo$#F9S^jxe}xCSowzG<C=rM=
zGa2vvVLG-PLzKI`y#udW*>1k44drr%NrjvDoX;Hrpg`Ra(|Bkj6E;Fs45wcQ!_VV2
z89}IX+~*iIthaplJp(hH0SHakeO%zOdSasIRtq%ruQ;4l7M8oOmW|MibPV%#jKg2e
z_GD+YDFt(@lOE-oVOJ=W=j?D5`_i>VzKzja5N9Eg!_J7piFBAcM36@Ei7tTp`ukIy
zsa#Zlr!<L^r5WMQp(qlOnV*4@bMLzwVS=jNt1sYA>(m%rM_fTl;*+$KJiT_&e!ECB
z+~b6$^=fx?fHvG=5B)lyju@FuHmq+EY(!#lg_U8d1>4NVOElfoyB7^!z5TAkZ?8<l
zd+Uya*=$3}dZxd>F|i0XO$xjO)}|@0w)%Kx{EVyTI6q$Ha2~j$i!I&LocIJEZmeVK
z_`>T_r-i_=q5q^{Nk#_xF{{vVkSp~1YGoyUaTfcAJE@4p^V-(-tn8}Lo$#h9YV?G+
z_k$lckqBQUO{HOv10$*Yd+O}6!s(YveTCvB%W(jWGy$BDTP*AINOE=_9;>mDb&5U9
zwtA5Gz>qmpxcE(N{oEv9S>M^;?-h_>ITq|LNb07KLuICa@A|36jPy8i4FS;=aBk`T
zwkH47Y^GsSTh?FSN6KeeJ48_ztr^<LecniJIau7Yw6(LV<2f#aD^@1VbtCP4-Fjj?
z!NPCdX*=AQBJ@e`&o_e-5UK`pKS;UK{q1Yf75T~CC0hw32Fu=ISuPK&Iw#lbYQ7LB
zk@AoEP<Df>Cb7JT>EiBw4Hb)yPOiLp<Vj7yHoY#0`c1Am%MYX4+=0)rCSY?8N4Rpt
z_zx8%5{XBpy~fP3F-^!mX>a=JR7l9%d1-^-szboVxnb}I+OOEm%=U+cEC1+_fnuJ%
zoo8-<Lf-yU=Bm#$iP{nX9YhN#HwDZGut!ic0a2OSVR8;dSy6xe(|Tr!C-7|g3b|K&
z3uwj>YMDQRP`JNY9nEP%*KC)(@Mg7+KH&t`7^p$F>Z~3h89br?_jyAuq2mgmh@mFV
z*_e(6<_Tg*R?prZzxm85zKgsA^4wd(2Q_HQ$5sY<82fO)ETeDKsgT4e(_Yg)(`Tjw
z$&DW)xC3Qs(9dkcvn@?c?`NNpS@nE*qr)Q4?bc?n0Bp_Qc0)u7OUZz4#qBEIBNK^(
z%MN;EBVc+6GzCbyS9u;iYI@bBTml5!b#cN{PKSGTkrCe=``>7&7PP_y@S+Y?!m`KA
zwvkV!OAZpU8AiJtl+f$j52E${Ro9#8jxF`eapR=+@5|0NvT=x}E+M^`g|-R^iin4N
zp}_?5ROEx&fxnlas`Ni4XyYTYe7HtE7yu+e#+4E@I7BN9r{0yQAN02p8CSLT%OR5;
Tof=pga<S_HkNws7z~nyx+rYGh

literal 0
HcmV?d00001

diff --git a/doc/uml/models.pu b/doc/uml/models.pu
new file mode 100644
index 00000000..672dc897
--- /dev/null
+++ b/doc/uml/models.pu
@@ -0,0 +1,44 @@
+@startuml
+
+class Account {
+	pgpkey
+}
+
+Account --> "0..*" Community : is a member of
+Account --> "0..*" Node : trusts
+Account --> "0..*" Node : send transactions with
+Account --> "*" Transaction : send
+Account --> "*" Transaction : receive
+Account --> "0..*" Wallet : owns
+
+class Community {
+}
+
+Community "1" -- "1" Currency : uses
+Community "1" --> "1..*" Node : known nodes
+
+class Node {
+	address
+	port
+	auth
+}
+
+Node --> "1" Community
+
+class Transaction {
+	value
+	currency
+	sender
+	receiver
+}
+
+class Wallet {
+	currency
+	coins
+}
+
+
+
+@enduml
+
+
diff --git a/res/ui/addAccountDialog.ui b/res/ui/addAccountDialog.ui
index a65a745a..807ffccb 100644
--- a/res/ui/addAccountDialog.ui
+++ b/res/ui/addAccountDialog.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>Dialog</class>
- <widget class="QDialog" name="Dialog">
+ <class>AddAccountDialog</class>
+ <widget class="QDialog" name="AddAccountDialog">
   <property name="geometry">
    <rect>
     <x>0</x>
@@ -11,7 +11,10 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>Dialog</string>
+   <string>Add an account</string>
+  </property>
+  <property name="modal">
+   <bool>true</bool>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
@@ -56,10 +59,28 @@
      <property name="title">
       <string>Communities membership</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
        <widget class="QTableView" name="communitiesTable"/>
       </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QPushButton" name="addCommunity">
+          <property name="text">
+           <string>Add a community</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="removeCommunity">
+          <property name="text">
+           <string>Remove selected community</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
      </layout>
     </widget>
    </item>
@@ -80,7 +101,7 @@
   <connection>
    <sender>buttonBox</sender>
    <signal>accepted()</signal>
-   <receiver>Dialog</receiver>
+   <receiver>AddAccountDialog</receiver>
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
@@ -96,7 +117,7 @@
   <connection>
    <sender>buttonBox</sender>
    <signal>rejected()</signal>
-   <receiver>Dialog</receiver>
+   <receiver>AddAccountDialog</receiver>
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
@@ -109,5 +130,24 @@
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>addCommunity</sender>
+   <signal>clicked()</signal>
+   <receiver>AddAccountDialog</receiver>
+   <slot>openAddCommunityDialog()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>109</x>
+     <y>237</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>199</x>
+     <y>149</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
+ <slots>
+  <slot>openAddCommunityDialog()</slot>
+ </slots>
 </ui>
diff --git a/res/ui/addCommunityDialog.ui b/res/ui/addCommunityDialog.ui
new file mode 100644
index 00000000..520b3d13
--- /dev/null
+++ b/res/ui/addCommunityDialog.ui
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AddCommunityDialog</class>
+ <widget class="QDialog" name="AddCommunityDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Add a community</string>
+  </property>
+  <property name="modal">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
+      <string>Communities nodes</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_3">
+      <item>
+       <widget class="QTableView" name="communitiesTable"/>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QLineEdit" name="lineEdit">
+          <property name="text">
+           <string/>
+          </property>
+          <property name="placeholderText">
+           <string>Server</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineEdit_2">
+          <property name="text">
+           <string/>
+          </property>
+          <property name="placeholderText">
+           <string>Port</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="checkBox">
+          <property name="text">
+           <string>Auth</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="removeCommunity">
+          <property name="text">
+           <string>Add</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>AddCommunityDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>AddCommunityDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/res/ui/mainwindow.ui b/res/ui/mainwindow.ui
index b2cda408..c9c3e646 100644
--- a/res/ui/mainwindow.ui
+++ b/res/ui/mainwindow.ui
@@ -152,8 +152,7 @@
      <string>Account</string>
     </property>
     <addaction name="actionChange_account"/>
-    <addaction name="actionManage_accounts"/>
-    <addaction name="actionConfigure_trustable_nodes"/>
+    <addaction name="actionAdd_account"/>
    </widget>
    <widget class="QMenu" name="menuEdit">
     <property name="title">
@@ -216,7 +215,32 @@
     <string>Remove contact</string>
    </property>
   </action>
+  <action name="actionAdd_account">
+   <property name="text">
+    <string>Add account</string>
+   </property>
+  </action>
  </widget>
  <resources/>
- <connections/>
+ <connections>
+  <connection>
+   <sender>actionAdd_account</sender>
+   <signal>triggered()</signal>
+   <receiver>MainWindow</receiver>
+   <slot>openAddAccountDialog()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>225</x>
+     <y>199</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>openAddAccountDialog()</slot>
+ </slots>
 </ui>
diff --git a/src/cutecoin/__init__.py b/src/cutecoin/__init__.py
index e9a7bd24..16edd0be 100644
--- a/src/cutecoin/__init__.py
+++ b/src/cutecoin/__init__.py
@@ -10,7 +10,6 @@ from cutecoin.models.account import Account
 
 if __name__ == '__main__':
     app = QApplication(sys.argv)
-    acc = Account()
     window = MainWindow()
     window.show()
     sys.exit(app.exec_())
diff --git a/src/cutecoin/gui/addAccountDialog.py b/src/cutecoin/gui/addAccountDialog.py
new file mode 100644
index 00000000..661cee2b
--- /dev/null
+++ b/src/cutecoin/gui/addAccountDialog.py
@@ -0,0 +1,28 @@
+'''
+Created on 2 févr. 2014
+
+@author: inso
+'''
+from cutecoin.gen_resources.addAccountDialog_uic import Ui_AddAccountDialog
+from PyQt5.QtWidgets import QDialog
+from cutecoin.gui.addCommunityDialog import AddCommunityDialog
+
+class AddAccountDialog(QDialog, Ui_AddAccountDialog):
+    '''
+    classdocs
+    '''
+
+
+    def __init__(self):
+        '''
+        Constructor
+        '''
+        # Set up the user interface from Designer.
+        super(AddAccountDialog, self).__init__()
+        self.setupUi(self)
+        print("stiio")
+
+    def openAddCommunityDialog(self):
+        dialog = AddCommunityDialog()
+        dialog.show()
+
diff --git a/src/cutecoin/gui/addCommunityDialog.py b/src/cutecoin/gui/addCommunityDialog.py
new file mode 100644
index 00000000..8598d396
--- /dev/null
+++ b/src/cutecoin/gui/addCommunityDialog.py
@@ -0,0 +1,21 @@
+'''
+Created on 2 févr. 2014
+
+@author: inso
+'''
+from cutecoin.gen_resources.addCommunityDialog_uic import Ui_AddCommunityDialog
+from PyQt5.QtWidgets import QDialog
+
+class AddCommunityDialog(QDialog, Ui_AddCommunityDialog):
+    '''
+    classdocs
+    '''
+
+
+    def __init__(self):
+        '''
+        Constructor
+        '''
+        super(AddCommunityDialog, self).__init__()
+        self.setupUi(self)
+
diff --git a/src/cutecoin/gui/mainWindow.py b/src/cutecoin/gui/mainWindow.py
index 973ec967..9a568311 100644
--- a/src/cutecoin/gui/mainWindow.py
+++ b/src/cutecoin/gui/mainWindow.py
@@ -5,7 +5,7 @@ Created on 1 févr. 2014
 '''
 from cutecoin.gen_resources.mainwindow_uic import Ui_MainWindow
 from PyQt5.QtWidgets import QMainWindow
-
+from cutecoin.gui.addAccountDialog import AddAccountDialog
 
 class MainWindow(QMainWindow, Ui_MainWindow):
     '''
@@ -20,3 +20,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         # Set up the user interface from Designer.
         super(MainWindow, self).__init__()
         self.setupUi(self)
+
+    def openAddAccountDialog(self):
+        dialog = AddAccountDialog()
+        print("shoow")
+        dialog.show()
+        print("shoow2")
\ No newline at end of file
diff --git a/src/cutecoin/models/account.py b/src/cutecoin/models/account.py
index 936652d3..6d9a4a46 100644
--- a/src/cutecoin/models/account.py
+++ b/src/cutecoin/models/account.py
@@ -11,12 +11,18 @@ class Account(object):
     classdocs
     '''
 
-    def __init__(self):
+    def __init__(self, pgpKey, name, communities):
         '''
         Constructor
         '''
+        self.pgpKey = pgpKey
+        self.name = name
+        self.communities = communities
         self.transactionNodes = []
         self.trustableNodes = []
+        self.wallets = []
+        self.receivedTransactions = []
+        self.sentTransactions = []
 
     def addTransactionNode(self, node):
         self.transactionNodes.append(node)
diff --git a/src/cutecoin/models/coin.py b/src/cutecoin/models/coin.py
new file mode 100644
index 00000000..5188e010
--- /dev/null
+++ b/src/cutecoin/models/coin.py
@@ -0,0 +1,17 @@
+'''
+Created on 2 févr. 2014
+
+@author: inso
+'''
+
+class Coin(object):
+    '''
+    classdocs
+    '''
+
+
+    def __init__(self, number):
+        '''
+        Constructor
+        '''
+        self.number = number
diff --git a/src/cutecoin/models/community.py b/src/cutecoin/models/community.py
index 73dd4d59..1e085d07 100644
--- a/src/cutecoin/models/community.py
+++ b/src/cutecoin/models/community.py
@@ -4,13 +4,56 @@ Created on 1 févr. 2014
 @author: inso
 '''
 
-class communityModel(object):
+import ucoinpy as ucoin
+
+class Community(object):
     '''
     classdocs
     '''
 
 
-    def __init__(self, params):
+    def __init__(self, mainNode, currency):
+        '''
+        Constructor
+        '''
+        self.knowNodes = []
+        self.knowNodes.append(mainNode)
+
+    def members(self):
+        '''
+        Listing members of a community
+        '''
+
+        # TODO : Try connecting with nodes of the list
+        # if the first fails
+        # Maybe create a method
+        ucoin.settings['server'] = self.knowNodes[0].address
+        ucoin.settings['port'] = self.knowNodes[0].port
+        ucoin.settings['auth'] = self.knowNodes[0].auth
+
+        members = ucoin.hdc.amendments.view.Members( ucoin.hdc.amendments.Current )
+        return members
+
+class CommunitiesManager(object):
+    '''
+    classdocs
+    '''
+    def __init__(self):
         '''
         Constructor
         '''
+        self.communities = []
+
+    def getCommunity(self, currency):
+        for com in self.communities:
+            if com.currency == currency:
+                return com
+
+    def addCommunity(self, node):
+        ucoin.settings['server'] = node.address
+        ucoin.settings['port'] = node.port
+        ucoin.settings['auth'] = node.auth
+
+        currentAmendment = ucoin.hdc.amendments.Current.get(self)
+        currency = currentAmendment['currency']
+        self.communities.append(Community(node), currency)
diff --git a/src/cutecoin/models/transaction.py b/src/cutecoin/models/transaction.py
index 766a906a..7b9496a1 100644
--- a/src/cutecoin/models/transaction.py
+++ b/src/cutecoin/models/transaction.py
@@ -4,13 +4,17 @@ Created on 1 févr. 2014
 @author: inso
 '''
 
-class TransactionModel(object):
+class Transaction(object):
     '''
     classdocs
     '''
 
 
-    def __init__(self, params):
+    def __init__(self, value, sender, receiver, currency):
         '''
         Constructor
         '''
+        self.value = value
+        self.sender = sender
+        self.receiver = receiver
+        self.currency = currency
diff --git a/src/cutecoin/models/wallet.py b/src/cutecoin/models/wallet.py
index 9d6e4929..fb9c9aa1 100644
--- a/src/cutecoin/models/wallet.py
+++ b/src/cutecoin/models/wallet.py
@@ -4,13 +4,16 @@ Created on 1 févr. 2014
 @author: inso
 '''
 
-class WalletModel(object):
+class Wallet(object):
     '''
     classdocs
     '''
 
 
-    def __init__(self, params):
+    def __init__(self, currency):
         '''
         Constructor
         '''
+        self.initialValue = 0
+        self.coins = []
+        self.currency = currency
-- 
GitLab