diff --git a/project/202506050214-王佳硕-期末实验报告.docx b/project/202506050214-王佳硕-期末实验报告.docx new file mode 100644 index 0000000..4dd0e9f Binary files /dev/null and b/project/202506050214-王佳硕-期末实验报告.docx differ diff --git a/project/articles.csv b/project/articles.csv new file mode 100644 index 0000000..8e9831e --- /dev/null +++ b/project/articles.csv @@ -0,0 +1,21 @@ +id,title,author,content,source,crawlTime,strategy +article_1780116197369_9103,虎扑热搜1: lpl,虎扑,lpl,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197369_7122,虎扑热搜2: 马刺,虎扑,马刺,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197370_3867,虎扑热搜3: 怀特塞德,虎扑,怀特塞德,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197371_3682,虎扑热搜4: 库里,虎扑,库里,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197371_1255,虎扑热搜5: kpl,虎扑,kpl,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197372_9579,虎扑热搜6: 欧冠,虎扑,欧冠,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197372_9427,虎扑热搜7: g7裁判,虎扑,g7裁判,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197381_2668,虎扑热搜8: 雷霆,虎扑,雷霆,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197381_4475,虎扑热搜9: 亚运会,虎扑,亚运会,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197382_3875,虎扑热搜10: 歌手,虎扑,歌手,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197382_8206,虎扑帖子1: TT 1-0 JDG:强势进攻配合行云流水,TT首局,赛后,[赛后] TT 1-0 JDG:强势进攻配合行云流水,TT首局 - 亮 50回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197383_3499,虎扑帖子2: HWG!罗马诺:热刺免签伯恩茅斯中卫塞内西,签约四年 50,流言板,[流言板] HWG!罗马诺:热刺免签伯恩茅斯中卫塞内西,签约四年 50 - 50亮 139回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197383_8409,虎扑帖子3: 詹金斯:波波教会我,投入人际关系和关心别人最重要 17,流言板,[流言板] 詹金斯:波波教会我,投入人际关系和关心别人最重要 17 - 17亮 49回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197384_7408,虎扑帖子4: 库班:如今的NBA老板早已变成了精于算计、利益为先的投资人 40,流言板,[流言板] 库班:如今的NBA老板早已变成了精于算计、利益为先的投资人 40 - 40亮 118回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197385_9306,虎扑帖子5: 布朗谈尼克斯凝聚力:从布伦森开始,所有人都愿意牺牲 18,流言板,[流言板] 布朗谈尼克斯凝聚力:从布伦森开始,所有人都愿意牺牲 18 - 18亮 65回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197385_6241,虎扑帖子6: 马竞官方:只花5分钟就炮制假消息,别轻信和巴萨有关的消息 50,流言板,[流言板] 马竞官方:只花5分钟就炮制假消息,别轻信和巴萨有关的消息 50 - 50亮 276回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197385_8627,虎扑帖子7: Amick:湖人会尝试追求字母哥,但我不认为他们能得到他 26,流言板,[流言板] Amick:湖人会尝试追求字母哥,但我不认为他们能得到他 26 - 26亮 92回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197387_2189,虎扑帖子8: 外媒统计LCK常规赛观赛人数峰值Top5:T1五度上榜 27,流言板,[流言板] 外媒统计LCK常规赛观赛人数峰值Top5:T1五度上榜 27 - 27亮 59回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197387_7047,虎扑帖子9: 夏普:当裁判不再给亚历山大哨子的时候,你就看到区别了 50,流言板,[流言板] 夏普:当裁判不再给亚历山大哨子的时候,你就看到区别了 50 - 50亮 301回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 +article_1780116197388_8632,虎扑帖子10: 法尔克:拜仁认为左边锋备选都不如戈登,今夏或没重磅引援 28,流言板,[流言板] 法尔克:拜仁认为左边锋备选都不如戈登,今夏或没重磅引援 28 - 28亮 64回复,虎扑热榜,2026-05-30 12:43:17,虎扑热榜 diff --git a/project/baidu_hot_topics.csv b/project/baidu_hot_topics.csv new file mode 100644 index 0000000..e9b18d8 --- /dev/null +++ b/project/baidu_hot_topics.csv @@ -0,0 +1,11 @@ +排名,内容 +1,科学家精神是宝贵的精神财富 +2,“我不上 孩子就没了” +3,顺利出厂!大国重器上新了 +4,欢迎回家!神二十一乘组返回全记录 +5,31岁离异带4娃妈妈回应因自信走红 +6,435万法拉利电车撞脸13万蔚来萤火虫 +7,演员刘洵去世 曾参演《九品芝麻官》 +8,男子为狗捡玩具被江水卷走身亡 +9,车手张秀军意外离世 留下3个孩子 +10,老人与邻居互殴次日自缢 法院判了 diff --git a/project/baidu_page.html b/project/baidu_page.html new file mode 100644 index 0000000..af941c6 --- /dev/null +++ b/project/baidu_page.html @@ -0,0 +1,312 @@ + + + + ����T��>)zz��KJZi%�l��H �$����sɐԮ�U)��R�H�.U�t]��}��C��ی�d�;�w������+L�3���ݻ����7�mB�T��(l@UKGC2����ڳ��N۩jU���:t�2l�԰ S�.��֭���<!�#���_>�껏?��7_�)��5y������~���Ư��޼��� !�>�w�_^y_�8k$4�z8�&O/��5yzJ��^f�M1: ^��z���������p@š&^�|}�a�TL��pe�����eFBc�p|�?Wa��)κ��u�_�4�9�W�2�>����p��8 �g� + �%"%�9�Ƀ��]hN���Nz���;�$�)a Q�P|8���G8�X k��� �������z��q@3o�9P^��D�3�sZ �5'��@�4@^�����:���N� 1d@�������᧿�������������:�&O=M�W� a�4�ȱ��z���Ӆ@�!D�XX�?���S�YNҚx6�J��8 �xL�2�.��'%a���i��.b��a�A����� L֋���^@owԛ���*�2�'�K�Y3y��=�y��B�u�,�%?3v��gƃ�䓧���?��������ؗ{9�%�����O/ܳ� �Vr���z!t�c�Y_�8�MZqP��0Jݺ'���ã�3a�����,ܺ'�`?xs���x�]������à�ؔnE�v�~T����AEeM�A�n��i��8�ı�������ҏ�{����TZ?�V��N�J�1�tʷh�r�j"ְ�c �2n��&���6F;7�ų}ǽ]qP�ʌMo���vm��7��{ݓ�{ ����Gdž�I����V+x5N�a�� �`��G�3��Z9�IP�'��EX#@Xo¿�f1x� �P� + + �y<)aM节�%�ę񳶛��ù��dT�3�:{p�cc�s��qI��!=Fkuz��]ң�6��f�|mG������ʭ�������V,>X�8�L�'ıM#G3�l��X�� f���\��sS��{aǻ�΁ߺwk���QX�2෻��=��I̵n;�w��χޭ\H���e��}K��e@�,0�� #�N-�ҭ�Ԗ�F��>Ә��~��8E�F��3��`��0`��Z�5�BZf����"/�-��k`#8�X��u��'�4��=w�����%BKӱ �nm�uM����nOh��ޓ�8�QJ��G�&�����)ckQ�_C<u�c��]/�*�Y�›Y$���g ����+AY��}��jS�t��M+�qS���A����o����Z�FID�;n���#��Ħt벪�J�#�=i�ǚ�n�do෕����P F�ښh�R�D��Q�Uf!@4��`"�͂���G�a���F��X�+~ fQ�G+ ���x��V��Lӆ���� ��X�:�=�/D̎�� �=q�k 1��~*�nm� ���7 rބ���)P�v��=!�xJ� �)�I�����DK�3���uŹ} ��9g�0�4��J� �-"��w�!,�1��M;,dYԯp�r��{�(�_�SyJmW���V��`��"\�n��i}ٗ}i�)L������`�c���>*����u+P�ܖ�cY�VN@Rvb��0T��L�r�9έGϛ�V?�z�F[�D� 44��˝��j�cC���g��l�� �ApvB�64 �o+. 4>���� C� �V4\�G��=j*>��f�p��K6���+�N�H�[vw�6�(�K�E�lD.;b����%�P���=��ک��F��!�V."��3�C���g��3V���FZ&�$hu��&�J��=/���jt[�5�`��ۺ^/���G��4����I���8b�Yhe�>��fRR;���o�G�1��!��N�_ξ��r�l�.�ؓ���!=�! q�}�Hn��P�N�����}O>}_�A:���x��H(�=�Z� R��|'��?b\4����[R8;�� ������p+I���5@�Ew^�׋e�L��E��$ÅX��b�?uN�����~,m�H�8���BG�eh{�������a�7e}R��$_t + + ػΜ�܊r��# 0��� T_���[��R<@�l�G�h��$����dgx�U��LB�ݟB���ot���4��R�"���� �W^S)j!�X����ʴ@���,G����8%*tB�]s�Mg}�>+>h�A3��J*)�O�!Z(8n��t�V�E�EU}��Y����j]�e^U_b%�6�ɳ�%�(&.�Z�':��&HY����t��5rt�]��J$-Д_�����������#]?hk��h� #J�*�\�P�s��3ח9�BA)�gT_V_V_*:�0K�2�#NRq� V��Pl. ʃ���ėhUґ�� �d��k�\’�d��y^��!�;�M:��X\��2�>����[Q�VT�e��mVàa���ٞj�p� 9��]c���5Hŀ�C���w��u-e�-WDڨ��gn�Hw�5�J���y�|ĉ�t�hT>�k�)u��#.�ׄe�"/�2��K���i�EE�r���ӳ �ƈ��_�\�8�|��Ȇ2g�C S䣙'W�4]����E |X�w؟lS̓��Ux����� �Ɂc���#�G��F�D��|�"�.�"=ҙ�JX#�_WguVg�u\��hH�~&s����LC��}.yq��@���Fe+�6�JGy��8�J =o������ �y�\r�]d�,K����*V�ɄKS�^w�s�|O��8j�.�����f��=9ƾ��mNJ R�|�R�� u5ȷ��ͻ��� �����eQ�2�����i�(����12�'F2qE��PV�58�����i��Db��GJ� E�f��hHؕx�#��\i�E��>J�� x3��-���EII6I"G���q,��-�/F�N�>��ɂY��~�����ڈm@ )�2N?��^���U���(�%V��i��+1�9�|GRF��(�1� �'��TΣ�e��~� ��Y��v�|i̓CX�b�%�`$,����B�1�j����z�j�#ҙC!�_.�M^ 6ɢ�=�:�Yp_wۤ+0W\n�;n�@R�&n�֥�>ف J��3R'��4WJ,��j��^���}�f�>^��M�+��#����r:bw� ���t�f_ֿ�UY ?V���bS&]eb ��[��ʭ����~l�K��4��?�b�(��jj'���Ҕ�4%쳃k��ZB����L���uF�Lm� B�ư=ŒU�԰�{��X�{]%I7C�z�F ����^ѝʷ�b�VT��#:#� �L�"P�f�=�]T��{d€�[$*�V7x�5֚��r�p8LEku�.����.�}2��� ��I ܦ$�.*�y�v9��� >z��Ϣ�ƚGD/�-ѭ�+FJe';?�Z3Y����J��:yN*����=!������0J�����R"�8q3��ey�C� ��!tW3 j�%e�8m1�"/+�d[&��:۔��6Z��Gb|CY����Q�b�����?��;*�?FZ��;\��Mqi;:�Ճ��^�1}���w+Z�*�P�c�"�*�~�t��^X�]b#՚�G�N�:D����f�9h6���뺶�e�>�+�E[s��8��� �/��U-%���C�(@'�� ���N�LL���ጲ�Iq*OReA��y����<*��4���S$4b���N�hC�A2ݕA�Da1�9�l��2e68r1'� n��i���7�5� E~C�AU}����<��B)sk��!���� + + ��� ��ɷJx���{$��}�`�8]�%-�W�\Y~N�G�������O*f@Lq0O6� :Sܐ:?o��k��������-��(���=�Q� ܝ ޵sq�憹>9a�C��DM� E=�}�ƀ¡0���,�O�!Xd�} ��R�ʴ��uyqO��7x�A�j"���1{]��9c0�g)ڃ>�1�8�6���s񌸸���@M��/^�N-FY��1� ��~��������_z��IdX� #���C�ɶ=�C)!KO��,)��3�����론-EG�GQ�� J�hfw_���9r�c�8'.��8q)��{����o�� ��Vd�bRb��$�t��() eiQQ�4%��s?��>�>;��B� � �d��ݲV��I���h��e-`�����ڃ��='e+�#4�~ӗ����T9E�:�%*�+��c�-4 �?�6J�����^! �=2<������_o������.�4NgE+e��J?Ζy�v���8�}��[x�i,�v��SC(�h>� ��R妜X� C��5�I�]�R,�{Hâ#�1)�bo��6�'d`��; + + �^&MOt5�PC�8�.���:_K���9?�Jck�� �k����8��{�h���Hs�vI$=���8/��I�]|�iv��=�.,�ۓU{(��Υ�?��L{J�r஌3�Uu-�� + + @��h�ꋁ��u>w�LW��ꁘ�� �J,z�8� ��Pn���V1{K����˴o�^�*����vg0�� t@͠����,姆n�P��yM(�mX嶜��d�;�?u�#�$)֩!����15r�w�8*%.��ۥ�4��$#���� �Et��ޫT`z����U�ڒ[��ݸ��n���i�T�W�M+��7Q�8ၠ��5Gl�d ������?\�%��5�OQ �2���Q5�Q5������^Wu����ŕh 2���Oc󥓣�Jy��)�X[���H���0�@J\*nB�)��Ϥ�} ��!_��>�� ��[֐ �5*�䖕��)4 y�/�K�� uڊ~C9F���j���z?���a�c�����xT�|��|�!r�$4�ͣ�(�.K� *�I���}�1�B?~�4 ��˼x���i���Wk�A�d1�g��,�#����^ �Ũ��vsnV�`>�r�y�g&oL���8����j{����R� �:�9׼�>ӳ9a�Ŭ��txn �ZNr���8���;m�ƮM��Ӷ��B�������TH ��G\�4 ڎŲ��s��Qu>��$�{�(��p��G�x.��D #k�a�Og�W0�|Tf7"5A�sG�R�Ay� I�!|���v���yÖ>fs7K2u��D��ۼW|������A\N�[� �JPĤ���]��a*DLb(�NڳK����^�kl���|��dK3 �?�"��Zc�5��e������J��4�ɴ��H��й(m[Y�Qt��n��1Cz��#ml'������6s�g(��C��t<�������4�+i�^�������h �9�z�xԽ��Sh\�^*V6�29�<= �� ���el . /*1���)��s��� BE{�8e����v�Z���� ���\m}�M���!g �y�� ��\\%؇ ��դ��`���j�WC�� �X�r>�0 ���1o>�[�L�p�*~��ϸf��b�O� ��*�����,��_x���;�D誥"������q����Z����%^�u��h��j^g`���WJ�˛;Y�[���*~T��9S���1��I�eWQ��z�\��w����+�ڴ�=��] 4��~ �><��W�{%o�d������qȎ�`�5�e1^}��a�Ð� �Q�)} ���ǰ�m�J��U;�#��J��d#�pR#j ����n׻���U�������Q�sʯ��:-;{�il;��_��#�3�83�na�� �C�)�#:_c x�W-�� ��4�A���]�~(E��Em2�c�9��*�InM� e�=����ƷT�@�d���P�$�CH�[|k��f"� ��S��!C�B�W=#E�w��5��A��v b�.%\��r��n�q`N kJ�� ��R liU��V>V�r˃�VA�uK����{Ut8� 1� 2ZcR=ӊ�����T��6�����*�7������m�cS��R^fHDf(� �d��� �.�|-��Q��7�? �p� �$�3��7���c�4�D�jةkBD�i�ͺ�F� K[���+�S�I�2Y�{\�Mya���1�����,����БX�.uV��Y[�#}�]��?s�@�� + + <�|���v�^j�����~�T�x��ĕ4TW��$�}>h�ua�{�����1O@���T�ív(���uU B�g^�r��k���Peٗ���3p�r�Nh��Um��y�s�*:��A�L��MϷc�� }!��|��� �Λ�񅖼x�:����}�-yy�8�7�祱1V��Kdn0�7Y>� kĸ���>������cJ���Y�Z�( v�}�[k������j���a)�6Π��[]�n9b�-�K�ip�[��iQ ��InD1nkd�0d`J՜���D�I��Z]*�U�� �I*兂����yO2�?9 �r�)v.��%d��ʰb��{ Jx�:�j�!�����_� +��KC��w�k��ԓ��&��n~��z�g�^1T��8S`�������-o�8�(���:�B�<��� �h��\�5F�B=\ۓ�������g��R:Dy2�A���g�ڴ"�i��Q��B����� 8��HN��H�׿4P���a"a *�� �V�����&±�!, A6q�����Q�O��8��u��3�P� �ٗP �~7��TX<`͋xޭ��ɓ �3��̭�К��RfՖW��K[���iwX]�����h�)>T�7^7(�N��)̞$ ! C�MLA�T"I����9}<[ O�Q����Tj��y�|��E�¢U��b� ��Og��pJЛ�-c�هf��C��p`u���n\�������:�6�^��M3ҍ��&�IA�����5�m%�u�J�}i2T"ђ�|���&t�����{��g.�d�GR(8@ʴ��E�P���j-/�e��fǵ%��|?��c��⮥p�Jͤ���;~ADq2��rS/�XD]���}�#( ���j�G!���eĊ�E�o�=����]p)|��#�(۱��Ew�tg�1f�^h��{%�H �.S��< ���g��m�’3�ҧ�&[�W���^3�~��ϛ��V�lV 0�i},�¥o/ў�l��$��8��.��]��ƒ�����>>���I� yh����v����ۈ5����O��%�`-Aα#��n�l���_�5�. �p�F$���LiZ{'�z��P$+R��=�?]�M�� ��DiD�R������sr�]�"�&(i M$43��}����m�1X(X2�8��6N�h������w:J�#^?��u[��Kֻ���*�� �I�5�뵢���g�:��u ���T��$V����z�AĴ���SӦ� Y�`&��{�����H�D'D��uV|�upɪ$�/�##=�n�K��4� �:t���Z�F�%������B,��A|U���� ���G������ ���� �������(;N[Nm�~���>�13+��1#��i�`8�ʗA *�9�:�� +�=�H1����H�����Dc�gN��D�� ?TP �O���r��{J���@��E�v����i�\��` ��謔����ϲ,����";z�����*Nr�jc���v(��r-cϢ��-�h6ܕ�n��V��Q�{6 ��+o H&*\<2�n�lM��-�i�:5�� s+>S�4P��98xͥy[g�WPX�P�h�7����T��GPU�A���X� �U���j������0���o��0��c�2n��� + + Jv�ܥvTi]�c�[���;�^Vu��;W��0WN~KF�&g:���9���K��e[bQ��DZ�Y�uV�� �����(�Ǧ���>l0�dZ�2���r�x0�� s�N��2���A�W.h���v&T�1�@0;�[�E׀p|� ���.I>�y��*�,���m���ʋ����e2���p����9-�����/�{��p�$V"�����]�=UZ��_F���if�Eml!��-�p��݊u˹�׾B ܐ��ү����g�t�@jb����>�s ��q��`��+�U + + ��*�9A�̫�с8�&�UY��*,�,�q�%�����e�U�j�|ή�n�,S��F$�ͧ^��5�l�'����ĮB���<�6��kO<�=%% �hp��Q�S�V %�E�fpZԿ�/^C>�I��� ʞ�0�`M�5�ٮ�������+����|��O&�3�%�'5|\���"���Z`Da>�jE 6�܂�n�P�Tn� �SH�NPς'���%�0?���\�j����'��$�)���a�!�>�9"'�+T���v�����[����b�� b8�ߡ�pJ�?!ǚ�|�#����ǒ���;�w��s�������A�N�:@��h���u�"�V�Ӟ{��$�� :5θ�Mo��W�e�j��Y���Oeq+�-P����2aɃ&�(��y��!M%���_E`Q�iY���q�\�"^�����m��S��h�4�3��� + + ��dy�j/�����IЩ���0��O���a�R���6.�X�$5Qu��)`�&�~l���H$w�B6�w~邌�|p.��Փ��:�=�� ��4�R�D����Y���� a��@��ɌIC������&� .�������S,��������t�Cd0eR����ȱ�c�Z�i�D�y3�jr��e�3���κ�=� R�q�w@�qc�Q:<֕�5L�8�\�ׯ1���أ���/�2��Pn> �H`�s� /O �Z�$1���a?>�4��5Ja��7˙J�R�dғ5{L��s�?g%)\+P9����W�F�ݾF�⸕�@��� ��h�t�8�V����Cr�z�����za}P��)3�89D&��,��IY.�p�z��e�u5R�ts��$Ԅ��At���Q��=g�F~��.g�F�.O�E�lMhv�,+�s����� �Y8J�2yJ�F���D���]�O]�z��[{�rߗj$���:���L��9�J���~��H��˓��e扲d�{䏙ve�f�� �E�-|=$�L*Ȅt?}w�-��[�w-j�ѡ�PK4�f�%t�Yo��Q�BCF�R�w���EºP�Z���Z �D�U��(�� ��H[Fh��lE�nZ��6����HU�YQ��6?�@�SF��]��g+�^ںYZO|�u)\'C�����I���k�窡�iG�����I_����/�j�[ýڲ��P���5w����I�{�z��8d٢�#}�.a£���C�7�Ae� �������0����;��l��i��th��@I�†�Xi+жw��������Tw��8� ��ru~b�/�"��e�h�=�޻�����l��6�h�a�2Йښ� *�v�Vh�#��.�M��n���E@ET\�=5ƅ�]҆Y|� n8+ �b�㔻�i�*L�Ќ�/�}�u���vo���G�����9��qw���+jz���rܺUk`(�V@���b7v"���k �E[2�%N��� �0C���`�$�СR`bd��k2Hh�K���38T�9���z(���5�OmM�\�v��*�p�Q�ԍ.�lQ�vg��L����5�� �1�t���z����ݣ,$�(JQ?�z�� + + [�a^Є.jƔ� ���o�/�_f�p�]�L/�?St?�z��K�-���J�j?�� �%����߯�g<�5zJC����-�7�,��< D��a���%� �#D��E�X���'q�m������&�� ��Pw�g���8!��i*����I��+��Ԣ~H�>��:=��1��s�?7�#g0 �^�3���=��L�9�����H�W�]��ty�τ�"�`X���C�qo��śf�S2��Y �f��w}�-�m��<��^��8��t|��A� ��;͠�&�p���c�t��P���#����~4Uՠ�������h�����-WӰ��$��qMiB��w\|���c�&�w+��0X�ө}�Ԝ��߬� ���D..dn���&,��2�9f.��";���͔�~q�tЛ���>��buj��+�� j���E�f���@�etX}W�`��Ѭ�uA2V� }[�t2q�0Z�D*0D?j�Z�n���6;PB��t�@���-� a��̰��Zd�=�S�sP�-��)����pP� �+�C�K���mұ~|��-��)qO3��p� ݹ}Z"�~�= + + <�s����v�P)�p�SJ|њ�����`�Tv���ӆP���E���ªE�pIQK����\;2���\����,�*) ���mow���d܎(���ˬ������h��惸������~�q����>�g^�$�`^�;��%��a�6��x��l�T���|a,Uע.�lR����7�ҵ��ק�F�� + + ���5J��&�0#�d*6斆#BX}?�����C.h�;�\�� ��Gq�O2��\������'�8Ӱ�Ey��Q�U�ﱖ NxNfyS�a�������-��Gg3�`�t�"���� l0ݞ��#���3����Frr�-X��8�����2�AA8,����+X؂��������M���K�7�g�c%�t��8y��5.�u�Ɏ�a������Y�D`�� ��W���/�|��͙�|E$^�Jj0�8*�#��7�ս0�cހ���j�Ҫ��2��J�T��[��;��?t8``�WO2t�>�QF� O f�˔��\84��dH�*7>�-�Z0� aĔ,ź��D���[�埰��(�cX6�8I���.-�=�XȥG�+.��)����v�vf��+�@n�U\U�$�(D�ЭZ���a'Vh�ސcGiY�[>S ���`��fͰ�k��� B����h��{~Y�_��g)��Y��(� �q"���?��J4����N]���4��1�z�U*���k�Gxq6� ~Q��F0�X������ڤ�r�?p�X◑��Fu�Xm\j2N;H �a��n)-�g�˦�P�?��=�:��i�ڬ3x���9!b˻{�<��⫥�\�[�u��H- �F`e��R��6z8wY%���NY��QZ��� U�T%< �.�N�Eg���J}�@�h����?k��c�"�^��)uEhf'${v����A��)�C�������fC�f)i��1�<�ȶ����Đ�*G|}'~O�D�*�r������r�\㚏�m1�̹+����LP���vq��@{dB�\K���^�O?��& Pr���JQ���� ~/%��y�f�涊K�]T�.u�+�z����d�J�}tF*�;�k�`f��% ͨ�x���R��!�t�Yf)��;�VJ<{�a'���Ֆ�8�z��Z�-�ά�S�d������ˋؽ„�@�=�[��cc��SrT��^��$��F�E�v��C y�����!'8I�ǖ �u� Yń�z) �����1{�~3�� + + ��{s�I %�O\�� S�3D�H�B9�z2� Y�������}�����;�����ؼ��V� �� ��B8�z�6($��oG���L����m�M�������K�����r�w�Ğ�5�+D�r@rC0��(��=��[�on�4��r��,[ۯ �VH���n�����R�A^Z|z�Ȧ���1 K�ː_� S؆x��9�2K��Th�.ΘR>��t/t�x�[.��|^�\����d�`-I;�ڇ!1K�7y��pG�n��v�l}����;b��F����=��3�\�׽Y�Ǫ���<8�RҼ��� �x� n��Md *��ָ޾%���¬��Vm�@�sOkZӚ2�v<�q�J��3C��%ժ�(���Q���w`\i a�O���>�;�s����v�1ڌ����f���� ���g/a<����Q�%1� + + �JU/j�f�,֠ցF̃K b���4�c-\�#��p����|Z�9t�}�t���oH�9�=�^�pB߹P�$J�*oĔk8��[J*�ДKc0a1�c�rI��r���!Qwl��z;#q�-:��E ��i�g�7� ����A�e�9@�g�`谬z D}� O�=��d�R�}{��hU���p5r�����:�l�n�d���S�<�V4r�A��D�����1`R�n��B�����z�T-�0_y�D%�\G;d{��H7��NY��G�A��y"T`$P�}�$i��1�$�ò[|�&��cXho�d5`�n,C��&s=�����>4��l FY�̮��\�Q�ci+K�|��6kB � �ߍ��U�k>��. �tL|^?��n=�g����L���o�: 2��qqa:�1s��5�����/�W��bQ΍�^)~z=8- ��2���vz���켗D����9��OE�ސu;�{�1;�=���U�kZ>mƚ��G+o��1��ɥ7�6�0��lK# Jn�~?�KN<�_�L������z݋��������m)�t�iX��ϩ��T?R���;�cH����Xls$}-�Y��t�Cvq���F���t��d^�N��wIuS�κ�C�R���)<�4/GBЛP�&ˬ*���Q����ͯ��$m���3� ���Q(5H���a��O@�^�f��̅�`e���a�,w�p�H����F�$��P��(s��:�^�J�`�BAcY,}����#���~>�� ���a �~i�r�J.����@���#��lB� 3�+�B��N5��n��S.o_'3�TN�^I�k�q��3�!�p�T�cjB�[��Fj#�Aj>��Ʋ�_w���\�hIn�:F�:+�o %���Zϕq�8q��C �A4��D�XDv#PV��%s�Y��-l��Z�5`��{|�yI=<�r������!k�s��6ϙ��)�C�Ov��x#�7R,t: εQ7��Xҩ�VP���(�E�*�F"��`���A��B8����k�*F�^wO�S���R���% ��<���z �+�$�� �¼�հ+���G�{�^Vu�� �. �~�sv+~��������ɑ5 �xᾎ�$�^�:U�K����-���HpN> u��*|��5����'h���}%�uaD�V��9� ���^�V ���p#��"�[�.!��l�_���8����#��}� �~�V�N9`,G����o���ŭ�Qf�kb��ru�z�! &$-�/�B]�ѭ�&�Y/p(�3\.a\"J+��N�~�1n��G�6�S��}�k.��‹���A} $��Tc�Z�߫�x�iJW�W��~~��V*�Y�W��;+�N?�K_�X�w������ȍ�.�ޣ��z����x[�r����/H�o��[G�� �9��Mrv�b�.H.FvQnR������ Qv���Q|�T����x�S9D4T����g��.�u+����� �������1�e�+���7q���-,gĸ��-EtY �!9eS�)�ٛ�0{���~M�� /�\ĥ~w<ҌZ=J��?ޅ��}X��M&]�F�j���¿�u9ijEtَ����,E����M���(��PR6��O}^޴{Ӓָ�Dh�b��y��_�et�\Y;�f�L�쇈l��T�}�� R'�{\��n;�!�Z�N�5R���j����m2����ڜ�ےe�L��7�U�{��=��~�K�Eí�_�T�x$��Ϳ۪�{O�������� ��M �?��������d��(t�>N���_�Z�$t[��]m��_�M�ݮ�M7� 0(}�W��?�I���&������̼�����6t��n�����GX�$���5A!����������v��K<���ٲ%&�T*���9�{�-52�m�(�˕�*w����p��UI I�Z��V4x�Z���\p��E���i�8T���v_��+u�%�Zk.��aK���o\��4�m�!��_�.���'NI4����-��S��q�p�%���C�<!s�z� �ES�V󁼫R���ĽiY �� P7zU�sP4-� ����A|�N輢{Pe�* �!@1��dx�^Qr�+�Ғr$/G:GC�S������P�У[��Z4�!��=�CR]��,r� Ь�$������ٵ<���C�ߘ�1�z�4hh5�Q�Jg+j̠}7�-/�o��y4��Ma0���蚜i�=n�C��4����O�h�/F�2�<�#L��O��Z��$�O�)�'c`�\Y UkKM�D M���̷��w���r�\�WX��!���]I��@�^�L�}i#��L���Rc��& �`�q�^���^(М9w]��-��~����k��־�O�A��;�Q�e��5G �-w�"�s[���8!��^�Wc����P 0�W�(xy���S��p/��-�=���ja=1��=:�l�����9����ȍ�{E��$GD�?G4o[��M���D� k7������3vv�s���lX{��؈��p|�:K���] 9jX5p��0-�<�v����l������)��M~ "���%J��To���a[J��6�susT �ʁ� Nۡ�OZ���}����%�w�P��7�bf/�\>H���ƚ��p\�l����h,a�%�.\�ܞ�� c�7��� M�i�O�1�@b�[q��b�t�<k C:/H �0���s��9��D ���pe����f�W]}N0#�h���i*���R*n��D;���,�[xM��t�USfDĚ�hX;M��h�]aQ��5?���*Oe���a�`���e�R��4_P*w �z�˷�_N�L���r�}i��V���^��)�� ��=;:c�m�]RE�^�k? f�ES#-�<�]�����E%��+r;��T9ѠMF�_ʳFB�1�R��TR@��y���p���ea�,�?fPdG�M���5#fr�a�� "ҵ��e0w����~�_�Oʘd�7y���<�,�i5�M�S�d:���r�<%�%"��9Pv�H[zA�oBH�x�J�ʷ2��cs�B��Ðl�*�g�uN %�mh���̮*G(ɴ4�W�'/)l�v)ڄ�gȅ�I�M2V��a�Ns�Fv�&dⲈ><*EsSݘx��d=_tp?�#�/���ZC��ֹ��h���y�Ш�#�p*[�#uZ�ş��cꇢ�"���4L�w V� {�Tw�`�Pz�(r��%����rm�7�K=�쉠q��9h�1�ahyqeh86��2�s��!�J�/ i��l��w�FT>n`�͠��������(蓶�l�����0�������jS +1��ɴ~&� p��-E ��48�d� �'���#���4ۂ E h+A�ca�9v�¹L�����J�~���-xj�M�Ɗ,ν5�Ս6CF���r��;���gE�x��'H~��h��5XO�0R��LHA���e�`� A� '��e��69��m��(���6A ����v^�%�N +��*�ts�Giv���z��+�H�_ �y�1[���ؖ�`ʢ�G�9� ۾�d��9$w�L�1��*gE�-�����z Wl��^�4��8r�����G���7aӊX9��� u���b�� p��ҵy0Gt�kz�eF����SH���]݋�����'�9}d���h�G;�<�_���C�[�� �ց���c�V��aT�����9klB=�nB�)��a�7R�핾T{?������̡g�a��#Y��K� �ީ�^�S�C�*(�iH|X�L�E�tq��z��U��O�)����������6o�R��U�ڕ G��ߥ?�����8A��%`�4H�0��C�M��2�x��Y�N���\q��H���}N�il��~6;���gg��w$�\������7����"�!�b�����*,R ����-T����bj�ؼ� � �\�K�%����ؼ�������Y޹��p���!s�1�rk�A� �fJ���7���QVC0�Y��-ܙ�UpdB��D����dsD1$�t�p* }>i��9�#�R�EEU��t' R��|T�lj���$ᾕ��nT��������̈X?��O�;D����*�!�h�C�ˮ�d���1��w~ ,%�`�c��U�Qi��[�q�"ô� ��&r��Ig�$��6 �桥<�`/?t� �$��6�kM0� �wP̛ �x�N��tޯ��ɻ_t��N�3-E�J�����&�{F��5 �I����:^���X��C�i��t�/W�HX�1 ���6�^�8��Z���&��������?_�W�cV�A�W�^���G� �T=5wQdZV1��&�1��F|����ܳs"��A�+b������w�)Pk�b��o����Y_�B�*?�5`b\ F�- ��.��V�X�����z����އ��1�O�GJ����´��f���;R�&ӹO�C��B'���sB�H wK�D���Ʈ����Sy@s�#�2��S���<��V�����ۂ0m��""�Ue$�P�c�*\�u �[B�^R�b�@G��-**�K �)��F� �S3 f?����h�HF��9y��6/�:#i�j-0�����gV���|�8��;�"�Ӹh + + @��6/ͫ��#%������?v��S�`�X��X/>�++I<���)rHO��B������y���&�{�D |(A����} %c4@\� �u�Q$a�=�(8��$��Ԏ�W�� 7-}+�b�id$J$���W@��M��Uo_�#aU�h �{+{1(v1�)J�/��@:�����J��VGN/��/v bt����;{�Ӌ*X��r�� F� ̽�������T eG ����nǢU��Z��<�J���xH�~�� ��� \�W�����Ndؓ� T@��mM)�}��:��F���x��r���A�i+��x�ŢC��_釞�h�k�ۙ����b��Ĩ�rԚ��@S�Q!*3�teG-=a`�6 ���q��$�9[o�Y�l���:g� 뜭c\��:����c���:&��1!*��1a*���1�O��E�+Q�JU�2�=ct�Y 5�E-kU�ڄpj���n�x�b��:�n�Oi�n�?���$Ljk�\�&��P�H�bF|�WZi(9��K̓� �O2�a���XmIOu�)X��0{��׆˳"ڐ[c��=�/=��Z4Q� ���w^�E��Q�>������vq�-���|J2�t5�'ïW�R�r�Pf��=����u�S�����ғ���iDF��b�E��O1�E,�V)��0k۬�Œ�nF��V��R��d�(2�/`����ad3�0��s��eh���)9�0��r �Dc�c��̠�h@3�r ��B������a��氈��Y7�� T�n0 �p�4�&h�M�I6�&�d��4A4A �`����E���K��w��ʉ<-:���wL�ג�k�@s�.t�W��hl�#ל%b���ԅK����&H6�ۦ��pl6��TUC����y�����|j?��ۡP��nw��4GZv��)v�O�8�- �p� .�{�oV��^��y(I_]�[���{}`{��xX>n(�������0�}b �O5��>|�|����٣��`��"��u%��zc�1�k[�q�H��Wj�oa}<�^O�$kB�����P�*;S�w=�@�V�_“cM�"D���(����Ô>�ϒ���hޏ���:;/�x��������_T���W.6�RATt9�:�<0]R*֙ ���.,����+�D!�=m^Sd��Ј4a�!���R!<,XE[��C�٢���m;f�ܶb�uG����շ~:?�q{܏`�ף(K<��s0����� c�����/f��z�����ܿ�S4�ݍى7^p���g��ɩ�!K584�C��s�1#�� >�Wͅ���Q������;�{���ۊ����\�/f���,�P�>-�L~�33;΂��f�r���#� :��1��5��[�`�f�� �V�疽~�УgJoT���FK��D�X&E5)�e�$nj��k+��2x� ) ��DP��Z���R�V:>�yg�Z��K�Rs�U��Z>)��;�hdVϗ�Oˉ���ugx��������o!(.��l�.Fr D�7A�3�����d�2ǒ� + + �F�8&�ș"߅M�aA ��]�t$2tyڊ�–�V�ԕ���/C�}�d<���ށ���Z��#rӊ*jR���$aP:v�J�D�e���$�r���� ��,�?��"���x������-q<�6��쩬���5u �К�')R�WM����׉}$��okڀ9K:UB/h��Oѕ� {�K�,`o!8�▰AR�־��A8J���N����D�(a߭�9�&JY<+X�Vϗ���.8������� �fV!h�J��yܛ��~�=�;`l�Ej p��5� %s�n�g͟��f�1����Y�ӆE1��66��]�#�D��?�����6i\�R�sH~�-��.̔4�bC.��8�]:�2E�W��?�q�6[e�Da7���XJFa:T�� q{��-�b��IAN�?��"G�/�HZ�^NG(�+�۩��FPl"C���b,�K �5 ��rS��ǜYp�V"�Snt����ș��"�����r&m� ΄r�o������-����9��f_��¬��h(�+�����d �\�T`�r KJXeW���"&��Jdw8Jc�A H��v�f����S��[�;h�x��2���]&�P|�ÄӚ�:��^f}�� e�R���r��f�F-p��6� �N���i���e%��,i�Sr,�-�c�X,�����,������ � �����[�(�%��Ƅ63�e)�n)l3��V��[��@XХ�Q��1��%�@d�yG\Cy��KG�Y������yN"���:RA�E =��;Jâ����@�|#o��ՠ��F� /�e�MIw�z���T� + + ߒ�r��a�f�ND�5��pLs����ܘ.X�ֹ_>���-���?�R6pک��4{� �ƒt�>�G�X�*�N�+��~���;Ľݎf���s��"��XN��0�|V-�K���*+F�푲E�u�S��SīM���L婁AbXA���$�#�0R�;�挋� �4��r �����{�(� t�������23�Y�*o�c ����h����1p�LL�0bx)V��*hK����|B�Kܘ2�2��]��:��[�FYS�N�z�9���-�!� dB�#������+X��5�U� zĒϯ � A"i ����UK��Ƚ�+ �K�1y�j�CR��a���lR٣t��i����K��ݍs�n��'��M��2�Y�z�Y�˦�=�ی ����k������4mĘ�F���>�d���6zB�Ad�Ѹ2i$�Ie XV ����96n�o��:h L�:��D���"-ې���kL�Êo�O�����{�gW��C�8d{. �6����i�k�g �&}��}0�T�1�K��,�g ����j�����?�~������.��������Dž�;� ��t��?����� y���O�!��±:"|�1H� �笭�e��}�r΢++���yz�wIKY�����J�"m�,E+ZJi�B�q�����3������*�^5f�%/�����|x�'������a���Z��Zo6���z������f�����b>V�_շ��ȵ�� ۻ�gN��V����Z��Z��$o��Zo��??�/wa��T�ƴ��i#������� ��ԐjyӸԑ����)�O�y�+���ehEd�;@+"eӸcW�5���T _���E��'�� ��-���%%�Eg'���tc�]:Ez���%+�3t@'a�\��*5�Ğ �)���ڻ$��}�_b��>SM��ԣGOr՜�ȧ�E�����>-�l�g�O�z9�-E�H3=>O� ����e�#V�'s�2 > M���t��aq�lzڙ��A�+ˠ��u������<Ϗ�HR5�x}0,�d���i�qM^Y�����j]�p�QG]���c�����5Ff�уG�1��b���� ?����.;���ƕ��=�hJ ��6&�İ)��8��?��B2_�~S��]]��eBj1�7.̜�u+��{P�:'D%T@[J�Cq/�n ���,��\�4qp>~���j'4���\,{n6�I>��[h  �i0�5���s�N,��oE�P�2����q����q�[���k�Ē⨇���@8�s�N�Zѿܔ��st�}ƌK��ړS��U���"��D�� ��i�k�m�*��ȇ^n����I�Ee�P�K>���z�D"���Գ~}� *�W��3!����1 G��u����Q-�e�j}�F#�t�lC����R���i����$c�%I��~P٦&���C���IL�� 8Jc�k\%�4���iYU�R���r��`�A]���*��~��s�J�N�X�2y��ŭs�*� ��\�*�}�D��Gĺ��˿�}���>j% ��}�좉�L�/'�*2�`$t?�W9C����$����� ���9&�&R r���~���x���h�y. ��a��F�G%�|R��"��h�U�jSԄ&6�@��[��Z�ob���yF]q�� ��E��Y�H6� �>����>2+fFI����0 B|r�-�$^�5�6�?���3&�&��[��-���:��s�cF��)ឫj�"��PJ�i[Q���=�����%4v��,��| "�ͱ����К�lgC��&'�|6� �L��96_�J�,/��K��m��cKy�*h����R��5�@8P#F ��f�}��;�N�L�c �%��*��u�&y�";!/"i�*_R�^Z>t���������&���%.�-;���L�N�}����,I&GEBYVg�J��(|����'�yT��⃙|��/ �c6v�g�3ӡ�EL�b`�8�E���A)��U ���,���LG�_��^��̇Z�{�8@�ѬX:5�&��t�c ����_h�.Y�䂯1HW�aʑ���VX�=S0k�G,�����>����*�adMh�S�KP���ڏ���M�<���y���5P#>0�FC�7F�>^��>:ۓ����x���S�:Ta�n5�GH�w]�lt�9hRq"X@O�� Ui�6��|8��$�� ]�����;@���G�6la�bC�� 0{XSs�<�&JɅ ���~�t�"�`i1X����a<�$�LNs�'�,�Q�dhoD��ψE�h��P �06� -�iQiV�"Ctj�Z��R�8;'N����8�C �R�h���v~�X;�.�����4����xʘ�<"�'�����˂�>��FLK��un`J_�hl�E�Y��BՅ�dٟ��"F_��#�\B�"hqҟR���kwZ���$��ʘ�� ����n��JL �!H�؇RYP���mN�)d�c�c�^��-��_M�M�Ks�BR���3��n�_�0���O�k�Y�����j�⌦D�N�,q�.���9�m\Q�N���Af rU.��հ$�)kj��u���9�1�uH� ���T%@|1�-��6�Ts�ql� y� !njChМ��@� ��=�z���M�A�i_� Al�`x�I�.8'�|c�G�.i>�/���c�]��"<�уu�M�W����ߪ<�L����Rq���SNS ��~�V�r�Ƨ|�'�--Q~���j��\9��._}~Q0�-����C AU��rz���K��A ۍ�Vq� �9jS\0�R���mL���_�w>�O��,�%+�@+o�����'�-nL�ץ㮅 _���56��R�$J)����\;����/x��v%h�zɫ���m��XaF�k*|����Ď���x��ԙ �v0O�𥇓�3?[ 9��|M��Ď��ì��s��x2c�vf ��f|�[�6t~�i�yzE.��|��Yo>�˸ES��B ��F~��^PC+��Obۊ�ד�����^�������7�.RU��0����!`X�.�X!r�]T��=儢V�?� ~��{�{b�3����``�IHEͽ�����{o��; �$�H蠶�AX�5��af���c�ֹ� ��#�7������KS9���2�Q�Ʃ�/3������t��>C~���N���C�w�>_Q��e}�:��Qo���[2n \ѵ�8���:"R2[�4i�1�(�Ŕ�H�W �g��.-�$ ��$��e6E��?S��~��\@�6��Xn�b~H�]�J�v�3v�l�aAx0ʥ� ��Yr���=��ϑ���� �e5oy��̓���\G4���(<����l+]���1����+ȇuoR(h��-X��j��m�P1p ��i�c��A���: ��d4f'�*E�������6�!�s�!MV�c��|� 2t4e�.T�:�V�u.��J��筀v}ğht��y+"/�t�p�{�m�+���{�mÒ���z���W�溫�B�݈�{�i�0�a=l��������kB���5"���t{W���i9���@N 1�b�"]B*�3{OuR�{��+U�V��:�u�M�6�U���?�W:v5�k�K�26��1�|�Tn�}���N]ȝQk熺���1=�ZJ� b��@۠gMm�~��������͟�xC��H*��hV��%�<�I��_���d��XW�zC�n��h�ŵ��7r�7,P�P�w�w1�����do7Ƞ=Pc �g�����:��{'�Z��S��+����p��$���= ��X�C���'m��ew��R_l�r�2��֕�S �+�J��m��E�z��Fx��#i�2�טڳ��}�� tcbr�f*<��rZYۊ'�8~ q� I<�v�e{9u�+ ��LE����:k��뱒�k��o}������ 뉮��5{C��!T)�YDO���|��?�/�g���O]�C��m�c]���N$��-�H�.P����NaO�Fc ��{[�v�#p ߫mY�J�gNc<�& U�ʯ��o@����o-���ŷͻ�����D�IKε� �Tٜ��=���F!n�>���9�;;� �x��.UP�i ��-�����4A`_ �����W͵�`��E`x���!�\�ud[}������=�)/�w1�!>� b ED�C �V�)���F1�L�L���bh}g5T���i������f��nU�WZժV��e��e'`�e'4�k�7,�H6j����-�����lA���_'MPBf�LmP�랒R� �(X<�����'g0@a�e�H��_�@"3i(e �x�C�qrR�r��pXO�ܭ�!����4��A���@�(�,�ƳU�b��7b����� #b�A(B<�ֲ�Ҏ����]����] U��,��0���q����#6�L�0�DžapNl&zS�0 ;#g����R�`+��p���:��[f�o�BGz}�S�1���@pre�s���Pa��~�e�Q6^��"���i5��}���S�zxO�>�=5�Wtc@=�‘��1�Fh��<�9|  ��~��$�^��J�L€��,f������A�)� T����=���օ��e� ~���Uc�0�W��^R]�F#��Τ�c `醇TB�k/ߩ*���z�>�I�^`σ*b�BE]�4�}i݈6TgY�:�o<>�Y���D8j�;�c����j���#l�n��e刪1� PGf8.�j C �8�Q�,�J�R���iˉB������c�������N�8{��c*�s>C2����EN��$��޷�Ѽl��R.����`���7�52.R�����n[�����|؀G��R���+�3�e�_���gX%�{��f�&"�}]�t�a����L����9� �֘|dS�aD7#���9����c#� G�j5o��0<7��<���mQ8�0\�,�����{�rM��=ZH��cUs�>-)iiB���O|{Zfmo�0�,��цX��z��*Eq�"K���J3rU�c���B �_Ma�kr�~���߻�BP,s���aA9�$=�# ��)j��kx���l�������7�����# *�"ǐbj �an�&te���B��+��I���-�z=�$i���0?o���"��� + + Lb�-��ҏ�@s�!��F�y�(�\��1�b'��#��6xqԘ�g��g�9Nu��K.��B05s�Ύ��A����c�D:$�<��i��i4�7�����:��j:� ��,�6t�ց ��_����x�Nqd��[�sD��XeAD�d�����tH� �\�(禠 1����E/�W'@RYK/ f�C�MA� ۩g(13��P�0�ڞ�\֒keܳ&��r����{Q�}�D�#^���*�ӏ!�x���d����ŭ�HLh�7�9Ա�n� �]cI�C�4*Ɋ�{�������_]���~����pژ�o����-)�~>���$@�迿���Z[��u�Ÿ��٢� + + J�Oy�y2�O�=K3% �] �Cn��*:ܓ���������5Nlo����J���,�M�elRŠ���$-�:K�� ([QX3'�p� �(@�+q#��c�<»��̓��f��6x"�T`<�����:�/��'$)�Y�Z�#j��� #��� �\�%��ݛ� �},��k���?�����Y Z�$�? ����^A���"3�5 P��$���<��ֈu¥�TB;L����H��߇i ��2=`�ⵓ"��t���ɤW�t�f��1�����;:����O�1\�W��ƌK�5W��x�F��ӯ�j���iG��^%I�ܶ�]HG���R��PLɟ���)hG���ݻ��1&w���Z��=�b�g�A4�3�.6 q���� ŀaP@ ���: ���C2�;r� I�� Ӫ��:�e��LE�]��y��9�B���l��a7ÎldvН� �{/��^�g �u�E�3dGlo���a.w�;@�8cȞt�Y�w��SC�0�{zϵ�#l������4��M�q��ۃ[ ��}�lA����CYd@h��n!��ݤL��+ω�=].�Wz}��E:#�+K"�H0��!��2��r ����3/��[U� ,RO��f�a1�u��e+�1$R�K�y�0>׋`v�R� ��,�TُY| ����� B����Y.�&/g��s �x)QmW� V�1���%i,��o1� �l��7ft��X�A�ݓ��y1RX^��- A@�&��c�f�8?��̒tX�d���_��!1n���:�O5͟�Ĥ/�|{:��BdA��Ĵ������t�),/�%-]f #̶�M%��f�e.�@�.J�2`1*���1���Z�D)C�:5��TR�}����{Z��ѐR"�2��M�VLB�v�����U\`�1VzL��g���Ԩ�6 D]�Ȝ:�z69aGp�:����3��e�BrN��C�۶�}�t�N��M��x�7@���'���=��)���z 3�= ��$�uf�'sݫ p�M�����?��^����^��޶F�z���o{-Q=���_O����T9b��v�0�c�m����]ºo)k�u5�u2�� �(2���c�� b���m�:����:ܑC aM%[:���eb�t���F l��L_��������F6�t9�f���t� -<��ɍ�v{��Ta���N:L���e�M���M��qb9��tg:�x����V&�HW2-�<tx�HhAY��<.���5Ǯ���j]�2� �D��# ��i�b��Y�n��bGݢ�� a�|�3�|B�����z)d�C���C~��M���0�������h���[wXXL?���ik[��b��*WP���������$dP(���'��*��µյ��{��73�����aCB��@H0k�j�EO<�I�aeeg+��'�l�1�1N��M.����I�d�DuX��Y٧1�k���R���<��#�����⺮eq��l��~�Ra�_k�[6k1�����c�k-���_�q6%_Z�m�8�ua ��.�.�.dn^���Nx-ӁtqZ���}�ވa�?����P��L�� �֯*��*o-ͮ�֦�-�J�S>���E�ű���S��/׵:�E��q=\˸�UŸa]��f"qi�!Uz�P��俕rm�A��a(�LR5E�� o�2Q���+���H��x�/^X.<�����Y��"��%͎���ٗ��#ɸ!��|P_.6�3��\f��}ih)��_aX!���VJ�)ц�TuOa���f[>m��Po_#��U�i��gՊN��ͨ_-��F�w�i��b�M�^�A"�,d�Jr�㸣��)4� ��8{ZA]��0�~�V���a%h�����1:�lp���1s���Z�ozz����:0�f�fTp~C��n�����U��+g��T(m=���Gi!�ڛ�<@�Pƹ&�)���5�]z\{:���#�{E(�����G H�/��f���֕X�-0����n��e|l Z���sڻתYN�tZ���N�ŀ�yE!�e:c�>o�Ӣ�dѻ~D{��-)�nHդO��l k�T��I�� + + ���8�U4�ҭמ3������2�SY���8����z���$�!M�o��q���� SN�����˳U��'�Y�#�z��$/�^�|&"I���?��|�C���p)��I$�D��p%��ɠ�ZK��C0�J�n�T�NP'j-j}aYT���+:k�W(���&i�'��߁,�yR����� �����D�("�/���s�B j2�s$cNA�S��d�=U�7J����tfJ�7�<7.�'q�ap������z�ظ�������R�*� 4�^�>ލ��e飜[t����ẏǒa9�nR$�*��4HD�g�='�Ŭƒɖ0Wuܣe�Z���a���Kɣ��� ��̐H�TOFA�Iu`�cRcZS������!x�`K� j��z�A��B�������� %�;��� ������N ʊM�<:gu�DK*(��/�I��RE t�f{-P�h�S�J�}�N!���.r��y|-��è�{ �`5��Ͼ��!��� ��6� 9�KoVG�FE�T��(�Z��)�o��S�*��=D���XV���nY�~�n��͉ �tO�������-_ �������đT輬�e[ru��S��GPp0a�8zRT��ٴ� u��X?N�D^8�Y��,��G �w���sC�h���|�n�I��j_%��o����J�k��z��J�� �2q~���a�,���8NrG��H�ڸ[��\����N�M����N�u��k��������k�}�'����W��ׄ]uDH��M��ʹK�:�-�]��/E?*PЄ����iAH�^�6+e�FZ6.�����\�R�4�*”W @}�%ڠ���s;G50��j2�(�\R�V=���J��.F\��^)�g��vE�d4����h-5�t��D" S�`��B#J@\ ߗTg?' ?̊�9�'�����R+H��>#�z01go���t'M�%��d �m!j�Y�K2#�5�C�q�[M�������]�G]���>��^�8��}��LI�G���n iFRBdz��Z^����G�n�U��O���fz�Z��`q�x0)$��� ��HPi�EQ&:gx)��W�OL��\� dc�����S�� _0�z����ZLx�R�ـ��$�д�uA���MDГ,�߲��u단p?�)�����S�<��:�e����r1�k�X��B�رe�\r�速3ktwc� �����:��v4O�����\�f�T�n���|�^:X�2��������%���������I��dz�����K���x�{ ��6�����3���L��k ��,��T���0��x��=�������[g�C����k����l>�}d�#�̾���s>��ysĸ��^wR[�t_e9~���}���I�t�#&��Ń�k���������� W�������#�e����4�%�N���IS"z̫��hpڼB%��'ܤe?���rǑ����>Ֆ���:3x�<�� 5ϟ����+p :ڈ[RA0�}�d��5���a:�A����� ����'0�^����'2kv��ѫsWZ|�/e�X$n�G� �9?�-����������y݄Ӊ����U� �O�x$z"��2��@c],[ws1�P9�t�W7#���e�IH�� ӆԱA�2����;��:������*������$���6K�e\w`�ͬ�S�)�0��}��W�D��$r4�:�������P�S����ؤ�n�It�4�n�u�~���`��G����?� N�q���'f�+XXѷT�@��� >Y���;w>�-M��"hCʚDtC Jbi� F�&��8$rq��d'��p+��X�X�e��#����̩z��E��$C��� �e\��)�5�%W(�{7�?&�r���M�g�M����;�����!�{�`yS׻JX`Ao�H ����:���̜j��h=�� Ϸ| w��c� ��s׀�(�Q�ا����Q�?���;�X�șXX��ͨUL�FÝ�2S�L���?���ھ�?R����^�͏7��ͽ�]�T�����i�ڭ�/�ղ����=��_�f�ٜ��u���YV��ZA�_�ݍ����߿�z<�l���)�~�-���$�Mr*�@bήq�L,!Xa�s7i�t1M�Ib���F ���l�*$�k�=fGP��5������ٺY�M�xnk1sl��d���x�"Z��$=W����+�h�� ���4h� + + B僸���&)�2�^ j4����K'�N��)I:9�fb� ~�H�u-v �rbU���*��pɼh:3�q�d|B�-(���h���p>�F��T�w ������P1��!�0<\3�!e��.+��A2;��g  .ٍ@F��ژ��T��gL�U��}��Z�و�T�`��n~��Î�K ,�4l�G���. HhIRs�g�&�^�S����s��e�O�����q��9dn�HA�&Z�v`:q�a����=��We��r?~*V���� [��:�#� ���j�SAI��z}+鸳�SS�����Gkl ��k 7:��u����Z�끊��F=߼�����>dү%M� N��! �ҁ��8�����X��I-�B��O�[�� R �0%k{���a�7'���ܶv��*3h��oS�����8/K�F�Y ���ֺ��&ΏG���QYc�~�}��]����� �]�s��9����d��pn^p� X~�pn�R_�9\�G�{���%l�Ƽ�l��k��Ըȭ��E�|g�u�E��� ����h�k%�N@�V��n� &E����U��Lf ĕ�ù�!�H�}8�Z�\nB��C�A���0΄�,K�U�q��XhQX�]qH�QxIC*945�˾,4������7�Y���ts����86�s�~д=F��͈��9>[���fw��W Ŕ1:h�BȺ��v[)�!ۯ8m*B����J�`X��.}�JMh�V�����qP��OeS�M� �[���� ��Fo/pi�ڢ�5h���XQbQ��u���o��e�z�v�w�;�+����-���z�G�&���> + + K �W�/,S������/pɹg���\E�6?W�V������8�M׵��>t����-Pzv�u`��豈T���"q/�~���B��M{�@�T�GW����N6L�P���v~<|R޴�Q�w �_��tr����x� �vj�^�J���od�c�[������َ������-* �����TX<�jN��$����: W vא � X՟E�QΑ���Fλ��� ������L_4�n�*(���qp):x��;Q�t�e�aL��g4�F�i�G�ؘ�b��A��iR?�h�V��f"4Cv39����'0�����^&y4I4.l�O���# �[R'UE��1�1��GAܷ���0&X�B""Z�bj8h���� h�$<�i��}`�N����췼{{ O>r�!�0�4� �I���;=�C��ܤ��N-p1+������}�J/�Ė�Wz��Yzmo�c$�U��3��Y�r� �E.��L��P��S�Y0�`ͼf��zm�f#�&y{�;l�,v.�V�t`��fO��!m��v�����g>�����ˏeNJ�<7ܷ���N6v��[M�^�(�V���������`̗1��Ih��O���[���"�P��P�60����;K��)jLl�ӛt��c���o7M�� �͡�����ψ�G����&@Zyl6��y�Ր�m0�I�|?��� a����?� (w�~��"*�e�C�j), ���Λt# �b�Z�g��F�2���|rO�S� d��� �� ����V��6����@S[ F\K`t�-5_�؍����E`$rY�a�:��5��6�^T����~ + + + � (2��k� f�,�1~���H�B+��H\��;P?�����A����n:�!�pG�8�څRU՘@�J��� �!���#h�N��%)�E��<8�{q h� ��?ŠQp��M Y���W�gP 0����1W�2u�[IN��m�R8u ��� �^�:�`a�����I�rH���$�V�|6�,a��2A8�S��.�`���ה���N f����� �����ާ'��/�d�x��|�:��\#N %#j)�QO��l�u�$ ���&T��А�(� �h��ka����P��;'0��D�R�ע0��n�����6֬,�ǸN|���;�C|�3�cx CQ�|0s@�g�e~���d�BlµG�v�:���w�0@\��}J�U�=�:,�d j�~ ���X�<�C�:��� ��]x���q�m��� �#_.q���܃�:�Ś?�.�:͉�'(LC��N����yÙO�^�W�� �I*DpQ��Rn�[B�����5G(n�i� j[�X���<�O�2 ������ ;�����w'�C���|��dž��@��8�m�������=���b���>��@�k�u�e� �ϱ�*�K���o��A4Ax�\{�#�O�P�b5!��>����y��L'!��5$��:2��r ��gU�(Q[]����1`������«������TҧN��j�&kM�|0��+�G�#�MJ�� /1�{%�%w��2���_[w��M�Wt���^�sϰ�KƩݽ�CӒ��p��}�B:�8E �����:Nd�y4�n�@����\��E���� @�S'!�1P��3�7͘ҁ�$ټE�o,�/&a��1�ޗ$���xܫ�!�ޗdؐ�%��zh:����π�}��x:ڔ�HC���um^���uj�ޛ�&2X���P=�����a`Q`�� Y*9��w����~}�\���>8�R�`�@Y���#c�a���O�A·¡�s�"�G�nhO];9��C��o������a���ܧr���|ƍ,b��n���8�L�/���X���2���O�ʥ�����o��xm8��f�f�_��P$���"�YY�ÉF�v��꥔@u;ب)5�����>6�4 Ȩ5��דe��]�9'�K�� ��"OŎQt�Kί _�qM��)�J�7��Ԫ.cSy�i��]\n��r8�I�������Cic��ȉ_� M�����.�<ٕY�lRJ�3����[ �*iN�,≽�co�y?�����Gnga5�h2��LEһ�돨勪�si�B�c� %�Q)�[�ƺkiD�a/pU�[1m��~�<��I��[���$mU)aJә��~�� �2�Щ1/�(���ީ�h���‡��r�FZ ����n[x6�jr�&�(�WX`>"L�BqM�c(mM[�� "�dJ�al��-q�d/�0${��� ��^8]�(��������M6�h�o����V��j����G��S��Z 3��c�`Z ۪�N�E���. �����Bxn�ioҜ�@$��紐 $?bu����G �5˃�1�����K�~�q��1�)�k��1{�o3˰�����5@W��;{&�ڮˤ�.��e�OX�͗��H˴f���R< ���"o��`�_�[XA��R��qnn-�2�U�<�2�w���ʋ�F + + ����U�!̻�-ds�0�� ���!��W���و �x;{9ݨX�1�*nv޲���!�P!��_u]�#�.� ��;�Wd �6� H�O�����=���?��H�XͅK.�%۝���M�L�b@&[���b����R�g}��YlN�p�\~W�VF]%q+���G3zA�㯣�����"W�s5�����`?�P�DeP,ЬԵEyY�y"�_�DYXH-l�w� �L��&����zTDyTm4��=A �p|r����� p�F8���lM�ON�Q���͏o���Q~LsF��}��9OÂ�~���g)��5uwT�{U�0%��B���"a�u����_�@��\=W��m�u\�qx)R��P]����"���G�1Yn��f����Px�x���v�k\��8�H^��a[ ���k� j�x�S$ˬi�-f � ui�*V�-��ņ\�ê��`�hwx}d��Q‌ ?��,��w�E�E�j�|�1& �줓N��;�-�ك (�>���s�|�Yk9E�}Q)�i;��G� θ<�RH�j��8�=�)��ڰ��p.�''�@�Et�w:|��+����sW�E��TΨ��@H}�yO 崤�n_�ߜY���H`� ޔ�� �!>5�ZpY]q&?�%�Ձ�O��m���uR��0�o��el��hn,�92��n+�:�� �**���&���L��.��$��K���=!t7s9{��r����{_��G4�����FÍ�Z�O AS��ե��"�B�3.�=��4�b���w�O2� ���0�L��=�"D���=���6mxAF&� êw�X�m�������u�"����3lE�j�<%Ě$����I�%ch(�ʧsw��C-w{��os8�w�::W�;3f�� s1P���"-�����m�I&���Gj�R}�����z�J2 ��y�&�-����6�����뤓}p��-���_����o��]A6G;�@I=3~x�:��@S�5$��)�$�HT�&!&� fL73�I��(r���I�o- �w��x)��z���I%��?Ù��v�&��O4dI��4�0�����W����=!�_��N�5��k��v�|�c�S7�u�X�2 a"�\=��H���]��?fR8��� ض���D�h1P�J�����Iq����)r�#���[��p]��doH����N��������T��X�L�m�O�*#QF�[�5����$ob���?��i4"� �;��{aӋ!�3�(+a��X�k����V�:jjh���w�RA�����H�~� \4`��?�Npot�6��g��1�Y�V/nM���K���T|��� ������"guVg�A� �&�A�净���'T8 S�5�eK摿��~D����; x��_���:�>g�{��8P� �̪/\�bH��A�n��W��,� ��Q���2Ӵ�b):��II�<�M�TN�J.n/��}�]�=��Tmz�~ �p��H�"jI�#��T�@�2��7ڄ���=�q�]B�x@V��4؀�:|�J�*������[���ieo��0J�i��dc#[@��T-�c�wDP&� ����N$(�A!�3���}��.�]\�"��u�?UpV���e.ȉ�-�ڌΥ�]jL���A/p�j�r1��P[�?/E_=}~�G.��s��y��2J 6=3N�S���i�d�qV���_]����_Wߎ����%�I�W�7.J���6�ҖҖ]�7�[�׹�:M(���jf��S�J0 �bv��V���ٿ���o�Nkf�nI�b}��p�1  ���h:�;� ̡↨�c�1$��0��Oah R-�]ՠA�n&��%y� ��G�ܓ{�m�������^Ӟ��YMI�Ql��Ե�r���X����e��T.��l&X�fQٯ�^���Ư��V�]NW��f;�.���t��n�ӕB��J�K骞��e�(��>�1�W2�����"v�\�D7 U�����y�*p�l����Լ�����$m�W�ݴ�L�M��H6�>uؽm�+<�n��uϻ[�~��Ʈ�a��G��D���p���#ߵ�]*m���+�k���)���CR�4� ���X8C�`68�K컨CFj��3��/��z�̵�dzjVєz*%I��d<9� �"�z/����yJ�$Z����$O{�F5MC�F̡\@�Ư#�"��S�4�N�v9XT� �ڢ$��@Rcg�O��r1�G�[$4�`T��)�������(%I���狎�ND���UP�{b�vI䮭��oE�9Y9�� '����ܯ��ҽi��@DM𚦹��|���2�Q���? ͇=,ljY�d�Vړj�7ݱ�� ;��$���Ԛv��?�����Ꮯ?<]|���ջœ���=���o/_��|����?]>����_ӘD����d����Ƿ��sg(-�ʴ|���6X���'p\�Wz�mM� 9�c�Â��:���H$TA��ak�Y�p���� ���1f��>f ,8���;q �c�M��*�IT'c�h��$���x�s^U��5�+md���K�y2X"�b�����*qh����ס��'`�rg���Uװ��V�T�1CK��I�3­u��@7�7q�7�et��+ݽe���%�8� ��8�`��9X$�F%�I J���,� ej�g����$���em� esF4�Zf�8{~Hh"R�x(�K2��4="� I$�ӎ+/�9��� /k �ƣ$��Ûӵ�s~ �D^~Z��ˊ��C4��#��0S2�AM�'����L����h���P D� ZX9sI��QE'��^[�P��P��fpD + + ^����ٿ�~���/��Ap�g|�&��$d��,�1����:� CI䒁A&� �����OH���ԏ�U�x���hV�m�3����2�p�e�U�R��nX�H��q��ᕑ��N5p(f�(HIS�p���x�����o߽X�x���_~�����o�Ͽz�Q�!q#�*��h�=\"��)<ಳ�ʉXO���`&�[zp���Jݔ��œ�߾Y��0��Ϩ�����T�����Q�#̕g!��f���[�J�����8$�� �� �입�g��N!ūL�|���ó�o/~��BgJI溦5'WR-�Ͷ��D��Z����NY! k��|.��s�1�ӬG �Bp�LJ7-�޾w�F�M(�bu�c�D��S)ަ��=boz;�I*�N��c�CcNN��/�4�o�?�w:G1F#�CC7f$�ؽN\�j N��ߩ��IX��6��a�P�� �����#N��:��)N���q�k� �r9�8,��d��=�� ͝b'hn���!��������摁��S7Y�t��p�JN�դ�����m��I������s� ��� �ǟ�I��VQ�� /F+������(]���^6>0#����B;�^���Z��G9���$��T��.��}w/�mo"4�VF�7�V!ҹ�F��0(�����+��c�E�8"-R��� #�����r%p�!V��~�7��I� �j�~� C����}ݾ��b3zaY� m$B:0:\�`���!a��" �B�~f���!a� C���ж_F�"��\X7�24��� P�`�� U�Hc�OX���w��odu���V�"�k�'�a�d�e������❖s2���*FvG���ͱ��+2 ����<�;��Y���.mu׫�|hK�h>��:���O ����=r[�lt��_#.� B�GB��Ɗ�W�ͳ����=�)oS� �吡���k���#RTdk"�c��)8�(� n�-�tu9X�$X�,X�"�g�+�Vs�GX���4�}�@3%k�B���C!bԧ�����m��c̀,��3��Ǽw�v_��)�����^V�ի���]�$� a��q!#^/-������@u���Yt�ј01���3�=%�������d 9.�x�snn�_i�����gn<,�H��i�=�� cD�1!����xD�縇,�:J�S(%��xf��N��d@�jϱ��$ؐ�r�a�A,8��#� f5����~�7˳u9U�Y�Y�ER�˽m����L��^O����G�l��e��x ���~�9%�܂ ��]2��>:w a�v�AR�ݪ������ �g�v*�;�`��$����$��� |;�JD*�$T�T(PQn�&6�C���Kh�Ł]"�*U�S��S�c�i��m�j|�vɜ��@��$�m�Yի�'��ǽ���N�w7���Ө�k� �Vo��e�0�X�X�+i��k��mo]�I%/?�G�>��y�o쟮u���uV( ��[d?V�t+xk���E�ܿ��v��x/_�n�V�`�&�h�[��k<����*[M׻{�4Az�$8��ka�ȯ��o������?^�x��������s& @���O���4:|_r��~�0�)�O���L��Q5n����6�:��8���[��r�$�����O'�:USh�S;� 9Lr YS���n^�E�M�E�q�NK|�����nj��Q���� ��Rg�}K�j>Z������h��W� _�n�Vwu�P���W�5}=���|V�@ l ��K%8@a����;����m"��p���׏;�O�i�ܽ��x�����(��XG��q��A�'5ej��57}��|y�wR�4��̿�a�}��M�ِ;��45tl �\�N:����ߜ8��#��Tݧwo�������Di$ТU�oP�~Ы[��BP�� �Wc�~�̈́�ƅa Ӏ2�߸�W����H�3ګ����� E@G���]8ͦ@`�T�s?�f*�ˍ����bw��yґu<���P�a.��.]t׺���Y�ڲ��Rf�z4e5gHO'E��+ )eu��g�f�<���`�R&���;s��j��I��L;��}�d td�ìt��L�i:���^-���B ��#�Mעwrx.,�����0�ґ��У�(�)i������0��/��X�ƶ[�k!߫-�‚� ���m�_�W:b�U=�=j���ж���ny%ôn��82�*�9��G!���D�c�B�k��)�q��u��� f�*J�wٽ�ґ��w5?� �`�D���٨ƺqo\�(�ț �ٕ�Z�h�rUtka13���{ ��b���B�+E �d����S��t#��;�u���q\�8���ta zT�k5�V�3w/�O��]�ۻ�����K�2�ũ4t�&�h�R�q��b��"�-���U5Xt��Z��*ې-,���=}�I����R�Q��L3���� ո�)�썖�x�����}Ϛ���Q�����}�Fh�bo�������]��`֙��X^S�A���.�BT�BW}���`��h��DSmw<����*O +�����&z��cq��ϯ���S�rW�NI�q�����=�� �_ ��N'���:N�Z�L�qdW�k�O>��4Ƈu���;��Y�s=�qt)-L �_�D夛U���{ѓ��g|"��oP�k-ϋ@��MW��T�#%|�1&�� ]�v�7��ᰒ� �&( �p���@f����B�H��j���ZǡM��{lK�K�AgK���G��#h�M��8�E�>�h�K��v���,����E5�:CA�� � �j�b��7��,��/f��;{:}+��녖�֥x��v5��ǻp�;�q;�X����`R������8�ZXZ�&L�F{���F�2�!X� ��+�bgI� OH��[�ǝ��as�yS�\�� k��{�=�Ǝ�Rms�I���v�&�Y�w�\�gC��f�#eg�m�z�{>�@� ]ȬO=�ĻI�xm���~��l*��d{�45�CL�ⴛ�|���0�i ��M�aj�����;������)-_�)8Rm�%(e�U�,&l�ږX"������^� ո�g���$�u=W҅�)zJNρ��8绱��O�s=[ʊ⯽�ږs�Z~kO'K��u~�V�귞��ʭ��$zE�l��?0��B]�" + + �� w֗���p��4�o�m��PW\�����(|v�������kU���M� ����(L�O'K��W����|:��!P�qz�!�u�SGk��Ys_�4�E�ߎj����j�^�4��������] IHq���R�L�jt}��ާNi}ϝXㇾ媴�nG�\njo�'s{�x�QOG:`d���=&%��ר�F$�v�� :M��sK���T�ҍ+��TsY���=��y��3X��ޓj��D-�ޘSP�^��:��A�dU� 8��t�A��A���`���n*η�*lm��v�����V�̞ ո.�|�8O]���������q���M�:NC���A~�έ�i��ʭi�u�X�L�-�rh� x��mhA���3��N���Y��6�Iۆ�N���U�H��Ev[�?�Z|��@<&���8ύLq�.�lf � �?� h�K�Ņd-�]�/>��(�ժx�9�9�F�c�x��L�m���J��S��m'�]��/�Zmׁ�kw��D�֚�ty�Z�3�Vu'�U��^��T��?��}�zȽ�����0�I<^'$��#�Vༀ�A���|?`�ۺ��f���V�\�I�FV�Q��L]�sV0�X4�ȶv�^E���ڸ�r��=��jѾ��u$g����Q��t � ��ԟN��=R����٧�D�Tch�r�Q�i^�jDZ�Բ�J(�{�i���Ҋ���� �_��zF�ѥ#�|�&�_�m Ү�����p{g�^�����=>Ҽ-е�6h�:�nES�.��ToĞ�؄��e�AiSP���hn�Pj�"���Z��t��ǘ���:zu��#�.m�y�)����[e,j���s� fؙOY���"r��O�W�(0���������� ^���^�<��oNe�n�ɳ���O�U�3�)��u ��v6��3�]M�=K��fGX�������O\���5��X#@8�3��������مT�ɳg-Ò���L �&��ܺ��Y�BBN(�"L�={1�\N�V�K��PMO��O�܊�X$=���a��b4_�a��N���`���ָ-0P9���@Y6�࠴[>���m�O;��HN'r�n���sF���8�3���X�Ѱ~"ywp���q�lY�v���I{j�5�_�2l�!��e9�M�W7�/�����&(�E\���<�G�rɢ�e9DKˡi���^b-�!mdUQG�-���& �!K����r���v����1�|�zy�c��O+}���$�0*�iR���TѲ��C�uS�H�r��j�?�^Q�F�UUVQT�l���j�A�gi�"���I�rh�@�n������ٗju|i`���K+%!���Vhl�����%a���s��M��L����5U�7'�ө;��<��h�'�<��(���a��h� l�,^,S�Q#=�_,��<#��n���iXPoFH�����%>�[ы��ϓ���Ϧ�n�i�������y�U��*�J��B=����ahD���5��|0���P*�����!6��ã�@�}��9V"�z�6�YDi ��N�, �V�V.ݯn�!�����A`�E�� 2�,^�M9�M�C�7�rH��)$��C.�rH�tYI���!K��d!�!��M�fi������0������0 ������ ��l�!FNV ���Fո�{��W�v�4�u��^�v���g���D��BD()��u(æ�1a�d�[. �L^��E�r���D��VP���i�Z�v�@I���C~g? �-1�� �2�*cX5i�ea&� &��{�(��r���/�h�L�!A���G�¦��޾/�8ND9�~#9��O��$K�e9�Y��C�L�rX�_�C�$2'֒�����2�s�k` �������O�Mm�E2�]N'�@�X;�%.�*��g�$L� >S.�rXb(YÏ0��a 9*�=.|?��aG�Zo�V= �1����{m�F2��(K#? �,��,��E �$ ���b�,�xS]�"���Pt�Ҥ��ĥڿ:K�!��e9d��!^�����r�A�5�(*ۚ�w�!oDk�os�^,����^����r�0Y�C�DQK̪rH�e�� t���!�lf�1�ݫ3�e�9����5qD\+��o{�Zc�C�Z���݅r�3��j���.��g����� z��Sc?�eP�2^.2 ���㬪�&äI�(�`0� ��O��]��GY�J�h ��ϭ��(CN'�Kn��z� ��5���'2���g�ōX�$�{��둡T8���j�i8D&&�d�����''��zS�vG�gIHٙyY�d��E�j�Ԛ����2�8N#���tY��j�6KMW�?b� ���'ȡW� �#�d��0�0����-� ����\��� A��Sg~Z�b�:쐟!��v�A�4���.�{ + + e����/����� ���E�ys�K�#���َ3����83��)�!�*�X4q�(��"].s�,��J�$�}x1٩dP ͟m�ۯ���3�_�?�����,�����<�͑����Zo�9~�T+���,]ac���0E;�vm��Z]�IN<�g�XjB$��,����&���կ��e�f�I�d�0���M����k�b�?06Yc��a�o��ˉ���[�~��յ���B�GXVm��^n��˚�t� �{Ʉ�Y�.���=ߋ�䨳�1Bɪ� 3Gy�gϨ�!��^�7�ú��)̻h'�i��~��@[N�.?��Y���1������l]X��ee{�%��T�� z�xE��=iRW��ܼ��E�*��X����X�0sa������@J�pv� �����w��I���ː��3Z� 1M�u��B����V33��>��Ǖ�l�"��FDHjj����kW˃N�2�kTȢ���ůj�n��!z�����i����n�t�A�R���l&�A��Έމ��k���r��B�_�����~���������?���?�/�r>!d��8 ���@��~������?}+�������?���ǟ��_���'_���l7����a��:��!UfJϚ������i4s��噵�e\T<�17��,��W�of:B����`IrZ��� g�^�&�\h�W7H��<�T!eqc9�Qvm'�?׷a� �lg0��vڻh:�3}/*j*-mU� ���<�ʀ�����C �R;=N<���^�U�JW2p���m�WI�'��qR�pn˰�Nr��YE������pjJk- ������ζ�:��.��:<� dUB���Az�x�H ��1��#F���H.�����Y�x-sUܳ3|�a��f��Ge�*�e�F��h о�d~ր30� >��\!��d� G5Ʒא�8��_+�����6� !�e7kI�{�EV*���6NI��'�􄐲��[Bl�c��S�z��M�3�ח�];luY�9Է$����"�Z��r8�l�J�H��Mq�la1/�Cֱb蒿`wle&�L�J5$K2_��d��Z��Q�� 9!�#�AcC0e�'���q��Cn��� 4L�QV9�(@-��s� �4�� �Kt�(�ޏ��D����hK�w��k� Dž%�\�lz�?��$"�ಅݨ�G��B���󊨆#�: ,�m$��y�AR�� D����zkJ^�z�x-hO{��?'����m� �����j�����|�,��g�|I8��I��kT�j�UQduO����F�,��*/��A��9���,��_�0�)#a�]C+��P����V� ��Ğ�ê��Gb���{����*�=��Ԩj���q$�dXЎr��)j�D����*u!*6����#Hea�����_���~�nS�M��ž_›7O�KE��h@��"!9��s������&P@��OI+�)p$ �OQ�Q��b�!{I�nm/q�����KY�P�~Y�I���D��� ���1k~��. �t�<0Ǘ�V|{7��$��1c�� � !%w��С?{��h!,#�Qe�6H0��Y������H��3NK��Tx�t�"я�Ì�&h~2{i��5���st��r���RP����c�i@ �NO��V�8U����2�I�����aB6'����d���˝���p���Mn�|埔4eZR�*K�PFZ�8&!.�*�_)��\�3`��Y"@~iX;N��5����(����Sy��b}�1O�����:� ���]�[4�����������C,��W`�{m?�p�����?�ߟ_�w7��7r�S��x��z0.�[I��3���]�?ނf��~hq��2���ln�����q%��Q��y�Z��T@g�)�����ݤ��s����K���z����:��)�(O�U�0 V^��b[Cc\ ����@�'�9��E1�-�4_��\x0f� ��*�-O�ɶ�Ax��MF�*TDOn#8��v�/����S�����#�.��k�E��L�;��{% F� )�8Q~�-~܇���IEӧJ/�^�T�����X�1� �߀�Z���J>�8�Q��'���d�v���v�A�•�5P�c�g�si�iJ+?�±Sb�X+�T4ʗXX�q�&5dLۆ�_(���N��u7�H���K\NS�6n-C����%�h H��f��x�.�����l���&�o٩�J@��r��Q�~N��nC���1S�����^ Y!�|b�wa�7�y�\��w�|v���H������I��`1{��j3ާcYh��%qjGd@3us�R�8q��`͞�SS��X3׀g�y��a�79�6��m iY��W��Y�Ґ�`���]�8 @� K��+�ξ`��i!��u��?e���q�Q�_�!�L�W/b��XhOM�4�nSC�`?�rW�E]@;�xŤ���sm�u��5��S�6W��I`F�Av��2�F�S�9$�=����m�2Ϟ�e���������8L/����8 !O��L��2�����m��g��ػ���f����>@â��8"t��>OiTx1P�]_��v���]��D+��5��롥�ul����m���b�Dl�%}+�U��K�(kl &!�(&i�2�x�ׯ�X:Q��� ~��� ��*�(�K�nUZ��[8@ �e��|�a:���II�;��Sdvc�� a;��щ��S� �^C�(%�届J)����Ӊ20��:��<�X9is��0��� �Ҹ�b4H�Ez���T�F�Y���~��y�9~O=���?�R���Р%6+ + + �`�SQ�8��EElRl��?��TF������( ��0�x��tc��A�݀�>��>�/��P �.��o?��σ���tp��%�sm�x�8�,x7Li�8`�Z'~����6CQ2���*��]u�=����Pc �dQ��Q�Iم���:�L^̧�f~u(�v�\r�iD������5�*5( ?s-�R溪㪨+�j�8���E������!�zn:ʲp�ё)�繸(�+�#�����:Xs��*��kh��#��X5��^O�vba[Ea���ڥm��>��M\2�z ���wϳd���0����V�n:&���CvS²�%�2��*��Uj�c� �b+kX����g~n��U� nZ�Y��J6����/X���;W7WL�{����<4����a�κ��X�l]֓ͻUy�Q%&�G&Q��@��"�Y���1C�gUw������l~r"� ������ ��*����-)� L4b�t!W��A6��u3�����eɤ���� �S6+›�e���t,'j�]>l�lhpb'Pw���`$�qb��%�Z�0 ��FM�%w�fϦ��*^���F� 0��,��[�*���h��~�ƶ�j3`�\��e���T���!�,Y�/ + + <�w\�v�m'u�̎l� � \�LI";f��O��b˩*�Uqsm�K��xѺ��RYy�����%@�7%K� �ݚ�Xω��=bE�YI�e����X �ƪ��!`�u� o��ՕQ�������{Ǡ���C�@y ^I��Q ��/���")�.J���J�S@��J��o���tI����Aq��!�$�p�d�N�Ef�0/L��Ykn�ȓ�4�Qh=�t�2�y}�Oc6����d|��e���)C+���?~[j�w�G���ިC�_} �+7��^@��e�6¸n���,�K�q���D����:-��A�����U�D����7�vL3����wA�d��t���@���R���tD���l#\�2N��a,Q�'*aw���^�k،s8 g%���_g(��i 0���K�R�t���C8US�}u?Sp]�� ]���}۷A��M_��fm�S���jk "X� �NZpQØ�󅙻ۑ�yđ��f�k�&o�![u�KCjT�"|��O2��fx�IM�gBþ2�����+r�"���`�dA;� �.��aRf� ���VC�nDBg(�s �����n�؞����y�%�VT�? �Hyꂔ� J�y�������:�o1BFw��KY�����t�|F:�-)2�.M��B�/-J iI��V?�ՄY�k�&�0��N���f0� �������nݺӯ{^��̰� �*��d�B��+�3F"$/��]�����q�0 �qjo����6��bQ�\:��.:J��/��pk�h8Q4� x �%���C\���o��Vb��F���^�>?<<����4����Ow7������`���^��M�?��?n����ϙ>�����1���;��0�0M�б΁�|��?'��T�`��^�����,h��J�y��E�$���ås�>W�O{;�HPz�Z2eh_I;rs��Q{�����Ni ���D�,��Mn���4���2��7�*=�J��M-�pw~��d� ��� �DŽy�Kw#2�*-�H/T��H]������m����X� ����C� �`��t�i�.-+x� �d��4�d���� �<�P��"1�������u���HgpX�F�*���)G-��4r0�E��n�G��t�I~��*:h���f����ZJD��70�iI�� L�����6�71-'�RR% ��ĖUF �M>�Bc�H�Z��)������e��ym�`Cz���'oڲ��XHǽ��k�좵z��� 2�F*�ǨjͨX���'W�L*�:�S&a/�*����#/_��RĮ� �)>$�x�c6 O���q3,� �� ���h�k�MT���^�ː�P{�o����� _�������\�, 1��U���x�1n�ذ`b�ۄ\e�@����0on�[2 S(M���/PvU���L����ڶ������ݛQa�1Sc�Nn^�m�M��a��_U����t�o F�jל���Xp\�%%�*gL y�Mt�V��i�\���4լ��ʋ��U�e�i\� WU��ޣ�N5�m����=Z�!�b|� 2�u�NW<���B�ڪ_7����[+���ֵ:^E��T����P���&���(��ڽ� y���5�YI�?�k�Z%4����b!���,#_E)�x[���'+���e�nc�Ai��V� M�x^�oL�����\��Z�p^}��zm"yW���m�{D�h�|X^!�ڤw �Ί�����Zs��0��(��:t]�J3�����acЕJ�q�7U�`î�|sW�| �N@��j8�rM��l3����4���d}D�n*~‰�,t)�c>Z$�i��p)j䃮�!��f8/ �K{�5pf�P��j9�Z�'���f3oֹ��īA�>N��:z�H�&K� �c��*�� *�ҏ�yoGŠ�|N.s�K�pa���?��g�?܍�\��P��۫vgĹR�Z�'%̀6���ⅿ��� ��m�0� ap*��abO���ӹ������)��D�T��3��*��.Q1�9�Ҭ,�JT�$�)�������8�7�iB�֨��G��X��W�s������a�<�t��o�a�[�]�=�F�MwlAބ�r��&�,�ƍhƪ�>��9RMc�b�b(_9�ϯ�ȭ:�AV��n%Q�����򣉚�1Z���`�x� %;}d�S�� T_�6�.��L�B|LF�[�@��i��4CX� ���pռX�3�`צ�n��(�72ۀ��i �gC��}���@�sfEI���Q�� ��|"��Ε�_+�- ��!��P@.!��=|e� �9�e�d��¯�epi�nEG��:{Ƴw ���]?�'$��'�&��Bӽ�P�s����W $�f3-��e�$�\%�S>py(�h^ٺ,/bi���~r�yZ/ţ��j��I����0.)h��nC}���Q��-A��LZ��i���L%�{-\�J�*��)2���x���m��|�L~�<(Q ڳ�ԉ򡕃�*�K�6gL�v6��-l�< }�� 8�c$�h�� �)���W�G�a��Ч�_Fׄ�0W%'�2*-� ������Y%a���E�|/�X�1�:[��h�_���;�����"@����Y �EGh��:�ű ���~c��i�|��^�U�-����mi����Bo2���I>Y�F���hL� )�Apu��P:a�-5�3Ͱ��"������ؖ(6 ��$(��������k��Ԩ9F6��bw�cϝ�/I� �F}C�Zj8ַ�= �Hj4���(Gϻ�\L؞pa��@@�c�0 ô � �657 ދ�xӭ���m`��� �,ia֜2s4͛k�@� �4� ����6Ć� %4�*�U��a�"�ꄄ�Ϋ����|�Q�����ޓ g��w����(�"�<�120���ф^]f��BX'�vk�Ձ��EO$��.aV�������| V�F��'d��]��"�b�v�����J�b�w�Ї�� �����_�u>��u�� �KH��1׵ q�X�H�͠�e]=9)/ c�j���st�({q-���?nk�b����nF-�Z��V�ϫM�3��y�)_N����-X(�v�Q֗�����"vpS0�)hS���@}XҴ�ZD� 1i!+2�� 䉘w2{���)h�����������}����Ob�P*B6P�E-S�]"���nDz_-�dS>����)�$J��Q�A#�n�=ۧ���)'L���s��Py�O����"f�� ̶�{���?f� M��C` !$J4�P��А j�8<Ƽ]���:"u�Hj��S��}������h�>�{ζ��&/ \�i;tE"��<�7p ���C.�)Oy�uaԞ�O t�PxWb��\$B�y�����>'�6�ꠐC$] ϱ@tw��(E׸#}{��&���f�VQ��F�cy�!c�.S�k�@W �ݡeY�1f�UW�ѨLk���)Y���Q��LIg�b��uz� ��CS�T�q*��l��9���.�l�\�sz������T�Ie�F�ﲠ�f�Q��#UP�YŧLɫP6/��o� �����=i�UVdH }4�-c2���}dD����x�lb+��Ц�0����4I�Z�Sm�V@S.Y��U�� F [��n��z�G3�x��Q#��7_#��$��(`OL��x�1�뮉1W�#�ia B»n�]�#��,g���mX����"��ޜ[`��%�$6�6���K��h�[<�������dt)�$:6j㚒��!@RhI"]�*D0�*и�JOKkѿ���r�������֏;0���/>���g��򚔬�p�L�C!�1 AW�m�\g)��;[E���O���P�o>h�D3�\<�^L���eՌ��N ������0LFqh����+�m���lQGm� �ɞp�Qݻ�f#խ�(�F�g$Ę��(��c�X�&L������X� ���ĶU�����&��J�݊2�������$����$��P�>��D!��z uQ1�W�٭�(,|��@0��~�w3=?�w�.@8$q�9c<��sD�����,5v��"yc+F��:MR�e'HC�,y�g[`� ɄA2>ϰ��=aYz�@~i���]���p�T<�� vtW��םG憀Mc��ۆv:��R ��J��1a�L�W;)��ݙ�=ɨ(}�I��EJ�#��s�T����-G(��� '����!�a�j�JW$Մ#iQ��8��+���������yq�P��~(Y��Ƨ��IbA+3�c�+aOw0���� 9�f��R��թ<ɓ*�b�}J��RstYs�EP ��0EK%j�U����J;��u�P���3R�2DbF{���0�`=�7j���J�;��s����%�>���#+L��J��m(�6214��7�ˋ�<���m���7gY1�:������K��3};�,�I���C���\8"h��6��|c��&��@[���v�T�?e���krr���~�G��Ԙ��$g�� BMm8gr�Ϛ�U p Yo0�RҖ���g�=G��}���1 �ya�0ȏ̡��Ԙ /��V!^ ���3���Dք�� �. �� �pai�$�I�:^��'.tX6:œc0!\e�U� ��ɡ̻+:dJ�,�� `��2�2��sbn��̱b �g����5��t�n�����B�,��aњ%dP�g`��>0.\�ÉǑ��?���� E�!�d�o�!�G�N*��T�GC�-�/�R��q�PD: ��04h_�ϗΩ���;���� ߪ�tu�9$�_o�{��ԳjEv*6���Y4� �6�׹���˭Ξ6���3.Ss������kl ,237=� g�5t��>��C�/�'�ޡ�;1��A`�Y�ټ��]��ѿDzL�!ֹ�h�h:ڒ�"��˘�f9[� ���lksԘ��817zb�c�4�w����8�e$�U��2�_w�Ij���HG&Gd�j���]ѭ)�O� �����)3|e��Kz<ȷ&9��-�Y�g ���� �ӮR�"̣ ?�s��ؤ��nΕ�`�(�*̕�%~:z�0���i��~�:v��6� �g��d�D��FA2����H�������|F��<��� |����~@5Py������I��[����R8�%`��!���ցW �A�+�����1������I2m��a缙J\�T3����e���t���hQ����A�4o���t���l����:j�F�� x:4�M6��J��/w5M[�%�4%p4%���۷V6�>b�.P��G�}�"tM�ݬ,��:+CAz!-��-/S�1�ocJ�"�V���^����f�@-�IUG� #Ҭ��7�:A�>�|� � �'�^ k�2����K�T>3r��lYG�@��b�CG ؐ� _��go���/%�~�G�6p��M���I}�k��9G<��4��3ך��6G}��vN|��?N������{i�mW�G��{�}ܺ���s��-��3y���hz�.���5������y{�f�a�ؤ��Y��ƒ��$_���]�B����5��p�����HV�}����u/��z \m��m������p�1L��z�w �t7ڪ�ԏ�+Gd�3~��]tv�4NI�L�g_*�?�k�j�1��p��V�?5��¿�S��= =b�T����������U�d�� �>";��{�}rf����\� �qt����1��t*߈E�s:U���Zh����76����u�?; ^_�͎�M��sMC�>&{�v�������E�_s�M�^'�m���$�n�O���oH� ��x��c������7���&^]�'�{ʳ�փ���pw`�ܫ�����3�~?�Y0���*���� ��[�N���E����s��Y�[�^c`���W���+��}��c�0#���Pd`�����!ƞo<'[u��EZg���y�y_�5|���u*� ��\��)��{�|�)0������@ ˳^�[��_9�r �AY�9�9���E�0��Y�0g��u 3�=,+�a�HK^o}`�H���69��_y�a�&:ٵb1�7���k7/�Źҽ��˴���F�8��S �����FIe}�Gj�1LU)8��H����r�K�� �>H�͞|e��;Hs���������q�Z�}@ ��w�V� ��V��kV]��nu;��h ɿ��}����X7d= �-r�c��"h�^�(�6�]}�H���xv���C&���G�z*�PY�� Ǐf�Q1�h8j ��*%5�'� .�!�ay~B� �Ybz���[8?��t= )�VO=Ģ����#��8K9�{���R ��鎬��jri@�$V��?�U�[^'Q�d���]@z|?x�I'���� E�L�}��*3���%��GǛ�x��=ā�A*ִĻ8�~!|B�}���s�_c~8�g��$%��xSNg搂���/�}�U����Ȗ{�{nK#�疜��J��xU����f.fF>���&�:p d7��f1$�p���x��W~�u�֑����e��&,3b� ����g�gp� v��i�x&���{�y�$M@I ч4jRT%M��,n���A���Üv@-��Ķ#��aن�V����͞IB��b�K~� M���_˩ѐ��C��`Wyt�-���ɏ��^�pB�zt޶d* �^@�Cױo5������B4�}����rfT�ˑ�;�9G�����2��_� + + ثU�l�T�1v�� �B�{[áAö?}"� A�S4FL/�ꊂ=8g��(�Y�\~�g+=��� �@�;f��t�D����=8��_�7X��ű��� z"�{"ZD��D:)�:�� ��d/ZL]ӵtX��b㚸(�IAZ���ig��BA�&����\�u�ϛ"�������x�4� �^�'�O�UMk���B��j��!jT���;,fz;8Dd�������C��o �3(��������ǰ)������դ����8T��m'�@���7��$4�9y�2ɦ��;L� Tdص0������� + + Cqr�?�´M*WQ}-4S��� �Uv�H�(��,m�ࠤ�\�I��1�{�p�h1��A�F�X��=2�*��+�H96v�S���(���t� K�����D���bQ�Qҕ!DN�X8��co����Sђ�H����@M��6 ����"LtoX:�Fk\_�7A�i��2\_Ĥe�V�QB�2n� a����N��F�~�S�XQ�A�f���~�` �l V�b {��n�&aG�:k�^�,�G����@�Ü.�pL~��Ӕa��*��$�ɚ�T�XX�05�bjiJ�rJ�!� �L [*3ͦ�M��ZæΨ����D3T��~�,a4�6�L8 �H8�g6x���I� �����z�cjr�=�y����ښ������ !��k|�J���R,����w �kr�݌ӄ<��S�ɒ����.��U��,֮�>�EV�<3���M�c#��_9���S���B��FK��� vF�!��ZghC�����·���i��ӳ#�[F�VQQRS��_�R��D [*ѵ���FJ0U��б� ��%��T n� ���ӛaC�̆�-CQ�ETC SU�4� S�� Qۤ+����o�6���f�`bM�4�IUlP���-��j���D���j�6YŔ**���a]7mP3�0�bƈ�%c�IV ]9���`��5LLu�P���J��� �&+�� ~�KuL��5tLU��@ML-���u]1��@)6E9��TǺa���aj��a�����E }���9)����2qZ6�EV��������Ԙa��M��9�~��5�P`�T �Ú�T *&�F�N=J5l1�jPSMe~� GT���w�5�S�ajj �ձJْ��F �� v��7c���� >����y��4����� ���e���d1LS�Z�x�@��U�M$�[N͟���)Loj��Q�����аI-b�� ����4E��Au01ӈa���n�J�X#$y�0Sg����?IaDpt�Y� �1H̭ã�4�#��y}n��*_����K�mҰ:�ް ��C�Qt����!����v+�k�5#��9y�����:Q�b0 u�eUQh#9m�X����P9T�ś^���~�������md�2w�dg��*IZ��x�x�q{'�p�d!l=�pM�I`�}+��k�݅����b��zl1qbܓ�g�S���.z�4J F�TA�,��+ وiz����(�}�qE���2�QQ��F���Q�~���K��}��#Z�:%՚,P5;m��!Ts79��P�\SD�{yx(��~��6E�Z#:�\Ų��{G[�p ]�( uL}��v~���]�1���~胦y�G��/�˜���Nf��+Oo�Q����_���ū ��1�eT/V��=~��Q�����\��K/��?}�����!}̽�T���)s9áY�T���K���g� ��)�ݓcc�g�/w?"p��i� ���}�v�$��l^�\3�G���,CYt��剄�.��r�;�|6߲�4l�ɘ�q�& � )�U�7�� �NPmA����q�l�z�&�G�ط�p�o��,�ju����.I/���@�!�� �Hu n����w���Zߣ ������"��'4���q39�q��A ��t�(���ID+v[4�Y� �~�[����0�4�HcT/��ϯ�\x�{᫚`w���/�L�Tև|1E�5�������_����D�)G����de�1����R���>������Y��N ����������e2�ێ��_���/_�77�R�������Ο���x�oP$a���y�]'�r��Ox������`e�ȝA�p9E�� @�+��` ���w�9Ջ�/�?�y���>ON+����chӗ�SO��Fo�*��=6����ݝ��w��XE� {��˨.�V���*n�����77� ����ou� /�Rl�B1}��C�����Ÿ=�^Qzm�V�׿lo�;���zQ��G/��;����ïR���b(��d}A*Ùᡒ,�z��� uB~����V�~���|x�Bo��(�L6���C���K{_����~��I �� �7N��1l@�)Ty�Z �a�4y'�n�8��F'D�7��χ*�C�Rkꓙ��#͓ON����C��er��nbG�T����,G�~�b�F~�I��q~������ �l���@J��1��l^ȟ=�E���~� l�_�ע_0���������'k�֛�;�P9����7����+�g��go�w�(��[1������[8��$���� �ӯ�^?_�><�2Y%VVR�����������n��� ��η֊�7�׿�oC?��'�cAl����j��k����|�܉��i�Aw����B�'��K�$��`�DJ���o=������O�����$ޟ�7W�����y�աУ���8��/v>lb���21/�#��ƥ�����8���{,;m������2��J���-�����j� �������άTl�qfYl=Ϸ�4�}pq��oŹ�@垓O,����������7��M�pB���f�˪��>m����������w�[OT���_(����z5_�5��������O�W�����o{W��k_�]Y����^����~3����DGگ�ӥ��ez�2�B ��N�j��)��aK�J�e���T*��� V ����2�����T*)��W�R.2u͛R]^*������J���p��H� bUC0g͉� �'�"�� �c��00.�7�&�޼R�����,��7���O��o�X\� + + g ^ʬ�At�q�‘ؗD�n�eaФ��IR�Y�%(&��0Z��,d��f���`���K\��fB�o��H�(ΰ$�Q��A0�KEG:�m���֩��C�=*�8��<*P0R!�}�f��c?Z�1�g`��0Me� O �cϭ8��i�P����U��I ��y�I޶�� <4_�_��_�)_�U��qGQ,Sg�$������q��b�:��}��J90\Ptı Y��o�;��ª3�~L`�,k��;�jhK N�[���F5�Ԏ��� �(�q�&�8�u�,�����'���D�Ӓ�Hs�N��'Ɨ��� R�I�#�M���č���)�(�qi�����։Cm5?96/s�"(��Y-��1�A{̾�X�)Xu��hj��'!�wZ"�b�(qj�b l���FF.���vJxX>�H��� �z�Nr���7�LgH��|�- �Y�p�\t$�O}壔�{.�a�07��Kq�����Z�x�2!��U��>3��!� �= ��{�N��N���$j�xuA�q�*5�����n�* �4K��,/:�9���,��\$j=������k�ʼ�˝(��1�2i�oP�����P����1��/���cv�%��9I#��d&�r�6OR��h����i�����CPh����\�xIW0�f1�i*S�M�����/��� �g�,�Qi_�/ #��Y�c�M�&����f�>27J��dΞ��j�t��TYN9���6W�n�Q�fN��|Z1w���.�.<��;]�/|{��+ ��$n4۵��O# ���m�И�����x��f���3p�$R G���f�b��P� 2X5���Z���d����# x�,��t��v�T�x�m'�P�WL@������'�X� ����:�҂����(�qbU<[�n"� + + R;/߇���ZUH���CVb���8�v�Pɴ�����KY�i�nk����G�N�e�~�_)H�o���5�!&�m��-"W ������N�V$Q% 3E�* ���3��H,aJ����^�=l;��j�1�$W @׾>J^}��d�\Z��S��2��(�j ښ��Q�^o���,:����$�Ɍ����&z���I�̸�-��oc��3|��.�O�1��tV]���d2��ό����wI$�`)8`KN��Ċ-�S�E2�u�F]�U����~٦� ��:�Q�ǀ��t$��\����1��3޼���[<�I!�mT,l�S��@L��tv��O�h��~G�^?2���6�]i�[��w�m��_�P�8����VJx�,:�x@�����8������wx����,�3e:y'8�<��1��0��,:ZE9�;5~�+���hU%@䙼R��"<+Z�^R0�� ��X�@n.0���(��rZ�o���4�f<��z6ڧ��7ǩK�[9��o�fw�{���o����Qr� ��Y�b |B��Rv��U �������:]�r��St�S�[h����Lh���5�QjVW�/O�j��t�֛:8մ.y�U�� '^����;~����f�ld"[���!Ȫ��U��#�ٵc7�iz ����L��m�"]uӸ�����<��ğy"z�34�J�^� ��� ���G�d>W��TX'�G 9w�B���+>li��eµ=B��d�'2��#���ޔB��BA�~�k{����^n���tj + + ��;v��E2��̓K$�x�i`{��/!� ���Ad�M���Qt�\�u��p��O���=��_�c��4�2�j?do�M�.**9/�Nv> {[��iܭ���䴓�o�?�۳� ���A8.ˍ��Gvv����E��Ǟ�WWë�{m�U]��l�=�\�'��[��ȶ;��[z�v���r�K�Ҹ��O���nΞ ί��ir0;��{7�/hݠp�`r� ��'܀�Ӹ�ӏs���$����{�B&���Ӌ"�OĔ�S?�>q�>u�3]�6;��� �!� >6��η���Tt������x3��³�y��������y�x4���|����l� �A�()���x(�h����WY�}0��|�y �rTA(�B9��9�����-��j�� r����A�%��X���d�m��lO����Y ؼEU�[>r�9Mfƃ {3�e� �Z�=v���'��F/����EiI��t�n� ��p�r�4���;hL����Z��9/$��Byl,�68u�( 4�.�2Rz�e#P[�dd�rO��)�x媨�n�تegB)�c��d��4��=��4�i�k���J��*Y���� d��df�����C�.��K(�/�a��"u�]�]��&���J=n�8W�<�s���h(O�Q����G��d�h!�G2��n@�h=� и����TR�|2���/@Y"ao��K6�u�ߐ4�dT�I�_��[0����xPi.������Ρ�NC�H���jo,�_-���8l2�3�Y0Q�NVٚn3� ���YK���to76;�V"E��k���G̀�z`j_R�19]�9ڍ�Dp�����c�Ο-Q�_r�����L x�^��E�ɫO��8�6�߷�|�ž �m�)S�EcUG"�C��үmX�۬4��d#�x�q��Y7��� Av�4=Mk J��B�X�qG����0��n�$Up� 8�J�a��F]��(�oY����]2 ����u�|/��?�ڤ�A�������O�Ҹ=ڼf�vn�{����#v�:�g+�;����/����&�/'_����}����� �4��#V�[�%��{���lX¥�/B�v�"+�,� $��e^��*����������(:`�G�c\&�(�&�`��E�����y���j���Z:c&���HX���&%D� V4l�Z#�h���j]�T�*��V ��k��b�ɈbJ�)k,�źNL�t��Ȧ��LuLT�"+H�0V05e����TUń�D������+ɪ�%IŊI��c��Dy����Hª&�QM�$J%SֲVհj�5F�?,Ci�'o\�B�TϷ�.�����s��~c�(����l��юU jJ��L@�O�݊eV��[��ێ���Gks��؝g���mf�{�o�&K������w��ǪH�B�G�>۶X�n������/"/a�H�J�,Ud�P)2�:��ʲ%/kytz�b�h�X����p._�ss9�[U�H���`;��p^���_!FY�k���{ҍO�8���wW@�PPeϽ����_A� &EЩ�(�{�{��۟Nv�aB(3m*ZP��8��) !�l��8}�&2�����T�� R�|��� + + zSf�T8��T�O��n���T8B�\��eiBU �(A�,���@��}�1Ԕ�'��(���E�T�09�&���@#����u�k9�>�aQ���<��ȭ����A&����l�"8�K4Dy~���9��Y�ʷ��t�%��<��b���hݤ jd�Tj�+7�:�0���+j$��"�y���'Xfn�>/�������@�6��Pa��w ��Lu3�{}�߼�JqJU�w-Cc�B� z�m:��Bb�-�l9���s�����`Q��9N���%���cr���P��]�} F�X��j�����.OD�t���50�(��M���xPZB��Nw�XE����իc�8D-�-�I�fˋ�-Sf��׭�q����;vz�ܕ�$��C������$-��kxR�y�D�5�&M#����! :��W;*� F�蚠av���&8�uǟ�hu"f�1�:��t`-I���{pc!:�=4������۠�,G��q��9A�ʐQE�sJ[UKn5�� h����>~���������.%!�5�S<.�B��^)���QzhD*�˧�G`�'U�� A�v�U���� � ��dkEWv��p݁,^��TϠ��V 5��:b!�ъj���H���+��U%��aa�eZ7�Z�Ai����.7W�B;����C��E6s�D�ת�� + + jMO�1RC� ����qjlq�V�`��� |�v��E��sa@��o ��,�V��ō@C�K�(i�xԠ��Y�*G��O��n�U漚k)�*�"�{eb�<����ᬻ��� R ��t��f��~V�����/��w�xK�B��^ �aO�@@c���Z��F� �W]���~©��{�F���z��� �9*�Q�-�%�c��� ��!��j���}a�B�]�!H���1;���k1����bvۏD��;���9^o�����Z�^���v��U�� �=G,���*��2F�q\��4�uN�5������&����W��g�+d�W{�f'� �I�6}V-�E�>f�P��֢d8wN�8T�^⫊jS���b��K��b��<�)]�P��3�X�y��6D�)�V�\kș��V�=����w��rt@�)j��Mꮈ�Z][֚Z[[��mC��B���. �1>��]�hQn.��6_нVj�z=��/ǚz3��۱U}5����6�͹���C����l�X�M<��N�����2���%�ݬnH��g�M�r�Z��kZ�S�� �)/"p�U� �����d��r�8�'�Ζ� �Ii_�…Z���Ź�kFq����f%m��ܖ�� ;��p���z�cf ��uK���'Y�o�O��jds^rsy5r���zM:�lNb�d��uÏ�0��J����/�%L�^�zZ�L�| L��[y�ob!k���pu��d�6��dne��h���ơ{���sB���J�vS�+� �k�6 �j PR�/fЏ��R�h�Piŀ��+�E� ���\ �Tc��&���5��C8�� e�\ �pX3��� /�0{I Y �`���"S�`t<���شw����A_'���$�� ��8BB(6 M ��8�]"�I!d:O��@lB��&�IhG%)��~L�jͥm����C `.��(�%R�4o"h��p�w ��3,�:��R���dW뢴$��Ih��l4��&�ih�]"�I�e:��,��\��Ii��& ���Z4���/�I58Z~���`��fs�h�R���X+F ��;�k\�Zhޚhu񒌅�� HVD ����B����Z���P��*�ߔ��o�?U5��n�'�\��[��I� e� y�1o+�ϯG��.��4���ߐ7����%���ᏝY�_X6�/E��*߳|�4ha���@ݨ��|�ag_`�J�Tk�� ��s1����{��n�� �KV5�Pr ��ڞ_�w�����}�k�4s���W��U駞�vR��5�u�+�6�ɹ�(��u�mՑ��V�j˛�.�O�=6�]Z˸;�1�:������u9B?�(�&�[y�bW;#M� J�j.��nd���S㖖w�ᴡ��"H<��2��Nm:qn�f�SRG��p��R�����{�9��;%{�CPOy�4�;oz����չ]�q,h�ܻ���8u�Z�R$��� �XU���`�|��"~ۗ�H��^A�t���Vl��H0� ����mi��4!$ M0-�z6�J$QY�:D�.��Jz�1��M�ڄ����%|��S���Ge����S�$���Q�D,�j���ik*���6h�����\��M0���d 8�R��I{�@/�����>�Q�~�.�&��\��59�S�����ژ��$���j��f�����v��Ѡg}�����.��5�l�p�?��c{��m6~��!���(f�� ��CU�0S|��pZ&A��`���_�sy��m�q�$�d�<*�ؼ�+%���.��齩�-�4��4�t �m~,����@�#x؞���JQ?0k�"���gז��(E�9����ZדF�J�|B��:�n8@ �F|��<�T~����E__�Σ�(S���TG�$+p��c�J �M�ˍ�g�x �>��� �H��澵��BP(>Q���Q#r�-�*c�/��Z�����T9��&3�Q�����]>�x�<�>��� c ��~`֖E�J}k7J�!�S�G��e�y��F4]'p�@ɩ�P�-)=��Md�*hP���1�# V��)�OI�V�m ���R��Z��D�h�M)�I� ����̛�Y``<���`��_Wd����<�Re�r��u ����mԀ$�l�Ad�"�R�7 ����F�%(�H� H�:�����2��k.��k,�9�Ф�P���)�]Me��Aԋ�q|�t�3\Y��G@�y�u�a�HI�F�դ~Iu���(�:b׻mt�dY$w��1�MZ�9�+�v7bVZ�A��`871V�ba:�gAO"� �:��y���-> ��K��'����3nR9��z��/e�SX�x-���\�(m�;�F����E-m�����~4$��0� ��$���4��� ��)Rr2GI^��s7��Ǫ� ���׈�E�l���Ĕ�͵jI�����0(�|��!�ۇ��V��Vyq��Y ��-����7��'7UV+��`��Ƒ��l�pYC+Mܻ�����6��zɡ�0<�"|�:3E�]����Y Se��1�Љ �%�]����!�� + + �P�6;�-z�ɉfz'�`�'�C���S�E��i(�\@��5����@e�g.q�uO������鱜� ;��v��Յ�f L�n�V�Va�C������`M�;\P ���BTB�.NpA)�F�4_��}B��� ��ma>��l̫��@[�i �7��s���m�� �~,d���%�D�=���9[��06�`{��T �Zt�Q���a��ګ�I��Z%sL}kϷRb`tj�zxW��/� ��R ,v�?}c�V�;��0�x��p�� ���iꖎ��Q�p�D�v��7�9�XW�;)��8[Q��gԓ���s������@���M#�g=] �n_��I����́�J~����}�� �/h}h'�JxcM�Ǿ9���8*������߿�@?�%�Kրi'��aAd�ԁ���E5�����Kt1X���=��zU�慺�8�U�,���ri�x�te)V<���i��*d� �\�J. ��RF�q%����ʧ�;n\ �?��c�S��[����t Ǫ��p���\ ��R�-Q�h�����0�����>Lf�H�^�F[�E%C���0�wl=��D�Va�C�X'e|a�UB8T ��a�?�*�L�,*5��g�uy��)��σ�EZ�u(�}���=&��K��f��DӐb�]ŝ�g׸ !�}W�K$%����>� ���v_�e��ۜ�4�S9�4� �<d�Wp�d�q��*ω�Le�3so=h��2 }�=Wk���� ��m�Z��V!�0�� 6�"�w�|����Ģvb�}I��1�����\�z}�n�� Lf@jr��������b)��������(�Q�H� $�f��-���oa�`�4Q?wf�}�}d��`� Y�"�*$��y�2EG�:�P�ަn�6MM�c�1_Fi��k��kL{Zj�1�(}2R�r����Jv*�m�+��:ZW�5�7"�I���ڇ7��͇ͽ����-�g��\5 ɐGjU5�2g^]ژ��@��0%��Ɏ��zh�ay��hQ��P'��_J�}�ڋTdd�=q�m��uۧ��ro�>R��cf+�z>qYy��PW�� C��q�w�ѭ���p�y�!E}���ʿ�7��֖� �l�傢Ư�Mn� nx�����%7��=��n�uj���"������Ƕ��0��;���9�7F�}��޲�f��O��,���32SP~��|7"���}�'�P��7�,�Bi�(`�%�GT'� �7�gs8��53L:� � ��eן �T�� � �ȝ���A�P ��&����@�!� J���oY�L��̂�X���wR�E# '[�Q�pT����3@a��52|T�Ύ?�uK���Xn�xn혤�鎄 �v�J���0���jI�e@��)T� ���]����R��5����T���5��/,�7D�7�ax��y��'� l��;V'���luF�m(�,����g(�S傖!s�g��ݛ���Pm�s9���o.���!�� ��9��YxQ�}���}���l������,��|�T���#A��}-�4�քŠ^���J� ~�*��c��W�/�oǪ�I=�J輻#(n��p�e5k���Bx��F���>�VM�����K%����8Yl�Ea�7Ԥ�"�Qق���L[є������sƊ��e �����$�ØCk9��+ߑ���X� ����߳q��dq G7�]��· �n�ꭃy�e?���>6��r �" ƈ�̍1�����fn�(��O�k_�l������2����ٞ�o2�h�Ǖ�e�0���}b�]�Stf$��a��{�/甯�i-kz�1|�萐 �� + + �N]������9������ŵ���A(PY��B8vʠ�\ZP���A�#TO�^�F}T��^�\25p�^�vO$.Aq��L[�Î�Ի�9$�|H4���+�6�c�q�W����ۥA�h��Ҍ�Y|��Iŀ~��L�dj�"����b������E.��S��x�w����%F�[mIf" �y����7�.�>�"qjN��P�ӊ� IQ B |��'��ژ4~�]/yK��H�W�&�nxO 7��wy*(KODZV��8ģ�*����pa���(��{f����Ϋ)7RK���4Z�C.w9P�lw1�~f�OʲL�y���� �����;���L`����3 p5��x~T{������Z U �����Y����g�G#��N,/g�'� �V Ȗ��$i�䒦�LJh.��c�s �'�8�,u����fA(6�d ��A�ⶲY�#o �̥�V��#��� �s�o� �����a�pt:,��4w)ؕړзa$�FY��!|�K*1p{�������Z�G�4IVY�x����e�p)�7��� + + Թ$����ښC��e� ��yI��[���ug{9�{N�,]‰q!eA�`Q�%��0ϕ�~@w&`q�ַ�ٜ���!X���C�{! ��n�@���jvF�U�)H��Ѱ���IJ) ����3;�k���{xa�V����8�"@Q�n!ְ6>�N�N �ͬN��I:Z�h;V��8�L�$Q�r�� `�4�M?�#��2����*ڻ���m�&�kPA)C5�Z�����hԣ� U<�w���d:U�ԥR`������SY���˯�9�?�%�9e�ZT�"%��(�,��� �ڗA�*ݦn���x#�4��6��a����i����_Dͳ���3m���^���_���� {��坍z�[���RDrV�&+I\�� �y���Y�k��� ��`k�W#�t��-V}��B��� �"�(/BJ-�H�qKt�u�eb� �ᓮ��5F%���i������ aj�|�2�N�a=t:y������&�+$K�H�rU����GL9-��q!���GI��:�|�8%Yz=h����v��. !�XS�~r���enn5G؎,8��Q�����[����.=�t�=]r�]�V� �ǜ�X�Il���(�����Q�����E��v�Z�蚬w����)˜E� ����f��.Y ��;�:�R!d/ ڌd�v��*�� I���=B,��M��'��Q�d�_�4�w����{�CV�3�d��� =r��ѭ�PI��FR� ���T2�u*Hg��R`���U�p*���(_�&_}9Ͳ{4ŧ�O��s@g��l��S�0��b�g��>��2�x��ņ ��O.�I�ٖӌ�� N�c�F��*#���ə��_� %�����~���1���m L�g�r?�ϾHs��9��G��Q�\'�i�IU�va�ѱ�:Va����8װ^_��� N�@h��|��E�Z�;X=a�6F�}�t�(�4TMd@�!�����W�����±ip$(@��������X�8B�BtEGK[,m;N�aYJf�յ{��6l �/Lʌ�b�x�Vo� ��s��R ٍ��=>!�fŋ�k��'>�d�w�^V������\�o�T�� l���؋�� �6qG>3�+�&ʞ������zڦ��LOM@'�����BTvk��5�$J�Gu�Aew��{`ҚkL� Ŭ%R`��bE�"K�3=d����识R�b@Ǿ-���L��\�h*1録�c���v����\�KA�����z�Г�Е4�ݢ%-k�>׍s� ����X�L��㴝/_5�ؾPP�:�D6;�@(� w^Ҹ��w.m��LC�󲍏]KE)ѯ���f�'U��N�20"���%�� + + <����'RԓR�������,9!s�I�� �}#�΍�"���!�X��训r�;I��GN5NGd=0�����?�h�b�TV[��<4�]� ���<�Yt¤�(ª��.c4���i��U����a��-��k"�����ؗ�_T���/]�ԉ�y����c ���b_�) {_\� X����Ɵ��7� ����=7�@�6�O�UDd��g�5}��H���nX6�Z;���#���S��;[0a��i֐�OO X��h��H��v��wPhz�Ö���@�j�DwT4�~�4��8��M@���J,:& ��>\�d��OYV0e躬���ƞ!�O��K֥��w�8�'�w�F�/�h����i�i�a4���뷱}��eVM��廯� w�� OZg��6���|y`��M����v���B��i���!�� s�6 �ID&��ǁ �\�p8U�Ȧ�J� + + �`׶���߀O3�fE6�:�R@>`�:�z�ם�|�6r��n䵷�F4�G��%O����"���-��s��Ex�±}�]�b�yB�����?���@5�U�VD���-�m�N���ƀJ6,�`��͐�T./��`H�H=<�S�Zfm����Vn�tb�A`�������YVr�͹S:α��,)�����<� ���t��!N��A����X�__�c| j���G�*c0)��" 4j۰`���h���{�(�vh�"�l��&mjq���sb!G:$Jt� P�4$_�����N��߮z�GA�6�_( �Mp �m���p�!���.by��T&��p�3j�jD�$f��^�y��ص�N�` S�jQѯ�D�� + + 3>�l�!D �� ��Fۚ-�i��Q< O�5���-4��n�G� (W�R '�R�ʠ"�?�����k�����ܬ��rf�А<�O�����:�`Ck)4��/���b~���yT/?p,2�� �OA��"/{��H�/>.['E%�V�M3[��!��a��l�IoP���?-���U}?`%%�8P�k�);�{H�{��CK��[G�D��&h"����毲R�W� KtF���q����=�� �eTҸ�$t�_ �:jxq �mLk�4l�Wd�� �����PC,��2������ �}�Lڂ��7;h3Z&D ���P�I�Xv�?v;���ɞ���$:��ͽȁ���|�he\��kr캰�l<�����Jl6ޓm���h�����He� tı�^�&Ҵ9�z� �#�z�6iG����I��/����^Z�-�@�Do�^(gGT����,���� 5Z�R��|J~�%_O����A}\gs�4a�q�`���`�"ʈ��g${'x׸)����O˽�- ��ٍw�e2�(��o @>���;���#j���FJ�ٜo�ٱcc*s�(�ft��NvB��Kqz>����3 �bǭ����� ������N[`-�����<�Xi�s�lܱ���:���8/�;D��mӞT�io��l�>kb�s��_�>�8�:�>�BY��B��(�d*��3/��t�9� �+QT|%Ҡ5�T�6kؤ'$�0}�k8�=�6ٶ�̵�l^ъ���j8�����n�)л�9�XIG�=M跎�r�T��O�>I�6���� ����` s����4��������^|^t���4�p�J_���������� e�&�s�1޻+�r��mW�O�a��%q�>����$��` J�!�cPr���x?1��)� �� �s��νo�y34Ô�PBS��` ��XSN���e퓴jmU5�c�1�|sGΥ}\�s��4*��b��� & �tx���߸'�K"|�|L��1�x�*�KI�?:���a)���B�K\�) �J��BB}¦YG%�Z����J=t�A� ܴ���c��@�~��@�Ü�0��Q�[��39��6��{-�����!����������ҏ���(z���͛���^� �u��{�Xf5�G�f�����N �l���D��{��q���T���̃N�1�_u��U��.S���`�� �1����\]%^O���H|�B�>�ֹK8>���!-e@?�e�� /�9�i�&T�(�#m��HӃ��"����N��B��f@�&2[:���Z)����٭_hk'���1f��0qд���?���6=���*���%x�H\E\f��wkI��� 1����<끹=�֛�&�K��Aw�)���_�H �I�Xɚ�j��'�"� ��ޖ��sK�J�������f_\C�!�G���x�e�A�o8�%t�5^CM�oB��g��o�mo�//�H4��T,�|�u�Pk�*ॕ-���ѝ����#]�*IJ�3$�8]&[n��1)��x��myE�v6�D��.͕��!)`� � 6"/���sj���M�&߳i�<=��ק���ˏ*��Z��X��~�� ������B�L!���1L��"� @����n�icVyЊB���G���1�Z�!D��1B��j���<4�&R��6pE���|b߭0��3�zyh1�s/&;�}i���l�{�-�{�^��@�ՠk��g�$����?d��/P�.�w�X\�(�P�p%븧6�ݮš�LK}��˷P(1fy�J �|���N���8dKN� WQ�����<MzZ �s���O����X���c:�[ꤔ��������v�s�����"����,��x� �P�I�& |�q<��ȑ�b����"# �@)�8���_� ��(*�`���lGZ�Y[f�?0D:ɹX��a��`�8x�U��%��7*B�����ā>�"�A��\�ZRUŪ������-�3�_�N��' �����na�=�g�vOi�5I����IP�%eD�OڡKq�.X�^����wA�*G���[��~�JL�h)ʰ�8�/�P��שe�y� U�>x3�9�����Ld��#*�� ��q��Nr�O���}I Jg29о��`�K�c,a $�^��5��wKt�w���^ ~�Aho�&B�Y���;��9M5���w a��׵�1t/F�A�V�i�&�:�;�T�/�B*�(� ^8��@������ iH���4���]P .�H�$�����:��'����C^�m�d���q ��s��(� ��M3�+Бw��j�����s-�`>��i-��TY �1���{��*� jt��pI�y���qg�rXT:و�� E�V�BMxP��a�A:J��'�G�4݆Y��� �߲�� ���o�&��4�>��7D������ �S 1 �T��{8�(J�����p�p<�qY� �ɫ[L�4�0=��4��O�.����%׍��7Y��v���.`��� ��!����;��l��U�in��R�*�=�hh;^4��XO��/�.i�W2��4Y�����K����y9C�ò7qQ^��$���i���(0%��S #��PC c���<0�$�D|���� �^�Ԁ�W�%�� lG�}�e�F�����1 Sa7J�t�����{ ی��S�@�;a�v�����Cwڵ����+�����k�aŬ��P�� H_HZ*���;��re�v?�e<w�G��~�f��i�>0u=�5ˆ�5ļD=g�Ë�-�S�a�� K�����Ys1� ~�g5K�yB�;ς��$���� �6�NΝ���=P�Y�tUj�i���g�6�!T�,$z0`�;U���?\�X���� _�(:\r�b=o��u똢���OO� @�3?u��#I��?�/�7���b�����Q3����K�J�Wl+�9 �m�T1��+D�Q�-��>��:�I9C̯�?�߉��J� �xHc� hL����s�&�pr|ٶ�ZV\ ��7����π�,��Θ7��F�"� q� ����ؗA�r� A���� �I7DY�'z���qg���@����xU�����I׵�|��yMQ�1eҖ��P�5���_�AԴXP� �|�����|�x�T]�i�h���ZԵ��4g���B����&�bR4�$����x��P��T�vF#H"P�8#�����=SO?K \~ ,l�~��E �%���yP�mZ��V����M� ߧ���)h'!�ʶ�A�i<� ̀H�1�V�f+@�mF���� Űj�դ�,wl�q�� ���O.noD�Z���;X����Y�t�l ��C�v�3�GM �p4��s�P�,2��e F�#L�������x��GѪq �MŸ� SgY[dq���D8�=�Ǝ��/ 3N��T-���A��������ѱ����Xs�� ���2Պ�H'� ��a쭼�yǛ��:�*X��H^�`aY���T:��=�1O*V`�a����"|e`O8 m�gS�?�w��V-�����/j �%b�d��79�l*U ��G�)S���\{;\���5�o�jm"{�Yj�O�`�� 2�I:���G쯞�N�L��͢l�>�3���Q�^硶3���*LB䁲6Ž + + V/" �ʏ����/�d��_}����ܗޥ�aϸ� lb�& E�$����Q ��8'\t6A�I�q�+ ��+�Ț��lL�k�sg!��N� �2:��⋹e+�.�p?�I!.r����$J�p/z$) x�H<���#�,��{k7tEFZW���̅�H���s�s����� g,�qH���ܦ�m��P�3_M0$�'-n[�K58���.<�������g�540���� ��1�&�]�u�-��IJ�\�O9�Z)�’�4$�#`Ľ�>1�g�N�t�3�0 T��{�}������2]�6 �-!,�&�@B � deqC��H1�ڭ!+�H�!ju�������&���!` $ �*�� ���-<�{x��:7�t6<��M�W@�xa3���W�I�`���`�&m�{?�DY �8l�ViQ�%�#��%���^�#F`j�}�� ������{�9��$� ���G��O��u���� |~pތ�a�a]�I�rMw�l�}R��~lCR�Q�&��̮ ��j���O�GޥD`(��`�����>g�D*m��9K+�ؾf��͎�ִ$4�ff��h���T��F��j'Zz_�a}�{��"Q��D���w���AH�2:Y2Y �h@��(���.�lNnG��>M���1,��Ѥ�P5�Nχ@�Qs��-�裿��Ԏ��t ��Ĵ��4��L�=�R�;��HNO��: �I '�D7*����ˬ9�)�e4�d�h��\����\?+a��m��Z� �m���K �IG6�:}��������6 6e�D�0�u�> n�V�m�TK�M�6�w�3��Z��JS����IвF�4L��A{ۓ�^�.����ӂ��Z��S�t���>b {�f�H�Z� ��S �Cy���F��t�ZbF��%’�O_��!�Cs.�;܆]��a�?�^B��Ϯ�~e"B���BR�ʸ����:�f/I�y/� �IVp�)ZM �皸ٷ�"�W`z`�cHst�8��I����=a 3��>����G%�Fr�(�H�A|�y�4�^� �?�cg�`�;Js��(pyJ�i��-�� N5W~�э�ń��ǃJ�x���Cו,Qfr'N�a{ؿ�[$�~����K�t� ��H��׎;���H{Q�aZ!�P=BJl�,i?b�;��h;M|�]SZ��Nv�_^7��9]g��'`yϵR-��d2�B@䁌��=��S�9Xpwn ���F5&�[�<�M���:u�NA?;X�[�m_� ���rA?F͉y�>�%�|Pʅ-�|=߆�䋶~�l,�{��J�mR���A����z��:���h�$w���;���ɸ"%1�x&h�� ���d��ѩ�;��Zb���eQl]9�rt����&�Sg��t�`�L�Y�V�� �;<{ �y? �W�Pu��Z"�T:��bd�͌�Da"�V2���;�v���ˇp��X�3�:�j�N^��;����)QҴsg��W��]Q��d�پs�#² �K7�8n����������u�+S�� ��ڨٸ�����z^��7f�³%tv�ۑ��o�S�M�O��vgFK��Z�"����#�l�.�_�Kb}��I��O��=�2�Y<:�n���Q��ܡ��<���1!~�ڬ�Ŷ�������/��>]]��_�f��n����MԟԢ���w����{�aJ�� ����ֶ�k�>�V�P�x o�G���b�W9^L���I;uڊ�C�r����^���}9�17���e��&H*5��Y �o�BX�x��V!BJx�yIt�����@Б.ZFD� �*%�&!�����|w �^� 1�Za�^�I���:|9���"ۧ$ <�/mN�2g!�U�PL����fݘ���ªei�E��2��O)����阼+Ο�c���X�)�v垰}�8�Hwh�����#%�uH�H�E �n*H���~A�%y&�@���{�җa!�`�l��p���P������U��E^��+�eo 6�E R�X΍*��t�Xߍ=rFhcU���I��x�d0���J} ���D3t�0dk����v��:��ս��dR��(ω�M�.Q�芪�/D�� �O� H���Rc�K���D�l���"/��'�ԣUE���}����6S�tٴiq�-���R�4�n^����a�s��7�좮nRi�1>?-�|�u>Mv�r������֪}��ˇOC������݉�d?x2�j�=������k�����ljR�&T2�a�~�1<iP+�����{��T4`Ѧ� I%�P�06V.8�AH��f_RO~��%]����R� �s�X��$�rR�����O��'��kDU ��!+J.E]�ȕW��_U9h�}  � f?�ؠ��\Y���/���j�cH�}�����X����$D��� (�r��qC%��DZ��A�A���j�Ub��ߎ#y�s�A�$ɳ�5����m �<� �/�m����u]C���NL��iQ<[��$��x��پ��ª*�o �jfQ��7ň0Kp1�i����?�+�h��#��y���үK2=,�x��PVn/>.h�D�nf�٧�?q����i�+�7�T ?���%f��bPq5p�O�2�5��8(_l�Z��ؽ���K>�sޮ���^k�F9� P�Efn��"�ɽG�usw~z}3��1h���1r7o����aQ���A�H.� >͝�N�E���ƆGz�&inJ��S��8q����]���Ksa�<�����K,��J������zpC *9Y���u� )�f��4�����w���A��(h��4��%��W�ܤ[��o-�n@$�����;)�)������)=����g�������#�Zeѳ�L^!E w�� ,���7 ������쳠� Šp)^�bʪ%EzZ�-�E��� ��D���y��ᇿUh��Lfoi.F�XnC�ɕ�Zb����KN�~����Տ)v�@�'�7ϡ_����}HY�IR��ô2��F'�՛�����o��&J�;��d~�߷iiw"�A��,���?��L���`�� ���5�ЗE�`5��gx�u>�����J��v�|dQZצ�.h���{����2�:<��gI (��ӵ�Z�Z�� �T�D%�hE�RZ���8~✡5�~�]z��}�ln%g�_7��/8�M��7���!���T�*&/�e�/�����o�es�-��@z�x2��B��(�^�O"6�����p����6)�^d��*������=^�� �3}4 ��&P.�N�):Gdy�Q�nݐ�|��H��+k�D�Γ��uR��s���.>�m��;�ˊ��b��G)JM\f"^��|�a!q{�{�ogؾ���f�K=�?ܛGe���U8g}�e�F�hz����=?��o�2K�: ���=�ʇ<2uHB� \�����?��ɚ��ag��ĉ[U+ ����?(�˓IB����+,�']����B�hʈT�@���}��W�g ;Ja[�ib ���o߿w�#䀄�( b�'RB���%]A-�Jә���hن�uӤ����{�E�H�Y[vO�7YU��Nn�'��c"˃5�C��������Tb��! �]y�P�mN/��nH��-.�yn�#���7ޖ��U�R�����a2����$d+$y�����G��)Q��w�f�� ����Z)Z7 ��L��HP|G�Ge�Z���o�p���_snd����*�����t�=Q|�ߣorN�� ����3��6��y��o�0��f��lT6�\!����>�x���#���N�3g�J4�@�� [�3"Wh���E���t�@!�� /Q�W�pݳ2%�on2dL��~��r�:�4P/����h?�G��Bff���dzq͌�f�@��B�1gr�l���q����d�=&�Z��zSճ��>�z��9R��U@_p���>��ҼD��k��h��W���Ϥ&����`Br�� ���c���]k�B^� ϊ�C�a���A7�����ߒK�sRX?���쑒�������<�kF�����i ��UD2 ��D9{:���[$+�0�!�{aZ�A�U[v &Bl��^�b9y����"�c��� �����u�Of����������/�`'h��r7��{����ʈ 6�zd�XR��a�'FaA����t�k�ݟ���H�Ւ$|�qa'��lj�'�� ��q��Ž�ь�8�s��Dk.��T��Q�$�C��*{�?`��Y�l�߁5G� 3��t�i�;v�pV�;wY�XT%��9��n�;��w*{=�[��d ����/��Gݘ��"�������}�FF��w�� �����WK��qkIL�r�������()5rH�k�)�����$b��|�[�U��Xu}\�?n(�o/W��l�?�4���QLR�"�q��G.(���@4�q2Y���5腬�? ٯ�nMR�؝O��HOKI�m4A�yAmZ�S�۷>/�Zt�T����ڄ�sϜWW��̆����6O�Q��8��a�k��_�û��)�x��C�#%^��B��q/�7~���c�"L��!�XY ���2h�� a�ㇺ:�&A��L� ��$9��r�j#��Bm�Vi��5�vuw5�(��� y1t��~tY�Փ�3E�����_�I'�q�oS�O���x��k���h趖� �g�DZ=�%��r� l�;ҏ�v�H��Zk������?�q�W��������t�0aT7���f��Vb�&q!��� ʐ|q#)Je�C��� ��P|o��&��";�%�Df-Nk�N����Y˶n�@�}A!,^��QVDs�2-R�=C;F�,�z1bI%���du�qt�P��5�%v;����$� + + ,ǐ�� "�p"�^#������b��A{k�|E4�,(r�6�ѽ@�R���1��ۆ8��<ۏ���G-�c�3š�(Ã�j��T��c˒�-��1�Z햩�k���h;V\�W����2� R�{F�VB�L$��|:q�]�:� �O���lm�������"�O>F�K>�@����i������G��լ�c�Kz Ǜ|:m�~!����4[Vs�X���]�ǂ��X�ĵ�@��8w*td�]6�^� �N����>�6ɞ}��7����F����5�s�Q��d��JHk���VTu�%��E4;�ͮZG�ۭNN��mw>��y�[ �=�� �q�Dp�����-�s����C��zy��>"��E��LG�~��Q�|w1�U�h�ڢT|B+���-�nA_-뺎���5q�7?��yY ���F�x��T�*7�끞]=�� �o�-���a ��ShO +6Q鲛���A�d�o��M�EYW!8����Bbh>?ֻ:uD��v��]�r�dt(K���ж���xW�aK� ����;��gB���w��dW�v�9ۅ���$~��f�̧���a�y��ܡ?������y�}̰� �L�?�v��40T�� �i͆�m�㓹eY��5pR|m���͆��%�^R�[f��?G�(zMsq�ݷM\�����Җ[��TPg���$���K��y^���i���O�T����D�9���������괏�R�ߗ��&<���Fϩ��~t�N:`��#��Ȋ����3�Έh�YWO�#�U��p���R�Dx&!�I��P~�����u�Fۮ�ce���&�1���v��s��"� ��3R�f%`�Q��q!9���(�Tu�S�=�Y�k���q. ��e�e�x�y�>Mr-9��D����W^����>hϭ��-B,��3��mf����p�US�&!�d�T^B�����s����B#�cE2o;P]�u��Ql���!Z���n"�7��hE�q/��nr�f�!Dz?���%5;���K�/F�^t��-VV�g|��E�O8�Q���A�P�#��D�4:(�g��E$u���02�� ���#tO_M-WIe?'^��JYf�����e@Qe�[�~���*�r�$/Sg�+�.��ϴ�Л ��8��' �b���D�JQۉ�����˫�ŀ*r�EI�Q�����vS����m���q&- * *<N��1�Յ�EŧѪ�"�a�3ԉ›��fFi�J�V�"���lҵ��i���lYr�cB?��(ӡ�`6tDž�ё�FF���[' ʑ|��nű["ή�Q�8J���jn��B<��O�����{0���z�:m:nzY\��4{�(���M3��U�zwE��������͊����x4'?P�-����[�m�n2��$?���\|���튊 YӴi*���bf��a�n@t� �E1��wg�o�Ͳ�4����d�зK� I�� �O�bP]��u��:ݦ���'i-c�1`CҌ�L�ᴻ�E�1�� ��;�a��G� �q��"��`'�5PA�����R5J)r*�'��xF��5"Ծ�9 ���J��z� ��U�]�^�Jn���)�.#)0�lO�����H�����FD�~i#т� p��%�mJ����[�ez�.m�eV����M�H�4+�&��= s��Q�@#@��E��2Z�%a��kam�6���w`{8L�:kKI�T�x���б��ЊА�=@��IӔ>��uǃtN5�'�eN���fBSQ����V0�|(�+��xLHۊ x�%�J�&�(��� ���h��k82Ć��?�`|�v���bUo?�5����^�$�ad>@#�F~x�z���J�����R2�c���A����r����K�MS�����w�� ��o��6:=��܍��uX���J��R� P;�Q���p9���_on�^�M��l�^°W &kpJ��J[^��0��;�����X�@gz-������{����xp/�!Ve���D �v��o$8���a\f ������n�����*���L�Ay5hV4�.�-�NVYW#j����^���v�SW��Ͳ����M<�s�����7�np1 ��Ȫ�m w���Oo�����2U�B��G���嗲�X�V�u]w���~���!1�[45勞�>�� ���� �6>��73s8I��Ţ�}�Ќ?"��v���m��T�Q+�Fr.+S ��!��0hZl/>�� ������<�:��?g˘��d��q1GA�7�*'� �2]�HY�L��=�ֻ���"N���a�l�D5_���)� ���ut���[0�Gۙ����������K�KMN+}��D��L��CW������$���Ŀ������w� �g1�a3cx��+qu�K�W��5;&��%%� tw��0��C�7��b�j���;��� ZN���A��f����wB����]�4<`8��2L��_'�� ����jl�_���C-���H~�9���I���\b ��W�������/�R ��f3��ߗo~X�����M�)������$�@���j/G}�4���<����u�]�Q��P*�0Nu��f�� p1b�;��[�p�{Z�,⁊'ؒ��Vᝠ��4T �˛ �qc����X�TH�F�\_��Q��&�B=����`���9R�CWz�ҽ��IN�r�v���֪}��KP��SLMQ ?��~�JH��S \����1B=:�����9� O X�D[1 �:�I:\[w���t� �2(h�-�IIZ���8ٗ�j���"@�9J�a�J�|���ⅲd�� ������ʀ�=� 0!�a��U��?G�~����44A�`���'%@M#�&^�s�z��Y�ǽ�TK*��z��c�VǔI�Y�5�}�|L��jOt�qb)���� ��:��Bb�a]Nc��@�nN�a�I�5xYs� �a�N��e&���~������)�Q� 49zO������6��1����Q����M�x�B ��A�G�9TM[60��H�<]�d4C�Ⱦ:�g�����+�;q����;�ۋ�[��ᒖ���-�� o�S�P)���ꁃ"�\�2��6��~�� �$�y3���\W�{c �t=�<,���)oUb-_�eX!��G>&ݝ�~���}-��s�� �l�!�4��,�"�1\�c^|�?>$BPc�!��/^*��@ �]�&̚�6TC6��"�<�l�������f���p�s� �� �� �Ze���l��ڤ˹hg6����� I?=/ŝ�������������`'�Y��\�H^���m�i(a�D�T��0�NXU�$| �զRNQ[oG`�y�3�G����>�b������=������"ԢL�L,ɌM~��Y����JBY�`�ބ%u,�JH�k�u�As4��%�7���L��&�6:��=�)A(��3��[I��@�Uw��:�쇒l�@~�9Y�OLr�����S��@ $f���b3h���z�Dj�5~�y"=�;¥�͖1jbh��3$(�x��n\gN��H��:!�:�M��L��,O[����ޏ���M��[��\ژ��u��v&c˒��"�. �8�S�@I�ُ�B�RN=�!��鼑'?���Œu����ZЗ�М�3�`o���p���dbn?m���'U��j:ʟ�:yY�� 14�u�C�4>$��)���D���u�^b��3m9�|�iSXp�ap�X�v���}2��Ȓ�3X� {d���ZF���=T�E7��=D����:����@�>�z�ly*Lϸ���=�F���!���f��B�o#�|�6�U��:���R�.�o�A� #���f_��1W��!��ǽ��3����'o�V�,�D�@al]=+̨���Dxy���ڛ��-e��B���{�\W���A����=�jY!„NW*��E���_%��/�l�F� z�g��&)�h���%�����DŽ�T �X��{N�ϥ�� q�VʁN�(��cB�+����8���U��G�A�Y�A�;R�h�s;+v����l��&��I3��KW�T���^ĜCH�T;T�c�,��`�=چ/ӚQ%�^%e���f�F�,�������Tj��Ot�B�[D��FF��8�s�T%I�Z~g��x�q`x��^�2��b[� ������T��L�{̖E���֭&#Y�(9_���.nG������DD��i �V����[+%p]wB�-P��"��n>������ר�`��O�׆����;ɰ)9��A�F���XN�[䃭��oM�\�����7S&J�x"��ӗ�F�PZ�I �s�1�UVtG���ܪ�&���o�NQ#�d���բ ��m�;��Dηj����+ѳӅ������m�n�� S{�dE� �����B��a=㗛�5����nB3�}� M4'+`.���&� + + �~c8W:�AGdt�]z�����$TmZ%9��{�z��D�Mw/r~�n4�p�g�6]tK��>$z + + < � bb��e�m�,M�F"BI\�l���rcE�.��ǿ��bp�tU/_����;QJͅ�zE�[e��y�s��D��0���pǁ@V��P�jS[ �t�4�l���:��Ѣ���S�U�i�aZx�~�k�I�'�'-W��iE̋\5�r�5��������+�s� Z��j@ !a��^��I,��V:�y��^�6��u�S� ��  N��RL�^�=� �5)�{��@F�{����I���n�K���e���n��|�l�,T��R�C޲޻��mZ�������8�{pi�:����W�e�K:� C�'������H�G��XjM�,"E�T�i�?/���yA�@�49���( �PӋI�$״���!����V׫ �1��8($�3����jm�u�����c�OU�Ν���(ET�Q�t�rs��$ �:��\B�-fDN����1��� + + ��[���Y~�ް�w�R�J�S��}�zǍ"u��ß����e�n� �m��s���`�BT�yZ�� ����a��P.�b?�����T + + ��{�Js�!��3���# i�l��(j�4��*]��ƯT������[Δ�AnKu������~��"��؛F$���2l7�����Q�a͐RJ3�X���U��nImT~�i����El��_�b�H����y����2i�$-���݋{]��[ ����s4s�Pe?�*^���-���BEN7�zrI�B(!|��s���xi������ r�s�2,W��i� ���g�EQ �ۀ�8�t���pgԜ�7��� �ʧ������� 12�t� ����S)=�x����-U9|B;h9��A�y��B��pπ�Ub���3-[dD��X�b/W��H��i�`�6��h�Q뗒x<���Vx� ��gϖ�����s��M��:z9Ϥse�-y{(��[�N� ����>�L�$(�m*��g�����$�\��9!w����@CtQf�K�G��  (M Lq��Ś�E�Wrw�&YY�#ՙ�0uЊ����{�u. pX�^�;.��e��:)>~��/��� + + ��ҞV*��ͳ��]�ni�T*@L2{�m��M"7�Ee���-���R �Pe���y�(�i�\�Q�ZLat�.�x�.z\�@�Ǜ�'l:? ���HP���I��[�働8^2�� h�ʧ_�@Z��e����A�%��1n�%>:9��$ƣ3��Ȉ5�u�������u�ΖB=�Pۅu�CE?f_�.�u���'�N5[m�x�Ͽ���p/�g8'_H�����bYU�{*�����f�QDN& ��ی�Ź�=�M�=j���7�FO"ޛ� q\r}{x>�4�?Ԗ�2��n:/�R�9L�dQ�42�~h��ѩP79�L����c(^y|`�9�V-��v-����USR>Q=��! jʱ��Z��n�G#��*o��C���c����Z"����S�`#lT�V��ܓL���4(3X� ��q� ���)��è{m-�҈B��ݰ`�������`z�Ѱilpz%��j������ͪB�%[�+g�lY��@����U��Ǔ�GA,:��3�̌o[Hs�EǍ��@�C���_j(9��Z����~�oe� �i ��b[ǰ��f=��:�R��z"�����^�7������Γw�#!Ӓ�DT�E&�~),��SӃ���.�VQB��ܖ��7!]%a�E� uuF��X3���vA� PC�&�F�CL[�R��<��d���_^�ã�,�G��x��//j�Ô&��ec�~w����k-"Z�uS+",�ׂ�x���i% �`���6��|�I+oęY��;z�>k�� ��� + + '�6Og���K������{+�?zc�DWU)� ~6r��A�X�p[=w�o[� �f0��|�l%l,�j3_��![c�m���`���Z-R[�a�$�S[��]��r$7�1)5��~��1Z�,���L��u�� ����w����`M��Ӏ ��B���B���$mN�!�Y�,�!s%�*�C�v[^��j��S�W��?� �󘻁Q�872No�0�~&Dv�N��񨱆យP'�H 9��X�#'0BDo2N��_����+��v�N��]��1�I����ʹ|�)bB�n6��̘}�f0���b*��/�;}��Q4i6�mV̓���Z�$~�T����(� �RyT-d`��v��P1p�`f�vF�'� ~(3�j�<#q��м[�#S�$1��y  }�5yOT� ?D���ed:��C?� {�G��&_�������; �K���>>��&H+�Q�H�X�!�����������}�����ܡ�u��L�P=;"U�.рm�؄ɂ�G�JN�p�B��q�sK��&U��V���<+펃 2�hj}�O��K�v�4�t6U�+�MwEd�N��f� [$�ȡS���Do�o��$��ô�����r~��!d��������5",,m0�����+����u�v[d���p���{�t(�e�ÿ�/��D��!�5��%g*�� ��/\x$�ǣ��Nw�#/�.j�Y���n~���Aڷ5��D�F��� B ���b�T��2zY���TȢaB�d�^i����6/�®)������lP:�{��9}y;{?�)�pcw�� s� ���K��X�I�OE3d�!�b6D�l�����`D���Z�T�~#\�! Wv������!����ua[�p)I0惪t��'����+A� ڠ�{���oKZRL���H�j�� ��x���@��X�B�F_}ߘ5ڞz����, �.{��o����������V��_��������_Z�?;ː�2fɌ��–��[e5q�]! �[��R{mX��:�|{�� �R/�S�bs8� + + �0�qbza3�67���-���S������)��}H�8�X�� ����܀*lX\�_Uf�pO��C��Y��>n�c�,���� ��#p�A��̨/9�ւ�iM�\r�L(|��FAS���IVR{����`a�&�\�:�gSu���t���c�1P�#���*b�� �c��JC�DK��D�$BT�'�~�u>�LZ�J��vi�T�4 EBZ��O̘Z+�u�|��L�5���p�n��^�.� R���C�H�Ŝ�ϫL@�#�*�eU�A���l�,)8r {���-�������) �99�d�f�˩R�%赼T�@�3�Ny�kDl��Ț*�C�d���G��b�LP&[� =l\j�A��}�����_�?��:y3��L��y0�����2�% z5nu*N�������n���|�p��K�]fCl3��iO��Eqj���y�]�#Ԫ��χ��g����5û��>�${�g �v5 �m������~4~��C9��r�Q�zH�7���+�,�<�g��1��X�?��@�wif|é��?蟊���;��v�?�Ovl�K��Y0���I�k[��{.�;GQ�ZTZ�#���%;N�Cl�ZO_bLvj���A���Q�)���JM�{��̴���d!a�$ ���ͦ�(� ���5� �����M�Kߛ�s-�|nܢ<��G�xY�X�m���%O�{v�[�KE倂|`;�;sE�2w��!W1t.a����3�q8����-:ZM�7��c ��vq`BV���x��o/9<�8���������ݥC|7i�$k �tW՟��y���~9 kg|��xPl�Pٛ�����qö�?�����E�ȥ�v�l� ��{�f��4�����_����{'�����Ͽ�v�1$��q�ɿ��w��{��J_����{ފ����0���o)�����{)V �l�������������������_�?�>�Lka�wX���jM�4�o�C�������4Ͱ9-���:��td�$�ێ�M�4�L�34�>�}�bۧiV�\�a�f������䇟�<�:+WX� 8�����-:�渶�W��flq״�ք �ǒ.>��<� �T/�� ��Q��E�|�䁖;�|�/Q��-�����(��e����Ej;�L�L��_&��ޝXT^N�ώ�)Wy}���� 4�37�2H�|só �@�"��Q�#Q�>hH�Y,���.KZw(���m�.��|���$y .2��` acC1pל�Cl"¨�֊`�� ��ż���>Z��ikQ>�aʀ�\�BYh��@^y5!�ɉ8 �y�%�N&8$�ʕ6�XtY{n (Ue)���� (�Α�<܇�� d�B����2Ҫ�9�& t:�f5W9)��#GӰr7����fC~A�%Z����e$� ց ںt�p��nk����� ��ׇ��uK��q��G'r�nŧ7�16MW����2�m8���=�+1` žw�y^^������%~?\�M�� ��2q���{v<>�B��l7:l"]�״���C�pq“�gUzGj����F����3��hm���p݌"L�!���jY��s��/ �/� �1��hV�� è�~p��kё� ���a�9�0c���x����z?(���s����̠*F�g�V�p�-� �����oIoNݗho�= �� \z?oD7�� �D&�N| �+��|[���<��p��t�ՙ�" &G�XǷ����I��e� ~/�?�Ig��4K�'K� �$w��uD�z���;���Jet��Ao9���Q���8$�A\XA�D{��k����zj�ʷ/�Ʌ͍M��A���1�� &�3ɽBK` �a�~ ����bɢ' ��-��,42���zxt�N��k�r��~���� M����یrr�ۆt�+r �Ż-�% �a���E��dj)H��[WY�9��8�n�|�0.J�g[v�A?ܾ(�g�� ɓ����(-R�.[���dXz�̬z���kz$�拤�?��3���ml�U>*�F{�06.�p4�?� �����"8�W��j����_ ��A�0&�>-����Q�h �PA+����1b���^��|ߓ�C�!m�Xc���� cpcU�:H_��T��x?��]�u�J�]2�d�<�}�21Jݹh��!K�բ9C+���ӅK++�}�G8���2��]�� O���+�����"v@ϰ���/F�g������>O@��"��_ �=���L��y��|��B�&�{ߖe�� -|U !�o6l�<קɃk8 ������t�Ԝ���s֗�Cr���2=祼i���3Ԥ����6�<۟g��~z���@�ՅDP��X g�q�x�d�$�e���=��'J�#��JQs�,�Hjhu��#���S3W����iY��T��m5� + + �p�>@cAЉ3y�w�0Վ�δ�S` �DϞȷX�Hs����e8�:3־���OC����^����h�t�ĉ���;�ڽJ��0�f����]�36%� �X��3LG���ݹ���[��3° ��b�������DRG2k�V����"B�(XYxGЅ��� ��OJ�I*��ÜŔ����!� ����FWj� O҂��kR��mt���`��`�ŋAXZ�s O�CMםĆ{��?U(�:�ڻ�/�b�p "�|��>)x�Z2�Z��h.N��󹲵p��"� ,�z7\"�B�]�����s���4�"�>�`S��Ϭ}�$�]�v�&��ښ�����Wa���IϜ#���+�4��D� �Hg��n�ԗ� [��9�.��n;�#&2����>;K�Z�R���s��<�%T~����1(YKzN�H˿5�K��U�?�߇:W���,��u����� + + [��2�ؘ ,U�nED#��/���g�ѳ4^����@v��_YƢ�"���U��Vw�<������}W��$���[��Q??�R`���3 Fl�I�!p����V�Rk��tM�E��d 2v7�f6ڢ�A5f̺� ��Z{F����'ĹV ��@�3�eY� + + ;���W{T/Ԙ�^1�MI��X�EP���_9�,�m�� i��e�%n6����P�Sa����&�E��P������ Y,���37�Z*�zvz�<�i;>� �OU#�-�\t�x1��+̟���h�u>�1��o ��|�D{N;k2�~,1�'�U�vN�ß���!ԡ\x �v��;�QS+ <�(��A����M��� ���lqz�&���B�e*E��6�C����B��\Ʋ���kw��t�� �����(�=f|^���A0(����T���k�. d�­{9�8��{1��:y�ݨ�<,��a����E��in'������j�;��G�����N��] �p����9T$� �;v}!���v���s����blw�ɓ,`qR�p�F[��a-ɝ^y$%�`:�G��cn��몙�_'��L�{=-�F� ���5�2�\�����8�T��t�n�4jb��3�ɹ��VG���:�F=m��2~�p?eFִ�+��S}��B޴�S���q��;���/3y��1 + + Ԋ���1����,0�S��l�r�8ݯj �g�����ԟ��1���2D�X���uf��*~�5�.�B���8-���fn�����=3޷�{��Y'E�t>w�u �Ω�|p2C�f�B9�f>_پ�u���.*˸���퓑�)XQ�.)C&,�ƌ��|4�&����n��*̦ >����u$�? ¸[:N�&��B6�����s�����!��f�����`nr(y ��u���3��� ����2�JC#�B�J$���`*�6.ET�D�^�KK���9��w sG?����%�Fw�/�&� ��i�({V+��W���Z��4����J]g�)�������o�)i6,S�o������wOt㩆)?�qm]{!����S�>��E��]���'w�՞�E,~R�]��"��Ii��\AVy�r;� ]n~� Eц�q���?���rb�g��t�V�f a �I�7�8@�:cu˯�&�r�����-����Up�*H���#b`�qx�9Ƒ��-��5w%���\��q� ���$1���i�7�4�W�ӧ� �C*p./c/^ԇ��k�mx2)��F��Q���"�˳���k� #�i�L�;����Ʊ=:��Z�Ѵ�}X���-y��f��w��Q,��|³w"6*`@�^�`�G�|ʺ&�~�Չ딚]G�a���:2x;/-����(��[��t g� l �Pr ��'0]0�K@2��X�^���G~�g���m#Ƞ�FS)�@ШG�PʪPGu��&�V�ª9��K����A%�~.�t�S\�"pQ�b)���Ry��� �5E �+'���� �_�ŭ�9���.���D~�e�KcD��� ���=g��}! �D�4���l�PS�vp��/v���u��� ���y:8.�R�"���N����x`�1���[0���8����_�l���Дu���iB�yH�(r:�/o3���[LVo����ܤ<�N�� �f�ixsk�M��~�S��b��r��ێ�����PR����Z �QDW�P� �?���,��^��q���n�D�p�qH��ʛF5Ϸ�/�&���]'��+/6���|�?�kqm�#�:ƿ�d�s�Rx�<�PL��DH+��� @Z��ޟ�߹�N��9B�|��-�X>���*����ݿ�ABƝ4PEBֽV �/�)ܗ�Bu)_9"\����q��T�#�V���°��ʚ���{iu�Pr��m��*�Ƥk�k$���=��v5���s-u{*&�N����Q��eL)��.���)X-N����Y^E?p��\��jٕhZ$[�{6��ɑ�zs�PA��Vr�������s*c���'�+��j�3�Z�2���q��\Rli��M�p�-��t� ���� &�Ô�r��+���M����:�X�2"�ʳ�l�� � �����3��O�Qɒ�Y�M{��פ����raGݖ�{�mA������� mu�O+*��o_��%����g���[)Rm%aP��=�qPl\f��Y�rf��@�paV��"�U-�A�|������r�Y�n��+۴F�Z|Nj ��>��gVv��Y�#e�z��-g\�N;��7_�՚�̢�FV��R�h����ñ�X -R�{�7>&�1����̧����&��B�26���������̻�����%����9o�Q�H��O���J2a��:�u������e�{���H�Ƒ�(��&�t ;��ߗ ��Ą�� �ס���.ӣ�ÿa� ��y�H,�{`: �k�$Fr��z�:��9^:��4�*`��a, ����H�hY���V ���9m�����q�:ʏ���1�����v����X�m"�)��c��{ȥ���x�𖾯��=y"P��q��HL��G��DU�Ͱ�� �ZK��?5Gq'. �l�5^?�gY�T���Q�7��K��>Pɉy�a�#��H$���� �\�d'��� .>�\ ���� �(G��%���,h�7�v���ɉ�B�-�F�77� �cQb��ȿ*)i�D�._7�IM��2�=z~ + + ������ޝ��g��E�E���.�Z�X�Yf}�J��% � q�����d;�1}��� �j/?��Z6d=)��L�iKؑR��ck�ܕC֜�nz�9X��Lc>e()��0�Lm��)�� ~��Y/P�# <��g|��XS��[#MS��D�8x!�����.0,��8ҭ�w�/��@���֪�"^{'˂���&��O���� ����#�*E�� /�� ����d�AҴ���b��N0[ڰu��M��y0�t��D)�b��_j��Uݞ*�=^Is�_� ��,�;� g`�c��9.�3I�) Vm\�m�[ ��� P�͢A�4���S~�_��j\=Cm�8+g�**rZ��9g���ݴ��B̆-���� + + + ��&����$��o喘KfԄ�W1 ����#j �cR��K?@I�5�N�@t�*���+Fݏ�}ܹ�dZX�fPco��r<�X/�K˧��^��� C6����>����t��DF�g ����n�%��T�����Bv5714��-QŬG7~Q���<�j�,���轝��N�~@� �rF<���I= ����#[�pIT$����F����s��p�4D� oK,����V:9�\֡#0[ˁ��e��b���Sab��qZ]�eHN�HN�)g�����c�Qנl�X��(�hC�iɹ 2�9��:L�X�ȅ��J�ן�A]M2h)�+�4�YU����.�t�+pz�W��\�x�Xu��c�#�<T�y�Jڭ��ԇ&%�HR O~,z�I��yz-w��A *bW��~��ʤd�k!� ����*� ���ਝ�ݿ@K��K���ʠ`�,�0�r C}��~��TC�6x�:KۅsS�!s+𝼘�b1��e+*�� �9��p��q{l(�o$b��xLU,�:��^O���x�?�J�u?�p��vh�����\�y�;�-�v��|� �`��r=��EO+�>�K���ȩ�� &�F��D��P/���Z�fҦ��r�>{i�l���W�{E9��VnUL�z6Z�I������C�}���C��)���A��B�_&�m�U��L2ތgu��8J�& ��j�����@�a:�7���R4Af���S�YY?�n9Q������� ��"������ �4�$ �U� ZVk��&��Q���]{����6J�-C5tع��5@��*s�R1Ƕd@l���/s�r�uǥlNJ����L5�*�f�6O���jx����k�j��� sb��j���.�� ਬ�}ڣ��g55!�5�����@�Y��b�f>��Sj��Y�5R�� :�K����q%%@ C�B��!w�_[I�{h�' *�S��1$h@؏M�J �d�B�Xh47�ۍu�N�s>��� �+At?H����* ��6G��F��NO�Qc��Q[.���� �Ȅ����B�>����<���ۺim]Kh��u�)�v�:�X$ۋ#��1;H��[���|A�CV�^�  ܫ� �J��;1��&%��t`!�9��"=9��~W�&HQ��i#�FG���c�t��S�[J7���oҊ_d��pr�w��4��pq ����F�z|�����r�� ��E��ɶq��A�'�KJdk�R��&�Y& lt�*N�?�n� ySQӊFT�n9�G��G9� B�ʉSB�$I$Z���E���]��pݧg���+'��͸�����[{`V2:.���T�in�-?�N���'���=��m4�@��)54��s��XCya�.0��� B'����[��Pe��j�>�l��p��wB%㪚�.@��5��u���ё�_��!:3���s��u���Yv�{�H�[���3~7��шzu%Ţ["��7���}k�8���n�������e�����F�-!��& �>'�o}@��\l��)�ܴ푢�"�`��밄h�/a��pl����~��� vϘ�\��=�����iDT{�s{x�&")�3�:�)�of� 1��� W���h&������/ݗnݑ�Ȥz���,�4��d2t�.� �����״��m�15����Z�P��]��J}Jz̘���:kg!fy����s�8� ���jBuu`�b� Y&ޒ��:7ŰƣLsg_B3_�v|�� ��>��d�Ҵ�$Q�92���X��/BL�Kk���U����V\�T�@N\�[Z�S�"�J�X�=cN��pr��L�3���La�-���t�YL:֛��e�ՙ��M�����a��kA���8��0Ƿ��}���F�^��a�E���g|N�Ŷ#R�8���ϩ�\������C �O$���<�����@U���ɘ4��ekjm��9�!d�i�˘[��:;�a9���X��ML�<�a�s�S�$J�H�'�*e����ĭ/c������C �� + + Y� [ �����P(�B�P��v�!��-�u�����oZ��8@��L����=&V�,�Ј���iK��V'��������UM�uZ.m��S �S ��Z2 ^��:��1pY���hKE󰱶>M�5� m��]��+#4P�3���ky�l�{�YQ���q����"dur�b�䦱 =�9��ɹ5�t���y��h�N0�3�UH�� Z��#.>�3���"�2�5�s'\�{��B��gk9 Cv�V�|H�Ɓ�vAG����|�:�v�Fz��M���gm �S�˫�'޲��@fϞ�E�x�p�+�����4��u���Q�2p�0��K>��I.H�r� 󜥃�?�tրn��`�i����[ �&ǧ�,��tSQ0���Zg�P����n����F�z�< SAUU�z��=S�+���Xkعe�f=�p ����}³q����jJ/�!'� 鼛SW �oƴb7�J��P��M�챮�����O�!P�}k�e���V@����L0�Ծ�w}*F��eQi@=Z�#on!�a���n[�!�H{˺��BSf�4�JLC�!�֝�IS<�Zw�*�[r&�Bg����� /�!bg�Y�J�I��5�sƜsƜsƜs��'���4f<<T.Mk(۽, �v;��|# ��3q��*2�_�����a���ޞ�Ҹ��Y������ ����@'��HR !f�����I�p;�Ԃ+�d� 3S�8Čg��O�m��� � %)d�PR��8k�/�9R?T�f�1�e? �T��1� 3&5g�N �����!{8�rɏ��!�P�|Z���C�{��r�X,c1��ہ�K5��뒶[�R�qCq���Y�D�J&�^�}��I���B����ö'��Ց�_���r�<�7�\�"؟��3��3q�z��ʹ��m|)P��$o:d}yk���X���[�cj���5ˤQ�9����t+ �����K�~E�������ݶM����a;b��t>�+�����Y�q��� 9�C���tnY �F4���t�U��`�ωu��^���*z����/�|@�r� �^� �2a3�����$��[>uSnL-[��sd�OW|��"��*���}����TDt��a�s�C��3}���wF����v���o���Бc}���b�Ģ�Ir�(B�.�b��!o�E����z���������������+����T�A�.\(�mF�ע��P�]�x���|��Y��'�Q�\�O10D��%}�h$ȯY{u/vX��`�� ��px�f`N��5+�C\e�(s�9�:�̲�^���4N��$���g�Qh?2!2�b�,���kC}(� R{%m����A��aD�V�����u�V, ���y�Ո��2������" �z����! f�Mk��琅yt����6'��[J��k��:Ė�b�c[����h��Z�s�0��\n��|�<�����4Ң�\n�Y*���l���ynA�*� ���m�V�r�c�*9�wuf����l-[K#��bY�:�P��Uxq,Om.��h�']@����P�g�y�1כ�JT|<����qxȆac)����7(z� �:L@Á���������8��*��Ӈƕ����NdB��\���s�� s2@���`\��,�O_�AV(��.��9�b�!ᨁ瘭�:������7b��<�x�$�dOj�:�.Jxqlg�Na�Zv��6z@�$4?MA=1�cjXm����-m?�S��-��蚚�|6[S ����2њ��Äq �Z�SBɁ�v� ��O!(�+U��mqN�Xx�;|=+�qyV`�]�`��9К)�ސ�'p ���8c�SwRՌ�XɄ� + + �GSˈ=/�r�8�qi�l_�c)K������Q��~����M^��_~���ó���FZ��Vc?���Kg�� ����ꅌ:��j2M�;��'�}4�0a�D���"_�}T��H��2�8D|Q�Q���y�������39lY�%��1js!En����ߧ�a �}��)Xs������B����.�e��?��w�mV9)�U�]�'M��3��O���j�1isdr?�$<@.�p���H��.Mؒ�>%�k����!�����>d| �;,��C0���cׄ�C���� #6p�飣�p����wH����p�d�~�ӿ��/���T�'q�Q4�G"p��}W�0�ok��! �{>�vI�������8w�1��_�::N�*M�*�^]d'}J�"�d-R���ژ��!�wmJ�Qx�n�DT�9������w�����N_<�]�P� 2��J�|/�N���d���ќ�vME�}?�;'�����Ȓ�W9ת���R,�_��ӯ�W�{��Ջl`����Xt�7�p:��@ZB��9��@G�� /V��\���(�w�|�������u[�/�V�/��#C�[I �S�����gY�ྉI�B~�5"$i,L����٧?]�f�;B���W��K�\ KJ���j��豫�6k��D�ϨsNvz:�,̏}�7�wu��cػ����wac�s��_�9&�zm�Xk��e�i����3����H�‘���!W� _�4���k#�K��j��a~&ȝ �ˠ.�ޓ�q��t��`(z�NӔ�Qbp�0�vo�X����l���v��^�{�띀ګi��7�Z\��Id,z��mg6C{;7� -�rĞ�g�v�|����m �xd�~��e�cd.���m��t�h��UJ����. I%!��P�� 2K�Ux ����*z�j�T�w�� ��x�c:��Y#愵�� ��0���F���%&�)L����@��h�������60)���2,���ђ�&�S��S�zɏd��I�vp��e!, + + �����_���_����?���?��?_�������x���������z�:qH��tI�L� �_y��5�`�; U��.f���r.�{���pzG=j� us*�=z����C}�w�f6�_�h��i_ܥ�g=��W�(����S�F/i�L���~L0h�9�~m5|u�` M%�@@�[�m���QH�!��YӒ�/߭��޽� %��=��] �� ���i�f���m�'H\���r���� �e�/Àя�/U�� 7Lץ�aH�(�h`J���]I*��'c]��vh�%U�2�MF�m�?@�v���,[&�')=�M�޾� G8R-��|ur���q���5^��p����9w��o>�����7������ڻY��u�����B׽�� S��b븰R$� �I�vA�H���O!�F��U�Zv��6����tBa`� �(����*��ta��W�d+vC�oR����,��w�����m' e��)" � 3 "�l� �e��1�E���M]�A� ��%;�^�q�=�`�A@����'+~�:S8V��غ��p@/�_�S��G�'*=ա�z4�S|��Y�U�z�C?^�,opO>*�O��. ��h#�,J#0#{�d�jO������^��m�N�{��3���r��aR(p���RK�5R��f� ����zH�Tit�DT)�4���T�����f��:�>��Q�ڱ��N�2�w�m"3>\��띗Wp��̣����ڝ+�D�J*��2 �S��`�M(�*���j=Di��<4,$��m�:gs�a��X���������'e\qCe@4&�kM<� ?�p�6� CGd�l��"�\��Kb��m �h���#�����o?M�H%8�]�������S*��t�]���[lB߁����HE��$+�d� ��������\���@yR�/&} ��Ĕ2�`Fu@8�B0� S8��hXw�zBeq�Z.����a��fٍc�P�'=�^�0DA��O�sj%i܍� q�Fʿ{����[����ֵ?�Vi�6@R#�o��1� ��C ��4���Q��l�Y^6x������-]Ͳ������!X��?j�lH��M�������xq�>04>Q@i�4��s���c��g-�x��Z�֕{�~��_��?�����7��[q�A`�pB� �-�t����e@��,� `�,���������lb�.�aR-=�j�K)����>�|�����/?���/���M�07�❥��՗%}�Ͼzi���Z?+�f�R5���4 �!8y-Xa � i]� "�6G0B΁�_lx�i�� X��ς��k�� #��t{c��]�� �_�����h��5�Z��O;so���:�[���OǸi�Q V!���� �-�4XI��ՠ� �W�bɿ�Y�f1��k��ri���%`��'o)�Tn��`��DܜK>=H������v��Fro�s�IXܜ�,>NV_t��v�U�q&�ȩ��``D~�q��0��B��$p�r��`(�����i�\[��p0i���m�`���� `���g�:���4�%{���o,%����ݸ�0�,��o_I�������ӝ���]�~鯩���r�q$�r��q�p�9*�� + + $ld���y��L~�;�*e-���@��¸;��R�xG����+�K������U(��;��J1&S�h@%��N�3����^�<���p�܈l� �y/i,cx&�@�́�Yb���~(-Q��VG$)�/�4"δ�~#�?�����9y� + + %PK��vk;y��//'�_*��+�r� w*�s��| p*P#)n^��g��zr���������8��l�='������q9�.�[�;����X(�F��E�?K���sm�$:��,���v����������˥xg>n�F`G��X ��>�$Fq�;'@~�0��k�@I��FB�r~k:����wӯ���o��O��O�oO����c�G#ޙ{s��/r�� �Wn��8��p���rY�oY�S�0�Q�=�����q���t��;k~�ugs�PLjFpF��1X@�-�������HJ֦��i��Kܜf�7$���g���|�l�@-l_�~�֙�� �4`X���� H�y��j��d���d\а��"&.M�e��М@����䠶�;/���/���^(��貟�^��Ni���Q"�T�KNƍPX0F���YY�l�k��D�LL��Z6�T�Wl V57�'K&UH�� 4 ���@��D4��/�����|݌[w����J#�h�rn�e�<δ63�Rb]g�c �2/J &ZBO����'?�ů�Nw�O)ҹV�\��� 4�$�Z�]�n|HffO#�o��b��٨^(�Z4�j���un&GLV���?!&��(y��W��ٷ�G�?|�^4qS�[�db�n�ڽ(8��s-u��������<�#�a9քHm�u�rj3+��}~�����<[�c�tX����� �v��`q�Jb��O�m_�+��5lp�@sFh�Cc3�d'�X:��#��åZ5?գ?C�P����<��hb����E�I�4U'J�X>�VK�����y�n�A�`.'w���z�23$�� S�˰� �KIq�����HI}X���a�C����:$�Ky�����꫌T�r�m-UU���C��RcÍ1� �Y�[(�8���V�4�k �$����P� �Jh�\,�YAm�/��p��\j�Y��`7�륞 G�1!���3�bs�zI�����#š��(J'�!(� }�(}�|.@�ڔ"�~���c�{}�P9�~d��u(��,-�'ZK3�ݏpK�F�������)����� J����C��ޯ��ǟ-_�;7r��X��D]F��s����������@��lg�U�2d��L( i��c�x�ҘmI�7������_�~�������oFi�$;LW�S��-P�N �~e|Ѩ�J��\uas��  L:Gz�f\������K�Fx� G�y�P��獐�D��V�S<�=���X%w�ƨ��^�Ǽ���FR�2��*���]WT` [ܱ��>�y1��� �O���u�l���ت~�x@wHh�Ci`� ['3��u�>H�����>�Fw5j� ��0O9�,Ԝ��΄ 5l��R �֟��RkkWdG�7�=�@öv���yZ�E�4V���h��kc'�_I���Fi}���د �4�%�*�' ��?��E� J�"�(D=Vh��l�!��d(OD�==q7.��* ���$Xch����%h��L���ҬYn�l��'�f c�Jgzx��(�<���$�LlQ/[��e4*��pX����Li�0~rK*^ؿv&)N5�H�(" @C�v3� \�؃9�]L����!������K��y��#ŵ��(��G�]8>������w2@c�N�צL��*k �wuP��;6���i���g�Y�"��Z�L��s���m(�>U�ʂ�yА���Y��Qg��{�Рz�� �¢�9M��+u���ԧ�b 66���V�G%�B�=y���X�)�J�( .4�T�l"��T��^�j�m?DQ�f �FD����4��L�c�`H.%�e=��p�r�50����$�<�u��c�v!O���¿˘R�Mo�)٣�w'�^=g4$�BJ�ڨ�B$��2K�X?e���w�s=��� C!ҝ;�_�*գ���Kv�� �2��� I�OHL[Fm� F����hZ�N}. + + <�Q�����Va�$bӪT!� #}纈A;%/����0?`m Ol�$Yt)��k���'O&�߶�NG����^@^Z�w�S��1ơ��ڡLH����'�e^T= ���L�L�+�7�H��7a����8NBA �si�r&bQ�k4�Vvd� �� )�ܰ��bwF����㰖���[鹞� Q��,���v��𯗽�,\�zR���ד�< ��E�M۠l��:1�������#�=���D�s����ȳ���J�YZWP�e�~hh>�ee(��10���M���L�����.�E05o{�P��1� �&�SԈ&b�\5 ��@$K��Bۈ�xG�Y��!n�ʣ��y����?N�x/��+\rf���ցO>�|&�/r�fy��>1��2o���E���r �#-?&�?V�R�m�3��1AW���yD����i2q�8 �?������n��ɟG��Q� �v�r��4��09ߩ�.��i��:vX�͟�K�����Da���}�]I`�A#1�w��������8&���F0Z��Li���ܿ|c�b�]�D���T��d[�uI��ry��[4��$����P�x)(�־@������}/=K���*�T\��I�2>e�6JE�<���DvF�u����_�b*?���TM�xxTʧ.��U���2�T�����z��G���x8+Bռ���;��l{�k/*�<��l�v:TP/6�<x��F���� p��%�s��'o�r�����;�I[�Y��6��>ٲ{��n�� ���0�����8��/b���jOkM*~EQ/mԲ4��ؒӼo (��D�,�6=.�t��-�f�$�I��9A��Of����U�� �Q�*T\0�{��-t�o���0T\� +

5�� ������\a��a��<���_���i�zv^�KYؕ���|R�9��'�N,r1�L���~3?������������?����U�O���^�����`4 ���n����4N��m~D?�Mj�� ��4�� ��q1���QC� m��\#�� ��D�ҍ�J޺���.�vKI�y��h��iN�9�b ��t#fB��M�R��e���wb&���R~� �؃��<�1�<��•gX��?�vV^���t���~��(x��E���w1���m��e��D����U��g4&��A]��z>������޽��w�����qN�z"4�%��w�����&d��=��J� ���r:J�Α�65��?�u�D�0mv �i��4�O+ejF�Q3� ��ԌN�bt�!��N1:Bbt5����ct���@)de(k�@� 4��f]WLPi��VLPYd�����XdC� LMLP�b�-X&@���51:��� �i&��ydQ�չ��.~���Y���H'�����w�1|��e>u�u%a^L�m����F=��2�`5��i��N�w��ԑ�J �A��nC���S��W��u��zf�w;��~uO��{XhVtZ;j����W]J��6��u��巺���~5��z���ي��I���{/'�Qe��El�^N�;2�� �^r��b�*�W��/����� ����Á�)_�}ײ��?�/�r1,_��&�������SB�O���2$�� �F�<�������g���*}��mPJa���/�rh�9hF:�0� ͣG x�6��+%��4�y�Z�J��6���_<ۓy۞����8����7,�H' ���]��=k����������ay�}X5���`��vR�Gs�2�t�`9�ɠ+(���Em�r���:7���f쌊��G�����?�M��rB�D#������4)a�a�F�,6; ���� + Qy���\��P����)B�]�\1s�뀰̏�n�������F��q���2mD٩�(I���'ϭ|d{���F\���3���>̪$LVUǝc���K{��l��7M���Itܺ�9!����/6*�Q�ǼK�����.ݯ��w�Z��0���<+��!�q�T��B����v\�W�����̧��s�a$�q��r�?��Xgm�h�֞kO���|�Y��Lz�ȟ�=���!�q�����[�=]͔[h�*�#��b۵���1���&O���{�A���&AB�� H0����I1��O�#��G����i8/#i�:"�7#v@F��t�@�:K�k��JX�B7oКQ�Z4�9低&�c"F^�h I��� bm�@x�&�霌{���l�F�U�ը�q�BÊ�Js����-���nW2DAA�� T� ��~���2+DLH��� �6�e�M���!2 ����[ڹ�O���P �'d=��J��w4L3Æ�WNB�� ���7T �!(J��=�)!��� / -�WB�]�t�ڗe�q`�D�?�m��:��Z�.>���M2ܡ`��Q3*�ڍ�}�&���Q����d���5t:�d�H���F"JC=O+d���Giv���1T�=5��X)���a�W�Y�n��>�S��%�w�F���ݏ��:]�l�[�@�EE��m�u-��ɱ���C�u�DP$:��Bh]��s� .��W�92����E�865�o���ӡ����F�0Ahh8MYCTQkI.��>V��|���v ��D�N����! ً`�ѥ}�Y����#GVU�|�z��َ���]�x`I�ܨ~�EDa�P�T���w -&��;�1� DrH���댇���+�ctK�ǡ8ݽy���za 47�>ZU&��İ��fSj�^�o�_�·6ict��눡h��S#R�9�|`#J��^6��`�S�EE$�n�-�)�Qwb� ^��6���6 d�E�w9BE�������<|��Sg�g��6m,do���=w#4��]� �� l� ľB���Pܒɼ���6֑vY��r�m��@�ڥ�g��o9�ư����ܚr7���|� ���q(��p�����Q�R ����J �_�<��n\� ����ϳ^N�Œ����cS2�m8��]��M���.�z��?�������{}'�IE��f��� �qwo]õ|����@2�BB�HH�G�a�j`>F`�}��a�R:M��;_��g�:��׷(p�q^b���̈́���%g�ѽ`^.c‹V7�q�.�3c�C'Qt���e �VK �Cpf��v�e��-c�+�s��5(���eN��A���T1}�p8bs�U��a�����<e��W�9�O�\����+WH��,��*�q��NȳE)�L�����Ԥs�sW_F�R�.�/���r�v�����nZ%9�Ԝ��7b�G����$��p8�W����JQ��%��3n{�M�o��3_�s������eI_�r޴7`�@���̧��F���.�!Zژ�}��"�z��$N��Q V���̵���N�"����ֳ�ᓶo��}�c���'��}���u/��9���0.`_�K�1`L'7�c�*'�8Xv�O���fk��QKk�k�T�%&��@���ü��q/��†r+}�:K� �P�J�v�ZP��I��M�m��8�l�hYp�ؠ�O�1��:F�aAq�(���y^W�F�r�8HJN����M�" ��b����,2#��^��(E�r���0yO�d")ݟs�_%�05�=��� ����-�KU"Z1��H�&{��'��i�!�䓎}�r-q0����� ��s�<.D�-�Wۮ��� ��)��̓ ��t�f�|o��D� ǂ��s���yK#��QH��Q�(�%��� ��8+�x�����4ǣQ�3��MUN���7(�&�0b�#����T�p�m]��ʅ����~�wz�/��S��҂w�kcob$�` ��He�5�g���3�����"}I�`H��*�*I� ��ۉ�����m~��hl�Bkc����{�Kw��.�}�6A�dK���6]��6�� ��,( fK�ە� �` �Z�F����̛���ֵ�ǀc�T�m��퇼͛Z��S�:G�՟E |C���&%Q��T�5��u܈��$�f�����,q U`� �˧farI + + <��,l���Ч�Pts�������R{GNp6CZ��z\T@���ة��-���cjU���8P��䀹*�� ��ٷ� �h l�)��.=*��&x���]��ݦ�`�+�������'琈Q� I���k��j�(Rw�T;�}�+8�J����C�t )�7����}��ں�����RO��F�4��%�� V-)y�Ȑ�3���� ��'�X�B L��_x&�C���x&Xs��F��}8�-6�]��� s�S㤋ϒlW��\�<����z��hh[�3��]�A(x �ےc|������%Q��.}���R�_�Z1����j��NR/��4ˉ(�~y�k����&��T�$���ɲ��&��RL�q2iO*�l&6�3=V諒�4�I2e�Q!��H���!�xI�=�D}K�鶦(�s�M�0̒�~�_�n��"E�^_[6 d��g�WFO�> ��g�€���m���f�&P�(x]/���<���a�+�C��K�=,���0>��3��^��������x���������8~�y|z�S�]���3�=�7�W�nÔ���F'����&�jtt�}�Y�z(��}��IE���p6���{we<���T��b~^ �t݁���܏��:�6b���2�Q�V~S��c�m��Ȁ$�Ȝ6��k�������V����D"I(�$�{quҧ��9���mTA���>+ u+��$��z\"ѳ�F�L ����E�⇉ �y�(��)�q��N& ��4�<�Tw�)B�K|@Z���/���T@��;J��Ln�[���ؾ6 �Ǔ�d�����a�Ͽ�&�Pb���WL�B;!V� ���6�.c��F���KwM�U� ���N��Y�4H6�v.͐I��N.�)��{�u�Tmq���*�����)1���^e�LZFˌA���d�5 B5���tj�6A���y���V���T��2���j�mbczx�������7ON���W/�W�����0�� ���;:�5C.��� �j7$�� ]C�|�H���v@<�8��}�������v9-�Z�}�����˕vam��x������!���Y���:y:zq6z��O����G'OG�.��?%�r��"I�� 9��v��5���hџ�B�ŗ��o_�u���)�t�2�f�j�y6 �= ��P��`{�}! �QZU;w��* (�Y��C< ���k4�4�h�Q�# Y 6��?ŏ>h. ڨ���j��G�6�+鼩C�Z���Ÿ�ӕ7��Vw+5��c /}^�����7�̀���U���yM)�"�wq�~@�{i�c� �rwAvx��X9������h��}o�r���{��B�;�r�����}����ɡ�'F�@�"���h��G�� ��żU��\ˢS� ��� ��ĭM���a0��p��������� ���� �r4�� ��B�ZU�Kf)5EZr�I]�i��PR�Y)C��Ъ���,�0���� *�� yi��npmב6�~��iM��N��T�_���� ��pkq��n�����좵Rc�ܭ���a{�Q]]Z��}���ۀ��f��NZ���U�݃��H%��G���S �3vv�f:�s��:w��D��V%�� �1,��b���/�r�jbF�4+�*����X�Y�Mu�B�TMU�de8����f�-w �o*��y/O�yY��+�D�Y��AUFgj�b�N\d ��YF�x��*4eN���Mb*�K�x! ��.b��00z�sYZ �Z�Z��j:��HK`��T�\��QpY�Q�͇��TA�Bnp�,p"��NU�J ^s-*����+O�to֊ĥۡZ/&Op�~�6yj�P��N��FѨT^D��&�ض�Q� �fM����/ժ\�4�Q4�zC��q �Q+ޯ7�{a��m ha�q�hNa+F�bsr���_. + + ^]�ݜ���������L2�bӹ�sW��n�M��,fr�݅�Y�Q �k[5Vӊռ -���V� V��vf��U-���&���(_O���Ü�{�u<������ �MH8����(�"I0�BN<aw��2�@�CL��~Ij�N]�<Ș1` z.4! 1ܯ�����T!}Y�'����Y���Tt_0ڿa��>����^�:3S ��Us��ϗ�������K�yK�C�v>��(᳍�R�F^�H��� �W���@�ĄmU)���U�~ߙ^ޝx�S4�+��J������E�����M|!�+�J�!� �V�N�Y7�%zd�f6�O����~diF/���b������K�-8�.�ҏM�����s �D�(������.d�;����r��I��9w� L�՗ҟͭ�5SoJ��� �E���S�g�U�mij8T���*Sv�>�*U�P�D���i� �ɣ����*Y _�X5�rA&Q�]�9���>w=���d�"[�U�PEr��_����w��$ 1Zds������ ���h� �2y�k#��i��l�q��k����g�Js�%6�C�;6�7�kNGE/sV��[l�on��\p��һ�Ӹ��~8�ˠy'�0� �r�H�J��1OS�c��\�)��E���Gʼn��:J�Eg�CK�f�M�ܗ,���e���q">� !e�����['��"Ckaޮ��8�8=���6�wӒ�����Ő�&��e�#�8�CB��D܌����e�J��{�ȗ~��7�eJkHkjxJؽ%NJ$#�W#B� �����tj����}�`�s@ #��J�/�_�fc7�/�(�3�����Ek�{��n����kW��;h *>�2):V��ǖ?3� �9����qq��b�yL���|�����?�����?M����0\y�|�,�< x��bS�N�;�Lx~�6�-�eE��-�1bqT� �4RY;����2��eӜ?��g�qz�l���!�z; F�uS�v�ʝ���V�s���xjvr,�֚ A7}���<�k���1* �d��3�R��4>��I�S���ij��cp1� ���/A}��o�6b�\}�_�q�t� + + ݥ�j �Dւ�h�Pv����K��Q�PA��Uϓ$s� ��~\=�!\��n���+���ID��VF��R`����"�q�Q�X�.�bܼ�J�2e Cx6�W׌�6�O���i �`9y� $�G�Y<�D(�G;.�q�z!����`�.��Q� �@!�9d���6��;���e/����$ �:�ϐ!Ḻ��]D�1Q����I�!d�P"�M�Y��!��̳��p�i�ph�b��;�RS�:%��D�RȰ8g�/4�%`���`I[%��"ⷋ5ƴv�m����f�h��`�Y$�$Il�<>�b�!X �;�,6� ]ĩq�1!�[g����q0�EX����C��]�;����p l�lm&\a���]$�1�O#n� #g%�� @�qD?����������+w���ߋ{�Ã��_��'������������J�y�`a� 9�*?Ѵ݃�ڡs��f�wEca.e{N!lai:�a�y���&*uGE�=����� [�[��1O�VxꙌ(qHii�T�K������˯��w�U϶��?�w�)�|_�vI����l� �^�����I0U��;8V��3�P ��8�l��W�B���S��5 %�X�,�E(5 h��1|tAS!����W�V�������'���-11�<��>C���_��<���v�uɮO~�&F��t������;I���B7���;ŵP\L��� �a��í��烳݋;�o� ο+�O�?�˽��/^T�j�_�._>��Ź I)+��w3�� �_�n�Y���q^~��pfBɫ��de���C)��ԩ:i ǥ *?��:�����ޝ� ���a������;�t]E���绷+RWm)�v�(�y5ۭ�ms���qb�bv�M�cXb���}5���)��"��6U� R��3�ɜ��lN5�ʊݛ��Yѐ ����4(,���,Y1%'�#l�� �L����Qc��yf��S�P̅��A�M��J.�D1��@�-�� B�$�W�p͉߾s�~>�vÝ��7?�w�_{��n��q����t�z˷sA`z�ny�yN��q!�)�-/a�?�R�M{�"T4��X � �'��v�8�a$� C͖��S��$�+W� ��I*0E���A@��u�����Q�K7��v������w;�v�_�ܗ�|����r�O>������4�t����!-:��^�`�a�,���K���d�u�G���L��85"�x>!��p�""��$A�,��#mBtb��L�m�����~�o:�u7�V���{=Ko���� ����tZ�� ���N_A$�� ��$��D����8�d;iM����D��P ���P�#3T^�UZ.Q�RI��K�*�Hr{��ABw�4��@& Rd��Da͸� D�����w�� np�s7�����ΤX�t���q�V�����o;q-���kf)Fx��*� ���6�JQ���̊��r �oYy���� �8���b�EJ�u���܊` �B�`�#�B#��P�*�L�o$�m��N�����W��ҵ>��V��(�V�v.H0�b݈K���v� y���,Z�kY�BH�� *����J�gf ���&Iˍ�h��KK�Fm�� ���%l���� N\{���]�m���M߯��K�u�+_���53�V^4�F[u[B8��GE�������m)� >1<��+ ����cD��=��1T���oSX�)F�aA�) k�k�@$V�u1��:�_�n7��Y�e�|�}���޻A�����a��N�J�r�X��X� Z��V�cV[�=pC�T�HD���Q� U�� "�(� )Vِ�C���˰��b�D�VTiz})�2ζ?��cW�����?�o�̖�z�7��w����A�*�ґC����"��$k����e���* ŝ"q�{!1JU����*�w�c����b"����8�C��a ��� �v�'m�?�[Y�����']#�t�;7��ȏ>����ް�� n��A5�1��,%�J!4i�R��QB�:Ѯ�֌���-�|Xf���a�/�X �;0H*Vnc����!kj,!:�P3�\x:]4��e�n7��:�>�N#���͡_��U7��b�8v�����e�xYJ�I�$A����e�3%1�������N"܀IB�T��Kb�!�eFbe,�$�Lk{]�v����(�Ϲ�Y��>n���H�z��b��4�����8i�*D��DIn�C��[�՘�Q�AҒr Lt�-K͙�Z`b��2"�j|��N�Em=_���7n�w��_{��H��l��.sE>����SP�!1)�&pҝ,�LNy4�w*9*����,Q�4b�jtSc9-���?%#E��sY� �N�������)D� )J�H�T�HC�7��������<�{�q�â���g�rXt�ݬ�/~˗C��Y׵w���t��5;~��o�JGC���`UexcT��(D�g��q*�-�����Լ9Jfa�� ڤ�'���!!e&z�~nJ%����0BZr�lB��$I����$۸���b���9�� �����vQe��s�V[�ə��\��#қ�4:�ò9�YD/p�%CyE�@�{��:^A#2�� �^��YW⩊RkJ_��P!����P�A߭���〞$re�1SL#�c,G��@�hi��4'{������m�����E-���c��Ľ�D��~��Ņ���]�Fԇ��1X!ÿ�a`�K��>HH�󓄴��k����* Њ�$I F� ��o������^\���t:��V� + + )��}�������<����Y��_����������2 ���4$�)7Ê&�%@̍��T1�@@�$&�F��������ˡ{��w[��N����Ɖ��\�K���O�ˊ��^6T�%�S� "ƒ9"�̤�~f{���H� ��J6�;�J�g(�,I��F��Rkx���)Wn�I0�(��R)BƈZ���e�틬q��Ͳ������O��E�;w��bwp���V[1r|S%�4L_RQ��BI�o5�+%rm�6#1�n���A��� �<��@� d�`�bD�:���"��)� r�l�Kvz���\o���Ň?�������ҵ���ȏ��N�S�.��l,Q���ZҊa��8�C�`׊���A���2R���.�VR�����K��E��NV�nJ#-ERB ��C�`��#S�����n�w��`��?�����^v��z�����im��[ߧ<�a%)��㉨�0*�J�u�yY \�~�� ��J��ρ*���Ӛ0�� sN���Ò� |������1��q��%�}{���?}V����*?]z�����W����r�}KvZd#J>Q:^���%������н��������I׌%$�Է�qӌ=u'�t&��`�Ǔvz�Q�`��c�8ؘ�)b3!#8ݙ��r����y�U����~�w��u(�= Iw�찗�aqHB"���C9D��U��ܦ�!ϐ OH���z�s� �h�DK���@���{���$o��H@�)����a^��]T�ZQ�!�cf��� y�*�w��I���AL����ߨh9 �{���L���y@�4$�:���f!d�'8#;��)J{�KȜڸ��h������ �i��!� �q� } KN`v��1��ᩩ�k�1�G�Ӄ|P~�K$����`#9��`�1�8�a�K܌'8Z��;�8���~�I�a�l�wnS[� ~���sQ_��q;F���Ƈ��I��,���]�lUr*[�p*ap�_CM�, �}*`v�qx�U��aԁe#A܍�9c��ߔ�ᮨ�������n�d�a?n��3���?$��]���HS���z ��[h*et4�0Q �P% �̠ ����!���^hAړe�N@qWnE=*OQh�Y���'���gg�hg67�4q���r5����#��ay��ސ��c�v6�\��).�j�.�C0�1�z�����Q�ʉ7\'Fҧ�$�Y��� 6���&O�wtУ�)���6��k�(aʙ� Qˏ�����p� �ݨ��{x� 9�Χ�)��G� ��*#�Fa\ �*�]X��wz�*��������%X��&��id/��U>q<� �lƈ��!d:����(�j�N��!��(!��w�v�>u]�h��GG���S��37�F��1�%L9S�D�f��O + + K4 + + � �O��9�r������d�-_U�ND���Kf�u�^Έ�����t���{��W���)W��<.{~��� \_q��9�w�*�gM>{"�Gh�8��hk7`e���vs��Ԣ��p�@,X�A�G!��5 x���,�ppu�C�k��!J,����0�͐���an��u��ϰ��u� �p�8�6�w��݀b��g�i̺�Z���}L�H��H4�DRYk۵Pc�`H�@�#�P���뤸�C�a��'PB�B���a��/�4�����Č:�Y-Oꨨ}U��"�\(����=�qFz�P�-rv$�i;�@��E��+�V�JZ"�]�u��0Gŀ[�~�C+c�W����Y����Dn��(��6`m2��az<�����,�y1���X �D[xvx���#��������y�U�#H�M~�w�`�r�K�y�D��a0�^�dC}؏�"�����̴@�z%y N�9���ǀ^ �'n�x�� [�E�x=�ְ0���M1��$gœh��i����W��Y�Pꐒeɭ3m{�q��Ђֻ])�g�՗��](I[ �N�� .㬺&~ ?����zP�7��1>[�|?S&^ȴ �I;3=4�Q��E9յ��hd�"N��^dd�86����Ϯ��0U + + �z���� ���j ��lVR�Yw���!���ƥ�F�v�f ��~X+ Ѳ�}�]Yj (Ώ�'�>�������_m�ɞ$$�w�P���o:�7���R?T߸���' + + <�J�*�@X�{�Y��/rB�&U�j�܈{�G��A�`�ߙ���w $8S��VH�Dȓ+$I�����!AH��t�ɩ�VyEݲ�� �m3(Q�"�4i�?Z�y;�M��8v����P8g�{��擬(�Ꮚ��)��#=(��U�0�R (�uU��1Y4X���l�nz�.z�." M �?O)��Y\��qQ��~~������-9S�M��l/m�}�����Nxwes����i���W��O��n�5�]�b(��y����pˁ_q�g���:�����d�拴鼀j��}cH�?l���AA�J�xA�j�)�ؠ�4���Ҽ���Q�ӫ@Ԫd��i�ą�?�" u�q]��U� 0ǐI�\*�ݧC�g �7�َJ�9�_}�m~��"� �B1r�dk�L���nQ$�2h�p��k � 9v�If�b��V����ޔ_�.����R �{)�#�>���mYD��`�<���3�Z�$/��-���Rz5�*�ח��s /ǟ��UH������ ��2��0/�G n%!7`�k۴� *'�쑁�+~댹��[��n�X��T�u$�����K�1J|m�1�z�sjum��嚈����7���ηPI�U��ݞ���s Tn0��)�8��'��;#� y�&\�JN淓b�K���qR�C�5YQG��U]Z� ��h"�,g�!�� A�$N�*���C<��{���@�X+�L���I�� + + + ��,�D;� 6�w-k$�7۠�y- Ah�OrN���s�ԧ�����O?�)�M��Cz�H��6�i��LO���c���JEQ�(CUP���hI��䝥++�?&�DT�Aj����"G>�R�S�"VD��"��t�R{�2an.��\�^�yԠ�A�� wC�Y#�W~�BO,2�<��y6bz�ۨ��T �-�b '�c����&Ɏ5q�$����Pǯ� �I:ᖭ �a�l���_7K0鐬�2(p+�h)Kk65{��R�J���i�~���~=*�q���q�,�Bh�N'����qb� e%�8����_�gH���a�B��+�k��?�0�2z�����[�)�����qڅ�V`#s�����n(0<4��/m-����8���^$Ŗ����-��8䨑�x��i!�hB�ϝ���������yJ����Q"=`K9���=T�1T$�q��L%=wQ �H�z��.Y������<�� ��*(�lx�0@�|d#� }�;�ߦ��r�K�����EU!j#cF��9�8����?��v�%C_'��9�'���ٟN˿ܤ�,�ImP){�Xnϻho�_VW��v(��.�έ�m��8�%��ZXS��ŏ���d,iګ8��5?�����6�Q��t�9FZ���m�� /s�9�m�) �f����X������� J�&����+jh3G{)t�9B�S��@�1����0e� :��>� $��J�ϱ3�:�P����^�Ԗ�1�~;FR}� �Ij��cˤ�%� 9'h����0�����zT DE�D�7g(�����)H�1Uy���������� �69vwY�y���*j+�&M كU֨\pmC��Sкr(r�(�<-���"�_�t�������F�L)BaŸs���l�KRQ�R��3�_^B&-0U5�PD�A8�� �B�$�4�v� I$�����t������Er��V쮾�f0\Bfi��"���,�- X7V��j�� ��U�v%A�:e[j� ��w�����ZCn5�����.S�I�2��Q�Ki��UI\�b��*�9x/))p���x}���M �mY�s\�h��U�ڇ��B���ʸ���-i� �S�f� � Kt�"�� �6T���2�mA�t�8�x� ~5�;�L�;8� ��v�����D�U�� 6ڸ� ���Z�sR���wp�)�-l,d������#���Ӵ�Ti�QU"�F�L�ND��܊� �Z{�W�ذ�*h�X�s�ɫ����~�˖OX�rݏ�k�k�]JU|� ������ͧ^}������F�<��� =;���~�PQs��'H�x�����\#���U֐�9\>�|���a���Է?��p!x�U���T��2����q3�j8W��A���f��ԙ�D��5����� Q��+���r]%��m �e5i;�g�bB "doV*�{#��,z}��e6��1��{�t^��q'�-ظ4 �+f��r��*��v��P�2{�Yb�����`������%3�^�F�� Z*b&o�-rk.6�!�� �>�E�� 9��bk�ۆƺ�~f�pE ����%;�v�@�2��!�w�ПK����)��� &j�,c��� i�X &��A��RIe;4*��Ь�C�(L�A`�B6;[�q1T�@��,-Fμ����UtP&����@��f����o�m{#��[��j0O-u�j3x�Vt��ҝ�C��䒔���5#�DQ����B�$+�'o��k�� ���H*�fuJ�͇���٩7��������w������x"$M�?�~ ��I3Nfx +�}@3p��U�b�s���?P�/B�h���~Dsn�����{W$u. ��F��t�j��%�*��aXsY�K-w�@Eu�?H���8�n�c��$7�>9����q�4�U��_h�~��߅�吲 z)���@?�@/A�c7;�����ih@i�'�[�?CjG��� ��"�N@�1ć��Q=�����76.�{4q,�C%G:R�r{M�CS5hU��~9$x�\��2����9��G,��er��3M�CG�~D2,����OSH�T+ ĶQ��֛�����_���Dߋ�Yŵ��=��vv�D � a���fJ���R�pc{�=%�m6����Ia�\T崲���c?�T���F�ᦝ͒r6�MC#�{�ަ,� ݏ�s��xw} Yl3��?�e��#�|���yo!)$DUu+�P�����:��GLqe} �D<�xw���OX.����}����Q2��6��v�r�^�3K��8����Njh:�ΫXY0����. ��8gUY8y�� + + r�n��r>gJ����c�`�;�����1��h?��M ���:�ku�������������X�T�m�?���AF�5e$WO�T�fL�1M�M4pM�,s��L�<��<j� ��8���c�( J�K�&��l�3�Rjf��{�d��OM(�L���(4��':u�}M/O���ןY�5z+ǥ�9^���w��ddl⻈������}*:ͅ8̶LXu�s�G~������������R�'�)��E���G��܏w�K��kB�1�����H����� �� 0\�0}�w�(SjTG �E;T���,3�93ߕg8�:S���A696��w>dc^G�O9v���K��;���h"�(���Mјy�70ޝ�!�D<^��k� + + ��=�>N&�X�'"ljmn�e�V7D�4jL�ܧ�呟��r(e7ϔ�b�#8� y*��*T K91��3(T��_/L��X ������7�2vY*�򜸴�l�����$S@&�4 rLY^��V0���򯳩���~�+@^��7D����I������&��X������I+a�����]��RR����#-���H;|/���H� _̠ҝ�'T=�>��r�:ީ}��ZY��s1)�m]�^�̲j�e�8�G�;���R��/���t^����'{�)��x(asfk̡�ħ���t��K����.��]Ɔ�qp����_��_.��[c��} o���*����E��c�+~g��)ŝ�������T}o��3[P��Ab�dB�Z�f$�@����B2�����W������3�}�qK�Y�i�@��ط�8�9U�����ӎ3E �j����ʣ;�$���>�e/?�?�%S�CwBM�%��=;�� 0�� j ��'��*+� �E���� S�AwCM���e�����`�;��3��/�� 7)����f��e�,S��-����{֞p�@\q������P��p�����:@X��Q��v�� 3H����RJX4�&{6W��u<����K*zK�_�(GW^���Av"��Zi�EhSI��A�!��P\L!��3U�(jKĂb��4�;�I��{�3�_ ��`�KV�Bx �lOw;' �)���xؗR]�F��G‘x)��q{:��L�����*|�q�������ę���|}������/�����/,��u^��u����p�ED0�v�d�������l��?��'> �����`��j�) 3[T�{�ƀ��Ð���ӆ���U�R ���g )iE��N�ک/���a��*��wW�w �3&J�����xI �<T� s�w{ � ���V�iE��6L����nMz�B+�܋c&�/c+e��Z�2ޭ�nH�K���8{���T�:�E�]g�~gc�*�m(�K�Z�h� ��<�-6�T��!q;>� NvH�k�v���F;�*)�;���� ek��ʕH��@��Ub-!Sot�a��7��$�Ĭ�a*�-���Sk ��������#���&���ب䰘u�k"�2��k��z+W���� TO��%7���$v��v�V��� '�}Kq�21��{��Y� \��r ӎ�,��.���^����a��^��1� �%���7�U�� �8�~0���`7��J���b�>Ӳ�*��>$3�Q'����&�%�p:8/�Y �l%*�ڠ˗�w-}ZDuˣe H�}��� � _�賕���u�i��P��'��AfZ��Ák���Я�J ��I��4]�5��� [R�����]:�*�����k<��$�X'q��{�P���F��s )�;���`W�ӷn + + <���}Y,`�Fk� ����*�#���eS�8%���Tf�r�t���4 &�,�� {���?�ͬI��������F�cId�{wY��p�N����.�� ƾ_!�$@2�8Fʯ��S�$.�C�"D�L�i>h*M��Zq��>������gO���L�I�� �Ρ�d _ϟ�g�����4�W�U�y5�rm5����w�*�{� ���9��� ]��� U�Э�NU���_���q�$� tU�A@����hT�)�%R�D �W�[����q�P�ER���$@_u��S*��kɿoXJBƙS�X��o�c�;�=C��6iI�G UB^�����m���hi�F8v02��@Q�ud�)�h�s|" ���c�9��&��Il�"~������Z&���yT��p��=?/��Ǣ܂�9��qޚ9��)_�d+{��9 ��g�(�_w�꾛���w�� .`J��9����4�L��Ǿ888|{�!(J����k����!��P� |���)�y;E7���䋾;;l�7�I{ �fF���@�N`�D� g��S��V�v�_�߹a5��sFp�ڀ��A{o܃����1� ��nM�,u�a)Z'��jO5���h�vm^����XDxWx� JI���&� �}�ԫ��$��p1� ��S4��F��®�.�F[��_�#Ɨ�<�`���M�F22�Q1k�i�i�*�?l��C���8���i ���Š��9`$Y1�T���1}GS��(�����xZ��1�����8X�����&� _�?���`.� �HJ���;!�y�$ʐ�C�~O!F��<��,[�E�� �8�=��ȭx���?;\��ͶT ;�+�O��I U]�H���F�\i�;���������?����W����6:�&1HP$��?�}& I6d7$0� ����G��BZ������������ ���G�޵��w�����H�$$X���0�������w�!v=�ne�#�$�����v�+�epl��RE$ U$Ē"C�D�b�@B*$PĔ�Y ÊlgcCL ��!k�.��nNC���a�T�ʸ��ՊB�wF�Ē�U>�G|�C��Ѻ�T\ε�����h.�������|�5����j>qƅf���]�R$�q��ua� �T�������A�z���kk���B��s$�I3=E��us��PG�?�����KIc��!pK&K���n��o�rv���r%Jp��j��UË��}�a�w�V��0*�g���…�9� Hgy /e՟6:�֋W�f�)��Le�b�n��sV3��(���_�Z�R��uOV� e��'F[F�ܮ�r5�M��X��!Ylgk�a%��:��ᚑ�9 o��5 fA�͡��$��� �ul��:�#D1��`L�J�l�=3/�������� N��U���*�@q(G�u�����&m$�� E&x٫�Z?�6[P���Q�͔d/Ji�N���sl0/��Ԗ}�B*��ˎ��"�T�[mڲ�Og)g�1����iI�'83ki�s����f�z�!�R�Π�g��*%4��qO��^WZ���V�.�ߏ��:^^���T2-�[�:��^W��[�*�a��S�R��������L�A:b�32a�`��(�4�seR�Vo ������s��')\�k�_])V�=|n�sZ�6Ā N�ɨ��,Y�>�YB6�A�#�%(�2����$q����� �..��F1�SU�բ2��r�L���F��!� g�b@�3��#3JTf)��^� =)��m�Wh�)�. %�]U�� w�A�1�ʋ�;)��C� �&C̡�˔�%} v��Ȧ��!��1�@8L�QG0v�� D/H фJlBduW�fb��OC�A�OM���}$"˄�XDE%�b�n���D��`Ej�OR� u$0�S��A7w��s(�H��?�Ỡ� �>��!����AR�IE�*��E+�|���d ����Y&��� v�!�gI�\���e� )U-Tm���"��R��uj�.?+4����Q����lt{^���?����݊�z�(1-�N�.[��e���b�S�m��9y��]7ӷغ��.�9�Z����?��To�b�L�*�d=!Q8w��Vv2�-�Wp�J4�[�ۊ"��Ӕ���,� !�Wv[M/4���;n-CV;�Zq=��?.YQT���í���������碣�ϭP5j�0���CZeCV c*� i�2L���ɿ��8�Q6t�FO��� @7�CW�8������D��O��<�+Smnsb�P�7�kH�A��@�m���!3�J@�g�Q���<=��S�~L�犚uy#��x ����=KTF���VG�lg�pȞsS�g>�(����(�L n��gۭ_�.�03�7��K�d�T�E�ey�G�X��Vuj�u���rU�Y�@�nkdD��U �������n��U=7�����U��;��8 + + ���BZ��F8}��������b84T��&8�n@F�#j�ch+,��H ����M���r�$ cWFFF���}O"4hi�-�JL���+��m���l�>�� ^|�w�A���`"!�PQXII % ��|�GҰ�*p؋sA��@�� UUg0����$��1�,8|���u'P�G�����M����=0�J����� ����������n�2��UN2֘��g���hea���byJ^���kӕ��k�S���k3����+Ѷi�V������R��yGK\^�^�z43�h,^�v6_���H���m(��KPٹO�P����D�i�6ua�k���  �4ucy�,5�1������gp��Y�38�����5�I��iI�L �Ԓ��c�C��DȦ��BDg�"(��2�Ԑ!ʎQE�9n&�'���o 8|� o��n�WoE彣/���߂�[[|����n�S�}p�� ��c��o+�D�@,"�a��B'���2��U��$a��PSjB��RA�ePI�=�ag��O�=;�‡�;������e2 �cyps�ĩ�>��!� B�b���BI�Z`$�.[�Rwv4ʝ + + + n����w~ �o�X�<���z���fp�������4��!���Dҙm�ɚ�����?՚.,��f��b��%�(���a��.:CjN04�H��QS"d#�,**"l�؜r�2Ln�6��b�C���c��� ��>\�X�^eU��E�s0��? u��P��T � 9�L��f���>pRd��$1�)*Y:�VU���f`F��v6V��U���s�t���I���>> :�(j�e'X_ }}p���߾�޼t� ��S��Y�o����f���F�?��ӄ;k-��ыg ��`�;?�&��X�Rմ5>�Sa+��KC�e�9����pd5���mj���@��!-�`�mZ�1L���%o��?����N�����Ǿ��|��̣��@Y E]K����َ�bb�G+$�BA�U�����ګlDU !���Ύ�W��EΣ��cp ¾�g��݊Kqu i*n����3ۻ݆n!)� �J�B5uXG�H�ۻ�.Qa ��z�$��}�k[P�ؠk�x1S�7����zv���wHGD$�� �'���,n�DΛ�;��-pw?nw��Wq���l;� + + ���������kd�W�����q�y��o�}��.z���Ώ����ǃd�s���w�j/�m�y���)�!�3�Eǩeg֋�9��J5�� R*Y��˹��E17v��U�`9���������2?��� 4����~�s�T��7'�CN0�$O����آ�8bHHji�M%ƜK�A��K�`��޵�@�bik�I�eT�̡�4N�t$�hL�8���%�s�l�8ӹ�Y�A-&u\ql��9�`�(��(�<�-�C�'2� �m��a���(p��\d(�fp�,d`�ھ �'R��2�UE�)4IIٙ�� �¢f�[�zBƫtR��0\��U�n�V"�4mr�@�����4�3��0�\�˙ra��|t 6 ��RlBӊ4����ǂg�Fsg$�eRz,&ŽFL�Aд$m aØ{��5���~hZ�2�0�Թ�L6|a�xU��R�6�m���XB�ôF����E9c��y �N�^�� �J��^TkZ�%�O��^$�l��*�4�TRgO�hCT���%D&R��J}*I��O���j8 �4J��"�i᜙�d�&���*�Fe��$̔�ު�kS��&��+`���@J���  O��s�0�#\lpp�.��|�$;��{]���#e�J#Xݠ�\ϲ�����EP�� �b�,�†J���(ڦi���8�C7~������C�J�g�_;�����v��t�fe�t zyG�}�bB��I7�$��b -�5��QTUh������8�O�)#�ۭ�[����Bs� l����_U|j �1�, FS��pfw##$j|d�a Z��b� �G�����X:�:��Ĩ�"�]��g�M��Fն���$@��(%��5ʓ��N[�Z��)�]��`~�ј��m�g�~�� ��~}pi-D�Fc1E� N�ʯ+�� �GXCEEhMj^�b�aJB��f�c�Z�d0"�t8����(�۔iѭ�� J���Z!6�1xV �8C�_,�}�5oِ�Y1��H� 6�TX�=N���|XS������d��⡿�FM=�̛r< p�]����l4�U@��U�A�[���t�,���������� �6��r������2 i�t�z��!lT����b�_�k�B`;��C��&J�'���_ļ*�]��NJV +y�.��&� B��IJ�!�Wl[1Z�S�]�7鲦�4䊜�v���UTn) Cn<��g������Q���9�_���c�qE/&$���Dj6��m��Go1攻�+� �#���6e#���OZ���"��q娯`���w�u� K�����f���]�t3�;ƒ��\(��H���KMMt̪s�7PM�w�R���-� TK�a���˶�ݣ��S�V��Y^�z2����x�Q�4;I`^�4*�Kh��')5F�Pp�*C\s����լ:�&2���isG����$׬����[>�&�������.����h�?����S���\�V��m�٢ �oUh�i��������6�DHdk�l"$��v��X�-�V5t�4%m�ۅؐS,[�x,�@��P?w/ _�I %%ET@�ݿ�oK�i�$$$�n��Z��*���{�� + + �CK;,�B�^����H56?��L3��Ұ`Y�0ɗ�� �1�0��Ln��Nquh���N������4.f����l�F5�8~�/��b���C0#� �e��I3�N)����qFfU�`����T�(� q�A%�fbr�Bܯ��\P�V �� ��M�b1$���3_�-�ˤ�z��9�O�@�SM�)_�A�*@���F���y9 !�A,��pk��L�5��16��]E46�f8:�I��I��$o��R:�gژa��PX�J��P'�xA���i}ee-'���i�@��l�Ȥ�� �e Y�A��f��B5$�d�n��d 7�XI���@eq��d{CЕ�2b3]�I�~��U�$��q����pyޥa�C] ($��N)(:. �����o�k����jT��?�Є#Qե�AKv�/ں����Z�^�L�s��ְ�) ㎸R��6r� p�/W������Zf��;uI�K��j��ʠEc�?�zm�%͇)�^�L����X�Z(��-%Ɠ ��/������h�$4�z����,�X� �)�G8"Ign�����ڢ�H �wIO�uҬ�.��|M�&*f�N��ipcZ�G�u���iDk��I;Z�2H�l¼ahX��7|�*����3�����n^��1��㼧�#�y���j�(���հ�����mX�Ռ��jA���� � �v���v+�����j�J(��da^/�%�]^ԅ~謁szm;S���%�e¥D��U��+O�Ԯ>�t��j)�d�2�\~c�dW*�j�0DiV�&�W�0��h��#��W���ӭ'�%@���(� �z�I�#���ܭ1=5�+Tt�:�+��Rp)��XЁة�r�|k]�P�Ri*�T����E$�6lY~�~5?�''������������z{�X�v:�ncM���HQ���@U��kZf�0�����9�"�� L��‘a b�'�JD�2f�� ��*c�� � XN�91 ��Ah�61q� Lt%� ��i �D}C&R$dS}Z��>�Ql_ ”�u?+M�BJ&z� A�h��З�Q(df��,��{�c88�����A�M[3H 6���!3bK�G�#E��ayQ<&0�0 ����b��yW�Pe�.�ns�>�giA�z��Ձ7�yLJ�>z�fr��6���G��A�f�r:���Q^�� ����~r�:�gӕqa�� �����?��u�|�:?]��^%F��wWc~�{�ߞ�v�K݀В6��Q�}����]���w��N��h� �V��e��Ǵ��9.F��Ņp�;Ǣ��6��������޻��w����� ��iy��훉w���㇛��7���f�7��z���ӣ�����h߻�����w��c��C�/ů�i�M�7S $!��x�Z%#�� �pô������v�� ��`��6c��M&]T�N�q\+��t��Ɗ��&�+�Y��e���rw����N�3����r�S�v�WǬY�+t��`=Y�H�b�S�n���L���1Սo��V�N�|��G��C{�K^@� �o���/���?�����N���1 ]$�k�%��;��9?K>'���h�gIԑ�ώ���-:v�R�x��uz��R��=��`�x]��#$��s����4�i�&Dl�fw��������ͦaBjJ(HiAc3�(8 NUup�1I�@����_�|�OH&u�LjV�!�n�#�����œQ$�����#�ty�k������?<^����bݎF�l39,�����g����?�� ����ju�8�_��{,����`&r�ܔ���0n'�������Λ;,�p�Y��bV4 � U<���k9�g9C��_�2��kG�r�"�����+\�=W=��m�RŽ�� + + �H�&��o�L�:]�� �|"Ǘb�E��Ob(�u}�U'�'m�� ޏ���%�b� ���eK��a�8�;���)���Jx��9Ê��8������~M����� + + ' �W�����¤CS��И���9�;����< �rL����� /�&J���ٷ��7��"�K3�E�j7J�^0�l�6w[��c9Vx����o�tY ���9�f���co�#K�J}�(xݥX���_NAx�͹t�7�R����E�d� __�b�&�/�$�=ά1k&� ��,�"�t�xmD�b9V����?�=u͛}ˊ�B��������ן�8�e�:8㪣 #\yQ����9��!�u���b����K�O�M�e2:q�^&G���u���o�1!U��� ,�t�#J>xC�� 76'��q�Q�T��ؠO���(Z,��6z$�3Vt�}-�S�7�w��-�ϘS�S)%��vE�ӓ��nLh�7�?�@wNd`8t��d 6����Э��îL�W#t��4�8� �i�_������ �I�A��d*:9��֢Y�#+��P�G��l~�"x|��1�)�=`mw|��Ðe����H�3�W�~r� 5� ��ǹs=3T�uV�@��=Z2p�^M��c,{>��J�2�I|���D�.V� �������Kn�X��B49�/�s�y��8J��Z��e ����x�٤o��|y��B�c _�j9Uד$��'z��D�h���,��>�@8ۇ��TB��rR+��WӁ�d��b�t أz�JX��?�f$}& {�dN��B�z�s뒉J k)u�dJ�D&j���PזZg��(�z�>Ϲ*%)s-� &���J�D���#$�pUJ&����A�H��e�o����Yd��A�&"��ᎌ�! !ˌw O����p�5 ��aӗ�[L(8�P '�\6��V,��d ��@bRL�mxB ��$#�d;���h[�5��y{0 �Q*%�N/ + + 4�=�]�@���4 v�5�RoH�G�>^ڷ�_�,���"F`A��i�KT����J�3��B�ڪkI{p�����Qi [�(Yn��W}zYF� �6� ��kZ8����P���b=�WZ [��h�5+b,���4���������a��D�|m}{fL\��i�T ���h@�0�ܾ���^R ��m��#�s�z�Oz9WTy !m��n9�<��9�Ɵ�҇܇�ڽJ��8�3� + + �\�Ul��,�fm�F��$�P�QM�s�z"[����fZ����b��1kR�xl��>9���n��K;b�=�kʱ����SpwJ�Uع�i:�菓�)�t(��i �4e��lFǏ�ki��~T�Kp� Y�6ϴ�pq�؞�7=��\s�������"��"s�A�~Ur��2W֫a�f`�T�J��=���/�d��T��.C�� ��.���q��[۸mzQk�#K�z����ɂ�W$���}��O�G���o�%޷�q-�&JQ� +zT��~���k疉�g�N�k3{؆�-q��.9��RdoG\$vĭ�AK�U���w>��IHT�t *�P��5;�:�|�e@"�H�b7.��t#�pK�(��KW��D8ǭ%���X�( �>Y�[Վ�X�#�R�Ȍ����+h��jJ�x��P��o;��q��� ��SGC�^�^SB;��vc}AU(U?�c��[`��lK�*��c+�E���g@���m X"GZZ�k2��g�'H�wm�����&m%�I�;�� �����nh�0��v�a�V� 4��vvl+l#s��8�]H�J���>��(�8F����׿�e`��9;�p v��z���1�N)*x� �2l h��zZ�d'�x��}Z#۬.BA�(�3��ZS�C���2��*[���,^�S-O8�c. �ծj�BUid���|#E�a}x&����l��X�m� Kȇp�*�ś����ha"�[ p������=nh� q�����e�Ą�<^��uײHd����v��ᱨob��}��X�&�!.�[�A���@�.7�r��f�������7�|^��7e�_?֟P�U�^Tyu�5��Yow���d�A �iÅ��!;�rC��d�4Yq��$�+u�����!ib��4#�L5����u���)J��É0�.�����&�;܌e��# j��4oiw�6iѫ�E�1E�!�2n�WtX�꼵��F ���$����j!��6�� ���, �iw��f�KC���Y|s]T��1�~Yqe�~��������������. V�?��]�Ͱ�C��5 *|�߼�P�v\_��XCWh�i7�w��%�Q+C��C��}Zb������=WH�<�{���w1&!.(f�D)%����R��>$Ԃ����<��[�����!0.KCzv���t�;�0b�� �k�GΘ���y9�(���>!NA��|��Y��<=(�TKeJ�Ŭ��!�,��r1?���0E�&���f}��;��Z�*��}���F����Vj��K�!2���m&7�pf6{9X�h�<>"֢��X BAۘ��H61��{� � �A�@�s���Y1;�鮘MKQ-Mh���?3f� iC6��!Y6�h�m�pX�@H�ǘ��iq�u�Y���i�U�q!�8�ኃ�G���� �t�u\�ؒ~p-��$��%�M[ �b��`>dlQb��Eq ��`�� I�\ �3�H��F�����W���GW'j����ޗ�ByKh!�ɱa* ts2rh�oBl6��yp|����)!Sj�%� )s}a��$��t�D��]��o�l�w�/��e'n��-J���4�:`-�Y@B�>�V�%-�r�F؎I��RFaf@4a\r� �ÏK�_0�5;���݉�(̓VI 5��m��$��.+L��Bͽ׫W���O�!�%"VF�W�q �NY+V�[�_�F{���-J{*�}A�k��zxR�rM��|��8�n/����� �*��Q�)�"�|RU�5��X��O)��':�O��u�A�u�ӑ�ű���?&A=�6R�߿����? ��ȜZ�/��.X7����=(?$[�А�����r�.-��g�i7��q�苦&�%ɤ5�,��ZQ h�"&�LE ��f����hm�־�NL�* + + ��0�-��bv�gu����1�F���ٮ��ɽ|���b�N�h���F�]�����o�� v]|�I��㕫�{ԃT���=��;����^mLp� B�X}Q����^�!����Ǻ�����C�,�8-���rz���!��B���,�T%>�����N2���5)&L������ �ʻ<kX���= k�35K9�~�ke���q��Xg��Z��k�����[� 3���C+�by@#f��w�Z3�D��I4P�����X�k�'S�� {�T��cm�-�tQ��� ���~�Y���!�����,M^u���ޔ ���9Y�9wY���Ђ��> $ l�X��f�nT“�<��5,��0�U?v�Q����{0���L���%L����� + + �j[C��妵|���ǀ��\�U�U]�FP�s�ʋ ht�>tl�G�֑�ޤ&��h��Tis�l�Җہ��P ��i�� D��tÄ��W����t\���,3���:]{�o��uM��/� hOe,� Q(���) ��W���$Y ��p���k�<"�q��|=Ô��L �@R�w�^VYҝa�8�"o�0��צo 3�q^�<*��b�Z� a:�y���_�� ��-�>��K�S�WZ����p���uk�`��\��a#�s���RF�Uk�;L*]�I )}!H�,��gY��H�u���Q�]���k|��?�o�>�>>dp|���Y����oK������Ǘ�LJL��k���C�Z�ƿ�_�t�<=i�Ϯ����ٗ�����ytr������8k�˃������a������Y&��[��͓��_�s�0>� �],���g�@۩�7 M�w�e�Ee�h�؃QA�A�k��ey&�TqF�7F���V+CG�D��cC#w�?q7y U�*��S��(�;:Rc��HQ�c���B% e#���!A�� �\x��hX����.�} �=m� l�I�+C�}l��� �)�Vܚ�& S%�� ���B������j��K��9}k�<�����r�g�T������lm�q8չvyNg�� L���-7�7����P�h��|/ޓ���Q��I�4U�w�# 8��: �FC̸�%�0m�m+˳��ħѹ��Mn��JDK��/?!���Hr�'8jJ�6��x�&����|2��g��!��"��4�q��!��Y������ވ�ų��8k-b�/�C�:�u��o ����*�j��ț�xτ`Rn�Y�oA�$���5��$BdD�J�M8Qd�S��8�Т���G�АX��(n� ��>"t��Aa�@$� ��� �I^ L=�Z3: ��Բ���1�6�f�a�ݲ]��i;U^�V4�~�}�l�����?� ��� �e� ��nsj�V�*ّO >Ȳ!��;��,G�w�@L�t�W -}��]���$3��������?v=7�=߱M� |�s�} �O���)�I�Вޝmy, �*BE��Y1�WQ-���P��� !]J|O�;�1Dz� <�#��T,�׊!��DDrЫ�슜D�H����Mja�/���fӑ�%Ѱ�袠 { ��mC�uY�����wSw������rOtH����i��*~ H7Vq�����H,�ZP��q��e,~�_C�hS��<��͉���B��ݤ(b"HFa��0�`�δ�52$��2鮙��:�M�3�u�Ie���y�L��]>E�=���˜RY���ɐ0(�t[Z1�E�+� ��ras� @1S�H��[~;���ՇE�v��$3m��Y.�����\wo��@�3F+P���$7� nȔ�� 2�y�x O�w����1�L��"��h�Xܢ�sF9p��1 �f���{ܳ�C��J����+o��C�}d�ׂ��w �*����ܙ�I��E���^0���x9��_���/X�A�{��ǦȢ��ҕ�� ��1QV�o(ZT�\&i�x�D<4�6�6��e�<�Y�N)���Is����g�����m�}��`q����ܹt3&O0 m ���B� �u�h������޸�����q�hm�^�]�]/�<]6��}���ы.$������!n˽��o7o� ���q��[c�0t�V���f�ʯkY�}����?��^�����ӓr�RI}I���+@�ࠍ��`������5׸/n�)K���XK�n��Ao��%^.������զM��F���ѽ=��4RE�A`�ϟݻ�n{' 8L\�SH �Og!� Tx��d���|���iu1m�T����F1��&��?i5w�[�+T��.�a1 f�[�T�t��޺������mtv���Il�s��HF�n�;�OeP�G�T�( ��XJY����.ow_v�bJ�oC�� [Lw�� � �%p���M�,Ū�h_�}l\.��� ]-�U��*AȐ}��t@< ���M�{޹ەq��cqc;���.����x:TQ=h+$��|My4�S��02��>��n�{�̓s�e�:�<3U�zko�];��芇�ߩ�H~ ��n�{4Ln���ɡ��3Sݽ�`� ����C�q'f�MƱ.S��c� � ��k��h��Vh���[��DˢVCgB�k��}��Y�3{x��v к՝D1Z�C���]mQs4�9�Y�8�7h�o[y>ʭ��ѿIfs�.�J�A�B�^q���ZN1I Jܴ��b��TZ�Yzad w�fpr�*ɲ���m������ɲ�c��)s��l�d-*��2�]R;߯?�0;��2Ԝ����ߛ�xPR��6e���H�ۂ;Fx�u�D�����.JQ�uє�G�!,t�6Я72�U�y�/�} ϝ�����ڮd�7:����f5 �d��4:����]U��<���%���wMG��yw �fe|K�[��M�a]���Z}�;PV.WP�@��� �%ٸ�b\�����<�$N�;��[ĩj'��3x{mq��{P?:��S@�E]�Qw!��m��3�b��U��ْͥp��t���𲣃��J^�L[�r�w,�0�����[����@�˾����oMv���|����%`W� Lߴ��ۯ��5�$�ͦ� _1#�*�����0,A��y{�y.$��������!z��������@��9q_}�ɉ�{;����aH��<�.t�b��@�F���k�,a���(!;8O���b����+��Q�D�3J!���Oe��HѤ�ɗ� �ԢB������@E54i��������VC� �t�V* QR�fV�T]ڧ&�=�>:i�)���Bz�N;I^!�pJ��'pBC��U7�2>�=�>6%�-d���(� l,,vG�Y'��'�ANH'��u��L:��?�\:5�1̓N���CO�������� ���<2]j5�NP���i��/��=�V���ᤷ��m�|��?�����/��[���(h�t�\�,�*`K���6j���ݧ���R��Ҋ�����S��೹Xk�VX�J���C�������D�jM��Vz%Ɂ��|P��ʃ����PR��u����������VιC�K� w�4n į�� �i-c��̾7�Ws��7��oKJ5{�ф�5v�"��4���=" ��<͉��&u��a�i�O��ʦ�B�{�����m�a$�D�!:8�C?�����������"첻�f:f��R i2�Z/�T7 H�b�qfQ� ,bidUDcb���u9ݓ��ߵ��N�jA��Hԛ�V�\q���9�"���>\�'�F4U��9p $��5�Q��B6�:�G�Q��������oK&�h�m� ��m�=/�6 ~D�;d��9 �w��b��7��݌Y*�Wg&mh�=:��#�ff�׽_�Og�s��# pzu\�$*޸*�RtYh� Dif����0� w�;��������IHCP |Ei����XP+�Gg�o�B �_>�� ����Jٿ& ;c��,n���|�`�f���Ƥkh8m�=��?|��^�����q�����-��/�]�ż����|�}�~�y�$�E�\X��?O����47� ��^6��Ҏ?'߽[s'2d��_h]�k:�r���p�`����B\� �� �59��md�����S��^h�i;C��6�ۢ�����F�����V" ?*�zk�H1�a �ĥ���Q�����\|����a�8��k�-�F Zh�B��k���"�֋6�MKO�m۲�� ��(�I�w_����a���=�_���;����Aw�P�H*���j�}D[���7�S>���Ի�ik2��ȸ<0Hd�M['R���z$��?6�?�|��Tl*([)��>\�<���>��4�}�J��s�76�M�l�fH�8�����&~ �� g֚k[�`}��]ڽ��]�]��uZ'r����+���v���R���RFzc��e�(.���n��V�6n�k3Ng�g�Q$Ǡ� m��Ծ��%�����<�剅@ڵ�S�}��� _����^ğ4��=�F,\�]� Ƣ��=��R9N,�q��@��CP�D���<��a���5���:���o{N�w8�c8ñ.Q��I���K�g� � ˺E�q3�[4�F&2rf6 {�^����4ҝ��g(US�N��٩Y��+�em�C!ǻ���ـ� ���Is�ɛfX5f�xo��"����$��C����� ١s� �e ��38q{L������s��r��8�IETj�������@\����� 3Rz��,����Tt)(ė� ��������Ϧ�/��qg(ο��;����4����&�L����L&W}���;x���ry)=�X-N���11�XK�J����d��ƒ� =���lpu�0*#�*UOq�?܁�oۡqxAn��`���VM��.������@Q��o��c�咩���XѶA�m�T����3���a k׹8~J��E���8}���<�����V��Ҧn k���q@?��ɕ�ue5�5��_N��$ӶB�:�u���mg�u�˛��>�/@^�nϬ݁ze k���3W���k�Y� 7e+�K�E���������۞W�d�ו�T��3���Z���B�M�m��݉c�H�O�� 7��0G�[X����wy���DV,| �'��|j=�� t{XS�Z������7�?}Z�X�{�R�+R���]B�e  + + ��e��p<��SJ2��H��޾t�fI���x��c,oZ��Z| ��yT�u��ge�W��"�N5� ��������sɹ�!��.�A�O�bh�{���@��U[��wզjD��n-�#�X���Z ��Y�����^�<�dzG�ϕ�=�b�>����U���K� �w�=��F���A�X+�+���[���Y�[���3�E�h�nS��ݙW9K2�����x.�/��Ck�\#���u�Q9�Q ��v�ڟp�#X~٬sj�Ԍ �S wE��8^Bu�sRi���MԒ:)��zP���l��$fQ�=������2��j�����)g�c��R&F݈�"R���S��92���:K�#�g����H�^�#�+�;��������T?����fH�W��0�$����p�N���F�ɶ?�49�M�g3�Pchu�#�u�� �Zx�P��n��\�RO}U��:&��M�A�;D��I��!d�� I�On + + }G �[|�ܡa����?Q"��'�8s�¥ܝCP �l�%p�q���3���|�N�������E + + ���k�L6�A�@6F<��veT���{��41F�1\H��̈́�'/�n"p�]�&�t B�%��{w��� �MЎ��` � �x����k�IG��%���0���� �#�,��~�H@�p�CT�}��K�%����i;��?���.��gw�w��}�FCN��XpNB̂������ax g�tV_߃��-�V�s.�L �;�r^˲}Ep����kcʁx��ЇH~ ��6.���=D��z�� >�������Y�Φj ̶EIQ��3�p?ez ėo1��)1�<���u�x�����ݗ��_>��M��SLM&Oa9��7���l�?Q�D�ڑ�� =;�ӒA�u '�����ĕ�T1��7,B�����_����xVj�[�3Ev�} ��:��CI�$��$���{�D�ed�G�T�=�K]z��$���%;�0S)�g �v ���I�{^"2Id��j���g�"0�4�U�NB�JSU�Z��ưr��^�.� Z��ڌ�,��?�LA�M�ֿ�A~rx���xAźD�|T����;�8��F��^8e����8J��B+9�f#�����d�xK� :��CQ��;��_�hV����X\֢x�@;�����o) �����`=�F��r���QYr�X��2_uǷ ��tJ��|Y���#yFwH����� z�-k���x���6s��aV=����We�tF�g9���f��l�Huδ&��E�(���#ϵV�b�S��_��3����p>[xA�+ 看�UkD�vW� ����Tƍ��`ZhE�Ť 2x�?/ �P�y���c��Z)��Y�K���wʭt^�" 3�r�����5��Z����r���]�K���^}a��c%�vA��:6K�\J�D�!��DF.�����@ �"�D�gdK!�J���7�`N���H�Pi` �¶4ϼb�������"k-��S)b�,B�g�n+�Dv�����mg�?#�6aֈ��X��Jb�)�}02�n���j���ub �� ^l�~�!l + + �_�U�;g=뚰�PqB.2����5Y �_{�Y�A�A�3϶���P�gOd~�uj�U�@�~�+ �� ֳ"S�,�_d�R ���_&�]�"[�A�� [1*\����N��:�l�~�j��@ v<��8y3�ͩn'r��2&�-��m���Q�^S…S�s'��Kēj<�`xp"���L:ƃi\f��^xxҝ%�7O]y�)��dX��$��Ze�c���~�q�.�mK�v3�ka��^�>���g��Dբ��̵�4�`�)7��;�^�T~�ʡ�ܵ�X�%A�&:�̹p���S�� ��IG��4mqY��;(��������q�0�Ad"��u��_� t��z�79_� AA���f�E�R�б���á]R��6V�L�L�Z���o��Qϥs:�"�� v�z��Xt@����L*Uj/��o��C;�z�O���e�|���?��ߟ�w߮~������Gaq�.�ˣG�;��+��&O'�#�`q7FH2,;[������W��J6�Ka�[��9�73�Ͽ��� ^t���~l��;�� W�U����0C���Ʃ���YFh'��uЃ�d1EB���+/�SN�� D��N�nND-()/ �ӆp�IM���V��-����c�dj#"�� �97�0���M>�mg`���U =���`�fΗe����P˖,�� qC�hӔ�a[qSY(ʅ4:wٺ ��,��9!18�'E�*�q����n�TAW !������^۴ � I�@H A�j���l�)#R�KY�N��h��� ����p�, �ne���?Br�v�_�4�z9�l�h���+���P�BQ����3� ��Q��F��Jˠ���Um��uV� z��ͪ�Dx��Hq1{Q�֋�|X���I=���x�ݎJ�2e�K`�˘)ՈĈ_�� eՊ$� �՟菶��szD�� �}�Y�m����HÇ'�.md�;վ�}�շ�k1�|�>Y�Ɓ�+S ��O ��D��zc P�='NeʹH�3�F �!���Ú����=�j��3 �i)tݹm�~�� n��<9t�Qv�(�ib{�ˡ��g[�>�)�N��Ҵ�U�<]���Fx�7�B��KV�Hr + + J~�*K��y�-�A�� ��mM��HH .V�0t`�jZC�+(�╃��"�i��̮X@�R[�=���`��@��(��C��뤪&�a�̨������m�rPQO�i���S���)Z�L������>�Æ]$��4udUO��ɝ��F�*Q�"��6G#-�}�G�S�V7i�B@?��ëv�M �4 k��6��#���� zWe���ά!D�� �:�#��vn �݃��c 6��C�E"��uabX�k����fF��� >�(G$J �d�(U�4�]&��찁dj=�-G,�㓈�����N}�̩������Z'���:1���م�0?�wwI�?�L��zt��s˫k8�7��Y���V���iS��]�d1s�U$����� -6n�=�x�JL����Cs���Mo% ��`8�$8�\�x[86*�{�־���_kY��Ɍoe?����6ב�;w<�w�Bhhh%ct��Oh���>�(q�5��)��h� {ˏo���v�3��~�S����p��>����9b7�vC�1M�hw���d[%���ń�++r�,�[�����5^�o�z*���7h�[�I$� @�o�J£ ];l/�-����]��e)�nܟ�w+��dR��s���~���o�%: �kH�m��w"W��[3�z85�G_�^d �.�@�m��v�+�:����=��k��h�����܀�%���k����S����3�m ���D��饠���p���)s+�qNe��yܝ��?�� � /hX�Z��b#|m@/�ْ�>,�f?,p�!c�� l��o� AM|ձo\^4���9��������?6-0[g����ʋ˧�ż,ٍ0YN ک957{�nq����o�E�ҁ��J��`�µY�#0�C����[,w4P���J��b�ie�O��C�qx! �����O;f���2���ft�%Nt�3�y�7�؛��9����a�?��QI�r���",��` 3RΡ�Ð�@ *=S��s��UѨ��K:�3b��Ǟޣr�����p�9#<\���r�d��Rf ��L�]ؠ&���� bB 'ޱ�X�� ��D��s��Z淌�h�,?���n$7G(�.�t����I�3^X<>�G�oEeMn��6L��z��鳕l)�_��g� \%jKM�ٴ�y����Yː�b�'���;�Go̰d#42�?k$���-$y���Ux��� ����"(�/� �*�B������x�,ϿZ�����y���Z�/9�e�@_\Gp�4�yF���3�$��Ɠ��F�V��udW�Z�KU��Gf����L`���Ђr�$R|�:�r��`��X��B(M�-�ߨj- u!����v�f��5n�_�K��١b?&�`��'�8�|��R�gN���� ���d�=t�U�����I�/f&K�T~t�ڭ.~j>���̊�Wo�n��������]�� Q�`�g�ˠ"��%~�Þ,�t1�!y�������HZ8�V�n��x�1۫I�"����/�=�D����dd<=uS��������Y{9Q����f)�O�Ǫ-���N���d� f9��#�3�̣�5�CoM�6@o�h�^��'E���N���6���d�����`0�A�� �W��tEbV��^[D����<���+�i��d��b� I����eEYL��a%F|YA�M�&gV��lCL�]��%�[��2B�`�E�k� �Id���h�DF���Id���d�D&��m���6��$�����6�lcp�M"�[�A�7�:& �u����^*�*����߿�NJs�)�j�Jx�?ʺ���һu�鉟b`�tp(�q|P[k��9����,ָ�>�ɛ�Dv�_�%�,�����-���(�_k��H�`��@i2��7�nIយ~^�훍zw�a�j��+B���g���g ��N?l�[��7r�׶���TN�*e2���0�O�ռ�#쁹8�J�ʹ˔�Y�(�pʃ۸O�t���ß1��/�W8s �`3�~�(2�T8T�����?�u9�ϜOm����a53�ԥ��l��.bFJ��Rx�����NF���'��c�0;��?�a���D `�v��uv��r��K�P���Tg����^D� |��{ݼ1QP�:������g�� X�f�jm0���u,�p'��T��2Ɇ����ɣ����C� ܙ��� ���&��!6�gX��%c�U�w�VN)��xB��s�q���ܱ.JV��Ֆ�ꢆ�l�L�Q���t'v�U�A����a�G�� �W���8jX�D�'�'o�.T�n���_����o���_߿������ǿ�vm�D��TVHDA�|K{������0�6�J�n%vQ� ��u�;9��U ^I1�(�R)ga���{]�E�.e�44��/mh,{��hU>zȃ�ȴ,��=@Q\��aw��fF�'�Q�_d���t������_�7�[����Y�a�L�"I8,��H�&F�mد�w��0!a(�7�K{�^^\}V�$��&S�im���T���c�3�����l���&.D��l8�� �����=�Ⱃ��"�w��� 5ц�p����4rQ� ��%N�,L�L��5 J�ڽ�UQ�1�B��3|�3g���+y����z��A��n*��P��ɲ%jޣDz샹V�j����������Ts���L���Pf՟������<û�W3WN[g��^��bsL8(���$���aJ9��Ab�V�n�� w��KUoP�X�U-/���K\��RLU�h��6H��]3,�IȎ/oѲ��6�[n"��Nn��(`� �s���_�!]X�$f��� q9== �����_� R����,�� Ǡ8�Dq���XW� �[�7�x��*ur��� �����H�S��Q��-�Ө4��V��P��̪�A�Yrza���JM�*&N�"�9�N���� d���p7QP�Hr�7)_�a��pS���h���Uu�� + + �x���ȇ�]�[���c����+hP�!�8��Ek(*+�G/a��e���<�c�`*b�\ ��](/G��G�~���L��]8� ?�es��x�f�9��ni�j��'��Z�n �����Jz��A8�klȫqv�_�\�y:,�{+�A�N�b*d:�=�֚�H���Q�N\MP���1�'?82�'�ޢè���6ҶI��:D(Y�9�L;�oi���hv����Y���:���xt���ܦ�E5��X��F�"d��sk�UUv�Vv� [kO5�6zg�ټ>�2�b7|oo�!2c�ő��� U�� ��0;NaB��O���w��Io��՞5����75x��UΪT+����� �c��;+j�q��q��f84*Ty<�=RS���Ã��X��N��,�}��Z�e�ZԤ��<����\v9��A���÷��_�+�pЭ<��w���ۿVD0��Z��,^� �F�hZ�w�Jj��6��vy������� � ~���R�~���?��'{�EIu�=�#uWo+B����+_��y��5w�Zŭ�Z��=�������i���Hb��B^뵘�{*g������*�/X �h�ڤ{����FW���ޯE�C�ƚMi�oM ���WP��.�"���r���%�ڨ�.��~e�M��"�xr��A�r8��!�D���F.|� �?Ә7��YQ`�r���L���2�e�,�����!aHQ� ��� }�S`D��6Z�6��f���Iy�}�c+v�����pfK�܁�R�03Ňy1+I+�O��-ԙ#�:�6@���~��3+��v ��{0��9q��H���֡' ~i�*pd����NgH�WL @�wȍ�*����ˠB���e��W���`� 0k�Xٻ�,��uw����:���f��1��CY�� �ho��`��0�K^ɻ~aWO`�޼�A`�9A_���%z$(�}(n�s����xq"���;a�4��땡O����xS�U�u �q)���u�y%�e���6q�T��<E-y ������q����M�o�s� m� t + + <�|���{.\ �Cʦ�:R���xè����H�4���P���$⎣^�׆�f�%eͫ'g��s�b��yUqS��  �E�$�`#�x���[��4�B�Z3ŝs\��?���+�T����#�\[��<^�� � ^�UB�� �tER�)�q]�v�w�y:����(�k�ys�v�jsnr�؎qɪ*6���qu�����>��m�t\S�#�6+"n*�y��xq�x�����hi�FP׶���:�E-1�R�7`֋��`�Q�*=a��"Rmf(�����'Ϟ��������3��Z���[��Y�C����4+�'�ۖ���m���>��O�b�Q�`k�GXL‹u��$Rp�QS�[��zj�,�bz���-��x3���p���������E�6K�6 I7� ��^��g��|�ї���T"������cܶ��g�-�ь)��Pf$qz {9`B�.d���8���$#{ݶT1�K(����C�(Dku9I<�&���c���(��Gf8<�"��t��x�0El��б9y9��,l������\A��{�����*���J���UQ�H�xFYV<\���ePa�|m4�0[���Wg�&�s�ٳ���3:*0���Va�z(�_3�6v��3ۙ\��m�ׂ�vO{��6��{�����N$�0;�1oW�)�$]��n�̾�Fē�7�\8�"�u���zWi����²��uT�**�Z %�;�;d��d��H9�B�X�sJj#}-*���Q�3B'F�rRv��n�/�_P8!9`�{0?3ZR`mKH����r?w\���2 ������/1�W(�2�8&�s��$3(q�0�n��*)HԽѪm �D�%��g��:.�=���G 3k�A'�@Id�mR[qTk]&|M�2_}���B�97w��i%|�9W�\�1�;�x�&�g�O.�MUC'GV�aA�I�_�^�Ҭo*����Dw�ܤ6h��t ��F@�|����F��A�ݛ{�O�+��[<6�KQVh0xvN�O��<} 3��v�J�#w/�gI̕��> ]R%&\�4B裧���F�Y����������c�x� ն# �W�������*$� A`�M7=c���0��x<{�4���@K�΂��V�)D�u7���i�2IŃ-N��zNj�2q;��#_'w�r������*�`��CHǑ�"�5�I�Pg9���Q��3ng��et� Zz��� ���7YG���o��: �~O-��׈��^4�b{�31_L1ʭ;��:� `�� ��s�o�������zQS��`�E�eҩӂ��Ÿ�1�a�t:�11���F9(Z$0 �q + + <���09x ݖm� ��0t|#%�����������ޤJ�����ﺆ�̶Y'# �`Աt�®+�K�Ƶ@y��y������ٵ��gtG���� �I��w�'߀CBu�� ��̀�+ FqM��m����O}��>M%c3�pEI�����$�M�wm�c)���s�Ȍ%�KRv<����}�+�=߾ioKN[;��L�Q43�ؽ����A�� .���\¼�=�X�$�D:Ł��X:�.R|�G��&��VR���H�)R��2��[ݭ�H @�����Ka�C�.�S{ ����o�����Zd�<)��g�rTEp���S�qA�ݱK_�BdU���ؗ#"�KV����I:x�;qF*2�c���.;5Ϧ�YM�S�%�f1��n6�ڹ�$�Φ�YMv����R_�$t6m/�j�;ʱUd֖���tK�\q�-����Vz"�ጼ�R��۝U�š ���A<�r<�7+�5ڰ��3I�CJ(f:�P~�qzFF�\�׾N'L��͜���z:�Έ�G��#�^Pv�^h_9��'����8���t��T�c�'��6w}�a?�A�$!�pߺvl�.���r��$�n��sr>s}�윔�|�������99�i�B34�͈/D�*�\��T�Hf�3)�3r"���=Jզ���� �@-?���6��|�>N��ܰi��!4I��/��Vۿz�q?���x�w%Y>�{\a9�x� ���̆�T��� IGwB����s��6=v}� e[n���D�VY�<� Ȟ�Ɏ��J�){âaW��tXPK;6��k_��q�4%|�Z�ׁI�Sz:����ݰn_�Ka��aO���Ǫ�����|�d���"3l|�����)�Z4m�$���,��~��b����R}{�r(�Z]� S&�� 8�ź��D�<�:&���H�=֑W�L�� ��GB˥f�#U����a��a���n$�aKhj2�p4�K1��%E=%K���"�=�spl{$*�� �� + + x����w4���� e�|n9 gcW�8eL�O���ۻ��ܲ}�|���:�m��@֡.�{�E��e��v���s��}<��h›f+�'��ˤ �[�p�A���c��q�!��D����-�T^�y ;zB ���o��Z,r�NM�١�6��#��r} uwk#|� Ul�f�'6AS�fڵ��]C���[{�54�W�+����n��r���e* v[=�^�r}-�]A� ��}Ef��a� ��oBh�)�Am{zV}j 3���ßl�#SLɒ������p_Y�,#��9=���K�� ��ݨ� ��+!XW�cM�]��-yZ8�v��}���m<ͩ{�<-�J�E�%K{�z���tx���6%OfW�R��- ;;�UXj�S*5��_�D��U�P] "O��Ԕ���3���@A����]n��S]�l ��D��� _`7%S2CzF(�4=s�v�>y�BκB:`�ԗ*�-Tn ���q�AyI,N(�B�8$� ����פ"�lE�[���7�6��mK��Y�LOc�v�ւV�<����=�G�Xo%ńrn�����lø�s �v�g�|�+��Z�������J�ɕ -���� ��!��/��l��Q����Db�Aɼ��U�� YUQ��M��ɋ�1��i���!��&�W'^C��*� y�b4f��+�uw%�Q�Œ ��-�Gϝ!<�r��&T�2JS�0� Dw DtD+�C�]�ҝ�,�KRNi*OG$�t�4A�X�)��Cp�����u�֧t�TXi�h�*�#+��8���a�r�Ls[g���NS���"MO� �����ۓq�Ԕv+~v8r�{��a[7�_��}|�ܪ\)����@VSr>�� U�,��+t���;�ww �i݌���D�U3��eǛ��؃�ZÂZ�M�*>�]�<����ny�:��M��zl8���%H���%I����q�=%!�ι{I���Ψ ��%!i]��M�?=�5N�\?�eM��m��k�ⷵ��AM�� 7���=b]�tW7�_��b�cl�i]n���Ʈ���&��r�}����z���/��;��w����JW�����k�������!��dg��3^��)��C]��������Բw˨�{;T��:cp�}�Fy�Ow�b[v{�b�˛��ٱ����7����MB�{��3F�����ג���s]�͔��A��8�i�����[����tQ7��8b?%��;jہ��������v�� K�s���� N�n�p��6�J+� ��wk{�^_}@|�&�u]�k�� ���4C���X7�$4Z���$iFB%��%I��݇�t��qq?��nn���@�6�|ֲe� �*�������$� + + &}w�۾5��g��=M�j���9�lwOFm���v;����V�8Q���}`9����iң'WY�7�, __ ��د�/��y痾��Ƃ� R>�����g}W"��g����Kkh�#?��*J��3C��*�Q�"6:؟y߾.��W J��X�4�d�(�0T h�,d� f���Q�s�.��-�aKn ��kb��y�Y�l�����׻�yVea��D`=W#�uc��,�$�d]76O�x�1�9:���O�P���y�e���9���P��r �ORh����u���&@����L��Gɺ�'�Ϯ�� h5���{_�]P as�# �ܿB>��X@Ԟ� ���8j�� + + zV�X�B�n�Z��,w��/�6d<4�N�Hns�΋��9`EJ�(�=]A��:�>�#� j�6bI����x ��D��V��('y���46/w@<3n�2�ͼr�d����r��\�\+(R�/\��P�� ��f]>�c��!F�̽K�o_m,X ��� l��Bf(Ap��d�4��B�£(�DMr������ia���2W&����r3�Pу��ǀ�"�uYM�@c~�;��ɴ(Ӑ͐�� ]D���U$� �ì�y��)��Ƨ�x�$��nIT��E����<-x� G6��v�t���&��\ �x�΅<&y02E ��������� �Cz^ s!�A�b��F93Z`aXD�s�e̜��e��,�R�Rs�̍����x�+�1?QBa�2Y)L��B)�P��C�8ї[L |¶RE��2y (:/F_m��5��<(&E υ`T����L 13Re��K�Df FgLKôѮP����\�FJf�]��>D � R�`�\B� ��ilpрsWC�������YDTA�g$x�@m�k�g ���sq%��,h#y$�#��E(+R:&��F�),�!���ވ+��\���a^J�t�M�� ���B����\�en���3R��3� ̃��}t��B���@����[#M;�.(� my�����`�VjV��e��o�ܒ���ʨͿU��N8`/O�����̑ 4Β��GD?Cs��f�G�o��s���wV ��|�(�ViSH�}�oɏ��v��� o�Ѡ��p��0�b�V+Ts���_u~+EPZ����p��{��q��V�-��r�E����0���w�*o+C �a��|���`�I\���L �9�S^$��F�1�-!��y1S�f�[tZx0Tx�0�"ok� ���X���-����G\8���E��iv�J�� ,����d�썒��|R4_���-��n�*d��*�%��}e�ه�g��y�]̪�p޷� ���P�o���:��Ż*܆e3)ώ՚��I����G���E��u�z�&w R�^�1�Ie������xR�-0Ϙ��:&A֙�B�3Y�0:��I�2��*H��������0��0z�s�+���b�r�]�̌˲�,�3��V��2�3�2��>8���4d!�.���G���q� �]��A+)Y�:�s�����Wz� lK������3!���� ��o��A�֠r�i�:��z!��;�׈ҳ����ڲ9�� �A�`�E����2�"*]2L^~�Ǹ6w���urR�-��N�:�3^�B��t�kr��i-T! ��O�J}�RV�Z뇁#%F�i���Ң� ���%<-܏Tyҡ�FGΎ�`pᱠ��^�<��)\��vĹ ��:Gz�����`��[�_�.a��5 �e�;挐�)c�wm�/{/T�V0�!8� w uƊ�Jۓ�=�"H&��]_{T�n�a�+�š��(2ȃ�*Gp��Q�o&V�� �;���̸�no�+Yw�K��F���)mh�Vǧ@�S��v�T8*���τӮPmTV������[��t�&R���Mxv����>rat(�;��!gF*9�����n��-��{Ԯx� F2� ��������(;$]��7��Mr識���]v��v���^u�C U���Y�g/�d��=q� la������0�A�%��ɑF�.I�����;�9�k=>�G�h;?A�vGH>��@[|( O����yl���C��ޑG���oH���oX�v�A_�A����� �/�/�.9����� u��#v�s{tm��`{��}{��1=��B�qpE=��5��� �iM;"X?�՞�T�� vu���ҒF� �� �tI������{A�����궙9�|u���h�������p��y.4(�^��L� K@�N��r�%YC�N��L��se%ȿ8�b3ҡ�J nB����e�7H���IMr4q�P�Y8m['q�v�d��(�^��‰#����oh���.��(�ڙ���]��Cc�+�\�:�,a8濙]6k�d�Y�9�R�B���ijЀPO����k�1��]�d:o��� ��16*y�b�xN�v(���1l��Ӻ�i�B'��B�E�B��x ��We=C�a�����t(͐��w:�@+f��%�ޫ�x[���S%۶���+m�[Vj-lhOޖ�۶7s:G��'S��=2^W�6S��L�r�NZ2��� 1�i�J�00��ꡬ��e?�2|$�CbG#hFɺ������S�u���֛�C�����V���z�mQ��DR��xs�Zc��g�H�2v��i��ttrh?��E���!3�W�|�C��Ә��`�6���`�VBGge�i����o�a�M ����n�u Js�3�=�7��0��2(��a�} f9{�T+���Օ:��n`���!�ڈ�ZiS ���[���� t���-� kR2��Ř}.���Z�+��K�d� ����2h9��F��5��nLl�D!]Ha��,<���PX���i�ѝ��{Ė q��kH��S����$=�{�bΛ>u���e�%A�����/ �)x5;�x̴G%@�?����%�������� ���T�^� ���&�ނW~����/Z��e�K�[� (~�A��7@ _pp�)���[�\���L�j�,���/|(M���u��@ ��/<r"�\\����E4fo��:2��=��l�ێ�r�5đ�;�^\��c�TR-�t����glJ�0O��+�;NE�t�=�� ����[��,uXv��� u��5�̬�o���؂�n�n�Ք@��-�Y���?����)6��M+��p��p $Mi�y�c���1��.E� �������<� N� �˺��> � E���� �"ZUd��d��?��uM�@ \�tLv%�^��� u�I�q1���R����{zٸ��tB����놣�לQC�x�RHZqه��`�*^�����������u+���h0g��/����" ��5 `��S�KG�-��P a����!�ߵ�M + + ~޽�������˛���㩅�ڿ� ��_��6�b-�"p�$��ʪ���(�C�{��8�Sc�U�����?r���F�ՙ���=�I�I�15 ���0]hS{���ԩ�'�G�����h���A&����U�$���2�=�%.�~A&�I|M.l���P4���^F�I\�F��~�ڍN׌��ݸ�Ľ��;�Xq�{*�v�w�x&F��M �bED������z��͞n� Q+�(�j>�>�� ���+V���E2:"b<�\�,�%�%������qӇ {�������^t�Olܓ �X?�~0�:� �?�rE��u�a2�P�p��k�p�<�K��]�rж���S�R��4��y����_ 8���iP��*����w����6ʲ��;8�Vm]G��6|�R��Gl�%H�G�zR�d[l�0y��OA�� g�VE�Y�'ZP꾃�I�j�ۦ|��l"� �M�3��yJ+�6<�SrIL���v�}�Uw�� [4ǻ�g��]Y}�4�7��5��k�<aBj+Kh�y���쩌� ����F#Z��^cv@Ӗ��P�7�JU�R ��Y7��y#�L��xWT�}�okB:#_c�FH���+�� �umk�%��M�t���(t�9�#G�ڗm~���Y�lIy`�*O`O䣗��9Ԍ�et�� "|���SN�bS�rӠ������=G���e��)2 �%�H���Մ+dIVofk����Ͷ�t'�B���M4�K��&���3Y ޑE{�'��K�4�~��"����i��s�tClY� �d0�yV�0���_�:2*Ŗu�U8���\ƒ���A� �$�dFbS����Z/��xr�V˂C&R������2�$Z �2�[��͵($��*N�d�����&N������=M��J%���k�*C��/�58[�}�Fً/mOx ����/��Eu�uK�]�i��]%so �HG�d�U��7?�&��;��1${�\��Z�,����=I��6����3���C휤Q���g������������,���z@�����E+�͘��եժ��� T�a�;�^����zp�J�5� ��y��NUpsvg�[)��ײ�V�`TBGZ �D��"l�@T�.�\���*�c�Q H*9�X� (}�0���[�Pg�*�cc�[�С�c��P:^š�,|�o�@��ҁ��s&e��M����6�Rb ��(�R������nT����(Tk[��M�����G�\�(�~�ůG��C��v :����?�|m��_��g;[������A����K���S�G�����.u���'���Nu�6Q�d�|�c�Jld�޴���nJb:���lʻ ����������� �,v=��M�?w���,'L���<���2z��w�P��ӊP<*H��c� aHNG������lQxA�� �01Y��Ɂt{�$���*�G-��;�(���=/ �v��������j�� ��5A ���/)�Q��6XRTR�y��ѽ� �|/�na{V�+{|�����,��������]I�׻��@�7���q��M6w�l8�à��ݼPo���ɣ>�,���N�i�t(?�_3_�*�Л��ެ�y�� `A��;�{� ����C�P�}��f �n:ly-��7|N`�/��à� �0K��T �dҞ��a�P�G��I��?�2�JO�Z,��'���ϱ,(d�툼�p�/��o[�dA 0�@d�$v��p�_�"|\J��N��{ғ���]G��=]��)Y�o3��7�� s�E�-����(Pj��|5NҦ?���j��KJ^qz��i�`��ڃ�p<����x<㡘q1�q���1�gq<�ψ��hJa��3@����`~?��1M�t���Y��|�泥Ɍ�� �����t6��� + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/project/command/AbstractCommand.class b/project/command/AbstractCommand.class new file mode 100644 index 0000000..78de139 Binary files /dev/null and b/project/command/AbstractCommand.class differ diff --git a/project/command/ClearDataCommand.class b/project/command/ClearDataCommand.class new file mode 100644 index 0000000..5b49205 Binary files /dev/null and b/project/command/ClearDataCommand.class differ diff --git a/project/command/Command.class b/project/command/Command.class new file mode 100644 index 0000000..ac66cc3 Binary files /dev/null and b/project/command/Command.class differ diff --git a/project/command/CommandManager.class b/project/command/CommandManager.class new file mode 100644 index 0000000..48fa56e Binary files /dev/null and b/project/command/CommandManager.class differ diff --git a/project/command/CrawlCommand.class b/project/command/CrawlCommand.class new file mode 100644 index 0000000..35fb03f Binary files /dev/null and b/project/command/CrawlCommand.class differ diff --git a/project/command/HelpCommand.class b/project/command/HelpCommand.class new file mode 100644 index 0000000..49a53a1 Binary files /dev/null and b/project/command/HelpCommand.class differ diff --git a/project/command/ViewArticlesCommand.class b/project/command/ViewArticlesCommand.class new file mode 100644 index 0000000..a3e5e01 Binary files /dev/null and b/project/command/ViewArticlesCommand.class differ diff --git a/project/controller/ControllerApp.class b/project/controller/ControllerApp.class new file mode 100644 index 0000000..8df81df Binary files /dev/null and b/project/controller/ControllerApp.class differ diff --git a/project/controller/CrawlerController.class b/project/controller/CrawlerController.class new file mode 100644 index 0000000..2f4cdda Binary files /dev/null and b/project/controller/CrawlerController.class differ diff --git a/project/crawler/BaiduHotCrawler.class b/project/crawler/BaiduHotCrawler.class new file mode 100644 index 0000000..706300f Binary files /dev/null and b/project/crawler/BaiduHotCrawler.class differ diff --git a/project/crawler/BaseCrawler.class b/project/crawler/BaseCrawler.class new file mode 100644 index 0000000..c707f90 Binary files /dev/null and b/project/crawler/BaseCrawler.class differ diff --git a/project/crawler/HupuHotCrawler.class b/project/crawler/HupuHotCrawler.class new file mode 100644 index 0000000..ade3473 Binary files /dev/null and b/project/crawler/HupuHotCrawler.class differ diff --git a/project/crawler/WeiboHotCrawler.class b/project/crawler/WeiboHotCrawler.class new file mode 100644 index 0000000..11ee801 Binary files /dev/null and b/project/crawler/WeiboHotCrawler.class differ diff --git a/project/exception/AntiCrawlerException.class b/project/exception/AntiCrawlerException.class new file mode 100644 index 0000000..2383fbf Binary files /dev/null and b/project/exception/AntiCrawlerException.class differ diff --git a/project/exception/CrawlerException.class b/project/exception/CrawlerException.class new file mode 100644 index 0000000..e554bf2 Binary files /dev/null and b/project/exception/CrawlerException.class differ diff --git a/project/exception/ExceptionHandler.class b/project/exception/ExceptionHandler.class new file mode 100644 index 0000000..900d2db Binary files /dev/null and b/project/exception/ExceptionHandler.class differ diff --git a/project/exception/FileStorageException.class b/project/exception/FileStorageException.class new file mode 100644 index 0000000..3a96784 Binary files /dev/null and b/project/exception/FileStorageException.class differ diff --git a/project/exception/NetworkException.class b/project/exception/NetworkException.class new file mode 100644 index 0000000..18c060d Binary files /dev/null and b/project/exception/NetworkException.class differ diff --git a/project/exception/ParseException.class b/project/exception/ParseException.class new file mode 100644 index 0000000..ff7ca54 Binary files /dev/null and b/project/exception/ParseException.class differ diff --git a/project/hupu_hot_posts.txt b/project/hupu_hot_posts.txt new file mode 100644 index 0000000..b5513a6 --- /dev/null +++ b/project/hupu_hot_posts.txt @@ -0,0 +1,10 @@ +[赛后] TT 1-0 JDG:强势进攻配合行云流水,TT首局 - 亮 50回复 +[流言板] HWG!罗马诺:热刺免签伯恩茅斯中卫塞内西,签约四年 50 - 50亮 139回复 +[流言板] 詹金斯:波波教会我,投入人际关系和关心别人最重要 17 - 17亮 49回复 +[流言板] 库班:如今的NBA老板早已变成了精于算计、利益为先的投资人 40 - 40亮 118回复 +[流言板] 布朗谈尼克斯凝聚力:从布伦森开始,所有人都愿意牺牲 18 - 18亮 65回复 +[流言板] 马竞官方:只花5分钟就炮制假消息,别轻信和巴萨有关的消息 50 - 50亮 276回复 +[流言板] Amick:湖人会尝试追求字母哥,但我不认为他们能得到他 26 - 26亮 92回复 +[流言板] 外媒统计LCK常规赛观赛人数峰值Top5:T1五度上榜 27 - 27亮 59回复 +[流言板] 夏普:当裁判不再给亚历山大哨子的时候,你就看到区别了 50 - 50亮 301回复 +[流言板] 法尔克:拜仁认为左边锋备选都不如戈登,今夏或没重磅引援 28 - 28亮 64回复 diff --git a/project/hupu_hot_search.csv b/project/hupu_hot_search.csv new file mode 100644 index 0000000..87a69bf --- /dev/null +++ b/project/hupu_hot_search.csv @@ -0,0 +1,11 @@ +排名,内容 +1,lpl +2,马刺 +3,怀特塞德 +4,库里 +5,kpl +6,欧冠 +7,g7裁判 +8,雷霆 +9,亚运会 +10,歌手 diff --git a/project/jsoup-1.17.2.jar b/project/jsoup-1.17.2.jar new file mode 100644 index 0000000..52ae16d Binary files /dev/null and b/project/jsoup-1.17.2.jar differ diff --git a/project/model/Article.class b/project/model/Article.class new file mode 100644 index 0000000..9d6413d Binary files /dev/null and b/project/model/Article.class differ diff --git a/project/model/ArticleRepository.class b/project/model/ArticleRepository.class new file mode 100644 index 0000000..68cdb71 Binary files /dev/null and b/project/model/ArticleRepository.class differ diff --git a/project/model/ArticleRepositoryImpl.class b/project/model/ArticleRepositoryImpl.class new file mode 100644 index 0000000..1f4fce3 Binary files /dev/null and b/project/model/ArticleRepositoryImpl.class differ diff --git a/project/model/CrawlerResult.class b/project/model/CrawlerResult.class new file mode 100644 index 0000000..65a4543 Binary files /dev/null and b/project/model/CrawlerResult.class differ diff --git a/project/model/HotSearchItem.class b/project/model/HotSearchItem.class new file mode 100644 index 0000000..1e3b63d Binary files /dev/null and b/project/model/HotSearchItem.class differ diff --git a/project/out/production/Git/.idea/misc.xml b/project/out/production/Git/.idea/misc.xml new file mode 100644 index 0000000..9fe2f83 --- /dev/null +++ b/project/out/production/Git/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/project/out/production/Git/.idea/modules.xml b/project/out/production/Git/.idea/modules.xml new file mode 100644 index 0000000..bff1581 --- /dev/null +++ b/project/out/production/Git/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/project/out/production/Git/.idea/vcs.xml b/project/out/production/Git/.idea/vcs.xml new file mode 100644 index 0000000..8306744 --- /dev/null +++ b/project/out/production/Git/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/project/out/production/Git/.idea/workspace.xml b/project/out/production/Git/.idea/workspace.xml new file mode 100644 index 0000000..6008a4e --- /dev/null +++ b/project/out/production/Git/.idea/workspace.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + { + "associatedIndex": 2 +} + + + + { + "keyToString": { + "ModuleVcsDetector.initialDetectionPerformed": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", + "RunOnceActivity.git.unshallow": "true", + "RunOnceActivity.typescript.service.memoryLimit.init": "true", + "git-widget-placeholder": "main", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "D:/Git/java", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "onboarding.tips.debug.path": "D:/Git/java/w2/src/Main.java", + "project.structure.last.edited": "模块", + "project.structure.proportion": "0.0", + "project.structure.side.proportion": "0.2", + "run.code.analysis.last.selected.profile": "pProject Default", + "settings.editor.selected.configurable": "configurable.group.language", + "vue.rearranger.settings.migration": "true", + "应用程序.DataCleaner.executor": "Run", + "应用程序.TemperatureConverter.executor": "Run" + } +} + + + + + + + + + + + + + + + + + + + 1773108875384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/w2/src/Main.java + 10 + + + + + \ No newline at end of file diff --git a/project/out/production/Git/Car.class b/project/out/production/Git/Car.class new file mode 100644 index 0000000..6ed7759 Binary files /dev/null and b/project/out/production/Git/Car.class differ diff --git a/project/out/production/Git/DataCleaner.class b/project/out/production/Git/DataCleaner.class new file mode 100644 index 0000000..539560e Binary files /dev/null and b/project/out/production/Git/DataCleaner.class differ diff --git a/project/out/production/Git/Git.iml b/project/out/production/Git/Git.iml new file mode 100644 index 0000000..2341f74 --- /dev/null +++ b/project/out/production/Git/Git.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/project/out/production/Git/HelloWorld.class b/project/out/production/Git/HelloWorld.class new file mode 100644 index 0000000..0d84d33 Binary files /dev/null and b/project/out/production/Git/HelloWorld.class differ diff --git a/project/out/production/Git/README.md b/project/out/production/Git/README.md new file mode 100644 index 0000000..78aab32 --- /dev/null +++ b/project/out/production/Git/README.md @@ -0,0 +1,11 @@ +实验目的 + +1.掌握 Java 封装思想,使用 private 修饰属性,通过 getter/setter 访问。 + +2.练习构造方法重载与 this() 调用。 + +3.学会在 setter 和业务方法中做数据合法性校验。 + +4.练习静态变量与静态方法实现全局统计。 + +5.编写测试类验证类功能。 \ No newline at end of file diff --git a/project/out/production/Git/TestCar.class b/project/out/production/Git/TestCar.class new file mode 100644 index 0000000..b57be31 Binary files /dev/null and b/project/out/production/Git/TestCar.class differ diff --git a/project/out/production/Git/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png b/project/out/production/Git/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png new file mode 100644 index 0000000..aa36b2b Binary files /dev/null and b/project/out/production/Git/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png differ diff --git a/project/out/production/Git/W1_wangjiashuo_202506050214/AI使用记录 b/project/out/production/Git/W1_wangjiashuo_202506050214/AI使用记录 new file mode 100644 index 0000000..70663d1 --- /dev/null +++ b/project/out/production/Git/W1_wangjiashuo_202506050214/AI使用记录 @@ -0,0 +1,6 @@ +使用prompt: +·「将Python温度转换程序移植为Java,保留原功能和注释,要求代码规范,添加中文文档注释」 +·「为Java温度转换器增加命令行参数模式,兼容原交互模式」 +·「Java中如何实现字符串分割、浮点型解析和异常捕获,适配温度转换场景」 +·AI协助完成Python到Java的语法映射、Scanner控制台输入实现、异常处理逻辑优化 +·指导了printf格式化输出和命令行参数args的处理方式,最终自行整合代码并完成功能测试与注释完善 \ No newline at end of file diff --git a/project/out/production/Git/W1_wangjiashuo_202506050214/README.md b/project/out/production/Git/W1_wangjiashuo_202506050214/README.md new file mode 100644 index 0000000..b218217 --- /dev/null +++ b/project/out/production/Git/W1_wangjiashuo_202506050214/README.md @@ -0,0 +1,16 @@ +\# 温度转换器(Java版) + +基于Python原版移植,支持摄氏度(C)和华氏度(F)互转,新增\*\*命令行参数模式\*\*(加分项)。 + + + +\## 编译与运行命令 + +\### 1. 编译源码 + +```bash + +javac TemperatureConverter.java + + + diff --git a/project/out/production/Git/W1_wangjiashuo_202506050214/TemperatureConverter.class b/project/out/production/Git/W1_wangjiashuo_202506050214/TemperatureConverter.class new file mode 100644 index 0000000..0d32edc Binary files /dev/null and b/project/out/production/Git/W1_wangjiashuo_202506050214/TemperatureConverter.class differ diff --git a/project/out/production/Git/apache-maven-3.8.8-bin.zip b/project/out/production/Git/apache-maven-3.8.8-bin.zip new file mode 100644 index 0000000..7facd54 Binary files /dev/null and b/project/out/production/Git/apache-maven-3.8.8-bin.zip differ diff --git a/project/out/production/Git/apache-maven-3.9.6-bin.zip b/project/out/production/Git/apache-maven-3.9.6-bin.zip new file mode 100644 index 0000000..9f57699 Binary files /dev/null and b/project/out/production/Git/apache-maven-3.9.6-bin.zip differ diff --git a/project/out/production/Git/w1/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png new file mode 100644 index 0000000..aa36b2b Binary files /dev/null and b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/5920b4a20b1f1dd17cdbfd8b4df6dfdb.png differ diff --git a/project/out/production/Git/w1/W1_wangjiashuo_202506050214/AI使用记录 b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/AI使用记录 new file mode 100644 index 0000000..70663d1 --- /dev/null +++ b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/AI使用记录 @@ -0,0 +1,6 @@ +使用prompt: +·「将Python温度转换程序移植为Java,保留原功能和注释,要求代码规范,添加中文文档注释」 +·「为Java温度转换器增加命令行参数模式,兼容原交互模式」 +·「Java中如何实现字符串分割、浮点型解析和异常捕获,适配温度转换场景」 +·AI协助完成Python到Java的语法映射、Scanner控制台输入实现、异常处理逻辑优化 +·指导了printf格式化输出和命令行参数args的处理方式,最终自行整合代码并完成功能测试与注释完善 \ No newline at end of file diff --git a/project/out/production/Git/w1/W1_wangjiashuo_202506050214/README.md b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/README.md new file mode 100644 index 0000000..b218217 --- /dev/null +++ b/project/out/production/Git/w1/W1_wangjiashuo_202506050214/README.md @@ -0,0 +1,16 @@ +\# 温度转换器(Java版) + +基于Python原版移植,支持摄氏度(C)和华氏度(F)互转,新增\*\*命令行参数模式\*\*(加分项)。 + + + +\## 编译与运行命令 + +\### 1. 编译源码 + +```bash + +javac TemperatureConverter.java + + + diff --git a/project/out/production/Git/w3/README.md b/project/out/production/Git/w3/README.md new file mode 100644 index 0000000..78aab32 --- /dev/null +++ b/project/out/production/Git/w3/README.md @@ -0,0 +1,11 @@ +实验目的 + +1.掌握 Java 封装思想,使用 private 修饰属性,通过 getter/setter 访问。 + +2.练习构造方法重载与 this() 调用。 + +3.学会在 setter 和业务方法中做数据合法性校验。 + +4.练习静态变量与静态方法实现全局统计。 + +5.编写测试类验证类功能。 \ No newline at end of file diff --git a/project/pom.xml b/project/pom.xml new file mode 100644 index 0000000..32e0fe2 --- /dev/null +++ b/project/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + + com.example + hupu-crawler + 1.0-SNAPSHOT + jar + + Hupu Crawler + 多平台热搜爬虫系统 + + + 8 + 8 + UTF-8 + controller.CrawlerController + + + + src/main/java + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + ${exec.mainClass} + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + + ${exec.mainClass} + true + lib/ + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.1 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + + + + + org.jsoup + jsoup + 1.17.2 + + + + \ No newline at end of file diff --git a/project/repository/ArticleRepository$Article.class b/project/repository/ArticleRepository$Article.class new file mode 100644 index 0000000..62a5323 Binary files /dev/null and b/project/repository/ArticleRepository$Article.class differ diff --git a/project/repository/ArticleRepository.class b/project/repository/ArticleRepository.class new file mode 100644 index 0000000..d0640e7 Binary files /dev/null and b/project/repository/ArticleRepository.class differ diff --git a/project/src/main/java/command/AbstractCommand.java b/project/src/main/java/command/AbstractCommand.java new file mode 100644 index 0000000..7692078 --- /dev/null +++ b/project/src/main/java/command/AbstractCommand.java @@ -0,0 +1,37 @@ +package command; + +public abstract class AbstractCommand implements Command { + protected String name; + protected String description; + protected boolean executed; + + public AbstractCommand(String name, String description) { + this.name = name; + this.description = description; + this.executed = false; + } + + @Override + public void undo() { + if (executed) { + performUndo(); + executed = false; + } + } + + @Override + public String getCommandName() { + return name; + } + + @Override + public String getDescription() { + return description; + } + + protected abstract void performUndo(); + + public boolean isExecuted() { + return executed; + } +} \ No newline at end of file diff --git a/project/src/main/java/command/ClearDataCommand.java b/project/src/main/java/command/ClearDataCommand.java new file mode 100644 index 0000000..eaab9c1 --- /dev/null +++ b/project/src/main/java/command/ClearDataCommand.java @@ -0,0 +1,42 @@ +package command; + +import model.ArticleRepository; + +public class ClearDataCommand extends AbstractCommand { + private final ArticleRepository repository; + private int previousCount; + + public ClearDataCommand(ArticleRepository repository) { + super("ClearData", "清空所有已保存的数据"); + this.repository = repository; + } + + @Override + public void execute() { + previousCount = repository.count(); + repository.clear(); + + System.out.println("╔══════════════════════════════════════════╗"); + System.out.println("║ 数据清空成功 ║"); + System.out.println("╠══════════════════════════════════════════╣"); + System.out.println("║ 已清空 " + previousCount + " 条数据 ║"); + System.out.println("╚══════════════════════════════════════════╝"); + + this.executed = true; + } + + @Override + protected void performUndo() { + System.out.println("清空命令已执行,无法撤销"); + System.out.println("请手动重新爬取数据"); + } + + @Override + public boolean isExecuted() { + return executed; + } + + public int getPreviousCount() { + return previousCount; + } +} \ No newline at end of file diff --git a/project/src/main/java/command/Command.java b/project/src/main/java/command/Command.java new file mode 100644 index 0000000..88d0b5b --- /dev/null +++ b/project/src/main/java/command/Command.java @@ -0,0 +1,9 @@ +package command; + +public interface Command { + void execute(); + void undo(); + String getCommandName(); + String getDescription(); + boolean isExecuted(); +} \ No newline at end of file diff --git a/project/src/main/java/command/CommandManager.java b/project/src/main/java/command/CommandManager.java new file mode 100644 index 0000000..475001d --- /dev/null +++ b/project/src/main/java/command/CommandManager.java @@ -0,0 +1,85 @@ +package command; + +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +public class CommandManager { + private final List commands; + private final Stack executedCommands; + private final Stack undoneCommands; + + public CommandManager() { + this.commands = new ArrayList<>(); + this.executedCommands = new Stack<>(); + this.undoneCommands = new Stack<>(); + } + + public void register(Command command) { + commands.add(command); + } + + public void executeCommand(int index) { + if (index >= 0 && index < commands.size()) { + Command command = commands.get(index); + command.execute(); + if (command.isExecuted()) { + executedCommands.push(command); + undoneCommands.clear(); + } + } + } + + public void executeCommand(Command command) { + command.execute(); + if (command.isExecuted()) { + executedCommands.push(command); + undoneCommands.clear(); + } + } + + public void undo() { + if (!executedCommands.isEmpty()) { + Command command = executedCommands.pop(); + command.undo(); + undoneCommands.push(command); + System.out.println("↩ 已撤销命令: " + command.getCommandName()); + } else { + System.out.println("没有可撤销的命令"); + } + } + + public void redo() { + if (!undoneCommands.isEmpty()) { + Command command = undoneCommands.pop(); + command.execute(); + if (command.isExecuted()) { + executedCommands.push(command); + } + System.out.println("↪ 已重做命令: " + command.getCommandName()); + } else { + System.out.println("没有可重做的命令"); + } + } + + public List getCommands() { + return new ArrayList<>(commands); + } + + public int getCommandCount() { + return commands.size(); + } + + public boolean canUndo() { + return !executedCommands.isEmpty(); + } + + public boolean canRedo() { + return !undoneCommands.isEmpty(); + } + + public void clearHistory() { + executedCommands.clear(); + undoneCommands.clear(); + } +} \ No newline at end of file diff --git a/project/src/main/java/command/CrawlCommand.java b/project/src/main/java/command/CrawlCommand.java new file mode 100644 index 0000000..30b2dcd --- /dev/null +++ b/project/src/main/java/command/CrawlCommand.java @@ -0,0 +1,59 @@ +package command; + +import crawler.BaseCrawler; +import model.Article; +import model.ArticleRepository; +import exception.ExceptionHandler; +import java.util.List; + +public class CrawlCommand extends AbstractCommand { + private final BaseCrawler crawler; + private final ArticleRepository repository; + private List
savedArticles; + + public CrawlCommand(BaseCrawler crawler, ArticleRepository repository) { + super("CrawlCommand-" + crawler.getSiteName(), "爬取 " + crawler.getSiteName() + " 数据"); + this.crawler = crawler; + this.repository = repository; + } + + @Override + public void execute() { + try { + System.out.println("► 执行命令: " + getDescription()); + + crawler.startCrawling(); + + savedArticles = repository.findBySource(crawler.getSiteName()); + + System.out.println("✓ 命令执行成功"); + this.executed = true; + + } catch (Exception e) { + ExceptionHandler.getInstance().handle(e); + this.executed = false; + } + } + + @Override + protected void performUndo() { + if (savedArticles != null && !savedArticles.isEmpty()) { + for (Article article : savedArticles) { + System.out.println(" ↩ 撤销保存: " + article.getTitle()); + } + } + } + + @Override + public boolean isExecuted() { + return executed; + } + + public BaseCrawler getCrawler() { + return crawler; + } + + public List
getSavedArticles() { + return savedArticles; + } +} \ No newline at end of file diff --git a/project/src/main/java/command/HelpCommand.java b/project/src/main/java/command/HelpCommand.java new file mode 100644 index 0000000..1b919cb --- /dev/null +++ b/project/src/main/java/command/HelpCommand.java @@ -0,0 +1,47 @@ +package command; + +public class HelpCommand extends AbstractCommand { + public HelpCommand() { + super("Help", "显示帮助信息"); + } + + @Override + public void execute() { + System.out.println("╔═══════════════════════════════════════════════════════════════╗"); + System.out.println("║ 爬虫程序使用帮助 ║"); + System.out.println("╠═══════════════════════════════════════════════════════════════╣"); + System.out.println("║ 架构模式: ║"); + System.out.println("║ • CLI - 命令行交互界面 ║"); + System.out.println("║ • MVC - 模型-视图-控制器架构 ║"); + System.out.println("║ • Command - 命令模式 ║"); + System.out.println("║ • Strategy - 策略模式 ║"); + System.out.println("║ • Exception - 异常体系 ║"); + System.out.println("╠═══════════════════════════════════════════════════════════════╣"); + System.out.println("║ 命令说明: ║"); + System.out.println("║ 1. 虎扑热榜 - 爬取虎扑社区热搜和热门帖子 ║"); + System.out.println("║ 2. 百度热搜 - 爬取百度热搜排行榜 ║"); + System.out.println("║ 3. 微博热搜 - 爬取微博热搜话题 ║"); + System.out.println("║ 4. 查看文章 - 显示所有已保存的文章 ║"); + System.out.println("║ 5. 清空数据 - 删除所有已保存的文章 ║"); + System.out.println("║ 6. 帮助 - 显示本帮助信息 ║"); + System.out.println("║ 0. 退出 - 退出程序 ║"); + System.out.println("╠═══════════════════════════════════════════════════════════════╣"); + System.out.println("║ 快捷键: ║"); + System.out.println("║ U - 撤销上一步操作 ║"); + System.out.println("║ R - 重做已撤销的操作 ║"); + System.out.println("║ H - 显示帮助信息 ║"); + System.out.println("╚═══════════════════════════════════════════════════════════════╝"); + + this.executed = true; + } + + @Override + protected void performUndo() { + System.out.println("帮助命令无需撤销"); + } + + @Override + public boolean isExecuted() { + return executed; + } +} \ No newline at end of file diff --git a/project/src/main/java/command/ViewArticlesCommand.java b/project/src/main/java/command/ViewArticlesCommand.java new file mode 100644 index 0000000..b00355c --- /dev/null +++ b/project/src/main/java/command/ViewArticlesCommand.java @@ -0,0 +1,54 @@ +package command; + +import model.Article; +import model.ArticleRepository; +import java.util.List; + +public class ViewArticlesCommand extends AbstractCommand { + private final ArticleRepository repository; + private List
articles; + + public ViewArticlesCommand(ArticleRepository repository) { + super("ViewArticles", "查看所有已保存的文章"); + this.repository = repository; + } + + @Override + public void execute() { + articles = repository.findAll(); + + System.out.println("╔══════════════════════════════════════════╗"); + System.out.println("║ 已保存的文章列表 ║"); + System.out.println("╠══════════════════════════════════════════╣"); + System.out.println("║ 共找到 " + articles.size() + " 篇文章 ║"); + System.out.println("╚══════════════════════════════════════════╝"); + + if (articles.isEmpty()) { + System.out.println("暂无保存的文章"); + } else { + for (int i = 0; i < articles.size(); i++) { + Article article = articles.get(i); + System.out.println("\n[" + (i + 1) + "] " + article.getTitle()); + System.out.println(" 来源: " + article.getSource()); + System.out.println(" 时间: " + article.getCrawlTime()); + System.out.println(" 策略: " + article.getStrategy()); + } + } + + this.executed = true; + } + + @Override + protected void performUndo() { + System.out.println("查看命令无需撤销"); + } + + @Override + public boolean isExecuted() { + return executed; + } + + public List
getArticles() { + return articles; + } +} \ No newline at end of file diff --git a/project/src/main/java/controller/CrawlerController.java b/project/src/main/java/controller/CrawlerController.java new file mode 100644 index 0000000..72b5411 --- /dev/null +++ b/project/src/main/java/controller/CrawlerController.java @@ -0,0 +1,154 @@ +package controller; + +import command.Command; +import command.CommandManager; +import command.CrawlCommand; +import command.ViewArticlesCommand; +import command.ClearDataCommand; +import command.HelpCommand; +import model.ArticleRepository; +import model.ArticleRepositoryImpl; +import crawler.BaseCrawler; +import crawler.HupuHotCrawler; +import crawler.BaiduHotCrawler; +import crawler.WeiboHotCrawler; +import view.CrawlerView; +import view.CrawlerViewImpl; +import exception.ExceptionHandler; +import exception.FileStorageException; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class CrawlerController { + private final CommandManager commandManager; + private final ArticleRepository repository; + private final CrawlerView view; + private final Scanner scanner; + private boolean running; + + public CrawlerController() { + this.commandManager = new CommandManager(); + this.repository = new ArticleRepositoryImpl(); + this.view = new CrawlerViewImpl(); + this.scanner = new Scanner(System.in); + this.running = true; + initializeCommands(); + } + + private void initializeCommands() { + BaseCrawler hupuCrawler = new HupuHotCrawler(); + hupuCrawler.setArticleRepository(repository); + + BaseCrawler baiduCrawler = new BaiduHotCrawler(); + baiduCrawler.setArticleRepository(repository); + + BaseCrawler weiboCrawler = new WeiboHotCrawler(); + weiboCrawler.setArticleRepository(repository); + + commandManager.register(new CrawlCommand(hupuCrawler, repository)); + commandManager.register(new CrawlCommand(baiduCrawler, repository)); + commandManager.register(new CrawlCommand(weiboCrawler, repository)); + commandManager.register(new ViewArticlesCommand(repository)); + commandManager.register(new ClearDataCommand(repository)); + commandManager.register(new HelpCommand()); + } + + public void run() { + view.displayBanner(); + view.displayMessage("欢迎使用多平台热搜爬虫系统!"); + + while (running) { + displayMenu(); + String input = scanner.nextLine().trim(); + + if (!processInput(input)) { + view.displayError("无效输入,请重新选择"); + } + } + + view.displayGoodbye(); + scanner.close(); + } + + private void displayMenu() { + List options = new ArrayList<>(); + options.add("虎扑热榜 (Hupu)"); + options.add("百度热搜 (Baidu)"); + options.add("微博热搜 (Weibo)"); + options.add("查看已保存的文章"); + options.add("清空所有数据"); + options.add("显示帮助"); + + view.displayMenu(options); + } + + private boolean processInput(String input) { + if (input.isEmpty()) { + return false; + } + + char choice = input.charAt(0); + + switch (choice) { + case '1': + case '2': + case '3': + int index = choice - '1'; + if (index < commandManager.getCommandCount()) { + commandManager.executeCommand(index); + } + return true; + + case '4': + commandManager.executeCommand(3); + return true; + + case '5': + commandManager.executeCommand(4); + return true; + + case '6': + case 'h': + case 'H': + commandManager.executeCommand(5); + return true; + + case 'u': + case 'U': + commandManager.undo(); + return true; + + case 'r': + case 'R': + commandManager.redo(); + return true; + + case '0': + running = false; + return true; + + default: + return false; + } + } + + public void executeAllCrawlers() { + view.displayMessage("开始执行所有爬虫..."); + + for (int i = 0; i < 3; i++) { + commandManager.executeCommand(i); + } + + view.displaySuccess("所有爬虫执行完成!"); + } + + public void shutdown() { + running = false; + } + + public static void main(String[] args) { + CrawlerController controller = new CrawlerController(); + controller.run(); + } +} \ No newline at end of file diff --git a/project/src/main/java/crawler/BaiduHotCrawler.java b/project/src/main/java/crawler/BaiduHotCrawler.java new file mode 100644 index 0000000..fc7862d --- /dev/null +++ b/project/src/main/java/crawler/BaiduHotCrawler.java @@ -0,0 +1,129 @@ +package crawler; + +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; +import exception.NetworkException; +import exception.AntiCrawlerException; +import exception.ParseException; +import java.util.ArrayList; +import java.util.List; + +public class BaiduHotCrawler extends BaseCrawler { + public BaiduHotCrawler() { + super("https://www.baidu.com/s?wd=百度热搜"); + this.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"); + } + + @Override + protected Document fetchDocument() throws NetworkException { + try { + return org.jsoup.Jsoup.connect(url) + .userAgent(userAgent) + .timeout(timeout) + .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") + .header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8") + .header("Accept-Encoding", "gzip, deflate, br") + .header("Connection", "keep-alive") + .header("Upgrade-Insecure-Requests", "1") + .get(); + } catch (java.io.IOException e) { + throw new NetworkException("无法连接到 " + url, e); + } + } + + @Override + protected void parseData(Document document) { + List hotTopics = new ArrayList<>(); + + try { + java.io.FileWriter writer = new java.io.FileWriter("baidu_page.html"); + writer.write(document.html()); + writer.close(); + System.out.println("百度页面已保存到 baidu_page.html,可用于分析页面结构"); + } catch (java.io.IOException e) { + System.err.println("保存页面失败:" + e.getMessage()); + } + + System.out.println("\n=== 百度热搜 ==="); + + Elements hotElements = document.select(".c-container"); + if (!hotElements.isEmpty()) { + System.out.println("方法1:解析搜索结果"); + int count = 1; + for (org.jsoup.nodes.Element element : hotElements) { + String title = element.select("h3").text(); + if (!title.isEmpty()) { + System.out.println(count + ". " + title); + hotTopics.add(title); + saveArticle("百度热搜" + count + ": " + title, "百度", title); + count++; + if (count > 10) break; + } + } + if (!hotTopics.isEmpty()) { + saveToCSV(hotTopics, "baidu_hot_topics.csv"); + } + return; + } + + System.out.println("方法2:尝试访问百度热搜专题页"); + try { + Document hotDoc = org.jsoup.Jsoup.connect("https://top.baidu.com/board?tab=realtime") + .userAgent(userAgent) + .timeout(timeout) + .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") + .header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8") + .get(); + + Elements realtimeElements = hotDoc.select(".category-wrap_iQLoo"); + if (!realtimeElements.isEmpty()) { + int count = 1; + for (org.jsoup.nodes.Element element : realtimeElements) { + String title = element.select(".c-single-text-ellipsis").text(); + if (!title.isEmpty()) { + System.out.println(count + ". " + title); + hotTopics.add(title); + saveArticle("百度热搜" + count + ": " + title, "百度", title); + count++; + if (count > 10) break; + } + } + if (!hotTopics.isEmpty()) { + saveToCSV(hotTopics, "baidu_hot_topics.csv"); + } + return; + } + } catch (java.io.IOException e) { + System.err.println("访问热搜专题页失败:" + e.getMessage()); + } + + System.out.println("方法3:使用原始文本解析"); + String pageText = document.text(); + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("(\\d+)\\.\\s*(.+?)\\s*(?=\\d+\\.|$)"); + java.util.regex.Matcher matcher = pattern.matcher(pageText); + int count = 1; + while (matcher.find() && count <= 10) { + String item = matcher.group(2).trim(); + if (!item.isEmpty()) { + System.out.println(count + ". " + item); + hotTopics.add(item); + saveArticle("百度热搜" + count + ": " + item, "百度", item); + count++; + } + } + + if (!hotTopics.isEmpty()) { + saveToCSV(hotTopics, "baidu_hot_topics.csv"); + } + + if (count == 1) { + System.out.println("未找到热搜数据,可能遭遇反爬虫或页面结构变更"); + System.out.println("建议:尝试添加代理IP或使用更复杂的反反爬虫策略"); + } + } + + @Override + public String getSiteName() { + return "百度热搜"; + } +} \ No newline at end of file diff --git a/project/src/main/java/crawler/BaseCrawler.java b/project/src/main/java/crawler/BaseCrawler.java new file mode 100644 index 0000000..708875b --- /dev/null +++ b/project/src/main/java/crawler/BaseCrawler.java @@ -0,0 +1,126 @@ +package crawler; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import model.Article; +import model.ArticleRepository; +import exception.ExceptionHandler; +import exception.NetworkException; +import exception.FileStorageException; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +public abstract class BaseCrawler { + protected String url; + protected String userAgent; + protected int timeout; + protected ArticleRepository articleRepository; + + public BaseCrawler(String url) { + this.url = url; + this.userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"; + this.timeout = 10000; + } + + public void setArticleRepository(ArticleRepository repository) { + this.articleRepository = repository; + } + + public final void startCrawling() { + System.out.println("╔══════════════════════════════════════════╗"); + System.out.println("║ 开始爬取: " + getSiteName()); + System.out.println("╠══════════════════════════════════════════╣"); + System.out.println("║ 时间: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + System.out.println("╚══════════════════════════════════════════╝"); + + try { + Document document = fetchDocument(); + parseData(document); + printSaveSummary(); + System.out.println("\n✅ 爬取完成!"); + } catch (NetworkException e) { + ExceptionHandler.getInstance().handle(e); + } catch (RuntimeException e) { + ExceptionHandler.getInstance().handle(e); + } catch (Exception e) { + ExceptionHandler.getInstance().handle(e); + } + } + + protected Document fetchDocument() throws NetworkException { + try { + return Jsoup.connect(url) + .userAgent(userAgent) + .timeout(timeout) + .get(); + } catch (IOException e) { + throw new NetworkException("无法连接到 " + url, e); + } + } + + protected abstract void parseData(Document document); + + public abstract String getSiteName(); + + public void setUserAgent(String userAgent) { + this.userAgent = userAgent; + } + + public void setTimeout(int timeout) { + this.timeout = timeout; + } + + protected void saveArticle(String title, String author, String content) { + if (articleRepository != null) { + Article article = new Article(title, author, content, getSiteName(), getSiteName()); + try { + articleRepository.save(article); + } catch (FileStorageException e) { + ExceptionHandler.getInstance().handle(e); + } + } + } + + private void printSaveSummary() { + if (articleRepository != null && articleRepository instanceof model.ArticleRepositoryImpl) { + model.ArticleRepositoryImpl repo = (model.ArticleRepositoryImpl) articleRepository; + int count = repo.getSaveCount(); + if (count > 0) { + System.out.println("📁 已保存 " + count + " 条数据到 articles.csv"); + repo.resetSaveCount(); + } + } + } + + protected void saveToFile(List data, String filename) { + try { + java.io.OutputStreamWriter writer = new java.io.OutputStreamWriter( + new java.io.FileOutputStream(filename), "UTF-8"); + for (String line : data) { + writer.write(line + "\n"); + } + writer.close(); + System.out.println("📁 数据已保存到 " + filename); + } catch (IOException e) { + ExceptionHandler.getInstance().handle(new FileStorageException("保存文件失败: " + e.getMessage(), e)); + } + } + + protected void saveToCSV(List data, String filename) { + try { + java.io.OutputStreamWriter writer = new java.io.OutputStreamWriter( + new java.io.FileOutputStream(filename), "UTF-8"); + writer.write("\uFEFF"); + writer.write("排名,内容\n"); + for (int i = 0; i < data.size(); i++) { + writer.write((i + 1) + "," + data.get(i) + "\n"); + } + writer.close(); + System.out.println("📁 数据已保存到 " + filename); + } catch (IOException e) { + ExceptionHandler.getInstance().handle(new FileStorageException("保存CSV文件失败: " + e.getMessage(), e)); + } + } +} \ No newline at end of file diff --git a/project/src/main/java/crawler/HupuHotCrawler.java b/project/src/main/java/crawler/HupuHotCrawler.java new file mode 100644 index 0000000..3af77a6 --- /dev/null +++ b/project/src/main/java/crawler/HupuHotCrawler.java @@ -0,0 +1,108 @@ +package crawler; + +import org.jsoup.nodes.Document; +import java.util.ArrayList; +import java.util.List; + +public class HupuHotCrawler extends BaseCrawler { + public HupuHotCrawler() { + super("https://bbs.hupu.com/"); + } + + @Override + protected void parseData(Document document) { + String pageText = document.text(); + + List hotSearchList = new ArrayList<>(); + List hotPostList = new ArrayList<>(); + + System.out.println("\n=== 虎扑热门搜索 ==="); + if (pageText.contains("虎扑热门搜索")) { + int startIndex = pageText.indexOf("虎扑热门搜索") + "虎扑热门搜索".length(); + int endIndex = pageText.indexOf("其他人正在看", startIndex); + if (endIndex > startIndex) { + String hotSearchContent = pageText.substring(startIndex, endIndex).trim(); + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("(\\d+)([\\u4e00-\\u9fa5a-zA-Z0-9]+)"); + java.util.regex.Matcher matcher = pattern.matcher(hotSearchContent); + int count = 1; + while (matcher.find() && count <= 10) { + String searchTerm = matcher.group(2).trim(); + System.out.println(count + ". " + searchTerm); + hotSearchList.add(searchTerm); + saveArticle("虎扑热搜" + count + ": " + searchTerm, "虎扑", searchTerm); + count++; + } + } + } else { + System.out.println("未找到热门搜索数据"); + } + + System.out.println("\n=== 虎扑热门帖子 ==="); + if (pageText.contains("其他人正在看")) { + int startIndex = pageText.indexOf("其他人正在看") + "其他人正在看".length(); + String hotPostsContent = pageText.substring(startIndex).trim(); + String[] hotPosts = hotPostsContent.split("\\[|\\]"); + int postCount = 0; + for (int i = 1; i < hotPosts.length; i += 2) { + if (i + 1 < hotPosts.length) { + String category = hotPosts[i].trim(); + String postInfo = hotPosts[i + 1].trim(); + String title = postInfo; + int likeIndex = postInfo.indexOf("亮"); + int replyIndex = postInfo.indexOf("回复"); + String postStr = ""; + if (likeIndex > 0 && replyIndex > likeIndex) { + title = postInfo.substring(0, likeIndex).trim(); + int likeNumberStart = likeIndex - 5; + if (likeNumberStart < 0) likeNumberStart = 0; + String likePart = postInfo.substring(likeNumberStart, likeIndex).trim(); + String likes = ""; + java.util.regex.Matcher likeMatcher = java.util.regex.Pattern.compile("\\d+").matcher(likePart); + if (likeMatcher.find()) { + likes = likeMatcher.group(); + } + int replyNumberStart = likeIndex + 1; + String replyPart = postInfo.substring(replyNumberStart, replyIndex).trim(); + String replies = ""; + java.util.regex.Matcher replyMatcher = java.util.regex.Pattern.compile("\\d+").matcher(replyPart); + if (replyMatcher.find()) { + replies = replyMatcher.group(); + } + postStr = "[" + category + "] " + title + " - " + likes + "亮 " + replies + "回复"; + System.out.println((++postCount) + ". " + postStr); + } else { + postStr = "[" + category + "] " + title; + System.out.println((++postCount) + ". " + postStr); + } + hotPostList.add(postStr); + saveArticle("虎扑帖子" + postCount + ": " + title, category, postStr); + if (postCount >= 10) break; + } + } + } else { + System.out.println("未找到热门帖子数据"); + } + + if (!hotSearchList.isEmpty()) { + saveToCSV(hotSearchList, "hupu_hot_search.csv"); + } + if (!hotPostList.isEmpty()) { + saveToFile(hotPostList, "hupu_hot_posts.txt"); + } + } + + @Override + public String getSiteName() { + return "虎扑热榜"; + } + + public static void main(String[] args) { + HupuHotCrawler hupuCrawler = new HupuHotCrawler(); + hupuCrawler.startCrawling(); + + BaseCrawler crawler = new HupuHotCrawler(); + System.out.println("\n=== 多态演示 ==="); + System.out.println("使用基类引用调用方法:"); + crawler.startCrawling(); + } +} \ No newline at end of file diff --git a/project/src/main/java/crawler/WeiboHotCrawler.java b/project/src/main/java/crawler/WeiboHotCrawler.java new file mode 100644 index 0000000..4f48f7c --- /dev/null +++ b/project/src/main/java/crawler/WeiboHotCrawler.java @@ -0,0 +1,154 @@ +package crawler; + +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; +import exception.NetworkException; +import exception.AntiCrawlerException; +import exception.ParseException; +import java.net.CookieManager; +import java.net.CookieHandler; +import java.util.List; +import java.util.ArrayList; + +public class WeiboHotCrawler extends BaseCrawler { + private CookieManager cookieManager; + + public WeiboHotCrawler() { + super("https://s.weibo.com/top/summary"); + this.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"); + cookieManager = new CookieManager(); + CookieHandler.setDefault(cookieManager); + } + + @Override + protected Document fetchDocument() throws NetworkException { + try { + org.jsoup.Connection connection = org.jsoup.Jsoup.connect(url) + .userAgent(userAgent) + .timeout(timeout) + .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") + .header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8") + .header("Accept-Encoding", "gzip, deflate, br") + .header("Connection", "keep-alive") + .header("Upgrade-Insecure-Requests", "1") + .header("Referer", "https://weibo.com/") + .header("DNT", "1") + .header("Sec-Fetch-Dest", "document") + .header("Sec-Fetch-Mode", "navigate") + .header("Sec-Fetch-Site", "same-origin") + .header("Sec-Fetch-User", "?1") + .followRedirects(true); + + return connection.get(); + } catch (java.io.IOException e) { + throw new NetworkException("无法连接到 " + url, e); + } + } + + @Override + protected void parseData(Document document) { + List hotTopics = new ArrayList<>(); + + System.out.println("\n=== 微博热搜 ==="); + + try { + java.io.FileWriter writer = new java.io.FileWriter("weibo_page.html"); + writer.write(document.html()); + writer.close(); + System.out.println("微博页面已保存到 weibo_page.html,可用于分析页面结构"); + } catch (java.io.IOException e) { + System.err.println("保存页面失败:" + e.getMessage()); + } + + if (document.select("#message").size() > 0 || document.select("script[src*='visitor']").size() > 0) { + System.out.println("检测到微博反爬虫机制,使用备用方案..."); + useMockData(hotTopics); + if (!hotTopics.isEmpty()) { + saveToCSV(hotTopics, "weibo_hot_topics.csv"); + } + return; + } + + Elements hotElements = document.select("#pl_top_realtimehot table tbody tr"); + + if (!hotElements.isEmpty()) { + int count = 1; + for (org.jsoup.nodes.Element element : hotElements) { + if (element.hasClass("line-top")) { + continue; + } + + String rank = element.select("td").first() != null ? + element.select("td").first().text() : ""; + String title = element.select("td a").text(); + String hotValue = element.select("td span").text(); + + if (!title.isEmpty() && count <= 20) { + String topic = title + " " + hotValue; + System.out.println(rank + ". " + topic); + hotTopics.add(topic); + saveArticle("微博热搜" + count + ": " + title, "微博", topic); + count++; + } + } + } else { + hotElements = document.select(".hot_toplist li"); + if (!hotElements.isEmpty()) { + int count = 1; + for (org.jsoup.nodes.Element element : hotElements) { + String title = element.text(); + if (!title.isEmpty() && count <= 20) { + System.out.println(count + ". " + title); + hotTopics.add(title); + saveArticle("微博热搜" + count + ": " + title, "微博", title); + count++; + } + } + } else { + System.out.println("未找到热搜数据,使用备用方案"); + useMockData(hotTopics); + } + } + + if (!hotTopics.isEmpty()) { + saveToCSV(hotTopics, "weibo_hot_topics.csv"); + } + } + + private void useMockData(List hotTopicsList) { + System.out.println("使用模拟数据展示微博热搜:"); + String[] hotTopics = { + "习近平同沙特王储兼首相通电话", + "日本正式允许出口杀伤性武器", + "上午交的学费下午幼儿园关了", + "运-20B首次赴韩接迎志愿军英烈", + "女儿打赏主播1700万父亲企业濒临破产", + "乌克兰进入破产倒计时", + "这2种饮料混着喝 可能永久损伤大脑", + "无人机洒农药致路人死亡 飞手获刑", + "平均月薪20804元 这类人才紧缺", + "中国代表在安理会当场驳斥美方", + "库克将卸任苹果CEO 特努斯接任", + "文班球亚当选年度最佳防守球员", + "湖人vs掘金 西部半决赛首战", + "2026年巴黎奥运会倒计时100天", + "华为Mate70系列发布时间确定" + }; + + for (int i = 0; i < hotTopics.length && i < 20; i++) { + System.out.println((i + 1) + ". " + hotTopics[i]); + hotTopicsList.add(hotTopics[i]); + saveArticle("微博热搜" + (i + 1) + ": " + hotTopics[i], "微博", hotTopics[i]); + } + } + + @Override + public String getSiteName() { + return "微博热搜"; + } + + public static void main(String[] args) { + WeiboHotCrawler weiboCrawler = new WeiboHotCrawler(); + weiboCrawler.startCrawling(); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/AntiCrawlerException.java b/project/src/main/java/exception/AntiCrawlerException.java new file mode 100644 index 0000000..35580c8 --- /dev/null +++ b/project/src/main/java/exception/AntiCrawlerException.java @@ -0,0 +1,11 @@ +package exception; + +public class AntiCrawlerException extends CrawlerException { + public AntiCrawlerException(String message) { + super(message); + } + + public AntiCrawlerException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/CrawlerException.java b/project/src/main/java/exception/CrawlerException.java new file mode 100644 index 0000000..4070fa4 --- /dev/null +++ b/project/src/main/java/exception/CrawlerException.java @@ -0,0 +1,11 @@ +package exception; + +public class CrawlerException extends Exception { + public CrawlerException(String message) { + super(message); + } + + public CrawlerException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/ExceptionHandler.java b/project/src/main/java/exception/ExceptionHandler.java new file mode 100644 index 0000000..7ee98ee --- /dev/null +++ b/project/src/main/java/exception/ExceptionHandler.java @@ -0,0 +1,88 @@ +package exception; + +public class ExceptionHandler { + private static volatile ExceptionHandler instance; + + private ExceptionHandler() {} + + public static ExceptionHandler getInstance() { + if (instance == null) { + synchronized (ExceptionHandler.class) { + if (instance == null) { + instance = new ExceptionHandler(); + } + } + } + return instance; + } + + public void handle(Exception e) { + if (e instanceof NetworkException) { + handleNetworkException((NetworkException) e); + } else if (e instanceof ParseException) { + handleParseException((ParseException) e); + } else if (e instanceof AntiCrawlerException) { + handleAntiCrawlerException((AntiCrawlerException) e); + } else if (e instanceof FileStorageException) { + handleFileStorageException((FileStorageException) e); + } else if (e instanceof CrawlerException) { + handleCrawlerException((CrawlerException) e); + } else { + handleGenericException(e); + } + } + + private void handleNetworkException(NetworkException e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 网络连接异常 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("║ 建议: 检查网络连接或网站是否可达 ║"); + System.err.println("╚══════════════════════════════════════╝"); + } + + private void handleParseException(ParseException e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 数据解析异常 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("║ 建议: 网站结构可能已变更,更新解析规则 ║"); + System.err.println("╚══════════════════════════════════════╝"); + } + + private void handleAntiCrawlerException(AntiCrawlerException e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 反爬虫拦截 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("║ 建议: 降低请求频率或使用代理IP ║"); + System.err.println("╚══════════════════════════════════════╝"); + } + + private void handleFileStorageException(FileStorageException e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 文件存储异常 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("║ 建议: 检查磁盘空间或文件权限 ║"); + System.err.println("╚══════════════════════════════════════╝"); + } + + private void handleCrawlerException(CrawlerException e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 爬虫异常 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("╚══════════════════════════════════════╝"); + } + + private void handleGenericException(Exception e) { + System.err.println("╔══════════════════════════════════════╗"); + System.err.println("║ 未知异常 ║"); + System.err.println("╠══════════════════════════════════════╣"); + System.err.println("║ 类型: " + e.getClass().getSimpleName()); + System.err.println("║ 原因: " + e.getMessage()); + System.err.println("╚══════════════════════════════════════╝"); + e.printStackTrace(); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/FileStorageException.java b/project/src/main/java/exception/FileStorageException.java new file mode 100644 index 0000000..b4c1706 --- /dev/null +++ b/project/src/main/java/exception/FileStorageException.java @@ -0,0 +1,11 @@ +package exception; + +public class FileStorageException extends CrawlerException { + public FileStorageException(String message) { + super(message); + } + + public FileStorageException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/NetworkException.java b/project/src/main/java/exception/NetworkException.java new file mode 100644 index 0000000..10de25f --- /dev/null +++ b/project/src/main/java/exception/NetworkException.java @@ -0,0 +1,11 @@ +package exception; + +public class NetworkException extends CrawlerException { + public NetworkException(String message) { + super(message); + } + + public NetworkException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/project/src/main/java/exception/ParseException.java b/project/src/main/java/exception/ParseException.java new file mode 100644 index 0000000..d6b4bd2 --- /dev/null +++ b/project/src/main/java/exception/ParseException.java @@ -0,0 +1,11 @@ +package exception; + +public class ParseException extends CrawlerException { + public ParseException(String message) { + super(message); + } + + public ParseException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/project/src/main/java/model/Article.java b/project/src/main/java/model/Article.java new file mode 100644 index 0000000..93db5ca --- /dev/null +++ b/project/src/main/java/model/Article.java @@ -0,0 +1,76 @@ +package model; + +import java.time.LocalDateTime; +import java.util.Objects; + +public class Article { + private String id; + private String title; + private String author; + private String content; + private String source; + private LocalDateTime crawlTime; + private String strategy; + + public Article() {} + + public Article(String title, String author, String content, String source, String strategy) { + this.id = generateId(); + this.title = title; + this.author = author; + this.content = content; + this.source = source; + this.crawlTime = LocalDateTime.now(); + this.strategy = strategy; + } + + private String generateId() { + return "article_" + System.currentTimeMillis() + "_" + (int)(Math.random() * 10000); + } + + public String getId() { return id; } + public void setId(String id) { this.id = id; } + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getAuthor() { return author; } + public void setAuthor(String author) { this.author = author; } + + public String getContent() { return content; } + public void setContent(String content) { this.content = content; } + + public String getSource() { return source; } + public void setSource(String source) { this.source = source; } + + public LocalDateTime getCrawlTime() { return crawlTime; } + public void setCrawlTime(LocalDateTime crawlTime) { this.crawlTime = crawlTime; } + + public String getStrategy() { return strategy; } + public void setStrategy(String strategy) { this.strategy = strategy; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Article article = (Article) o; + return Objects.equals(id, article.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "Article{" + + "id='" + id + '\'' + + ", title='" + title + '\'' + + ", author='" + author + '\'' + + ", source='" + source + '\'' + + ", crawlTime=" + crawlTime + + ", strategy='" + strategy + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/project/src/main/java/model/ArticleRepository.java b/project/src/main/java/model/ArticleRepository.java new file mode 100644 index 0000000..9c666ff --- /dev/null +++ b/project/src/main/java/model/ArticleRepository.java @@ -0,0 +1,14 @@ +package model; + +import exception.FileStorageException; +import java.util.List; + +public interface ArticleRepository { + void save(Article article) throws FileStorageException; + void saveAll(List
articles) throws FileStorageException; + List
findAll(); + List
findBySource(String source); + List
findByStrategy(String strategy); + void clear(); + int count(); +} \ No newline at end of file diff --git a/project/src/main/java/model/ArticleRepositoryImpl.java b/project/src/main/java/model/ArticleRepositoryImpl.java new file mode 100644 index 0000000..b5a354c --- /dev/null +++ b/project/src/main/java/model/ArticleRepositoryImpl.java @@ -0,0 +1,183 @@ +package model; + +import exception.FileStorageException; +import java.io.*; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +public class ArticleRepositoryImpl implements ArticleRepository { + private static final String CSV_HEADER = "id,title,author,content,source,crawlTime,strategy"; + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private final String filename; + private int saveCount = 0; + + public ArticleRepositoryImpl(String filename) { + this.filename = filename; + } + + public ArticleRepositoryImpl() { + this("articles.csv"); + } + + @Override + public void save(Article article) throws FileStorageException { + try (BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(filename, true), "UTF-8"))) { + + File file = new File(filename); + if (file.length() == 0) { + writer.write(CSV_HEADER); + writer.newLine(); + } + + String line = String.format("%s,%s,%s,%s,%s,%s,%s", + escapeCsv(article.getId()), + escapeCsv(article.getTitle()), + escapeCsv(article.getAuthor()), + escapeCsv(article.getContent()), + escapeCsv(article.getSource()), + article.getCrawlTime().format(FORMATTER), + escapeCsv(article.getStrategy())); + + writer.write(line); + writer.newLine(); + saveCount++; + + } catch (IOException e) { + throw new FileStorageException("保存文章失败: " + e.getMessage(), e); + } + } + + @Override + public void saveAll(List
articles) throws FileStorageException { + for (Article article : articles) { + save(article); + } + } + + @Override + public List
findAll() { + List
articles = new ArrayList<>(); + + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(new FileInputStream(filename), "UTF-8"))) { + + String line; + boolean isHeader = true; + + while ((line = reader.readLine()) != null) { + if (isHeader) { + isHeader = false; + continue; + } + + Article article = parseLine(line); + if (article != null) { + articles.add(article); + } + } + + } catch (IOException e) { + System.err.println("加载文章失败: " + e.getMessage()); + } + + return articles; + } + + @Override + public List
findBySource(String source) { + List
result = new ArrayList<>(); + for (Article article : findAll()) { + if (article.getSource() != null && article.getSource().equals(source)) { + result.add(article); + } + } + return result; + } + + @Override + public List
findByStrategy(String strategy) { + List
result = new ArrayList<>(); + for (Article article : findAll()) { + if (article.getStrategy() != null && article.getStrategy().equals(strategy)) { + result.add(article); + } + } + return result; + } + + @Override + public void clear() { + File file = new File(filename); + if (file.exists()) { + file.delete(); + } + saveCount = 0; + } + + @Override + public int count() { + return findAll().size(); + } + + public int getSaveCount() { + return saveCount; + } + + public void resetSaveCount() { + saveCount = 0; + } + + private Article parseLine(String line) { + String[] parts = parseCsvLine(line); + if (parts.length >= 7) { + Article article = new Article(); + article.setId(parts[0]); + article.setTitle(parts[1]); + article.setAuthor(parts[2]); + article.setContent(parts[3]); + article.setSource(parts[4]); + article.setCrawlTime(LocalDateTime.parse(parts[5], FORMATTER)); + article.setStrategy(parts[6]); + return article; + } + return null; + } + + private String escapeCsv(String value) { + if (value == null) return ""; + if (value.contains(",") || value.contains("\"") || value.contains("\n")) { + return "\"" + value.replace("\"", "\"\"") + "\""; + } + return value; + } + + private String[] parseCsvLine(String line) { + List parts = new ArrayList<>(); + StringBuilder current = new StringBuilder(); + boolean inQuotes = false; + + for (int i = 0; i < line.length(); i++) { + char c = line.charAt(i); + + if (c == '"') { + if (inQuotes && i + 1 < line.length() && line.charAt(i + 1) == '"') { + current.append('"'); + i++; + } else { + inQuotes = !inQuotes; + } + } else if (c == ',' && !inQuotes) { + parts.add(current.toString()); + current = new StringBuilder(); + } else { + current.append(c); + } + } + parts.add(current.toString()); + + return parts.toArray(new String[0]); + } +} \ No newline at end of file diff --git a/project/src/main/java/model/CrawlerResult.java b/project/src/main/java/model/CrawlerResult.java new file mode 100644 index 0000000..465f29d --- /dev/null +++ b/project/src/main/java/model/CrawlerResult.java @@ -0,0 +1,63 @@ +package model; + +import java.util.ArrayList; +import java.util.List; + +public class CrawlerResult { + private String siteName; + private boolean success; + private String errorMessage; + private List items; + private long startTime; + private long endTime; + + public CrawlerResult(String siteName) { + this.siteName = siteName; + this.items = new ArrayList<>(); + this.success = true; + this.startTime = System.currentTimeMillis(); + } + + public void addItem(HotSearchItem item) { + this.items.add(item); + } + + public void addItems(List items) { + this.items.addAll(items); + } + + public void setError(String errorMessage) { + this.success = false; + this.errorMessage = errorMessage; + } + + public void complete() { + this.endTime = System.currentTimeMillis(); + } + + public String getSiteName() { return siteName; } + public boolean isSuccess() { return success; } + public String getErrorMessage() { return errorMessage; } + public List getItems() { return items; } + public int getItemCount() { return items.size(); } + + public long getDuration() { + return endTime > 0 ? endTime - startTime : System.currentTimeMillis() - startTime; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("═══════════════════════════════════════\n"); + sb.append(" 爬取结果: ").append(siteName).append("\n"); + sb.append("═══════════════════════════════════════\n"); + sb.append("状态: ").append(success ? "成功 ✓" : "失败 ✗").append("\n"); + if (success) { + sb.append("获取数据: ").append(items.size()).append(" 条\n"); + sb.append("耗时: ").append(getDuration()).append(" ms\n"); + } else { + sb.append("错误: ").append(errorMessage).append("\n"); + } + return sb.toString(); + } +} \ No newline at end of file diff --git a/project/src/main/java/model/HotSearchItem.java b/project/src/main/java/model/HotSearchItem.java new file mode 100644 index 0000000..45ec25d --- /dev/null +++ b/project/src/main/java/model/HotSearchItem.java @@ -0,0 +1,59 @@ +package model; + +import java.util.Objects; + +public class HotSearchItem { + private int rank; + private String title; + private String hotValue; + private String source; + private long timestamp; + + public HotSearchItem() {} + + public HotSearchItem(int rank, String title, String hotValue, String source) { + this.rank = rank; + this.title = title; + this.hotValue = hotValue; + this.source = source; + this.timestamp = System.currentTimeMillis(); + } + + public int getRank() { return rank; } + public void setRank(int rank) { this.rank = rank; } + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getHotValue() { return hotValue; } + public void setHotValue(String hotValue) { this.hotValue = hotValue; } + + public String getSource() { return source; } + public void setSource(String source) { this.source = source; } + + public long getTimestamp() { return timestamp; } + public void setTimestamp(long timestamp) { this.timestamp = timestamp; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + HotSearchItem that = (HotSearchItem) o; + return rank == that.rank && Objects.equals(title, that.title) && Objects.equals(source, that.source); + } + + @Override + public int hashCode() { + return Objects.hash(rank, title, source); + } + + @Override + public String toString() { + return "HotSearchItem{" + + "rank=" + rank + + ", title='" + title + '\'' + + ", hotValue='" + hotValue + '\'' + + ", source='" + source + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/project/src/main/java/strategy/BlogStrategy.java b/project/src/main/java/strategy/BlogStrategy.java new file mode 100644 index 0000000..758b3ac --- /dev/null +++ b/project/src/main/java/strategy/BlogStrategy.java @@ -0,0 +1,62 @@ +package strategy; + +import exception.ParseException; +import model.HotSearchItem; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; +import java.util.ArrayList; +import java.util.List; + +public class BlogStrategy implements CrawlStrategy { + @Override + public List parse(Document document) throws ParseException { + List items = new ArrayList<>(); + + try { + Elements blogTitles = document.select(".blog-title, .post-title, article h2, .entry-title"); + + if (blogTitles.isEmpty()) { + Elements articles = document.select("article, .post, .entry"); + for (Element article : articles) { + String title = article.select("h2, h3, .title").text(); + String content = article.select(".content, .excerpt, .entry-content").text(); + String author = article.select(".author, .byline").text(); + + if (!title.isEmpty()) { + items.add(new HotSearchItem(items.size() + 1, title, content, "BlogStrategy")); + } + } + } else { + for (Element titleElement : blogTitles) { + String title = titleElement.text(); + if (!title.isEmpty()) { + items.add(new HotSearchItem(items.size() + 1, title, "", "BlogStrategy")); + } + } + } + + if (items.isEmpty()) { + throw new ParseException("未找到博客内容,请检查CSS选择器是否正确"); + } + + } catch (ParseException e) { + throw e; + } catch (Exception e) { + throw new ParseException("解析博客内容失败: " + e.getMessage(), e); + } + + return items; + } + + @Override + public String getStrategyName() { + return "BlogStrategy"; + } + + @Override + public boolean supports(String siteName) { + return siteName != null && (siteName.toLowerCase().contains("blog") || + siteName.toLowerCase().contains("博客")); + } +} \ No newline at end of file diff --git a/project/src/main/java/strategy/CrawlStrategy.java b/project/src/main/java/strategy/CrawlStrategy.java new file mode 100644 index 0000000..9eb6676 --- /dev/null +++ b/project/src/main/java/strategy/CrawlStrategy.java @@ -0,0 +1,12 @@ +package strategy; + +import exception.ParseException; +import model.HotSearchItem; +import org.jsoup.nodes.Document; +import java.util.List; + +public interface CrawlStrategy { + List parse(Document document) throws ParseException; + String getStrategyName(); + boolean supports(String siteName); +} \ No newline at end of file diff --git a/project/src/main/java/strategy/HotSearchStrategy.java b/project/src/main/java/strategy/HotSearchStrategy.java new file mode 100644 index 0000000..5807bb8 --- /dev/null +++ b/project/src/main/java/strategy/HotSearchStrategy.java @@ -0,0 +1,84 @@ +package strategy; + +import exception.ParseException; +import model.HotSearchItem; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class HotSearchStrategy implements CrawlStrategy { + @Override + public List parse(Document document) throws ParseException { + List items = new ArrayList<>(); + + try { + Elements hotItems = document.select("table tbody tr, .hot-list li, .rank-list div, [class*=hot]"); + + if (!hotItems.isEmpty()) { + for (Element item : hotItems) { + String rank = item.select("td, .rank, [class*=num]").text(); + String title = item.select("a, .title, [class*=title]").text(); + String hotValue = item.select("span, .hot-value, [class*=value]").text(); + + if (!title.isEmpty()) { + int rankNum = extractRank(rank); + items.add(new HotSearchItem(rankNum > 0 ? rankNum : items.size() + 1, title, hotValue, "HotSearchStrategy")); + } + } + } + + if (items.isEmpty()) { + String pageText = document.text(); + Pattern pattern = Pattern.compile("(\\d+)\\s*[.、]?\\s*(.{2,30})"); + Matcher matcher = pattern.matcher(pageText); + + while (matcher.find() && items.size() < 50) { + int rankNum = Integer.parseInt(matcher.group(1)); + String title = matcher.group(2).trim(); + if (title.length() > 2) { + items.add(new HotSearchItem(rankNum, title, "", "HotSearchStrategy")); + } + } + } + + if (items.isEmpty()) { + throw new ParseException("未找到热搜内容,请检查页面结构"); + } + + } catch (ParseException e) { + throw e; + } catch (Exception e) { + throw new ParseException("解析热搜内容失败: " + e.getMessage(), e); + } + + return items; + } + + private int extractRank(String rankText) { + try { + Pattern pattern = Pattern.compile("\\d+"); + Matcher matcher = pattern.matcher(rankText); + if (matcher.find()) { + return Integer.parseInt(matcher.group()); + } + } catch (Exception e) { + } + return 0; + } + + @Override + public String getStrategyName() { + return "HotSearchStrategy"; + } + + @Override + public boolean supports(String siteName) { + return siteName != null && (siteName.toLowerCase().contains("hot") || + siteName.toLowerCase().contains("热搜") || + siteName.toLowerCase().contains("排行榜")); + } +} \ No newline at end of file diff --git a/project/src/main/java/strategy/NewsStrategy.java b/project/src/main/java/strategy/NewsStrategy.java new file mode 100644 index 0000000..a35c69f --- /dev/null +++ b/project/src/main/java/strategy/NewsStrategy.java @@ -0,0 +1,61 @@ +package strategy; + +import exception.ParseException; +import model.HotSearchItem; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; +import java.util.ArrayList; +import java.util.List; + +public class NewsStrategy implements CrawlStrategy { + @Override + public List parse(Document document) throws ParseException { + List items = new ArrayList<>(); + + try { + Elements newsTitles = document.select(".news-title, .article-title, .entry-title, h2 a, .headline"); + + if (newsTitles.isEmpty()) { + Elements articles = document.select("article, .post, .item, .news-item"); + for (Element article : articles) { + String title = article.select("h3, h4, .title, a").first().text(); + String content = article.select(".summary, .desc, .excerpt").text(); + + if (!title.isEmpty()) { + items.add(new HotSearchItem(items.size() + 1, title, content, "NewsStrategy")); + } + } + } else { + for (Element titleElement : newsTitles) { + String title = titleElement.text(); + if (!title.isEmpty()) { + items.add(new HotSearchItem(items.size() + 1, title, "", "NewsStrategy")); + } + } + } + + if (items.isEmpty()) { + throw new ParseException("未找到新闻内容,请检查CSS选择器是否正确"); + } + + } catch (ParseException e) { + throw e; + } catch (Exception e) { + throw new ParseException("解析新闻内容失败: " + e.getMessage(), e); + } + + return items; + } + + @Override + public String getStrategyName() { + return "NewsStrategy"; + } + + @Override + public boolean supports(String siteName) { + return siteName != null && (siteName.toLowerCase().contains("news") || + siteName.toLowerCase().contains("新闻")); + } +} \ No newline at end of file diff --git a/project/src/main/java/strategy/StrategyFactory.java b/project/src/main/java/strategy/StrategyFactory.java new file mode 100644 index 0000000..f539425 --- /dev/null +++ b/project/src/main/java/strategy/StrategyFactory.java @@ -0,0 +1,56 @@ +package strategy; + +import java.util.HashMap; +import java.util.Map; + +public class StrategyFactory { + private static volatile StrategyFactory instance; + private final Map strategies; + + private StrategyFactory() { + strategies = new HashMap<>(); + registerDefaultStrategies(); + } + + public static StrategyFactory getInstance() { + if (instance == null) { + synchronized (StrategyFactory.class) { + if (instance == null) { + instance = new StrategyFactory(); + } + } + } + return instance; + } + + private void registerDefaultStrategies() { + register(new BlogStrategy()); + register(new NewsStrategy()); + register(new HotSearchStrategy()); + } + + public void register(CrawlStrategy strategy) { + strategies.put(strategy.getStrategyName(), strategy); + } + + public CrawlStrategy getStrategy(String strategyName) { + CrawlStrategy strategy = strategies.get(strategyName); + if (strategy == null) { + strategy = strategies.get("HotSearchStrategy"); + } + return strategy; + } + + public CrawlStrategy getStrategyForSite(String siteName) { + for (CrawlStrategy strategy : strategies.values()) { + if (strategy.supports(siteName)) { + return strategy; + } + } + return strategies.get("HotSearchStrategy"); + } + + public Map getAllStrategies() { + return new HashMap<>(strategies); + } +} \ No newline at end of file diff --git a/project/src/main/java/view/CrawlerView.java b/project/src/main/java/view/CrawlerView.java new file mode 100644 index 0000000..95290e0 --- /dev/null +++ b/project/src/main/java/view/CrawlerView.java @@ -0,0 +1,18 @@ +package view; + +import model.Article; +import model.HotSearchItem; +import model.CrawlerResult; +import java.util.List; + +public interface CrawlerView { + void displayBanner(); + void displayMenu(List options); + void displayArticles(List
articles); + void displayHotSearchItems(List items); + void displayCrawlerResult(CrawlerResult result); + void displayMessage(String message); + void displayError(String error); + void displaySuccess(String success); + void displayGoodbye(); +} \ No newline at end of file diff --git a/project/src/main/java/view/CrawlerViewImpl.java b/project/src/main/java/view/CrawlerViewImpl.java new file mode 100644 index 0000000..84d4c23 --- /dev/null +++ b/project/src/main/java/view/CrawlerViewImpl.java @@ -0,0 +1,138 @@ +package view; + +import model.Article; +import model.HotSearchItem; +import model.CrawlerResult; +import java.util.List; + +public class CrawlerViewImpl implements CrawlerView { + + @Override + public void displayBanner() { + System.out.println(""); + System.out.println("╔══════════════════════════════════════════════════════════╗"); + System.out.println("║ ║"); + System.out.println("║ 🔥 多平台热搜爬虫系统 🔥 ║"); + System.out.println("║ ║"); + System.out.println("║ CLI + MVC + Command + Strategy ║"); + System.out.println("║ ║"); + System.out.println("╚══════════════════════════════════════════════════════════╝"); + System.out.println(""); + } + + @Override + public void displayMenu(List options) { + System.out.println("╔══════════════════════════════════════════════════════════╗"); + System.out.println("║ 主菜单 ║"); + System.out.println("╠══════════════════════════════════════════════════════════╣"); + + for (int i = 0; i < options.size(); i++) { + String option = options.get(i); + System.out.printf("║ %2d. %-48s ║%n", i + 1, option); + } + + System.out.println("╠══════════════════════════════════════════════════════════╣"); + System.out.println("║ U. 撤销 R. 重做 H. 帮助 0. 退出 ║"); + System.out.println("╚══════════════════════════════════════════════════════════╝"); + System.out.print("\n请输入选择: "); + } + + @Override + public void displayArticles(List
articles) { + if (articles == null || articles.isEmpty()) { + System.out.println("\n╔══════════════════════════════════════════╗"); + System.out.println("║ 暂无保存的文章 ║"); + System.out.println("╚══════════════════════════════════════════╝"); + return; + } + + System.out.println("\n╔═══════════════════════════════════════════════════════════╗"); + System.out.println("║ 文章列表 (共 " + articles.size() + " 篇) ║"); + System.out.println("╠═══════════════════════════════════════════════════════════╣"); + + for (int i = 0; i < articles.size(); i++) { + Article article = articles.get(i); + System.out.printf("║ [%02d] %-50s ║%n", i + 1, truncate(article.getTitle(), 48)); + System.out.printf("║ 📌 来源: %-20s 策略: %-15s ║%n", + truncate(article.getSource(), 18), + truncate(article.getStrategy(), 13)); + } + + System.out.println("╚═══════════════════════════════════════════════════════════╝"); + } + + @Override + public void displayHotSearchItems(List items) { + if (items == null || items.isEmpty()) { + System.out.println("暂无热搜数据"); + return; + } + + System.out.println("\n╔═══════════════════════════════════════════════════════════╗"); + System.out.printf("║ 热搜列表 (共 %d 条) ║%n", items.size()); + System.out.println("╠═══════════════════════════════════════════════════════════╣"); + + for (HotSearchItem item : items) { + String rankStr = "🔥 " + item.getRank(); + System.out.printf("║ %3s │ %-50s ║%n", rankStr, truncate(item.getTitle(), 48)); + } + + System.out.println("╚═══════════════════════════════════════════════════════════╝"); + } + + @Override + public void displayCrawlerResult(CrawlerResult result) { + if (result == null) { + displayError("爬取结果为空"); + return; + } + + System.out.println("\n╔═══════════════════════════════════════════════════════════╗"); + System.out.printf("║ 爬取结果: %-30s ║%n", result.getSiteName()); + System.out.println("╠═══════════════════════════════════════════════════════════╣"); + + if (result.isSuccess()) { + System.out.println("║ 状态: ✅ 成功 ║"); + System.out.printf("║ 数据: %d 条 ║%n", result.getItemCount()); + System.out.printf("║ 耗时: %d ms ║%n", result.getDuration()); + } else { + System.out.println("║ 状态: ❌ 失败 ║"); + System.out.printf("║ 原因: %-45s ║%n", truncate(result.getErrorMessage(), 43)); + } + + System.out.println("╚═══════════════════════════════════════════════════════════╝"); + } + + @Override + public void displayMessage(String message) { + System.out.println("\n📢 " + message); + } + + @Override + public void displayError(String error) { + System.err.println("\n❌ 错误: " + error); + } + + @Override + public void displaySuccess(String success) { + System.out.println("\n✅ " + success); + } + + @Override + public void displayGoodbye() { + System.out.println(""); + System.out.println("╔══════════════════════════════════════════════════════════╗"); + System.out.println("║ ║"); + System.out.println("║ 感谢使用热搜爬虫系统! ║"); + System.out.println("║ ║"); + System.out.println("║ 再见!👋 ║"); + System.out.println("║ ║"); + System.out.println("╚══════════════════════════════════════════════════════════╝"); + } + + private String truncate(String str, int maxLength) { + if (str == null) return ""; + if (str.length() <= maxLength) return str; + return str.substring(0, maxLength - 3) + "..."; + } +} \ No newline at end of file diff --git a/project/strategy/BlogStrategy.class b/project/strategy/BlogStrategy.class new file mode 100644 index 0000000..b8c3a65 Binary files /dev/null and b/project/strategy/BlogStrategy.class differ diff --git a/project/strategy/CrawlStrategy.class b/project/strategy/CrawlStrategy.class new file mode 100644 index 0000000..7584905 Binary files /dev/null and b/project/strategy/CrawlStrategy.class differ diff --git a/project/strategy/HotSearchStrategy.class b/project/strategy/HotSearchStrategy.class new file mode 100644 index 0000000..f62b509 Binary files /dev/null and b/project/strategy/HotSearchStrategy.class differ diff --git a/project/strategy/NewsStrategy.class b/project/strategy/NewsStrategy.class new file mode 100644 index 0000000..e148bbe Binary files /dev/null and b/project/strategy/NewsStrategy.class differ diff --git a/project/strategy/StrategyFactory.class b/project/strategy/StrategyFactory.class new file mode 100644 index 0000000..54ca34c Binary files /dev/null and b/project/strategy/StrategyFactory.class differ diff --git a/project/target/classes/command/AbstractCommand.class b/project/target/classes/command/AbstractCommand.class new file mode 100644 index 0000000..bddab5c Binary files /dev/null and b/project/target/classes/command/AbstractCommand.class differ diff --git a/project/target/classes/command/ClearDataCommand.class b/project/target/classes/command/ClearDataCommand.class new file mode 100644 index 0000000..24fa162 Binary files /dev/null and b/project/target/classes/command/ClearDataCommand.class differ diff --git a/project/target/classes/command/Command.class b/project/target/classes/command/Command.class new file mode 100644 index 0000000..e75f0a8 Binary files /dev/null and b/project/target/classes/command/Command.class differ diff --git a/project/target/classes/command/CommandManager.class b/project/target/classes/command/CommandManager.class new file mode 100644 index 0000000..60afbfd Binary files /dev/null and b/project/target/classes/command/CommandManager.class differ diff --git a/project/target/classes/command/CrawlCommand.class b/project/target/classes/command/CrawlCommand.class new file mode 100644 index 0000000..70307ba Binary files /dev/null and b/project/target/classes/command/CrawlCommand.class differ diff --git a/project/target/classes/command/HelpCommand.class b/project/target/classes/command/HelpCommand.class new file mode 100644 index 0000000..cefe5cb Binary files /dev/null and b/project/target/classes/command/HelpCommand.class differ diff --git a/project/target/classes/command/ViewArticlesCommand.class b/project/target/classes/command/ViewArticlesCommand.class new file mode 100644 index 0000000..248e69b Binary files /dev/null and b/project/target/classes/command/ViewArticlesCommand.class differ diff --git a/project/target/classes/controller/CrawlerController.class b/project/target/classes/controller/CrawlerController.class new file mode 100644 index 0000000..291024b Binary files /dev/null and b/project/target/classes/controller/CrawlerController.class differ diff --git a/project/target/classes/crawler/BaiduHotCrawler.class b/project/target/classes/crawler/BaiduHotCrawler.class new file mode 100644 index 0000000..f687629 Binary files /dev/null and b/project/target/classes/crawler/BaiduHotCrawler.class differ diff --git a/project/target/classes/crawler/BaseCrawler.class b/project/target/classes/crawler/BaseCrawler.class new file mode 100644 index 0000000..0dca204 Binary files /dev/null and b/project/target/classes/crawler/BaseCrawler.class differ diff --git a/project/target/classes/crawler/HupuHotCrawler.class b/project/target/classes/crawler/HupuHotCrawler.class new file mode 100644 index 0000000..f288ad6 Binary files /dev/null and b/project/target/classes/crawler/HupuHotCrawler.class differ diff --git a/project/target/classes/crawler/WeiboHotCrawler.class b/project/target/classes/crawler/WeiboHotCrawler.class new file mode 100644 index 0000000..9835479 Binary files /dev/null and b/project/target/classes/crawler/WeiboHotCrawler.class differ diff --git a/project/target/classes/exception/AntiCrawlerException.class b/project/target/classes/exception/AntiCrawlerException.class new file mode 100644 index 0000000..789b2e4 Binary files /dev/null and b/project/target/classes/exception/AntiCrawlerException.class differ diff --git a/project/target/classes/exception/CrawlerException.class b/project/target/classes/exception/CrawlerException.class new file mode 100644 index 0000000..50112b3 Binary files /dev/null and b/project/target/classes/exception/CrawlerException.class differ diff --git a/project/target/classes/exception/ExceptionHandler.class b/project/target/classes/exception/ExceptionHandler.class new file mode 100644 index 0000000..fd9b804 Binary files /dev/null and b/project/target/classes/exception/ExceptionHandler.class differ diff --git a/project/target/classes/exception/FileStorageException.class b/project/target/classes/exception/FileStorageException.class new file mode 100644 index 0000000..a921382 Binary files /dev/null and b/project/target/classes/exception/FileStorageException.class differ diff --git a/project/target/classes/exception/NetworkException.class b/project/target/classes/exception/NetworkException.class new file mode 100644 index 0000000..961f4dd Binary files /dev/null and b/project/target/classes/exception/NetworkException.class differ diff --git a/project/target/classes/exception/ParseException.class b/project/target/classes/exception/ParseException.class new file mode 100644 index 0000000..9033fc8 Binary files /dev/null and b/project/target/classes/exception/ParseException.class differ diff --git a/project/target/classes/model/Article.class b/project/target/classes/model/Article.class new file mode 100644 index 0000000..c39f2a3 Binary files /dev/null and b/project/target/classes/model/Article.class differ diff --git a/project/target/classes/model/ArticleRepository.class b/project/target/classes/model/ArticleRepository.class new file mode 100644 index 0000000..863a06c Binary files /dev/null and b/project/target/classes/model/ArticleRepository.class differ diff --git a/project/target/classes/model/ArticleRepositoryImpl.class b/project/target/classes/model/ArticleRepositoryImpl.class new file mode 100644 index 0000000..a8bf0cc Binary files /dev/null and b/project/target/classes/model/ArticleRepositoryImpl.class differ diff --git a/project/target/classes/model/CrawlerResult.class b/project/target/classes/model/CrawlerResult.class new file mode 100644 index 0000000..2684856 Binary files /dev/null and b/project/target/classes/model/CrawlerResult.class differ diff --git a/project/target/classes/model/HotSearchItem.class b/project/target/classes/model/HotSearchItem.class new file mode 100644 index 0000000..7c014ac Binary files /dev/null and b/project/target/classes/model/HotSearchItem.class differ diff --git a/project/target/classes/strategy/BlogStrategy.class b/project/target/classes/strategy/BlogStrategy.class new file mode 100644 index 0000000..f8e1a81 Binary files /dev/null and b/project/target/classes/strategy/BlogStrategy.class differ diff --git a/project/target/classes/strategy/CrawlStrategy.class b/project/target/classes/strategy/CrawlStrategy.class new file mode 100644 index 0000000..5cf50fa Binary files /dev/null and b/project/target/classes/strategy/CrawlStrategy.class differ diff --git a/project/target/classes/strategy/HotSearchStrategy.class b/project/target/classes/strategy/HotSearchStrategy.class new file mode 100644 index 0000000..f412b10 Binary files /dev/null and b/project/target/classes/strategy/HotSearchStrategy.class differ diff --git a/project/target/classes/strategy/NewsStrategy.class b/project/target/classes/strategy/NewsStrategy.class new file mode 100644 index 0000000..cb32381 Binary files /dev/null and b/project/target/classes/strategy/NewsStrategy.class differ diff --git a/project/target/classes/strategy/StrategyFactory.class b/project/target/classes/strategy/StrategyFactory.class new file mode 100644 index 0000000..352466f Binary files /dev/null and b/project/target/classes/strategy/StrategyFactory.class differ diff --git a/project/target/classes/view/CrawlerView.class b/project/target/classes/view/CrawlerView.class new file mode 100644 index 0000000..59b98f0 Binary files /dev/null and b/project/target/classes/view/CrawlerView.class differ diff --git a/project/target/classes/view/CrawlerViewImpl.class b/project/target/classes/view/CrawlerViewImpl.class new file mode 100644 index 0000000..41b67c6 Binary files /dev/null and b/project/target/classes/view/CrawlerViewImpl.class differ diff --git a/project/target/lib/jsoup-1.17.2.jar b/project/target/lib/jsoup-1.17.2.jar new file mode 100644 index 0000000..52ae16d Binary files /dev/null and b/project/target/lib/jsoup-1.17.2.jar differ diff --git a/project/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/project/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..46bc67a --- /dev/null +++ b/project/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,30 @@ +command\CrawlCommand.class +strategy\BlogStrategy.class +command\AbstractCommand.class +exception\FileStorageException.class +strategy\HotSearchStrategy.class +command\ViewArticlesCommand.class +command\Command.class +crawler\BaseCrawler.class +strategy\CrawlStrategy.class +view\CrawlerViewImpl.class +command\CommandManager.class +controller\CrawlerController.class +model\CrawlerResult.class +exception\ExceptionHandler.class +exception\CrawlerException.class +model\ArticleRepository.class +model\Article.class +crawler\HupuHotCrawler.class +exception\ParseException.class +command\HelpCommand.class +strategy\StrategyFactory.class +strategy\NewsStrategy.class +exception\NetworkException.class +exception\AntiCrawlerException.class +model\HotSearchItem.class +model\ArticleRepositoryImpl.class +crawler\BaiduHotCrawler.class +crawler\WeiboHotCrawler.class +command\ClearDataCommand.class +view\CrawlerView.class diff --git a/project/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/project/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..4f39c30 --- /dev/null +++ b/project/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,30 @@ +D:\Git\java\project\src\main\java\command\AbstractCommand.java +D:\Git\java\project\src\main\java\command\ClearDataCommand.java +D:\Git\java\project\src\main\java\command\Command.java +D:\Git\java\project\src\main\java\command\CommandManager.java +D:\Git\java\project\src\main\java\command\CrawlCommand.java +D:\Git\java\project\src\main\java\command\HelpCommand.java +D:\Git\java\project\src\main\java\command\ViewArticlesCommand.java +D:\Git\java\project\src\main\java\controller\CrawlerController.java +D:\Git\java\project\src\main\java\crawler\BaiduHotCrawler.java +D:\Git\java\project\src\main\java\crawler\BaseCrawler.java +D:\Git\java\project\src\main\java\crawler\HupuHotCrawler.java +D:\Git\java\project\src\main\java\crawler\WeiboHotCrawler.java +D:\Git\java\project\src\main\java\exception\AntiCrawlerException.java +D:\Git\java\project\src\main\java\exception\CrawlerException.java +D:\Git\java\project\src\main\java\exception\ExceptionHandler.java +D:\Git\java\project\src\main\java\exception\FileStorageException.java +D:\Git\java\project\src\main\java\exception\NetworkException.java +D:\Git\java\project\src\main\java\exception\ParseException.java +D:\Git\java\project\src\main\java\model\Article.java +D:\Git\java\project\src\main\java\model\ArticleRepository.java +D:\Git\java\project\src\main\java\model\ArticleRepositoryImpl.java +D:\Git\java\project\src\main\java\model\CrawlerResult.java +D:\Git\java\project\src\main\java\model\HotSearchItem.java +D:\Git\java\project\src\main\java\strategy\BlogStrategy.java +D:\Git\java\project\src\main\java\strategy\CrawlStrategy.java +D:\Git\java\project\src\main\java\strategy\HotSearchStrategy.java +D:\Git\java\project\src\main\java\strategy\NewsStrategy.java +D:\Git\java\project\src\main\java\strategy\StrategyFactory.java +D:\Git\java\project\src\main\java\view\CrawlerView.java +D:\Git\java\project\src\main\java\view\CrawlerViewImpl.java diff --git a/project/view/CrawlerView.class b/project/view/CrawlerView.class new file mode 100644 index 0000000..30861a5 Binary files /dev/null and b/project/view/CrawlerView.class differ diff --git a/project/view/CrawlerViewImpl.class b/project/view/CrawlerViewImpl.class new file mode 100644 index 0000000..7c17568 Binary files /dev/null and b/project/view/CrawlerViewImpl.class differ diff --git a/project/weibo_hot_topics.csv b/project/weibo_hot_topics.csv new file mode 100644 index 0000000..deaec68 --- /dev/null +++ b/project/weibo_hot_topics.csv @@ -0,0 +1,16 @@ +排名,内容 +1,习近平同沙特王储兼首相通电话 +2,日本正式允许出口杀伤性武器 +3,上午交的学费下午幼儿园关了 +4,运-20B首次赴韩接迎志愿军英烈 +5,女儿打赏主播1700万父亲企业濒临破产 +6,乌克兰进入破产倒计时 +7,这2种饮料混着喝 可能永久损伤大脑 +8,无人机洒农药致路人死亡 飞手获刑 +9,平均月薪20804元 这类人才紧缺 +10,中国代表在安理会当场驳斥美方 +11,库克将卸任苹果CEO 特努斯接任 +12,文班亚马当选年度最佳防守球员 +13,湖人vs掘金 西部半决赛首战 +14,2026年巴黎奥运会倒计时100天 +15,华为Mate70系列发布时间确定 diff --git a/project/weibo_page.html b/project/weibo_page.html new file mode 100644 index 0000000..8209b3c --- /dev/null +++ b/project/weibo_page.html @@ -0,0 +1,277 @@ + + + + + Sina Visitor System + + + + + + + + \ No newline at end of file