From 0e3eefaf0f4341d559d11ed523a74e335d2b7cc3 Mon Sep 17 00:00:00 2001
From: Andrew Gerrand
Date: Fri, 3 Dec 2010 06:57:30 +0900
Subject: [PATCH] doc: add Practical Go Programming to front page and docs.html
R=r
CC=golang-dev
https://golang.org/cl/3391042
---
doc/docs.html | 8 ++++++++
doc/frontpage.css | 3 +++
doc/root.html | 2 +-
doc/video-004.png | Bin 0 -> 22713 bytes
4 files changed, 12 insertions(+), 1 deletion(-)
create mode 100644 doc/video-004.png
diff --git a/doc/docs.html b/doc/docs.html
index 90e20f74e3..c74ae035f4 100644
--- a/doc/docs.html
+++ b/doc/docs.html
@@ -120,6 +120,14 @@ examples demonstrating features particular to Go. These include concurrency,
embedded types, methods on any type, and program construction using interfaces.
+
+
+This talk presents the development of a complete web application in Go.
+It looks at design, storage, concurrency, and scaling issues in detail, using
+the simple example of an URL shortening service.
+See the presentation slides.
+
+
An hour-long talk delivered by Rob Pike at Google in October 2009.
diff --git a/doc/frontpage.css b/doc/frontpage.css
index debc9aa44d..bcdca64011 100644
--- a/doc/frontpage.css
+++ b/doc/frontpage.css
@@ -77,6 +77,9 @@ span.keyword {
#content-videos .thumbnail._003 {
background: url(/doc/video-003.png);
}
+#content-videos .thumbnail._004 {
+ background: url(/doc/video-004.png);
+}
#content-videos a.video {
display: inline-block;
width: 150px;
diff --git a/doc/root.html b/doc/root.html
index 3bc781a678..f98f9c243c 100644
--- a/doc/root.html
+++ b/doc/root.html
@@ -60,7 +60,7 @@ google.setOnLoadCallback(loadFeed);
diff --git a/doc/video-004.png b/doc/video-004.png
new file mode 100644
index 0000000000000000000000000000000000000000..92144549aba4cfc9d268d886a1ba45fdaf3d1766
GIT binary patch
literal 22713
zcmV)lK%c*fP)
Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RV3<3oSDTOmptpETZ07*naRCwBi
zy?L2(#h*52RmoO7o)bieM`-Rem#TZ1*&GR6}&CKkaEVjMz2fB=;cDlVMDnFuM0
zA`k+VDl^3uaHwJklSzz2C>szlM#x6UmW*smYFUycOFgRl_3Q38-RYd)@B8-3AN%{A
zcW=LTa;vNB4fmdR?(h5d-fOMB_P)Gv^Ru-!dWqHugMp+PU{tGs0}c5>Cm@j&KnVZ@
z5RyQ%s%Bt71_Gi0f*=48iUvqhBO+RB5mTMU&FT8!D}J=pX#>TdqFwo9KZ5~YyaR!ey(vK1T#Q^77ZZ->8O$i!etUbK!^q_2B<**qsg2S&GIQx
z5P=8*G7=<6MMxkCLUsDy@BO{M@Av-pX*w;im#^LV!{7JE?wr;JB0q_25sh#l1Q4Fj
zIf9n&GH3`Sd1i;J$xf_5&ixw1(
z+v7t3EQJvf%>lOoZ4#YsM$(wyzn5VgrK+9XeYveJU%I1(0{
z`uc0HZ8pb;w-3k7=JxGd?|9d{pM2t}b*)Wm0wlAtzgP+YLo$O%0&@2{1qS5NDg>F+
z2nZA$nr}4Fn#=)5NFo4|M(dYb(Lna=++QE9$qN0rdB7x7dsapePU_Q
zu;i^M|bEiO~AZ7?kAO--203d__
zqeX}WNg5?(Xhn!*K;-a|kN*6JKKxO-5oFVay^DYeAgR1|rhE%|s(}z3XHHOxfHfch
zQGA3Dox}b8{TH73${3rE
ze)uDgKKjVXIQ_`~`6Ew#^*i4BRZl(f#M>@kzBILJbRi@})EY9tEF%T*2w1*%V1k^*
z5DFr$}&OrXJAyXBtU<#Bm&D}XEm&*2%|aKVCu)GywAw9
z$;T*w77!Gm3nC2)DM&Yp$Qut-2pOsZGMh9x^AbVwkRX6;0BJIK&?FL|NdbxGQcuVv
z2!kNP;DN}549f^7n&-D=hCmaV4_@5lWWa4$lx2v(bmR4xKKSE5{^5W5lc&dPT4s*IUN=S#PiR;c)VV3Hk((jUBB`AYp2I2PrmJ`2OoJPDpVnb
z(SojM5h6TL0Sh(500`zX)H=Dbs^n#?K@e^X08${-XqJ%zMGJrk(#gnE1O$ZW5D5fW
zL&aPXq!p4`s?0J23%w3D$TE3J`ECId!Vu(KkI4!UFf_8rP-qT=K^b@EMtVT7miG)W
zb4LRp7y+OV0v%|i$pQ@^>4{jd&7UwQQ1U{x7EW(!q)W>1bh45Lx{+DV;e&gfnxgr@
zue|W=5B)EH@ue4DJUu)yUkt-y(BNL8VQO(jEH350=2@_|SNXybA^_pgGV1pXubjFN51|JL8U{*{+Bs@7IF>%pBqc=5$*Z+CBRY^{ppIF-T2aa3z&iqJHUue|t`
zy-Np#zxeF4U-Q1NZEk8|Zi*n?QJuvI&;Zhipc+XvIRH1bKnO+;BG8-+m|H@X)^iU;
zx&)~)Qzn_f2@uU9jESJ6{w1XPKayd9cT
zhhQuXKnqzz(A*%pxy(W#z$K7DMua6%yiVdnE
z^5*H$Pk;316j8^iHJN!>F>1NA%a`uEu(vZT7p<-9AdS=R?($%H;lT$lKk>+w{pI3h
zef-MJ!^%s~y>!z=!enesMuY;C5oH)4BaFyf&t4}4gGq36DM%R6LhJ_~bcbXl;4KiC
zX(Jp;3TP3XZ`AxQBVkY&43J=?B!*OI$(Kp@1RPKxh+>p5!yF(2u$gTWPS!9ZN@h{@
zI80DFpQhweWcqY75Y7fbVMN|eLB>22m|2Sk!pxFg^c&-DKq!n>qh^enSr|L+0St7I
zblOmSm`>NvzVKq3S|llkNY>4!wpi^fg{f+~yt8}t@*{lY%EjH){;<67;_efVKD56y
zPNyg9JFg#(@BG?dfAy{J{-b~T&z9ZYho5-F-4fmbF!%XFOHkH@4$X)RtAu98yEQ=)
z^Z$x~MV`3;14K#8JPHam6Qk2bAUVo5uoC?nA+?VFs7@rJC&8Y2XCgsD&EPsi3;>Z<
z3OOPAL!aTYk_5$E*UXc(=A+NQGDiNh>X(S2NX8qAEs_Qb6d;UQqYbItFtPotF_^W&
zKo~{CIJVojk88B$?%wI0qf3`Aot&&|(_%45F>Tg6e(=;|Z+Z9I-}>m4D?0-ZR*R(p
zF^gRq
zgI%-~LC7q_8bT9b=2Fvqk|Flc0o@0oWg%*c+B#A!$}Np37v{1B_-)6z0_k8Dc2r)zIqcczOsl#kign+Vf?twOBm)
z_@m$XZNK)tZ-48--rm9P&W;l`8d{q+4$v({OSiI9R-2)1?%aI%@wY#)zw?<-KmAqj
ze8>G)9>}ZgW@esuTbKb$W>I6brup#ZYM}Yrg7{MI)_KfrLt==O-la
znOOp1P|`7qnb9Q%=4-D^jmbwOsR0y~Ny75>n@Z9|_G_oq2+dt;gr&rnXt@`JfPr*|
zB@9C^j+VED2<7J%mY#ehT3+FlwB!|nq5~c?ly|@LU3IE%ayO|RpB&!0b0->GYX=7x
z%4&CiwOFqYS4+RRzq7xy*eM*`7Qoj>}0eK;0RCEU8dDkNACWA5nw59;vM59Qid^%H<
zydCI3H1A7q?DXacgXpge6D1m=nR|3H#IL;g{9}(k?(WkR(RA&lYsE0Sn;Gcqlg)8G
z94;SBn{l<;8(5-o9OF};`^A6#(VzXwwd;3o-MqZF|KwY)e$CsTdicJ}JImFJFMs8e
zpZ(k~KmWqb=KwNV%$>Q^LCGRjGs|2(Uvm@~)WU&iq=#CUAp<_+b2IBSq_M!k
zMyR)q@Y${0Vvf>g_^&|uIiGc<$yeSsL
zFbpmf0}VVpItB+=RmjaHt=H>YH`?1CeROwsX~VE-`p8dxCP$cM2ZCm(4enN3
z&AU6l>1@M!QwWl>*Q1oAVM+S~U5QC}-!E`Rnt>pTTSPB~?hZt2f@S&yk?kCS!A6U`
zM{uV?gtx{z5rkJC(sDB^Kte7;&2qgK1)1U~#!003qc>`xi
zoryPvcVnvvgPaYZQ*}a!9BLa=-8$K9r=n*@mFu(xpej6{Y&>ZO^adq`r#=&o_X&1
zC!Tmb#e1X6NSa_mg`6QL&?W~k%i19rEz~;nfI~n_Qd|ipV?q;&Kr<4`uBK8pBTYmN
zW%Dq*MXilp7jBX5;s9I!av(%wo8)GyV(P84NCtqdUlQfxCh2BoL=S43xpgqzX|#E@n>TN6He>QDNL~zdAP^x5Xp%CS_Kq4m=$oHjr$3!+%s9`P
zXrmhjLTV9nc)Gy^OWdbu&@8|RQ3H47WC3A92mUGH7-t0)h)Cqo+hX9{D?!QL-wbm)
z>=J^co1;_w`A~XJP{iCZ>)#u<&<9(&$!9K1N(#uyuIG`_oArqUwh$`0wk}-QUo4Ml
z&4#kGvpPCCs*3wBUiyajzjxZ4{_-!qL@)4RG4TEet^n=+%X?S$cAk3TvFop1+uvEe
z^Q+%>?d6w0^2yIW_Q(UfJFES@)&BiguUvUx@51G1Qx+sAP#a}ZN1IAjW(I8P;-Kbs
z1UeWoJ45)h^FRP5k4_Tu7f2o;=x+N#TNKzk25oMw=S%ah)IiS4-FzsZI{Qc!D1T81
zxVc(%8pKTP{cC%q(i-Bf(q!fkQlsgr{F$nsGA^Z%xpnQEi2>L}zxmWS!?5k!G_%F9
zSS^nH8bt($uX7l{H*B#e#@%{z8Bb0H-u
z_BWKp2WVRZ3$sNXqy?-nGaM*21nE+9V<>yL*-y)eW<+%5D`O1ZyU_t)@+~2iwS*W(
z*6j^Y&`P?J7~y6iKrG48vzs`lJYzRbAhNh23S4NUV;hx88I2AqvYXr?ji4Tw>M_Rj
zr)(8GOIe?DekEapS#bq0EEn&7$J>A5^Iv{o@6!9;|DMgXdG^{Xuiv`!=)(^@@s_I>
zmP3r2>BLuy<)imqx^w$xA+%f!tD#^zSPW<=Hav9o;jjIwx8GhL@7cH-_|_*M)x`$^
zBLtWjbXr!yxlx%ukXekkv+7!>W!rF=;aTU9bTfuL@kfe0%05r;0YT9evNA->6pajS
zVJ!=+;Vh{`&sFMa+qzx>7J
zz*?s|aI-!w?mNq!<#Ks>u^3N}A|@zaf9zkm7i!Tw2=
zD8d{nW<)a}P=V6@cnWxGPYo!&`$=Ta=&lzcOO6#&nl$=3gc9*P)I5a{k${VhZfJ4W
z_s5QV@^Szzbv4G^5hR#Rs31e?R3~GeQX{feS+bDjMbzAi?hFnH>v9aBCZ)_zyIZ}s
zYUj*;c(<(m>L2+YBXg@ULS|OnfuO;R`v?1b%f-QB@$M&|c<8YQ>$G{tQ%`>4)1TUm
zo4Qz>tT*n%g$rExB7o&`XIj@=H*ep#eq(WP@&EbB4?XhOqqh!kUjNFq2QIBxrD=V1
z>+mwoOtpjSQat*Tm--VzC8(Cor*v(>%>cCYs6mEkvJQUIFJ<%h)7u-tSqN8jrmh6*
z?wO|8>3N=VSG=K=isqw|&NNU`eo29RtIlM#L;;wc45qO_VlW&uFbtvAnkBB8tJgOE
zvMDih`7Dz>Q`cm(0%vo-u%hNm6_!9iaxaLm?8GLYX>s}Dr7QOxynOu?FUwb6c=6E(
zE|=xOoufPBIBnXrz#zkVvnH^!voKqXCptP=FZT{!{K`x3eeZj2o*W;YjK|~pExT95
zQdP?=LliP?14g4$nzDdM{f_7DLZq^>1)fO~`XldmR|<6>X3|6^lE}X#oe@HywLtL%
z96sl`d@`m_DazInNr3Py8ia45PC*gW&|tF$z`0)`WSiSWqdokj&91eC_(x%m#ntPvI?MW6KzPrl(jMKPrGX+$&_TJ%=NY$VJw>VSi-
z8^IKGS45=z(_s%K7@a1ym;oRodIPAWzO{Y)(V?t5uAbd-iB-=$^0~;~1+M)Vqazmq
z;V7IDInH_*6INwGgoHpeLC&Bs6qL>B!CgPG-~1a~<1o-Ndx7DDiciqd
zIF67PPG+Z2E9JpQpMb~p+qYK62QS}$`{-624b8dOJpfDCsNSgtjp6+@le2egih||=
zNCv~QmmU@TlHaRjR4D*k2SPp;jM>^=98h6^q_OcP8?y{Ha}7FBnZn3ai(KB
z0D*31P3Lms+#l(Bzk(*Rk%TG{Y$Muq<)H`v{y+M^A9>4z-}?S{w|crWEY^!g$QIVz
zU~Y?{6(hM0#KQOXc5c4@>ZgAG7XvuFb8~-h0UM6SjmlzJtW5bn(}YPQoxQ(akZxfn
z;hOD9-FH-@5gq}V!r(AO!q;L3LxYzTr~?K!z*;`;s3b(6r87eo7h^yfUPO9$LGx{X
zmP9xVEmYi_p}Tunq!t0VtA)b@mi?gZynzXchohnE2)&`Th15M>J)kYN)z-2%=ge96
z%Y^Qj`|gj_zvCOf?%TfU>lVvZ+1Zg{
zSPWLmgdo~Lv!QGb$6GgUKKt_LZ(O^6^Tr*z*J(UzqpyaY41sbc$C(g7i8)ZRkfrD4T%Y|eu#EYuI49B|=wR!|!>xLh
z{qFp&!DAM3if<1)j3lh7Ya`$EE#LAppZb;C*Ixbc5B=2T`|p46d)`hn9~R?;<=zU0
zAlFlj+5~j<>H|+a{LtyGJFi~9d31Cf)B5#WuWw>AwP;b7yStOpfUbaL4m5D?0c2Jn
zgr?3DyZJeq!&-KFMTR#_{k@B%!#k%CEMXBqFR5UmHF+A_$rf;?M3RXdts8edJHf39
z)&L_}9FS^68lObDd1!VUE4vqs&h8}V83N~hG->OLusIw-n9YVI2OVXsl_&)%ew+86
zr8(SZI0|H)xLXcmZVzYKjR<;DNg5GR4bE2I`Bh*2JAT*iymIv_%4+vuH$28Vfxe#V
zdOeL(9b21P9qZV@lW95`r=xMae)GnS!`Dxy(<$1z#_4+0usiG>hy~6N-OSy|p_Gz6
z-Wh8u`|k&~QfYNDDC_xf*)=(ajB>V`WWI%shfIecji;zm;Lw*((bJqE6%SdL6=gb2_cZ
zHdUZ1Fiu);;$%}*h6`6N?_W6JV7r(0*KMk@D-XR@wrWfq%2&x$ZPyr%Bh-eKkp-@f{C}@_WQQaxn%(5j>HCNxf6kQy4pw${F-pt%Z
zt+8KwA-q38JJX0yVbD#poRj^I*aDg4i-bAMU_#5l>S`F$^qrV9*-HMo&q&qIoE+bP
zMTu?Sdpm>Bweqeewr+zo439tYRp0dOziwD9c6WAGLn(t#<8*j@w23xq+DxZ4Firsu
zw8hle#J&9s2bV5ixOi!*jkd7m#Ydia+Y|;xQS+@d?@;R=<{TAK@2qUg7-rc!QjnjM
zR%t9|o-`vx(=N3_<~Dc!0Yb*w)LMggK9((CMzc0qm(6X~MxwR!sX$F^iU=Uo8U)lx
zZ-}8!YNCNCWkwbaFn@CbVBAuU9ChEpW>m>(t*B>*lae=
zKH4yF4F0Eo=zAZ(a@p)?Z*Olw-aMIZAKe<;c;R4gvG8%KO(@G17t5fPGSJ6*c(~rg
zdR;doFJ8I4y6=HWuqY{3&0|;^%3`WSAkK7n)s3L7Wv82nkda%DrWqshO-zZ4;mw=V@yRQ%
z9opW-Z~FERv>bcrz&Y<3tvf6$Fas)4L{l>>X_PWB0@fk9HIa}Lvl-BVm}*V?y?e>&
zRU(??4Q6O9+>2}OA)~cQcULqTBE*2fB0>g4hi8DD<=YvmYN?_m|x-p;`j485FLt%ed-2m!TTTDmCN5^-L#*@?2)AjD^!f*L4
z|AFltOf`To3DIJ19YmnGPkDjFn*G8w#+;ed^sd{m4?V%ts~>^1`30SXyJxQ>y{48d
zxoa2*wAqz!-F0mp$t!J)QJrX#IRUmHiqH^AHTo3iJTEp|;~i{LnX{bT^YqU;f3~gq
zvnR(nus!wZ&rCU9Dby_4VW9J57pcr<>Ew@#(l(Z^n}r_AS5u+xISC-c*5>nzh_bt)*z4
zQ}RMYByf!G41q$VVQQ&-$KC3~a5Ecrz*f!XW9)d$QC(^Ueo#zXf&S%B^Z98*#+iV$c)}!E=>}qET
z{+XVIR7LZyo#u!eox|Sgx_0sncc{hW-04U%c{Qmmb1|CbkVSulG`PAOm&QoX3(|Zw%d6Sf
zXJ1M%324ndN3o;Jib6o{MyN{Wh%`Z1@?P>!$N&H!07*naR89dFEzEO53X&pv5e3j7
zi>}e6luBA_%}Z%f=NT*Hj8!(M%bCaOXCh4J&l2|>kDae`JRiF_AHi?!~AJ~Fy
zU=vhIdXZ
zH(!0_m0LG%)Xk}i@9gix!JI-5gb~fiLQ9PUi$ys-U7LB^I%LV#`=RMA?2&+=7w;}-
z77493IQu|p;>i|fZ0zk-<*Cg6)cO1p!AFDvW)>0K`D{Tl7^q^ZO^Vk4!uzbCfsv;p
zm;&9ebob=W7B)YhBzgY8-jH?eeA(N6Njd-9dtZli7>sboPBfG6bGY={?fO$c|0|!r
zcJk`F-8x=>@x|93y!zz+g-gRQOl_oMFzlG^xUa}XaYrmm*)7A;xu6Ze%6)%#wOlTm
z(h)@>DFIUO7y4NDlj3KtZ{{nDJCm;~rBav#T&7MsJteAw*WL-rL(jX6*
zfk=-(oeXz}H7~PK(V9WlO;eFgM?)pEc*AKC&1Qkx=WPvnn&s|V8MHGGH_iu+-@`QC
zP&m&rjqP#P`4shLvDp6|BU`Yc1a~%m@XGD@_y>RX<_PRw-qZ;5pZSH)J^9F^-}s)V
zZryshqSd-t)MAJd^<=Yd(`aO>(32>RktN(^E+Bf*rHJ~u^N<}VFjeQP
z?2MNhgL{Xucm1`^7hlD3Ew@gKuZoe2<#Jq)hq3&-KlY(V9)04W`yXB(-@rgZHr1F~
zI~~XMN!eM3bnEc;jqBGB@7x~XUT|`JJgra5>SC>xW>Et`w8*(*qUE5#V5O->+D&L3
z_VmVK_BvhBG$RuaO!d%h32?nxFUxMAM(=(n5SsER98|QX2B5(pG$W+iHpL52ftaQV
zWeF}VT1dI{sKFI|MM{fs_sYnnONKBjEvdcb{uQ$sBJ%u02hP!aoDV*p!Ioz$pU%gn
z-4nRm4BUVS_;Tk$*y1ZU#!o+Y`{SQ~@em6vcH!>B%8ZM_R?A^hI|YC6Z~dLGynede
ze*hX)gVd>nKp~7~Ijw_W
z4*ShJs3Q7^Yd=Q?A#-NYR-Y162p9^?Qc+ITOj~Z<8-dnZ71-1&&=82);8YmYM_))O
z*V*LS1(2QtwUT5AkvSvW=bx1G+YDKVJeU2-9ECiiznpi7zA?7^R{@_m&q>ZXX#oOz
zr;5MwH~!9_|MNfe?3b_AFqK7vHgz+qviMj}sg}){<#M%H?wyS7+TrP+`Aa|a@y|R{
zhy7}0v9q_cw>u1Wbm!LL?b|1Z$H#Y$2P-rNaI`*Nma>TW8$a|{zVyY7xR>)PD)4`}Y!W?3_;ed)IPF23gkne~=mW`>-O@cF3DN@8!ooHJeNsE6k}51iGwEqS+lU?pQUKo^yg)_CC?w49AX%W!*!qd3$#ayBw=oA>vMQe|1$}0)2$>HR%f)(ll_!XDoGrBepZP;N53yR&p$xu$Tq5H>L1rRcxNuul*iDr=3Tq
zZxHIbKzifk)}Q;Ie&CsBU%GJdGC+gnhQZvK(dsmmGBpX|R*HL#ilA9B5QvGfySGzY
z-JIyfn@9iqkNlI%2fOch>amMEdz)!e)Jq30EKjT5S;xfX*eX~6cTm&x!5{na&prK_
z@A(hEXZPUJRF!*^vNPeFzX8>G3qqO+``uUX$}?sIN*YQrcOlT*SIW=HT@$(dWZvqN
zX83vXecmLKPWD7q8CbpM@vc{cW=%1(|9N5?U67@8Yc7O3A7^jCnRdp`#52n3cI(?&
zK_|{gteuv;@Y)N1>QDWJ@CagYBf#M&D*yQPmb1-(-%vp(QHt(QWh=R&feZ{_)XvS
z?)ScL=V14b{kMPa#piBRAsCQD)(E3V^rdGaX`W3bLnxx9LP`Lb!n%_^%{6TO;ge>L
z=-D!1Q5MhCF}mVsxiZt|eXW&+5kjw>g=**~Lz?;t)-}~)i%}^k=qa$eNRrP0MazL+^8BTgBe2@7P}{>Cr>=_Ris-AKs50&^EVXPu0Yn49vXzLnEZ)q>2<)pi!6weXxgkprM=A0tES
zR!A5khi`kc-c4$v4>_}BXj`*<&dU_%YEjBP4Ft|{$usaoZ$>cgZ4mN&f$R|J@BD)w
zed*e*ve?gN&J+#l8f#U8l|m^ZmdgS|-+f8|tdg0NWgZ1lNX9`zC<<8nwDC~TxZ}|p
zSrnr|G8Cehzf8|eq>2v?|pMS`QUBILkQ7a@)%}!Kmbs!5DY~rq@=n6lN*gR51>JvqG!L$a!%gUfT0kb
zxlFsjbEzMc-Dxq8^&Y8==i_OsnQd8oIUjj(9-78B@&3d|{?+ZH(QMJWVIV!3Y2-%=
zRc?NKd^)vebimi+CeKw73-^9^`tfJ)#h^lZjfh;DnT;dPhW6aOJ?k!g3djb9O=^o}
zq3L*iJhpL)>cvgG8mwxG&oQqI%M2m5nPMtv?0)=HMmXnid7?#7pBX!F#krI`_hUu0kfMgf)y^)2
zI<~{3V-(-C2@V!iOhGhx-*QnM&7A{T2sc)=a3oU@=EC6b)
z2&GD82IP_&b3(Z;Ie&*_m;G?y$GFW7dqdpw_k0b_a}e)r#EA_PDhOb
zL*(~3_ogKfZK@%e4>xY!IvFQ5bGqBGvwP42^EwS^yBZCWs%6q4=6R1W^HR#-L-qx0
z>jQjY)-_@{=|(nH0?XyH)_StuOsZ`fuUtMzP$LUMbFG?xE=3o!qwholTE>JKoBEQa
zoCxVKHhnY!DlPFso;9s+`iOu6QCse)pR-oEHJ+0>l&QYdF87T_Z}Vw3%z)~Pxr?(u`0l~Z
zbkAJvA~;HaYh9}82K?C_*MrKL){V4gHJK&n*(#ZDh{&x@R?gEw&5+gaIqY*EH*Vaa
z28u+PYOAX5UR#Sc<&cidy$oZ`A9Z5IeX4c;;Naxw_+am#&HLu^XLcA(QHhF(Y@()-
zrS-xb?obPQyC*FdSmu%j=QxfR@4LJiHw4yoYMafa3%g`ZlxUI7)IMiz
zHshrJV{>2xBdL%2CTfd=~Waq6)y2pZMZUj3(W<>HX^7D_^d^~EI7
zgir&NbKEm~me7CRP{%hBFa<(U^QdxQk7zW2LFLGIwj1yALcQ5}@ET4MtOcvo8mL
zPyE8C%~rXBBh=_XYfXZ=TWL`THv`%A{7|W1Rq7ES5o2=;ZkH
zTfg-?zVG|~o8S6fzpdEvKmI+x|M&c!Kd`gfAIf53tH1X*|KhLt`d?FP0Oft}|HiL=
z$GaZ7`p_efK7Qfy16Ln;{5!tmJ83=?zjEJwEt<2Gvdk^gLmApM)mo!fqkOQ%Ac~OD
z`;c8O+l^MiiB_%C%%FwPqE%^1ld$fRQqe4_>Rdu|yseLZ=K-T{pvx)!fNCh*u-!Kg
z6c}k}3K&6%9@*LHb6{zhJlFp_3rEiaPM)z%yy?dqqwx9Xu4UoKO;Q$3lIr9M1veW;
zb%0HU?n9Ycb9aQsv0XU0sDOKCLMJCD?|RpJ{<}Z=2Y&YBpZw4N;J^2sANas(xp)2g
zjo%zxNN0n|6A<{{HX(ul~sQ|JS!}9e=|&f7>7a
zzVHA2|H&Wx&;HOK`i;Nw14k$8Z~u-DeDgQ|I%nBkE>BKR@{ZPNqS~;S9T80ytuKXX
zK?}7>QTwuABIsg)7jbAZ*dPw65$8_`dAweKoi;!pqZnaKG98kSB4P|Jp
zwy3+y)wmg3YfW)*;b59-Z8ap)T8s61eDd)ppMT-#Cx7y%8nDEbTS;{W>5fBdPZ
zKli0CKfhS6-ty?9pZnY|U%h&@xVNY+RHrHlt?jHV4fVa5+M1x=Zm`*~k}8$Nu2AQi
z5XzWO-^|n8B$?ns*{+V13Q%YzNd*8ap6m3LE2UEV32w*zduB&8qV}zo$&v~sq1ruo
z@(t4zym#F2|APzW$B5~**KWcJd`NVzfZGt!TAKjv?Cu^PA9?YZ8loX`T?-eB#cH`c
zJiJqUFtXNm`_9qDgNq;e*-z~4?f>u(|4j#e@l&7uO~3gAf98Mulb`(L&krkGE|>q}
zC;s`je)Bi|```Ur-~axvTTh#tw_bbn;VV}zT`;rDmoLBk^6RI^Cl5aK$c-Df7XNQ$
zXZGXCb=~)~+*?(@t(Tdel^l*pibIpyVoH{1tv0N9K_Vdr68I@WkT)X;;sgO=#983L
z@I(HCJj8K?BnpDW2n+;)k;JhqiPT0)6iJc8**KhDruXh&|CXw{_nec5d#k6LLz#3v
z=!FCXcKzxu=X}rSQ!KnR%;!~{$wV6W`$>NKBBTl72i2L3
zQ3kYR;5z;%s^A=$N%FA87(2#R4!c=5wr`N35@HEAo!ek41|;siCd!UiOFg}=(ofGD
zo_aRcH=>!(CZc4(0ByuMmoLnSMcJ=slgjy~8LPyqs;9~)Rx&xWHVaA*b^Lr#_g
z{qFDnZm%l7_xo${1XD>vEQ5YzgT9B$L#01ef=jTzCEvgDw5AE>qa5P$E
z?+I}_nNBVhCFK}=(G&yWCkuxO=v!Dq-mwj%Yylcn)0940qis;W^BhUP(-v2%x%XU*$!1hx!-GOoY&Z9Ct)c9X^4=@KxQJ6m?#baiJK4*u&tYh
zU2KD6=g3d$Sut4f-UR_wAWo}G1Tbd^GJovs;#dCa=Rf+)hZf47^K>{q+}Yl_e&gPa
z_3c-0uC8xx?rrbS>RBVPsH)2sE)54GLI43y1XxFJuihmxAeh&4GxNS93rZ*o_Rg9%
z5N3eC0XPH%QB(mkEy)=OqI7dJW|s7~Io=BhlCI#6IY#TG1e}^rfNUn+bs!@8G|mqq
zdCoZTr8z@(6U|342YdijRXfgt9LJyFq1y$Vp8B+IQl8)UE4*{-PUU-IhNPe>rXZSw
zcB(+Au_fn;v27v)w)5!>px5gyEiKRLnTRy=xkN{v8B=#3Ie|1~_L0Xg{*5pE{K}|;
z$&tor4hAt6!@>DaeDn*S8vJB!>+k-9-<`TJaDRVP^_#X`7!H_xRwTxlkmMRQ
z)D3e2g)11UiH3Pq7L)c}fpksL3W-8a0r(jCl-R5}Wk{5`Ovc%MorIG{hN1?MFr_Qf
z)O3!HyIfFBi=^gQFkqU^Kp}Q4rrpr!@yvDFVvp;prw%f9de%@+=eXbJY3y)s=b#w&
z5dedQ7@VUR0-~5`z~DWL7@4UEq1A02LSz@8xc1bnZjL77!Ej-;Ftkh?1BimoJceO`
zKlkyEeDdihKK9gOC?QJg3J&wx{?7K+{T=7}E011%?MFX6IyyAhgSH867!C%^RI+2|
zDboWPP)rTkLJZUCv>FUTj8OCl9e}7v;RN9r=WB|9>HvX2(;PeoK}?(scT8bT6t?U&
z)^1l+MN3G5ggOvN^tCP)&RH-)pplUb2x5Rd8!QQ5qh_W;l$bt}(KsEi&7EknpUi*4
zd+m!K==ssBKN0W<F1w6KkSVv=gA6JlncwiG@ng>^7@-MufH{@1`7*kL$Ubg
z%{yn#oe#!m$Sp6QSz2DIszKW}+Bu_$AR1T%b+EU$mmHu`W952kM4(LU3m^~xZ^z~`
z6GV0?k{@RXl>3O>;Xpd=QRW7v+c*MA(psOA4ys`np3SCN1;y;g%)JUCG))c$Fv*Bh2a6@qx*3o(cYfW@fZ83Kb@)RtNpA08z3Ootv*
zQUnwx?>M$0M{!fElM<%D#G+`5q9>S4SFt8Uhy+-ug_C(}jV&T~&J{&422Nw72H=3x
zrb+f-@Hw@n2oQ)AC`}_XB8Vvo;jw+sC0qiW06@WsK|?yd9e$uoy@SCcmsbAI|M=rC
z{QT#yJ^5@9S=-niPp82!1&9nlHE4#hD_RI`D-xC$7W(}%71e-&h)@ZQ+gala``o8K
z3EEB$5BmL!-~7fmUwi$>oA)onvkR!0*;V_;RsQq1Llr@4#<@MWi=oZK}MA%d^2Lqp0@<#FgqU9#uN3IhwlvX
zK~AB^#kHHSzxH>2t|aaOgP3TP5TmKoP0hrk
z;Q}B5Ss1408JP1f2Guss>e-g-R@ndm7&A#kK~!uyXT;IKZ*8rGo(=}X(6$#ZU%v9#
zV{cu*{^AQS%%}6q7auvZd~S7Tysq{F3Gfh+(-z8!$&@kphR}&_4bl>wB_-(e
zco#I~6m(8!qa>k4GSmFwV!9D3cKRp=fLwG<|B)HU1rH5`K770QfN#-%^{c;D&cZ_F
zD-vcu>h&J^)X#qD=RW6SOGZ6i&J=)fy5G>qLag?e5;v4
z*S<554&bV2kSQoBMhpVR3TzgVfh8AA4IzDDX~jMu
zYybxbV+91nvKlNc_85_!Pctjz^^q%&)ziI=ucuHU$G`zCoF^ai{8doysm
z^SUM%H3ep!Md*fIlAG1lvvFDWbAA{=qJ~yZm>Sb%BQ|hFtMEx(v&wNsv!`eiUC@xrvN1{ltV|Ih`GbpYLdYs766Ktrpn1UIr%s@
ziTS}`lPCZx61w-|-C1```pv)h
z$A9vt-}>Ims219KIvEeDMF3n}TqIvX=Z`rSb*b58K70Gl9oJ447Khibzxn3tukY^e
z4~PA;D=VHNSaT3~8l;tAU=EBz)`cX5vw}HC2oR&X!muOjN(>5U$T?(1CZP=`-a9f!
z9IDDsf+1)k%WIw;)D#=c*a_8yyD(Ew6q0o7&0g|n;CWM$;
z_jarTNlMbr4?-P#$~qHaLL9$q@>owCLG1$;MNd8lM~4JK+8IcT7C>4;Aq%K;n;wib
zeEBnfbfLd>oVganjpLYz)^*Vpfj7Dho~|KPA!Rp-yG
zJo?y&&Rw`L94+|%utknwDv=x^V%s(ejhigHpfPvPrB;#S^Sy*%+0d&dGYI>a&bVuj
zomuDuBUlW*s&s&6Y1}EX%M%QWfsruziXo5At7fB!F#@rI1B{){D%HhQlAk2W$Pp}|
zn?NC@85xm@4ITvhlkPaNUeQFQ8^=H(VxOAo?!6{p^fXXg{xSMLlRG^vCbbQX?wMQ@CzICr)?}~CTSRf)uF(E*gCM=`Wq1EZQgx11*<@^ewyL$EN
zn@2~4xUeuZbVP*Ur)`KpopKHnbl6N0fYGT$hvpfZrq$RG7^9h}nR#-cv0uoSKKI-g
zKlQPnedejf!RU|v=l}k{-+B4%Eoo*gBC1%9eEi5r9Yp07A~;U!nBfFhD+rbm+`u
z%Y3GmBWUuHKr;7gwmTyx0}Y8Ga{duhQk`e3b+-J95_g(yL;!LRy#jscXhVOQkFag)
zc_m_PZ646|2pKeJXjGbJ-Zn=E^}*iW=K9{o`s8RbSUT4m46DI_nJ`_t0b&%980u+=
zwWnrOl`0Y>3>St)RhGTdJQ|vs8q%b0$43(|)TrtH&W^w={dx@q(rFSD#G3gG2LJ|5
z)2d30@TreI`}_a$A3yWhMX9IF^k}*}9)djov7gy{;rd(m_RTF~BI2deZi0=b$!s%V
z%QL;{Qkj<8>>kVdqx5c$qr}){X4EnP`o^n;>@7HzQtBNwXt)Kzng{w7js?GX-ly)3j}ChW)CNz_X(<75#aX)t$qsh-jV`P8uK47$X9q
znyQ*7LIz}QW9y>_GqWfm{Pkb`rGN7;e*5yMn2z_}zH?)5`{3TacW&Ljv2fx16OUi|
z?wdb0T*%^IN%9yWG&5x+HI+OGqxq}}YC_})a&M1Pgg%$js59yyiW*aDCnaPwKWHYT
zr9CMG)RG4`-ONQ(7L4*1X+{7<>fVc2h^K=Wboxd9g{x?L6z4MoKwxbfD4ezutqIXu
zjcps|^U3&Vytci4Z}UD@=a3l{W7J-s5TUIPvEDmd!ACxR<*7%`Gio!N@9!Q80yrk5
z(icQ5q-|^UWVSPw&GEbjXKF-*kl^<`X{Sh;J%DH;O37O)5Mn?y@~)ZB{`TMe^>h95
z=8fwb+m&;dpSt$+XX$e}+jT=FXp8nY2d0VnDu9!)VqTu5BG`&!jO{Fp=bZ6aW$lA+&|#
zj4e0R5Hw@ltqs8u^cX++(PzTpIJE8KPd?=q7a_DVn+wP!+O%%Cu)p=IU-;Vp`tin5
zQom{*%(Sj$uBjfHMtI3A)4J1qpeY$yrgd8-*;31HRHq3HfZjVN3H<(HV?=9`}uQFPOm1s}Z4H&Zbqs8IHix-$&
z$y^XI;&3ov7;NutUwQo6qnEA(;Khsa`i)zgyLb0@cPG=>sNC7OzcU^SU>16JyP%0g
zFo`jQ;MkdoQ&cbzb;PYi0G2kKUp}*ZcKP);-nzf~_R+!NXt=PwyZ4>%e(UPBDNR}T-4%=)T`MhuM3i74cjV6J!(VJDGr*fC_yfVnWR4ku;E45slI{fp#s
zK}Qu_YE3}45RoR}2sRv4rX*><9#e?p4((@!+7{`ln*
zu;Kzqg9`X!SoYecCC`OfXxcUg0Pw)2$kM_H49=WAJ6c+HzVPUsVV!S9sc2L)QcC-n
zT0Cw7s1bpvl7S$h>x7dXixxV~dA6|tCKIf7v_`#-rCyT*&q9=uS`dEdw4Wm-Pn5T_MJOxtF2fUMz;=Z
z&Djl}QV9t^p4dAIszKB76j+QU+H5vo>{kZy;Ba?$WA$6#`}WgMKfSovD_r57TUEc?0we-bB0z8khNOwWjEJJpNhu9bvaSu#m{9;oK*?nJVB_h$8Vp>~SERB(
z@Kw?Gg$gvW>GwuWXwWl)D~r+$A~G=tQ4P{IO$@P_H+5YX&I@t~dRQM$+xYrh*I)Sl
z5ANPut%EUVB@`w@01%^Rc0?TVj^i?2BAJ(uQFTOY3`Xl~TL*{Z&wu8*;X;2lnXKNu
z^XQ{jLa5DJXV%QZcV1n8;g!{3KuDAV6##0{W9FwP4GE@vl7f;75GQ&Xnuv0?t7@9J
zO2$)m;4^Y5G6_7)wuf#Pu~3Wr<_ht(bV4a
z8TALd8=K=0dqs)NZHR-Vr8YzY@<{Ams2edTdJV`ge9XsJ!W
zNMdj}nSA?&7oYpYvzPhe(RezUHG|>eiuBczZ_yIL-7X$d-0jbA2#~
zgbE0hcnxTsQdhfar?hjW$%oVy)@&Q6?!vG7z{-P0os$Fr!I)8`%XsHj37|7hb8!HM
z=1!kh^aR7?Btzk(wn9#eMIPMu6|9M^#-=Dq0EygWR!3C>o=ocDaHugmPBCg*H{#QD
zP@GJs(TMlj>HZBv#t{Rz!dK*z*_VIfTSHr8JJ{tur1@ROjre{j&u=b@brN`|_9?Z(#X
zZXMkM#L$&FDGTdWI^|+l03iiMA_dEEHAq(E&d;1e-(I1SQ3Q!aSp;AwBoLZ0}22M&)=Kxe?<3cqIoR9j_x-)K`@>Q7+{d2<
zh1JzvCRjPYJRH#W=H8!u^VP|$uMiE$%*e=yB(y<-_mxWlYjVkO*9qNn6XXG8;@DXC
zUQga2`-6qeHY_in32mc>s;a8Y)P}Yd3{g{*C@tenUAHQ}EQ+cyFjCvy**U7)@oc`j
zv3c|Ez4gtVDByclNu
z1V{?#M6O*ux3+fW#aGsty@CQ4DO2Wrh3o*yX@cbDn0zv4JYE~JFNKqA_-T)*7
zq*!_1#PlP=>9j_4b(q~kIQz#HQ(-Y)G?hOF!{Dmh3
zxd}}{4v9lBRju2)na`qXhyY+^S)`SzsLI$jhli8Nyx!c|*;w0L-`T#ueQ-FLM*#E%
z`ogEtY3G1^S@jfwh`jR-J$dhaf$WG##6a6r8i`;4N-=5y7Ld4L3_{4v%+$86K@>1V
zSl?XVKe&iylX@%e@67imJ1E
z-ZX97v_|N>GsPgH##?)11Ff6(a5CRI*t@s3zPY>p)@0~BovO?z^d1R)d
z>X#)m5_v>K_NDilTKp8z$~1DoYN8<;rWr6KBIB4U)KSsYF}DywU~+Wy-50|iA@WL7}O%;=bjIfX13DJa}q-)YqW0y1}qZl!$L0YGphMka}~BpMhg
zCY@-?gdi!P*oi7oc5i+r70z@WFxa2aJd{Yz5vdw-
z0V3%%KuC1M_OY=+wl_lIk4+1ugy5FsUp_6*ztW1VBIn
zsXTUk9g&k)N$(cE^eeyo-~Z#++q&7>-d{jlhLSoD7!xE&B|dTON@(XM
zQL$6In;4L)b+I(aq6x{@J?3OI1S69NZ!A@4I;DBOiX?tFX04IH-Hii9m&njyrhvc%
zxn6^WK*h-4Ox
z2sK+DvQikyK%&Gn{jMnxZFwWZ&H>uxol$^@y)S#wMrc(d#XM52B;XAhQ^Q;{hb#ZY
z3Dg7_u08$4bUKYH617WBSSC)Uni_y=OhV@rzD{$4kV|L^01|VAUyxXnssPa-Tn
zNzI7q`t`NRG(h1<6_AoJ!6YJc2HL4OHBF&_R1Po!qT}Nd|s(g0xssi&V&3N$8kvl*q!
zd$PTXT2eJ