From 1b2d1b1ae117d15364c79ce44558236663aed4a7 Mon Sep 17 00:00:00 2001 From: kirti purohit Date: Thu, 15 Dec 2022 18:35:39 +0530 Subject: [PATCH 1/3] UPDATE DNS README.md --- examples/dns/README.md | 33 +++++++++++++++++++++++++++++++++ examples/dns/dns_diagram.png | Bin 0 -> 25557 bytes 2 files changed, 33 insertions(+) create mode 100644 examples/dns/README.md create mode 100644 examples/dns/dns_diagram.png diff --git a/examples/dns/README.md b/examples/dns/README.md new file mode 100644 index 0000000000..7323e71139 --- /dev/null +++ b/examples/dns/README.md @@ -0,0 +1,33 @@ +# DNS Smart contract + +The DNS smart contract is our showcase for executing other smart contracts on-chain. + + + +> This is a port from the blog post's ink! 1.0 based version of the contract to ink! 2.0. + +Domain name service contract inspired by + [this blog post on medium](https://medium.com/@chainx_org/secure-and-decentralized-polkadot-domain-name-system-e06c35c2a48d). + +### Description +The main function of this contract is domain name resolution which refers to the retrieval of numeric values corresponding to readable and easily memorable names such as "polka.dot" which can be used to facilitate transfers, voting and DApp-related operations instead of resorting to long IP addresses that are hard to remember. +
+ +![Image](dns_diagram.png) + +## Functionalities provided: + +- Registration of a new Domain Name +- Transfer the (already exsiting) owner to new Address +- Change the Domain Name + +### Other functionalities to be implemented: +- Transfer bidding + +> __Note:__
+ > Depending on your Substrate version you might encounter [a ink_lang dependency error](https://github.com/paritytech/ink/issues/506) which is yet to address. + + + + + diff --git a/examples/dns/dns_diagram.png b/examples/dns/dns_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f569a8a39d14758c0d195833951f528e4330a2 GIT binary patch literal 25557 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 F2>^bGzp4NL literal 0 HcmV?d00001 From 7340ae10cc9ab3a1687cc9d792e6051544bf831a Mon Sep 17 00:00:00 2001 From: kirti purohit Date: Sat, 17 Dec 2022 23:13:17 +0530 Subject: [PATCH 2/3] Updated the dns readme --- examples/dns/images/dns_diagram.png | Bin 0 -> 25557 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/dns/images/dns_diagram.png diff --git a/examples/dns/images/dns_diagram.png b/examples/dns/images/dns_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f569a8a39d14758c0d195833951f528e4330a2 GIT binary patch literal 25557 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 F2>^bGzp4NL literal 0 HcmV?d00001 From eec417179801c163f4e39bf3e1de484467d45bf7 Mon Sep 17 00:00:00 2001 From: kirti purohit Date: Sat, 17 Dec 2022 23:14:06 +0530 Subject: [PATCH 3/3] updated the readme --- examples/dns/README.md | 19 +++++++------------ examples/dns/dns_diagram.png | Bin 25557 -> 0 bytes 2 files changed, 7 insertions(+), 12 deletions(-) delete mode 100644 examples/dns/dns_diagram.png diff --git a/examples/dns/README.md b/examples/dns/README.md index 7323e71139..1f7ddafe15 100644 --- a/examples/dns/README.md +++ b/examples/dns/README.md @@ -1,19 +1,21 @@ # DNS Smart contract -The DNS smart contract is our showcase for executing other smart contracts on-chain. +The DNS smart contract is our showcase for decentralizing the Domain naming system. -> This is a port from the blog post's ink! 1.0 based version of the contract to ink! 2.0. +> This contract compiles with ink! 4.0-beta version Domain name service contract inspired by [this blog post on medium](https://medium.com/@chainx_org/secure-and-decentralized-polkadot-domain-name-system-e06c35c2a48d). ### Description -The main function of this contract is domain name resolution which refers to the retrieval of numeric values corresponding to readable and easily memorable names such as "polka.dot" which can be used to facilitate transfers, voting and DApp-related operations instead of resorting to long IP addresses that are hard to remember. +The registration of a new Domain works by the function `register` defined in the contract which takes 2 parameters: name and hash. Client sends a request to the DNS system such as "polka.dot" which returns the resolver address as shown below. The "polka.dot" is resolved by mapping the it to a `hash value` from the function named `Get_address` in the `lib.rs` file. + +

-![Image](dns_diagram.png) +![Image](images/dns_diagram.png) ## Functionalities provided: @@ -21,13 +23,6 @@ The main function of this contract is domain name resolution which refers to the - Transfer the (already exsiting) owner to new Address - Change the Domain Name -### Other functionalities to be implemented: -- Transfer bidding - -> __Note:__
- > Depending on your Substrate version you might encounter [a ink_lang dependency error](https://github.com/paritytech/ink/issues/506) which is yet to address. - - - + \ No newline at end of file diff --git a/examples/dns/dns_diagram.png b/examples/dns/dns_diagram.png deleted file mode 100644 index a9f569a8a39d14758c0d195833951f528e4330a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25557 zcmeFZcTm*Zwl&&-sDNMqL_k1M$wA3END`1tlO(7pIn&UR5kwRPBRMr0nk1653Mdkr zELkMyoYR}V_c{CC_x^fSufDI|ck5KCXbZov)?9OqImVdlrKY+PIVl|}0)Ze`z9X-V zKoEUFAP6s?CWKE)q&2w^2=h2)d0E{jrVGR9DoW(h@v3ShOF)2tEITPjGGX$a^SZh+ zcK*bg@*&im5AVt9Qn6P&yhly_l{AF;3i6r4M;;7STBiSremlo6 z5PNRUxry2(>kkc*ATVE;Wr*$&+`!uXlFu(Ir9{X)Rq#Lgmhgnt;5iJzqYH!r{!~|F z2A?CyuY7U0{|DdVc<_z%(axY_?d#&ZN@aL%&SoXlGnCf@_s0wBdUg1N|Q5#wAJ5jb|j3RjSuY><5L4 zf3`~>FPOYbweCvKdRe9F>V3G`ceuCN6>8?YJDKlyn2p{%>TtG^uDIneBvSoxr03_o zLW@?pvyu}gG0ko9;;o@ahx@hrOO+M3tUFUJ6McI7e>c#W2{fNQ15>rjgxOvi-rrxY zt&H^E>bIoRwC&4t7Yz+uZCk+vXwfc}>f&8&a)$ZR-bxst)+qK7szs%ow=r1Q~r6|r)ziuE~&d#ryGl{Qa5O<#` z&rW=zztGJ7{F>tHCsWauDD&O5$?YN6H-%5bru{i3NO=f1jz780_uBMeeYS_u1y2~8 znwrGmJG>@D_7@7tXn2N79nF@933ukQ^EcS$`|`K*M6O`?Dr(l>fnbw98 zs6AYC97!uM7%Z`OtXvdY?p(1OD9Tcg7yBA$_c?<5Ub^DZSTIu+=X=zAZfSyRo9IZI zv&}Aln@C+tJx67Y&e{>q87nsb-D5f)T}LkbM4#31PyNdqsu3GJ!;uyutV;s+1G=uS z9S-*9^Ocxya*f)$-*Z8HuZhYyj#QPagmaAg9anoLVM{~C1pAD~O=sTe zcT}!^rx!=f{5GLWNc7#yg2Cf>IYNDY|A+KZ5;H$~$r#3Wc403wC2WnSwWAX4*kCps zCE>C5K|^ZRq}ne`bn4Ov9mn#?h{86p=1MUSGw;=)gv#jAb-oARPV~sQ?l*Dfqbi(V zUF5cCi?eo^zdiwT(lgSM_~`_}o}bg%o0OR8mgw;jnXkIEVyma`s+18JDc!3;Su>=5 z4r7i-yM^fz&*Yg@vZ!yJ{~3%pT&i47aA{(n+G-UZ9jf-)_UT*B|9HYG{<5ii|Kq8x zSjU>(Z)ChtgE7@SOlYVbO(O!{|}_ zlGhE=3feihmNmG{YK(Uk(F?x{#uxevTThBjU6p&DSu^uAP9SF}JtHO6pvbD@tn|T6 zOUvWcKd*QboWIlN8WnqvhYAl7c&<(SoKEn{vl*h)kVqopcl`+qQ1SJpq)*xLZ)o{h zF7n=pH1*69Jt-JgzASyb+Ya%k+d7!4{9&ZpOPq;JJyGiLV7`%z| zQ2P0#;ZXd7W5{@)=W0fYaf^J#TVrrG!^0NVl|{J2411|v|JuX{joy#>*1x!f?ejw2 z&dlAmNFu?-TqvqGH7<^Fjd0nU&5%Ca=$a}q{V3(LSN~_zNJEnwqin>T)tPgVe-K7U ziQ8!|D`PG!@YLBONII=9Fefe(cO*A>YY&nKZ3Ma;?-f}kN#du-g1$8OUMW^>BL*v- znITGG^k!|P?(BSHG1l++NbI@6!Lc{w0j6Au4V;|C)T;)iXQq793l0q-)Q_7Z z1h-W#LgxEQw6WeUJzC*r8;TCify8zYcvk9WGYz*<>V@2^7?<3DoEw9sj`~?0zqCU6 z8YC_*|JEknfYuYsZTM4hy0xD$!^`^V1Y%_DYfYoqXcvNIKmIE?O8Km@B84ThQ02==0lhv z%Fu)WjzUwVMI2Y0sB8KWeqM_2Z9X7Axh`X|k40vSb@fB&o)w$9k}-RqXr8dBDKFjo z@r&(IKQp;Ik|W*{xwo?h=^~l}uqrB-n!Kft4+{STos3#*8Ys4PJ!KV|=Ds+9%rVds zyyM5w9?pSOLH7wYi3MMFX?#vjUsR=&p&o*5!eDo>zezo&YI?9p9fjW0y0pkm-Rf7c zdgtttZU@DEN=`LMQ6wifBKBbzQ4=0ceUYV^t)#ozcapbiCE$BGNBqOmauKAQk?oH+ zO!|d$YtTKzRc1+f*$n==hW8=?>3*k-z~zDpZz<6*UYqG zJ03lv^&x^?NAaCLu{!_L0ofn4uY_G7csJ|A!;6hWbF5h+C^0<=*r@#Kt(Y*w^|%OI z7Ll!A=195Cx%md|&pFy@A?dW$HJ*E(C`sbt!Z5Y%kOrcnm^w&c2Q; z+Z>3tjU4XA+K@KrxJj#B7ZXBya33FTk8XamF2Utw8EVGMcLo0ZQ%+PwCvVbLH1;is z%njjb<$B-q&)lVbiAM*dc9O{!veiy=H`7!j-3g1rjNha&CbMQM^))Bm$t}3gT_B_q9$r7_3b8VN*xF)=5 zxQ!%sRnGv3=1n=EYoN=#A>UG5%kj`Npdw{S3N@q2@P5}QK%INTKqYh_mcq0_sX?>- zj$d!?J^g9wf+z2^vif$A@3dOGzw{lM!$MI?TlZKmk6w39OUR#lU!qUa$(5cWC}>C) z-rVzBW!-a$=oH0kn2Io^vq`$xi@2^^&6}wxyYkxFRoIzloRLI=hwK^HolM1OB=*>| zK-U1p+runa{IeG(VJSPn!h#8DvUx6kI@1|-W*~6+N1**cktnR{%{i-@-ml^WM!ZEV zr{le5eqs-i{Tq+^atu>gO$#m5B;Q6)4x^envh{hVHE#HBiuHLu5~(CCQvCez?YaV6 ze2Q&VG$Qw4;>gY@qq#Lk@YSx#x1^isM{ywmM-oeA<1K^jSP?pxrF_d-uF>m^;h$;` zCV4HAl4GAca2-93Z|ifz+DBxwar)X1m38=#1lxr0UqSA)s8i7jR<+*l_*shs5h9N4IyK=KyO)-_Pm z5-JMa)m4`*@!8+9pu;&JlcQbfPR zU1D3q28hQpIM<(_@)C;S3%}MH`Am0qV<=vK3jm)qKvB2xqy1%lS~ohwmzs}F+M7>U zr5O|&|HzuGSgkuNy|FmhS6*cPHGp{Fu3LW<+fqC2MPAd(uTEL@7*D@a5mW1w`|)S_ z!ff}AZ9)E+r1W71I!1zi*nDhilt9jv$)#*Me~zjG<47kqUD3XQT;p=S=1sjjrV1LX zjqzWKqG1@fHKcayx%$47KAKvW)2cwaA<4VHbT8bOQqexI_q69hEXiZo&@9X!qkEDK zs=+_GjvN>}c&puDC zs%*>*h!(cG>+jwcvRSo}fh|=jjcM3Dt&SE5O}E5iA4>(lZfJh7TckOu-yDBZKj|hd z8n*I;mp^Y34D`R5l9D9u`3}I`s(k(VA#5XV>JKeAHT-*Zllf_DQIx(`SNizz>`G&dL}J8}jyOW7yrt`u;+< z8V|3k&iCf39cjAtW)-e4%EWKNOiE1AV5n~(eU$FPMLJyp?w?F4nE%_Uw}gkV7Tf!y>}&!x6o zfFp08%CF=+Z*!L8o~Mmt^=3r0#MVN;PPQI*kPtP^;*VVkEv2QJUQL35yBD69pnWG~ zx$`aiYW@5K^S2yrstJpt+09pl4b_~5{U|Qol*zZ_Vq8Z3YIBYubJ4X_^B<}5DD3y0 z>&~(e7d(?E!;> zc8_#dk0F09*ENZ*d zvmVd;DMT@u_KMiN&Iamx+4px3A9CsY*Q_;h3SL*cMHQ|R8foBNHI3X5I2d+(F$C#* z39)FLh&ivHq0TUk7$|kjFXk}BUYPtNhF+5J+^}-(DGsSE(J$6*?QVNBnOEa&~y zyYTzSVGoMl%uALI*}h@)!s@3|Y|Xx=<#J3HSlHz)@^@U3x|NioH z>hhN^V+u;lu$g?vgZY9M+84HUQ8C@!NVI>i5Jw|cp)E_5%T&uvoey>yN%2LsO`PH5 z*K~p^me<-6WBLpKtnW|!{NPq+Ol6sQ*ed>q1jb2uXw$p#?bW61#3q*{aX+9X^)LSg<% zD>2b)!B}sAXGLkEx@hstGwd>)L3of;&L(lu@9cLH9Do$p2-{BWm)n;E%P*+2Ucg@S z6k+gK94Kzh7dU{LCZ6QvzX8{8EwH6e|JCed#-^bIP|bvMY7r zIshvWI(*7{M6d5PMqfTZ%aufp%eUsi2uArFX7tH;XlI(LxF0qd>rmNyt*)OM<8~ou zV*0>$V!8I%6cVEBs*Tsd>JRZmkA^>H-}LwT`ne?3p*R^~BIXs=ajdclh-wY2RpYcYQi` zxo7soec1Ocl3X&Z&&5kryE%t~NvKMn-$Q%Ta>HKC#;mLDHf7q)^r!GyG&ub!Y zwYI-lf<23ClHy|w{f0bh>I3XO`Zp}54^Edx^KT5yPC6Y+Wiw}Gee)o;Dh>?mGF;O1 z@9lDyQV@(R&rU+=!m{GCyi%}J-Y$B9Z#kC#Ls3YLE7^ zRU$}mq{zelZFGt5`I`#Aj79Gg7ImiXRqYSv(FM{yoFcc-=&&6sD`5AW8yv21bB#bR z4)h4ipl3T9OiuIyloU(9*8RzihXg0b**)U5T+OlEwoM~=J->X4Zk=`<7?j1MGaUJd zT#g5MoHtP__kG_x`VkiWF#+fu&zvF$bmx&7$gzA6$6lM~aos&`7Ltoo+jS zO;N;bN9Q_HP3J*7rwp%Y)h~~$LlBE2U-V?V*jsZ93tM_#x83lwxuNC<%%T}r-;K)^ zN$ZquXV!hoU8>fy*Pj(QfgC5?EWr&9YT|H2y~J?C4<5e7`LM!3=RH{0NErL<$%HdwAb zvrn-Zgwc#0C#=F*sTtI64+Ju&MC_lm>QNDlY&(ZK!%>VU)57&lXdnP#oSpN%XK0H&!?z6F}$rbKi5fdVzNyktd5r9 z5AvS&D!*HM7IS-Sq-rtsnkewLDD~uV-BIA2IH^2Zz4#5GDEADY8=~3<4m<%6(bS$r z^<~m}_1r#Hi;>wrUELaQ4{G$HH$+Cv#9ja1%lS*5vuTkwVjcFa%J3oobcl^*wSbtk zK&6Y$BYg^|qwW!JKg6ov-$*#Dq3dM;Cgdf@G%<}a#`ysd4!Qtik(>f~NSuIE3#(W9 zTMk#p;R>X={NYfcTs$+jEjwTm;KPytX2g44Ep%^n{KtHWqrcvi&hIWKAXP>M-fD!t zY8Wl(rOkS8$aUmi)>Jli9(mH7?=92`(?6|uA9>K) zRF1KQC~x{abzU%xBZ}j>jT@j_H}QOgJs4CuIonDV0?AY_56EsfF5xajHAO7j_bl4^n0 zSYiFE$gbHTQ+|x{$of=km+f4Yq=fr|!8%KrdtN+hu3Py{rcqy!byrTDaAS*a_dV2^ zn3uXMYGr-bIQXrM+I^@)=(>Ce2Fs@tY)8}rZ{(2SI3i84FPvo}mMzbPY$08Ke!_Jm^b^SNl!r-+f+#nd^^!zv#>UNty~E5q02nu6TXiFRGOV^#Y* zz>8S3E~%aj?MP9YKab?4ib6fdR9ZIp%__6w4sxDR7)S z5s`vfw7L6Oyjsk2@#A7#qQ2`0Q)gGlx?4@$_DsqfvBKhqY3Y=%cS!wgMhp%DiS3sU zSg*v0tIhWLwpfQVs?&pppgGE7W3s>BvZQ#ft`J9PRO!ArbgU0q z)|1rp&%m3kaf|T1@HWY~aTL#|4(Aw3BG?XI-!W-KDFl(Unu`6vZ44EdE2*{E2)nAi zn<8SJwc+V5N|MYToGEr{3)*0d;cp4V#)`f)JXGS%3&ZUS%G7zgkDVdd)J`LqPTood z<&E;D3}^2U5ZZ3zDAHVChrE2vmy7~dZ|4H{KAj9`yWg6BBhv-@$ofHhf~259Tq3<| z6m!<^DE*FC4bt!V!u8H(cw6{p^t021-7^2Ko2}RS`dTZ^R9~0C86*aE$H*Z4E-gb< zGzFD?_~Pe3;qpD5b~${R12a{_*&g+WTT1&|i>*EWSOsi0Y#__ko}1d@Gh+`|6J1`Nd=s&Uklc8O*lGS3Ia8u@A}M-vVA@8klMG)#gjOS-NMazq%#lR9LQM&%J4r zZ1L3rGjAlvvFL@ypkgryS|`XLpj z`wj<+tj(uROFBnp8sDu~$(lS~Xh06`!WS_y*sVwd@kT16zS^w8s2d%Nk-!9lybv8KH{vZQ5x7BnUg=|S)M7w0V;T=@x%)ROMc zRVEHsqW5_;?(!=w>0cF&A1SMK8pll>N+0vzGY3f`lupp)s9U-FsR@GNn#>^UeScrj zz~T~rA6g!4f0SU&6pQE22s_0h+cDUF>}(B)v;4<9n;gf*CX;I5hi$eav6Pxu-SX<; zW%$%pk2GL+a9zsgJtNrcdvx*u>JG_1%I_|O8^AzsVt1F66gtr!4`W7MYe~zqAuSEz4G-`g0R(eYb<)=ozg`dnw{lt)bEVz*ok^`~UGsUK_%3L#WkAc8`c4JM~AG5(f^|^BVs#sBf-HW^(+he@VGLY({YIrp&zYMowWHU)ug_{J%u3pZEJ#ACSz0rjF8-A=-fI zz*ixRf!nj*9dOl z@T8}r%s*OzWH)c>+d!>vm2}$)vIa=z<<8@Z+XGdEMZ2pe>vF*Wi*MD&|M937Q2Mu< z;EFk6(HTYwgX{#KEknznP@3vjpl12oC3H%EyrzX6wd2q6$kk=UA$|+-h~zQ(OnGt! zuaYzz*FIhj5m5Z+LLUe>#Fwj5kiw(hg@qG8Srbu0c=eby&49_c8?6m*1x5;whzwD@qv8Eif(rEVNF>o6uaRfrBNtB0MDttP^Z*8%3Z9cx6GG=Z2mt_VjB?1XI099uof$0?V<1sG#q?vRZl+LkfQB$u)L3=3gX++RJ z5Bc4xIrSji#{3D0;+QrX;e#70A2X5Jy$UoY0_NY(Sn3lKhtuBSJoD2Z@5;CWuiyCY zTA{JN=qRd7E#bE<6{lXy?m*)5jmwN4Cf~GVw4$FDeS3T61wJ15psF9Y=>ehV^LXDa zeUN$;L+Lb@vz6X34ooF@E!{%nEg;;_AIactA#ZOH?1A*eXhZl-H~=cGK|j6%#K!)siIb2VI7<*hEd|CMlCDADhzJi>3ILun}}43fDd zWhtbQa@T2_=KACC-yrT{>{-;~W=ynh{`cV_HTGAO(Y3ged-FQcU)CC^voc#`j2`^! zMxbwK{EOfV5RBzHmi--e#Jrko)OpS=yRn&d;IXY1#W zl$s$LS)ZlhgNS*1YtZrRWf3Q+14%V3NFYh4^R-9wXFym)5`CRnuuZ%WIANl0KnhkO zCal_s3-L4AG3E0divA_-lX++icxuLF15d6}2v9_I#XEhms)Ng}$kH<#JJudR=EmCw;HDywG>`WBYCR*rKLp!N)zRL3wW_^> ze~DTu@&?1}%c7s1#=faP&Ni*C;J6nr=7!>19!4FT^*E)rC{iQ(J8B)cojy2x9H9q?lG%()kt}tNoM##>m zgc~4?E|`9H9{(OAXj@|2*H-Oxd>%vDxU=-}?BC;i-kN?2Ulw1(Z)3ZzM+dv$0Px)z z3l7hX4~hu{UrPf_Isg_MNcwFq!@g@jS&I)QBhB285`i5(K3w*zg%TUa9xa5YgJ92W zU4#;toIy+%9Vg{eQTP>X5x^U)0D1W4(yfPpW7}NJ`#(RP;z=<7Rb>4k;w&wnyiU5f z%<@pVPU)tx6kr*`B6^6=cY5Kdx8gF*pr;z*VTuN|0Fs3IM7T(wUIDm27Tzf_YCZ4( z(-cIz{lzJ23^G#j4P$O7ljlqlxS*EX*6=Y~+-KV55-x)F*Q1St{Wzi)IBA{qyH{oE zFn>j&QmTCv+PS|=i`>zc2_E22u_^_$BODnZvi#TPD(SU_Vw?xyP%-wL9tF;l5jNAR zGDcl~V-Uc-HfA0OiLBOBg1$3xEllJ#S*iWt)Q}ccmYamWnNM*-080i35*zjGFKbL+ z-K?ye62luHfR+Gr^m09cikHb_;@!Yif&tlog%$7{wZ}(ZUFm8_f|f)LiPdK|VJe}d zcfjF={M_QwQ{*z)vTe$T1T6|GNF6hDbaI3Kc5--SZ#;(sj5_h^Z zqTE7z_|pTqRz-{O@zLWW zbc$kVi}4M-%WEnLTzU1lpW0T2N z6b)Bv*LN;~XA}F`H-NvlRYx*#jl%TVq*DZSFa!2Q78yTSDnVp4M-cd}TTl?N{R$6*%600l!bs_;@4fy~z~z7;8Kk^-@Gg??czXZQ3cw^$aV9ZT zCQEJwTD*%Y2Vs zOw~ed?+AXwid#Q68{E}`S!8UN4hBb$rnqWXzLAmOC?Kse=W@(`VZgMDFH3|60fmnD z917UFE#(#$TDH5}gw55xIDaj!G9OG7z&HS$uGQ)CCMsI>13y{FZ_-vVFKMXKi&LSH zBkgKC*)FmEngn-NV&x0Iz~Jg5IEQ)gPX^mC{swCe%|?qKtEqN+hcemKz1Kc!F#^ij z5nP6y;B>2_5Wh?Lg@iS31x%AU_e#}E_4ABp7wk7?I;M1VwJ`PliP7EfK~2p-=uTvbPEm4)lZ6-my;Bsy>%S!0fI9eI zsY5*VvCkWDHd@nDVg`$Cr@bjyC|T~_Brpp91k8S$3sRL(;LJb!R085~I?<2g4I^mV z09ZmBMtQT4*%5_X5X+?jYv5%#7=I%zCY@Xbk#>@tE)Lv#URw)V6bWK(*uv^5ddmSP z!lL)+mltkGL4Je4jdnbOU{Nc4u^+ttv7r@>royPb-}?3GK_H{5YihI?s%T2mjv+Q+ z4ScV0+>oms2~m*J8T}5NEq8%{lks=QQxVokq88i7M5>jGi;#8G6K$3yWzE zv0+e9MYK`nu`aO61x)mTC?vMS-QIhSvn9#iP*AsS_A~kJBt?K-=$a^4Z>Ski_c935 zRKl5M!~ui6EW)M+4iOk_s=#mA(o%Z)29@A(ToTi(qeC#hWJy0KnDq=;cI}KUZ_p7JQ2! z4-~?~cBXeF50((zkc$%oK9|2WhsjfTb+Kon1B>JgKLW4Pk3XZ9!qPPzc_!j%V_<5H z&ToJULUz4gONpT;N$%9+hd~xW;|6(%Loi9ka`MF8h)EVG?a4Pgj&p6(Dgp&BJ6ac* zdw32dpl3GAKp^NUu%7nRbS?M+WmSqf)E{~Az9+3FdFV2?NY8|JOIaI2}lKI?S2spSxUPKErcGa=a zn`QpLFDd;4&Hr-|^8Z0&G7|vc>apuoOMiiRFk0cJUh&npiID@O z(l#AF&JvbfJ&hv{SC6L`cCb4sO+d%ShQGe-_YMG%s^J`ysg@~V4d>L$S#gNz2q?Px z@Wc$^9As1RKQFGuz0>eNNlJQ>=A7|c=Weh+x5k1b1L-K@2x<%CKCQ1~}GxlAz-EF4O_Sjw3nr;K;oq zLqtpli-@P*S>Vaa?-v%G0yGcl2VNpf{Lf>a5(eWh)GOi%#%nTaj#TR+zyZfl4_0OK z8yVPJaTB5lfZQUzjDJJ6aVzjVSy1HaWV8XCS~iKFy=^TQdmck}lTbkOH+~%kyh(xm zt?@1fTulpLUaZdMK37G~tppQu8YlC#4wg5WNLYgJo;AN06modBZluTk^snbvWN7Z6 zu)=(KfS)K@B`9VDr4PItuLi@W_(X?dFz?Ul&gU=SRs#Rr>U9dVFWtNkx*)#G&&%Ec zxTGyc*&#soi^Bqlbv95c*7EL{Uv+2vLgRDhYRJR)Mo`Y99ijxR!2=s(H53b7m~PMx z1_o1i-jDW!CDvX&e%s%`{B{H!Jfnych9wI)Uk507mWs<~$EuWWT6b>Dc0t3ZI8egg zP{csRxW%L9_+NPyUVxbF;-g)5V8-AgOZBb5Puq-v6ji=leVhUXJ@f;GtWN{p3X?v1 z(moO+?3l+qQ_&@r2jXx0R+uVJx%_0iS1?g>U>^lixSG=?8Y(qlR;yKYuGY5^?Igds zDz9}{8%WX|^urh8(Cq`RW_HU$AONk$fW9$CAHLzO*}2^e+x8+?w21RVaIXzja_DAi z0(78k5oC==z4!7`f=zyJdwF?yPbU7!pO^S9OLSHu7!8J?^cqRaI`@!(#97~+S%&q3 zf<2VBP!zf)8oU8^8^{nNsV6J<3!_PJSia?|^|l)EU#xhF7ccdYj$$8zJkk3e=&=#7 z7*;HUE?Uz*Yz#)C1nKr9%2g1Kg=~B8Hs@C^i7hiwyii%B);BKj*>_(KF^1;LDCooN zuN0uZy&&PwyLag}Rl{|#(~%1g{ch0&7HkQc88L`lc4g~db{2%FXuih+fo01}BskmN z9Co01!JqUal)e-!CBOkZfQbe^#`jOTB0&WZ`)y}#K)0~pQu#Dc7P;bcr>oH-SBOrY zDFfVFt?H_U>kG6Q*~q&SbdK!Ki^|WG1Y+;lY(9|Splf)A>llj1@IbhY^^vZBZYAI-*BBGQ5apVJITnJ%ssu3oN`YpghA1q5IW# zqVXLluTJ&}lHkN7<0->{;?5w3!Y$(4OdUsSEW)Q5W}xOaeliwBPA`OCuD~L<2s**D z2bO42OF?wH$qhdGk$-qe+&zaeTloWv8096PEA>1^CZHL+=%S}OcYyfsHlhXAzvnt! z-(Ro1cMZ6)C~0IVvIQAj>;!~Kn?(Ww-$(GcL3#xxbW^tuI`ck(NZsyoEg!)hG7Qp? z`%$+RxQESwuTNh}&YA;pz}0@A3D3FpTPEfz&vmNunp8b0VBAOwX5`BrT9%o=e7`$W zYdX#~j3o<@x2>Mw`m3d6@i}&A9aGY92SpxcyCbx}&=N1r#-s{N4uiQJYN+kIVW8#Q zUAeeVKvv-Ytc+9qJmy%H=ywo}snd@cHX9unP$UM-R88-uG$=8GsczU@T}j`ACzh(9 zRcx|@MgfjEw}`~w$(C&XsGwtbFHi8e80MkBf})YmuHB^xSyn*VI;6vB8%YZSWygDN(I z*2ZWGY{t3u8d~J;)6LL3R%!jnI%Gp~zQA*`KRy8sHAJvi2xf=Gm{h3K@}~1zKQx8eDK^);$l~#ut(FD6-i-aH80N$Oncmz%2s*zaSial z*^uqp^sl!j#5*QF;ThBPZ)@6Z)Mz)dJP!uY)P3$#$Vc15a;Puyr+#Sw{$>kNZW5Mh zPm~_5%D-jP%~n`{!fF^V^%PeD8#r}4Y{-nc`y)0dn);X&ll~gt_6?<~#sQIXA$Qb@E;nG5kdI^vo5HU^-fJh`KV>|-4KK-e?f_kHHogVeWHUP4quvs0@$ zs67RRY5j$}p%m>mF0;tY-$Y##mr}-WvP$zc`zvF0#d!B_+>HkvoOweMu*_ksO}Y+2 znW*-8SgZAlu;~jT*V)ShL1(w8FQ>p76RD&byS7J7Vcnhi&Q&dd5~J`GX^RwZNlZZC z>1QTb+)K$iriGmL{J^Pg3pvz)16*ev3@pCj?P;?B$yB#^?Z6HP;4Z&-Mucd?9i&{lKz{pCKv`Tsz>AI_ z=aSi2vZ{Q8{|K0GKnOCfO0bYy^K`c;51z#>=Q~-s zlrMa427lCqojZ7pY^3w{52tkuC7+R0LJsB9&3wCG*bmu^irYv48bUsBz-k4GHJ+D( zT|hjsc<b^5G6x^ro=D#bIzDi4b33E0|<%@mk z@YZ*F#~h>LCT|uOj}yf|!NmOFZ3<`%D#=S`{V3?LweQKwi7SeM&JcmNaDV*1_!!5m z5OOy`qQ6ohZdzXiq)!tNCSg*%O8R6uWQ0fit_ELDX3Ht|q*|;$*a#j6L+S=OE~IUW z;RP&T+gM1@O&)TRgS;|{uqU-8ety_M+EWh=;*X|{=UqA!Xv&38H%~sJmwzqw{G7rq zWoR%o{4S|H4Cg|?4vBUI;TSs&q%k)V+YL-Bh(L1Zbv`VBAeQ_-PZA>LJ3QIGzDNX* z$zJ2NH&!DZw--nIEt(^^J+G*pN>ElgUk*aqz;B>c@^!P`7glS*`h=-Gd6v=cVMY2k zSUaH%;(D&3hLiLdH>vwa0+2T{f~G8wp#Ll9_Yri$mf@dp6^#Ken6UTG3Umn(dz_-f zX8_LaAbG8BmQhs^7uQoW3p=xwO-cZA@FG72PAqWSyRu*Nb#F?Uw3bV=4|x&C$M*$I ziTkxyS`1qDE`6H8y>skVtO;cKpu9oCEF3?J7perTa9^m{C5J%LZov)_h@qtb_=RtQ z{*Sj`&MYmx`X(n|Cfoh5og3^q<>f>u_XCsnIXmqc(2~Rfts7v^@`95rY8)q{=AW;t zM1$mlcNOuW@!9=&MOC;c7$`EY=?u=io3nc29jUV;FWGMGpM;kUYIEPZI$+;9y3I`qA0P6~6<>s2&ZE8h4w3ya8Lh zdwMvqX3=j9TJKg%6NriX?z+8WRuK4VO(zN6pOUt9w+WP)PRz(BXR4jLjG=ynKcHaW z=7ku6C-hiZI41BuiZaV9n~bqkR{rdnh5!7Bm**rP-ikF{hIn3o?N$}_92p-eAaKaCq`$G4gL%$ZG}mQ%97{jW*x zCO9>N7mdLW8Iv?bFyJjMwT-TU{nUZmZ+9|MvYC7ok(-qYvApCJ4~I+)v>aZ`fRdoM z{*lWrFl~w9>$&K0z`t#4`xnNbk+k_E`}k2VYpck>8|EkOZOhvxZaqi~B%lQy8@&T* zjPgoVK#G6r*?&zd1+HI|#^q5%zB<2ZiNmnX5z{jCDLsHQZ}0+4rdA60f$;?%SI}jm5pTBW_c#FoN|On?7uF|cSxV{Yz_ZMM zWnUtA$W=0K-N8a*0wY1Q^*ee8+soiDOIKD&tC0()7`Pigx<2@mVids*d6eC_%n5|J zmdM5owb*oJ*{e@rwZs^1ID!J>rqo*4zv`Ghf3@i8S`kauphKk^W$03ZxQwl;f~#8o zz}m&roJ zBru55VdJ1jrmMwLAzL+SX~FF$3aBs6Y_f$r9}yqFu7ko7PStVQr(76cFr@A}R17F7 z9}g3!5MTI|v$LIouOx0Pz^OUW#n4gpun(N8meOLk)4ZoS>9Bn&BZi`h?0mEQhRU#-0=W8_!Z-mw9F5)mvl6Yzzui`t|j;q9o@0XLCm!;D?T!ekHC!d5!b5gR6u_(&qwO1);fx-EWkuSG<}Xi);tz+Q zz_KWhxgiVfOh%@zt%4)eV@dzS&x;vvG&HNip(}g81JB+*_7RQ`vu%gtdt8pU;>v~U zihKMnqlcVftJ~m08{Oq`4D%<^JPcdp$H{H2`!6!pUeEzx|ZzLZVd>UZt;z?`(%CO8hAz=|+THr(=P8@!wqtm5XN zNyen&Jz0iJTd-R_QdnPary#wvcSVL(+uug#NQb>;VB60rUfQq5rt8?-_0ZqMYq1!* z!_-&O6`Z_kt83RKu17YG4&wA(QRO zY#<{3bTK31WJ~go-7oC&Z#lj(ROW1+wtnI`$dK)y8x}w* zVhYO|HqX`&GooR518{^s5hks(&WKMJ`vuSoN0xZ1m_#cDD*3zGFIy9#LRoL;HLLN~ zJ3z21z+*T(g7CzM-twq*8=?e-ad@pqx_fj*~PVVmvb^gOg`+wi|r_etm z)c^cH--u7({~4bD1jYZdr2y?0^De(q!JRmwj(9fbG9~>i7zCEP+K_h05xdhagaQaE zZ!lpuO5^`P{BQf4)`=N#%N>HDY5{t-z;_Q!N)eoOw|o)duL(}&E62|mF@=SNP-RC= zy38a6^B8`vuVg@6k@)KolTOWuFO|t9m4i92bi{KWFaf^L=&&CnOSJ5c@Lz#*2>-eS zSfg_5hrn62J`GZ9%RatKeF!awkg){>#XK`zQfWUg$H?-7Wn9=D9+!sF0`IHhO zo`DS+vCA5Quy09}t_2y-@AxQ~$+wJe0~}G>+kP}M2)H)tpX|-b_eU9Q1e$WmmvIcf4?+6 zX0oVDoxk?pHZXzhaiWEg;-@Zzfdvg$$&R>!KZ&tX8U_%5XIr5mhqAGg|F6AXXQ`v0Hxw=v+MUV(Ykl^&rfgAX)mE~6qV zppQs#d-|o-*#rpUQ}{`!14C#h*bs=V4zmYGdJz5rf328_r>7V-{cC`Zspdo=h)MC^ z`V%}}R2bkA<(5g|Y)m+~(%&2J-~oSN;Jh#bgSjR{By$A49%1P7@UOqj^6PG5zvTY= zVVWws{hxkL9-QSv@SXm*%m3fKC;t5Fw~#>*R6tXM{)7uy5Y?k@eyyB+ zIslEhTf1QCe4>B(EqEoZ9q|+%S|RLf;HhmmDX6jt9~plilzPs@9}X-;t^R4SEz`|4 z66DN-5(O_5ja>B@c)0}!E=GF5RlpBv>j!Rzs_@ovqq=e6Z7K+plQ|eCwM`jpWiBPiS1s=0+`n3!aATV zbpUS-{AxW3E=u2pf*&o|V_JO6J+ji>-c?ByT(JP_mvT&?h62LeUXQ`8TMO88Z#Y#3 zFYZ9P#UDL#kr9QHEgg0Tx-K^kaR@{WoK@imzD{U!!kxsQ6LQfPtd78v^BR6m?Y9I< z2!B3doKkZF(3EubIi1zuME~S4ELLb!_naJRxd(XO!N`6Km{?Kt8Jhn-fMDv8g7Znk z&&PueHbKJh>uT9}m>1OEtZFf+X6{ldcI^qE^#yJ9a}1IW*-pe3!*O!oz)PK58GAWS zL`HhETgPY+x+n0)z#3?O;6Y+PURc>$94s7H!k=Wy_qd5I%r@7>6+!|k*gc@?x)a6T zzocZv-xriWofl}rqP3#iPC=y9Jg@Ob%@hyfDek0iMeZV=8#BNSg!7sm!Cu!M<|kJG zt&l1!1KPIXwZ+0WTnbC!b2E)~=p*UI>cgpoK$Yn}G6MslAwADObNB9~mGzPf@Sfq^ z_qL9U(SG?RJ${HE!b(l4jp?Jb0cW@^-iuT@QSh-|Dr5`&ex}Ce&NHFahaq)N(F)8e zxwlm^d(`d=cgzGo(lJa+rj{dF{1$u3qp+ak==t(11_|$&(FLy^p7w38wsGf8I01V< zu6@^gLxXp*K5&?+UnqF?Z3| z*B2Xu!zV(yK`2zOm<0B#q0v#M6!2xrid8^ZZEbB$Y$T6g+vrLv%QOH52~v6| zch?;mA_Zp5)5}9o{T-~W4a=M!Oqjd5Z9*B3KUNc^{(0dExP7Vj)y|NUH+*lLX$pNg zHZ}%)U4xZ|Mms$21{J=t0`ABB2+UVZ8hE4bz`#ILF*Eqgm5KJiik;9|d6fr|egZWa z@D?~z4pOg2kFF12FuHdS&My_e<*`D`Zy_KcPz3_vPjqMa9}Z?uAE<24w*rZ_|FL8C z2IeXAd7KQzQLlfV@wZzdB2Vy#^nrvLZk9uF=8W#)ODN;6yF$|G27ECzWNc=}H29$b zclwcRQ4{_V=;npa7{iAk<}AqxMHVr*+;^WGm?1e{t9pr?a_wVqv# zWM-l-_$8nV{kS8h>(aCfi;HTJNO9RN$xHGNM{H#3uHPDx|(b%Q> z??Ei^Pl&R^H%9jM^rQ)QiTLcHdL}}`#!K&zey**Rc8>-C2ZGE#n3(;b@1|q4pc&Lb z)}#MxS_^~=%<3;a-LD7@%XcXb?epf%TX7iJlUDNwjx@?Gl_-p{Os}W_Z9dss_BP4}cphkK zZf>rRw>v0?SIsWpyTjMPea5vbSAgRfyFTe}D=8~G_6Im#Y9?1+QsScbAGoggC8%Mx zI#2JR$26V&KcCHh`Qpg_=tF^$7l6ZsJ>h?VQ%#q3g(quo19tMQ4R=O71-_$xUM94mDkdu~<-j);D@)&q<#bjMz!3f-vbq#o8 z(`8Fwp!RTr#*b{`wqyjx#>VanvdsDcEDw4v0@rP+`Ty5h08Es}C4j3Nf_JG-vWjGx zv_`RW&e~s(y9u=YcCTZ{NKuJM|}UIK?Gw+qP|L_hr;i8(do-FMklUBHP^D9C+kQ z1#oH@xDo2kkz8i0HYsW8$F0D@CE?$4HWdZH6M0VBF7%&cG4aez;E+gZX=x3U;ljOp zZ68_8Tef{;cjm>dzyhHlKR+LsF@c*`{~2mZ?loQTSoE zpYO&br6I(~`{coU?iavSlsYHxMDGQb5Wr;!cEEFPKb2%;Xee3yGFtT!IPu%H!{>j% z{TDA@0M8Fso|S%f*4C1jmn6D`dW-w+&7JY*X1vUE;9?EW{+O4**_MeX0ykdVr>hGJ z(~G;OuD7ofm;8<+-@+2W~EVdG?vo z#K!@_|FRz3xN&2lbNi!B4}k-F>(;No58U1qBe!HRaG@ozYK#UBvWdjXY5oTei7nw? zkbE4t(Zw{W78tUhpP$dq&X$&t@F<@Xhwxy=KXcBE1s*IW6POue&7k5A4%2%Z*t%RC zm@Ne^q$)%65lhKUj!~tw41wmix3~YFY}8r*apiwbhJX2-84L_392}S#9N3to7#NHM zE-)}mXl!6(Xy9QnVPHs60QT?{m>GfBO-OPKA*Fw~#UoOGX~>`I1KyLt;OXk;vd$@? F2>^bGzp4NL