From 62a3f5d551ac6ee851b8f6479ac91fb3c22508ca Mon Sep 17 00:00:00 2001 From: Bastian de Byl Date: Mon, 24 Jul 2023 14:18:25 -0400 Subject: [PATCH] cleanup of unused variables, fix error in podman-check --- ansible/roles/podman/defaults/main.yml | 10 ++--- .../podman/tasks/configuration-nginx-http.yml | 6 --- .../tasks/configuration-nginx-https.yml | 2 - .../roles/podman/tasks/container-drone.yml | 2 +- ansible/roles/podman/tasks/main.yml | 2 +- .../podman/tasks/podman/podman-check.yml | 4 +- .../nginx/sites/api.debyltech.com.conf.j2 | 16 ------- .../sites/api.debyltech.com.https.conf.j2 | 42 ------------------ .../nginx/sites/pi.bdebyl.net.conf.j2 | 32 ------------- .../nginx/sites/video.bdebyl.net.conf.j2 | 24 ---------- ansible/vars/vault.yml | Bin 10356 -> 9837 bytes 11 files changed, 9 insertions(+), 131 deletions(-) delete mode 100644 ansible/roles/podman/templates/nginx/sites/api.debyltech.com.conf.j2 delete mode 100644 ansible/roles/podman/templates/nginx/sites/api.debyltech.com.https.conf.j2 delete mode 100644 ansible/roles/podman/templates/nginx/sites/pi.bdebyl.net.conf.j2 delete mode 100644 ansible/roles/podman/templates/nginx/sites/video.bdebyl.net.conf.j2 diff --git a/ansible/roles/podman/defaults/main.yml b/ansible/roles/podman/defaults/main.yml index 25478f4..80a52c6 100644 --- a/ansible/roles/podman/defaults/main.yml +++ b/ansible/roles/podman/defaults/main.yml @@ -3,21 +3,21 @@ bookstack_path: "{{ podman_volumes }}/bookstack" cloud_path: "{{ podman_volumes }}/cloud" debyltech_path: "{{ podman_volumes }}/debyltech" drone_path: "{{ podman_volumes }}/drone" +factorio_path: "{{ podman_volumes }}/factorio" +fulfillr_path: "{{ podman_volumes }}/fulfillr" graylog_path: "{{ podman_volumes }}/graylog" hass_path: "{{ podman_volumes }}/hass" nginx_path: "{{ podman_volumes }}/nginx" partkeepr_path: "{{ podman_volumes }}/partkeepr" photos_path: "{{ podman_volumes }}/photos" pihole_path: "{{ podman_volumes }}/pihole" -factorio_path: "{{ podman_volumes }}/factorio" -fulfillr_path: "{{ podman_volumes }}/fulfillr" sshpass_cron_path: "{{ podman_volumes }}/sshpass_cron" -drone_server_proto: "http" +drone_server_proto: "https" +drone_runner_proto: "http" drone_runner_capacity: "8" # nginx and modsec configuration -api_debyltech_server_name: api.debyltech.com assistant_server_name: assistant.bdebyl.net bookstack_server_name: wiki.skudakrennsport.com ci_server_name: ci.bdebyl.net @@ -27,8 +27,6 @@ home_server_name: home.bdebyl.net logs_server_name: logs.bdebyl.net parts_server_name: parts.bdebyl.net photos_server_name: photos.bdebyl.net -pi_server_name: pi.bdebyl.net -video_server_name: video.bdebyl.net nginx_conf_path: "{{ nginx_path }}/etc/conf" modsec_log_path: /var/log/nginx/modsec_audit.log diff --git a/ansible/roles/podman/tasks/configuration-nginx-http.yml b/ansible/roles/podman/tasks/configuration-nginx-http.yml index fef3635..8900238 100644 --- a/ansible/roles/podman/tasks/configuration-nginx-http.yml +++ b/ansible/roles/podman/tasks/configuration-nginx-http.yml @@ -61,7 +61,6 @@ group: "{{ podman_user }}" mode: 0644 loop: - - "{{ api_debyltech_server_name }}.conf" - "{{ assistant_server_name }}.conf" - "{{ bookstack_server_name }}.conf" - "{{ ci_server_name }}.http.conf" @@ -71,8 +70,6 @@ - "{{ logs_server_name }}.conf" - "{{ parts_server_name }}.conf" - "{{ photos_server_name }}.conf" - - "{{ pi_server_name }}.conf" - - "{{ video_server_name }}.conf" notify: - restorecon podman - restart nginx @@ -87,7 +84,6 @@ group: "{{ podman_user }}" state: link loop: - - "{{ api_debyltech_server_name }}.conf" - "{{ assistant_server_name }}.conf" - "{{ bookstack_server_name }}.conf" - "{{ ci_server_name }}.http.conf" @@ -97,8 +93,6 @@ - "{{ logs_server_name }}.conf" - "{{ parts_server_name }}.conf" - "{{ photos_server_name }}.conf" - - "{{ pi_server_name }}.conf" - - "{{ video_server_name }}.conf" notify: - restorecon podman - restart nginx diff --git a/ansible/roles/podman/tasks/configuration-nginx-https.yml b/ansible/roles/podman/tasks/configuration-nginx-https.yml index 10a0911..1b3016b 100644 --- a/ansible/roles/podman/tasks/configuration-nginx-https.yml +++ b/ansible/roles/podman/tasks/configuration-nginx-https.yml @@ -39,7 +39,6 @@ - "{{ cloud_server_name }}.https.conf" - "{{ parts_server_name }}.https.conf" - "{{ photos_server_name }}.https.conf" - - "{{ api_debyltech_server_name }}.https.conf" notify: - restorecon podman - restart nginx @@ -59,7 +58,6 @@ - "{{ cloud_server_name }}.https.conf" - "{{ parts_server_name }}.https.conf" - "{{ photos_server_name }}.https.conf" - - "{{ api_debyltech_server_name }}.https.conf" notify: - restorecon podman - restart nginx diff --git a/ansible/roles/podman/tasks/container-drone.yml b/ansible/roles/podman/tasks/container-drone.yml index bf0b58e..063e75d 100644 --- a/ansible/roles/podman/tasks/container-drone.yml +++ b/ansible/roles/podman/tasks/container-drone.yml @@ -66,7 +66,7 @@ env: DRONE_RPC_SECRET: "{{ drone_rpc_secret }}" DRONE_RPC_HOST: "drone" - DRONE_RPC_PROTO: "{{ drone_server_proto }}" + DRONE_RPC_PROTO: "{{ drone_runner_proto }}" DRONE_RUNNER_CAPACITY: "{{ drone_runner_capacity }}" volumes: - "/run/user/1002/podman/podman.sock:/var/run/docker.sock" diff --git a/ansible/roles/podman/tasks/main.yml b/ansible/roles/podman/tasks/main.yml index f8bca13..65e9c5c 100644 --- a/ansible/roles/podman/tasks/main.yml +++ b/ansible/roles/podman/tasks/main.yml @@ -10,7 +10,7 @@ - import_tasks: container-drone.yml vars: runner_image: docker.io/drone/drone-runner-docker:1.8.3 - image: docker.io/drone/drone:2.16.0 + image: docker.io/drone/drone:2.18.0 tags: drone - import_tasks: container-hass.yml diff --git a/ansible/roles/podman/tasks/podman/podman-check.yml b/ansible/roles/podman/tasks/podman/podman-check.yml index 2889979..d1a8985 100644 --- a/ansible/roles/podman/tasks/podman/podman-check.yml +++ b/ansible/roles/podman/tasks/podman/podman-check.yml @@ -10,6 +10,7 @@ debug: msg: "image '{{ container.containers[0]['ImageName'] }}' not equivalent to '{{ container_image }}'!" when: container.containers[0]["ImageName"] != container_image + ignore_errors: true - name: delete container if necessary become: true @@ -17,4 +18,5 @@ containers.podman.podman_container: name: "{{ container_name }}" state: absent - when: container.containers[0]["ImageName"] != container_image \ No newline at end of file + when: container.containers[0]["ImageName"] != container_image + ignore_errors: true \ No newline at end of file diff --git a/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.conf.j2 b/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.conf.j2 deleted file mode 100644 index 7adde35..0000000 --- a/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.conf.j2 +++ /dev/null @@ -1,16 +0,0 @@ -server { - modsecurity on; - modsecurity_rules_file /etc/nginx/modsec_includes.conf; - - listen 80; - server_name {{ api_debyltech_server_name }}; - - location '/.well-known/acme-challenge' { - default_type "text/plain"; - root /srv/http/letsencrypt; - } - - location / { - return 302 https://$host$request_uri; - } -} \ No newline at end of file diff --git a/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.https.conf.j2 b/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.https.conf.j2 deleted file mode 100644 index 5a57fa5..0000000 --- a/ansible/roles/podman/templates/nginx/sites/api.debyltech.com.https.conf.j2 +++ /dev/null @@ -1,42 +0,0 @@ -upstream apidebyltech { - server 127.0.0.1:8040; -} - -server { - modsecurity on; - modsecurity_rules_file /etc/nginx/modsec_includes.conf; - - resolver 127.0.0.1 127.0.0.53 9.9.9.9 valid=60s; - - listen 443 ssl http2; - server_name {{ api_debyltech_server_name }}; - client_max_body_size 500M; - - ssl_certificate /etc/letsencrypt/live/{{ api_debyltech_server_name }}/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/{{ api_debyltech_server_name }}/privkey.pem; - ssl_trusted_certificate /etc/letsencrypt/live/{{ api_debyltech_server_name }}/fullchain.pem; - ssl_dhparam /etc/nginx/ssl/dhparam.pem; - - ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; - ssl_prefer_server_ciphers off; - ssl_protocols TLSv1.2 TLSv1.3; - ssl_session_cache shared:SSL:10m; - ssl_session_tickets off; - ssl_session_timeout 1d; - ssl_stapling on; - ssl_stapling_verify on; - - location / { - add_header Referrer-Policy "same-origin" always; - add_header Strict-Transport-Security "max-age=630720000; includeSubDomains" always; - add_header X-Content-Type-Options "nosniff" always; - - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - - proxy_buffering off; - proxy_http_version 1.1; - proxy_pass http://apidebyltech; - } -} \ No newline at end of file diff --git a/ansible/roles/podman/templates/nginx/sites/pi.bdebyl.net.conf.j2 b/ansible/roles/podman/templates/nginx/sites/pi.bdebyl.net.conf.j2 deleted file mode 100644 index 156e11a..0000000 --- a/ansible/roles/podman/templates/nginx/sites/pi.bdebyl.net.conf.j2 +++ /dev/null @@ -1,32 +0,0 @@ -upstream pihole { - server 127.0.0.1:8082; -} - -geo $local_access { - default 0; - 192.168.0.0/16 1; -} - -server { - modsecurity on; - modsecurity_rules_file /etc/nginx/modsec_includes.conf; - - listen 80; - server_name {{ pi_server_name }}; - - location / { - if ($local_access = 1) { - access_log off; - } - allow 192.168.0.0/16; - allow 127.0.0.1; - deny all; - - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - proxy_buffering off; - proxy_pass http://pihole; - } -} diff --git a/ansible/roles/podman/templates/nginx/sites/video.bdebyl.net.conf.j2 b/ansible/roles/podman/templates/nginx/sites/video.bdebyl.net.conf.j2 deleted file mode 100644 index e8d4e76..0000000 --- a/ansible/roles/podman/templates/nginx/sites/video.bdebyl.net.conf.j2 +++ /dev/null @@ -1,24 +0,0 @@ -upstream shinobi { - server 127.0.0.1:8085; -} - -server { - modsecurity on; - modsecurity_rules_file /etc/nginx/modsec_includes.conf; - - listen 80; - server_name {{ video_server_name }}; - - location / { - allow 192.168.0.0/16; - allow 127.0.0.1; - deny all; - - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - proxy_buffering off; - proxy_pass http://shinobi; - } -} diff --git a/ansible/vars/vault.yml b/ansible/vars/vault.yml index 469d60263577be3d3251afc60a381f2aff09e4d2..04e9d5dc84e46168cc6d66a0f253bad2631f1cf4 100644 GIT binary patch literal 9837 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
-E90|6e^$}LdBtJ(Nvo0s*^5>ui5_xo99HwzJa8wRNz=S8HSbcBjZsg@x#erGy zBTGj(^7MI63wTl4ub)A?hr1f^3y%zvB=H2W;9GlnJFoB>C*@l5*b;X{!n zrhSbNv3sxbxG!6-;Z5@6Z{v4BcRD^wI*Nx*QY4>KPxzn0>$Nwyf*t_&dQ{@|nBGfT z81+FAJOeq8@zZ&_MyW7_K0GT&Zg@^P8C!JeA$ ze)g|51<{+w7WVRC0j<>SFJ!CX@R-oHp3=XrA^EUj1a^q0rb2@2z1&y27VC0GFZTj! zDZigyrzg@@8=A8Zg+?;YR&~O`3Wh)SkgRo`t|EIqrAKe!k7zm|4QkDtQqFd%fzE3f z=;zyTi#?9#p^8}e-vX+6D02Ao*n;o-cVN!SlJ>0ik(wCI+ZV`H$(!3jWb66Aa}mmD zBA4#5OiM{68OKY%O%!DgF6}k8)tMX>V}qKLlj^k87m&ol3ikK^i4k-pnvZ=fezJM_ zwL)G{q6F4jrMlxX9zqIO-JMj`)`_=gWy8b5m`{u{uBcnaAWJJIQnTE zUq+$w1>tT$X!jij|HdH{WUuj$8~S0sf+xK?CiCFZce0UbqGW)&Z($c{Z+BQGgJPmC zESd`2b2zI_HPq>cTm_Tv3CqGvG&zUY)LPG6n_NQK$dmjm$I9K0MU8LMS=w{6gW!bR zT_JIppD(OeSAYa|M3nW$iK1aZrv{solvv`pzNj=?ol!$;gAXp43T(p3Bnvr# z8r0npSKsgy3&82ZM5S8gxkItB-0pWro7?l4)9f~=`CG@)nv{aDtz`p&?rq4sI&M)2 zY#9x4?)+x5x!SE>S+F(fL)5kXL#tV?1=o`;>}E3^owNd23Wfm`Vh?t_lP=BlQOid8 zR9n*dM5M!IrB%u>BY~NRH)xw zaHQv2QP}E+#}*mN>tQb~blba#`gJqHNn*CQb{EXeB9Ss^tE# zDTmLUN&h||HK-j?l#c=7)&1muMtkPWQ&;5XxBly#)2nEIX_P12A^dSk%Sf_*I)XcIJ4o$iWuPL81V1L zB2O4Pe*m?9EN!Q=>1m&|PbdX4)o!$Ws!Nz_F*fUusF)gVNsp<4LNZ?pP7@CBu6W}? z9inc#Vr1*DzWJ(<>GPpiHhyn2jMQgzr@^HPH! zAPExwHxJb-!3?G(O|d-Z`;m}ODJ64zhsy0&qGC8 zROdJtqAxytnl_Eex4kG9nJgL%LbXglN6*>_AikptFFdk&MfC~V8)um)KL9b;WUZNCRmPR$b zw|$!%?}JQgV)nWU z8ljVdUZ7R7I~xSwGiV(Km>oz)+es@dOI=@NkQX%Io$=ohn&Qz>l?(3dR>6beQ{eyA z3>rUgWMH0da*6Sg#St z)^(lbLi^n#{JW<;gB}TE8XCZ#=mSq>$P)ShP6o%FxSh{EscK2cp_1_`xnEdR`hs-e zS1Q)LSl}`GNW*ch=nUFn+qfQ4;4IjepOi#G8Q$?gW%!5ebtM880bScQ^z|mvr(mI7 zU^ETZ7+*BekzzMrh%3#)v2l4~MXq))69M(}WQne^bxk9DJlp|S#omO|c5Vb>bxyI^ znT@s%$Lzl8QtlAjHW2uBcR`8dmhz9s%%zt94yTBO6z>;=?`J#vx&3NmN>TV`2D`CM zyN$9`4iG`$VT%Cu)UnyGXJUHl7RB6_l+5W$?X3VCIr+)Nc-=BT4oZa~V2`l4!Xpuo zKR=R_S2>@KS0ylBW{-Ok|E8)sN)pqh$t(D~7R02Tk=n)7dmI*B!460JZWPMg;tRih z2o!m@n$}%I{huE~M8G?7A}W*um+)z&jJ=0*J`=Acp$TaJ;yQNnz=-TY&n8txO*SBu51!==%)`~6zo?q5@eU2t)cZPsK- z#5fYPQ{aR7z=s_XWvnu`j;#M`l820cOkV5`pN(VdfJVz|(Ova5mN5c?M)ggRS=Y_L zO3cy@vRoTW;s3G|rJ=I!PX&o5iA`?$8mOBmwG8N6BTIg9Bgj|M^q9dbyZ&F`5I|NN z2hYCswHZjL)(tO~52Zv|Cxvd;ZIgWXir_EeSwl)XC+g(Rc!x~pyRAEg6gla3q8v~P z>omN*nXwk5gFEniJ{0pM4@wL-Jh!^PLbgNzq-|YSQ-K;)IytlV1c4+FZDy$;xdjR^ z`fnA29LYqgMxFRb9;~tW-V+hi?h-1frK4e5cxpEJGLM}M|oII~IrOBCox9`-r7)L7J&kbacxhK;-*$FKxc3^qdk9CTqq|ONM z909z7@B;80d#wt{8N$PancXgvx7CjyAh|^q=th@*(T=wf61sv0J)w|SsKidnn4CwL zXkfajF1~N?fC{4#A^d@MVtqATE5^n()`ed1`y1W4#q;~^y0)~?zNht&X8nA;>L*?x z|IxC;@#;|f4865GfF(7|@s{INlp+VP2nZqeuT(f!6Wu0_ZQ4%^wjzjHZLE93xKkTjxEXH&;I#09@wMyxAcS`#K~fXg!0c-IwiSL!yL~VQqy;vf$3b zln%C3M^v*e=OANBj{X7KAqBnAPyeKk-USaYm^PNA5*Ick+_a6@%qF)?u+Ishv35Cs zT^VJ*8*5|I*{WsUSLnYh;Iy(QqJHz!RsB|Fk@VueJNF*H5HDe&;NcR@FaOT#eZg{3 z736V5aOS`^BV^9;2Yz$uUZF1^T4F0c1UjI%9dJf~vtg!8#A7p;S!Cm3IuX_z`G7t(h3gg!C62P;8R z+xWo|89!TAuj!v2BQtmVZDllmPk{;o&`g)DB<>94jx0>Ho{fA;WTs6TW3gD2wOSFv z&n+JDDjg3hf-KGdA5!-4)rdawP;tX>m1Y&K7&-y+B843wva^9KSGCz^>#jXD*V=uFK|%_jzbP=T4!`p^awbXwy%i zZAXHmu#-=ePp|v%S!1i6tEvmJDG>8|3ZJUC{aBB>Y!=L)-@y7>KgNZ`0v! z4#)$E?PL(!;=sz$y%YqQ7|Clxfa(EgC@~Oh&~UDK*)x6FYmlclx!e10d~$bs zkX+@}Uo2p8$thZfA%%#y&fOUM)wITH7>gw0V9;e0Cz^MeUM20Dyz4*{q>1nLDDE;;-ZyThAn2A{3UNvXSm2-C zowxi&#Q@4Oh@tXnTSdKaN5Kg1-`Qfe5*;6~MJuyc0zr`8$@EQAdMfOM58)TUuA1zC TxjKt%58kxASi`k^(8F+dy)U@@M3#+!c-Wu3BAJFDmjAa+-u0=9g!O=2}#B@Iv2GfvuSF^N52*!Hl?KSjI&;Wp$Dgdx#3sD==AE z3(E-Im|ZcrkDFW{MYUMTw`tZ2b02^nC|A&A*DM-_ zjanu)Kw->hi#2nwHF6LHD7O}(W)cB#W}J&enx3<=*@ze`I4U+g@!9((w1m!6SNfMy zmLtKw6P{-1X6~n`5PiM1+|J1_HG2dHnlPcNUu!4)yL$Hux4*uMP`triZK?&HYh@J z96Fo>OXj@*9{K|X8fvi<%RN~0^Za4rl8*jf6U$YrgX9JFI`{%OH}++c$4e)tdU5q- zv-4#WJm}6Ap&lSiac>15L0$BFQu)CF^b1yHN%U1(X;}x8xUqeNxWl&#J1+!2{ZoY| z$0YP`iOdUGxef)~P~qeOPLkvq5#DJ<^>Vy=*i80b zPf>{$rMsJ{qb={r4u?a_t3yg8(=B)2HmH9OgIQ?1)p!i`FqSSb%v|f8fz1%Z;?kg@ z&YT|uUK>RyP&=qUp1))d#x}ak%&35C*8Qs-Ad9GxrTsVIma*0U%C$_oTNWdVl}%h9N&iqIRk$O<*g3Kgr!lG2uF} zYjfG}5y<3OCwjU+R}|Y3&>D!7wqoawcfLcq1AHVyYtJW4?JP~tD5I>3qL z;dTTkkP^H97zdn;C(Pr_Ue5!Dd#IGV^&uzrn83RkM;#mwY>|v{QerSW70hxwXKQ3_mfjDx^37YuW6(8egBAU}`+zY2fzuRRO@#8@-t3AYp7Vqgi)P zZNi^m8+dt%OKg7vv6q|X4AAeg;rb$pP@@ZaCoU=}3^PlMr9r;l39ag^Tf87ivNB{X zwV}O3%%JK{o?1kzJpWnu1AMJ~uf!v6t`y9Xz+YM4Qe|Ak79ujJ&`d$1q`j!zIbhU{ z7e*tA9xp45_EaszNgQxC+)%7Dnnb;mtsE6v5Kn02S&20VP@pkvkLcJP`L2W(8WIa3+I;F^dE30AxwI)mFPbd)7s(n2 z>U)8YVG2O7Xl8b#78&_SM*F_eW(euT}?qAN+nN zEGqk7PxQolyhTF0%{kThM9DRM!OA-Kl=XEvEbj3pN6iKAAc}23Gq1@pv7Nb;_$ zf{0#+Wcj^(StvGvmuhC=w`(rLPDqXUb||w>7op$->pvgQHAPWQrA|KMLF;N)PTm*$ zCra(R$8!LWz~6B`g%AaQUa&vF^i;h|=xX{;uyUPH)7!kd3l~2p8zN{*=jii>gU{!# zK6!H(jx_bl#A~@d^aH8L5N&`1rHq$BJ<9k5S?I&mL{L5~VYk|R zr2C}P`P&rq(#_NlrXH_2ww;#MhM{v2k{ z8`KCDn-r&@7Fm9of_pNs z+E*tiPVCQThX(CSwKRat40{8WT#du1kxeN_GOlkl>pZ^S_3;P^5NwLo@2(#FQ(Idd$Wi;lu6wVA){6dTN)M)imk+yL8!GYhu!y?1{nMg(>QYpobF8mzylUHh9VeW-mbVv9w~`$|gjhzypV@yT)g1zcqdUpV zi~+*^+u~tfqJMT1Sm6cQRkCCPwmC=Zop(c~Te13p&#bfh2(dBRKlox#Tu`eXdzw8_ zE-Ld2^(GqBby5bm?n0N*1dQ<0oS%%C?gwWI8=t?%wywltpDWtZ(%$N$v)){#(+<(m zpQTkppv%Ht#eUg3_?eRpC5Va0C^5>&G(`y4QJX4!Hh<$*;xLJb70oedOefvAdpw6+ z!>>Bd*`kIbH6`kD8&GomO-MYEG3oB&cekfw@0$hzhn8mKR19)Axc8Z3UEg)pE;~Ov z1USlj>Wa5~r76(elV?+(;eF_+6P)?ZQNXO^5l9#YxSBTzz0E4wTe0achHcEEoDW2a znvm>-@LP*{U$+`>byrV5Ah<-%_aZ{B1QaZk0;lN`cNnsEXtpYpCZwt(97BZ`n0U6} zrbN>JcZR7{C>oYwQFrE+v@j3`?y!;L?*0FQP8rz9Jfg6HDK>O8>%YguQ>yGGjlJk| zqo)ICojJ8uYcV|aY!GXRnxKD%Bj1PR@G>Ux`I$LhW*w>M%cDQ*gVeJA_EGPrp&Nh- z|H1N(_=W^k|Do4Zux3Tk0K*R_h_oZ`^RM_P`Pt2J5Z5-)MpyYE z1h0?UvTK(9ggNU48=S`{)`_e93sm44h=AU5A@B-EMGGmY)xFjIFvz@yi`lz7ZysGP z)!kdnbia6?4S$;w<|)yMplB%cja?JMWINLLQ2BV{mz+I<)7oQf2T$CD4r3=y%Q+`7 z_uomFU?pDxO?CV-dtrCzafGZ%%z0q3# zh#`F>nsIL_iu7Oc$96ZOE0D>itzL3HwJbGdgL{+G5b8=R?AZ|YCh?I=%nIlz0ZSvF ztD>3fzB-}$acPZpT|=FuR9#*gIQ9glGOz1iv2_6_8vCCK(q|~QsXCW~Ts(OgC9N~G z&0ypN!70{=MFJb|gLr>@3mg6_o*H@L3u9@2fK|4r7k&4cno%u5ugM5nE>DC0P2n}+ zafV+)Q_7mR54&j#mx3K4eT0#6xBuNrKnOLi5*=$IR-M>(mh0OaO1YT?@`ScfIiZ-L zZlO(a+wa_D?36!yW5X+2Mw14U7O+5Pe5*#^#$oI1U>oZwP$fn) zYG|-cOkJHy{N&5ST>3MV|F5+N9CISC+l+{NI-KQ+ssHrJ7n8rSJJ0ozk|l!cu%)4t zJ$&XA;}TER=*0PR7WVrj!CCB(g(-n)PxG6uQkUBabZ{{*;1 z(%#SNj~op~fM>Y-d_zwlw?aV6RG+u4jb3w);Jodq6COqXCEuL7r3*i^dp4k2_4*RS!~EN=$*9l0?QF7UJZ2@8 zoD>xi%`xl{@S1t@Gdtwa|A%w7Th7zHrfT8@ktc9VhoqB-J1HK-1`K$sB9d9A<;kT} zl5*`hfr?AA!Lk;kDu&A$R~zHF4dJS|e3R^RQ~XX}*)h^dUJOIK+JXk|nQw%$A>#Lcs{X)NO^u^nfj>6RB3Mgv<5B|xb5%v% zG|*lGL?slMY;b73QO9eEP2$ayXGO%M0ZT-Z*J}}lcfy}aIo<^{Ds@=4Wjp`1yk?Kj zLnk=eBuAa+=SM08XTVw4WYbb90!$1`U~@Xw2JrwQznRn&C?P7+Si*b|Hr2})j#Dm@q|qn*Ndc1XXu5@1v{$DF#KBBYPbCjlj!Q^Ge^J+IJ3 zAOcv#5e1tp(p}pSwyCQn{$abLB=8hKYXWMdN_@UYp7h52XgyAG?qSX|-s&%_&mtF4 zG;A;@z(oe~tU`PCO=cnqtv20eC9$-<%)mu4c<0;;Vj9Fo@lX73pBX1$Z~hai5b+7n zsYKJbQ{hDqn_Nd5-UZE^gNwa;jDPH*0z5^bnY|8}W3@~FRo6zVkS!p&`*vJ`;c5ps zic%Cv7|HdPk4~Ntj#v{K3Am#E#Sf2Ru6!KPbOLeF^Ov2+RfN6WAr)@)x~^t!;?h(cB*c+uIkSe=k>IMx$8GNcs!o7MUP-9>cgRpX=TQkdUzH)E@Di?< zs>Ik{M3~_3;7lm?Fi7)8)Okm43wSmCf#!Kv0by3(+bkp^6bvdKeA4?>ubNX=5Zz_+773n~G zAzLM)(ZN&+5)*FT>-evIlz`uMha)m)nfv4JON>6@kPoR&27IT9H}96CsvDV{0if7T zampSMwT}W@P{6K=onv=d_-hq3ic*bS|EM{G##gk%2W`lG7o2a#p zwcK+Z#i;)}lBuQ%qZGLC2IiPsadDUV2_|<9Jre$#Ip;a3Un^NZ1d;gK3774fA5mcA z>Vh|rgByacb{@k1;Vii6nnPtKemO8zRIOBIRqOJfknqivVs-9!103kHoub5*ju_7a zYfzb;K=j^rq-)a;k2ah+4 z^*ye3jW`^ zU*3T^HhP{S;bSl&Qu^r8wPgjn>v~P9MANi+q<#F%o15{l{=c5rpqD=}+k5|!Br2pe z7G7oJ3g$2^2DG>gk7xD>YaN*$D5m(TFs(Getxs-zZ_Lv*HFD>A*Rmp*H~|YjDkB*N zql#EzsL2z!#YsCF?a}-GH)IOoKk7=5KJqBq#>KqV&3dRmzDRJJDv%Yphc6>=6Wt6h(sTnKdXIN>M&_e;lyBpgGbgAso@50%-a|UahnG4F^If8x zQqrHU;gWZ(S)RXIc=3_b7>y&x(-PE;laeg8x@ZvXrd)*;T3BEcPa8y$af8rU8*HfR zxf_)UnwaG+{Av&DLrF#E65E4nUYUUB76ACZ_u;2oh4(%C z=xaGdMPi-Uj2AN+MNmkb{<#t2ZScayaj*jY3-emn_a^xV)b+j%8>7+y_~~7X(M0PY zbyR)dmAbM=7@dceuViez98@`L{W#3kSFL2E_8I+d92JF$MHN8uo9fdtCkb$vyHiu6 zB9kCpSjc2Ir`fHOOBc&F{ual(5-;LL2pc3<44b=CyJd@Au2iF;BO6I6_0AZ6JMGcv zrO{2B#@_4{5n?*_bIKA^v zGYf(W22q#Pz4W}&p$}(U4!SDYCMrkLJ--c9XkO%a(R$0u| z*xkh4KRZ0*s^+F`qgc`Js(1GWT@02vNfk{@TJjQ0HOngkej!I>2K$XH*5Yk0HP1s3 zORH{lWyc!0zFOn@?ae_CF)+((CP_R4!cz!(-7?Gw_>tTzOC6Bk30~Tm&3ib)y_51Q zhLljIH2@rt@INA>y?QJ!Gql5%XnIu;nKsIv@G|~w7(fdG;Se2KObg~-dL#O>sGL|-|0F%O%S1?GujlljrVs6QJ(il0b#Y4z-0>d~2Gp|NPwGqxF!k;j8;Us>%p z&RsvXx=?zy!3&DAc0l&unpiv&Fmosf1blajd|s+&FSPulIoL75_V%jSDT4kLaHfJY zGxc!RL)cx8XyL^fg4krEarLa|N%N3|KjKI2qNIs5Ao?G3vp1qXV2LAg%7n)N9BfUZ zxDC^K-?P9i+_XylcYxc>#*gpQd}cuAhL+5CH}>e0#0XUz{t-hiviLb=Pm<@q&3g%o zD?=A#UJH5e`uLh#phap<->4JPur*>>0g$nHA0fvt!CGQ361- zNu^(9@zb1xH(a=hERUlB{ztET*u+!2L#%pb6surE>gyanFqIA9BM)B@Tf8HD)>=ZE z!7xeka-uH9AmW!NFpLet*fa{ThKwm1dQL{PUFLnJk-zu<46v)}sN9dwL_$5&N=Zi; zoeGE)AH>3`h9YtE{mYq`!Z^V_Dwhkp>5EAev=OqwS`jv!^aNcs-|Fh&JyT5W9k|sY zZb*%Wz>tzATwggO?9IwG`43_+8>dajwxN0jh4Rp>*~-qF(sKD(f* z9Yuu&=_aUs65(~}MwcZm8kjzY+D+iNZN*w0oy7qX=#fNO;-=}cWSw&{p6ZxbhATP> zi%zg(L3f!F349+SbGT#b=CSIQfMj6UrWZ3xM~qtU5B5Z4tgbnDLxrz|VRMKAJQAE+ zKm%Ncuf1NLoXeDN`U;tMoYMUWOU-0fqg*Y(o2pFfmLF=*^oiSfgV6>vyABe@N=aVh z3OSASt`v@ytlUDey;HA6o6f^Bw_p;Nh_^1vwR&MNA z^<9KPnj&0j55fqWMlxdAaZ1Ti7LZdW!k@YzArI4CqS2OGurcZPdE)hn$V@}RCqNQ^ zhiAuML~<8;5egb^L{X?yXzl4XwdW43;rXE7I}mxeTmLE8l(6v`w_ai~$g3Xo#mEsu=+9l!(5KiNnywjb-UFN%NN$;tVJ7rvv>U7sh#p_7`eFY)5kK<6{`V}V zJgC%|61N2^EyoE$ce=ouVI--|f5R}`4R;L`#RD0eRd7RDUSOORUX!QE)*)3R41U>Z zU6x%xeFqkUCq(tVTVl!(%ndk)W$fVJVRyU{u9R4!e?&q_p2=z))6 zl;kCS5RWAL$rys|mpwUS+_>l>;I>_&783$5!ZVfC>B+Yworl%k#e6GlR5LU7#qhtG zZO=~8hrB-};kSGQ)8z+V;H@x9yz4UrG~O|V!+q=TS2dh>rezueZ3aqKwoxfBRWmT&KTL2?#|82m8 zL>2ZpzdcmvAy!k3V|@*S^Q>LVYF=A2hm+1i(ZvZbUy9k@OYg+WlGA)<&<^Zd-Ep7E zbz)z&E$t-r!y^#%^`K%Z3kjYpS^|-9=rRAYoSzW%_WnD58OzV?Wuj**S$2LUKhg+* zLw$^%Z-D&)n^dxf{=j@gRzDqRkxro?u4AIaRKCjN*Sp$?d=oxv(j>Abi>1a2urG?0 zEBbYp)iBx6h6X=r4c}EmWcZ?qBOv6U4Z^h9rKr&`4_s*^pCqwd$YKPBZQ4sOOd`l^oQq?a{^XKS#ZedhZr&3oZwCjoL%5G4Mll#kj|b3OG2Q zw==~p|hTY`>r`UtGl2kz@_BJIeHLck(g6FbhuCkzW|i*8UB{-S~4QLpg$2r}1L?Ne?DI$5vM-Ac(O;QqR{olra7L za)zX`Oz2Bo8mm&+HJy*WFzx2XC5d)KHo{9jQwDfGer;~TAKzYcoU}R3Tm6s9mR9~h zE-$M%R4O#K@N6qWy!2BUJtV9gNb+(HhKgC=a00T&LKw4N1RZFdAq^pi=9&i)JX%}% z06wQ++SKQQLp*53EmJ>JS|Kl5<9PZ1X4X1;}hzN7uDr1Ai5@%1hOX{ zAT3RTQ%p#=9AE4f0f-}H?Ri{5FEwwFCuP(-Ve=TFnh)2^GX6 zALy8Q^JFXTEtx^3EO1Y-t7SWw>*71@c&eXRl@M;tuFdZeN&a5pN*uC&tu0w>=ZW+s z=5=Z7jWy9TtSo2fWXI2}K||EfQ_t$<1E1xGe~6Z~@#}Z8#(~&1>scrQIxWJKAgQ0h z!NWo+Bz|6|=SJ?ht@}C!`d=7+Z4A-%)-A@K-f~|mZu9OsK5qAtD!$lF^u`G}hB8Q> z+@H&SghIdPl_+pezpv%tTXCw}+ycti{F1fhkP|0=9 z@uF40-i!fR|5zTEsvg3!F6o?bz%hS2KoeC7&IV)(pj0$XHPTF4oa6n?*1IHrA5!+M zP^rf)IN6|?!R|EFchs~+811M9`pf&WF7){PvYEl0Fx-qxf%FCiIi+T}JB)aVwA+Bo zMcckhSJVH`)!-|Xxzh4RNyqcuTKGfeiLh;@x(+uffk%umDeW}*PlpaV2^lnmX1+eq zS8b7~Q-ZamE+-4en87BM>K|BTAVXcQFM1{b2e5vNZ$A_;YT+G{dFHEh`;}>ECiqO` zF?u7OhxsZ!Kn4iZsw;hJb4*l#q0jCvI@U65c|RC?_&h3JP&Z48$as3nN1NQEb51%G zVa1zCIEJ#m_$SbefBjg&iQ$4!{c^~LrzcXT=Al_7CK61b9+M||G$)mPz%sIAGFHsY z8Ogsm8?6v#mHy1>r%R&lb!shwQZ~4zd<;#y4x5sMdvnzwR-Q-VawS1bs6w=Foj$8Q zI2`rxsX0-1mZnJ?D=ag1h|$Tk&~$~!g6;n$P*Baops=+u@bw|=o3$yog^6L;Sip5A zW&-gG7szh#y#NyE5rGm!<~P7ZWB4x73EfpFy`pFE>9EK1(OMdKOqxVuZg#Ayt ztOFFq@44+SIZ`iMNHj)N0$6asi<1TCybt|NuiPX_I#~}lz$?e$AT3xmTd0{ebJmDl z2~6Kf@(EdY>H)CAWa311QtJSM+t-^C>wnW3@%l9)nL3=C6iSQVG)RC#P$XRr#dDg0 z%#yxnV7fpJ)qb$p# zo#8jVifxt7<5`)Hy|G`G(j!(A%inwcu}1Z#WlAOw_EleL{lawvueUrT)QWJSTz|Fj zTM-od3^x#M8z`c=b%~rV>!4RA-pqRGFM24&$RugRb0Td`Ho;DU