From 303159f51423674c244d65e5b80aa0836983989b Mon Sep 17 00:00:00 2001 From: igerber Date: Sun, 22 Feb 2026 15:46:13 -0500 Subject: [PATCH 1/2] Add v2.6 LinkedIn carousel PDF and generator script Co-Authored-By: Claude Opus 4.6 --- carousel/diff-diff-v26-carousel.pdf | Bin 0 -> 117340 bytes carousel/generate_v26_pdf.py | 1072 +++++++++++++++++++++++++++ 2 files changed, 1072 insertions(+) create mode 100644 carousel/diff-diff-v26-carousel.pdf create mode 100644 carousel/generate_v26_pdf.py diff --git a/carousel/diff-diff-v26-carousel.pdf b/carousel/diff-diff-v26-carousel.pdf new file mode 100644 index 0000000000000000000000000000000000000000..749594b77d0b748ddedfb38f589bffda56476ab9 GIT binary patch literal 117340 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�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�GD>nwX35Z!Ua|O9Llp-1zccP2qXnYc=^vnUW9c zurMkS&~=_0OUTRBmW^QrD{Xia)k%XqRco&-RaEorv^yrDb+oqjgsPsfRS^cM?%BRGL%} zOw!>Vhgb7+;~ocpO2JeTBd!W^iCY~cZmMupgX%Bn5tG3T41lG3wW}{N3+X6Q@{H#M zM5moS1vC0LNmJX9d)CYocF``8X=kQ}_z*mp{VX|TPYD=!+x}bUE1M2Fd?o58|M@qZ zC}D^XkJD%8`(0}ho~^9|8AU#1$v02VpQ%B#z*{$tsdf^HNF;02Lz9ymQV{8YRKBl$ zJ#d}v^J#Tf<9L(7m@Rjqr1K{#Os>R4z%~zstMJ&7lZh1k-}!)tspsc|h`>qvu)%Rg zi3U*qo4Luai6BG6&R!x;`IF7YIoJYZtxgYEV6}@Y!i*JTjlH!)2tpwQPH(kJfgVOQ z!}pQE%oTmQ@#hql96Ng9l`%Bv+zHXR(||=ILN8*SfOQNAhN69n$?#%i5n3MUoq+Q7 z&2X#$!fQg7G0UTQ!>O_tUoc#K44vy}+qVse+^3niLEzm`g+eL3_^-Ee>G6-%j9*Fh`vd6+k*@SBR73mf;-4Xxj5E?ZB9iPumxse25BRW2rpnmouV@>$J8$aR zy+3pL7CMcWn(r1&zh5;~}$O z?26U?F7{L)W1%rTuV(VfcBVKtI_mej#YaS&XBgwg4$r_oR;7x9GE?znHef;l*KK1r zN*MASJxAe=U7&FpBwH(@l8)_bUT)ehd(qn5f)*w6_AP-WZ<3J1USsr)PDQ>^6Qwsy z+*X&zl9I!EO&ebTo2Da(RZfkiX|*f~@8Ta#Vf8HwX*&dJT*|{7w$v1>@azP)N*|GP zCg9aiJhkj8O%R(8ZZ9Nx_}@N|KC}BkU#`@fA4HgY2=I^m=wDideBn_zWQ`906&Mq^ zIzI*x8tm;hkv!PYpnuo={^S{xv)`%2sB_QxeiF~1oFr}F$nR@moiYa_;6_>+XxwE0 zM^#d|H+`5N1U$k|Hc1+|Usy7zx3jp7#2QEG6wSTDlb$a{qIr`j_(;POG0zYASF)bb zkU`UoJPA_^=W8%InLlpI9M{^$!y_bvhsCO~uFKHUL zv-4%jzS1`1m0*s8gj6jCA2Z(F#~L;FGhFF1Zg*xNoUPCv?)f@g)hV1YTs|sv2!@YD zu46Hni|>)!W~_1j{3dz=pEqyouB7x186g~mq6^H47!$wb&?`< zB0B65r=~cCn`<%@$COXpy2#(9ZJ}3)K8Dz;Y74VwjAA@%lU4 z4h%u=BRWc(N>GuMBp4_jPO;)7xNXTlM_l+oU4D%HyFdA4Pq)5PuT#s^`FW<2l8 z%!zm{_JUnO>I-<=FFn7-V%nGyG8r_b9A+%L#lj{}RI6%*!>ZV>?5sv2wj$6P=zOSp zXDB98kp{=4riG<|?ruT_54GC2t8&!1TTGs?bP*6Y)kYN%I(1|dfx~q6;F|lIYKi|z4=z1GOKzi zxbDZ@5R7vgXsp+r9JXIc zdGMPy14rpJZ1bHc%Yc38?M0K8#$=Sn=93^^V6nnQ_1HZ4YIf96394h zEfNeH`FtHyz4w3P>aF6UdcXGJkuC}8ExqtE8w%OLs_jcO%^cNC*Pb-3?OG z4bt5WGyj|4^LbC+gMGNyUU#gzR&2(-di@dh?Vs$U7});@qkP@I<(g$F#$yL$^Vc`W z>SLCGr*d#-?ev@ZOKW@8pMV45)-F{((Rk{Q^4WS%X7dWj>CNqY<)1R-gkwwd_)_VS z-GuJ$XsW`@tLP#9kI+z??~dfPROvJeI;~Lanz>H5+?KS+ne&Y3G=-=dy7RAB6t9@< zVgq?TnLih0DKQR2HEbbs^<4-V#_m8x)e(2I(<}Su*J6a4y^7l8?=$f~!@|kH74!a8 z4}}Lzxb;b+450wLC_S@b?$?|^Pn1B8iQZLWmk~Nmo_@t=`$Eot{^|e^>FU7D|DhW{=L#7{lKu~R?jsZV59uraqYv|yyM}mI%eJ(81$hu08uv9Fp+ijwD#b>V ze~(rEcbE}L`gG^@PR_rt9hT)%jKzEmak87#8V~Pq7^Gc&cby!c#*>+)iYku&>s4i(`i5he73rKPmnV1n8 zyTAA|#a3X^kVK01SLX+l9_)fZnh$s59*N_PB$Dfsn4gatep@fKhDCf^TyP8{Oc$21 z?Cz-Df5Ick^WadcDXK;}uSPzvM&Vw=WcfiK`qQK%`xd44@asMl=bbD?C3~Y%C^RB5 zVEfi@=?quAISwg^8i_pm(G_!^MHQ5Yu_rXzff`!p91>$9*%OYxhpGN~x6tyk&LAN< z0nCOE>?qF+4R(D&ldmKc0S$dCS;0o%Fz^-j4B6&SB8t*-6J0#T@f%3RV>*@Y{e`wu zd&N^#OHsj>hqTMdX~|B0UX6#IDh|Ir6Tal~s8l`+XPdwb-X+8%O#1#3fZM^NE1eQd zXezP3>G~@qUjixdZ{x{KA5@Wb?jb0^IhAq>?Lr^!e&}wvs=!VK1)(Wv$r2H;<~w=9y+!{ebF z29g!Ox>R?fSG)hN;1NS2-&wl+_3#VvLd#zuqC(5#0W8I_v%bz9*=}P(B&J=a69ofp zC3(A)S+G5XaKly_I#p^33>LI zm5K4y??Kncl|C2B5$_1=*aeswdyft7SlIy2M zmw$xPb=)joiPI5@DT@aA@INxbvK}kA5*TP1cwG!p3=-TOC%#FaD92^gikXa=N^z{+ zr%g+h{`~IZ`Lx^BdEvhqat-?(u@Ct<;hhdWX9&+cPQ^&AUB2$z?m=NdhJeC*;LN!D zccasc)kt}8-=aP^9cYYI{(cb8)w9=6G-IdOigiREcKjwh`{YAsjirUp5{htoo=NQM z>S>?O?U%?LRYQ0@kpE>G=(GB?sKPPnzJIH(Reis?nAzK0wJyw&-7nPCbG#D3aAh>yOlFnaBZO84;S z<@}W~bjYy}C8xc%Tg1}yqNYs{(JVPQqR>=Bscj~;oR9O_Z&O=Iu`Tq9A#;UAr~N4Z zhxSIp5Le%!#CO6Z2YUVoN$JRu#Hg+umhzp z8r4O~E@0dE%%QB&TKeb`rNr61O&0laN(5jntnXUt6_-%!K=?IXAsO_u4%xvybq$&8 zacKyi2F0`AAJ&pjiu!OjLnld2!@ih52_;(09+ecp@5H{%L(8$Je<@&FcEgH7=l*Dg z-=KE>_J=Ebd{xg$YUd{!C)&#~>q5`{ZZvm6`KROvt(Ft-P{U@fQxWgiFhu2^xK{w827ka%bAf`BIZ9k7C z%)|4fn8U?B0W&ys|Lfn?i1)Hc=fASQ2Ko6vII)CiAZJWKAh?i6c|?5-h`X+luSWc9 z^umNO0FBS1Hb-BqEL~sJS-rN^J+Q^bOSiAzO__t*H-pnyGuci}vf&TvBgtVv7KFys z`)bKR&t5Ji1NP#mV<>=0d(<4yqm4qZ>9$G5v9nb$tPy_yN~;eCi3#zq!_T+JKAKnq z>NgoH!;?V-WQR*VAAiPex)=PJenE41v2mu|qa1+7@aBrOuGW2_`k5@euz?(Em>p1P z7BbxY0}T>`53Icpfyq2rKSt0$+vdRk(JJoMo_*J<1Lcy_1p{+n(u zM$Qy7%c99g`jDxT+tY|Z3*~P1Q-O4f!o#o#c^MQRg4aM?$ykSleF$(kT3|C_W;47J zzpYLhy`q%(UjngvmUI5Kz7N;w7lqS~uN*)H6f%z-IoC`~Q-^EGPAYN+o?5ydEFIpb zZS-GkupXwAVYFC~?~n0tjLTR!S4cG_at@?jn90`b&UqLmJ-mk&Q_dHpF6!rI zD#Yq;4p8E00Jblmd6dDg3j$0w$d5%tntIp?A!!cWziUd4voUF zAU`l3k53OAU)=+Cb~h=5g`iv43bHPzHwP7Qs&h)(@_+I>zL~l5>A8b{{VOnEE^Fa% zR-qWQ?x5wgNZDh@^Ot7_4#wwfQH=foE;_n!hwsgtp!GFqR_Z%A(mA_0(snj7k4A^Q z@s}7Ue0_!#&K1G?24=DgRb2#o`!e4&ZZrHEW?WNRIfsPCd`rZT`_wIo(&c0K-hn3I z7RMo#2=etKqnr>VT-TN383P0&y@q$MKZH7OSMUPuHNx+ix<~tV@;q zw)5`LPRU=|8zgSbL(>K9$0A97ALdB#WgN1kO?!MPsRBq;w`)-t0Yn^=-$(Foa&8J< za&+G|3mQ=Nw)fv%tU{z-lD8{A@w5N_HI+f(tJ}YAJx!-hX8UnX{atA18~bGU;`AZ~ z;f_76o{>?ZAsJdbP+tByuuuZEJXu+cprXLkIkKb{(7d_e!%vWPw1C+;5$4Lm)?;d=MZ{cA#TQ5s7p=I zCa&!Hzy(p2jwe>E9rEsX2%Rd(yy%*kObeFX_?{hYn@HO40(28(M19y-?-%%-f?o*r>Gjp(B(=jiAYTU1&3RE3;n(AX4C%85CGICZnrvQo zeR0D*C4#zYDiWNN!N?HCx0hTf_hIBXCEY7pvIsx9F~{yLM@32@lefN`ZuV!I0KO{k z`5lpc^x}nXir9$zaqLq6S#zLKJdI)5Xauq<&t3J)06$~}9Pv;T^lUrij6kv{5PHyT zw{v*ObvvbyXykcbho|eYsxGsnWTox-XMT^8BDhHj@|KR#w0B>3)R9Rrx>Y3K$3DN- zy|Vr!a;0ZFc)p(7xJkq@+j%#*NubhkXz+@M@-?0uzd|=Io*Y%-KdF2)fR$WHKwy$~ z0qytemyNG17rrMY-4%;klMj30YTN4P-~xZ9uVNpjOGFnir3>?>p9HXVeb3Cbo9!B< zZ;iOjk=AkHyCF-@-B_Ki4;s04FO#h-W2t1TUnZ-7n&U!Y6+T=HTnGd`ib_ukB!?Qd zd=d7qTAU9ORGDexcRQc>1jLGC`yP_*ac%3|l765YHM3Ete}@O;?%WwiT%wQTTwYk( z5Iv4`yFL&Eb))b)v>7b)tC8g>p)RNj`%TItUdDK(CQ}+j49c4O2H4I!$zM zCI^G+YXt^%LtWiHW!6Fqbh!UyAWPlLkK;Oo!%?qn60(s{<{#LY9&ERIV^$7aiIceM>0-mfVxPZ^Gh$r)p>L+@9OCuxR(f?dW>r!SnE8dCx}f)q3+d=+ZfhQ2p*158>wC z`X#VJLU&FJ+qOq%aT6MPiv>z{bC(C{z@EX|gMQbWKjN-1vt% z9G9Wpm#LBXHd;6&Gn$2h#N`v{S^y1}X!BM)RqT7DtzNbWh*}V3=pXSKuC%i9~Gln%@!xDnyjloh-;cdY9-!a{YLa)$Od(q3mbSE zrq{uBghR#hsaqLN@uoT~EJj0te~7dlMnT68sIvSHsFpJtp1Ayqxx~(g&rk z;O9~9Uhr`DjL84bUOkJ(hUkZA`>YVm`X1)Z36nQyltkK~3Ep$n9W1WIBx!?-PUZ0< z1dn;-YIFTWdr&Iz4)SetWhEstHvda~yv^oTH$O3rl80=yya? ze?1+Py=ag66eK>;ANqP@_Z;tk_D^y8zaa7-+iiP$;tXSZ#^}FFfb&lXJd_w?oK9Sa zUQQ|7X|J{ChKALzG$`SuUs~C}+_mtmf1(^LFddJ2_K18_Y(=IR!ZwK48zS@zp@7z4 zh%B%Zz>o4d|2pq9${~fHHzqIjwjmMi%s;RF;yp6(7_$#RWiuh}q>+d6hyH~w90GAB zp1;3gZbYAss+*)u|3d2yeVo}KbS1#|Y%?`UwSM9!Iib5)i6VoGiosZ#*RF+VT|q}s zyLqgnizoue15N;<G-AXRb;czn_FbzPAah z@%RCErk(^91KN!d(!DN_fD}M5T`{lK%75MdSL)%Gz6X6tYhwk^wSYFm{+Qs8!XK33 zyK<9v`VOGl>pP19QuIs|Kl|?{;KKk*1!*fZ=zmSsNUXwTHPa3Yc_#bBPwgaBl}J(X z%{z@De*~J-QvnG81>|#{4-3tSnq^J{_dQ|BEr^;dj8*N6Z5)z~^-&Ni0G|FY zz>Z+hCy*1C8RK|k`-=U2dg=PLEVh5Jq)ikK0qy-rB%TDBzDJDOzZ9?dLJ1+$s8ZLP zS9#^|V!i=l5)TzN_H)2q)k_E+8(>drH}-ZV)A&FHDtCX5rZr}^oj*3V|0E{d0X*VobdyA z{ct!Rk$BFI#>lFJk*q__m%SvkX%5VNEejkgJf=^(5z#IM-p@_$aUvOF9iHbPzYm>w zEMM9kE9P@^%YQC1?UDNg0!m3CJ`>!23{Y;QFsph({B@kyB;Tlb;EL{@6>SYnz91g1 z5r`L$|5(HqeK9Qd3gqGt26!NWYJ=wp&m(q+GEn``+#stEFaOL zD#cg_zJm#i`5$E}a%gMwjg^Y$idI^C_I`FcV?RSwI@5mrkYIx7&En(RN@s2Kc`KKP@e=0uRasWHJBZ<#dur&8&3D06 zcz#M(@_n3Ocd}r!X-+x%L`WgaOOh}K1)`7aFuJgb#f+43#Fj80yOmSQVur->2xt~r z8{R*xoJu7I?cSE`cTBmU6njn4EFefL(g(b)Ut z`q$%zwbIq1;Ge(F00CijF8De%)I*tiZa1OM#tFs?BY^lIfn<$OhyCI{m7K8BaAGgH zP>1sKc|qagEN$8;t7mOQ}=?*TpzKgPk8w#t_E5Oh|Zrkx(T7UDQXq-&?n0<;d2ldOg$V3MoX> zJ6yb*&;G7$?%uo^zoU-Ai;p4W7qJ6;9uo?Pw|A;!YshgJiZI{eRkHJkV2F=%^7P?$ z#7;FJdx6!nNCNy|n|nI;Cp3o6rG|r@aUR82I4baO)1>yuhCYj-}t%0lZsEnpqTI__6ky>yjv!D3^rsFV`Zz13U_MRz_wE zM&`X{^x*JvF^AWeGt$b=D=6Je6&t=3Rbn%foIK-4bf&ItWuOb?lMj&gxwRud%lBkI zo99_x@=An^z9}C}t*PS@w{8&{nQ6%G+(6gRqWbpz)#=BB(OgC>JlVk5UXp#wY5zqI zyejaRCSgFNE*>q_0A=`= zlKqD$j&10mKWvnaXgKkB^bHEcr|7X>_3pbr8IE4Q;g#(CcQZeEeCY~IB#z~VobWBu zTUv4&*HowVevKx|1H6}kVl^v=1Gs)>*mpFV7zf`heJcRKW&T*1yT4hV8LNPQN!EpL zj4z|+xN$EX?Ufx{Um~fnBZm17m^)rIjGs#r*UCwGR!4Q8K0{ddw>VnVQ&A4a_1}`-%H{*7SUM1 zvHwzhg&r9K3j$(P=v>N(&Xb&?5|vN2!O{eKk)A0&5ve%SG^~CRa`Jc0xag^9~lAOGUA(2p=Isq{PAb zC`Vt)L( zhdzle{2p&T1vN4%6atwL1u}BcUG9(4zQ71o4j_4sfu)%n_5KhrtD9_L=~`^?@F;a| zO(MGvR@>-8t;)txm3QlYGiB#=O^pTsn0d_l09Lpz-{IrvsYCr>=$J^2xwxlVHj7wy zfpQUQr0S)Mktcv8-=H`ZMnE08s7h%Wj|b9mn2J!VWEH`p`kAWya9RUqMW zj8~Y_r27l|rKu*r+$I)obb7Jy*KY#*=f+g4BxHnJm0vZcG0$}nG7w=Ya_)=Uwj-Kh z=b-$u3IKdk9P^S;3|2dQnE;e*f3043gP+y^pl26b9Anv-IALUB%y#D~x4#L&N@z+H z2(2{hpx2B_oZGxmjJsC6uwSw;js*Lm{2^*KDbxKt zD$gLVbD|RWW!u=PAg6tMJNj{cmAG+vBQ|^{A{+}GMb2YNpvpx806QgS2mZg+{P2xh zCwMaVN_5S*y!%|N$~T-0gA7>MacRqF>=PwiyBewcozbNFmt&}g1nf2wCN-xEblcTPnnvdQkb{*zys-Jgn&^ir%IW?YPC znhJ7`4FHCf;)ubNe)pwk2@|P+Or+ziDY7_&7>}Gw(m>=hy2My(T(p?FC?K$cLBW#v zG5^HZ3L9}Ukg0`X%qc5W54Io-_zqHz_SCcJ^l@}w^4Z_eLAP0QyWMv%4Z3A|?)F4J z`;0n&xt^&!&t*1q^J{Ey;ElxF|I?4EWN6HPC~Oa%^t<+n0~1$ZLSQ8y*`^Z&F!Jeh z1LXbM_KK#b91MoE3m&cXR6vxwF`ams`RLCBi%KuO#83LUOF8o-dl3z|70 z@fhAnNQDxad*o)Tt*%hNuV6o7tX#{)tT^4rL`;;b;o=!AOUe^+ur3?b;+!T2l|aX15t zGPR-KR}@UYHTBQH+O)HkSHVX7y^pNE9I(67J?#2LJ^dzj{d;uVejOvo6q%7M%-VTb zRXigWa3~N4Dd9(9aDZBHZ%V7d=yVik?fc>kB zN>c2{#fV~Se0eKcYWr4p4NelC@yY#9{1vd$73hC8mj*;7@fpTc$vtbl_SM}w+llCi zRG20DsB~tW&2t&J_?*Dee#8bxOWb8|PFB7J23*v(mCgtmA8y z!wN=c8^P+@a5!!jEa=nWyncTVdizR`r3VcC1Zr$gsQIfMwOmpk%rUh|)#kJ``y6_-*^ zKtRrdH!IJ>%C0J;I4aM>7e!A{l_A3^D%kk`NU1E{BDvo~k|`%#rNGQ!IQ)`^h;#Gr z?nH|};E+%JpnsNQ{h^!Nr zU(RKj!8rS6x85F43i(P(@Yx3||DFbF34mb@Ef(I!e>DY0T;P&`!xbA-xy+)-jA4SH z4tr{)&$K8fzQ2T&18E3W-{RAv9EgQHN|rXON7V7s<`r$q)kK_~NVi^VGz5M`B1n?U?f432kv-BcPi_3uq62e-)H47MO# zYM7?9$@xBAEk8s57LXmI<*eqhf`v$VxrY2HphFsy6}}<=1nE)b6w06u65w>EyB?*_ zA2ryt=WJ1q-1&0jHP9X$)T510&7-dBcsSyBqUGuW9k#|%jO+Vj zFFP+)l0)pCpX0hi>> z$zaQI3Y**I{@4Z6lR}ilojgs$r${CEbG194?q=0@)JUCRk^ffK7}hvLZjb8uu$e>~ z$G*$i+#_BGc1lP0@jl{Sn0U(U8%ledXUhwK-R> zu-0tqZ$+;Tky7c1_e4M?CR75p%kh z9xo_SuIK#;CAf`mt15>j3{F>N&^K;gPqkcbGDeF#EZvN!pk1jknbrk?$X{^)?_;_)Rz;zURUvX(cYo)_fD`fzH#_z-lm@ zhbc`j487{wKMqu`(bi}A!IEw1(Y8Ygly-W&M-=_KgEAtQ__dc?G|i&KWj40tN%{LA z+ia)OJ>J z0Vi>aWL{;YgQ^#%A48Cma<4b{9HOrydb31u_7dH=^f1&s#>osv7aa0- z@-QOyHp9m2r_bJuDgy!666whDUn4HD*8RY|LA4TB*MmFF8ZaSdsN&#ov4NV$WBW(w znxw~UL?NClJJY`p$P7j(4`Q5ve)Ul8kfqbXG)- zMJ1Q$*}t29jfsN*23F}(UJUxd9gN=FfwB97t*zbO?#8S3(}-o=){AN`kBh-9*1SW4Tdh?|QpVI# z&3W2wXsXneEVwkK^m3+3M>^=y;)mM?Z>U|tgc1iE%iosn51N!)5+dGXm4i5)O_v3& zU>dxp?wxdf5@vk-7O=WI@e$ANv1^88gPJWDSJ+!bo84M=HU-17SHBu9oNt$#?75|j z{ytm3K@|;5!U-1i{MSTAB0|)%`P^G*c1(o5yVuK%3-#dxD4}wDcp|lcBUYEOdr79_ zh0Zf-320tO?)c-{M7{OOP9o`Vs?M|0^@h0~KO?tgA5gor^rg-58dv;B>KsXwkll=o zebzBoQ|--zT^TBi$Y8t?#wnfusxHZDOi1@^!GCGf{V1y&CZ`JcXjH@!Cx6LusYJnm zYHR{^g3jwV;G90}0$sC@KKycJ*&LoUSD|N=-J*fn1n;^16DZN_p5V+RrE)Ndt#s~%S!AMhaWZ&|Q-Oy$?R-sc8KFhIAT3yw>TEjYuGwjQVYz57+XMIpx3 zI=x~(=xwCBA-VqAwxO6IFt z7}Re5>*B*svYc;`>HBNFcMzFIlZE(Wpu~QR;CmK&f4eokt{VMYZ!JHacKQ5pvxAeE zg{T+vmQ~|a)<5Oa+hC`F#mcMGYxB~B5QXV^RO*k&R-rj}<+>T{;{V`rqf5EIIW%$q zB_a?}AurebF<$e4Wg7jxq0;NFw4ZMPb;4!$S88Rh-h)$bpL@))zQ}OwVP%w~8asm> zHk2M%n!DOBYJ%27*AZ_TFZWJSxUO%K7XN|h^7RLnkM)e>-p6aY9O@0zDcIh#gfFNN z2R2|NZq|qznSj%~Z;5C`I(uK_)PrKMZduXhU*)w7;@327u-A!SoQ{JHV^o?{1RG{g zhbbL=GtwsS5n~41mVD?)#R!g97IM!I+KdO>ZcN@#t^Ss=uYIjmcYUMe3E%r!#RI<{ zYi)!#tab+N+xw68M$~MM7m(!7^<65^M9;GRlp9)E!i zN^qx_@)fROm-$_?Xh6MFP-m4}3C?f###O-{xZ4wEyig%i$Rj^Wt(H&xVo)&}DOu3s zpe(_UJ_!Chy=Y>~V7Tjg@y?rObPvU?@mHj;>6-@t2I?-LMk z`6p^0a5y;nr2e<2*(AhUiaag#=pfhLu^ot!0tlUIZRSH_j5+*b~50Ol}hc6nw_7) zD8C8`oorzKq&o-b!jaOuxf_@7_b9l^Mja-AUr%ec*bj|7ME3GUFY^5>)VuK*AkJ#I zg$qa1ES$jv*l40QGqZBSD1YSzg^ICE(Ly9GG8Ovyi(u6neT#zC$f&d{1E2d&R?SY zu*n4kZqzk%D=$vx40l$ECxa-FUKbw8v@0lUI(sMqzgl0Gs5Q7rM-Ik-=R2Q&d>HpW z^qL|i48XXF%axMnnq-#?6RDwU#J9mOugmF;ck%ywKu2Jqi~-CEJI8iBG4lR2ZuplF~)(48VkUfwjdM*q5I*| z`Po%o$+@o$Ral6@@Pty+^SPN~JNK^7bi#h^3)(*T396JE1Zd1c!1#ZRMcTqhxe1wf z-rwIY=)<0OB68w+JvkcFr?owbhy5{RQHI>owcXK>+)txy5#MrLQ=<2ahqK6}!-~Dm zySJJ8LMI;-c^ukW7|E(E(F1H{ourggRscGo{0S?a@m!>CD=0GUbD68-*(OJ`J8k+% zff$cBbhD!!{fd2GKWw*pdfJHd9E^EKW^hpunr!M-4ie#%v86uh?)`&WTadamlB*iQ z@J4ZpS!19%k8S)(`@98;e||rTFA@k@eat_uP_51wys@0A>;JYut97*}xo{kZ zyaeA+)47|bzN+%Fe%v>~MGuqB4oq61(k8YiB3*9>B{1w*WQt0Id0jHEcBS`ryz^>W zGJ3hu=%YYM=y~>+vd*{or~j6lqd3_4Sfub9vGFSy$#zd!0UV~x2NtJw+I~jkas3U^ zLG6rq5gVd=Bzf?A7D06iIWX1&E7fc>IGZL3mZi%x9u%sH0pobXs8%&^0IzN0rL99Dtjk4Af#0`z`9R5LFW?M;u2h}F+KU< zefMzXy>J2~-1|P4H0#@3|D*n-U;(>j*8eww?HKzG$4kv_=0yz#CgbldbTZCH*Y=j@V(Mof{eU>7TPfEhto2S_!;lrB zOqFFLjH4D~Nk{wLAtToadm{bgnZB;*u3Nkp(7yM^)`bRxG+{+A@4ZhuS78unQi-5+ zc7uBbP+k*79SBd4wJa}J_-nP6%Ucoe@Csm75Le;LcQ)`|0~PJbiNwSoYlg)knlb?v zVD_w8oYKqdcMXRJPtzX#^K>;ZPx9LTNK1hS>1Ec|z>ZrYJtYGf>+A+61*xOZN1NWp z;c>*fvP_#z`!!!i#<#JhrR;Vpj^qq1^h`OJ;uH=tg{^g9uotX` z7+$sxf4CKMIU3Tv-M!k9xHa5lOlhJ^c^CfCDP3bPD`Bxw5Z-Em*pf-oQ9d?u7#s0E z&9EO4_H55#V$=O{w%Je%Iv~=0lTCx#x{YZaKL6qt6+H(7Zz^N5|y`cg^KQF_>pbuS^ zMOY6yNMTGGZ7BjVa8r&~n|HgCxE|Job6<_UKsb#bL=Wk%2;I?0Uy9kR__WYAIDp?A z-K>iBio}1Z?Fl*?5%2V7yOQ=%JoO%oi0Ag}kAk}^^?km%a1vQ8Uzh3)bj}-h#c|kQ z668N&90NGWMPj8x{C@U!A1+2svl`y(php!l5z6rSAQKp7xF&CkM$2hlby;h@!JXoG z1qJ0ZPq!-yKDYH1XfVlWjyARO)m1~8n1Q&Xz4=`}aYg ze1Uq)j5tN3j;{5krvR6M7y?{Ipkw)niI0PL{M6ClQ$pV6Mdi?Y!A5LrC9W)kI`m)C z%3Xb`)p3#(AWwvnt&qZqQ^T765XEg6MljGU1!%-S6-H9Vj)+gPw)(j}rS|^y^vP#2 zOZGZ}jDg&ge|o)dn03kb+=US5)%}i@m;h24rYLv0#E@~q0!R&be^+MEd z@=}K}&rX$A;;^m?*;N+oTvRO2*NmljtC}DDL#~y6OZ7wk-gbYRuS&U&^Dss6x0Uc* zr#IHk2=%9=V0|Ygy~4B(67aG0pYOYymAG6E7szQPzunJpc^rn>k4SJ3?cVDd^nRmp z*)EraUnF*qaGr^kDZY}HQtPY4`H!68hw7>1-WI!m>^aF|iW}Ukvl`EKFod(0=h`O1 zpwDbXIBNCxsDT}c49gG0Xm0#Q@F}{a;Vlf^>wRMH`jgM|P9)-u6W)8%wO6nChBLmw z)z^Ax=CjKxuj`GjhB8I>me7~yn_i=MPrqSU9r3<3$j~8EJ``Y3vf{- zb8>Z%0bifAnDRo%wI*M6@ttBH+%{HjLB*LBg}fHN^@0xNu2K5ni=$~lib+jLri6Dk z9$Smk%U=-x-g9xOUv~Jteh&bXl=_#I-}w|pZ+a!KZ&l=Q_wGkNih~+8e)D}IL`V4h zt*2C@WebB)$KO_5lh2n;hIvg>*=5UuBbVp7G@>5_E|&Jt(|hUAB16+}`(2LOSD*bV z+67=WN;^&}U15bG<2VYGgt5@^L>5R(p}qEUu+xrKCx`(b?k**{zMS8WcwYp+$kIu_ zSxGFJKg>ESL`=EyX;0^XhMyN@dgv{>3Hh(D zoHC2)My5-z2-5Xd3U155n1FQ(DC8+Q!}M-QK5`!$nH2bcqX9H601_ zE&^>`9OdGB-IR~vzj5?ZGgELkc_-S{(Y*H>_n#QFTe0#v`e>Se<5{hknK5%q<~Uip zH;FPBWX6bElhg~K7^+d3aLAT3^8-xy;Ihr&U*v*6opo|~pSMch95%hk%)Hxs8{%=i&s!p8#R?~x8LA9UNqv5ReMi0Km zA}{~V@KuM>Ml!jLV(D?+RjEYu7_tQ@e;MObz&95U06Q-gOT;eMH|lt>P^omad_O4a z^s4!Oz+!Kz^#Pt})&IkThleKm;&9S_RPS+!`|2VECDvVuuZB^IPLcXdl*#kJt*LJH zpiPd$d+&9}nAMnE#sY7VDHBs)1Z%MqFO(bP1>-QK*)y$j3+49m(tr;E2`dQk_HaI$ z5`tgzz%@@=P?hKJ7h$o_D$wXnLtp{2>?&)4+oyD$mTM{Vs#CtWybgPWA{TMxtAwV3 zzmxvZp$(pAiB%x`m4@0TzX}5cS)S{3A-{~LI-Fq-C-BR}V0dPUYT-^>2S>G7%EI%A zfkuWAaz@ceGE$70-z;qxHly*Fo^lX0YT2H?1E=A=-zQSuc|NFJ5`Bh$^OshqR~-^o6M4vG=9T9_IFvNjY|DmZfH zH)cS``BZFwh&ry+g+o>1Sql`O%R#XEc#W8(^NVw~LQR_zo&7-?&!x}fbn{1wSR02s z4Mpnd>@{r6{J*JB)Kqeb#WOX^ekxH#J#>$|MMS+t;e%CSA`{^7EhBXPl^4!sXwsP8vd@1?wqkYWs7*ZNt23P^cFSeWckU<`Fp z(|@1WhV1-UV3=}}2@uSzrMWS%+j2+WE|@tR9VO3-r0szQXY$FI14)9T-`rHKt(r5jPuz5ldkeGFma@xo^{-lvOd;nnFSR!jt8d69qc? z^N}+u%`ZW=3*yfLezU)cc}nmW1W*uV4ZwR!N>GwH<{Q4}fzO_myI48(ooU%@Xr1+Y z=SPr~J!sOnR=DjJ{EI}lkD*VaOAfO2N1-QiSa=Qv?@PIYbQl<5@M(-!oH4`mXFYRt zosG_x*y&wjqy_FMcDDO6SVlA+c`r0*0aIGYG=)IrzyEz0^bbn88aBMt2-;6ENs<0! zRPZo2Pb-pGyM1{6&$~dou{kZUz9!nBe)ZJ+H8OLKFef`0Rz^NBeCDlSEP$G1iDO zj_D=;U^iaaD_dBj6D+8@q$*gDIK(5{xT9Yykd`P>Xp^~^8Jn`z>ZNM2Q-w43%)gyUaM$sp21QajcC;e#V`8@FB_2#9gUq?p1 z@_2ByI7C$Q+gKevmtkR0Y~pw8cs*uI-MXasKMg$x(xF5uPA$2tlnix>CDfi^;rD6Z z*=R(h$fa9XS1Vi7x5W#+dPPK{#Ja!EGY}0(piAqyhWVm^1B6V1zA_dP@2lj6diNFs zeizJ!h47cjj~jolFc_t9;3yMfs{c<;e=UEnS}=}5sg%(IpBK}QT^!?C01PcVAGhXl zH%oz6_*!os8nWW@Cj5RxBlXBsbBV7uKeKTQB14W#PAiJ2Q!UX7rr)^;>#L-K${4nKFk5;C9{C5UK zis-o<_a9^jb>!V(Gnb#ndg^u}GS9brbSWwON+{FO%WPb?5-u4~1YRmW7~aoRR?l6> zih>mU{P$dOZ6y-AK8k?fIXkDA%6xe&kL2Dwu|xTkSNJ3*B3`WTD=^B5TdNjppG-$C zz!lBBmm9DaU09~A7g08S3eNdT?`VlMi5htcY!eGrV z^(KJL<;8)7F#meuhsl7?ga_v!m4^q<-xxA-60OCQ>*|W`iE4$>1oH~jc+^qL(R>YM zy1xoTjP8AN&0cu_c;&(ZKOn&%A2x}B)-{o7gtt&*^60tM zxch0=&%7(jgM~Mkp}^KD*0EERR%Y1mNy)til}R5zVWKYbTdaJ0By##lM2A_Hdpt9i zM6o0QLvzW_7*Sz#MtM;EQOs1zbayiJiQMG0B;D*c9B9LL>TR;mIXtfQXv4q3+Yr~H zGAoF(6tApl;!}c%cw5VxzYf*YRd|AA<9hF3*PZ*0EGe$e?>MubSy9QF)j)%RBw4lIDJj@S|EyvC3!ZJQboFfC3jsRw-d|eI%7BCv+pqw{^=BS_yJM4ywE`F1xgle|tAS0m>>ZAHi;l+2!$~aqZ6DY! z14Wz)$kO~zYbFA%DemS#Dey1kQ32~ueh3+Dn#_0r2^6*2g9YQ`Z?QksUOYpeeEt44 zqCEjqdK8PE;?E+6+`5cB+oOX_R{$vV(mL-i);|2)(?u_ouO?#nrK>jt2Wcs}G!t@Z zf=7L^HawjmLS~+976{_rJYwJhKw<;|zX!4O()Jty7@2z<4Q$OTQB_+tu4(>gLHVBI zV^_xw*Cy@X4B1e631UM+-k1e~w;=1qoUd@Cwp=ok%t;beF6gE0fx{jacbNkYj>%aTpqFq@1W7P0Ktfkgwo{E4vtu{`<&Xf^AdAO91PD2~C! zVjkJ!+M)M{0-5(FMH!Vii+6$f-o>25yh82ra=i&BzD0wfIPlJ**TQ{|ygSI}S<)nO z=sGSW=MFYw(XnO3yDO42eBqTX?3peeioaTU%2CGod#--ym~hg*^xbyo?%j^aj|;j^ z9X{$chL7mY&mXn4ADeyDZ_m3ZQMf09qjpH^?9>8SeD))K9~?#?`ebJ6$h0NH_2F8iS-*7a6X zAju=BFo@7>MH1vw7~+64WO;4Q5_A3XI=FBIaX@#DTdS96Pn7WHckGc2ySaYiI%9{7 zluO$$gne_4DneSRZVsT{ft$sm+EH ze0P*sd-1J{PMUi{`c!N6$&~0}{lT!ipyfjR&H2E68r<3Yw%1Ye&Pv2;|E4|PxY6u@ zvaHl|ZP*)O(h<4_KW)sScI)%8E5YynN)EMoJf-<3K=` zjF;2yQ0-Z{b@sE;;t8>7zW+N7BDo~H0OFD1i{;*&+b1?=shbb>G|d||>L9H8MQYkS z(CYDLOio+qA-(k1j};wvPiUoWm^+b zVW~N&=Et0m&mg!TDxfK;u-dv*81|I3n!V2-pL(jlm~hsbBD7Cd9bf#CXBuj@u)S_vJnZkF8^Cr!|%_C<-C5{pKh}}>I)k|C(J}AB-pb;d z7M5mg0qp3Z)$~8X>YK&|Pz>m2Bj~WFT?tSSZ@qO{G}S3Bp!@t`=IziRTLJO^-C|4! zPg;%ZHx_4EI_G8c#^T2-24*su*rp2j|H=#XG@=-FxgM5kTeOakG`}1KV6=dAwt&Y> zjM{WdtbCr1xBbHyV>J70hq7(y9+UHcTY$p{nu4-Y{C32HhF#goy5zh?2=}hTK?EYK zc+yFp(Hp1$d@VK8RAqqS%C1dL&p+z5LK0Av16JrTpK-P1*4qqVYr0ELDWPxo-)I{w zd(aEA_>AvoHEXT7CY;&JdV*v(J0zOPRJ8A3m{$PrF+lp1c>g690eh$WH9})bY*t4m zU|fP&)LLT**ZEv)ggYQ(r(lMzgZ_2&C-rBKD)?hY=_Uq9QXj80XGFYfI6O0Z&z{-6_dLS~$1=H|t3L=tkx9q@7^*!R<(O!0X0p2) z7QK#jV%@B?2+;2ZhQ8CbDjqq9rOiQ8$<^G%v{k^c94}O>Y8JdII5mR=r=Y->qSeIj z%^!Z4u`3k44gAW6je{KH0fqwX~bNDtQiq!*RU(p=T$NIp(&B3Dxty|>^#(7e$#FrYPK5io3Qa_N2W zvi<@!)>f5rrTz!8k-1>UCmx>ew0CbG!&h4hd~(n0ot9g{SuGsj@smfzoKViKyNepg zVf_w!Y>UU)#_?5@EY2g9D0^kc^~jCwWIFTi8pm?pn^;E2nGI7=4w`(`F>Mj>;)XV% z&2te~T+F~WA#*o3E-&XX+<0|F+6+&l>5b1-xV}XH+C0zZ68 zN~_6Oi#NUc;aG(W1qp;3&-ou#U+2crUC_~nF0C>oTL>)z%3O;wnMi+p5(}g(pt^(E zJ7x+%_EHY|I{{k{bvq*`g&F_9b2 zdNKII z-i#CEF4ZZ8caMTvmJjN;aMx7u5a&{Ga00r~#Xawq>**{6ZN3<4EI+5x7=OUKR<5B& z{!9uBO?AN0zTNC*yp+2Nhn$F84!U?@#v=B~0%TrA5#?efpK<7zZtm+T7Az~l#J$<% zzUd>Ra+iVWMC+T2Id;;?9}ZgQ&k;RO{YAhldgaw?O-$*M&jo)ttUN-x%@L1A#ezT- z2*^(lCXCOEJc(Z0E2cMJf>bA4CXuc-UwFlnju?yc{>oT+w4vez3~1p-;*-1Tj&fVQ zLf>DesbQhX_>6lQLGm$VSzir%*bo`!16 zurOB8aWvJFb8RdzU6JN($|BF;%E{B5(A~Ux5Q5d7yv=xX{ut}}Y|kCqpNRI1JS{3@ zY@asVr3g&~5n5NXcs}-^#f)7{(O}tU!91@ClT6D`zi079j3S3z4A~}YFWexLR*G{* zzfn|m=sc~st3iLxeYbP2Q8VYfa9zW7c|$JVV})#_eZ2*;f%2)2sk&e%OhJ~juZi5=&#;%xmoDLW^B|k_%H8%)BbOvQutAt^Jwy-4#INoc zV}Vt;%!-9Z-)e*W7lB^oMLTp$=jEQS;3V1&wucjR?iVW=xw52rrV?zV+ASe%grHB; ztAv4oIJIZf5f_#(N`>*A!DSg45)?nl9NZzIFyHugG6&Qe%jK&bJsEp?Rx zBaiR=`~@$Y{C)`|F;Ri*=S)1dTz)(j9*rtXuq;yFcYrZNRnE@MF!mY>!A#9T?aIOh z6cB*9`7{W{*0SkEvv;mki%eg`P^@)vVF$HeQX#vmdyA+8Ct5vUn+77vjdC-N<0qsy7qvah&LA zb#=3#eetbNQ2o1jy1_ZoFeU~vhf1yG^JGtGnR8bTpn1|KsngYPvFIS{{Rlx&?1EpC z$cTq3DOU7_4JO6YGNN-iT>3YaS|AJNy1GZdNIh>x198GOzDnZyeES}a0#bq~0=iqJ z)-5MN?latp(`Z=0lNeMzk|GWMBO8EeFB;)af9p><{-QFELG+D1g&3F>fli0_rcylf zdM#G=VnNr_V6NC{R;x35_uz{wL}{NgO-5Ff3N#8lBLv9Jp^r2rod-Ro8Tp%>0vxC&@w8 zuxz>{y}M9*LT*3rL`|*bsj9_hzV@llG{L~4bBblJn)`Bl30u0bLczObThmrVI3}NfrFvekzj35G+BS?A3EnU(QSeZP5)+y5>_NUY#)E{ zi%=}<$6FHEB5z(u3dtSu1DRs+YP0xRj3^>~Ov@N3TX;JE&1whvfuw|y8#k7D(Kk$C zuExh6#R7*zj}7Ft3E=0~IY-dI^K*2DvkB>v=upzKzNeEa8A9>ii9N zPON-TB*E{TB8zDu6E;7VNsg|gN!@%{) zT!gm3g2fJU=Fmuv8xu)EV6#vB1F9724Xc8JjP2v}{P=vB%Pd4pE-4iHiI{nc!KpYW zUcgmvA8*Y_Ykn7MsnIZLwu6kr6b`B&Oghw*SBFmcfdfY?@?PUPHU|BOFLYStZU~0J z7_Tkj*nQ8w1XQfwQX2fFW^1~N&-*K#78DYJBWS?ogPH5e#pS4p#O=_nWiHb(-V=6& ztn?fYmiiM)rjQh3d_(OcicXtO6a7kT*yPAaXQuLfRpiOEqPlDoAL|G3>X{eB-`p8Q zrecC*9bw1S47^yOAjJ>_CP552SszhIJf%rt-`*Hfb~RU3C+Zu(#B`bJN47GCU0Sfn zukac_hLRlQYq8X#)xBe2sR$uCGD*ef<4GMmw(fsqJf2?Y!FX(@&?@zamDH=G(b zX3yru}k5fo{3bykkUnWnuH zKk3UDVai!&!F>KocONr-t;H@UZag$%i+95Y;ePVS}oTkgyoRiJN?xw)EbBr`$OSI3xuLoTmX!|$^X zicJihV;`)dAY{uR{FmQJ%S}xeEv9#a6wR(FJGfO6tn!Y4cVj192xQzKewc;^E zRPjqV3~euRuu;)~@1#J^&Y;iTf<{GSW@3>?G?7eX;XRvJ0GEnQfIi{;e#K)f4L?jJ z`W-Sb3PDi?K%<%x4zD)OS+ntzo@wpv3|cU^+Tjs}QnWq2D+>}ugbv0&VAI@SGm+*8 zc|h3u_5q0!E^j7fmE37w*8IQ|5Bq#;l^BZmkO;4N(?8UuQPXKI3 z%zg530Cd(6lOu-WJuf`v@kt8)h7I{`fXW-&>RGy_dgTKHL<6o!R^b~O7&Ix9P2a&& zQL)Zx(wN|Cx=8@6*xcUs6q={`oW2^vY0Q8eTWL9zO`7H+12#|vTwkYBucBPrYQC~m z7NF7}h&*$;e`9(AZi*50eJ$D^t38uOU0{7M$2Y4q>RZsa^7sfj-M8T2A&e%9F9A(V zVrccAaX2_pZ1PTuwj7L`P> z1QcESUK;w!RzmcpGOerT(8>B8CCER=pG;f1ivVQfHkI7TM9cwXS>HctWFj4>>9B!{ zO5psbuZAFt#+f>22nWZwayBqDvNySfeLE=-Q&{`GLrCbVsu56TEsCfUNNo}T8T=lX-)Z<3dVgATe%9$Cq3G}4XB)vZoMB32D|w7X}sK-Fo#n)*HhxFnJfW#Aj zS8Rwfgf}84-pJo<^_3IE;@bLbRK=b?)ft_Rvm>rJo_p8kQjdyGN_iPS@(|O*SS+tyr5aNa$TvwM#1HPC~VGS|n#v^NNRdG^Ys=8@fIX+T~Ooi`g`8gdp49sxV^Og!M zEraqOJoYfQC&fB=nSmBSIY|HAn0Bz6v<#yajPJ9=-+WWOSX<+pPtvQg&|X<>Jda}s z#X4$oWZsrNm}E1mO6c`;YCX@uGnoS07 zgNSFW``0UWbdBY2dj-#YQS4P=I&0VzY!8YAUEGL%z^B^Vv-6>aSPzJx#9$$;fc(Hb zP&$tM+Y{adGDZd&lZ4@npn~9MI(V?dZVyU>dWUTI+ZXl;+w9i1?v7myzg%60)^)KH zalGJIaYZlCCBFFtz(o<$pT#MvQW9P;t913k#;UN{B1Y-eQ_@JVto5z0x#xR=L?&2e zfc6Oi2rmVD3}YVP(_LkNvO~jw#X8$vadp)XsKA4o4TjNH@ev@BQ4ZM*eFE*2t`eiU zYe&w-oU6xgi$va%Ad}^`1J2V;QYJ87blmCX+E){w0AGRuFc2Xv0*sW8pLU(n9ig>z z6=z?YJ6TzeDdv?1X{@;OGchPd;Yw^rwPC35coW8x3;3XTWI>?z0p0s9J!t{>kzQ1(mCgVtQ9Zof)~8XK>t z9P^w$*j`omCEb`JKPj-F6pQK&3{4)`yD1U8GJxE0o{TY0Y~$#i)jisKS}X~P=yz5H zX<$=5nJ6a@vDf@V?8b4fr4*gNcgC)imG6>**W0JI!BR-1Rweaa0R>(^Fvue`M1Qv(*bO=@NeHMNQ(8x4eF|! zK`dQuh}%xr;kSRLWU}_wTM}YPBi0~tpSU+-flfF}K?f@U9O$10yO5>b#s2$PTa>_9 zpt-K!1*E!?-Vw7ZC4bV$R&chrARq_ba!*{yU)D$4O~dR)FBj1;ukX?iJAex?#x~$G z3khStdCHiQxKg0&)3%`YVl3>Xa=IMZR4t})#X%x|fw7sKV^9BO_7hn<|~E1pAh zS~jbu)3sY`Jci%6+4tgehB-9+(z?Vr;F)WLG>dMm=~bS=zS72K(6+cnucz6(+@Z?c zlq8*f7w)vq z1hP}|BBRkJ+MDHQI&@(DUVOq~!#N6W=Ym}lL5iv^p^W6)D3jKm}JieFwI}U zT|`B!JV}#L5b5Eyy&Puk3L|pg&1?0+s5=XDZT@_A(c6@_O>xmKHT7}CMvOss`v5X+ zHx9ZDcuV=VjyEI9@uszu=1oCefN($>9q=m3#bIs@!ZteS9BOv_W8Bx|tEo?DJDv%B zjSX5vrMTMx_kn~k<%X&csHxP(XI%SmJV8hCg?60&afKu8)q!v zL942y!14zE!B!5DB^IHp|KN?82&(Gxx?3rx@LxYy(FO=RF(b|WjbeMn5KN{mkI$`p zTj+(!cY-8g0b9^WVA%dLhBT9jJow9KLG5+OxWOB}I^~8}GX}iXWl`hBW%zT+4UBE3 zseu=yx`7Helq zW6`~573t%08Z6Zk3j;6F{`JxFlvlGy?Yp1|Od!BiY&xz)XtMG?WmG~7E0@m)L{CAz z-a(M+6Sz!_iLvBW_9eL!HHN&?R-&`=l>e(EgH)DjZN?C$2*_w8PzuRa+QR&X<_sF^ z`sbl5=>c))p}zQ~wRgOK7qu-SAVLdzM05wktzDc>qVi*7KeJN4xai!{Nyd`?9HPHM zcmwL|ZFM=XaLPT}>Gr4oLD^QB9W0=NS1QWT0kqOYp<) zu7t%4fIMUwjp#s8GY!Vl)%gf6&!~fTMMv-e#j9S^>ylC<0n(nZM+@W)_evG_*bE3i zvU+RPv!VmPunrpA@BBw9R`Ll!c8m$JGy7;;wJ%BJk#OTbUgrcR2)H)|T+-2jvh*F7 z0yGm0TWcxH@gfUg5E1Y$eK$cJA10HSuJFbbR*n9gsmS?n3842JDUxxbhF>E@v49n3 z99lCCux=^^2j;))l5s2}S1_6eK@D-kfd63_@LqaF76`_a!$(iwPwKuD*^^|}&V8Wh zc3(LB?dzupBh1>~oU20|{G(A#)SPmDC<*__e9dxEE@xfhdZSk}WN|kHWXkutGTT4f zAdV%v(?y-^*0vg{z;L!q_nk-x6PM!Ga`vTT80ABOY2JGJAPTAi3I%#qaWM~uQTEUm zV#CoU|72qoIbdKdYwO!JYse31m!8{J^iwB8wB}DdB4IDQ-GA(KfA{^4N5N44>TchB z5JGCbnV)p^wU_YJMCuB_;+ExgB8gLW7b-~+uBhgwNd8-9`CVA^=qNhtjdUX>wK4qUUs{>nrCA+E0l`0jsbc>J#^X?zuR{{=66nN zb@0I?1J8>$Yr&S076pJf$A3Va!7q7tY7-u|C-7M`JJlp28U@sKPhpbH%lWqbn;pEc zfp4hVx1~I`1LZxmxc2!va$lC=+QhV`uR`!M5^!ZCoxIxCC@H zTxzD@Ms+R8q>OQh!#C&3+V)qbChH0{YzQnKF)U@I>8NgR0oZ5E84+B+HNjYO0ljSX zSL+Q#?uxO*0&$;=Ad;v5@qiJ4!mj;p{BR~m5x35hDP>ju;;3bVXJql!PB5NLMr#ZG zZ(1z0M<5liBWAFs2d-KIwVhAEs@vIopNgSkRn>N&oLEa|JG$I>x}EY)|NOQlII_5a zx|Q|#EhxWju~n#J3_sAi9i3tZmnLmlHAx%4e^Y$9V6Nq9FJ!Wg)7 z!#APkC1HHQc{Z z@T*MOG@=h{Qw{lZaIX}(3pCgBl{K?x3Fkj91xdg5(O#%=#Ah=nGb*wW(!zDQR|wyIj`NAJ zk0UY$h)XfwxSAwp=zE*+-mcCE83i{^WKM}-!RKUCl=O-TJNQJju;1^|Xk`BO4^{J& z?y(ExkJd<01+vL^m=l74t2~C4Mo=SjYZnyTL~@3l-iIRJY%J&NR6VO$|NMxC`k~tkU z=mtgBQ1}}etPqJhGH*^HmINC3oI+{k$g>W8@&X9TY*ajdECX#{O1}xq$uA`I(+;5hcy&8N7H+9cstMTQWYe$d=Z?*eK>zYCmzB;ll$@AzcrhCqB{*{5b1KY zgea`1R-+(K|J_u&F|0*F;|tz!%M&(&bm4b)@rjQ;U6$RjI32G>~V+4x9ivq$bE;&z~!k6uC)R+uXtdu(+#wU zW5ZnILx!(03P*NZ2<|~GPECfVyeBtdQWoJj9N;gW60%s#E+Q0AB4rJggHJ^BTmZRj z1QxPDn8gJ1MB}_ldWr#?=NO~KQKBq2mW@HJ)das^?eD?*Bnrq*Ev7Wf@{01tMyre| zBOFQvqx`6|rTByA0{6j0Kha?n<*Dj(hNRW>pgdqSN=&6fqM;`Yp{lFNU{nOJH~R~a z1pq`XO~xt`t`G1~YgvmZ&uAq-INKbG#)ToI7@{O8)cUGv!iK6h{_gY1J$xCj)RYb4 z^AJ3Am&{pR_`(!lfyeRh>@x$tUnbZv638H*RU<_0R~h%H-RnC>%KTKnIu!J`7ck2Qq2na zpuT8E_SAsTr5~klkVcn4ks_ zqDD3+IG&l^vNJbUSu8!48)eXTWRQ0-)*4M4?IXs&i}Y&D5T<4}X3<((M}gGQz|f5% zI@LHGT(fm&IeJ71G5dX!Lhij>JR!+#rJ{hwWi<`yO5Ne?E>)D4!FRe#iMjjSB)=YE zi!AtZu`HM=R$F-Zx&6O|Bao(rEzVts&M;|*#CT)uX^L~0MywUJ>VN*Y>MqR>jm?J0 zmy}IckPoEnu6^$N0*MPrD>7kmIXBT4e*i<}62SrSK<%zv4b{c*VAbJg@!TsT0*$u1 zq~&wHCVTaw=`r=@9Ko2O$x&vjaulk+07Sah-21ckKgk#)Teu8r!qy-ELB({(Z+hi+>Wi&Xs7aa2s%l+e zyT1GNw6&|fz1`NirecHXvp@+$a>Pq2st)RxM!e7UD+oi6p+fSx?7SU)rPq|%-ab(; z7za{}E`BI^3zt55-2b^uUS8g&UVEx5PL8UO(_l+j|moJ2lI z#{iK(KB#~zULjBYE=N0Kl(IJzyUmI%D&JD}O}|M(+US<|eRjtWvT`zZJVaB>A32^` zaLrWtM(SAA#QF}bpSnf);)vJ8B`|EBdFM@Rg#aM@1nG)%0*QY=XRge}AGa%|((3HetLC=ks>5IXaS7%#k&bH)v~Plke!DT!mPnCprze|Ewh4 zaD8n|a`EK3O17;yS<~!cdw*(E^Whq+0!?d)z>Qkz(eI;j+w9}^1LBNdeeWO+i^C(k z2AVY%(@o}`Y@u6%gEDUpkMjwKTa2S^t9(z5Z%Ee-=Q5VJoiCbo&W+NY;vJ4X>)#RQ zhQBQN=B;@qyD)T_+x|gOf4H53L~(gQt7dN!FaA!X%6xoxp`iwwS+oAMts{7<%YJ`2 zU0lo;+mqY9ew6HvJ9GE!awy18#Nh&Ye!S2_;A&qA`d$HIRzLAE<@4#iHTF-dn>}BH zV~t5MiHI&&Gby4z-*pyiRqyq_&e2UyaGFiAxxi=8b~#UqZJ1~>_aA3u-`ADz`F|#1 zU;gV1k{!ZEnR>PEa!uP^ERzN`0%_U$5nFjBr*om|0TQHE3!JvXYqvz?8Z8Lhv$Z{v zP%1q=xH%}zmpqY=MdSMRt-q)TR~T=FO#F}UbM4_REC(Bu%7=5Yq!@LXdQ1l~ef56( z?)x#`1D;UL@())G#*hA35Cl&pC74KmQ>fQzYZ>SKmE<@;NHNsSvSkrJ!C6UaWXZay zH-LrarsESOciJJAEMJDa4Q>qSxmIxP05por@0jcJZs?lp3xWNDfBL`vBqwz`xV;Lt zBRoFs9CBp%xg^>nWp^_;`G zR8lKKpKIs7O!)*{@o0C23i|&jX>Ev5&W>69Lz1o0-XM{Q8ySZI|mgNrZQGaiYV)w35#)+Lzkkl1!~8 ziyZ8ciRDq$`%Jl;WqtI7r^sMSU`z25ygI+=6rX-@fqrEb`}>+NSk;>RiR(i zla08b15Xu15Igu15rlRUEO;KLc6Bo7T}^bzu;RRi(49>6M$^e&U1wgOnVCkXR1=vl zr$p;kyIM^C`G9)3RM9j_R;%sJC^VneYH>CPyU7XxVIHVbxlf9VNu%HMLr%}k76$i?dS?rh01{G4O!x2-W^q{e(c7!0$f5LSI( z2X|MTJk)s_UjKviV#_hyDt5DRTz5qJ-;^j0h^rc_%3#yH+Z{Ny65X6eDpiDI=XFO! z{yhQwvsF2>jGILl04wpl`f~qhehX8F$(hZ&HLYU!uO(Fp%w=agljQcbZkJ(wT*8af zKN-k%O&<#MS-J(ViYnj1oDc*#V3UCgqtU*PzI?>}U(%be8F+WSwQ&2noO6*QoNsxYkWvnT^KFo2Vix!=59W}<+1>Qcw(O(}G!ln+NOf*N>a<0-19Q%}^a zjUHoM^yF@)Hj#w#Rg}`fOS<3_sg@);B~Pyb&r|71D*tkyt3Zy<%nqwp6FiuZRtBtc zRY#_?-|t7%q~8@*^*oKW<3p@@1zcxWxCt!uUWEAG#D-(wH<=~|Gn3&z7A$zTqRngs zz#rl^DMQA+oPpahFtfbmV3NytHoJ%zA1Rg5>{AwM291*hiw0umw;s4xp%|bj`SZ*Y zIsizH=J43CkO1vg6Hv44kx@k&ciCT&hRZjG^@+I0X8+E-i9^z4H?arhoI`lHhaHPS ztuAUYSO!K+gyT>E&R_zqq3_#S+6cqg&PS$0^EyCFvQm@b9S3~#FD(MF=N2WvE?bEy zoz~~2%Rj83EL)_0#Pb`mNq4`@q#Tt`;Gcy#oF3*ioAhe2{`0TsyU#0H?kohYw0z0O zLC8(Q#zt&#dgDruVMQdmd%A9gU}`GqWv7?_EHzX}4bf-o*~4?-qk^9Wq4#3M_v*GF zWqavEK8fdS&)EkAO=jD*7l*Fob2n|X0X@3k!lQWzU*EPu)d)HQbxR9JW?#CWxpy|5 zy}Q}RGac#DMsL8o^=Ssu`Wa%Tl=1t22z&q=9>n?P=}4DyO$9I6G@eS1S8h2E@$pAQ zEurg=zTVc2ur(vluoRgK%}3E0(@b*X0@3-JpjCfN<3U^q{J&obK^UQb4R_Y6)dKIa zMC-?#zq$bay;Mp_1l>E#$H>lqVWvd@4~UVM*jp>A#*`&tl`2>>7rx)M7~3erAv8f@ z9ChCMESn7fyul1F5EaRkh3~os3t{|UkmA6|HK8zI^HyTnbihv>pMoPY2F|(VEjvN$ zua9tsq+tV5ng>uYn1ulD>;z#07(ZL6D9YsEFmZ{2S85Gb+n}%ik0ipdZUdM2%inP%kS^R%Q!X<)zE${yV?KlHDva#gLKk?!AtV%vDA}F+puu^E{B3`HX zj75a|`C|AUmfUkL^XW31c9(nisyi921>Dz@#+~u*fkogypZO~?kHm;ug9-l>dYoOk zY8orOET4nR23%{vmS2GPZD0293*#{?Mg7%167gzR*a`Dm2C*5m$Ny$2m-IyR+OxByq!wvtYy95dxO?Zy!7G9S}WDCL0^ZX)lvTzm?Br#{WmB@{)Tu7HcBm-ygyLi#Q1V*#c$y&x&-HSHMNhjUfa8efm@R0_uq%5 zy*~UgE=L%Mt6Ln)XHT(SS;mRd|NU-ML>kFCtmXVSs0k}#v6)8Faq$=D`zy0ig@F~! zdxBrOPz$16*17%tx0X^R6f^*s5kPmU$bkz+LWCB5od?G~09jhfe+>4MG%kE`?z>)& zX|l-s4M1@tcn1eU)U$p`A&=TQTYvFPjp65rnSuYdMp+Sj4>Jj4Kx7qY#=kN`8icjF*>gpQw^qsT6T_oBQD z(&PZK2f#Q{`X`p7)WJj#kpb-nEynrawRK(+K)B->68MbJ#A2T!|2LW87~efybiSrR zLh#P_->I6pa8)}D%)C6q@+}6g;z$@!1d|{KxFd)l#JCL?H2**TkU5STWg?#|g9<`Q z<6Q7M5+SKY=i5{Mh;=*%M8*#7Fja5h<^K1-KyrZywL(o^Qs$33a5agbC_^2TG0q#M zou8ktbn`?;c#7>ka;ET(y;o!1CsxgP=?a&rU9`16vt*12QnwJL$A_#EM?a|vI)s$2 zo;4(uY@X&Hq3=voYZhO9emKr)B6Yn`Bwo>}X?$;%W=pRJE(wr6iC#X-e70y1viwDX zE$B-dl(i(GbnP)okvV+F5X}DaGpLgPUwzmTQySxgpIFd?!a@q?bc8%`=HRpbfA#@( z?hwQ!L_Yi`^(@h=@#q5)nsAa=1W!}-D>Ug;XeRhGj)sNZ8=Us?Mz<;lvAT1+AUC~5 zb-_`W9UCN`&iy#k>ksm%?-Kc;8i*ygJvIE+Wg-~uKSI5eM9q2`+ecWg1io$jjEnS0zfmIs^NhqkL@M(s|kHkuXEW0k=Qdg z8RC25;%*|#GNn!2=KC2*9!alkJ{g$2p%pYn0;{uU-EUGD{k^L@G+v@=a9u;nou@Z5 zq;XGUR`7VMLq^R|up}ppWzWBkx#j4KvQu|I+>=(?k_@}w_q!!795jVycFEI;`%2^W zIc<$`Wk|LESbCptYC2PWkkX)U^FjHzQ*P$wiOZ)y-{TGYVn+BhUOdU7E;rVDMvwI6 zUUk+gE>P2B^|ouu?G59Y4f}lrO1BUwPOL=shQQIvC}Xe8Iio z1|2mwpr)}&RKs$2aV*xZ6A=;l4e^mQ8qlD*GqJhsKAJ%mtX&$?10mBw%L1AuZKfJ( zCLO+)MfQ28KII8d2jg2V<5{hxzUY>c@|P)Wgjt44w67PxG9J*0iZSxEZu=NKb=&_I zdZaqv{L2jyp&-O#X%8n?Uhr(vM~AN}8baIewmr6G=W{?nd6(LRyWo0394SapsuU*V z!Ow2ATS>aEny(EsW)qdCfR6s_`#~sMr1RhgHksDQ@UYK&*-*{m7={OfdbKKC{QV}Y zu@W>P%F4<+9Q#QTaW6Yk<=o6Kn?%`CLjwbeS?pIq3^?oZNYbz6W;}TMBWhOS)TSBN?R0)eSojNY4)Q4Pa0_v0T%6`{>$#tw&$y_Ts)^qfzJ}VGxrt=p-hvyo z*}yEtnjG$H9n{%Bx9mMwj)J`h#s%{z5EQfRw}!O`xvbO`^0TONvxr{V^y*37<9^A@ zySBB_8I-}Zc@D0*p3iXL6C!cra}GK+R@DEQSQtKr zZj#sivy+U4=*1(Y_KH;Z#pd)c_qb@)tKH82+z zGFK)R!`bszMswr-YHJSTD-7b-R7mcwPV{(0Spcd>6#CF+j{WK;YUu<1uAM){Td^Tt z-u8=&-$soGrG)3Exm}YxUfiwDmdHI4E{V!6TB!ZAa5V=qN(g9Pb5?@3#S8s%s&r-{=_ct(M+dH;vV>pm>XdUS-UJX|UDAb~FPP)1J9^>}Jx&dMoP-twSf0|SPL z#8jrRa*0JeL&G*c=t~D8P||*d(5hC58AmUUh{Qs*+VYsxQz!j zHm6G8FMMeS*#_x1vS?_JFD;g5EVZ~NfEXCUAQdP<{8O-gc~G`7wnSvKhHEs2g)o~3 zkS<>lR9oIibrzfXh`>32cX-k+88%}vu0Yk8@4zIKqSN@S81X_GVb@qg(}5JYyy$hVbE>(=Vebk}FH6X20&7)bjgZO5#e{Y_;e|Mxpi{kuH^$MTE5496`GCg@C2~6TN(9?*h6(kgcWM z@_NpCXGU}<1l;*wZa1`AYW$|PZ%9xn(?u0VquuSQRGufKyd;F0W^3Oy05iKz>OAnr z*oKbp3|U^AD>d;QyBvdaLCfC$MWj%)A%?X1#w@b)tb)jiCuu=GS>S4COS~LP^g>Fy zck{`%gCOzO0W($aUs*3bS5?vgKXeP$%-pS3lv>ZewC+~Pyq1d;B*}G<_~|gY=eQ-h zV_TQNWqSB4v#3t|+snI|oxm<|lD1k>TY)&d*^4EmJL>0s6s^R zqMhHijP$lZwYbPZ`KQBfAm3q6)YxGO*Nn9caao1+g0s8=xpZVdwG`$0iuIhH|X5S<7X%;EnX2~tX+yC z&hzK7te4X*+u|th`1e-hX@Z7YIIMa@c$KyDKU{S@$|>t65^n=!C&tLtE#;1vg@tze zrqC0so$s$%>?Lr5_iC&iFnrm`e_Pn8XU;7poUbg*8;V-zNJmz_$=Dz+b$HX;5|ySE zd#?Ks5gEDCl%V{>*@9J#tK{nZYk`Jq)>n%XQi38he?$B$ys8aG4uV-KWw6b9o*i&_ zXI~efST0frP?^_m?<>Xf5_xldine9mN9}Pf$J9PvvOw-GCA=^{2lCUHW@BX~*uT0q zCU0KsPvrBqJlp(k*zaVGZe{5&KtvrI=62$`b(EwP8`RLDhRAvA zrYAP*vsX!-Nw4kXQQIb)amD4D>Z_u3WS)?`c03-N+I@f>`JKxuMl1T^qy_PG)v1#Q zH}Imp_@A8|f6fk2Y}UR6+iZ^4s-aHPGf#SP{O6GpuY1$w>`E^StzuYz(s^Aq>H}TX z5*6XAbaq-^!@=8yA5SK69Q1)=RK_I2oy<{X_uP1xH@rB_tiQpizU=U`e1#h1+9;4* znwqDoJV=GG*f!7SrC9)PP7TT5yiYl`uEjmwa*z@78Yqp&Lj;n1jPRuQ)q-3iW7bnF zj~i#gmX-Sm#f?Y3?9zwVGdPZWQ>j;D*_&}n;VpT;!f!Wp69={rRuS<0Ft&3Mfd)71 z>_^fV)NRBS_%LQCpZhk*b#6MF;{;0)Q2>}7ty?En&53;GTgQTIsngX47Y(Gc-|uIR zY+i9njEH!`Y!pxEC~#||?kCG%Y_?wz^SkZpyCkmdCUBK_zKxcK3}7Hg$BZ*lq&VBI zQb#toxNt(oJuYVLHuiut=8g}6B|}JhO0>VZdU2aiA6^-g{Na21v%#vyzP8D8NW7&O zQ~anUa{-hj*euNJ(7!8+_?}R2_iildDtKjiIs5(l_vr^A#F-91Xtv~&_)k`fJPUMy zU8L+i=XxO{Nah;mv^|*vxH-kTFNX1?^;Ic9KZOG+TX6rZ>32Q~8b4ofr`}RwQ>2*H<1*7qd{mU-R>)*Ykc* zkd*r2HHbz~Mzt?RrRXc9^41t?tpX2F*JZCse(oW+`OM7;b1o$%rFpW>`=e_uoFw^N z+{WX!$k+8^Aj3AQ!2c3yV^HsQH#q-wJ;>}JeFbL~f%45wH6w5<)7%{Pem4VSSd+6* zi@|8f3+NUZg~8%ibJg47RfOvrZ!9J&-Tx#wC=XXVRDi;g>wOVW-a|mBDUH^A>EdFs ztGb{AUhDeY80N_$EDGv*oLj|6onbf3HFIw-9?(M*&f8~YMq;xmjE8idxf~eixkKi4 zM6E{22in>yNLI_0+TC5!7t?;;91z@I#lFSCj%>a(x;AGP*cBBqcZP`L@z%f)qkM-1n{-HH~xQ1(Y5_G#jMQ=%ScsN}ag%^sIi} ziAKK?H0+#>ic-Y+2-qpFh%hWGe)l@PHKuJ{ z{Nf%ek*cr+)2ZW(iPFLryMK@##a><8g4E%2pgItKw(y_+)OpTjnFtMTe7FP-iqU`$ z$L%~BFM3#DU^H@(X2pK@2o9)VV#JrJ`(dcbW&OLxsb=Q-T+yR71*c}F$^I$r=`TXMb8=tEm;88jv8XBR*4%((zJvhq=pk(Jw< zyb0ar2D`QddGC|OUH2_9A|c_tue2}v^P-pT1TiyZ#o@%7ohQU{X#Q@5wOpC%PoXNo zaLa~(=)))`;)3Ih-b6LL6}ZR?mt~+klub2af(kg=BcL+u^qj$AhU<8A2dY!o-}d zFKP`oQbw4=f@g`>&WZ+%+#&IjDXuOmOx7t4lr2!3gMi$u7Yq!iCS&!pkI2EuK@&XZmXs@uKUB%3>rA-n`3F1ZKOECX?ys@XEh*bB$0k`j z$&}M#L_)B1P1A?3wj$TNe$j!*gQ)$V_O1k~$z%J6qO@YQbt%;rAF&n%6|!$^F1UeWa0LW{2mwJzFbS(* ztX7dyL=;5Xiv?UkK|mJ4h)9)1i!36mNR$G0Np15G4nNH!lsOr$7wi>U+MTllEFDBl1?IL0zuDWmap#_AZ;Oz-0F^f$)E?7ZA?*@}Lv z>Kempu+^Vlo}Cdk-{RDrSmKXGXOFdn8mkq~l>=6rAB$M7>`!K?3;mKT#3uaj>(3?bJi1#WEX}!AC&AsL_2wMIz3JNL zl7_T<)UT3WiTML{HA5@yDBO~@s^H|0Br^*eiI5qqq211%JC^EZ6Q#NMm#m!;efJIX zK1u=`WHOe)@PkRDCd6)td`@w1uh}Y$Td`|p(zIB$DB2;0@G8h;8It$D>mT99ORjDY z${J8V*cp}H*gd7H z#{NcAPcSdE8d{vp;wXjpS{+eOGS zbkwElXOT7b5ZNp5BrrNh2b4?WbO}rJByHM{!#+yVSz@DU^-%X=+nKXFg6|U8_pXA- zJzfIXYQ*CQQZ7ul4J&IfkVhR^D|MQpZ?u}CD~`nJ>+5utU+s#bW^Zv=Yywsf&-miY zXt777X8YKH;A>1ye`0ON=cQQ-iY!Ipy{h?(7sq9~I`CoJ4wx%RezDIfo;=GuZS=rV zea)AIFV=N0PcT>rFU7i1b&aOsX#9Ohf9cw9d{N9SEiFxs@NyZ9G_R2Ki}dq!QWe%)Sd3tDC5J0V1KrzQD}Tx>z(+r- z?`-BKP4^I*6@s&J^9WWn zuGwSLWxkSV+0v!WlBF|d_*F8#h!}P1bKJEwd$`rNGkY!=geDDb3ac&$EbPoL32tsD zYZjHeH^}o7&%F{`Y@y>=dKW`f?+J$;dNNXJQ+hJxUW*5+- za{8|*tN6KUSzc6d-3Z}m7G_ynphb#zSKu8l-nOlK-b}u&5I?rVhJUMim;Q=kHi8hl(+VLjfpMve(!}j837P zq^Cjm0{ytJFXT+u_;K0WL5gYi^ap9DU?28MMq;n1CVp3n8DXiX-Rf)bk1?8^OilM+ z4=WGx0QBZqhvm0cTyAkFJ{_lTYX>bnUbbuZHxjobYgDFO@YGy3YNVl*^2kIE)j)^b z5`-7tJ)`v8k)f=)m6r}f=7?R02X|9pD0*`yL|vWc_W9|OrHpV<{Y{@0eKWvB9`?yp z?*iObl;CAi%{W*xVzmg4-Oj&#db=R%==w5=K5f?3ZFd}nh6`0gz~(m*i&}VI9nG%o zweH3FJ}u$` zLT7_VYj1}6@GSFN9-e!`EJaPAFZD)|arYy&M&2CE+*AIDuBWxuZ&jp@P)MnJ?6CIx z>UPPY+NMMQ@ZdlelO`$VR-|mSSABNFA-s1tZPwR)Pi~z4JYyIhN6Fi$$AygPO8Ijm zl7g?<{GYpHeFK$O@n4)dos;tl+-i3aY|$Q$DJ-zt1T1~x$-dY4+0w&5-EXf>yH&N) zu+7aMmQX2StcB3LeaBcT#s-umcd$1SKrhGZF<>ZOD~?L;ztVlZ_tq+&ac*ll%W!iF zyFSByD6l8E+4^DRv0*+ze5@!**R$2>X@xF07#HJob1h=v{+%gyeNTE5x_Z9UGz=W& zHe5UxQQR6Wt4e8KYw#q@_NGaREMCazg*xd=>ae{bV}XR zku`kEJo6T2(N~;~k>e23T4dXX@GLTEJ%<^wKUSqO*QZ_yxsy{48CVbDEHNYXK=r<= zdkZ~_0oTB(OPFw6XvQfQOQWwUbH}3Az*`1?u}f*v>%J>kqJKgcISX#_poV07w~_vU zX}0ji3<$^yhfOG3hmi{JU#fbQlOr9{qQSB3A3>v znm=5j9o@)FgEXN^b`K{d%_o@6y}YD1v%Rj^T$n#6dbG3sMV>4fmo(7<4n^}H?Q>R4T-PiWaWA=Zl9hlaGY0rARWX820)A0}w4%T4`n< z2<_MZxGyV?t9?umBf$u7y4MR%)hf(r8P?v=Zt9G`z*(3L@H&*i9}@+=y71YF3I(odD2_HP0+g6H7_A7{mqKey-Hv0S?)O83dqsB@l(_h6=Nh2qug)dvFg6^ z?0x1}c+&*DMwJME-JD!}XIhL4Re5-}GR>{6QS2{;Asa6CeqxzbQ4AY5m-s)xLHa5P z^vYUNZr(Jhja@K*fpMH+ekPpk&dzuqFq&#B-#PL)n$HeC3jgo86Shn&-Mt$VFF`h? zz#?b67V&3TYm2JW&#+EDI&g=^dYN!GVUqwTA9=9iam}XZ@YI1cKY{8bJ3X&+Z*WoH zU!4i@zvOk+Ox2~TB$nqJFgR@YS8`2#;z#Qr&>uj(=GU@k-1wF zyZ+;l_)%=P$&`%-z*i7SrL?)%Rd04IT?CPcnHE6f|Hc7z!{Cy>9x-f3vrigCXz7?Day} zOG2JlQ(V;~J+lF?M?~-`@+p%>X#YP7L#xUv3&s?gEL$#*!?borO6+}(iUbN8i$)4M zI+&fFE=)AWl)lfAX~R>*>~P)3lhznGTiY`gF(wYSy!~h#fl5=vY+^dt@8_YZc(Ni! zpY6ov>~OKRfyV2YZVoogjT~!FMa)_U9@m)3(PulmuvttN+^vY&;NZk#a?qF!PS!l; zI;IWV7CIjPHn!$CbJ0MCF^6gEV8df`&^Qu$ymu}dhyEA+Nw2y(v*0pNrKhKe*}`Pm z1Ce+djsQO=SoMf#uPqFizW7s=V7ie+y(jirzhKuK7e_NYz2;FlQD;Z59BQ|*`H`c~ zKbl{r6cdw%nw~mc?UKgoHO_L1jx&va?^6BSc19nq7C4RH2gN^WHPK;GDQePSw^il; zWI#c9)?~6+4^i)v)^K6kk)u^gF?-XdtDPUG`-TAu=~S>(?k!Kxs^4;WyeFQHy73(} z_+WPbKoaglDAbAxf%T7z@7cHS_&fAYw0qf;rP*-q(@CQXG!{-0-968z%TUkmPDr)+ zk0;^}DEr@~$y)P2Y5Z5E(QFir+AE*(r-tLVY4DbpE`j6PKByyKwEZVqF0#T)*Z<$K zoPVS5ub9KX-s(km%RH15VzK_f*w(bjqpmd+TaH^dFd&o68e&2Ir1>B8{D1D!?WZ53 zOl3R?dB$6n71WJecOZL`N&k%r(X<6p1B$c&9emr*Uvz4JeHK5=-~C%;+@m1t;x{FH z-%Yw~R*?E;@VVofgy?=axIx*m1X;Fkg@_P4#drRDYo;N3+#^r&bRQHp{0$No8L6Q5 zB0&l=cG2%ST&KAxMZ0&t7hy8}U&#SkPe{b@{;eOxO3s8o|KO-cc4q!WcP2+z6UO2! z>a78o(zc;p;X_Oy|B;;9;MVbw4GRHL%^A5#k(kFswDi6nO$ct%RR0##G|*|XlKqQQ zJh)@_yXCqnLVog$>c}Zb`JFV;6Dxi~i+^|a26JTnkPgTWVHi=EzsW#|TRs(5 z;NPJNMTqCwHanO+v^mCj-3ByfC)0z6#z-;6+KF%diEjf-KnQF=3OYJaz@hOZ=w>?< z@n}4GqDVmF5y*nn647|-M3Dp`zqE*efC&U6?Zp6xCSb>JGQgt=2wl+BfPf|tCyGQg zVZ3i>3V&~L5z_NGE|PL!>uLkIMa|fA1HuGOlcI@7@8|Jcv@jSKPdgV|J575w+uliv zXf$ou&KPw7MgX*U4s6ysz&dEPby|2Vo{Yug@i-EJio>c;9t|P>?P%jLOy8Pk?Zmc+ z!2x_B_(w`O-G#|oV}o>xHYXre0Hqvwo6sy*Cnpdda_<&vPqr&an9gDXG6QrpX&es@ z(@qhKCSnz_?>=ZUi9{fw?aS*LC zV^DBJ8M$Dw6g&m=JMOI%3I2=)y76Ofg zljV&_#A0CyzbAVVnJ6m*&@?JdX5K)b@kE)nP)8t5s^f929h{gPNQ*!s#KDV+tQpL9 oHk*eg0CiFu!m?wd3F8JxnrpD;@TBVtx+0ROimIyX=^GUP3ELnArT_o{ literal 0 HcmV?d00001 diff --git a/carousel/generate_v26_pdf.py b/carousel/generate_v26_pdf.py new file mode 100644 index 0000000..cd54717 --- /dev/null +++ b/carousel/generate_v26_pdf.py @@ -0,0 +1,1072 @@ +#!/usr/bin/env python3 +"""Generate LinkedIn carousel PDF for diff-diff v2.6 release.""" + +import math +import os +import tempfile +from pathlib import Path + +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt # noqa: E402 +import numpy as np # noqa: E402 +from PIL import Image as PILImage # noqa: E402 + +from fpdf import FPDF # noqa: E402 + +# Use Computer Modern math font (LaTeX-like) +plt.rcParams["mathtext.fontset"] = "cm" + +# LinkedIn carousel dimensions (4:5 aspect ratio) +WIDTH = 270 # mm +HEIGHT = 337.5 # mm + +# Colors - Light theme with violet accent +MID_BLUE = (59, 130, 246) # #3b82f6 +NAVY = (15, 23, 42) # #0f172a +WHITE = (255, 255, 255) +RED = (220, 38, 38) # #dc2626 +GREEN = (22, 163, 74) # #16a34a +GRAY = (100, 116, 139) # #64748b +LIGHT_GRAY = (148, 163, 184) # #94a3b8 +VIOLET = (124, 58, 237) # #7c3aed - v2.6 accent +DARK_SLATE = (30, 41, 59) # #1e293b - code block bg + +VIOLET_TINT = (245, 240, 255) # callout background + +# Hex colors for matplotlib +NAVY_HEX = "#0f172a" +VIOLET_HEX = "#7c3aed" +VIOLET_LIGHT_HEX = "#c4b5fd" + + +class CarouselV26PDF(FPDF): + def __init__(self): + super().__init__(orientation="P", unit="mm", format=(WIDTH, HEIGHT)) + self.set_auto_page_break(False) + self._temp_files = [] + + def cleanup(self): + """Remove temporary image files.""" + for f in self._temp_files: + try: + os.unlink(f) + except OSError: + pass + + # ── Equation Rendering ──────────────────────────────────────────── + + def _render_equations(self, latex_lines, fontsize=26): + """Render one or more LaTeX equations to a single PNG image. + + Args: + latex_lines: list of LaTeX math strings (each wrapped in $...$) + fontsize: matplotlib font size + + Returns: + (path, pixel_width, pixel_height) + """ + n = len(latex_lines) + fig_h = max(0.7, 0.55 * n + 0.15) + fig = plt.figure(figsize=(10, fig_h)) + + for i, line in enumerate(latex_lines): + y_frac = 1.0 - (2 * i + 1) / (2 * n) + fig.text( + 0.5, y_frac, line, + fontsize=fontsize, ha="center", va="center", + color=NAVY_HEX, + ) + + fig.patch.set_alpha(0) + fd, path = tempfile.mkstemp(suffix=".png") + os.close(fd) + fig.savefig(path, dpi=250, bbox_inches="tight", pad_inches=0.06, + transparent=True) + plt.close(fig) + + with PILImage.open(path) as img: + pw, ph = img.size + + self._temp_files.append(path) + return path, pw, ph + + def _place_equation(self, path, pw, ph, box_x, _box_y, box_w, + content_top, content_bottom): + """Place an equation image centered in a region of a box.""" + max_w = box_w * 0.82 + aspect = ph / pw + display_w = max_w + display_h = display_w * aspect + + # Shrink if too tall for the available space + avail_h = content_bottom - content_top + if display_h > avail_h: + display_h = avail_h + display_w = display_h / aspect + + eq_x = box_x + (box_w - display_w) / 2 + eq_y = content_top + (avail_h - display_h) / 2 + self.image(path, eq_x, eq_y, display_w) + + # ── Dose-Response Figure ────────────────────────────────────────── + + def _render_dose_response_figure(self): + """Render illustrative ATT(d) dose-response curve to PNG. + + Returns: + (path, pixel_width, pixel_height) + """ + d = np.linspace(0.5, 10, 200) + att = 1 + 2 * np.log(d) + # Widening SE at extremes + se = 0.3 + 0.15 * (d - 5) ** 2 / 25 + 0.1 * np.exp(-d) + upper = att + 1.96 * se + lower = att - 1.96 * se + + fig, ax = plt.subplots(figsize=(8, 4.5)) + + # Confidence band + ax.fill_between(d, lower, upper, alpha=0.25, color=VIOLET_LIGHT_HEX, + label="95% CI") + # ATT(d) curve + ax.plot(d, att, color=VIOLET_HEX, linewidth=2.5, label="ATT(d)") + # Zero line + ax.axhline(0, color=NAVY_HEX, linewidth=0.8, linestyle="--", alpha=0.5) + + ax.set_xlabel("Dose (d)", fontsize=13, color=NAVY_HEX) + ax.set_ylabel("ATT(d)", fontsize=13, color=NAVY_HEX) + ax.tick_params(colors=NAVY_HEX, labelsize=11) + for spine in ax.spines.values(): + spine.set_color(NAVY_HEX) + spine.set_linewidth(0.8) + ax.set_facecolor("white") + fig.patch.set_facecolor("white") + ax.legend(fontsize=11, framealpha=0.9) + + fd, path = tempfile.mkstemp(suffix=".png") + os.close(fd) + fig.savefig(path, dpi=200, bbox_inches="tight", pad_inches=0.1, + facecolor="white") + plt.close(fig) + + with PILImage.open(path) as img: + pw, ph = img.size + + self._temp_files.append(path) + return path, pw, ph + + # ── Helper Methods ──────────────────────────────────────────────── + + def add_connector_graphic(self, position="right"): + """Add decorative connector graphic to bottom corner.""" + if position == "right": + cx = WIDTH + 20 + cy = HEIGHT - 40 + else: + cx = -20 + cy = HEIGHT - 40 + + self.set_draw_color(*MID_BLUE) + for i, radius in enumerate([60, 80, 100]): + self.set_line_width(2.5 - i * 0.5) + segments = 30 + if position == "right": + start_angle = math.pi * 0.5 + end_angle = math.pi * 1.0 + else: + start_angle = 0 + end_angle = math.pi * 0.5 + + for j in range(segments): + t1 = start_angle + (end_angle - start_angle) * j / segments + t2 = start_angle + (end_angle - start_angle) * (j + 1) / segments + x1 = cx + radius * math.cos(t1) + y1 = cy + radius * math.sin(t1) + x2 = cx + radius * math.cos(t2) + y2 = cy + radius * math.sin(t2) + self.line(x1, y1, x2, y2) + + self.set_fill_color(*MID_BLUE) + if position == "right": + dot_positions = [(35, HEIGHT - 60), (50, HEIGHT - 45), (30, HEIGHT - 35)] + else: + dot_positions = [ + (WIDTH - 35, HEIGHT - 60), + (WIDTH - 50, HEIGHT - 45), + (WIDTH - 30, HEIGHT - 35), + ] + for i, (dx, dy) in enumerate(dot_positions): + dot_radius = 3 - i * 0.5 + self.ellipse( + dx - dot_radius, dy - dot_radius, dot_radius * 2, dot_radius * 2, "F" + ) + + def light_gradient_background(self): + """Draw light gradient background (top #e1f0ff fading to white).""" + steps = 50 + for i in range(steps): + ratio = i / steps + r = int(225 + (255 - 225) * ratio) + g = int(240 + (255 - 240) * ratio) + b = 255 + self.set_fill_color(r, g, b) + y = i * HEIGHT / steps + self.rect(0, y, WIDTH, HEIGHT / steps + 1, "F") + + def add_footer(self): + """Add footer with logo.""" + self.set_xy(0, HEIGHT - 25) + self.set_font("Helvetica", "B", 14) + self.set_text_color(*GRAY) + self.cell(WIDTH, 10, "diff-diff", align="C") + + def centered_text(self, y, text, size=28, bold=True, color=NAVY): + """Add centered text.""" + self.set_xy(0, y) + self.set_font("Helvetica", "B" if bold else "", size) + self.set_text_color(*color) + self.cell(WIDTH, size * 0.5, text, align="C") + + def add_list_item(self, y, icon, text, icon_color, text_size=22): + """Add a list item with icon.""" + margin = 50 + self.set_xy(margin, y) + self.set_font("Helvetica", "B", text_size + 2) + self.set_text_color(*icon_color) + self.cell(25, 12, icon, align="C") + self.set_text_color(*NAVY) + self.set_font("Helvetica", "", text_size) + self.cell(WIDTH - margin * 2 - 25, 12, text) + + def draw_split_logo(self, y, size=18): + """Draw the split-color diff-diff logo.""" + self.set_xy(0, y) + self.set_font("Helvetica", "B", size) + self.set_text_color(*NAVY) + self.cell(WIDTH / 2 - 5, 10, "diff", align="R") + self.set_text_color(*MID_BLUE) + self.cell(10, 10, "-", align="C") + self.set_text_color(*NAVY) + self.cell(WIDTH / 2 - 5, 10, "diff", align="L") + + # ── Slide 1: Hook ───────────────────────────────────────────────── + + def slide_hook(self): + """Slide 1: What if treatment isn't binary?""" + self.add_page() + self.light_gradient_background() + + self.draw_split_logo(55, size=60) + self.centered_text(120, "v2.6", size=50, color=VIOLET) + + self.centered_text(170, "What if treatment", size=26) + self.centered_text(193, "isn't binary?", size=26) + + teasers = [ + "Dose-response curves for continuous treatments", + "Callaway, Goodman-Bacon & Sant'Anna (2024)", + "B-spline smoothing with analytical SEs", + ] + y_start = 230 + for i, teaser in enumerate(teasers): + self.set_xy(0, y_start + i * 22) + self.set_font("Helvetica", "", 17) + self.set_text_color(*GRAY) + self.cell(WIDTH, 10, teaser, align="C") + + self.add_footer() + + # ── Slide 2: The Problem ────────────────────────────────────────── + + def slide_problem(self): + """Slide 2: Binary DiD Loses Information.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(30, "Binary DiD", size=38) + self.centered_text(63, "Loses Information", size=38, color=RED) + + # Visual comparison: bars showing binarization vs continuous dose + margin = 40 + panel_y = 105 + panel_w = (WIDTH - margin * 3) / 2 + bar_h = 14 + bar_gap = 6 + n_bars = 5 + + # Dose values for illustration (varying widths) + doses = [0.3, 0.7, 0.5, 0.9, 0.45] + + # Left panel: Binary — all bars collapsed to same "Treated" width + left_x = margin + self.set_font("Helvetica", "B", 14) + self.set_text_color(*NAVY) + self.set_xy(left_x, panel_y - 16) + self.cell(panel_w, 10, "Binary: D = {0, 1}", align="C") + + for i in range(n_bars): + y = panel_y + i * (bar_h + bar_gap) + bar_w = panel_w * 0.85 # all same width (binarized) + self.set_fill_color(*RED) + self.rect(left_x, y, bar_w, bar_h, "F") + + # "Treated" label below + self.set_font("Helvetica", "I", 11) + self.set_text_color(*RED) + bars_bottom = panel_y + n_bars * (bar_h + bar_gap) + self.set_xy(left_x, bars_bottom - 2) + self.cell(panel_w, 10, "All collapsed to \"Treated\"", align="C") + + # Right panel: Continuous — bars proportional to dose + right_x = margin * 2 + panel_w + self.set_font("Helvetica", "B", 14) + self.set_text_color(*NAVY) + self.set_xy(right_x, panel_y - 16) + self.cell(panel_w, 10, "Continuous: D > 0", align="C") + + # Violet gradient for varying doses + for i, dose in enumerate(doses): + y = panel_y + i * (bar_h + bar_gap) + bar_w = panel_w * dose * 0.95 + # Darker violet for higher dose + intensity = 0.4 + 0.6 * dose + r = int(124 * intensity + 245 * (1 - intensity)) + g = int(58 * intensity + 240 * (1 - intensity)) + b = int(237 * intensity + 255 * (1 - intensity)) + self.set_fill_color(r, g, b) + self.rect(right_x, y, bar_w, bar_h, "F") + + # "Dose preserved" label below + self.set_font("Helvetica", "I", 11) + self.set_text_color(*VIOLET) + self.set_xy(right_x, bars_bottom - 2) + self.cell(panel_w, 10, "Dose variation preserved", align="C") + + # Callout box + callout_y = bars_bottom + 14 + callout_margin = 35 + callout_w = WIDTH - callout_margin * 2 + self.set_fill_color(*VIOLET_TINT) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(callout_margin, callout_y, callout_w, 34, "DF") + self.set_xy(callout_margin + 8, callout_y + 5) + self.set_font("Helvetica", "B", 14) + self.set_text_color(*VIOLET) + self.multi_cell( + callout_w - 16, 10, + "TWFE with a continuous treatment is biased --\n" + "negative weights, contamination, and scale dependence.", + align="C", + ) + + # Gray annotations + ann_y = callout_y + 42 + self.centered_text( + ann_y, + "Binarizing discards the dose-response relationship entirely", + size=13, bold=False, color=GRAY, + ) + self.centered_text( + ann_y + 16, + "You need level effects AND marginal effects", + size=13, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 3: The Solution ───────────────────────────────────────── + + def slide_solution(self): + """Slide 3: Continuous DiD — the three-step procedure.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(30, "Continuous DiD", size=36, color=NAVY) + + # Citation + self.set_xy(0, 65) + self.set_font("Helvetica", "I", 15) + self.set_text_color(*GRAY) + self.cell( + WIDTH, 8, + "Callaway, Goodman-Bacon & Sant'Anna (2024) | NBER WP 32117", + align="C", + ) + + # Three numbered step boxes + margin = 35 + box_width = WIDTH - margin * 2 + box_height = 42 + circle_r = 14 + step_y_start = 95 + total_step_unit = 60 + + steps = [ + "Compute outcome changes relative to control group mean", + "Fit B-spline regression of dose on demeaned outcomes", + "Evaluate ATT(d) level effects and ACRT(d) marginal effects", + ] + + for i, step_text in enumerate(steps): + y = step_y_start + i * total_step_unit + + # Step number circle + circle_x = margin + circle_r + circle_y = y + box_height / 2 + + self.set_fill_color(*VIOLET) + self.ellipse( + circle_x - circle_r, circle_y - circle_r, + circle_r * 2, circle_r * 2, "F", + ) + self.set_xy(circle_x - circle_r, circle_y - 6) + self.set_font("Helvetica", "B", 18) + self.set_text_color(*WHITE) + self.cell(circle_r * 2, 12, str(i + 1), align="C") + + # Step text box + text_x = margin + circle_r * 2 + 10 + text_width = box_width - circle_r * 2 - 10 + + self.set_fill_color(*WHITE) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(text_x, y, text_width, box_height, "DF") + + self.set_font("Helvetica", "", 15) + self.set_text_color(*NAVY) + self.set_xy(text_x + 10, y + (box_height - 10) / 2) + self.cell(text_width - 20, 10, step_text) + + # Downward arrow between steps (except after last) + if i < len(steps) - 1: + arrow_x = margin + circle_r + arrow_top = y + box_height + 2 + arrow_bottom = y + total_step_unit - 2 + self.set_draw_color(*VIOLET) + self.set_line_width(1.2) + self.line(arrow_x, arrow_top, arrow_x, arrow_bottom) + # Arrowhead + head_size = 5 + self.line( + arrow_x - head_size, arrow_bottom - head_size, + arrow_x, arrow_bottom, + ) + self.line( + arrow_x + head_size, arrow_bottom - head_size, + arrow_x, arrow_bottom, + ) + + # Footer text + footer_y = step_y_start + 3 * total_step_unit + 2 + self.centered_text( + footer_y, + "From binary to the full dose-response curve.", + size=15, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 4: The Math ───────────────────────────────────────────── + + def slide_math(self): + """Slide 4: Three equation boxes — B-spline OLS, ATT(d), ACRT(d).""" + self.add_page() + self.light_gradient_background() + + self.centered_text(30, "The Math", size=38) + self.centered_text(63, "Three targets, one estimation", size=18, + bold=False, color=GRAY) + + margin = 30 + box_w = WIDTH - margin * 2 + badge_w = 80 + badge_h = 18 + + # Pre-render equations + eq1_path, eq1_pw, eq1_ph = self._render_equations( + [r"$\Delta\tilde{Y}_i = \psi^K(D_i)'\beta + \varepsilon_i$"] + ) + eq2_path, eq2_pw, eq2_ph = self._render_equations( + [r"$\mathrm{ATT}(d) = \psi^K(d)'\hat{\beta}$"] + ) + eq3_path, eq3_pw, eq3_ph = self._render_equations( + [r"$\mathrm{ACRT}(d) = \frac{\partial \psi^K(d)}{\partial d}" + r" \cdot \hat{\beta}$"] + ) + + boxes = [ + { + "badge": "B-Spline OLS", + "eq": (eq1_path, eq1_pw, eq1_ph), + "annotation": "(demeaned outcome ~ B-spline basis of dose)", + "height": 50, + }, + { + "badge": "ATT(d)", + "eq": (eq2_path, eq2_pw, eq2_ph), + "annotation": "(level effect: total impact at dose d)", + "height": 50, + }, + { + "badge": "ACRT(d)", + "eq": (eq3_path, eq3_pw, eq3_ph), + "annotation": "(marginal effect: response per unit of dose)", + "height": 55, + }, + ] + + y_cursor = 88 + box_gap = 10 + + for box in boxes: + bh = box["height"] + + # White box with violet border + self.set_fill_color(*WHITE) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(margin, y_cursor, box_w, bh, "DF") + + # Violet badge overlapping top edge + badge_x = margin + 8 + badge_y = y_cursor - badge_h / 2 + self.set_fill_color(*VIOLET) + self.rect(badge_x, badge_y, badge_w, badge_h, "F") + self.set_xy(badge_x, badge_y + 3) + self.set_font("Helvetica", "B", 11) + self.set_text_color(*WHITE) + self.cell(badge_w, 12, box["badge"], align="C") + + # Determine content region + content_top = y_cursor + badge_h / 2 + 2 + if box["annotation"]: + ann_y = y_cursor + bh - 14 + content_bottom = ann_y - 2 + else: + content_bottom = y_cursor + bh - 6 + + # Place equation image + eq_path, eq_pw, eq_ph = box["eq"] + self._place_equation( + eq_path, eq_pw, eq_ph, + margin, y_cursor, box_w, + content_top, content_bottom, + ) + + # Annotation text + if box["annotation"]: + self.set_xy(margin, ann_y) + self.set_font("Helvetica", "I", 12) + self.set_text_color(*GRAY) + self.cell(box_w, 10, box["annotation"], align="C") + + y_cursor += bh + box_gap + + # Below boxes + self.centered_text( + y_cursor + 2, + "Influence-function SEs + multiplier bootstrap", + size=14, bold=True, color=VIOLET, + ) + + self.add_footer() + + # ── Slide 5: Dose-Response Curve ────────────────────────────────── + + def slide_dose_response(self): + """Slide 5: Visual centerpiece — matplotlib dose-response figure.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(25, "Dose-Response", size=38, color=VIOLET) + self.centered_text(58, "Curve", size=38, color=VIOLET) + + # Render and place the figure + fig_path, fig_pw, fig_ph = self._render_dose_response_figure() + fig_margin = 25 + fig_w = WIDTH - fig_margin * 2 + fig_aspect = fig_ph / fig_pw + fig_h = fig_w * fig_aspect + fig_y = 80 + self.image(fig_path, fig_margin, fig_y, fig_w) + + # Annotations below figure + ann_y = fig_y + fig_h + 8 + self.centered_text( + ann_y, + "ATT(d): total impact at each dose level", + size=16, bold=True, color=NAVY, + ) + self.centered_text( + ann_y + 20, + "Confidence bands from influence functions or bootstrap", + size=14, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 6: Two Questions, One Estimator ───────────────────────── + + def slide_two_questions(self): + """Slide 6: ATT(d) vs ACRT(d) side-by-side panels.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(25, "Two Questions", size=38, color=VIOLET) + self.centered_text(58, "One Estimator", size=38, color=VIOLET) + + # Two side-by-side panels — compact to fill without dead space + margin = 25 + gap = 12 + panel_w = (WIDTH - margin * 2 - gap) / 2 + panel_h = 115 + panel_y = 95 + + panels = [ + { + "x": margin, + "border_color": VIOLET, + "title": "ATT(d)", + "subtitle": "Level Effect", + "question": "What is the total impact\nat dose d?", + "example": "A $500 subsidy reduces\nemissions by 12 tons", + }, + { + "x": margin + panel_w + gap, + "border_color": MID_BLUE, + "title": "ACRT(d)", + "subtitle": "Marginal Effect", + "question": "What is the return to one\nmore unit of dose?", + "example": "Each additional $100 reduces\nemissions by 1.8 tons", + }, + ] + + for panel in panels: + px = panel["x"] + + # Panel box + self.set_fill_color(*WHITE) + self.set_draw_color(*panel["border_color"]) + self.set_line_width(1.2) + self.rect(px, panel_y, panel_w, panel_h, "DF") + + # Title + self.set_xy(px, panel_y + 8) + self.set_font("Helvetica", "B", 26) + self.set_text_color(*panel["border_color"]) + self.cell(panel_w, 14, panel["title"], align="C") + + # Subtitle + self.set_xy(px, panel_y + 30) + self.set_font("Helvetica", "B", 16) + self.set_text_color(*NAVY) + self.cell(panel_w, 10, panel["subtitle"], align="C") + + # Horizontal rule + rule_y = panel_y + 46 + self.set_draw_color(*panel["border_color"]) + self.set_line_width(0.4) + self.line(px + 15, rule_y, px + panel_w - 15, rule_y) + + # Question + self.set_xy(px + 8, panel_y + 52) + self.set_font("Helvetica", "I", 14) + self.set_text_color(*GRAY) + self.multi_cell(panel_w - 16, 13, panel["question"], align="C") + + # Example + self.set_xy(px + 8, panel_y + 82) + self.set_font("Helvetica", "", 13) + self.set_text_color(*NAVY) + self.multi_cell(panel_w - 16, 13, panel["example"], align="C") + + # Callout below panels + callout_y = panel_y + panel_h + 15 + callout_margin = 40 + callout_w = WIDTH - callout_margin * 2 + self.set_fill_color(*VIOLET_TINT) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(callout_margin, callout_y, callout_w, 26, "DF") + self.set_xy(callout_margin, callout_y + 6) + self.set_font("Helvetica", "B", 15) + self.set_text_color(*VIOLET) + self.cell( + callout_w, 12, + "Both are functions of d -- not just single numbers.", + align="C", + ) + + # Annotation + self.centered_text( + callout_y + 34, + "Plus global summaries: overall ATT and overall ACRT", + size=14, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 7: Assumptions ───────────────────────────────────────── + + def slide_assumptions(self): + """Slide 7: PT vs SPT — what you need to believe.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(25, "What You Need", size=38, color=VIOLET) + self.centered_text(58, "to Believe", size=38, color=VIOLET) + + # Two assumption rows — PT (standard) and SPT (strong) + margin = 28 + row_w = WIDTH - margin * 2 + row_h = 68 + row_gap = 10 + row_y = 95 + + rows = [ + { + "badge": "Standard PT", + "badge_color": MID_BLUE, + "headline": "Parallel trends in untreated outcomes", + "identifies": "ATT(d) level effects per dose group", + "meaning": "Counterfactual trends are the same across\n" + "all dose groups and the untreated.", + }, + { + "badge": "Strong PT", + "badge_color": VIOLET, + "headline": "No selection into dose based on effects", + "identifies": "ATT(d) + ACRT(d) dose-response curves", + "meaning": "Units don't choose their dose based on\n" + "how much they would benefit from it.", + }, + ] + + for i, row in enumerate(rows): + y = row_y + i * (row_h + row_gap) + + # Row box + self.set_fill_color(*WHITE) + self.set_draw_color(*row["badge_color"]) + self.set_line_width(1.0) + self.rect(margin, y, row_w, row_h, "DF") + + # Badge overlapping top edge + badge_w = 80 + badge_h = 18 + badge_x = margin + 8 + badge_y = y - badge_h / 2 + self.set_fill_color(*row["badge_color"]) + self.rect(badge_x, badge_y, badge_w, badge_h, "F") + self.set_xy(badge_x, badge_y + 3) + self.set_font("Helvetica", "B", 11) + self.set_text_color(*WHITE) + self.cell(badge_w, 12, row["badge"], align="C") + + # Headline + self.set_xy(margin + 12, y + 12) + self.set_font("Helvetica", "B", 18) + self.set_text_color(*NAVY) + self.cell(row_w - 24, 10, row["headline"]) + + # Identifies label + self.set_xy(margin + 12, y + 28) + self.set_font("Helvetica", "B", 15) + self.set_text_color(*row["badge_color"]) + self.cell(row_w - 24, 10, + "Identifies: " + row["identifies"]) + + # Meaning + self.set_xy(margin + 12, y + 43) + self.set_font("Helvetica", "", 14) + self.set_text_color(*GRAY) + self.multi_cell(row_w - 24, 11, row["meaning"]) + + # Key insight callout + callout_y = row_y + 2 * (row_h + row_gap) + 5 + callout_margin = 32 + callout_w = WIDTH - callout_margin * 2 + self.set_fill_color(*VIOLET_TINT) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(callout_margin, callout_y, callout_w, 34, "DF") + self.set_xy(callout_margin + 8, callout_y + 4) + self.set_font("Helvetica", "", 14) + self.set_text_color(*VIOLET) + self.multi_cell( + callout_w - 16, 12, + "Note: Under standard PT, the slope of the dose-response\n" + "curve does NOT identify the causal marginal effect.", + align="C", + ) + + self.add_footer() + + # ── Slide 8: Code Example ───────────────────────────────────────── + + def slide_code(self): + """Slide 7: Drop-in API code example.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(30, "Drop-in", size=36) + self.centered_text(60, "API", size=36, color=VIOLET) + + margin = 30 + code_y = 95 + code_lines = [ + ("from diff_diff import ContinuousDiD", 1.0), + ("", 0.5), + ("est = ContinuousDiD(seed=42)", 1.0), + ("results = est.fit(", 1.0), + (" data,", 1.0), + (" outcome='outcome',", 1.0), + (" unit='unit',", 1.0), + (" time='period',", 1.0), + (" first_treat='first_treat',", 1.0), + (" dose='dose',", 1.0), + (" aggregate='dose',", 1.0), + (")", 1.0), + ("", 0.5), + ("results.overall_att # level effect", 1.0), + ("results.overall_acrt # marginal effect", 1.0), + ] + line_height = 11 + total_lines = sum(h for _, h in code_lines) + code_height = total_lines * line_height + 20 + + self.set_fill_color(*DARK_SLATE) + self.rect(margin, code_y, WIDTH - margin * 2, code_height, "F") + + self.set_font("Courier", "", 13) + self.set_text_color(*WHITE) + cumulative_y = 0.0 + for line_text, height_mult in code_lines: + self.set_xy(margin + 15, code_y + 10 + cumulative_y) + self.cell(0, 10, line_text) + cumulative_y += line_height * height_mult + + subtitle_y = code_y + code_height + 12 + self.centered_text( + subtitle_y, + "Same fit() API as every other diff-diff estimator.", + size=15, bold=False, color=GRAY, + ) + self.centered_text( + subtitle_y + 17, + "Full walkthrough in Tutorial 14: Continuous DiD", + size=15, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 8: Use Cases ──────────────────────────────────────────── + + def slide_use_cases(self): + """Slide 9: Where Dose Matters — 2x2 grid of use-case cards.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(25, "Where Dose", size=38, color=VIOLET) + self.centered_text(58, "Matters", size=38, color=VIOLET) + + margin = 28 + gap = 10 + card_w = (WIDTH - margin * 2 - gap) / 2 + card_h = 68 + grid_y = 95 + + cards = [ + { + "title": "Job Training", + "desc": "Training hours as dose. How do\nearnings respond to each hour?", + }, + { + "title": "Minimum Wage", + "desc": "Different increases across states.\nEmployment effect per dollar?", + }, + { + "title": "Subsidies", + "desc": "Varying grant amounts. What is the\nmarginal return to spending?", + }, + { + "title": "Pollution Exposure", + "desc": "Distance from source as dose.\nHow does health vary with proximity?", + }, + ] + + for i, card in enumerate(cards): + col = i % 2 + row = i // 2 + x = margin + col * (card_w + gap) + y = grid_y + row * (card_h + gap) + + # Card box + self.set_fill_color(*WHITE) + self.set_draw_color(*VIOLET) + self.set_line_width(0.8) + self.rect(x, y, card_w, card_h, "DF") + + # Card title + self.set_xy(x + 10, y + 8) + self.set_font("Helvetica", "B", 18) + self.set_text_color(*VIOLET) + self.cell(card_w - 20, 12, card["title"]) + + # Card description + self.set_xy(x + 10, y + 24) + self.set_font("Helvetica", "", 14) + self.set_text_color(*NAVY) + self.multi_cell(card_w - 20, 12, card["desc"], align="L") + + # Subtitle below cards + cards_bottom = grid_y + 2 * (card_h + gap) + self.centered_text( + cards_bottom + 6, + "Any setting where treatment intensity varies across units.", + size=15, bold=False, color=GRAY, + ) + + self.add_footer() + + # ── Slide 9: Full Toolkit ───────────────────────────────────────── + + def slide_full_toolkit(self): + """Slide 10: Every Method You Need — 6x2 grid (11 methods, last centered).""" + self.add_page() + self.light_gradient_background() + + self.centered_text(20, "Every Method", size=36) + self.centered_text(50, "You Need", size=36, color=MID_BLUE) + + margin = 25 + box_width = (WIDTH - margin * 3) / 2 + box_height = 34 + gap_y = 3 + y_start = 80 + + methods = [ + ("Basic DiD / TWFE", "Classic 2x2 and panel", False), + ("Callaway-Sant'Anna", "Staggered adoption (2021)", False), + ("Sun-Abraham", "Interaction-weighted (2021)", False), + ("Imputation DiD", "Borusyak et al. (2024)", False), + ("Two-Stage DiD", "Gardner (2022)", False), + ("Stacked DiD", "Wing et al. (2024)", False), + ("Continuous DiD", "Callaway et al. (2024)", True), + ("Synthetic DiD", "Arkhangelsky et al. (2021)", False), + ("Triple Difference", "DDD with proper covariates", False), + ("Honest DiD", "Rambachan-Roth sensitivity", False), + ("Bacon Decomposition", "TWFE diagnostic weights", False), + ] + + for i, (title, desc, is_new) in enumerate(methods): + if i < 10: + col = i % 2 + row = i // 2 + x = margin + col * (box_width + margin) + else: + row = 5 + x = (WIDTH - box_width) / 2 + + y = y_start + row * (box_height + gap_y) + + self.set_fill_color(*WHITE) + if is_new: + self.set_draw_color(*VIOLET) + self.set_line_width(1.2) + else: + self.set_draw_color(*MID_BLUE) + self.set_line_width(0.8) + self.rect(x, y, box_width, box_height, "DF") + + # Title + self.set_xy(x + 5, y + 3) + self.set_font("Helvetica", "B", 14) + self.set_text_color(*VIOLET if is_new else MID_BLUE) + display_title = title + " [NEW]" if is_new else title + self.cell(box_width - 10, 10, display_title, align="C") + + # Description + self.set_xy(x + 5, y + 19) + self.set_font("Helvetica", "", 11) + self.set_text_color(*GRAY) + self.cell(box_width - 10, 10, desc, align="C") + + # Subtitle below grid + grid_bottom = y_start + 6 * (box_height + gap_y) + self.centered_text( + grid_bottom + 2, + "The most complete DiD toolkit in any language.", + size=15, bold=False, color=GRAY, + ) + self.add_footer() + + # ── Slide 10: CTA ───────────────────────────────────────────────── + + def slide_cta(self): + """Slide 10: Upgrade to v2.6.""" + self.add_page() + self.light_gradient_background() + + self.centered_text(45, "Upgrade to", size=38) + self.centered_text(78, "v2.6", size=38, color=VIOLET) + + box_width = 210 + box_x = (WIDTH - box_width) / 2 + box_y = 125 + box_h = 36 + self.set_fill_color(*MID_BLUE) + self.rect(box_x, box_y, box_width, box_h, "F") + + self.set_xy(box_x, box_y + 10) + self.set_font("Courier", "B", 15) + self.set_text_color(*WHITE) + self.cell(box_width, 14, "$ pip install --upgrade diff-diff", align="C") + + self.centered_text(200, "github.com/igerber/diff-diff", size=20, + color=MID_BLUE) + + self.centered_text( + 232, "Full documentation & 14 tutorials included", + size=16, bold=False, color=GRAY, + ) + self.centered_text( + 252, "MIT Licensed | Open Source", + size=16, bold=False, color=GRAY, + ) + + self.draw_split_logo(278, size=28) + + self.centered_text( + 298, "Difference-in-Differences for Python", + size=14, bold=False, color=GRAY, + ) + + +def main(): + pdf = CarouselV26PDF() + + pdf.slide_hook() + pdf.slide_problem() + pdf.slide_solution() + pdf.slide_math() + pdf.slide_dose_response() + pdf.slide_two_questions() + pdf.slide_assumptions() + pdf.slide_code() + pdf.slide_use_cases() + pdf.slide_full_toolkit() + pdf.slide_cta() + + output_path = Path(__file__).parent / "diff-diff-v26-carousel.pdf" + pdf.output(str(output_path)) + print(f"PDF saved to: {output_path}") + + pdf.cleanup() + + +if __name__ == "__main__": + main() From 6626ba01c21ae22eae648cd3eee6f43fab3befa6 Mon Sep 17 00:00:00 2001 From: igerber Date: Sun, 22 Feb 2026 16:10:07 -0500 Subject: [PATCH 2/2] Fix methodology claims and slide numbering per PR review Correct Standard PT identification (ATT(d|d) not ATT(d)), fix regression direction in estimation step, and align comment/docstring slide numbers with actual slide order. Co-Authored-By: Claude Opus 4.6 --- carousel/diff-diff-v26-carousel.pdf | Bin 117340 -> 117351 bytes carousel/generate_v26_pdf.py | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/carousel/diff-diff-v26-carousel.pdf b/carousel/diff-diff-v26-carousel.pdf index 749594b77d0b748ddedfb38f589bffda56476ab9..4183a3ad283d5544a0d12d879a6e8dd79e899e6f 100644 GIT binary patch delta 2790 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 CxAq|b diff --git a/carousel/generate_v26_pdf.py b/carousel/generate_v26_pdf.py index cd54717..6f45513 100644 --- a/carousel/generate_v26_pdf.py +++ b/carousel/generate_v26_pdf.py @@ -405,7 +405,7 @@ def slide_solution(self): steps = [ "Compute outcome changes relative to control group mean", - "Fit B-spline regression of dose on demeaned outcomes", + "Fit B-spline regression of demeaned outcomes on dose", "Evaluate ATT(d) level effects and ACRT(d) marginal effects", ] @@ -731,7 +731,7 @@ def slide_assumptions(self): "badge": "Standard PT", "badge_color": MID_BLUE, "headline": "Parallel trends in untreated outcomes", - "identifies": "ATT(d) level effects per dose group", + "identifies": "ATT(d|d) level effects within each dose group", "meaning": "Counterfactual trends are the same across\n" "all dose groups and the untreated.", }, @@ -808,7 +808,7 @@ def slide_assumptions(self): # ── Slide 8: Code Example ───────────────────────────────────────── def slide_code(self): - """Slide 7: Drop-in API code example.""" + """Slide 8: Drop-in API code example.""" self.add_page() self.light_gradient_background() @@ -863,7 +863,7 @@ def slide_code(self): self.add_footer() - # ── Slide 8: Use Cases ──────────────────────────────────────────── + # ── Slide 9: Use Cases ──────────────────────────────────────────── def slide_use_cases(self): """Slide 9: Where Dose Matters — 2x2 grid of use-case cards.""" @@ -932,7 +932,7 @@ def slide_use_cases(self): self.add_footer() - # ── Slide 9: Full Toolkit ───────────────────────────────────────── + # ── Slide 10: Full Toolkit ──────────────────────────────────────── def slide_full_toolkit(self): """Slide 10: Every Method You Need — 6x2 grid (11 methods, last centered).""" @@ -1004,10 +1004,10 @@ def slide_full_toolkit(self): ) self.add_footer() - # ── Slide 10: CTA ───────────────────────────────────────────────── + # ── Slide 11: CTA ───────────────────────────────────────────────── def slide_cta(self): - """Slide 10: Upgrade to v2.6.""" + """Slide 11: Upgrade to v2.6.""" self.add_page() self.light_gradient_background()