From 89a6b029b0d58b4ad5b2107800b393dfff04e8cd Mon Sep 17 00:00:00 2001 From: Vivek Date: Sat, 1 Feb 2025 13:40:42 +0530 Subject: [PATCH] First working draft for AutoCAD set colors layers linetype --- ...025-01-01-autocad-vba-getting-started-5.md | 26 ----- ...025-02-01-autocad-vba-getting-started-5.md | 105 ++++++++++++++++++ .../images/autocad/autocad-color-picker.webp | Bin 0 -> 13128 bytes 3 files changed, 105 insertions(+), 26 deletions(-) delete mode 100644 _posts/draft/2025-01-01-autocad-vba-getting-started-5.md create mode 100644 _posts/draft/2025-02-01-autocad-vba-getting-started-5.md create mode 100644 assets/images/autocad/autocad-color-picker.webp diff --git a/_posts/draft/2025-01-01-autocad-vba-getting-started-5.md b/_posts/draft/2025-01-01-autocad-vba-getting-started-5.md deleted file mode 100644 index 72bd55a..0000000 --- a/_posts/draft/2025-01-01-autocad-vba-getting-started-5.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Getting Started with AutoCAD VBA : Set Layers, Colors, Text Style, LineTypes -description : learn how to modify your AutoCAD VBA code so it will work on ZWCAD, BricsCAD or GStarCAD -date: 26-11-2024 -categories: [VBA, AutoCAD] -tag: [autocad, vba,howto] -image: /assets/images/autocad/autocad-getting-started.webp -published: false ---- - -### Overview -- In this tutorial i'll show you how to use VBA to generate drawings inside autocad -- I am assuming that - - you've already installed [AutoCAD VBA Module](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/3kxk0RyvfWTfSfAIrcmsLQ.html) - - you have basic knowledge of `VBA` and how to create new method or functions - - -#### ZWCAD - -#### BricsCAD - -#### GStarCAD - - - - diff --git a/_posts/draft/2025-02-01-autocad-vba-getting-started-5.md b/_posts/draft/2025-02-01-autocad-vba-getting-started-5.md new file mode 100644 index 0000000..3ca6408 --- /dev/null +++ b/_posts/draft/2025-02-01-autocad-vba-getting-started-5.md @@ -0,0 +1,105 @@ +--- +title: Getting Started with AutoCAD VBA 5 : Set Colors, Layers, Text Style, LineTypes +description : learn to modify AutoCAD object properties +date: 01-02-2025 +categories: [VBA, AutoCAD] +tag: [autocad, vba,howto] +image: /assets/images/autocad/autocad-getting-started.webp +--- + +### Overview +- In this tutorial I’ll show you how to use VBA to add hatch to your drawings +- I am assuming that + - you've already installed [AutoCAD VBA Module](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/3kxk0RyvfWTfSfAIrcmsLQ.html) + - you have basic knowledge of `VBA` and how to create new method or functions + - you already know how to draw basic objects , if not please go through this post first : [Getting Started with AutoCAD VBA 1 : Line, Polyline, Circle, Arc, Rectangle, Point](/posts/autocad-vba-getting-started-1/) + +### Setup on AutoCAD +- Open blank AutoCAD file with default template, open Visual Basic Editor and Add new module +- Add any sample Code from below and just run it, try to change values like colors, lineTypes, Fonts and re-run it. +- Sample codes for each basic objects are given below. You can copy paste this code to `VBA` editor to directly run it without any inputs +- Current code is very simple, I'll try to add bit more details into this code in future, like code to modify it's different properties +- This is very basic code and self-explanatory, if you still need help then use AI tools like ChatGPT to understand this code, only contact me if everything else fail 😅 + +### Set Color for AutoCAD Objects +- This code should work with almost all autocad objects +- We are going to use circle object for this example, since it require least amout of code but you can use any object + +```vb +Sub DrawCircle() + + 'Circle center x,y,z coordinate + Dim centerPoint(0 To 2) As Double + centerPoint(0) = 10#: centerPoint(1) = 20#: centerPoint(2) = 0# + + 'Circle radius + Dim radius As Double + radius = 10# + + 'Create circle object + Dim cadCircle As AcadCircle + Set cadCircle = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) + + 'Change Circle color using color name + 'acRed is autocad inbuilt varible part of AcColor Enum + cadCircle.color = acRed + + 'Red color (Color index 1) + cadCircle.color = 1 + +End Sub +``` +- You can specifiy colors in autocad using two method + - Using AutoCAD internal Variables AcColor + - You can either specify color name or use layer color + - acByLayer will automatically display entity in layor color + - Color Index : predefine value of color in integer + +| Color Variable | Value | +| -------------- | ----- | +| acByBlock | 0 | +| acRed | 1 | +| acYellow | 2 | +| acGreen | 3 | +| acCyan | 4 | +| acBlue | 5 | +| acMagenta | 6 | +| acWhite | 7 | +| acDarkGray | 8 | +| acLightGray | 9 | +| acByLayer | 256 | + +![AutoCAD Color Picker](/assets/images/autocad/autocad-color-picker.webp) +_Screenshot 1 : AutoCAD Color Picker_ + +### Set Layer for AutoCAD Objects +```vb +Sub CreateLayer() + + Dim layerName As String + layerName = "Reinforcement" + + Dim layerColor As Integer + ' Red color (Color index 1) + layerColor = 1 + + ' Check if the layer already exists$$ + Dim layer As AcadLayer + On Error Resume Next + Set layer = ThisDrawing.Layers(layerName) + On Error GoTo 0 + + ' If the layer does not exist, create it + If layer Is Nothing Then + Set layer = ThisDrawing.Layers.Add(layerName) + layer.color = layerColor + MsgBox "Layer '" & layerName & "' created successfully with red color.", vbInformation + Else + MsgBox "Layer '" & layerName & "' already exists.", vbExclamation + End If + +End Sub +``` +### Set LineSyle for AutoCAD Objects + +### Set TextStyle for AutoCAD Objects \ No newline at end of file diff --git a/assets/images/autocad/autocad-color-picker.webp b/assets/images/autocad/autocad-color-picker.webp new file mode 100644 index 0000000000000000000000000000000000000000..367071cac26b6625cdb6c0b4c132d02efcdf5bba GIT binary patch literal 13128 zcmV-OGq=oANk&FMGXMZrMM6+kP&gnoGXMb4(EyzRDr^CJ0X~sDnn|UjBB3RdZJ4kU z2~E;6n=5hjfPd2Ss{O!^@&x&Y#5bIO&GiBN6Z`ifEa3FVrva&>ICt@{GmcLJey?Ad zemn95zfO7g@9_U8eYAPM#~B~szux(c{CC|SwO^l~>%a2U;c0sGszYN)P@%$UoSB@_+yL2L3tzd;kBnXa6r}fAs#8U+{fE zKlXZnfAH%M^Uv`A;XPJ(hxO0MpY8sv{wMUm-M=6IcD~6xkn(-=9nAi({u}#$?uW&n z>HolfTK|LezvY+q-k`p({|Wtz@#oF+@&m`Z(0`fr1@(*PALst!y!-!I{^$LR{zvxz z|NsB~i2E!3*X}Ru1Nisy|Mj2UeY^j6;X(Bu`ToE^#6O$=jQ;ihQ~p=?zyJUL{>Q)K z{~P{q)c4U}_5a8JocS33PyIXoANRlWJ;A?kzxw;6e#igz4KMzknfpF1B)_%CgG!8A z^Sxx4LW2^fGrD17?if)>R7Aq|!uS&l+Vu*Egx&8&M4E()>`CBS=@q3O$Zy3N%B!cD z^ZJ`@AIh=$kY#p5rezG8+hxXp>zb@3#(?THSN$Uwy~m@oTOl<0+uG_+2u211-Xmpa zTB^j?cUk!Bg2u&QhDY2cpRW@5%CC++;9{`2F0@f=dtq_o_BN>8XI*2QaKhTLCTas+ zec4R3Ib%I(Uz-*L@)jeu(}$=C@BM$SYN;#@S3?D37hjc_vb=_aW6uQ087gG<^Qlm3M+_}a#vKtFt}5Hp6awr<%k#gN2Db!VM_1{ z%2AXto|J-)8i<%45@@k2VQ{1!j4w(oA+$m2lC{khE#>Ax!viIgeXa%j+A@=Qqc z|JyLSi-Lk1BW5e*V|6xkLFk4J7!^b_6&{m{-pkz5ssHoros8X}Hr?{{!ig=E=!EQX z*577cBXqlXtUsM8TZSQkvR0Sz*i$yYn4oOGw%Rk%@2! z0;vN5-;qyt$Jrhpkcw9TIaRKIpQ6tr_lpW?{G@OFMf!0bILr-CW_$l?6CF z=7UlcX5((JS3ON;R*H+$snr`oL6t&8r!tH~MHJ5oljYp$7Ik1qW| zS5Le8xA&~1d6jGd^YDg+@n>SNN-<>(&-qFCEZPQyy%9VJ-`dXN*h}=LiVPUzxJvke z*S4q9<{GAUo`biIEnENL!uS&4B3X?8MXR^lTgt>2#sx*)J6J2V!uv#tWQL+)dzbtfmx?QTnKmMh&MC@oY4%tIt|5&aRlBuFLP3&UDYrM-CbneuWR@#b_f7}220^E#wFKoI6LnC z@8N-a3&?rNX}rz;x~+6L7SqoE-RNw1PGt@x2?ljas;7gJ`mhj&#o;%C9_#= z5WMpP{LE+pW<&%G`obYT)o!4>+4&U*f9u>E`%V zG*g#AG>@G!zXTy?+?%ZSJrb+ghM&_TTngU-Fd;6v^FX$WJChy`-K;hXs6@7bR1zNx z=juM2B~l_}+kbfO_T~~rf@h)ODAwiuumM3YzcPA0Pqf9DkSS>4MuHNVe(fHMc~$+p z_M((9@@z5SO!2cxt=h6XAVA)V^uz}+cn~hW2Bis@s2dn!0000sOy2o5 z4x7ZsthV+m_(VQ6bMKw<)Lgav5(nur^_0pl)ArsGE9=_b6|IH??9ORbr@FWJap3i{ z7nlL|;zW383yX_`;+4{(GvY>Gq5W(sPH>2NQkY`pq&o9dMWJ^09#36= zkJn%iw+L#gb+P8s*mhUh*$G&nbX6BvPD|mzscNX!%=8uM6l+fe)b^eC zi^Ob%^G|~QWG`oEnoUQl@gfje`ON?Sh#J?nq5fQk(K)sWL&p}nrNj_Z_wE`QZ!(>e z^^jK>MZgKO{ZBUAJrRwoZ>w}AN6k=s*0qss2m^$9-on%tK@1e{!qAz=m1DyR>3tUw zh*l>c!b-b-CR!ggriN)54&@%u=1J(hnS+uQ9BHjoURlx+I0O~V>Td+w+3rX>rwMvn zI07lP95V6#2ur+Ec}sEi<Cw^F@MFHtcb0FkoviQRh+ zJFi~uqm^mf8$qI)GO(e^8V6=C!#B%G9YgC0?JQ>@=ICT+V==L<(LfT8PH*+A&Nk^~ zd-Cu?+N8a-|y*Z+o@)VH+kC zr0Mp^h-Nt_@R=+9n`p~N01h?F?^~q1a?*2Ue2DDA-gWRBQMFAJvZ3hKVK1=ad39{B z^e9t-IvjXKe3ej=R($(GV2Raxhbgr_=MVp=4Ko zdH=}Oj1-S`Yv6C8!c{n9?~c&aQok}qnyVRy_nm-DI|e7?bFAOH&kUY2#b#3;nBHA% z1B~q2hKXYFxNh2k^nlBon#3$ZvCZ}1Q?^UJ1CCaT;sG9{c3~>~Sux{nQ29X)if^;% zmiD6mB*>b7w%{Mu<6vZ%if>-ry*G6^~**?NJwF!jcIMDRLT91}IRA4~i z3@vjbyG=$!ST2XXam7w2rqwyQc&)B56X&2s90(YVFr_I4;kb9Zb!yBLLh?lyA_2I^ zP($laAsN3jScs>;^X+aEvW;^3mUREClsg+&I?6gclQD6tTr_0T_n+3IlKF=~6u|*`733UlfASOSc`|e2(Il$qAmnn|iZ#i=IxY45qt$hgyV zTSi5oM$xc?6?*+SYVY@=w0asERtRBl3ey1>MHGA)thvidYy>@(5`z$ZOgSS_$FGXt zL(Llpi#pOow7PHPh9AgNY}<2Ay<5ZGg^@ z6AS-eb9U_ePtGCrAhtM5AL_MK%-;NZJ=-}^<;IA1s8xZYrxRX`!bm0AsXQF#L1UdH z48~a1;;mxjPYzuHmX!-}kp{*-TC~pCuiSlN|CvBeB z2TN6X%g_jk5{XUujYA-+nos7MKG=j>`rF9ZM(bmJ3-T`_mwK5P_voQ93+r2Eg(X!2 ziJBI{0Gzj;MW^c27fcca)bN7!qyf@1l4K9;&bKbap)IoH$v20xK(BQrHszO9HX5rl zW9V^$yVGQk_r7kOb!fw^#hSfCP4(7U;%X8C5!HEQT)vLVs!1uS*hk%y2`mYW8<`@c zBtbl}h4PM`l~zB)P;55`!y^9kk<1LhU5*!gZGWU`fvF2;{zGKqMW^&E!{Lcrq{TJj zXtF!%kPr=a7D0mgBa&yq2bqx9^X=ccEynQ2y7WJ+|x`<2Js`I-8M57ypIw5n_Ia{f{8M#Oyr zl(fBcWkTU@Yq2!!$U&Hld`&6uwf%0i|JQyc>3Gv5w2tu1CRILz^Uiy)QYCU>32;Nk z?@EXc=Dx6NO<9ko1SciIcUk_(a^F=-Z`i8eDPl8Rpem31$@%g-k97j=jf#a0qhI9! zTZD6B-!;(j&x$E_c8d?R=g^5zeAEfjtSx0^KeBIN_Yd$;(bYx$FmRDO$Ov|>pV`ry zf{hb3GJFBiXn46Dlhogt8e2+vblu(?x+mU3p>L;3zqL7Cjv_$j>+1a2Bw0Fm`Zl>s zdDK_AGLds(ZgM@{=SR#+oyp^u2=VEJD3CSf2Ud{%>;HA^`@kHNUi|Ps)`E~_6T}NC zg6x;HUP~V-vI}i04fMfZu4FhPVKDVgZPn*|3QwHSi;bb5!gr(nNHQr|P*rm;9VZVY zpEZP{i_qwu+AI}ntabb|WfaA&$S)sBwRP3B(6&!>@74?q)?2c)x%%|gSj*T^{RY#6 zWP-#v&tFlzIC)3lwL4aJsk>qK3amC^MS|bXq6IUZ9JfxL!&(02P4IMMH%TAQ+lm~; zt>Xf9kpMg;?PH&;BOtb65ON3R^Qt?*z-f>#Fs)N%R!OAkm~hs&^gJs9*ZDgC;tR5c zdmRMOHU!h1hC4aoSbDb`=_CSQRb3H;pseq0BZ0F=z@E?`n5S{P|NErY(t>tsNAz6u7RcM|hmOfc`!MO#HeyDKA4DS~%)G@CwB0jem z6JtO5F(Of*V%&p!A!+YqyUQjTEE zYfEq_xA1|**Pvt}ap?0f_iSs=(8jNkEhZI=nQ_7AP_O;BKI4A7qd^1uy-r?td#k-& zVxTx{fPM`V1hpo<$O-P0`ksmEb{g?)jZGiJrv$A)Jl73n$2PA%6{f5pT7DuDkkT_! zco-(FBtZPb?|*S8PP`*eX#*T51N^4;SeP`kUU674kl}#B^o3l9oCZYUw&TFXzLNO} z>>UBm8M)Iz9lJzw*uxq}8-rQnbVHE1F!SQ0YB&l(%Z}9h#&{=Sl{E$dvk`aQ)C@=e zxW`7MINZBCXnsuMT@(U8-W6L>s-nV2FeJOFPk34f)&%%&Hbfv2&4h;EE+cAoYkyt+ zgth_v_@1%U1)%za%0-8ePPR?I014#PO|O_tJyS2%pK*B^!D(X|QKPuhwy$_Q_ow6K zLiR=rr?dCgmutOrKD=k)@`i8ssT4{%#&1Mt1E!Jx;zr&01$E@` z^l8(L>qQ(rwA5pswm0}=?eYXN;hB^z$&qnO{y>!XCXZN54IW+ug0WrOWL=-R_UQUH zy>|?ACFQgF-7-ea5sd>(S2@0FwB5kcp4?w{-X7$+6n?4RGy4Fxuw?4@;|9sN06~P{ zhWw-npV(@p&0#7(9Fq_4s@d=ApN2TbUBtq0h4rUehD#?*T{aePQvh)od3hOgSnlk@ zd)6nAD2tj$1-&l~rEmo>OdF1d9y+2xHT%eal%zyPCg$6M#Q1_U78gFl!ofbhUIuw@ zu!ui*cOJ5Kqc2e2YcH$$Yqbd%J_6+IU!MuW2r#T=f(EVDof*2B3Ptg6sSXtbi4jh; zPPG*fyv7znnVVHzZRFVRt{QdzB?kAdl{e#1XuDME1+@ray75%z4kM}fJ^|q?tTtiG zzO}8{C*rfS@v6VlAa{KF~m$K~4E-cl)seXP@z0SE?-X zKlr7qT_Ysks7{;gE<{SQh1w;KSX{7JqD(xY<|?EcilyLlm$p)E9brmLaR^Jht;mqA zVtvb+k6||jxaA5p%^DTm@tiG~vmHzr4sIzh_~^i$umZ0a6}ERzoBKuOdC$c_EsXLb z_7o{3C=N}qD3)zE6r_~LT|tjyzU*Fg*^?;6oko(+Ao#*0Jsr%|{MK#VPpaoKV{K1gE$@rTp~|X!k7URnc$i4Roj{TGfyiMYH@3LMN-ll#3**p z;Z`AT0l`_|+y0Vo2_^91l~1E7#bz{O`H>^u9<<}i^%fI*Dq@KFC92^qAoGtBCq55t z_*!#b!G+_-l?0Z5qT*8lz0GHmH@*eqIoxh<6FkV{HACEOW3y-Ja8n6dUKM5Ep5jdO zbxwBS_Qv^pEg5%`{Fze!jOYtUex|J$L}2iVC@2j9VH3QvLMOK^lZ`x2J;K*-pfdl; zU&NMCqMjMnccejY9+jxeNdB}vzF=h%5dN1%`z=GpeljpI`Xy)Ecq8dHLKMc82pE{Q zRvf-cZPC31XCZr~1@-lAx|a`RQ|o;X)*McQvNCk-Mgo!DHVhbk4mEMa?TsW_FVW!zP8+9=9}AT$g2sWa z2*gRNtgv6LDUO9Q<0Z>^%aK1Ml)_^am`i96Sw?v%2K)eZsF0l6oO^#{rqfloGS4|`aMhffN zM()kxY{sF%=T&Cty%82NK@}202Aj=+WKIhSM*s{_!q7)vl`ELn1$7jcS4-^K*bfXB zZhZyPSafPoY;%Qit1-^nJ?epbXE4a<(`@LbN7K%j!lDA_W@_%Puma-piZMGDNwNoa zOA;0k>SwUtG3gN`pT692cu|*BEnDe;zi|*ke z)`?Do0=${|RJ~nE7fL$*em^!nC}Db$6S;#wF3&R*CCKEFb2vEzvTv&3+8 zpduKD3H)MHXw+ZIVlD%(A8^nceS?a2hj#BCgH@^BtSah;)q87TQ=N7r&QKP+tiepD z&%b2B4Wce!wWx0Qr2{6P2Rb!A>DB$pzfthez%AJ5LBAsmBhhyb3*9LkmI?J=Erst9 zdE5C>-H+5i?Mbui9B}@<=4T%ln{e=Iu>;UE4^oa;tVi;rudjoaZRl5-rDOL@8)8&K zX+qiEOu!|Cv_e5`eJTE|%4e@xz}{>D@tfJc9E`AO+1ne<|Mfj8Sm+oUP^b}$A1SP; zNect=Ws+metAu_3mu8`CvwWALi$e`AFycn1t~ zYDvAzOK9Kd#5xQ`Lyqbjr=pbCAjB9vytNX4{o2yNpyC6NC#OZ4$*K0xzEakk-|AMF zQLPdMeCRvsN8TKT6ES++_8#5Z1~;l6pQ2s5Z1$`4Tz8-_>a8FGMq8HdE-qB-%C?gD zRDkw0z@N;^B4vDs9@zfCgU&FH7)yBBqsuA*0#F1?jh;jzks(Tza*<$rr0IVE?*y*D zNgdw-7U(;hm4#Rugo%4T?nv%EmVye)-`|1hiN&KFA`C*XSI587_fyq5zQ3w>L;DJE zNjykq=pI@BHD>)u%V)JVOM1YOc-i~eLSZ^z8pY!1t&dokivCq?w|k$2niV)U3Do}I zZ0$;Q%z&4OIkZ}JQRxYjeQQ|pXIRI)W%x^h&hZ+Miu7~(C!Y|j#R;{KVb7_3vmRwE zAx$=>)l(NjA?^Yo%je@|i50zRiyJ<)4$3v}KDGNz*-1nlCJE=|uoxo)IEGxx^pWZs zv;|iBIpj+uHDKGWR>#92je=(}4zqsO{3A!&e0_9m4#KInxFldx{R{O!qb8_X(ubBv zU?hik!4|2r{b*d92~Ijb1tnL~G{LpbHReo>Odb__CHzZ?5JR1k7v|pfrW+sf?_Mo> z?T=){i<5D8mF3!PgLccNvk_J(lN(O_JX1Dr2fhYcd!L7>7UaSfAOmlG@ziY`5$ad< ze6|Z`|4p8mPPsbH0V#!6|Ng#S2H(u4sjiRxblWrPsBKn+fXxmykh5F z&mT@o^Kq=%;)&zMFPl@%9ehP>cPdF|wjyWOaYb2Adbv}>3`S7n*SLGKv`rIkO+X}q zjf-Z#F@S?H2cf?`Oe|UfIyW10)bYSJ+p%AY4@g&Ufm-*)c@3;roBFns;}$<&Y=7bn zK3r<|!{9NgbvPP3#^}nmB&#ST+~IlISB5rEJ+H{S?$go_s;8aRyM~|51+n7E?~RVv zisl)zJLT*)fv~ToXpNFtU$P%Wq&%(7kGqm0a+#EZ2|At5Cg~Ux$Z{&(M58HPQt2~t zq^Ar$_=`~6tVy^?`5mmuPS0R$BE{i=lu;BXzIhJsm~lDAr%l6y0je`tLQEMR4Ds#D z56t!UzAr}4a&vY&Alp@)c4PUq56s(Yw0iyeprx$SQ9FOuN;hko&=K5Z6b03e@3Rl> z1Ml9|fl0V~lY8wU@p45a|9NB|m8(+6L%`>ryCtghM!UWoS;U5(>j-J?seFZz9jWKn z9idm)FkyRWu-F?6Bx0<|+5PNQH2)4(ek!ncKCyMkv3ye~@bwal5#~s#ypM+O&e@21 zfik<+paK8-6ZzI?-ohEXUOdv;jji;yAXcdIwV0T7hW*u=6~2^x)Gnr_tzxIJ}ohRL+b9Ac-vFdHPGG~ELw66kxpW}qUp zQOKr{Bra1FOae&*gfbq1yv80*xpC86_Z#{Al8qW3_u+J|l<)Z63Y7C?m2((lVUr^3 zsmaJ=RsV)m-Cu?xv}U3s6yBijpWwEZ8`v^2U#J+;zflWB2r4)T@mi!wgJ5o{OpT#w zBkW~tAWjXxffQ9jCEaUEv9eQMGsI6>Z>PQdVGWwH6kQB=JOiWz`w869`q$+)j-g2p z-B#@|O^n3i2DL&x7GL?DXxWc|-0+{1bg%SR(#Uir09_L_bb~^2{YTJHcIEJFT~Amf!)77x5*1U5l--I? z5)`n{{Tj^&IVt+|rOk=6eHe8>oA2t10+|hej6A>f3G<$goahMOje237LBnu9TPwFsBuIyBp5hRtxaE(3Df1b^=VJPYj#cAY*{8 zZGmm>Jp~7`s$+<8?gu|@^Nq{J6NOS+ZFB?aGjkK-A{?s1c`b&1+C43(riy0?8g57^ zE$7umfGYkWB%3$j6v9KNXOVqrDsch<;h1CHO*L}i_SUaO4_^$0+7WwR??}u$_SRE> z1ZF5RGVFz=dS^pl5Jv;u#PBQX-psUC%T{TP>#;1woZglkgaE@!Mx05k`egu>M&+{8 zfyc!Y3ahtTAN^@(mYje|5SYr_B_a<6oeFAUH^1g zaB{Q?VMuxNc6){*)Xj2Y(?1GR?{cgt)_u)l*NJ|04|lS>qbPpG zw{#Ff>9we*_P&Tz%gEJ;tfZV*Dmq*UXb?AB8mZdayIuHnE}tHLA;&d(zK|$G0ouPd z2AOD{O2zfJu*Jch=7KYgB^6tiHO@YO?R#$cPY@YBqJX8@K7mvOwzaMp2aH^3X9>OV zW)5;*YVN&6|52IRQggaFKTb&d?a~^Ms?c`ychE+=(>Uws9&C&ub1NP0o;8(0L!DZF z@9TjSjdy>?V7=n8Ms8%&VzTT+Ii5rS>|S7(x-1%mw&IuiNw{_>#Ix$RbB>-Y)~DY|lZe-L$KMG|!X`gr-`x9Mx`?t1t_%}uR&HAc=H=d8x23rR;0JVB;}rA zU4=DVtS6VpO2p1RdiLzMOROpI;FVha_f73%{UgO0I$TcBZ7;UvKI6#rHv^~NcaHPLO zQ339}eGOcX04?t4N7d|5scDmr&req51L^h*Xx`12hBiig2qj_E60ysD@12V8iL6*p zs1+YAV`x>uN4t^PFWnPOvO%iruqDyIQ7$ZXhg@B*v|A7jUB1!^w4-6mc}#3&WTsehBnstmG?oYgsEzB$Mjd4T7eVWEG_f@WBYQqUwb)N5Dg$n>QlSXUa8zk>pa@X{QU&NoHCHQFtqD~ z^Jv&^k;s4;FpXct&8i~i$=|g1Hb(3&=W{`WXg+m zEPP7MpEO;(W|9mnnC1uH3s%}r*IQ%Jna>l4AG&sgyQ4vaZ)f%g*UKl*MC=rYzW0_W zu?ef~8=3OfW$)Y^Gh{PVcfstFFdfXiX@WLE)G37@)b_G+Em;cgOhQZ{n|+A(#LYyc z^=VYx;1hYZih~3l!DaH@4ug%{dTJ#LH}L2>a!A7{B05ny@|R!{Dy-?i%)$lm-1lg+ zQa0g{%%BA!&?ffYB70yfNEo{+v9cRiAc-S1$&I%9rda$mp)1#b#qgg(vKT5+lc(RF z==+*mqQ)P%Y=P=^`u1ZFo}3U`COQt0tPTw|C~-(Qn_B7K^opw(PY3Msmu4w4JrNhj zpm$?vpxsE2ExXkxPM}sVIRy<4>$L&WZh(JV!m|@aQd}Y}%AzIdEHT zDsf7*#@CM5NviRS(LDn-c?VLZQ~|F*M}qR940P<$cMMYZG0bDW>bDO8tT7cAzQ!y_ z98xM?)_NGWEGiOPveWb$PCcYxP5|9PWbf)P814C-1s2wdaw zemIfH!NI6jURjda`rkhRRd()<>bVr9_LloL{t+Uycas9{@dqGwfnK$O0Yid)+2OKorR~0Qz?DRxuU}#Rt=kTk zJbe5o55$#SDfq>c94t66=R0|#a#bS^B=n(z~|2NJa+v=3j{{CWz zi-49lY>KDxElwC7+YO5F*zatjNW;tpa>?Kj(PX)T%AOo+YJma2H2>gA_-6oHHB{{L zS4-{t5#%6HRt{14s+-f{9V-U>dq@h$+==2ME;}48c`f`SV=E$yLC!$uknx9-{`@a6Hj2`%%$X(B9V&7jh8TaD z%?)vOP;{F!mbq=_eJeYBT$x1v*$_?zdQcBM0}LS|u!!m{VdHy`i0#$)_(4{9eXIb~ z##t^d8uGm%8VAhUpp_*Nvt*Ty*a$%dALj?QUVveN)T+P%x?+xi1lr}bt^sK%M@CS1NhFT&i++D)7R@WI#uHx-7TCfrzj9I*YG;oekfOZDEQQr~> z-WH`?`-9|$qVdi%8ww%=d^B?@Cg_FX14*UXBRP~JM9^_6tqPzICXd3mT-vNJH9FZ+ zWkkSlZb&;;@}aa^#GKG4rzBVh0Wgg2H;f8;PWVEG;|Aj z02=i$)doYKS$u2x)YdBZQR=n1u>51P?5tSC$e{ThJ@k~TOi934XkS(l{X+c|G7^*_ zkK58qcs)rMjM=RY#Z>8Ps0BtQB_Fg!)+QL+Q52!r-WW`n@$4eHpUF*7Oh^t`WQ7*H!g zh~Ldz^;6kt4~$uOMo8+UW~(nMSXPltJx<=m?RGUB>{a)UPdQTfMiA`Ai_-Uk;$tqvnSSc;GZg64u1f~Vl-6fKNp&`SSyf$yD&Nqk;KdypRH3Eek z{T>Uv<*>3TTD&EgBst*7ghAYhLPJzqbPA3|U-Wi*Q34^XN@7m7)p`oVK3tW&^itzx zpseU7x4acgN&_BIpF~yD2BH$9QZH@Si937XSrMi5vdkQ*A&*&_l5r(fI;vvt19QBr z)SnJwPWUJnt1F*f#A7r-xhiwjS*p2B*P z)UG=|a^`2t&7NGt6uNV@$`Q6LrO(sV{y6oA9d|NEjx#OUxu}Ft<)SU?5I*~NlNSLNvc%xSvFHrKPvyo3YT2=wNUsRVSL z$w|r|3V~#U!vPqr_3eXo38DpaOAps{*MzzX6fwQ~&^);^r;@ literal 0 HcmV?d00001